diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesAssemblyExtService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesAssemblyExtService.java index cc664eb..66db2f7 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesAssemblyExtService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesAssemblyExtService.java @@ -15,10 +15,10 @@ public interface IMesAssemblyExtService { List getProductionAssemblySortContextList(MesProdRuleContext prodRuleContext); @ApiOperation(value = "【排序线】获取生产工单装配件绑定记录 [前道所有装配件]") - List getProductionAssemblySortPreCraftContextList(MesProdRuleContext prodRuleContext, Map workCellMap); + List getProductionAssemblySortPreCraftContextList(MesProdRuleContext prodRuleContext, Map workCellMap, String workCellCode); @ApiOperation(value = "【排序线】获取生产工单装配件清单") - List getWorkOrderAssemblyList(MesProdRuleContext prodRuleContext); + List getWorkOrderAssemblyList(MesProdRuleContext prodRuleContext, Boolean isShowAll); @ApiOperation(value = "获取装配件绑定记录【排序】") List getProductionAssemblySortList(String organizeCode, String productSn); diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProdRuleCfgExtService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProdRuleCfgExtService.java index 578f292..90dc9b5 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProdRuleCfgExtService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProdRuleCfgExtService.java @@ -26,7 +26,7 @@ public interface IMesProdRuleCfgExtService { MesProdRuleContext getProdRuleSortContext(MesProdRuleContext prodRuleContext); @ApiOperation(value = "【排序线】获取产品加工规则 [前道所有装配件]") - MesProdRuleContext getProdRuleSortPreCraftContext(MesProdRuleContext prodRuleContext, Map workCellMap); + MesProdRuleContext getProdRuleSortPreCraftContext(MesProdRuleContext prodRuleContext, Map workCellMap, String workCellCode); @ApiOperation(value = "【非排序线】获取产品加工规则 【根据PID获取】") MesProdRuleNosortCfg getProdRuleNosortCfg(String organizeCode, Long id); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java index 283ebfc..1967c9b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java @@ -59,7 +59,9 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) || StringUtils.isEmpty(prodRuleContext.getProcessCode()) || StringUtils.isEmpty(prodRuleContext.getProductSn())) return null; //【排序线】获取生产工单装配件清单 - List workOrderAssemblyList = filterWorkOrderAssemblyList(getWorkOrderAssemblyList(prodRuleContext), prodRuleContext.getEquipmentCode()); + List workOrderAssemblyList = getWorkOrderAssemblyList(prodRuleContext, false); + //搜集匹配当前设备的装配件信息 + workOrderAssemblyList = CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> (null != o && o.getEquipmentCode().equals(prodRuleContext.getEquipmentCode()))).collect(Collectors.toList()); if (CollectionUtils.isEmpty(workOrderAssemblyList)) return null; @@ -75,18 +77,20 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { //【排序线】获取生产工单装配件绑定记录 [前道所有装配件,无爆炸图与音频文件逻辑] @Override - public List getProductionAssemblySortPreCraftContextList(MesProdRuleContext prodRuleContext, Map workCellMap) { + public List getProductionAssemblySortPreCraftContextList(MesProdRuleContext prodRuleContext, Map workCellMap, String workCellCode) { if (null == prodRuleContext) return null; - if (StringUtils.isEmpty(prodRuleContext.getOrganizeCode()) || StringUtils.isEmpty(prodRuleContext.getWorkCenterCode()) || - StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) || StringUtils.isEmpty(prodRuleContext.getProcessCode()) || StringUtils.isEmpty(prodRuleContext.getProductSn())) return null; + if (StringUtils.isEmpty(prodRuleContext.getOrganizeCode()) || StringUtils.isEmpty(prodRuleContext.getWorkCenterCode()) || StringUtils.isEmpty(prodRuleContext.getProductSn())) return null; //【排序线】获取生产工单装配件清单 - List workOrderAssemblyList = filterWorkOrderAssemblyList(getWorkOrderAssemblyList(prodRuleContext), prodRuleContext.getEquipmentCode()); + List workOrderAssemblyList = getWorkOrderAssemblyList(prodRuleContext, true); + + //搜集匹配当前工位设备及其他工位的的装配件信息 + workOrderAssemblyList = CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> (null != o && (!o.getWorkCellCode().equals(workCellCode) || (o.getWorkCellCode().equals(workCellCode) && o.getEquipmentCode().equals(prodRuleContext.getEquipmentCode()))))).collect(Collectors.toList()); // 搜集非已装配的数据 - workOrderAssemblyList = workOrderAssemblyList.stream().filter(o -> (null != o && o.getAssemblyStatus().compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue()) != 0)).collect(Collectors.toList()); + workOrderAssemblyList = CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> (null != o && o.getAssemblyStatus().compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue()) != 0)).collect(Collectors.toList()); if (CollectionUtils.isEmpty(workOrderAssemblyList)) return null; @@ -100,20 +104,15 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { return productionAssemblySortContextList; } - //搜集匹配当前设备的装配件信息 - private List filterWorkOrderAssemblyList(List workOrderAssemblyList, String equipmentCode) { - return CollectionUtils.isEmpty(workOrderAssemblyList) ? null : - workOrderAssemblyList.stream().filter(o -> (null != o && o.getEquipmentCode().equals(equipmentCode))).collect(Collectors.toList()); - } - //【排序线】获取生产工单装配件清单 @Override - public List getWorkOrderAssemblyList(MesProdRuleContext prodRuleContext) { + public List getWorkOrderAssemblyList(MesProdRuleContext prodRuleContext, Boolean isShowAll) { if (null == prodRuleContext) return null; - if (StringUtils.isEmpty(prodRuleContext.getOrganizeCode()) || StringUtils.isEmpty(prodRuleContext.getWorkCenterCode()) || - StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) || StringUtils.isEmpty(prodRuleContext.getProcessCode()) || StringUtils.isEmpty(prodRuleContext.getProductSn())) return null; + if (StringUtils.isEmpty(prodRuleContext.getOrganizeCode()) || StringUtils.isEmpty(prodRuleContext.getWorkCenterCode()) || StringUtils.isEmpty(prodRuleContext.getProductSn())) return null; + + if (!isShowAll && (StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) || StringUtils.isEmpty(prodRuleContext.getProcessCode()))) return null; DdlPackBean packBean = DdlPackBean.getDdlPackBean(prodRuleContext.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(prodRuleContext.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProdRuleCfgExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProdRuleCfgExtService.java index 3d7ec7e..ff0be65 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProdRuleCfgExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProdRuleCfgExtService.java @@ -117,8 +117,8 @@ public class MesProdRuleCfgExtService implements IMesProdRuleCfgExtService { //【排序线】获取产品加工规则 [前道所有装配件] @Override - public MesProdRuleContext getProdRuleSortPreCraftContext(MesProdRuleContext prodRuleContext, Map workCellMap) { - return prodRuleContext.assemblyDataJson(assemblyExtService.getProductionAssemblySortPreCraftContextList(prodRuleContext, workCellMap)); + public MesProdRuleContext getProdRuleSortPreCraftContext(MesProdRuleContext prodRuleContext, Map workCellMap, String workCellCode) { + return prodRuleContext.assemblyDataJson(assemblyExtService.getProductionAssemblySortPreCraftContextList(prodRuleContext, workCellMap, workCellCode)); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java index 0494fcc..df02190 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java @@ -267,6 +267,9 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService { String rule = mesPartPullDetail.getRuleValidation(); if (mesPullingOrderInfo.getScanValidationType() == MesExtEnumUtil.PART_PULL_DETAIL_SCAN_VALIDATION_TYPE.HOMEMADE_VALIDATE.getValue()) { List produceSnList = mesProduceSnExtService.getProduceSnList(mesPullingOrderInfo.getOrganizeCode(), mesPullingOrderInfo.getProductSn()); + if(CollectionUtils.isEmpty(produceSnList)){ + return false; + } return mesPartPullDetail.getPullPartNo().equals(produceSnList.get(0).getPartNo()); } else if (mesPullingOrderInfo.getScanValidationType() == MesExtEnumUtil.PART_PULL_DETAIL_SCAN_VALIDATION_TYPE.COOPERATION_VALIDATE.getValue()) { return (Boolean) ((IMesNumberRuleMatchDispatchService) SpringContextsUtil.getBean(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_20.getStrategyClass())) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java index 36e9902..b581ab4 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java @@ -189,7 +189,9 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS //根据扫描的装车单找到是否先装车配置 //若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。 if (Objects.equals(loadingList.getIsFirstInstall(), MesCommonConstant.FALSE_INTEGER)) { - MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getById(loadingListDetail.getShippingId()); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(loadingListDetail.getShippingId(),"id",packBean); + MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(packBean); if (!StringUtils.isEmpty(orderManagement)) { throw new ImppBusiException(String.format("【%s】此装车单中发运单为【%s】,还未做完【排序发运校验】,请检查数据", model.getShippingCode(), loadingListDetail.getShippingCode())); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java index f1eda93..6e531c3 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java @@ -335,7 +335,12 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { public void saveReCheck(MesSpotCheckOrderModel model, String org) { //校验点检单 - MesSpotCheckOrder spotCheckOrder = spotCheckOrderRepository.getById(model.getSpotCheckOrder().getId()); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(org); + DdlPreparedPack.getNumEqualPack(model.getSpotCheckOrder().getId(),"id",ddlPackBean); + MesSpotCheckOrder spotCheckOrder = spotCheckOrderRepository.getByProperty(ddlPackBean); + if(Objects.isNull(spotCheckOrder)){ + throw new ImppBusiException(String.format("点检单【%s】不存在", model.getSpotCheckOrder().getId())); + } if (spotCheckOrder.getStatus() != MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.CREATE.getValue() && spotCheckOrder.getStatus() != MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.COMPLETE.getValue()) { throw new ImppBusiException(String.format("【%s】单据状态为【%s】,请选择状态为【%s】或【%s】的单据", model.getSpotCheckOrder().getId(), MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.valueOfDescription(spotCheckOrder.getStatus()), @@ -453,7 +458,9 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { bean.setTaskResource(MesCommonConstant.SPOT_CHECK_ORDER_TASK_RESOURCE); bean.setStatus(MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.CREATE.getValue()); //查询点检方案 点检单点检方案 spotCheckId-id关联 - MesEquipmentSpotCheck equipmentSpotCheck = equipmentSpotCheckRepository.getById(bean.getSpotCheckId()); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(bean.getSpotCheckId(),"id",ddlPackBean); + MesEquipmentSpotCheck equipmentSpotCheck = equipmentSpotCheckRepository.getByProperty(ddlPackBean); if (StringUtils.isEmpty(equipmentSpotCheck)) { throw ImppExceptionBuilder.newInstance() @@ -602,8 +609,12 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { * @return */ private MesSpotCheckOrder checkSpotCheckOrder(MesSpotCheckOrder spotCheckOrder) { - - MesSpotCheckOrder result = spotCheckOrderRepository.getById(spotCheckOrder.getId()); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(spotCheckOrder.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(spotCheckOrder.getId(),"id",packBean); + MesSpotCheckOrder result = spotCheckOrderRepository.getByProperty(packBean); + if(Objects.isNull(result)){ + throw new ImppBusiException(String.format("单据【%s】信息不存在", spotCheckOrder.getSpotCheckOrderNo())); + } if (result.getStatus() != MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.CREATE.getValue()) { throw new ImppBusiException(String.format("【%s】单据状态为【%s】,请选择状态为【%s】的单据", spotCheckOrder.getId(), MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.valueOfDescription(result.getStatus()), diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java index c0a68ba..db3cad4 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java @@ -1026,7 +1026,9 @@ public class MesWorkOrderService implements IMesWorkOrderService { @Override public void doProductReport(MesWorkOrder mesWorkOrder, String userName) { - MesWorkOrder mesWorkOrderDb = mesWorkOrderRDao.getById(mesWorkOrder.getId()); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(mesWorkOrder.getId(),"id",packBean); + MesWorkOrder mesWorkOrderDb = mesWorkOrderRDao.getByProperty(packBean); if (Objects.isNull(mesWorkOrderDb)) { MesPcnException.throwMesBusiException("工单id为【%s】工单信息不存在", mesWorkOrder.getId()); } @@ -1164,6 +1166,12 @@ public class MesWorkOrderService implements IMesWorkOrderService { } //更新加工记录 productionRecordService.updateProductionRecord(model.getMesProductionRecordMap().get(orderNo), userName, MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue(), ""); + //更新工单汇报数量 + workOrder.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + workOrder.setReportedQty(workOrder.getReportedQty()+MesPcnExtConstWords.ONE); + workOrder.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date())); + workOrder.setModifyUser(userName); + workOrderExtService.update(workOrder); } catch (Exception e) { String msg = e.getMessage(); if (e instanceof ImppBusiException) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java index 4e1cbee..d3bb2e9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java @@ -34,7 +34,7 @@ public class MesAssemblyShowSortPreCraftStepService extends MesAssemblyShowSortS //不携带工位工序条件 MesProdRuleContext prodRuleContext = new MesProdRuleContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode()) .equipmentCode(cellEquipContext.getEquipmentCode()).workOrderNo(productionPsInContext.getWorkOrderNo()).productSn(productionPsInContext.getProductSn()).foreignKey(productionPsInContext.getForeignKey()); - return prodRuleCfgExtService.getProdRuleSortPreCraftContext(prodRuleContext, workCellMap); + return prodRuleCfgExtService.getProdRuleSortPreCraftContext(prodRuleContext, workCellMap, reqBean.getWorkCellCode()); } //装配件清单列表标题 diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java index ea7310c..8e49b27 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java @@ -143,7 +143,7 @@ public class MesProductionAssemblySortContext extends MesProductionAssemblyConte this.sourceId = workOrderAssembly.getId(); } - if (null != workOrderAssembly) { + if (null != productionAssembly) { this.id = productionAssembly.getId(); this.createDatetime = productionAssembly.getCreateDatetime(); this.createUser = productionAssembly.getCreateUser();