mes-ptr完善逻辑

tags/yfai-mes-ext-v2.3
臧学普 6 months ago
parent 548113c995
commit ac38ee8ec3

@ -295,10 +295,19 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
/** /**
* bom, * bom,
* *
*
* PTR 3
* 1.PTRPTR info
* 2.PTRF
* 3.PTR, P
*
* isCustomerSendPrtInfo 1ptr
* isInterPrt 1ptr
*/ */
Map<String,String> ptrRuleListMap = new HashMap<>(); Map<String,String> ptrRuleListMap = new HashMap<>();
//是否修改为P单 //是否修改为P单
boolean isModifyPOrder = false; boolean isModifyPOrder = false;
boolean isFOrder = false;
//查询mes_part_ptr表根据物料清单查找ptr替换信息 //查询mes_part_ptr表根据物料清单查找ptr替换信息
if (!workOrderPartList.isEmpty()){ if (!workOrderPartList.isEmpty()){
Map<String, MesWorkOrderPart> orderPartMap = workOrderPartList.stream().collect(Collectors.toMap(MesWorkOrderPart::getPartNo, Function.identity())); Map<String, MesWorkOrderPart> orderPartMap = workOrderPartList.stream().collect(Collectors.toMap(MesWorkOrderPart::getPartNo, Function.identity()));
@ -308,18 +317,21 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
List<String> ptrInfoList = Arrays.asList(ptrInfo.replace("_", "").split("\\|")); List<String> ptrInfoList = Arrays.asList(ptrInfo.replace("_", "").split("\\|"));
if (!ptrInfoList.isEmpty()){ if (!ptrInfoList.isEmpty()){
List<MesPartPtr> custPartPtrList = getCustPartPtrList(ptrInfoList, organizeCode); List<MesPartPtr> custPartPtrList = getCustPartPtrList(ptrInfoList, organizeCode);
for (MesPartPtr mesPartPtr : custPartPtrList) { long count = custPartPtrList.stream().filter(item -> item.getIsCustomerSendPrtInfo() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()).count();
//根据mesPartPtr的目标零件号找到零件信息 if (count > 0){
String destPartNo = mesPartPtr.getDestPartNo(); for (MesPartPtr mesPartPtr : custPartPtrList) {
MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(destPartNo, organizeCode); //根据mesPartPtr的目标零件号找到零件信息
//更新物料清单 String destPartNo = mesPartPtr.getDestPartNo();
MesWorkOrderPart orderPart = orderPartMap.get(destPartNo); MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(destPartNo, organizeCode);
if (orderPart != null) { //更新物料清单
orderPart.setPartNo(mesPartSap.getPartNo()); MesWorkOrderPart orderPart = orderPartMap.get(destPartNo);
orderPart.setPartName(mesPartSap.getPartName()); if (orderPart != null) {
orderPart.setShippingPartNo(mesPartSap.getPartNo()); orderPart.setPartNo(mesPartSap.getPartNo());
if (!isModifyPOrder){ orderPart.setPartName(mesPartSap.getPartName());
isModifyPOrder = true; orderPart.setShippingPartNo(mesPartSap.getPartNo());
if (!isModifyPOrder){
isModifyPOrder = true;
}
} }
} }
} }
@ -328,46 +340,60 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
List<String> partNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList()); List<String> partNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList());
List<MesPartPtr> partPtrList = getPartPtrList(organizeCode, mesWorkOrder.getWorkCenterCode(), partNoList); List<MesPartPtr> partPtrList = getPartPtrList(organizeCode, mesWorkOrder.getWorkCenterCode(), partNoList);
//装配件规则如果进行了零件替换 则使用ptr的规则 key 零件号value 是规则 //装配件规则如果进行了零件替换 则使用ptr的规则 key 零件号value 是规则
long count = partPtrList.stream().filter(item -> item.getIsInterPrt() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()).count();
if (count > 0){
isFOrder = true;
}
for (MesPartPtr mesPartPtr : partPtrList) { for (MesPartPtr mesPartPtr : partPtrList) {
//根据mesPartPtr的目标零件号找到零件信息 //查询ptr总成
String destPartNo = mesPartPtr.getDestPartNo(); DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(organizeCode);
String srcPartNo = mesPartPtr.getSrcPartNo(); DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(),"ptrId",detailPartPtr);
MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(destPartNo, organizeCode); DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(),"partNo",detailPartPtr);
//更新物料清单 int detailPtrPartCount = partPtrDetailRao.findByHqlWhereCount(detailPartPtr);
MesWorkOrderPart orderPart = orderPartMap.get(srcPartNo); if (detailPtrPartCount > 0){
if (orderPart != null) { //根据mesPartPtr的目标零件号找到零件信息
orderPart.setPartNo(mesPartSap.getPartNo()); String destPartNo = mesPartPtr.getDestPartNo();
orderPart.setPartName(mesPartSap.getPartName()); String srcPartNo = mesPartPtr.getSrcPartNo();
orderPart.setShippingPartNo(mesPartSap.getPartNo()); MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(destPartNo, organizeCode);
ptrRuleListMap.put(mesPartSap.getPartNo(), mesPartPtr.getReplacePartSnRule()); //更新物料清单
if (!isModifyPOrder){ MesWorkOrderPart orderPart = orderPartMap.get(srcPartNo);
isModifyPOrder = true; if (orderPart != null) {
} orderPart.setPartNo(mesPartSap.getPartNo());
//更新mes_part_ptr的实际数量 + 1 orderPart.setPartName(mesPartSap.getPartName());
mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1); orderPart.setShippingPartNo(mesPartSap.getPartNo());
ConvertBean.saveOrUpdate(mesPartPtr,"JOB"); ptrRuleListMap.put(mesPartSap.getPartNo(), mesPartPtr.getReplacePartSnRule());
partPtrRao.update(mesPartPtr); if (!isModifyPOrder){
DdlPackBean partPtrDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode); isModifyPOrder = true;
DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(),"ptrId",partPtrDetailPackBean); }
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(),"totalPartNo",partPtrDetailPackBean); //更新mes_part_ptr的实际数量 + 1
List<MesPartPtrDetail> partPtrDetailList = partPtrDetailRao.findByHqlWhere(partPtrDetailPackBean); mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1);
if (!partPtrDetailList.isEmpty()){ ConvertBean.saveOrUpdate(mesPartPtr,"JOB");
MesPartPtrDetail mesPartPtrDetail = partPtrDetailList.get(0); partPtrRao.update(mesPartPtr);
mesPartPtrDetail.setQty(mesPartPtrDetail.getQty() + 1); DdlPackBean partPtrDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode);
ConvertBean.saveOrUpdate(mesPartPtrDetail,"JOB"); DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(),"ptrId",partPtrDetailPackBean);
partPtrDetailRao.update(mesPartPtrDetail); DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(),"totalPartNo",partPtrDetailPackBean);
List<MesPartPtrDetail> partPtrDetailList = partPtrDetailRao.findByHqlWhere(partPtrDetailPackBean);
if (!partPtrDetailList.isEmpty()){
MesPartPtrDetail mesPartPtrDetail = partPtrDetailList.get(0);
mesPartPtrDetail.setQty(mesPartPtrDetail.getQty() + 1);
ConvertBean.saveOrUpdate(mesPartPtrDetail,"JOB");
partPtrDetailRao.update(mesPartPtrDetail);
}
//更新mes_part_ptr_detail 的workOrder.partNo 数量加 1 ;替换了几次还是什么
} }
//更新mes_part_ptr_detail 的workOrder.partNo 数量加 1 ;替换了几次还是什么
} }
} }
} }
// 生成装配件清单 // 生成装配件清单
if (isModifyPOrder){ if (!isFOrder){
mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.PTR.getValue()); if (isModifyPOrder){
mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.PTR.getValue());
}else {
mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue());
}
}else { }else {
mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()); mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.F.getValue());
} }
/** /**
* *

Loading…
Cancel
Save