From 9281ab143e0d459009e53cc80d8cec6579f2d044 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Thu, 20 Nov 2025 16:48:04 +0800 Subject: [PATCH] =?UTF-8?q?2025-11-20=20IPQC=E6=A3=80=E9=AA=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E9=A1=B9=E7=9B=AE=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/pms/controller/QcController.java | 18 ++++ .../gaotao/modules/pms/mapper/QcMapper.java | 7 ++ .../pms/service/Impl/QcServiceImpl.java | 87 +++++++++++++++++++ .../gaotao/modules/pms/service/QcService.java | 5 ++ src/main/resources/mapper/pms/QcMapper.xml | 52 +++++++++++ 5 files changed, 169 insertions(+) diff --git a/src/main/java/com/gaotao/modules/pms/controller/QcController.java b/src/main/java/com/gaotao/modules/pms/controller/QcController.java index c6df2f2..24933aa 100644 --- a/src/main/java/com/gaotao/modules/pms/controller/QcController.java +++ b/src/main/java/com/gaotao/modules/pms/controller/QcController.java @@ -1368,6 +1368,24 @@ public class QcController { return R.ok(); } + /** + * 获取IPQC模板列表 + */ + @PostMapping("/getIPQCTemplateList") + public R getIPQCTemplateList(@RequestBody Map params){ + List> list = qcService.getIPQCTemplateList(params); + return R.ok().put("code", 0).put("rows", list); + } + + /** + * 导入IPQC模板项目到检验单 + */ + @PostMapping("/importIPQCTemplateItems") + public R importIPQCTemplateItems(@RequestBody Map params){ + int importCount = qcService.importIPQCTemplateItems(params); + return R.ok().put("code", 0).put("importCount", importCount); + } + /** * 获取检验标准 */ diff --git a/src/main/java/com/gaotao/modules/pms/mapper/QcMapper.java b/src/main/java/com/gaotao/modules/pms/mapper/QcMapper.java index 4e74650..76df74d 100644 --- a/src/main/java/com/gaotao/modules/pms/mapper/QcMapper.java +++ b/src/main/java/com/gaotao/modules/pms/mapper/QcMapper.java @@ -322,6 +322,13 @@ public interface QcMapper { void deleteIPQCSubDetailByItem(Map params); + // IPQC模板导入 + List> getIPQCTemplateList(Map params); + + List getTemplateItems(Map params); + + List getExistingItemNos(Map params); + List getInspectionStandards(QcInspectionStandardData data); void deleteInspectionStandard(QcInspectionStandardData data); diff --git a/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java b/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java index ae285d5..f7fe4c1 100644 --- a/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java +++ b/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java @@ -2817,6 +2817,93 @@ public class QcServiceImpl implements QcService { } } + /** + * 获取IPQC模板列表 + */ + @Override + public List> getIPQCTemplateList(Map params) { + return qcMapper.getIPQCTemplateList(params); + } + + /** + * 导入IPQC模板项目到检验单 + */ + @Override + @Transactional + public int importIPQCTemplateItems(Map params) { + String site = (String) params.get("site"); + String buNo = (String) params.get("buNo"); + String inspectionNo = (String) params.get("inspectionNo"); + String orderNo = (String) params.get("orderNo"); + List> templateList = (List>) params.get("templateList"); + + int importCount = 0; + + if (templateList != null && !templateList.isEmpty()) { + // 查询当前检验单是否已有检验项目 + Map queryParams = new HashMap<>(); + queryParams.put("site", site); + queryParams.put("buNo", buNo); + queryParams.put("inspectionNo", inspectionNo); + List existingItems = qcMapper.getExistingIPQCItems(queryParams); + + // 确定template_id和foreign_flag + String targetTemplateId; + String foreignFlag = "Y"; // 模板导入的项目标记为Y + + if (existingItems != null && !existingItems.isEmpty()) { + // 如果有现有项目,随便取第一条的template_id + targetTemplateId = existingItems.get(0).getTemplateId(); + } else { + // 如果没有现有项目,template_id赋值为"*" + targetTemplateId = "*"; + } + + // 遍历选中的模板 + for (Map template : templateList) { + String templateId = (String) template.get("templateId"); + + // 查询模板的所有检验项目 + Map templateItemParams = new HashMap<>(); + templateItemParams.put("site", site); + templateItemParams.put("buNo", buNo); + templateItemParams.put("templateId", templateId); + List templateItems = qcMapper.getTemplateItems(templateItemParams); + + // 查询当前检验单已有的项目编码,避免重复导入 + List existingItemNos = qcMapper.getExistingItemNos(queryParams); + + // 插入模板项目 + for (EamPropertiesItemData item : templateItems) { + // 跳过已存在的项目 + if (existingItemNos.contains(item.getItemNo())) { + continue; + } + + Map insertParams = new HashMap<>(); + insertParams.put("site", site); + insertParams.put("buNo", buNo); + insertParams.put("inspectionNo", inspectionNo); + insertParams.put("orderNo", orderNo); + insertParams.put("templateId", targetTemplateId); + insertParams.put("itemNo", item.getItemNo()); + insertParams.put("itemDesc", item.getItemDesc()); + insertParams.put("defaultValue", item.getDefaultValue()); + insertParams.put("maxValue", item.getMaxValue()); + insertParams.put("minValue", item.getMinValue()); + insertParams.put("valueType", item.getValueType()); + insertParams.put("valueTypeDb", item.getValueTypeDb()); + insertParams.put("foreignFlag", foreignFlag); + + qcMapper.insertIPQCItemDetail(insertParams); + importCount++; + } + } + } + + return importCount; + } + /** * 获取检验标准 */ diff --git a/src/main/java/com/gaotao/modules/pms/service/QcService.java b/src/main/java/com/gaotao/modules/pms/service/QcService.java index af586fd..04a0fdf 100644 --- a/src/main/java/com/gaotao/modules/pms/service/QcService.java +++ b/src/main/java/com/gaotao/modules/pms/service/QcService.java @@ -188,6 +188,11 @@ public interface QcService { void deleteIPQCItemDetails(Map params); + // IPQC模板导入 + List> getIPQCTemplateList(Map params); + + int importIPQCTemplateItems(Map params); + List getInspectionStandards(QcInspectionStandardData data); void saveInspectionStandard(QcInspectionStandardData data); diff --git a/src/main/resources/mapper/pms/QcMapper.xml b/src/main/resources/mapper/pms/QcMapper.xml index 42983b4..37ca345 100644 --- a/src/main/resources/mapper/pms/QcMapper.xml +++ b/src/main/resources/mapper/pms/QcMapper.xml @@ -2529,6 +2529,58 @@ AND item_no = #{itemNo} + + + + + + + + + +