|
|
@ -78,12 +78,12 @@ public class MesSortRuleCfgOfflineServiceImpl implements IMesSortRuleCfgOfflineS
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
|
|
|
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void doCreateSortRuleOffline(String custPartNo, String erpPartNo, String organizeCode, MesPartProdGroup mesPartProdGroup, MesPartProdGroupDetail detail) {
|
|
|
|
public void doCreateSortRuleOffline(String custPartNo, String erpPartNo, String productPartNo, String organizeCode, MesPartProdGroup mesPartProdGroup, MesPartProdGroupDetail detail) {
|
|
|
|
|
|
|
|
|
|
|
|
MesProductVersion mesProductVersion = getMesProductVersion(erpPartNo, organizeCode);
|
|
|
|
MesProductVersion mesProductVersion = getMesProductVersion(erpPartNo, organizeCode);
|
|
|
|
//4.总成零件号打散bom
|
|
|
|
//4.总成零件号打散bom
|
|
|
|
String bomVersion = mesProductVersion.getAlternativePartList();
|
|
|
|
String bomVersion = mesProductVersion.getAlternativePartList();
|
|
|
|
MesBom bom = mesBomService.findBom(organizeCode, bomVersion, erpPartNo);
|
|
|
|
MesBom bom = mesBomService.findBom(organizeCode, bomVersion, productPartNo);
|
|
|
|
if (bom == null) {
|
|
|
|
if (bom == null) {
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -93,7 +93,7 @@ public class MesSortRuleCfgOfflineServiceImpl implements IMesSortRuleCfgOfflineS
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//5.打散的bom 获取排序加工规则
|
|
|
|
//5.打散的bom 获取排序加工规则
|
|
|
|
List<MesWorkOrderPart> workOrderPartList = dismantleBom(erpPartNo, 1, TimeTool.getNowTime(true), bom.getBomCode(), organizeCode, detail.getWorkCellCode());
|
|
|
|
List<MesWorkOrderPart> workOrderPartList = dismantleBom(productPartNo, 1, TimeTool.getNowTime(true), bom.getBomCode(), organizeCode, detail.getWorkCellCode());
|
|
|
|
//6.装配件获取的三种条件
|
|
|
|
//6.装配件获取的三种条件
|
|
|
|
String custCode = mesCustomerPart.getCustCode();
|
|
|
|
String custCode = mesCustomerPart.getCustCode();
|
|
|
|
MesCustomerCarModel mesCustomerCarModel = getMesCustomerCarModel(custPartNo, organizeCode, custCode);
|
|
|
|
MesCustomerCarModel mesCustomerCarModel = getMesCustomerCarModel(custPartNo, organizeCode, custCode);
|
|
|
@ -146,7 +146,7 @@ public class MesSortRuleCfgOfflineServiceImpl implements IMesSortRuleCfgOfflineS
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void doCreatePullOffline(String custPartNo, String erpPartNo, String organizeCode, MesPartProdGroup mesPartProdGroup, MesPartProdGroupDetail detail, MesPartPull partPull, List<MesPartPullDetail> pullDetailList) {
|
|
|
|
public void doCreatePullOffline(String custPartNo, String erpPartNo,String productPartNo, String organizeCode, MesPartProdGroup mesPartProdGroup, MesPartProdGroupDetail detail, MesPartPull partPull, List<MesPartPullDetail> pullDetailList) {
|
|
|
|
MesProductVersion mesProductVersion = getMesProductVersion(erpPartNo, organizeCode);
|
|
|
|
MesProductVersion mesProductVersion = getMesProductVersion(erpPartNo, organizeCode);
|
|
|
|
//4.总成零件号打散bom
|
|
|
|
//4.总成零件号打散bom
|
|
|
|
String bomVersion = mesProductVersion.getAlternativePartList();
|
|
|
|
String bomVersion = mesProductVersion.getAlternativePartList();
|
|
|
@ -165,7 +165,7 @@ public class MesSortRuleCfgOfflineServiceImpl implements IMesSortRuleCfgOfflineS
|
|
|
|
List<MesPartSap> partSapList = partSapRao.findByHqlWhere(partPackBean);
|
|
|
|
List<MesPartSap> partSapList = partSapRao.findByHqlWhere(partPackBean);
|
|
|
|
|
|
|
|
|
|
|
|
//5.打散的bom 获取排序加工规则
|
|
|
|
//5.打散的bom 获取排序加工规则
|
|
|
|
List<MesWorkOrderPart> workOrderPartList = dismantleBom(erpPartNo, 1, TimeTool.getNowTime(true), bom.getBomCode(), organizeCode, detail.getWorkCellCode());
|
|
|
|
List<MesWorkOrderPart> workOrderPartList = dismantleBom(productPartNo, 1, TimeTool.getNowTime(true), bom.getBomCode(), organizeCode, detail.getWorkCellCode());
|
|
|
|
|
|
|
|
|
|
|
|
//6.过滤出需要拉动的零件号
|
|
|
|
//6.过滤出需要拉动的零件号
|
|
|
|
List<String> partPullDetailPartNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList());
|
|
|
|
List<String> partPullDetailPartNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList());
|
|
|
@ -178,7 +178,7 @@ public class MesSortRuleCfgOfflineServiceImpl implements IMesSortRuleCfgOfflineS
|
|
|
|
}
|
|
|
|
}
|
|
|
|
mesPartPullOffline.setPullCode(partPull.getPullCode());
|
|
|
|
mesPartPullOffline.setPullCode(partPull.getPullCode());
|
|
|
|
mesPartPullOffline.setCustPartNo(custPartNo);
|
|
|
|
mesPartPullOffline.setCustPartNo(custPartNo);
|
|
|
|
mesPartPullOffline.setPartNo(erpPartNo);
|
|
|
|
mesPartPullOffline.setPartNo(productPartNo);
|
|
|
|
mesPartPullOffline.setWorkCenterCode(partPull.getWorkCenterCode());
|
|
|
|
mesPartPullOffline.setWorkCenterCode(partPull.getWorkCenterCode());
|
|
|
|
mesPartPullOffline.setOrganizeCode(organizeCode);
|
|
|
|
mesPartPullOffline.setOrganizeCode(organizeCode);
|
|
|
|
ConvertBean.saveOrUpdate(mesPartPullOffline,"SPS-OFFLINE");
|
|
|
|
ConvertBean.saveOrUpdate(mesPartPullOffline,"SPS-OFFLINE");
|
|
|
@ -189,7 +189,7 @@ public class MesSortRuleCfgOfflineServiceImpl implements IMesSortRuleCfgOfflineS
|
|
|
|
detailOffline.setPid(mesPartPullOffline.getId());
|
|
|
|
detailOffline.setPid(mesPartPullOffline.getId());
|
|
|
|
detailOffline.setPullCode(partPull.getPullCode());
|
|
|
|
detailOffline.setPullCode(partPull.getPullCode());
|
|
|
|
detailOffline.setCustPartNo(custPartNo);
|
|
|
|
detailOffline.setCustPartNo(custPartNo);
|
|
|
|
detailOffline.setAssPartNo(erpPartNo);
|
|
|
|
detailOffline.setAssPartNo(productPartNo);
|
|
|
|
detailOffline.setOrganizeCode(organizeCode);
|
|
|
|
detailOffline.setOrganizeCode(organizeCode);
|
|
|
|
detailOffline.setPartNo(pullDetail.getPartNo());
|
|
|
|
detailOffline.setPartNo(pullDetail.getPartNo());
|
|
|
|
detailOffline.setPartName(pullDetail.getPartName());
|
|
|
|
detailOffline.setPartName(pullDetail.getPartName());
|
|
|
@ -240,11 +240,11 @@ public class MesSortRuleCfgOfflineServiceImpl implements IMesSortRuleCfgOfflineS
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean);
|
|
|
|
ddlPackBean.setOrderByStr(" order by createDatetime desc ");
|
|
|
|
ddlPackBean.setOrderByStr(" order by createDatetime desc ");
|
|
|
|
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
|
|
|
|
List<MesProductVersion> mesProductVersionList = mesProductVersionRDao.findByHqlTopWhere(ddlPackBean, 1);
|
|
|
|
if (Objects.isNull(mesProductVersion)) {
|
|
|
|
if (Objects.isNull(mesProductVersionList) || mesProductVersionList.isEmpty()) {
|
|
|
|
MesException.throwMesBusiException("物料【%s】对应的生产版本信息不存在", partNo);
|
|
|
|
MesException.throwMesBusiException("物料【%s】对应的生产版本信息不存在", partNo);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return mesProductVersion;
|
|
|
|
return mesProductVersionList.get(0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private List<MesWorkOrderPart> dismantleBom(String partNo, double qty, String productTime, String bomCode, String organizeCode, String workCellCode) {
|
|
|
|
private List<MesWorkOrderPart> dismantleBom(String partNo, double qty, String productTime, String bomCode, String organizeCode, String workCellCode) {
|
|
|
|