From c9d3f6285440719077a2ff48e922f94b0258fbc3 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期三, 20 八月 2025 16:54:21 +0800 Subject: [PATCH] 报工接口完善 --- src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java | 43 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java b/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java index 271c5aa..d5f8a99 100644 --- a/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java +++ b/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java @@ -34,6 +34,11 @@ import org.jeecg.modules.pms.service.IPmsMaterialProcessService; import org.jeecg.modules.pms.service.IPmsProcessBillMaterialsService; import org.jeecg.modules.pms.vo.ProcessBillMaterialsDetailVo; +import org.jeecg.modules.qms.entity.InspectionPlan; +import org.jeecg.modules.qms.entity.InspectionPlanItem; +import org.jeecg.modules.qms.enums.PlanCategoryEnum; +import org.jeecg.modules.qms.service.IInspectionPlanItemService; +import org.jeecg.modules.qms.service.IInspectionPlanService; import org.jeecg.modules.sap.request.OrderLoadRequest; import org.jeecg.modules.sap.request.OrderReportRequest; import org.jeecg.modules.sap.service.OrderLoadService; @@ -88,6 +93,10 @@ private OrderReportService orderReportService; @Autowired private OrderLoadService orderLoadService; + @Autowired + private IInspectionPlanService inspectionPlanService; + @Autowired + private IInspectionPlanItemService inspectionPlanItemService; @Override public List<MesWorkReporting> queryWorkReportingByWorkOrderId(String workOrderId) { @@ -101,7 +110,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public void addReporting(MesWorkReporting mesWorkReporting) { + public MesWorkReporting addReporting(MesWorkReporting mesWorkReporting) { MesProductionWorkOrder workOrder = mesProductionWorkOrderService.getById(mesWorkReporting.getWorkOrderId()); if (workOrder == null) { throw new JeecgBootException("宸ュ崟涓嶅瓨鍦紒"); @@ -134,7 +143,9 @@ int currentPallets = workOrder.getFinishedPallets() + 1; String batchNumber = yearLastTwo + dayOfYearStr + shiftGroup.getGroupCode() + currentPallets; mesWorkReporting.setBatchNumber(batchNumber) + .setWorkOrderCode(workOrder.getWorkOrderCode()) .setWarehouseId(lineSideWarehouse.getId()) + .setWarehouseCode(lineSideWarehouse.getWarehouseCode()) .setReporter(Objects.requireNonNull(CommonUtils.getCurrentUser()).getUsername()) .setReportTime(new Date()); String date = today.format(DateTimeFormatter.ofPattern("yyMMdd")); @@ -144,11 +155,12 @@ case FINISHED_PRODUCT: //鎴愬搧鎶ュ伐 productReport(mesWorkReporting, workOrder, lineSideWarehouse); + //鐢熸垚妫�楠屽伐鍗� + generateInspectionOrder(mesWorkReporting, workOrder); //鎷兼帴鎴愬搧鎶ュ伐鎵樺彿 String palletNumber4 = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingPalletNumber4"); String finishedPalletNumber = material.getMaterialNumber() + date + palletNumber4; - mesWorkReporting.setPalletNumber(finishedPalletNumber); - //todo 鎵撳嵃鎴愬搧鎵樻爣绛俱�佹楠屾爣璇嗗崱銆佺Щ搴撳崟銆佸畬宸ユ楠屽伐鍗� + mesWorkReporting.setPalletNumber(finishedPalletNumber).setReportType("FINISHED"); break; case INNER_FLANGE: case OUTER_FLANGE: @@ -158,7 +170,7 @@ Shift shift = shiftService.getById(workOrder.getShiftId()); String palletNumber6 = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingPalletNumber6"); String halfPalletNumber = factory.getFactoryCode() + material.getMaterialNumber() + date + shift.getShiftCode() + palletNumber6; - mesWorkReporting.setPalletNumber(halfPalletNumber); + mesWorkReporting.setPalletNumber(halfPalletNumber).setReportType("HALF"); break; } //鏂板鎶ュ伐璁板綍 @@ -169,6 +181,8 @@ .setActualQuantity(workOrder.getActualQuantity().add(mesWorkReporting.getQuantity())) .setFinishedPallets(workOrder.getFinishedPallets() + 1); mesProductionWorkOrderService.updateById(productionWorkUpdateOrder); + //杩斿洖鎶ュ伐璁板綍锛岀敤浜庢墭鏍囩鎵撳嵃 + return mesWorkReporting; } //鍗婃垚鍝�(鍐呮硶鍏般�佸娉曞叞)銆佹垚鍝佹姤宸� @@ -246,6 +260,27 @@ } } + //鏍规嵁妫�楠屾柟妗堢敓鎴愭楠屽伐鍗� + private void generateInspectionOrder(MesWorkReporting mesWorkReporting, MesProductionWorkOrder workOrder) { + //1.鏍规嵁鐗╂枡缂栫爜鏌ヨ妫�楠屾柟妗� + InspectionPlan inspectionPlan = inspectionPlanService.list(new LambdaQueryWrapper<InspectionPlan>() + .eq(InspectionPlan::getMaterialNumber, workOrder.getMaterialNumber()) + .eq(InspectionPlan::getPlanCategory, PlanCategoryEnum.COMPLETION_INSPECTION.name()) + .eq(InspectionPlan::getPlanStatus, CommonConstant.STATUS_1) + .eq(InspectionPlan::getDelFlag, CommonConstant.DEL_FLAG_0)).stream().findFirst().orElse(null); + if (inspectionPlan == null) { + throw new JeecgBootException("鏈壘鍒拌鐗╂枡鐨勬楠屾柟妗堬紒"); + } + List<InspectionPlanItem> inspectionPlanItemList = inspectionPlanItemService.list(new LambdaQueryWrapper<InspectionPlanItem>() + .eq(InspectionPlanItem::getPlanId, inspectionPlan.getId()) + .orderByAsc(InspectionPlanItem::getSorter)); + if (inspectionPlanItemList.isEmpty()) { + throw new JeecgBootException("鏈壘鍒拌鐗╂枡鐨勬楠屾柟妗堟楠岄」鏄庣粏锛�"); + } + //2.鐢熸垚妫�楠屽伐鍗� + //todo 妫�楠屽伐鍗曠洰鍓嶈繕娌℃湁鐢熸垚浠g爜锛屾病鏈夊姛鑳� + } + private List<MesMaterialLoading> deductQuantity(List<MesMaterialLoading> materialLoadingRecordList, BigDecimal quantity) { for (MesMaterialLoading mesMaterialLoading : materialLoadingRecordList) { if (mesMaterialLoading.getRemainingQuantity().compareTo(quantity) >= 0) { -- Gitblit v1.9.3