diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java index c5e75c6..7467b6a 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -216,6 +216,28 @@ public class MesWorkOrderController extends BaseMesController { } } + @GetMapping(value = "/show-work-order") + @ApiOperation(value = "装配目视单预览查询") + public ResultBean doShowWorkOrderPrint(String partNo, String workCenterCode, String partProdGroupCode, String carModelCode, String organizeCode, String userName ) { + try { + + ValidatorBean.checkNotNull(partNo, "零件号不能为空"); + ValidatorBean.checkNotNull(workCenterCode, "产线不能为空"); + ValidatorBean.checkNotNull(partProdGroupCode, "生产组代码不能为空"); + ValidatorBean.checkNotNull(carModelCode, "车型代码不能为空"); + ValidatorBean.checkNotNull(organizeCode, "工厂代码不能为空"); + ValidatorBean.checkNotNull(userName, "操作人不能为空"); + + return ResultBean.success("装配目视单预览查询成功") + .setResultList(mesWorkOrderService.doShowWorkOrderPrint(partNo, workCenterCode, partProdGroupCode, carModelCode, organizeCode, userName)) + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + @PutMapping(value = "/reopen") @ApiOperation(value = "重新打开") diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java index 8b7623e..3e5f9c4 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java @@ -64,7 +64,7 @@ public class MesPartProdGroupService extends BaseMesService im DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getInPackList(partProdGroupCodeList, MesExtConstWords.PART_PROD_GROUP_CODE, packBean); List partProdGroupList = baseRDao.findByHqlWhere(packBean); - return partProdGroupList.stream().collect(Collectors.toMap(MesPartProdGroup::getPartProdGroupCode, Function.identity(), (x, y) -> y)); + return CollectionUtils.isEmpty(partProdGroupList) ? null : partProdGroupList.stream().collect(Collectors.toMap(MesPartProdGroup::getPartProdGroupCode, Function.identity(), (x, y) -> y)); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 815e149..1d74cf8 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -1255,9 +1255,7 @@ public class MesWorkOrderService extends BaseMesService implements // 根据id 获取工单数据 List mesWorkOrderList = getMesWorkOrderList(ids, organizeCode); - List> resultMapList = packPrintResultMap(organizeCode, mesWorkOrderList, userName); - - return resultMapList; + return packPrintResultMap(organizeCode, mesWorkOrderList, userName); } @@ -1272,7 +1270,7 @@ public class MesWorkOrderService extends BaseMesService implements List mesWorkCenters = workCenterService.queryMesWorkCenterList(workCenterCodeList, organizeCode); // 产线名称集合 - Map workCenterNameMap = mesWorkCenters.stream().collect(Collectors.toMap(MesWorkCenter::getWorkCenterCode, MesWorkCenter::getWorkCenterName, (x, y) -> y)); + Map workCenterNameMap = CollectionUtils.isEmpty(mesWorkCenters) ? null : mesWorkCenters.stream().collect(Collectors.toMap(MesWorkCenter::getWorkCenterCode, MesWorkCenter::getWorkCenterName, (x, y) -> y)); // 生产零件号 List partProdGroupCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getPartProdGroupCode).distinct().collect(Collectors.toList()); @@ -1299,9 +1297,9 @@ public class MesWorkOrderService extends BaseMesService implements continue; } - mesWorkOrder.setWorkCenterName(workCenterNameMap.get(mesWorkOrder.getWorkCenterCode())); + mesWorkOrder.setWorkCenterName(!Objects.isNull(workCenterNameMap) && workCenterNameMap.containsKey(mesWorkOrder.getWorkCenterCode()) ? workCenterNameMap.get(mesWorkOrder.getWorkCenterCode()) : ""); - MesPartProdGroup mesPartProdGroup = partProdGroupMap.get(mesWorkOrder.getPartProdGroupCode()); + MesPartProdGroup mesPartProdGroup = !Objects.isNull(partProdGroupMap) && partProdGroupMap.containsKey(mesWorkOrder.getPartProdGroupCode()) ? partProdGroupMap.get(mesWorkOrder.getPartProdGroupCode()) : null; if (mesPartProdGroup == null) { MesException.throwMesBusiException("工单【%s】关联零件生产组【%s】不存在", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getPartProdGroupCode()); @@ -1324,11 +1322,12 @@ public class MesWorkOrderService extends BaseMesService implements modelMap.put("mesWorkOrder", mesWorkOrder); modelMap.put("mesPartProdGroup", mesPartProdGroup); - MesCustomerCarModel customerCarModel = carModelMapByCode.get(mesWorkOrder.getCarModelCode()); + MesCustomerCarModel customerCarModel = !Objects.isNull(carModelMapByCode) && carModelMapByCode.containsKey(mesWorkOrder.getCarModelCode()) ? carModelMapByCode.get(mesWorkOrder.getCarModelCode()) : null; if (customerCarModel != null) { modelMap.put("mesCustomerCarModel", customerCarModel); } - List workOrderAssemblyListByWorkOrderNo = workOrderAssemblyMapByWorkOrderNo.get(mesWorkOrder.getWorkOrderNo()); + List workOrderAssemblyListByWorkOrderNo = !Objects.isNull(workOrderAssemblyMapByWorkOrderNo) && workOrderAssemblyMapByWorkOrderNo.containsKey(mesWorkOrder.getWorkOrderNo()) ? workOrderAssemblyMapByWorkOrderNo.get(mesWorkOrder.getWorkOrderNo()) : null; + if (!CollectionUtils.isEmpty(workOrderAssemblyListByWorkOrderNo)) { modelMap.put("mesWorkOrderAssemblyList", workOrderAssemblyListByWorkOrderNo); } @@ -1373,6 +1372,9 @@ public class MesWorkOrderService extends BaseMesService implements DdlPreparedPack.getStringEqualPack(carModelCode, MesExtConstWords.CAR_MODEL_CODE, packBean); packBean.setOrderByStr(" order by createDatetime desc "); MesWorkOrder workOrder = workOrderRepository.getByProperty(packBean); + if (Objects.isNull(workOrder)) { + MesException.throwMesBusiException("零件【%s】产线【%s】生产组【%s】车型【%s】的工单不存在", partNo, workCenterCode, partProdGroupCode, carModelCode); + } List workOrderList = new ArrayList<>(); workOrderList.add(workOrder); @@ -1387,7 +1389,7 @@ public class MesWorkOrderService extends BaseMesService implements DdlPreparedPack.getInPackList(carModelCodeList, MesExtConstWords.CAR_MODEL_CODE, packBean); List customerCarModelList = customerCarModelRepository.findByHqlWhere(packBean); - return customerCarModelList.stream().collect(Collectors.toMap(MesCustomerCarModel::getCarModelCode, Function.identity(), (x, y) -> y)); + return CollectionUtils.isEmpty(customerCarModelList) ? null : customerCarModelList.stream().collect(Collectors.toMap(MesCustomerCarModel::getCarModelCode, Function.identity(), (x, y) -> y)); } private Map> getWorkOrderAssemblyMapByWorkOrderNo(String organizeCode, Map workOrderMapByWorkOrderNo) { @@ -1395,8 +1397,7 @@ public class MesWorkOrderService extends BaseMesService implements DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean); List workOrderAssemblyList = workOrderAssemblyRepository.findByHqlWhere(packBean); - Map> workOrderAssemblyMapByWorkOrderNo = workOrderAssemblyList.stream().collect(Collectors.groupingBy(MesWorkOrderAssembly::getWorkOrderNo)); - return workOrderAssemblyMapByWorkOrderNo; + return CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().collect(Collectors.groupingBy(MesWorkOrderAssembly::getWorkOrderNo)); } private List getMesProductOffLineList(WmsProductModel model, String nowTime) {