From ba571b994c28f7442528f973bbd57274c7e16305 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 6 May 2026 16:51:03 +0800 Subject: [PATCH] =?UTF-8?q?refactor(pdf-extract):=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E6=97=A7pdfInfo=E5=AD=97=E6=AE=B5=EF=BC=8C=E6=94=B9=E7=94=A8?= =?UTF-8?q?=E7=8B=AC=E7=AB=8Bpdf=E5=B1=9E=E6=80=A7=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在PositionedTextStripper中添加elements字段的Getter以便外部访问 - 删除QmsInspectionStandard相关类中旧的pdfInfo字段及相关JSON序列化逻辑 - 新增QmsInspectionStandardItemContent、VO、QO类中pdfPageNum、pdfX、pdfY、pdfWidth和pdfHeight属性 - 在QmsInspectionStandardControllerService和QmsInspectionStandardItemControllerService中调整属性赋值逻辑,改用新字段替代pdfInfo - 优化部分代码导入,移除未使用的JSONUtil和TextPosition引用 --- .../pojo/qo/QmsInspectionStandardSaveQO.java | 33 ++++++++++--- .../QmsInspectionStandardItemContentVO.java | 31 +++++++++--- ...msInspectionStandardControllerService.java | 19 ++++---- ...spectionStandardItemControllerService.java | 11 ++--- .../extraction/PositionedTextStripper.java | 5 +- .../src/main/java/model/TextPosition.java | 47 ------------------- .../QmsInspectionStandardItemContent.java | 30 ++++++++++-- 7 files changed, 94 insertions(+), 82 deletions(-) delete mode 100644 nflg-qms-pdf-extract/src/main/java/model/TextPosition.java diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/pojo/qo/QmsInspectionStandardSaveQO.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/pojo/qo/QmsInspectionStandardSaveQO.java index 3c8e0f11..94274c24 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/pojo/qo/QmsInspectionStandardSaveQO.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/pojo/qo/QmsInspectionStandardSaveQO.java @@ -4,7 +4,6 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; -import model.TextPosition; import java.util.List; @@ -147,7 +146,7 @@ public class QmsInspectionStandardSaveQO { /** * 排序号 */ - private Integer sortNo=0; + private Integer sortNo = 0; /** * 检测项名称 @@ -165,15 +164,35 @@ public class QmsInspectionStandardSaveQO { */ private String legend; - /** - * PDF信息 - */ - private TextPosition pdfInfo; - /** * 判定类型,0:直接判定;1:测量值 */ @NotNull(message = "判定类型不能为空") private Integer judgmentType; + + /** + * PDF页码 + */ + private Integer pdfPageNum; + + /** + * PDF x轴起始位置 + */ + private Float pdfX; + + /** + * PDF y轴起始位置 + */ + private Float pdfY; + + /** + * PDF宽度 + */ + private Float pdfWidth; + + /** + * PDF高度 + */ + private Float pdfHeight; } } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/pojo/vo/QmsInspectionStandardItemContentVO.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/pojo/vo/QmsInspectionStandardItemContentVO.java index ede9766b..a036a7c3 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/pojo/vo/QmsInspectionStandardItemContentVO.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/pojo/vo/QmsInspectionStandardItemContentVO.java @@ -1,7 +1,6 @@ package com.nflg.qms.admin.pojo.vo; import lombok.Data; -import model.TextPosition; import java.time.LocalDateTime; @@ -36,16 +35,36 @@ public class QmsInspectionStandardItemContentVO { */ private String legend; - /** - * PDF信息 - */ - private TextPosition pdfInfo; - /** * 判定类型,0:直接判定;1:测量值 */ private Integer judgmentType; + /** + * PDF页码 + */ + private Integer pdfPageNum; + + /** + * PDF x轴起始位置 + */ + private Float pdfX; + + /** + * PDF y轴起始位置 + */ + private Float pdfY; + + /** + * PDF宽度 + */ + private Float pdfWidth; + + /** + * PDF高度 + */ + private Float pdfHeight; + /** * 创建人姓名 */ diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java index 33fd1d59..e75db1cd 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java @@ -3,7 +3,6 @@ package com.nflg.qms.admin.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.qms.admin.pojo.qo.QmsPdfExtractRegionQO; @@ -26,7 +25,6 @@ import com.nflg.wms.repository.service.*; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import model.DimensionResult; -import model.TextPosition; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import service.PdfExtractionService; @@ -304,9 +302,11 @@ public class QmsInspectionStandardControllerService { vo.setName(content.getName()); vo.setTestStandard(content.getTestStandard()); vo.setLegend(content.getLegend()); - if (StrUtil.isNotBlank(content.getPdfInfo())) { - vo.setPdfInfo(JSONUtil.toBean(content.getPdfInfo(), TextPosition.class)); - } + vo.setPdfPageNum(content.getPdfPageNum()); + vo.setPdfX(content.getPdfX()); + vo.setPdfY(content.getPdfY()); + vo.setPdfWidth(content.getPdfWidth()); + vo.setPdfHeight(content.getPdfHeight()); vo.setJudgmentType(content.getJudgmentType()); vo.setCreateUserName(content.getCreateUserName()); vo.setCreateTime(content.getCreateTime()); @@ -681,11 +681,14 @@ public class QmsInspectionStandardControllerService { if (qo.getLegend() != null) { content.setLegend(qo.getLegend()); } - if (qo.getPdfInfo() != null) { - content.setPdfInfo(JSONUtil.toJsonStr(qo.getPdfInfo())); - } content.setJudgmentType(qo.getJudgmentType()); + content.setPdfPageNum(qo.getPdfPageNum()); + content.setPdfX(qo.getPdfX()); + content.setPdfY(qo.getPdfY()); + content.setPdfWidth(qo.getPdfWidth()); + content.setPdfHeight(qo.getPdfHeight()); + content.setUpdateUserId(userId); content.setUpdateUserName(userName); content.setUpdateTime(now); diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardItemControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardItemControllerService.java index 58b1b2c1..c659f98e 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardItemControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardItemControllerService.java @@ -1,7 +1,5 @@ package com.nflg.qms.admin.service; -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; import com.nflg.wms.common.exception.NflgException; import com.nflg.qms.admin.pojo.vo.QmsInspectionStandardItemContentVO; import com.nflg.wms.repository.entity.QmsInspectionStandardItem; @@ -10,7 +8,6 @@ import com.nflg.wms.repository.service.IQmsInspectionStandardItemContentService; import com.nflg.wms.repository.service.IQmsInspectionStandardItemService; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; -import model.TextPosition; import org.springframework.stereotype.Component; import java.util.List; @@ -62,9 +59,11 @@ public class QmsInspectionStandardItemControllerService { vo.setName(content.getName()); vo.setTestStandard(content.getTestStandard()); vo.setLegend(content.getLegend()); - if (StrUtil.isNotBlank(content.getPdfInfo())) { - vo.setPdfInfo(JSONUtil.toBean(content.getPdfInfo(), TextPosition.class)); - } + vo.setPdfPageNum(content.getPdfPageNum()); + vo.setPdfX(content.getPdfX()); + vo.setPdfY(content.getPdfY()); + vo.setPdfWidth(content.getPdfWidth()); + vo.setPdfHeight(content.getPdfHeight()); vo.setJudgmentType(content.getJudgmentType()); vo.setCreateUserName(content.getCreateUserName()); vo.setCreateTime(content.getCreateTime()); diff --git a/nflg-qms-pdf-extract/src/main/java/extraction/PositionedTextStripper.java b/nflg-qms-pdf-extract/src/main/java/extraction/PositionedTextStripper.java index 4d45cdd1..bd67a1b2 100644 --- a/nflg-qms-pdf-extract/src/main/java/extraction/PositionedTextStripper.java +++ b/nflg-qms-pdf-extract/src/main/java/extraction/PositionedTextStripper.java @@ -1,5 +1,6 @@ package extraction; +import lombok.Getter; import model.TextElement; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.common.PDRectangle; @@ -11,6 +12,7 @@ import java.util.ArrayList; import java.util.List; public class PositionedTextStripper extends PDFTextStripper { + @Getter private final List elements = new ArrayList<>(); private int currentPage = 0; private float currentPageWidth = 0; @@ -53,7 +55,4 @@ public class PositionedTextStripper extends PDFTextStripper { super.writeString(text, textPositions); } - public List getElements() { - return elements; - } } diff --git a/nflg-qms-pdf-extract/src/main/java/model/TextPosition.java b/nflg-qms-pdf-extract/src/main/java/model/TextPosition.java deleted file mode 100644 index 0d04e921..00000000 --- a/nflg-qms-pdf-extract/src/main/java/model/TextPosition.java +++ /dev/null @@ -1,47 +0,0 @@ -package model; - -import lombok.Data; - -@Data -public class TextPosition { - - /** - * 页码 - */ - private int pageNum; - - /** - * x轴起始位置 - */ - private float x; - - /** - * y轴起始位置 - */ - private float y; - - /** - * 宽度 - */ - private float width; - - /** - * 高度 - */ - private float height; - - /** - * 页宽 - */ - private float pageWidth; - - /** - * 页高 - */ - private float pageHeight; - - /** - * 序号 - */ - private int sortOrder; -} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandardItemContent.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandardItemContent.java index 640c9247..2d26b706 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandardItemContent.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandardItemContent.java @@ -51,16 +51,36 @@ public class QmsInspectionStandardItemContent implements Serializable { */ private String legend; - /** - * PDF信息 - */ - private String pdfInfo; - /** * 判定类型,0:直接判定;1:测量值 */ private Integer judgmentType; + /** + * PDF页码 + */ + private Integer pdfPageNum; + + /** + * PDF x轴起始位置 + */ + private Float pdfX; + + /** + * PDF y轴起始位置 + */ + private Float pdfY; + + /** + * PDF宽度 + */ + private Float pdfWidth; + + /** + * PDF高度 + */ + private Float pdfHeight; + /** * 创建人ID */