|
|
|
@ -438,14 +438,24 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
//获取相同总成的ptrId 在ptr详情中
|
|
|
|
|
List<MesPartPtr> custPartPtrList = ptr.stream().filter(item -> item.getIsCustomerSendPrtInfo() == null || item.getIsCustomerSendPrtInfo() != CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()).collect(Collectors.toList());
|
|
|
|
|
if (!custPartPtrList.isEmpty()) {
|
|
|
|
|
mesPartPtr = custPartPtrList.get(0);
|
|
|
|
|
//查询ptr总成--只有特定总成才会替换
|
|
|
|
|
DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(), "ptrId", detailPartPtr);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "totalPartNo", detailPartPtr);
|
|
|
|
|
List<MesPartPtrDetail> ptrDetailList = partPtrDetailRao.findByHqlWhere(detailPartPtr);
|
|
|
|
|
if (!ptrDetailList.isEmpty()) {
|
|
|
|
|
mesPartPtrDetail = ptrDetailList.get(0);
|
|
|
|
|
/**
|
|
|
|
|
* 修复bug 44747 同一个原零件对应多个ptr逻辑优化
|
|
|
|
|
* 同一个原零件对应多个PTR,如果是内部PTR,需要去遍历每一个PTR的明细(总成零件号),不能是只找第一个PTR;
|
|
|
|
|
*/
|
|
|
|
|
for (MesPartPtr partPtr : custPartPtrList) {
|
|
|
|
|
//查询ptr总成--只有特定总成才会替换
|
|
|
|
|
DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(partPtr.getId(), "ptrId", detailPartPtr);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "totalPartNo", detailPartPtr);
|
|
|
|
|
List<MesPartPtrDetail> ptrDetailList = partPtrDetailRao.findByHqlWhere(detailPartPtr);
|
|
|
|
|
if (!ptrDetailList.isEmpty()) {
|
|
|
|
|
mesPartPtrDetail = ptrDetailList.get(0);
|
|
|
|
|
mesPartPtr = partPtr;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (mesPartPtr == null){
|
|
|
|
|
mesPartPtr = custPartPtrList.get(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|