|
|
|
@ -302,16 +302,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
workOrderPartList = dismantleBom(mesPartProdGroupDetail.getProductPartNo(), mesWorkOrder.getQty(), sortInfo.getMatchTime(), bom.getBomCode(), sortInfo.getOrganizeCode(), mesPartProdGroupDetail.getWorkCellCode(), mesWorkOrder.getWorkOrderNo());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 工单号修改
|
|
|
|
|
* {ORG}{dynamicRule}{dynamicRule}{dynamicrule}{serialNo}
|
|
|
|
|
* 工厂代码+工单类型 +客户工厂代码+班次+流水号
|
|
|
|
|
*/
|
|
|
|
|
GenSerialNoModel genSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN");
|
|
|
|
|
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(organizeCode), "edi", mesPartProdGroupDetail.getOrganizeCode(), 1).getResultList();
|
|
|
|
|
String serialNo = resultList.get(0).replace("MES_WORK_ORDER_NO_WU_HAN", "");
|
|
|
|
|
String orderNoWuHan = organizeCode + mesWorkOrder.getOrderFlag() + sortInfo.getCustOrderCode() + mesWorkOrder.getShiftCode() + serialNo;
|
|
|
|
|
mesWorkOrder.setWorkOrderNo(orderNoWuHan);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 总成拆bom,变成子零件
|
|
|
|
@ -357,14 +348,16 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
List<String> custPtrPartList = Arrays.asList(ptrInfo.split("\\|"));
|
|
|
|
|
boolean ptrFlag = false;
|
|
|
|
|
boolean fOrderFlag = false;
|
|
|
|
|
List<MesWorkOrderAssembly> assemblyList = new ArrayList<>();
|
|
|
|
|
if (!workOrderPartList.isEmpty()) {
|
|
|
|
|
//是否基于排序加工规则--待定
|
|
|
|
|
//查询装配目视项
|
|
|
|
|
List<MesWorkOrderAssembly> assemblyList = getAssemblyList(mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getCarModelCode(), workOrderPartList, partProdGroup);
|
|
|
|
|
assemblyList = getAssemblyList(mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getCarModelCode(), workOrderPartList, partProdGroup);
|
|
|
|
|
//ptr信息
|
|
|
|
|
List<String> partNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList());
|
|
|
|
|
List<MesPartPtr> partPtrList = getPartPtrList(organizeCode, mesWorkOrder.getWorkCenterCode(), partNoList);
|
|
|
|
|
//遍历workOrderPartList
|
|
|
|
|
|
|
|
|
|
for (MesWorkOrderPart orderPart : workOrderPartList) {
|
|
|
|
|
List<MesPartPtr> ptr = partPtrList.stream().filter(item -> item.getSrcPartNo().equals(orderPart.getPartNo())).collect(Collectors.toList());
|
|
|
|
|
if (ptr.isEmpty()) {
|
|
|
|
@ -378,8 +371,10 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MesPartPtr mesPartPtr = null;
|
|
|
|
|
MesPartPtrDetail mesPartPtrDetail = null;
|
|
|
|
|
|
|
|
|
|
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());
|
|
|
|
@ -389,7 +384,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
} else {
|
|
|
|
|
//获取相同总成的ptrId 在ptr详情中
|
|
|
|
|
List<MesPartPtr> custPartPtrList = ptr.stream().filter(item -> item.getIsCustomerSendPrtInfo() == null || item.getIsCustomerSendPrtInfo() != CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()).collect(Collectors.toList());
|
|
|
|
|
if (!custPtrPartList.isEmpty()) {
|
|
|
|
|
if (!custPartPtrList.isEmpty()) {
|
|
|
|
|
mesPartPtr = custPartPtrList.get(0);
|
|
|
|
|
//查询ptr总成--只有特定总成才会替换
|
|
|
|
|
DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
@ -423,15 +418,22 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
ConvertBean.saveOrUpdate(mesPartPtrDetail, "JOB");
|
|
|
|
|
partPtrDetailRao.update(mesPartPtrDetail);
|
|
|
|
|
}
|
|
|
|
|
List<MesWorkOrderAssembly> orderAssemblyList = assemblyList.stream().filter(item -> item.getAssemblyPartNo().equals(orderPart.getPartNo())).collect(Collectors.toList());
|
|
|
|
|
MesWorkOrderAssembly orderAssembly = orderAssemblyList.get(0);
|
|
|
|
|
orderAssembly.setAssemblyPartNo(mesPartSap.getPartNo());
|
|
|
|
|
orderAssembly.setAssemblyPartName(mesPartSap.getPartName());
|
|
|
|
|
orderAssembly.setMatchRule(mesPartPtr.getReplacePartSnRule());
|
|
|
|
|
ptrInfos.append("INFO|").append(mesPartPtr.getId());
|
|
|
|
|
if (mesPartPtrDetail != null) {
|
|
|
|
|
ptrInfos.append("PART|").append(mesPartPtrDetail.getId());
|
|
|
|
|
MesWorkOrderAssembly orderAssemblyList = null;
|
|
|
|
|
for (MesWorkOrderAssembly orderAssembly : assemblyList) {
|
|
|
|
|
String assemblyPartNo = orderAssembly.getAssemblyPartNo();
|
|
|
|
|
if (StringUtils.isNotBlank(assemblyPartNo) && assemblyPartNo.equals(mesPartPtr.getSrcPartNo())){
|
|
|
|
|
orderAssemblyList = orderAssembly;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!Objects.isNull(orderAssemblyList)){
|
|
|
|
|
orderAssemblyList.setAssemblyPartNo(mesPartSap.getPartNo());
|
|
|
|
|
orderAssemblyList.setAssemblyPartName(mesPartSap.getPartName());
|
|
|
|
|
orderAssemblyList.setMatchRule(mesPartPtr.getReplacePartSnRule());
|
|
|
|
|
ptrInfos.append("INFO|").append(mesPartPtr.getId());
|
|
|
|
|
if (mesPartPtrDetail != null) {
|
|
|
|
|
ptrInfos.append("PART|").append(mesPartPtrDetail.getId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
@ -442,7 +444,17 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
|
|
|
|
|
}else {
|
|
|
|
|
mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue());
|
|
|
|
|
}
|
|
|
|
|
List<MesWorkOrderAssembly> assemblyList = new ArrayList<>();
|
|
|
|
|
/**
|
|
|
|
|
* 工单号修改
|
|
|
|
|
* {ORG}{dynamicRule}{dynamicRule}{dynamicrule}{serialNo}
|
|
|
|
|
* 工厂代码+工单类型 +客户工厂代码+班次+流水号
|
|
|
|
|
*/
|
|
|
|
|
GenSerialNoModel genSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN");
|
|
|
|
|
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(organizeCode), "edi", mesPartProdGroupDetail.getOrganizeCode(), 1).getResultList();
|
|
|
|
|
String serialNo = resultList.get(0).replace("MES_WORK_ORDER_NO_WU_HAN", "");
|
|
|
|
|
String orderNoWuHan = organizeCode + mesWorkOrder.getOrderFlag() + sortInfo.getCustOrderCode() + mesWorkOrder.getShiftCode() + serialNo;
|
|
|
|
|
mesWorkOrder.setWorkOrderNo(orderNoWuHan);
|
|
|
|
|
|
|
|
|
|
if (!workOrderPartList.isEmpty()) {
|
|
|
|
|
for (MesWorkOrderPart orderPart : workOrderPartList) {
|
|
|
|
|
orderPart.setOrganizeCode(organizeCode);
|
|
|
|
|