From 53577ae0fcba9342b22ad1758303aa61409160d1 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期五, 12 九月 2025 19:10:58 +0800 Subject: [PATCH] art: 设备保养标准导入问题修改 --- src/main/java/org/jeecg/modules/mes/service/impl/MesProductionWorkOrderServiceImpl.java | 61 +++++++++++++++++++++++++++++- 1 files changed, 58 insertions(+), 3 deletions(-) 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 e871cce..6c024fc 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 @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; @@ -18,8 +19,11 @@ import org.jeecg.modules.base.service.ILineSideWarehouseService; import org.jeecg.modules.base.service.IShiftGroupService; import org.jeecg.modules.base.service.IShiftService; +import org.jeecg.modules.lsw.entity.LswMaterial; import org.jeecg.modules.lsw.entity.LswMaterialInventory; +import org.jeecg.modules.lsw.enums.MaterialCategoryEnum; import org.jeecg.modules.lsw.service.ILswMaterialInventoryService; +import org.jeecg.modules.lsw.service.ILswMaterialService; import org.jeecg.modules.lsw.vo.LswMaterialInventoryVo; import org.jeecg.modules.mes.dto.MesProductionWorkScheduleRequest; import org.jeecg.modules.mes.entity.MesKittingCompletenessCheck; @@ -67,6 +71,8 @@ @Autowired private IPmsProcessBillMaterialsDetailService pmsProcessBillMaterialsDetailService; @Autowired + private ILswMaterialService lswMaterialService; + @Autowired private ILswMaterialInventoryService lswMaterialInventoryService; @Autowired private ILineSideWarehouseService lineSideWarehouseService; @@ -95,6 +101,16 @@ .limit(ChronoUnit.DAYS.between(startDate, endDate) + 1) .collect(Collectors.toList()); List<MesProductionWorkOrder> newProductionWorkOrderList = CollectionUtil.newArrayList(); + String materialNumber = request.getMaterialNumber(); + BigDecimal planQuantity = request.getPlanQuantity(); + if (StringUtils.isNotBlank(materialNumber)) { + LswMaterial material = lswMaterialService.list(new LambdaQueryWrapper<LswMaterial>() + .eq(LswMaterial::getMaterialNumber, materialNumber) + .eq(LswMaterial::getDelFlag, CommonConstant.DEL_FLAG_0) + .eq(LswMaterial::getMaterialStatus, CommonConstant.STATUS_1)) + .stream().findFirst().orElse(null); + request.setMaterialName(Objects.requireNonNull(material).getMaterialName()); + } for (LocalDate date : dateRange) { for (String shiftId : shiftGroupMap.keySet()) { @@ -117,7 +133,10 @@ .setShiftName(shiftNameMap.get(shiftId).getShiftName()) .setGroupId(shiftGroup.getId()) .setGroupName(shiftGroup.getGroupName()) - .setWorkOrderDate(workOrderDate); + .setWorkOrderDate(workOrderDate) + .setMaterialNumber(StringUtils.isNotBlank(materialNumber) ? materialNumber : "") + .setMaterialName(StringUtils.isNotBlank(materialNumber) ? request.getMaterialName() : "") + .setPlanQuantity(Objects.nonNull(planQuantity) ? planQuantity : null); newProductionWorkOrderList.add(mesProductionWorkOrder); } @@ -128,7 +147,10 @@ MesProductionWorkOrder mesProductionWorkOrder = new MesProductionWorkOrder() .setFactoryId(factory.getId()) .setFactoryCode(factory.getFactoryCode()) - .setFactoryName(factory.getFactoryName()); + .setFactoryName(factory.getFactoryName()) + .setMaterialNumber(StringUtils.isNotBlank(materialNumber) ? materialNumber : "") + .setMaterialName(StringUtils.isNotBlank(materialNumber) ? request.getMaterialName() : "") + .setPlanQuantity(Objects.nonNull(planQuantity) ? planQuantity : null);; newProductionWorkOrderList.add(mesProductionWorkOrder); } return newProductionWorkOrderList; @@ -212,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鏄庣粏鍒楀嚭榻愬妫�鏌ョ粨鏋� @@ -238,4 +260,37 @@ }); 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); + } + + @Override + public IPage<MesProductionWorkOrder> queryWorkOrderByTransfer(Page<MesProductionWorkOrder> page) { + return this.getBaseMapper().queryWorkOrderByTransfer(page); + } } -- Gitblit v1.9.3