| | |
| | | import org.jeecg.modules.base.service.IShiftService; |
| | | import org.jeecg.modules.lsw.entity.LswMaterial; |
| | | import org.jeecg.modules.lsw.entity.LswMaterialInbound; |
| | | import org.jeecg.modules.lsw.entity.LswMaterialInventory; |
| | | import org.jeecg.modules.lsw.enums.MaterialCategoryEnum; |
| | | import org.jeecg.modules.lsw.enums.MaterialInboundCategory; |
| | | import org.jeecg.modules.lsw.enums.MaterialInventoryStatusEnum; |
| | | import org.jeecg.modules.lsw.service.ILswMaterialInboundService; |
| | | import org.jeecg.modules.lsw.service.ILswMaterialInventoryService; |
| | | import org.jeecg.modules.lsw.service.ILswMaterialService; |
| | | import org.jeecg.modules.mes.entity.*; |
| | | import org.jeecg.modules.mes.enums.ReportCategoryEnum; |
| | | import org.jeecg.modules.mes.mapper.MesWorkReportingMapper; |
| | | import org.jeecg.modules.mes.service.*; |
| | | import org.jeecg.modules.mes.utils.CommonUtils; |
| | |
| | | import java.time.temporal.ChronoField; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.Stream; |
| | | |
| | | /** |
| | | * @Description: 工忥工 |
| | |
| | | private IInspectionPlanItemService inspectionPlanItemService; |
| | | @Autowired |
| | | private IMesMaterialConsumptionDetailService mesMaterialConsumptionDetailService; |
| | | @Autowired |
| | | private ILswMaterialInventoryService lswMaterialInventoryService; |
| | | |
| | | @Override |
| | | public List<MesWorkReporting> queryWorkReportingByWorkOrderId(String workOrderId) { |
| | |
| | | //æ¼æ¥æåæ¥å·¥æå· |
| | | String palletNumber4 = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingPalletNumber4"); |
| | | String finishedPalletNumber = material.getMaterialNumber() + date + palletNumber4; |
| | | mesWorkReporting.setPalletNumber(finishedPalletNumber).setReportType("FINISHED"); |
| | | mesWorkReporting.setPalletNumber(finishedPalletNumber).setReportType(ReportCategoryEnum.FINISHED.name()); |
| | | break; |
| | | case INNER_FLANGE: |
| | | case OUTER_FLANGE: |
| | |
| | | Shift shift = shiftService.getById(workOrder.getShiftId()); |
| | | String palletNumber6 = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingPalletNumber6"); |
| | | String halfPalletNumber = factory.getFactoryCode() + material.getMaterialNumber() + date + shift.getShiftCode() + palletNumber6; |
| | | mesWorkReporting.setPalletNumber(halfPalletNumber).setReportType("HALF"); |
| | | mesWorkReporting.setPalletNumber(halfPalletNumber).setReportType(ReportCategoryEnum.HALF.name()); |
| | | break; |
| | | case BLANK: |
| | | //çå¤çæ¥å·¥ |
| | | consumptionDetailList = heatTreatmentReport(mesWorkReporting, workOrder, lineSideWarehouse); |
| | | mesWorkReporting.setReportType(ReportCategoryEnum.HEATTREATMENT.name()); |
| | | |
| | | } |
| | | //æ°å¢æ¥å·¥è®°å½ |
| | | save(mesWorkReporting); |
| | |
| | | return mesWorkReporting; |
| | | } |
| | | |
| | | //çå¤çæ¥å·¥ |
| | | private List<MesMaterialConsumptionDetail> heatTreatmentReport(MesWorkReporting mesWorkReporting, MesProductionWorkOrder workOrder, LineSideWarehouse lineSideWarehouse) { |
| | | //1ãå
¥åºçå¤çæ¯å¯å°å¯¹åºçº¿è¾¹åºï¼çå¤çååç©æç¼ç ä¸åçååï¼åªéè¦æ´æ°çå¤çæ è¯ï¼æä»¥æ¤å¤ä¸è½ç´æ¥è°ç¨çº¿è¾¹åºçå
¥åºæ¹æ³ï¼éè¦ç´æ¥æ´æ°ç©æåºåä¿¡æ¯ä¸ççå¤çæ è¯å段 |
| | | LswMaterialInventory materialInventory = lswMaterialInventoryService.list(new LambdaQueryWrapper<LswMaterialInventory>() |
| | | .eq(LswMaterialInventory::getWarehouseId, lineSideWarehouse.getId()) |
| | | .eq(LswMaterialInventory::getInventoryStatus, MaterialInventoryStatusEnum.OUTBOUND.name()) |
| | | .eq(LswMaterialInventory::getHeatTreatmentFlag, CommonConstant.STATUS_0) |
| | | .apply("EXISTS SELECT 1 FROM lsw_material t WHERE t.id = lsw_material_inventory.material_id AND t.material_number = {0} " + |
| | | "AND t.del_flag = {1} AND t.material_status = {2}", workOrder.getMaterialNumber(), CommonConstant.DEL_FLAG_0, CommonConstant.STATUS_1)).stream().findFirst().orElse(null); |
| | | if (materialInventory == null) { |
| | | throw new JeecgBootException("çº¿è¾¹åºæ è¯¥ç©æåºåä¿¡æ¯ï¼"); |
| | | } |
| | | if (materialInventory.getQuantity().compareTo(mesWorkReporting.getQuantity()) != 0) { |
| | | throw new JeecgBootException("æ¥å·¥æ°éä¸ç¬¦åæ´æ¹æ¬¡æ°éè¦æ±ï¼"); |
| | | } |
| | | materialInventory.setHeatTreatmentFlag(CommonConstant.STATUS_1); |
| | | materialInventory.setInventoryStatus(MaterialInventoryStatusEnum.NORMAL.name()); |
| | | lswMaterialInventoryService.updateById(materialInventory); |
| | | //2ãæ´æ°è¯¥æ¹æ¬¡å·å¾ä¸æè®°å½ |
| | | MesMaterialLoading materialLoading = mesMaterialLoadingService.list(new LambdaQueryWrapper<MesMaterialLoading>() |
| | | .eq(MesMaterialLoading::getFactoryId, workOrder.getFactoryId()) |
| | | .eq(MesMaterialLoading::getWarehouseId, lineSideWarehouse.getId()) |
| | | .eq(MesMaterialLoading::getMaterialNumber, workOrder.getMaterialNumber()) |
| | | .eq(MesMaterialLoading::getBatchNumber, materialInventory.getBatchNumber())) |
| | | .stream().findFirst().orElse(null); |
| | | if (materialLoading == null) { |
| | | throw new JeecgBootException("æªæ¾å°è¯¥æ¹æ¬¡å·çä¸æè®°å½ï¼"); |
| | | } |
| | | materialLoading.setRemainingQuantity(BigDecimal.ZERO); |
| | | mesMaterialLoadingService.updateById(materialLoading); |
| | | //çå¤çæ¥å·¥ï¼æ¹æ¬¡å·ååºåçæ´æ¹æ¹æ¬¡å· |
| | | mesWorkReporting.setBatchNumber(materialInventory.getBatchNumber()); |
| | | //3ãè®°å½æ¶èæç» |
| | | MesMaterialConsumptionDetail materialConsumptionDetail = new MesMaterialConsumptionDetail() |
| | | .setWorkOrderId(workOrder.getId()) |
| | | .setFactoryId(workOrder.getFactoryId()) |
| | | .setLoadingId(materialLoading.getId()) |
| | | .setQuantity(mesWorkReporting.getQuantity()); |
| | | return Collections.singletonList(materialConsumptionDetail); |
| | | } |
| | | |
| | | //åæå(å
æ³å
°ã夿³å
°)ãæåæ¥å·¥ |
| | | private List<MesMaterialConsumptionDetail> productReport(MesWorkReporting mesWorkReporting, MesProductionWorkOrder workOrder, LineSideWarehouse lineSideWarehouse) { |
| | | //1ãå
¥åº åæå/æå å°å¯¹åºçº¿è¾¹åº |