PTR逻辑及F单逻辑修改

tags/yfai-mes-ext-v2.3
臧学普 6 months ago
parent 5d06663578
commit 0e891ccb14

@ -318,12 +318,18 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
boolean isModifyPOrder = false;
boolean isFOrder = false;
//查询mes_part_ptr表根据物料清单查找ptr替换信息
/**
* PTR
* 1.
* 2.
* 3.
*/
if (!workOrderPartList.isEmpty()){
Map<String, MesWorkOrderPart> orderPartMap = workOrderPartList.stream().collect(Collectors.toMap(MesWorkOrderPart::getPartNo, Function.identity()));
//先替换客户的ptr信息
String ptrInfo = mesWorkOrder.getPtrInfo();
if (StringUtils.isNotBlank(ptrInfo)) {
List<String> ptrInfoList = Arrays.asList(ptrInfo.replace("_", "").split("\\|"));
List<String> ptrInfoList = Arrays.asList(ptrInfo.replaceAll("_", "").split("\\|"));
if (!ptrInfoList.isEmpty()){
List<MesPartPtr> custPartPtrList = getCustPartPtrList(ptrInfoList, organizeCode);
long count = custPartPtrList.stream().filter(item -> item.getIsCustomerSendPrtInfo() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()).count();
@ -349,12 +355,10 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
List<String> partNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList());
List<MesPartPtr> partPtrList = getPartPtrList(organizeCode, mesWorkOrder.getWorkCenterCode(), partNoList);
//装配件规则如果进行了零件替换 则使用ptr的规则 key 零件号value 是规则
long count = partPtrList.stream().filter(item -> item.getIsInterPrt() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()).count();
if (count > 0){
isFOrder = true;
}
List<String> fPartPtrPartList = partPtrList.stream().filter(item -> item.getIsInterPrt() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()).map(MesPartPtr::getSrcPartNo).collect(Collectors.toList());
for (MesPartPtr mesPartPtr : partPtrList) {
//查询ptr总成
//查询ptr总成--只有特定总成才会替换
DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(),"ptrId",detailPartPtr);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(),"totalPartNo",detailPartPtr);
@ -375,6 +379,9 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
if (!isModifyPOrder){
isModifyPOrder = true;
}
if (fPartPtrPartList.contains(mesPartPtr.getSrcPartNo())){
isFOrder = true;
}
mesWorkOrder.setRemark(mesPartPtr.getRemark());
String ptrInfoStr = "INFO"+mesPartPtr.getId()+"|PART"+mesPartPtrDetail.getId();
mesWorkOrder.setPtrInfo(ptrInfoStr);
@ -758,16 +765,50 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
}
private List<MesPartPtr> getPartPtrList(String organizeCode,String workCenterCode, List<String> partNoList) {
/**
* 2024/11/16
* PTR
* 1.
* 2.
* 3.
*/
DdlPackBean partPtrPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", partPtrPackBean);
DdlPreparedPack.getInPackList(partNoList, "srcPartNo", partPtrPackBean);
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime("yyyy-MM-dd HH:mm:ss"), "startTime", partPtrPackBean);
List<MesPartPtr> partPtrList = partPtrRao.findByHqlWhere(partPtrPackBean);
DdlPreparedPack.getStringBiggerPack(TimeTool.getNowTime("yyyy-MM-dd HH:mm:ss"), "endTime", partPtrPackBean);
DdlPreparedPack.getIsNotNull("prtVehicleCount", partPtrPackBean);
List<MesPartPtr> partPtrList = partPtrRao.findByHqlWhere(partPtrPackBean);
DdlPreparedPack.getIsNotNull("endTime", partPtrPackBean);
/**
*
*/
DdlPackBean part1PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", part1PtrPackBean);
DdlPreparedPack.getInPackList(partNoList, "srcPartNo", part1PtrPackBean);
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime("yyyy-MM-dd HH:mm:ss"), "startTime", part1PtrPackBean);
DdlPreparedPack.getIsNotNull("prtVehicleCount", part1PtrPackBean);
DdlPreparedPack.getIsNull("endTime", part1PtrPackBean);
List<MesPartPtr> partPtrList1 = partPtrRao.findByHqlWhere(part1PtrPackBean);
partPtrList.addAll(partPtrList1);
partPtrList = partPtrList.stream().filter(item -> item.getPrtVehicleCount() != null && item.getPrtVehicleCount() > 0)
.filter(item-> item.getPrtVehicleCount() > item.getPrtVehicleActualCount())
.collect(Collectors.toList());
/**
*
*/
DdlPackBean part2PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", part2PtrPackBean);
DdlPreparedPack.getInPackList(partNoList, "srcPartNo", part2PtrPackBean);
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime("yyyy-MM-dd HH:mm:ss"), "startTime", part2PtrPackBean);
DdlPreparedPack.getIsNull("prtVehicleCount", part2PtrPackBean);
DdlPreparedPack.getIsNull("endTime", part2PtrPackBean);
List<MesPartPtr> partPtrList2 = partPtrRao.findByHqlWhere(part2PtrPackBean);
partPtrList.addAll(partPtrList2);
return partPtrList;
}
//根据排序信息PTR零件号 获取 ptr信息

Loading…
Cancel
Save