From efefe6e88fc14bf9f623a4c09ba3d7e7ac67ff9f Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 3 Feb 2026 10:07:17 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix(qc):=20=E4=BF=AE=E6=AD=A3=E8=B4=A8?= =?UTF-8?q?=E6=A3=80=E4=BB=BB=E5=8A=A1=E5=8D=B7=E6=9D=90=E5=85=B3=E7=B3=BB?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将删除标识从 1 修改为 2 以符合业务逻辑要求 --- .../main/resources/mapper/qc/WmsCheckTaskCoilRelationMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/klp-mes/src/main/resources/mapper/qc/WmsCheckTaskCoilRelationMapper.xml b/klp-mes/src/main/resources/mapper/qc/WmsCheckTaskCoilRelationMapper.xml index 4ffb7e76..11119f70 100644 --- a/klp-mes/src/main/resources/mapper/qc/WmsCheckTaskCoilRelationMapper.xml +++ b/klp-mes/src/main/resources/mapper/qc/WmsCheckTaskCoilRelationMapper.xml @@ -16,7 +16,7 @@ - UPDATE wms_check_task_coil_relation SET del_flag = 1 + UPDATE wms_check_task_coil_relation SET del_flag = 2 WHERE task_id IN #{taskId} From 3e55354f04e3c02f4c32c0068daba3f948b719a9 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 3 Feb 2026 10:10:45 +0800 Subject: [PATCH 2/3] =?UTF-8?q?refactor(qc):=20=E6=9B=B4=E6=96=B0WMS?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E4=BB=BB=E5=8A=A1=E6=9C=8D=E5=8A=A1=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E7=89=A9=E6=96=99=E5=8D=B7=E6=9F=A5=E8=AF=A2=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将selectVoList替换为selectVoListWithDynamicJoin以支持动态连接查询 - 保持原有的按创建时间倒序排序逻辑不变 --- .../com/klp/mes/qc/service/impl/WmsCheckTaskServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/impl/WmsCheckTaskServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/WmsCheckTaskServiceImpl.java index b3613e59..d1fd50e0 100644 --- a/klp-mes/src/main/java/com/klp/mes/qc/service/impl/WmsCheckTaskServiceImpl.java +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/WmsCheckTaskServiceImpl.java @@ -134,7 +134,7 @@ public class WmsCheckTaskServiceImpl implements IWmsCheckTaskService { // 根据创建时间倒序 qw.orderByDesc("create_time"); - return wmsMaterialCoilMapper.selectVoList(qw); + return wmsMaterialCoilMapper.selectVoListWithDynamicJoin(qw); } From 44933221feb335abec717f2e8da076c6d7e65772 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 3 Feb 2026 10:18:03 +0800 Subject: [PATCH 3/3] =?UTF-8?q?refactor(qc):=20=E9=87=8D=E6=9E=84=E8=B4=A8?= =?UTF-8?q?=E6=A3=80=E6=A3=80=E6=9F=A5=E4=BB=BB=E5=8A=A1=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将原有的聚合字段拆分方式改为关联表查询方式 - 新增检查任务与检查项关联关系的独立查询 - 使用批量查询替代字符串拆分提高性能 - 优化检查项数据组装逻辑 - 移除原有的字符串分割处理方法 - 改进钢卷信息查询条件判断逻辑 --- .../service/impl/WmsCheckTaskServiceImpl.java | 100 +++++++++--------- 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/impl/WmsCheckTaskServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/WmsCheckTaskServiceImpl.java index d1fd50e0..76108b56 100644 --- a/klp-mes/src/main/java/com/klp/mes/qc/service/impl/WmsCheckTaskServiceImpl.java +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/WmsCheckTaskServiceImpl.java @@ -51,71 +51,69 @@ public class WmsCheckTaskServiceImpl implements IWmsCheckTaskService { */ @Override public WmsCheckTaskVo queryById(Long taskId) { - WmsCheckTaskVo vo = baseMapper.selectVoByIdPlus(taskId); - if (vo != null && vo.getItemIds() != null) { - // 1. 拆分所有聚合字段(新增 checkTaskItemIds 的处理) - String[] ids = vo.getItemIds().split(","); // 检查项表的 item_id - String[] checkTaskItemIds = vo.getCheckTaskItemIds() != null ? vo.getCheckTaskItemIds().split(",") : new String[ids.length]; // 关联表的 item_id(新增) - String[] names = vo.getItemNames() != null ? vo.getItemNames().split(",") : new String[ids.length]; - String[] statusArr = vo.getItemStatus() != null ? vo.getItemStatus().split(",") : new String[ids.length]; - String[] targetUppers = vo.getTargetUppers() != null ? vo.getTargetUppers().split(",") : new String[ids.length]; - String[] targetLowers = vo.getTargetLowers() != null ? vo.getTargetLowers().split(",") : new String[ids.length]; - String[] standardTargets = vo.getStandardTargets() != null ? vo.getStandardTargets().split(",") : new String[ids.length]; - String[] units = vo.getUnits() != null ? vo.getUnits().split(",") : new String[ids.length]; - String[] qualitativeQuantitatives = vo.getQualitativeQuantitatives() != null ? vo.getQualitativeQuantitatives().split(",") : new String[ids.length]; - String[] actualMeasures = vo.getActualMeasures() != null ? vo.getActualMeasures().split(",") : new String[ids.length]; + WmsCheckTaskVo vo = baseMapper.selectVoById(taskId); + if (vo == null) { + return null; + } + // 查询检查任务与检查项关联关系 + List taskItems = wmsCheckTaskItemMapper.selectList( + Wrappers.lambdaQuery() + .eq(WmsCheckTaskItem::getCheckTaskId, taskId) + .eq(WmsCheckTaskItem::getDelFlag, 0) + ); + + if (!taskItems.isEmpty()) { + Set itemIds = new HashSet<>(); + for (WmsCheckTaskItem taskItem : taskItems) { + itemIds.add(taskItem.getCheckItemId()); + } + + // 查询检查项基础信息 + List checkItems = wmsCheckItemMapper.selectBatchIds(itemIds); + Map itemMap = new HashMap<>(); + for (WmsCheckItem item : checkItems) { + itemMap.put(item.getItemId(), item); + } + + // 组装检查项列表 List itemList = new ArrayList<>(); - for (int i = 0; i < ids.length; i++) { - if (!ids[i].isEmpty()) { // 跳过空字符串(避免拆分后出现空元素) - WmsCheckItemVo item = new WmsCheckItemVo(); - // 2. 赋值检查项 ID(原逻辑保留) - item.setItemId(Long.valueOf(ids[i])); - // 3. 新增:赋值关联表的 item_id - if (checkTaskItemIds.length > i && !checkTaskItemIds[i].isEmpty()) { - item.setCheckTaskItemId(Long.valueOf(checkTaskItemIds[i])); // 假设 WmsCheckItemVo 有这个字段 - } - // 4. 其他字段赋值(保持原逻辑,补充判空) - if (names.length > i) item.setItemName(names[i]); - if (statusArr.length > i) item.setStatus(statusArr[i]); - // 处理数值类型时,先判空再转换,避免 NumberFormatException - if (targetUppers.length > i && StringUtils.isNotBlank(targetUppers[i])) { - item.setTargetUpper(new BigDecimal(targetUppers[i])); // 推荐用 new BigDecimal,避免 Double 精度问题 - } - if (targetLowers.length > i && StringUtils.isNotBlank(targetLowers[i])) { - item.setTargetLower(new BigDecimal(targetLowers[i])); - } - if (standardTargets.length > i && StringUtils.isNotBlank(standardTargets[i])) { - item.setStandardTarget(new BigDecimal(standardTargets[i])); - } - if (units.length > i) item.setUnit(units[i]); - if (qualitativeQuantitatives.length > i && StringUtils.isNotBlank(qualitativeQuantitatives[i])) { - item.setQualitativeQuantitative(Integer.parseInt(qualitativeQuantitatives[i])); - } - if (actualMeasures.length > i) item.setActualMeasure(actualMeasures[i]); - itemList.add(item); + for (WmsCheckTaskItem taskItem : taskItems) { + WmsCheckItemVo itemVo = new WmsCheckItemVo(); + WmsCheckItem checkItem = itemMap.get(taskItem.getCheckItemId()); + + if (checkItem != null) { + itemVo.setItemId(checkItem.getItemId()); + itemVo.setItemName(checkItem.getItemName()); } + + itemVo.setCheckTaskItemId(taskItem.getItemId()); + itemVo.setStatus(taskItem.getStatus().toString()); + itemVo.setTargetUpper(taskItem.getTargetUpper()); + itemVo.setTargetLower(taskItem.getTargetLower()); + itemVo.setStandardTarget(taskItem.getStandardTarget()); + itemVo.setUnit(taskItem.getUnit()); + itemVo.setQualitativeQuantitative(taskItem.getQualitativeQuantitative()); + itemVo.setActualMeasure(taskItem.getActualMeasure() != null ? taskItem.getActualMeasure().toString() : null); + + itemList.add(itemVo); } vo.setItemList(itemList); } // 查询关联的钢卷信息 - List coilRelations = null; - if (vo != null) { - coilRelations = wmsCheckTaskCoilRelationMapper.selectList( - Wrappers.lambdaQuery() - .eq(WmsCheckTaskCoilRelation::getTaskId, vo.getTaskId()) - .eq(WmsCheckTaskCoilRelation::getDelFlag, 0) - ); - } + List coilRelations = wmsCheckTaskCoilRelationMapper.selectList( + Wrappers.lambdaQuery() + .eq(WmsCheckTaskCoilRelation::getTaskId, taskId) + .eq(WmsCheckTaskCoilRelation::getDelFlag, 0) + ); - if (coilRelations != null && !coilRelations.isEmpty()) { + if (!coilRelations.isEmpty()) { Set coilIdSet = new HashSet<>(); for (WmsCheckTaskCoilRelation relation : coilRelations) { coilIdSet.add(relation.getCoilId()); } - // 查询钢卷基础信息 List coilList = queryCoilsByIds(coilIdSet); vo.setCoilList(coilList); }