41583 BTO创建工单基于生产组配置,现在配置成发布,实际工单生产状态是未处理

tags/yfai-mes-ext-v1.0
jun 1 year ago
parent 6d7e2c40d0
commit fe60829f79

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

Loading…
Cancel
Save