|
|
|
@ -362,7 +362,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
//客户ptr信息
|
|
|
|
|
StringBuilder ptrInfos = new StringBuilder();
|
|
|
|
|
String ptrInfo = mesWorkOrder.getPtrInfo();
|
|
|
|
|
List<String> custPtrPartList = Arrays.asList(ptrInfo.split("\\|"));
|
|
|
|
|
List<String> custPtrPartList = Arrays.asList(ptrInfo.replaceAll("_","").split("\\|"));
|
|
|
|
|
boolean ptrFlag = false;
|
|
|
|
|
boolean custFlag = false;
|
|
|
|
|
boolean fOrderFlag = false;
|
|
|
|
@ -374,8 +374,22 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
//ptr信息
|
|
|
|
|
List<String> partNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList());
|
|
|
|
|
List<MesPartPtr> partPtrList = getPartPtrList(organizeCode, mesWorkOrder.getWorkCenterCode(), partNoList);
|
|
|
|
|
/**
|
|
|
|
|
* ptr 拆分成两种情况
|
|
|
|
|
* 1.客户ptr - PTR单
|
|
|
|
|
* 1.1 客户报文中给的是目标零件号
|
|
|
|
|
* 1.2 客户ptr时,ptr详情一定要为空
|
|
|
|
|
* 1.3 客户ptr时,ptr主表中是否卫客户发送ptr信息为选中
|
|
|
|
|
*
|
|
|
|
|
* 2.内部ptr - PTR单
|
|
|
|
|
* 2.1 拆分bom,有替换就替换
|
|
|
|
|
* 2.2 是否内部PTR 不看
|
|
|
|
|
*
|
|
|
|
|
* 3.内部PTR - F单
|
|
|
|
|
* 2.1 拆分bom,有替换就替换
|
|
|
|
|
* 2.2 如果选择了内部ptr 就是F单
|
|
|
|
|
*/
|
|
|
|
|
//遍历workOrderPartList
|
|
|
|
|
|
|
|
|
|
for (MesWorkOrderPart orderPart : workOrderPartList) {
|
|
|
|
|
List<MesPartPtr> ptr = partPtrList.stream().filter(item -> item.getSrcPartNo().equals(orderPart.getPartNo())).collect(Collectors.toList());
|
|
|
|
|
if (ptr.isEmpty()) {
|
|
|
|
@ -384,7 +398,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
//判断是否是客户替换
|
|
|
|
|
boolean isCust = false;
|
|
|
|
|
for (MesPartPtr mesPartPtr : ptr) {
|
|
|
|
|
if (custPtrPartList.contains(mesPartPtr.getSrcPartNo())) {
|
|
|
|
|
if (custPtrPartList.contains(mesPartPtr.getSeqInfoPrtPart()) && mesPartPtr.getIsCustomerSendPrtInfo() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) {
|
|
|
|
|
isCust = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
@ -395,7 +409,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
|
|
|
|
|
if (isCust) {
|
|
|
|
|
//查找客户发送的ptr信息
|
|
|
|
|
List<MesPartPtr> custPartPtrList = ptr.stream().filter(item -> item.getIsCustomerSendPrtInfo() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() && custPtrPartList.contains(item.getSrcPartNo())).collect(Collectors.toList());
|
|
|
|
|
List<MesPartPtr> custPartPtrList = ptr.stream().filter(item -> item.getIsCustomerSendPrtInfo() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() && custPtrPartList.contains(item.getSeqInfoPrtPart())).collect(Collectors.toList());
|
|
|
|
|
if (!custPartPtrList.isEmpty()) {
|
|
|
|
|
mesPartPtr = custPartPtrList.get(0);
|
|
|
|
|
}
|
|
|
|
@ -423,12 +437,17 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
custFlag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ptrFlag = true;
|
|
|
|
|
|
|
|
|
|
if (!isCust && mesPartPtr.getIsInterPrt()==CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){
|
|
|
|
|
if (!fOrderFlag){
|
|
|
|
|
fOrderFlag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!isCust && mesPartPtr.getIsInterPrt()!=CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){
|
|
|
|
|
if (!ptrFlag){
|
|
|
|
|
ptrFlag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//将工单类零件表替换位PTR条件中维护的替换零件
|
|
|
|
|
MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(mesPartPtr.getDestPartNo(), organizeCode);
|
|
|
|
|
orderPart.setPartNo(mesPartSap.getPartNo());
|
|
|
|
@ -482,11 +501,12 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (ptrFlag && custFlag){
|
|
|
|
|
if (custFlag || ptrFlag){
|
|
|
|
|
mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.PTR.getValue());
|
|
|
|
|
}else if (ptrFlag){
|
|
|
|
|
}else if (fOrderFlag){
|
|
|
|
|
mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.F.getValue());
|
|
|
|
|
}else {
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|