From cb0cbf01863bf3d22c06410a37d280719a5c92c3 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期五, 12 九月 2025 15:05:24 +0800 Subject: [PATCH] 齐套性检查适配热处理产线 --- db/双林新火炬MES数据库设计.pdma.json | 6 ++- src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml | 4 ++ src/main/java/org/jeecg/modules/mes/service/impl/MesProductionWorkOrderServiceImpl.java | 30 ++++++++++++++ src/main/java/org/jeecg/modules/mes/controller/MesProductionWorkOrderController.java | 13 ++++++ src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java | 4 +- src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java | 2 src/main/java/org/jeecg/modules/mes/service/IMesProductionWorkOrderService.java | 2 + src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java | 3 + 8 files changed, 57 insertions(+), 7 deletions(-) diff --git "a/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" "b/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" index 23e4f7d..151d536 100644 --- "a/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" +++ "b/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" @@ -4,7 +4,7 @@ "avatar": "", "version": "4.9.2", "createdTime": "2025-3-10 16:38:19", - "updatedTime": "2025-9-9 17:51:22", + "updatedTime": "2025-9-12 15:03:56", "dbConns": [], "profile": { "default": { @@ -71266,7 +71266,9 @@ "B57F92D3-3089-453E-A007-85C497CEE088", "EE37A932-3559-47C8-A1F3-1E788DE4A116", "D1A16DCC-C4AB-4717-A74C-1B52B918A87F", - "378CF92C-B63B-4D7F-84DF-5D2F84CE4753" + "378CF92C-B63B-4D7F-84DF-5D2F84CE4753", + "9F7C10B2-9B87-4E80-AF35-D054CEEF11FA", + "C4D7D8D8-A80F-4A15-B253-50CF701ADF78" ], "refViews": [], "refDiagrams": [], diff --git a/src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java b/src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java index 33b2e38..2afeb8d 100644 --- a/src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java +++ b/src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java @@ -18,7 +18,8 @@ public interface LswMaterialInventoryMapper extends BaseMapper<LswMaterialInventory> { List<LswMaterialInventoryVo> selectLineSideMaterialInventoryByMaterialNumber(@Param("materialNumberList") List<String> bomMaterialNumberList, - @Param("factoryId") String factoryId); + @Param("factoryId") String factoryId, + @Param("heatFlag") String heatFlag); /** * 搴撳瓨缁熻 diff --git a/src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml b/src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml index e04fea9..c7cedf7 100644 --- a/src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml +++ b/src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml @@ -13,7 +13,11 @@ <foreach collection="materialNumberList" item="item" separator="," open="(" close=")"> #{item} </foreach> + <if test="heatFlag != null and heatFlag != ''"> + AND t2.heat_treatment_flag = #{heatFlag} + </if> AND t2.warehouse_id = #{factoryId} + AND t2.inventory_status = 'NORMAL' AND t1.del_flag = 0 GROUP BY t1.material_number, diff --git a/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java b/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java index a4e9e61..c63b5cb 100644 --- a/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java +++ b/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java @@ -16,7 +16,7 @@ */ public interface ILswMaterialInventoryService extends IService<LswMaterialInventory> { /** 閫氳繃鐗╂枡缂栫爜鍜岀嚎杈瑰簱id鏌ヨ鐗╂枡搴撳瓨 */ - List<LswMaterialInventoryVo> selectLineSideMaterialInventoryByMaterialNumber(List<String> bomMaterialNumberList, String factoryId); + List<LswMaterialInventoryVo> selectLineSideMaterialInventoryByMaterialNumber(List<String> bomMaterialNumberList, String factoryId, String heatFlag); /** * 搴撳瓨缁熻 diff --git a/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java b/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java index 4517bf2..542a11a 100644 --- a/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java +++ b/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java @@ -43,8 +43,8 @@ private IFactoryService factoryService; @Override - public List<LswMaterialInventoryVo> selectLineSideMaterialInventoryByMaterialNumber(List<String> bomMaterialNumberList, String factoryId) { - return lswMaterialInventoryMapper.selectLineSideMaterialInventoryByMaterialNumber(bomMaterialNumberList, factoryId); + public List<LswMaterialInventoryVo> selectLineSideMaterialInventoryByMaterialNumber(List<String> bomMaterialNumberList, String factoryId, String heatFlag) { + return lswMaterialInventoryMapper.selectLineSideMaterialInventoryByMaterialNumber(bomMaterialNumberList, factoryId, heatFlag); } @Override diff --git a/src/main/java/org/jeecg/modules/mes/controller/MesProductionWorkOrderController.java b/src/main/java/org/jeecg/modules/mes/controller/MesProductionWorkOrderController.java index 9731f87..302d513 100644 --- a/src/main/java/org/jeecg/modules/mes/controller/MesProductionWorkOrderController.java +++ b/src/main/java/org/jeecg/modules/mes/controller/MesProductionWorkOrderController.java @@ -16,6 +16,9 @@ import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.base.entity.Factory; +import org.jeecg.modules.base.enums.ProductionTypeEnum; +import org.jeecg.modules.base.service.IFactoryService; import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum; import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum; import org.jeecg.modules.eam.entity.EamEquipment; @@ -65,6 +68,8 @@ private IEamProcessCheckDetailService eamProcessCheckDetailService; @Autowired private IEamEquipmentService eamEquipmentService; + @Autowired + private IFactoryService factoryService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -221,6 +226,14 @@ if (!ProductionWorkOrderStatus.PUBLISHED.name().equals(workOrder.getWorkOrderStatus())) { return Result.error("褰撳墠宸ュ崟鐘舵�佷笉鑳借繘琛岄綈濂楁�ф鏌ワ紒"); } + Factory factory = factoryService.getById(workOrder.getFactoryId()); + String productionType = factory.getProductionType(); + if (ProductionTypeEnum.HEATTREATMENT.name().equals(productionType)) { + //鐑鐞嗕骇绾� + List<MesKittingCompletenessCheck> list = mesProductionWorkOrderService.workOrderCompletenessCheckOnHeatTreatment(workOrder); + return Result.ok(list); + } + //鍏朵綑浜х嚎 List<MesKittingCompletenessCheck> list = mesProductionWorkOrderService.workOrderCompletenessCheck(workOrder); return Result.ok(list); } diff --git a/src/main/java/org/jeecg/modules/mes/service/IMesProductionWorkOrderService.java b/src/main/java/org/jeecg/modules/mes/service/IMesProductionWorkOrderService.java index d643686..1c64a6e 100644 --- a/src/main/java/org/jeecg/modules/mes/service/IMesProductionWorkOrderService.java +++ b/src/main/java/org/jeecg/modules/mes/service/IMesProductionWorkOrderService.java @@ -23,4 +23,6 @@ IPage<MesProductionWorkOrder> queryPageList(Page<MesProductionWorkOrder> page, Map<String, String[]> parameterMap); List<MesKittingCompletenessCheck> workOrderCompletenessCheck(MesProductionWorkOrder workOrder); + + List<MesKittingCompletenessCheck> workOrderCompletenessCheckOnHeatTreatment(MesProductionWorkOrder workOrder); } diff --git a/src/main/java/org/jeecg/modules/mes/service/impl/MesProductionWorkOrderServiceImpl.java b/src/main/java/org/jeecg/modules/mes/service/impl/MesProductionWorkOrderServiceImpl.java index 83314ea..d41417c 100644 --- a/src/main/java/org/jeecg/modules/mes/service/impl/MesProductionWorkOrderServiceImpl.java +++ b/src/main/java/org/jeecg/modules/mes/service/impl/MesProductionWorkOrderServiceImpl.java @@ -234,7 +234,7 @@ List<String> bomMaterialNumberList = processBillMaterialsDetails.stream() .map(PmsProcessBillMaterialsDetail::getMaterialNumber).collect(Collectors.toList()); Map<String, LswMaterialInventoryVo> lswMaterialInventoryMap = lswMaterialInventoryService - .selectLineSideMaterialInventoryByMaterialNumber(bomMaterialNumberList, lineSideWarehouse.getId()).stream() + .selectLineSideMaterialInventoryByMaterialNumber(bomMaterialNumberList, lineSideWarehouse.getId(), null).stream() .collect(Collectors.toMap(LswMaterialInventoryVo::getMaterialNumber, v1 -> v1, (v1, v2) -> v1)); List<MesKittingCompletenessCheck> completenessCheckResultList = CollectionUtil.newArrayList(); //鏍规嵁璁㈠崟BOM鏄庣粏鍒楀嚭榻愬妫�鏌ョ粨鏋� @@ -260,4 +260,32 @@ }); return completenessCheckResultList; } + + @Override + public List<MesKittingCompletenessCheck> workOrderCompletenessCheckOnHeatTreatment(MesProductionWorkOrder workOrder) { + //鏌ヨ宸ュ崟鎵�灞炰骇绾垮搴旂殑绾胯竟浠� + LineSideWarehouse lineSideWarehouse = lineSideWarehouseService.list(new LambdaQueryWrapper<LineSideWarehouse>() + .eq(LineSideWarehouse::getFactoryId, workOrder.getFactoryId()) + .eq(LineSideWarehouse::getDelFlag, CommonConstant.DEL_FLAG_0) + .eq(LineSideWarehouse::getWarehouseStatus, CommonConstant.DEFAULT_1)) + .stream().findFirst().orElse(null); + if (lineSideWarehouse == null) { + throw new JeecgBootException("璇ヤ骇绾挎湭閰嶇疆绾胯竟浠擄紒"); + } + //鏌ヨ宸ュ崟鐑鐞嗙墿鏂欏搴旀瘺鍧湪绾胯竟浠撶殑搴撳瓨 + LswMaterialInventoryVo materialInventoryVo = lswMaterialInventoryService.selectLineSideMaterialInventoryByMaterialNumber(Collections + .singletonList(workOrder.getMaterialNumber()), lineSideWarehouse.getId(), CommonConstant.DEFAULT_0) + .stream().findFirst().orElse(null); + if (materialInventoryVo == null) { + throw new JeecgBootException("绾胯竟搴撶墿鏂欎笉瀛樺湪锛�"); + } + MesKittingCompletenessCheck completenessCheck = new MesKittingCompletenessCheck() + .setMaterialNumber(materialInventoryVo.getMaterialNumber()) + .setMaterialName(materialInventoryVo.getMaterialName()) + .setRequiredQuantity(workOrder.getPlanQuantity()) + .setActualQuantity(materialInventoryVo.getStockQuantity()) + .setProductionUnit("PC") + .setCheckFlag(materialInventoryVo.getStockQuantity().compareTo(workOrder.getPlanQuantity()) > 0 ? CommonConstant.DEFAULT_1 : CommonConstant.DEFAULT_0); + return Collections.singletonList(completenessCheck); + } } -- Gitblit v1.9.3