同步dev 工单类 因为存在冲突

uat-work-order-temp
王杰 3 months ago
parent 28078b3a74
commit 08aa170d99

@ -136,6 +136,9 @@ public class MesWorkOrderService implements IMesWorkOrderService {
@Autowired
private IMesProdRuleSortCfgDao mesProdRuleSortCfgDao;
@Autowired
private MesPartProdGroupRepository mesPartProdGroupRao;
@Override
public MesWorkOrder queryMesWorkOrder(MesWorkOrder workOrder) {
@ -221,9 +224,26 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesPcnException.throwMesBusiException("产线【%s】不存在", mesWorkOrderDb.getWorkCenterCode());
}
//获取生产版本
MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb);
MesProductVersion mesProductVersion = getProductVersion(mesWorkOrderDb.getOrganizeCode(), mesWorkOrderDb.getPartNo(), mesWorkOrderDb.getProductVersion());
String bomVersion = mesProductVersion.getAlternativePartList();
String partProdGroupCode = mesWorkOrderDb.getPartProdGroupCode();
// partProdGroupCode 不为空查询的数据不为空查询数据中的获取bom方式不为空且枚举是 基于默认BOM 才bomversion = null 否则都是通过生产版本找bom
if (!StringUtil.isEmpty(partProdGroupCode)) {
DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", partProdBean);
List<MesPartProdGroup> mesPartProdGroupList = mesPartProdGroupRao.findByHqlTopWhere(partProdBean, 1);
// 没有零件生产组用默认找生产版本、有的话找获取bom方式枚举枚举是基于默认BOM 则直接找
if (!mesPartProdGroupList.isEmpty()) {
MesPartProdGroup mesPartProdGroup = mesPartProdGroupList.get(0);
if (mesPartProdGroup.getEnableBomVersion() != null && mesPartProdGroup.getEnableBomVersion() == MesExtEnumUtil.ENABLE_BOM_VERSION.ENABLE_BOM_VERSION_2.getValue()) {
log.info("基于默认BOM获取BOM");
bomVersion = "";
}
}
}
//物料+生产版本获取bom信息
List<MesBom> mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList());
List<MesBom> mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, bomVersion);
LOGGER.info("产线:{} 零件:{}更新工单", mesWorkOrderDb.getWorkCenterCode(), mesWorkOrderDb.getPartNo());
//更新工单
@ -388,8 +408,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
List<MesBom> mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean);
if (org.springframework.util.CollectionUtils.isEmpty(mesBoms)) {
LOGGER.info("物料{}生产版本{}对应bom信息不存在", partNo, bomVersion );
return mesBoms;
// MesPcnException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", partNo, bomVersion);
MesPcnException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", partNo, bomVersion);
}
MesBom next = mesBoms.iterator().next();
//如果存在多个bomCode取最新的一个
@ -536,9 +555,26 @@ public class MesWorkOrderService implements IMesWorkOrderService {
return;
//throw new ImppBusiException(String.format("未找到匹配的加工单"));
}
//获取生产版本
MesProductVersion mesProductVersion = getProductVersion(organizeCode, productionRecord.getPartNo(), oldMesWorkOrder.getProductVersion());
//获取生产版本
MesProductVersion mesProductVersion = getProductVersion(oldMesWorkOrder.getOrganizeCode(), oldMesWorkOrder.getPartNo(), oldMesWorkOrder.getProductVersion());
String bomVersion = mesProductVersion.getAlternativePartList();
String partProdGroupCode = oldMesWorkOrder.getPartProdGroupCode();
// partProdGroupCode 不为空查询的数据不为空查询数据中的获取bom方式不为空且枚举是 基于默认BOM 才bomversion = null 否则都是通过生产版本找bom
if (!StringUtil.isEmpty(partProdGroupCode)) {
DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(oldMesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", partProdBean);
List<MesPartProdGroup> mesPartProdGroupList = mesPartProdGroupRao.findByHqlTopWhere(partProdBean, 1);
// 没有零件生产组用默认找生产版本、有的话找获取bom方式枚举枚举是基于默认BOM 则直接找
if (!mesPartProdGroupList.isEmpty()) {
MesPartProdGroup mesPartProdGroup = mesPartProdGroupList.get(0);
if (mesPartProdGroup.getEnableBomVersion() != null && mesPartProdGroup.getEnableBomVersion() == MesExtEnumUtil.ENABLE_BOM_VERSION.ENABLE_BOM_VERSION_2.getValue()) {
log.info("基于默认BOM获取BOM");
bomVersion = "";
}
}
}
//查询物料信息
DdlPackBean ddlPackBeanPart = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(productionRecord.getPartNo(), "partNo", ddlPackBeanPart);
@ -547,7 +583,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
throw new ImppBusiException(String.format("物料【%s】信息不存在", productionRecord.getPartNo()));
}
List<MesBom> mesBoms = findBomList(organizeCode, mesPart, mesProductVersion.getAlternativePartList());
List<MesBom> mesBoms = findBomList(organizeCode, mesPart, bomVersion);
if (CollectionUtils.isEmpty(mesBoms)) {
@ -573,7 +609,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
if (StringUtil.isEmpty(productionRecord.getWorkOrderNo())) {
//更新工单状态
if (oldMesWorkOrder.getReportedQty() >= oldMesWorkOrder.getQty()) {
if (reportQty >= oldMesWorkOrder.getQty()) {
propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
} else {
@ -1022,8 +1058,25 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesWorkCenter mesWorkCenter = getMesWorkCenter(mesWorkOrderDb);
//获取生产版本
MesProductVersion mesProductVersion = getProductVersion(mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getPartNo(),mesWorkOrderDb.getProductVersion());
String bomVersion = mesProductVersion.getAlternativePartList();
String partProdGroupCode = mesWorkOrderDb.getPartProdGroupCode();
// partProdGroupCode 不为空查询的数据不为空查询数据中的获取bom方式不为空且枚举是 基于默认BOM 才bomversion = null 否则都是通过生产版本找bom
if (!StringUtil.isEmpty(partProdGroupCode)) {
DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", partProdBean);
List<MesPartProdGroup> mesPartProdGroupList = mesPartProdGroupRao.findByHqlTopWhere(partProdBean, 1);
// 没有零件生产组用默认找生产版本、有的话找获取bom方式枚举枚举是基于默认BOM 则直接找
if (!mesPartProdGroupList.isEmpty()) {
MesPartProdGroup mesPartProdGroup = mesPartProdGroupList.get(0);
if (mesPartProdGroup.getEnableBomVersion() != null && mesPartProdGroup.getEnableBomVersion() == MesExtEnumUtil.ENABLE_BOM_VERSION.ENABLE_BOM_VERSION_2.getValue()) {
log.info("基于默认BOM获取BOM");
bomVersion = "";
}
}
}
//物料+生产版本获取bom信息
List<MesBom> mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList());
List<MesBom> mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, bomVersion);
//汇报数量与未完成数量的修改 先给入参对象赋值, 下面没有报错的情况下再赋给工单DB对象
mesWorkOrder.setReportedQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrderDb.getReportedQty()));
@ -1251,8 +1304,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesWorkCenter)) {
LOGGER.info("产线【%s】不存在:{}", workCenterCode );
continue;
// MesPcnException.throwMesBusiException("产线【%s】不存在", workCenterCode);
MesPcnException.throwMesBusiException("产线【%s】不存在", workCenterCode);
}
MesWorkOrder item = new MesWorkOrder();
item.setOrganizeCode(organizeCode);
@ -1281,7 +1333,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean);
if (mesWorkOrderRDao.isExitByHql(orderPackBean)) {
LOGGER.info("产线【%s】单号流水码生成重复:{}", workCenterCode );
continue;
MesPcnException.throwMesBusiException("产线【%s】不存在", workCenterCode);
}
item.setWorkOrderNo(orderNo);
item.setPartName(mesProductionRecord.getPartName());
@ -1335,7 +1387,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesProductVersion)) {
LOGGER.info("物料{}产线{}生产版本{}信息不存在", item.getPartNo(), item.getWorkCenterCode(), item.getProductVersion() );
// MesPcnException.throwMesBusiException("物料【%s】产线【%s】生产版本【%s】信息不存在", item.getPartNo(), item.getWorkCenterCode(), item.getProductVersion());
MesPcnException.throwMesBusiException("物料【%s】产线【%s】生产版本【%s】信息不存在", item.getPartNo(), item.getWorkCenterCode(), item.getProductVersion());
}
return mesProductVersion;
}

Loading…
Cancel
Save