| | |
| | | import org.jeecg.modules.mes.entity.MesKittingCompletenessCheck; |
| | | import org.jeecg.modules.mes.entity.MesProductionOrder; |
| | | import org.jeecg.modules.mes.enums.ProductionOrderStatus; |
| | | import org.jeecg.modules.mes.service.IMesKittingCompletenessCheckService; |
| | | import org.jeecg.modules.mes.service.IMesProductionOrderService; |
| | | import org.jeecg.modules.mes.service.IMesProductionWorkOrderService; |
| | | import org.jeecg.modules.mes.entity.MesProductionWorkOrder; |
| | |
| | | private ILswMaterialInventoryService lswMaterialInventoryService; |
| | | @Autowired |
| | | private ILineSideWarehouseService lineSideWarehouseService; |
| | | @Autowired |
| | | private IMesKittingCompletenessCheckService mesKittingCompletenessCheckService; |
| | | |
| | | @Override |
| | | public List<MesProductionWorkOrder> schedule(MesProductionWorkScheduleRequest request) { |
| | |
| | | .selectLineSideMaterialInventoryByMaterialNumber(bomMaterialNumberList, lineSideWarehouse.getId(), null).stream() |
| | | .collect(Collectors.toMap(LswMaterialInventoryVo::getMaterialNumber, v1 -> v1, (v1, v2) -> v1)); |
| | | List<MesKittingCompletenessCheck> completenessCheckResultList = CollectionUtil.newArrayList(); |
| | | //查询是否有齐套检查记录(已齐备的) |
| | | List<String> checkedMaterialNumberList = mesKittingCompletenessCheckService.list(new LambdaQueryWrapper<MesKittingCompletenessCheck>() |
| | | .eq(MesKittingCompletenessCheck::getWorkOrderId, workOrder.getId()) |
| | | .in(MesKittingCompletenessCheck::getMaterialNumber, bomMaterialNumberList) |
| | | .eq(MesKittingCompletenessCheck::getCheckFlag, CommonConstant.DEFAULT_1)) |
| | | .stream().map(MesKittingCompletenessCheck::getMaterialNumber).collect(Collectors.toList()); |
| | | //根据订单BOM明细列出齐套检查结果 |
| | | for (PmsProcessBillMaterialsDetail processBillMaterialsDetail : processBillMaterialsDetails) { |
| | | LswMaterialInventoryVo materialInventoryVo = lswMaterialInventoryMap.get(processBillMaterialsDetail.getMaterialNumber()); |
| | | String materialNumber = processBillMaterialsDetail.getMaterialNumber(); |
| | | if (checkedMaterialNumberList.contains(materialNumber)) { |
| | | //如果已经做过齐套性检查,并且齐备,就忽略掉 |
| | | continue; |
| | | } |
| | | LswMaterialInventoryVo materialInventoryVo = lswMaterialInventoryMap.get(materialNumber); |
| | | MesKittingCompletenessCheck completenessCheckItem = new MesKittingCompletenessCheck() |
| | | .setMaterialNumber(processBillMaterialsDetail.getMaterialNumber()) |
| | | .setMaterialNumber(materialNumber) |
| | | .setMaterialName(processBillMaterialsDetail.getMaterialName()) |
| | | //需求数量 = (bom明细的需求数量 / bom订单的数量) * 排产工单计划生产数量 |
| | | .setRequiredQuantity(processBillMaterialsDetail.getUsageQuantity() |
| | |
| | | .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); |
| | | } |
| | | } |