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 13ea435..6781aff 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 @@ -281,26 +281,8 @@ public class MesWorkOrderService extends BaseMesService implements } //排序工单数量为1 item.setQty(1d); - //校验零件生产组信息 - MesPartProdGroup mesPartProdGroup = null; - if(StringUtil.isEmpty(item.getPartProdGroupCode())){ - mesPartProdGroup = getMesPartProdGroup(item); - item.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode()); - item.setPartProdGroupName(mesPartProdGroup.getPartProdGroupName()); - }else{ - ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(item.getPartProdGroupCode(), "partProdGroupCode", ddlPackBean); - mesPartProdGroup = mesPartProdGroupRDao.getByProperty(ddlPackBean); - } - - //自动发布 - if (CommonEnumUtil.VALID == mesPartProdGroup.getIsAutoRelease()) { - item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()); - //发送工单信息给WMS - saveMesWorkOrderToWms.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, bomList)); - } else { - item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()); - } + //是否自动发布 + isAuto(item, saveMesWorkOrderToWms, bomList); } else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) { ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空"); ValidatorBean.checkNotNull(item.getProductVersion(), "生产版本不能为空"); @@ -338,9 +320,8 @@ public class MesWorkOrderService extends BaseMesService implements item.setProductVersion(mesProductVersion.getProductVersion()); //获取bom信息 List bomList = mesBomService.findMesBomByPartNoAndBomVersion(item.getPartNo(), item.getOrganizeCode(), mesProductVersion.getAlternativePartList()); - item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()); - //发送工单信息给WMS - saveMesWorkOrderToWms.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, bomList)); + //是否自动发布 + isAuto(item, saveMesWorkOrderToWms, bomList); } //物料名称不存在,从物料信息中获取 MesPartSap mesPart = iMesPartSapService.getMesPartSapByPartNo(item.getPartNo(), item.getOrganizeCode()); @@ -357,6 +338,31 @@ public class MesWorkOrderService extends BaseMesService implements } } + private void isAuto(MesWorkOrder item, List saveMesWorkOrderToWms, List bomList) { + MesPartProdGroup mesPartProdGroup = null; + if(StringUtil.isEmpty(item.getPartProdGroupCode())){ + mesPartProdGroup = getMesPartProdGroup(item); + item.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode()); + item.setPartProdGroupName(mesPartProdGroup.getPartProdGroupName()); + }else{ + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getPartProdGroupCode(), "partProdGroupCode", ddlPackBean); + mesPartProdGroup = mesPartProdGroupRDao.getByProperty(ddlPackBean); + if(Objects.isNull(mesPartProdGroup)){ + MesException.throwMesBusiException("生产线组【%s】信息不存在",item.getPartProdGroupCode()); + } + } + + //自动发布 + if (CommonEnumUtil.VALID == mesPartProdGroup.getIsAutoRelease()) { + item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()); + //发送工单信息给WMS + saveMesWorkOrderToWms.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, bomList)); + } else { + item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()); + } + } + private MesPartProdGroup getMesPartProdGroup(MesWorkOrder item) { MesPartProdGroupDetail mesPartProdGroupDetail = new MesPartProdGroupDetail(); mesPartProdGroupDetail.setWorkCenterCode(item.getWorkCenterCode()); @@ -638,27 +644,10 @@ public class MesWorkOrderService extends BaseMesService implements vinCodeMap.put(item.getVinCode(), item.getVinCode()); } } - - //校验零件生产组信息 - MesPartProdGroup mesPartProdGroup; - if (mesPartProdGroupMap.containsKey(item.getWorkCenterCode() + item.getPartNo())) { - mesPartProdGroup = mesPartProdGroupMap.get(item.getWorkCenterCode() + item.getPartNo()); - } else { - mesPartProdGroup = getMesPartProdGroup(item); - mesPartProdGroupMap.put(item.getWorkCenterCode() + item.getPartNo(), mesPartProdGroup); - } - item.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode()); - item.setPartProdGroupName(mesPartProdGroup.getPartProdGroupName()); //排序工单数量为1 item.setQty(1d); - //自动发布 - if (CommonEnumUtil.VALID == mesPartProdGroup.getIsAutoRelease()) { - item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()); - //发送工单信息给WMS - mesWorkOrderToWmsList.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, mesBomList)); - } else { - item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()); - } + //是否自动发布 + isAuto(mesPartProdGroupMap, mesWorkOrderToWmsList, item, mesBomList); } else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) { ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空"); ValidatorBean.checkNotNull(item.getProductVersion(), "生产版本不能为空"); @@ -727,9 +716,8 @@ public class MesWorkOrderService extends BaseMesService implements mesBomList = mesBomService.findMesBomByPartNoAndBomVersion(item.getPartNo(), item.getOrganizeCode(), mesProductVersion.getAlternativePartList()); mesBomMap.put(item.getPartNo() + mesProductVersion.getAlternativePartList(), mesBomList); } - item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()); - //发送工单信息给WMS - mesWorkOrderToWmsList.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, mesBomList)); + //是否自动发布 + isAuto(mesPartProdGroupMap, mesWorkOrderToWmsList, item, mesBomList); } item.setUnCompleteQty(item.getQty()); index++; @@ -737,6 +725,27 @@ public class MesWorkOrderService extends BaseMesService implements return mesWorkOrderToWmsList; } + private void isAuto(Map mesPartProdGroupMap, List mesWorkOrderToWmsList, MesWorkOrder item, List mesBomList) { + //校验零件生产组信息 + MesPartProdGroup mesPartProdGroup; + if (mesPartProdGroupMap.containsKey(item.getWorkCenterCode() + item.getPartNo())) { + mesPartProdGroup = mesPartProdGroupMap.get(item.getWorkCenterCode() + item.getPartNo()); + } else { + mesPartProdGroup = getMesPartProdGroup(item); + mesPartProdGroupMap.put(item.getWorkCenterCode() + item.getPartNo(), mesPartProdGroup); + } + item.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode()); + item.setPartProdGroupName(mesPartProdGroup.getPartProdGroupName()); + //自动发布 + if (CommonEnumUtil.VALID == mesPartProdGroup.getIsAutoRelease()) { + item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()); + //发送工单信息给WMS + mesWorkOrderToWmsList.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, mesBomList)); + } else { + item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()); + } + } + private List getMesShifts(String organizeCode, String nowDate, List workCenterCodeList) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getInPackList(workCenterCodeList, "workCenterCode", packBean);