From 8ce2bf55a2842ba2ddfa71009b51937ef99db522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 24 Apr 2026 10:27:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E4=BA=9B=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QmsIncomingInspectionTaskController.java | 17 ++++++---- ...comingInspectionTaskControllerService.java | 9 ++++++ ...msInspectionStandardControllerService.java | 32 +++++++------------ ...spectionStandardItemControllerService.java | 2 +- ...ExternalIncomingInspectionTaskApiTest.java | 5 +-- .../qo/QmsIncomingInspectionTaskSearchQO.java | 10 +++--- .../pojo/qo/QmsInspectionStandardSaveQO.java | 22 +++++-------- .../QmsInspectionStandardItemContentVO.java | 9 ++---- .../pojo/vo/QmsInspectionStandardItemVO.java | 30 ++++++----------- .../pojo/vo/QmsInspectionStandardVO.java | 20 ++++++++++++ .../QmsIncomingInspectionTaskRecord.java | 10 ++++++ .../entity/QmsInspectionStandardItem.java | 2 +- .../QmsInspectionStandardItemContent.java | 4 +-- .../QmsIncomingInspectionTaskMapper.xml | 6 ++-- 14 files changed, 95 insertions(+), 83 deletions(-) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java index c14a3793..b4d52ca2 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java @@ -8,15 +8,13 @@ import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTodoSearchQO; import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskTransferQO; import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskCountVO; import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO; +import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecord; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; import jakarta.validation.Valid; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 来料检测任务 @@ -69,4 +67,11 @@ public class QmsIncomingInspectionTaskController extends BaseController { return ApiResult.success(incomingInspectionTaskControllerService.countByCurrentUser()); } + /** + * 查询来料检测任务记录 + */ + @GetMapping("pad/records") + public ApiResult> getRecords(@RequestParam Long taskId){ + return ApiResult.success(incomingInspectionTaskControllerService.getRecords(taskId)); + } } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java index 028873f8..83650781 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java @@ -76,6 +76,9 @@ public class IncomingInspectionTaskControllerService { @Resource private IQmsSamplingStrictnessTransferRuleService samplingStrictnessTransferRuleService; + @Resource + private IQmsIncomingInspectionTaskRecordService incomingInspectionTaskRecordService; + /** * 来料检验申请(对外接口) * 业务规则: @@ -566,4 +569,10 @@ public class IncomingInspectionTaskControllerService { .set(QmsIncomingInspectionTask::getUpdateTime, now) .update(); } + + public List getRecords(Long taskId) { + return incomingInspectionTaskRecordService.lambdaQuery() + .eq(QmsIncomingInspectionTaskRecord::getTaskId, taskId) + .list(); + } } 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 a2f6d02e..670a1d4b 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 @@ -186,8 +186,10 @@ public class QmsInspectionStandardControllerService { detail.setAqlTypeDictItemId(standard.getAqlTypeDictItemId()); // 填充字典项名称 Set standardDictItemIds = new HashSet<>(); - if (standard.getTestingMethodDictItemId() != null) standardDictItemIds.add(standard.getTestingMethodDictItemId()); - if (standard.getInspectionLevelDictItemId() != null) standardDictItemIds.add(standard.getInspectionLevelDictItemId()); + if (standard.getTestingMethodDictItemId() != null) + standardDictItemIds.add(standard.getTestingMethodDictItemId()); + if (standard.getInspectionLevelDictItemId() != null) + standardDictItemIds.add(standard.getInspectionLevelDictItemId()); if (standard.getAqlTypeDictItemId() != null) standardDictItemIds.add(standard.getAqlTypeDictItemId()); if (!standardDictItemIds.isEmpty()) { List standardDictItems = dictionaryItemService.lambdaQuery() @@ -226,7 +228,7 @@ public class QmsInspectionStandardControllerService { List itemVOs = new ArrayList<>(); Set dictionaryItemIds = new HashSet<>(); items.forEach(item -> { - dictionaryItemIds.add(item.getSamplingMethodDictItemId()); + dictionaryItemIds.add(item.getDetectionTypeDictItemId()); }); List dictionaryItems = CollectionUtil.isEmpty(dictionaryItemIds) ? new ArrayList<>() @@ -262,9 +264,9 @@ public class QmsInspectionStandardControllerService { vo.setId(item.getId()); vo.setName(item.getName()); vo.setSortNo(item.getSortNo()); - vo.setSamplingMethodDictItemId(item.getSamplingMethodDictItemId()); - vo.setSamplingMethodDictItemName(dictionaryItems.stream() - .filter(it -> it.getId().equals(item.getSamplingMethodDictItemId())) + vo.setDetectionTypeDictItemId(item.getDetectionTypeDictItemId()); + vo.setDetectionTypeDictItemName(dictionaryItems.stream() + .filter(it -> it.getId().equals(item.getDetectionTypeDictItemId())) .findFirst() .map(DictionaryItem::getName) .orElse(null) @@ -289,12 +291,7 @@ public class QmsInspectionStandardControllerService { vo.setTestStandard(content.getTestStandard()); vo.setLegend(content.getLegend()); vo.setPdfInfo(content.getPdfInfo()); - vo.setJudgmentTypeDictItemId(content.getJudgmentTypeDictItemId()); - vo.setJudgmentTypeDictItemName( - Optional.ofNullable(dictionaryItemService.getById(content.getJudgmentTypeDictItemId())) - .map(DictionaryItem::getName) - .orElse(null) - ); + vo.setJudgmentType(content.getJudgmentType()); vo.setCreateUserName(content.getCreateUserName()); vo.setCreateTime(content.getCreateTime()); vo.setUpdateUserName(content.getUpdateUserName()); @@ -449,10 +446,10 @@ public class QmsInspectionStandardControllerService { List newItemIds = new ArrayList<>(); for (QmsInspectionStandardSaveQO.InspectionStandardItemQO itemQO : items) { DictionaryItem dictionaryItem = dictionaryItems.stream() - .filter(item -> item.getId().equals(itemQO.getSamplingMethodDictItemId())) + .filter(item -> item.getId().equals(itemQO.getDetectionTypeDictItemId())) .findFirst() .orElse(null); - VUtil.trueThrowBusinessError(Objects.isNull(dictionaryItem)).throwMessage("检测项【" + itemQO.getName() + "】设置的抽样方式不存在"); + VUtil.trueThrowBusinessError(Objects.isNull(dictionaryItem)).throwMessage("检测项【" + itemQO.getName() + "】设置的检测类型不存在"); QmsInspectionStandardItem item; if (itemQO.getId() != null) { @@ -579,9 +576,7 @@ public class QmsInspectionStandardControllerService { if (qo.getSortNo() != null) { item.setSortNo(qo.getSortNo()); } - if (qo.getSamplingMethodDictItemId() != null) { - item.setSamplingMethodDictItemId(qo.getSamplingMethodDictItemId()); - } + item.setDetectionTypeDictItemId(qo.getDetectionTypeDictItemId()); if (qo.getItemType() != null) { item.setItemType(qo.getItemType()); } @@ -673,9 +668,6 @@ public class QmsInspectionStandardControllerService { if (qo.getPdfInfo() != null) { content.setPdfInfo(qo.getPdfInfo()); } - if (qo.getJudgmentTypeDictItemId() != null) { - content.setJudgmentTypeDictItemId(qo.getJudgmentTypeDictItemId()); - } content.setUpdateUserId(userId); content.setUpdateUserName(userName); 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 dc194bdf..62aeab67 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 @@ -60,7 +60,7 @@ public class QmsInspectionStandardItemControllerService { vo.setTestStandard(content.getTestStandard()); vo.setLegend(content.getLegend()); vo.setPdfInfo(content.getPdfInfo()); - vo.setJudgmentTypeDictItemId(content.getJudgmentTypeDictItemId()); + vo.setJudgmentType(content.getJudgmentType()); vo.setCreateUserName(content.getCreateUserName()); vo.setCreateTime(content.getCreateTime()); vo.setUpdateUserName(content.getUpdateUserName()); diff --git a/nflg-qms-admin/src/test/java/com/nflg/qms/admin/ExternalIncomingInspectionTaskApiTest.java b/nflg-qms-admin/src/test/java/com/nflg/qms/admin/ExternalIncomingInspectionTaskApiTest.java index a1fdca02..e7a617cd 100644 --- a/nflg-qms-admin/src/test/java/com/nflg/qms/admin/ExternalIncomingInspectionTaskApiTest.java +++ b/nflg-qms-admin/src/test/java/com/nflg/qms/admin/ExternalIncomingInspectionTaskApiTest.java @@ -98,7 +98,7 @@ public class ExternalIncomingInspectionTaskApiTest { request.setDeliveryOrderLine("10"); request.setPurchaseOrderNo("PO20240101001"); request.setPurchaseOrderLine("20"); - request.setType(0); + request.setInspectionType(0); ApiResult result = post("/external/incoming-inspection-task/apply", request, new TypeReference<>() {}); assertSuccess(result, "完整参数来料检验申请失败"); @@ -207,7 +207,6 @@ public class ExternalIncomingInspectionTaskApiTest { ExternalIncomingInspectionApplyQO request = buildValidApplyRequest(); request.setMaterialNo(VALID_MATERIAL_NO); request.setInspectionQty(0); - request.setType(0); ApiResult result = post("/external/incoming-inspection-task/apply", request, new TypeReference<>() {}); // 若业务不允许0数量,则改为 assertFailed @@ -226,7 +225,6 @@ public class ExternalIncomingInspectionTaskApiTest { request.setMaterialNo(VALID_MATERIAL_NO); request.setFactory(VALID_FACTORY); request.setInspectionQty(100); - request.setType(0); ApiResult result = post("/external/incoming-inspection-task/apply", request, new TypeReference<>() {}); assertSuccess(result, "仅必填字段来料检验申请失败"); @@ -243,7 +241,6 @@ public class ExternalIncomingInspectionTaskApiTest { request.setMaterialNo(VALID_MATERIAL_NO); request.setFactory(VALID_FACTORY); request.setInspectionQty(100); - request.setType(0); return request; } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskSearchQO.java index b99043da..f8939d73 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionTaskSearchQO.java @@ -12,6 +12,11 @@ import java.time.LocalDate; @EqualsAndHashCode(callSuper = true) public class QmsIncomingInspectionTaskSearchQO extends PageQO { + /** + * 类型,0:来料;1:盘库 + */ + private Integer dataType; + /** * 物料编码(模糊匹配) */ @@ -57,11 +62,6 @@ public class QmsIncomingInspectionTaskSearchQO extends PageQO { */ private Boolean isOverdue; - /** - * 检测类型,0:来料检测;1:盘库检测 - */ - private Integer inspectionType; - /** * 送检日期开始 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsInspectionStandardSaveQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsInspectionStandardSaveQO.java index ef9642b6..b084a42c 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsInspectionStandardSaveQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsInspectionStandardSaveQO.java @@ -108,24 +108,18 @@ public class QmsInspectionStandardSaveQO { */ private Integer sortNo = 0; - /** - * 检测方式,关联字典项id - */ - @NotNull(message = "检测方式不能为空") - private Long testingMethodDictItemId; - - /** - * 抽样方式,关联字典项id - */ - @NotNull(message = "抽样方式不能为空") - private Long samplingMethodDictItemId; - /** * 检验标准项类型:0-标准检测项,1-尺寸检测项 */ @NotNull(message = "检验标准项类型不能为空") private Short itemType; + /** + * 检测类型,关联字典项id(字典编码:InspectionStandardDetectionType) + */ + @NotNull(message = "检测类型不能为空") + private Long detectionTypeDictItemId; + /** * PDF图纸 */ @@ -176,9 +170,9 @@ public class QmsInspectionStandardSaveQO { private String pdfInfo; /** - * 判定类型,关联字典项id + * 判定类型,0:直接判定;1:测量值 */ @NotNull(message = "判定类型不能为空") - private Long judgmentTypeDictItemId; + private Integer judgmentType; } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardItemContentVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardItemContentVO.java index 7784e974..740f5a8a 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardItemContentVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardItemContentVO.java @@ -41,14 +41,9 @@ public class QmsInspectionStandardItemContentVO { private String pdfInfo; /** - * 判定类型字典项ID + * 判定类型,0:直接判定;1:测量值 */ - private Long judgmentTypeDictItemId; - - /** - * 判定类型字典项名称 - */ - private String judgmentTypeDictItemName; + private Integer judgmentType; /** * 创建人姓名 diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardItemVO.java index ef460456..5d6d7b67 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardItemVO.java @@ -26,31 +26,21 @@ public class QmsInspectionStandardItemVO { */ private Integer sortNo; - /** - * 检测方式字典项ID - */ - private Long testingMethodDictItemId; - - /** - * 检测方式字典项名称 - */ - private String testingMethodDictItemName; - - /** - * 抽样方式字典项ID - */ - private Long samplingMethodDictItemId; - - /** - * 抽样方式字典项名称 - */ - private String samplingMethodDictItemName; - /** * 检验标准项类型:0-标准检测项,1-尺寸检测项 */ private Short itemType; + /** + * 检测类型 + */ + private Long detectionTypeDictItemId; + + /** + * 检测类型名称 + */ + private String detectionTypeDictItemName; + /** * PDF图纸 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardVO.java index b50a9dbf..bceee965 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardVO.java @@ -60,6 +60,26 @@ public class QmsInspectionStandardVO { */ private String packagingMethodName; + /** + * 检测方式字典项ID + */ + private Long testingMethodDictItemId; + + /** + * 检测方式字典项名称 + */ + private String testingMethodDictItemName; + + /** + * 抽样方式字典项ID + */ + private Long samplingMethodDictItemId; + + /** + * 抽样方式字典项名称 + */ + private String samplingMethodDictItemName; + /** * 启用状态 */ diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecord.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecord.java index 5bd55837..a3297bac 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecord.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTaskRecord.java @@ -56,6 +56,16 @@ public class QmsIncomingInspectionTaskRecord implements Serializable { */ private String materialUniqueNo; + /** + * 是否合格 + */ + private Boolean qualified; + + /** + * 样本数量 + */ + private Integer count; + /** * 备注 */ diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandardItem.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandardItem.java index a0810eec..bab7ba21 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandardItem.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandardItem.java @@ -44,7 +44,7 @@ public class QmsInspectionStandardItem implements Serializable { /** * 检测类型,关联字典项id(字典编码:InspectionStandardDetectionType) */ - private Long samplingMethodDictItemId; + private Long detectionTypeDictItemId; /** * 检验标准项类型:0-标准检测项,1-尺寸检测项 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 7d6bdc15..640c9247 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 @@ -57,9 +57,9 @@ public class QmsInspectionStandardItemContent implements Serializable { private String pdfInfo; /** - * 判定类型,关联字典项id(字典编码:InspectionStandardJudgmentType) + * 判定类型,0:直接判定;1:测量值 */ - private Long judgmentTypeDictItemId; + private Integer judgmentType; /** * 创建人ID diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml index c64e5342..3ada2fdd 100644 --- a/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml @@ -42,6 +42,9 @@ LEFT JOIN qms_qc_material m ON t.material_id = m.id LEFT JOIN qms_inspection_standard s ON t.inspection_standard_id = s.id + + AND t.data_type = #{request.dataType} + AND m.material_no ilike concat('%', #{request.materialNo}, '%') @@ -69,9 +72,6 @@ AND t.is_overdue = #{request.isOverdue} - - AND t.inspection_type = #{request.inspectionType} - AND t.submit_time >= #{request.submitStartDate}