|
|
@ -327,81 +327,106 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void insertMesWorkOrder(MesWorkOrder item, List<MesWorkOrderPart> orderPartList) {
|
|
|
|
private void insertMesWorkOrder(MesWorkOrder item, List<MesWorkOrderPart> orderPartList) {
|
|
|
|
/**
|
|
|
|
//打印目视单使用
|
|
|
|
* 总成拆bom,变成子零件
|
|
|
|
StringBuilder descriptionStr = new StringBuilder();
|
|
|
|
* 替换子零件,通过替换后的零件,去找排序工艺
|
|
|
|
|
|
|
|
*/
|
|
|
|
//客户ptr信息
|
|
|
|
Map<String,String> ptrRuleListMap = new HashMap<>();
|
|
|
|
StringBuilder ptrInfos = new StringBuilder();
|
|
|
|
//是否修改为P单
|
|
|
|
boolean ptrFlag = false;
|
|
|
|
boolean isModifyPOrder = false;
|
|
|
|
boolean fOrderFlag = false;
|
|
|
|
//查询mes_part_ptr表,根据物料清单查找ptr替换信息
|
|
|
|
List<MesWorkOrderAssembly> assemblyList = new ArrayList<>();
|
|
|
|
if (!CollectionUtils.isEmpty(orderPartList)){
|
|
|
|
if (!CollectionUtils.isEmpty(orderPartList)) {
|
|
|
|
Map<String, MesWorkOrderPart> orderPartMap = orderPartList.stream().collect(Collectors.toMap(MesWorkOrderPart::getPartNo, Function.identity()));
|
|
|
|
//是否基于排序加工规则--待定
|
|
|
|
//先替换客户的ptr信息
|
|
|
|
//查询装配目视项
|
|
|
|
String ptrInfo = item.getPtrInfo();
|
|
|
|
assemblyList = getAssemblyList(item.getWorkCenterCode(), item.getCarModelCode(), orderPartList, item.getOrganizeCode());
|
|
|
|
if (!StringUtils.isEmpty(ptrInfo)) {
|
|
|
|
//ptr信息
|
|
|
|
List<String> ptrInfoList = Arrays.asList(ptrInfo.replace("_", "").split("\\|"));
|
|
|
|
List<String> partNoList = orderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList());
|
|
|
|
if (!ptrInfoList.isEmpty()){
|
|
|
|
List<MesPartPtr> partPtrList = getPartPtrList(item.getOrganizeCode(), item.getWorkCenterCode(), partNoList);
|
|
|
|
List<MesPartPtr> custPartPtrList = getCustPartPtrList(ptrInfoList, item.getOrganizeCode());
|
|
|
|
|
|
|
|
for (MesPartPtr mesPartPtr : custPartPtrList) {
|
|
|
|
for (MesWorkOrderPart orderPart : orderPartList) {
|
|
|
|
//根据mesPartPtr的目标零件号,找到零件信息
|
|
|
|
List<MesPartPtr> ptr = partPtrList.stream().filter(t -> t.getSrcPartNo().equals(orderPart.getPartNo())).collect(Collectors.toList());
|
|
|
|
String destPartNo = mesPartPtr.getDestPartNo();
|
|
|
|
if (ptr.isEmpty()) {
|
|
|
|
MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(destPartNo, item.getOrganizeCode());
|
|
|
|
continue;
|
|
|
|
//更新物料清单
|
|
|
|
|
|
|
|
MesWorkOrderPart orderPart = orderPartMap.get(destPartNo);
|
|
|
|
|
|
|
|
if (orderPart != null) {
|
|
|
|
|
|
|
|
orderPart.setPartNo(mesPartSap.getPartNo());
|
|
|
|
|
|
|
|
orderPart.setPartName(mesPartSap.getPartName());
|
|
|
|
|
|
|
|
orderPart.setShippingPartNo(mesPartSap.getPartNo());
|
|
|
|
|
|
|
|
if (!isModifyPOrder){
|
|
|
|
|
|
|
|
isModifyPOrder = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MesPartPtr mesPartPtr = null;
|
|
|
|
|
|
|
|
MesPartPtrDetail mesPartPtrDetail = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取相同总成的ptrId 在ptr详情中
|
|
|
|
|
|
|
|
List<MesPartPtr> custPartPtrList = ptr.stream().filter(t -> t.getIsCustomerSendPrtInfo() == null || t.getIsCustomerSendPrtInfo() != CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()).collect(Collectors.toList());
|
|
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(custPartPtrList)) {
|
|
|
|
|
|
|
|
mesPartPtr = custPartPtrList.iterator().next();
|
|
|
|
|
|
|
|
//查询ptr总成--只有特定总成才会替换
|
|
|
|
|
|
|
|
DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
|
|
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(), "ptrId", detailPartPtr);
|
|
|
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "totalPartNo", detailPartPtr);
|
|
|
|
|
|
|
|
List<MesPartPtrDetail> ptrDetailList = partPtrDetailRao.findByHqlWhere(detailPartPtr);
|
|
|
|
|
|
|
|
if (!ptrDetailList.isEmpty()) {
|
|
|
|
|
|
|
|
mesPartPtrDetail = ptrDetailList.get(0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (mesPartPtr == null || mesPartPtrDetail == null) {
|
|
|
|
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ptrFlag = true;
|
|
|
|
|
|
|
|
if (mesPartPtr.getIsInterPrt() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) {
|
|
|
|
|
|
|
|
fOrderFlag = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<String> partNoList = orderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList());
|
|
|
|
//将工单类零件表替换位PTR条件中维护的替换零件
|
|
|
|
List<MesPartPtr> partPtrList = getPartPtrList(item.getOrganizeCode(), item.getWorkCenterCode(), partNoList);
|
|
|
|
MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(mesPartPtr.getDestPartNo(), item.getOrganizeCode());
|
|
|
|
//装配件规则如果进行了零件替换 则使用ptr的规则 key 零件号,value 是规则
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (MesPartPtr mesPartPtr : partPtrList) {
|
|
|
|
|
|
|
|
//根据mesPartPtr的目标零件号,找到零件信息
|
|
|
|
|
|
|
|
String destPartNo = mesPartPtr.getDestPartNo();
|
|
|
|
|
|
|
|
String srcPartNo = mesPartPtr.getSrcPartNo();
|
|
|
|
|
|
|
|
MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(destPartNo, item.getOrganizeCode());
|
|
|
|
|
|
|
|
//更新物料清单
|
|
|
|
|
|
|
|
MesWorkOrderPart orderPart = orderPartMap.get(srcPartNo);
|
|
|
|
|
|
|
|
if (orderPart != null) {
|
|
|
|
|
|
|
|
orderPart.setPartNo(mesPartSap.getPartNo());
|
|
|
|
orderPart.setPartNo(mesPartSap.getPartNo());
|
|
|
|
orderPart.setPartName(mesPartSap.getPartName());
|
|
|
|
orderPart.setPartName(mesPartSap.getPartName());
|
|
|
|
orderPart.setShippingPartNo(mesPartSap.getPartNo());
|
|
|
|
//用于打印目视单
|
|
|
|
ptrRuleListMap.put(mesPartSap.getPartNo(), mesPartPtr.getReplacePartSnRule());
|
|
|
|
descriptionStr.append(mesPartPtr.getMemo());
|
|
|
|
if (!isModifyPOrder){
|
|
|
|
|
|
|
|
isModifyPOrder = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//更新mes_part_ptr的实际数量 + 1
|
|
|
|
//更新mes_part_ptr的实际数量 + 1
|
|
|
|
mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1);
|
|
|
|
mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1);
|
|
|
|
ConvertBean.saveOrUpdate(mesPartPtr, item.getModifyUser());
|
|
|
|
ConvertBean.saveOrUpdate(mesPartPtr, "JOB");
|
|
|
|
partPtrRao.update(mesPartPtr);
|
|
|
|
partPtrRao.update(mesPartPtr);
|
|
|
|
DdlPackBean partPtrDetailPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
|
|
|
if (mesPartPtrDetail != null) {
|
|
|
|
DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(),"ptrId",partPtrDetailPackBean);
|
|
|
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getPartNo(),"totalPartNo",partPtrDetailPackBean);
|
|
|
|
|
|
|
|
List<MesPartPtrDetail> partPtrDetailList = partPtrDetailRao.findByHqlWhere(partPtrDetailPackBean);
|
|
|
|
|
|
|
|
if (!partPtrDetailList.isEmpty()){
|
|
|
|
|
|
|
|
MesPartPtrDetail mesPartPtrDetail = partPtrDetailList.get(0);
|
|
|
|
|
|
|
|
mesPartPtrDetail.setQty(mesPartPtrDetail.getQty() + 1);
|
|
|
|
mesPartPtrDetail.setQty(mesPartPtrDetail.getQty() + 1);
|
|
|
|
ConvertBean.saveOrUpdate(mesPartPtrDetail, item.getModifyUser());
|
|
|
|
ConvertBean.saveOrUpdate(mesPartPtrDetail, "JOB");
|
|
|
|
partPtrDetailRao.update(mesPartPtrDetail);
|
|
|
|
partPtrDetailRao.update(mesPartPtrDetail);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//更新mes_part_ptr_detail 的workOrder.partNo 数量加 1 ;替换了几次还是什么
|
|
|
|
MesWorkOrderAssembly orderAssemblyList = null;
|
|
|
|
|
|
|
|
for (MesWorkOrderAssembly orderAssembly : assemblyList) {
|
|
|
|
|
|
|
|
String assemblyPartNo = orderAssembly.getAssemblyPartNo();
|
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(assemblyPartNo) && assemblyPartNo.equals(mesPartPtr.getSrcPartNo())) {
|
|
|
|
|
|
|
|
orderAssemblyList = orderAssembly;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 原pisces逻辑
|
|
|
|
|
|
|
|
* add by aix 2017.4.11 增加根据PTR维护页面维护的目视单显示项来替换WORKORDERASSEMBLY中的partdesc
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
if (!Objects.isNull(orderAssemblyList)) {
|
|
|
|
|
|
|
|
if (orderAssemblyList.getDisplaySeq() != null && orderAssemblyList.getDisplaySeq() != 0) {
|
|
|
|
|
|
|
|
orderAssemblyList.setDisplayValue(mesPartPtr.getVisualItem());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
orderAssemblyList.setAssemblyPartNo(mesPartSap.getPartNo());
|
|
|
|
// 生成装配件清单
|
|
|
|
orderAssemblyList.setAssemblyPartName(mesPartSap.getPartName());
|
|
|
|
if (isModifyPOrder){
|
|
|
|
orderAssemblyList.setMatchRule(mesPartPtr.getReplacePartSnRule());
|
|
|
|
|
|
|
|
ptrInfos.append("INFO|").append(mesPartPtr.getId());
|
|
|
|
|
|
|
|
if (mesPartPtrDetail != null) {
|
|
|
|
|
|
|
|
ptrInfos.append("PART|").append(mesPartPtrDetail.getId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (ptrFlag && !fOrderFlag) {
|
|
|
|
item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.PTR.getValue());
|
|
|
|
item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.PTR.getValue());
|
|
|
|
|
|
|
|
} else if (ptrFlag) {
|
|
|
|
|
|
|
|
item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.F.getValue());
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
item.setPtrInfo(ptrInfos.toString());
|
|
|
|
|
|
|
|
//生成工单号
|
|
|
|
|
|
|
|
item.setWorkOrderNo(getOrderNo(item));
|
|
|
|
|
|
|
|
//获取车型remark用于目视单打印
|
|
|
|
|
|
|
|
String remark = getCarRemark(item.getCustCode(), item.getCarModelCode(), item.getOrganizeCode());
|
|
|
|
|
|
|
|
item.setDescription(descriptionStr.append(remark).toString());
|
|
|
|
|
|
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(orderPartList)) {
|
|
|
|
if (!CollectionUtils.isEmpty(orderPartList)) {
|
|
|
|
for (MesWorkOrderPart orderPart : orderPartList) {
|
|
|
|
for (MesWorkOrderPart orderPart : orderPartList) {
|
|
|
@ -411,12 +436,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
}
|
|
|
|
}
|
|
|
|
workOrderPartRao.saveAll(orderPartList);
|
|
|
|
workOrderPartRao.saveAll(orderPartList);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<MesWorkOrderAssembly> assemblyList = getAssemblyList(item.getWorkCenterCode(), item.getCarModelCode(), orderPartList, item.getOrganizeCode());
|
|
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(assemblyList)) {
|
|
|
|
if (!CollectionUtils.isEmpty(assemblyList)) {
|
|
|
|
for (MesWorkOrderAssembly orderAssembly : assemblyList) {
|
|
|
|
for (MesWorkOrderAssembly orderAssembly : assemblyList) {
|
|
|
|
if (ptrRuleListMap.get(orderAssembly.getPartNo()) != null){
|
|
|
|
|
|
|
|
orderAssembly.setMatchRule(ptrRuleListMap.get(orderAssembly.getPartNo()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
orderAssembly.setPartNo(item.getPartNo());
|
|
|
|
orderAssembly.setPartNo(item.getPartNo());
|
|
|
|
orderAssembly.setPartName(item.getPartName());
|
|
|
|
orderAssembly.setPartName(item.getPartName());
|
|
|
|
orderAssembly.setWorkOrderNo(item.getWorkOrderNo());
|
|
|
|
orderAssembly.setWorkOrderNo(item.getWorkOrderNo());
|
|
|
@ -499,8 +520,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
//自动发布
|
|
|
|
//自动发布
|
|
|
|
if (CommonEnumUtil.VALID == mesPartProdGroup.getIsAutoRelease()) {
|
|
|
|
if (CommonEnumUtil.VALID == mesPartProdGroup.getIsAutoRelease()) {
|
|
|
|
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
|
|
|
|
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
|
|
|
|
// 创建工单打印队列
|
|
|
|
|
|
|
|
insertPrintQueue(item);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue());
|
|
|
|
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue());
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1780,8 +1799,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
|
|
|
|
|
|
|
//排序工单数量为1
|
|
|
|
//排序工单数量为1
|
|
|
|
bean.setQty(1d);
|
|
|
|
bean.setQty(1d);
|
|
|
|
//生成工单号
|
|
|
|
|
|
|
|
bean.setWorkOrderNo(getOrderNo(bean));
|
|
|
|
|
|
|
|
//自动发布
|
|
|
|
//自动发布
|
|
|
|
List<MesWorkOrderPart> orderPartList = autoPublish(bean);
|
|
|
|
List<MesWorkOrderPart> orderPartList = autoPublish(bean);
|
|
|
|
//顺序号
|
|
|
|
//顺序号
|
|
|
@ -1790,6 +1807,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
bean.setCustSn(getCustSn(bean.getCustPartNo(), bean.getOrganizeCode(), bean.getCreateUser()));
|
|
|
|
bean.setCustSn(getCustSn(bean.getCustPartNo(), bean.getOrganizeCode(), bean.getCreateUser()));
|
|
|
|
//生成工单零件 工单装配件
|
|
|
|
//生成工单零件 工单装配件
|
|
|
|
insertMesWorkOrder(bean, orderPartList);
|
|
|
|
insertMesWorkOrder(bean, orderPartList);
|
|
|
|
|
|
|
|
// 创建工单打印队列
|
|
|
|
|
|
|
|
if(bean.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()){
|
|
|
|
|
|
|
|
insertPrintQueue(bean);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//物料名称不存在,从物料信息中获取
|
|
|
|
//物料名称不存在,从物料信息中获取
|
|
|
|
MesPartSap mesPart = mesPartSapService.getMesPartSapByPartNo(bean.getPartNo(), bean.getOrganizeCode());
|
|
|
|
MesPartSap mesPart = mesPartSapService.getMesPartSapByPartNo(bean.getPartNo(), bean.getOrganizeCode());
|
|
|
@ -2095,6 +2116,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(bomVersion, "bomVersion", ddlPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(bomVersion, "bomVersion", ddlPackBean);
|
|
|
|
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "effStartTime", ddlPackBean);
|
|
|
|
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "effStartTime", ddlPackBean);
|
|
|
|
|
|
|
|
DdlPreparedPack.getStringBiggerPack(TimeTool.getNowTime(true), "effEndTime", ddlPackBean);
|
|
|
|
DdlPreparedPack.getOrderBy("effStartTime", CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), ddlPackBean);
|
|
|
|
DdlPreparedPack.getOrderBy("effStartTime", CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), ddlPackBean);
|
|
|
|
List<MesBom> mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean);
|
|
|
|
List<MesBom> mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean);
|
|
|
|
if (org.springframework.util.CollectionUtils.isEmpty(mesBoms)) {
|
|
|
|
if (org.springframework.util.CollectionUtils.isEmpty(mesBoms)) {
|
|
|
@ -2180,24 +2202,47 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private List<MesPartPtr> getPartPtrList(String organizeCode,String workCenterCode, List<String> partNoList) {
|
|
|
|
private List<MesPartPtr> getPartPtrList(String organizeCode,String workCenterCode, List<String> partNoList) {
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 2024/11/16
|
|
|
|
|
|
|
|
* PTR生效
|
|
|
|
|
|
|
|
* 1.有开始时间和结束时间 和 需要数量,达到其中一个就结束
|
|
|
|
|
|
|
|
* 2.有开始时间无结束时间 和 需要数量 达到需要的数量结束
|
|
|
|
|
|
|
|
* 3.有开始时间无结束时间,无结束数量 一直替换
|
|
|
|
|
|
|
|
*/
|
|
|
|
DdlPackBean partPtrPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPackBean partPtrPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", partPtrPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", partPtrPackBean);
|
|
|
|
DdlPreparedPack.getInPackList(partNoList, "srcPartNo", partPtrPackBean);
|
|
|
|
DdlPreparedPack.getInPackList(partNoList, "srcPartNo", partPtrPackBean);
|
|
|
|
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime("yyyy-MM-dd HH:mm:ss"), "startTime", partPtrPackBean);
|
|
|
|
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "startTime", partPtrPackBean);
|
|
|
|
DdlPreparedPack.getStringBiggerPack(TimeTool.getNowTime("yyyy-MM-dd HH:mm:ss"), "endTime", partPtrPackBean);
|
|
|
|
|
|
|
|
DdlPreparedPack.getIsNotNull("prtVehicleCount", partPtrPackBean);
|
|
|
|
|
|
|
|
List<MesPartPtr> partPtrList = partPtrRao.findByHqlWhere(partPtrPackBean);
|
|
|
|
List<MesPartPtr> partPtrList = partPtrRao.findByHqlWhere(partPtrPackBean);
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 有开始时间 和 无结束时间 和 需要的数量,只有达到数量才结束
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DdlPackBean part1PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", part1PtrPackBean);
|
|
|
|
|
|
|
|
DdlPreparedPack.getInPackList(partNoList, "srcPartNo", part1PtrPackBean);
|
|
|
|
|
|
|
|
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "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)
|
|
|
|
partPtrList = partPtrList.stream().filter(item -> item.getPrtVehicleCount() != null && item.getPrtVehicleCount() > 0)
|
|
|
|
.filter(item-> item.getPrtVehicleCount() > item.getPrtVehicleActualCount())
|
|
|
|
.filter(item-> item.getPrtVehicleCount() > item.getPrtVehicleActualCount())
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
return partPtrList;
|
|
|
|
/**
|
|
|
|
}
|
|
|
|
* 有开始时间 和 无结束时间 和 无需要的数量
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
//根据排序信息PTR零件号 获取 ptr信息
|
|
|
|
DdlPackBean part2PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
private List<MesPartPtr> getCustPartPtrList(List<String> ptrInfoList,String organizeCode){
|
|
|
|
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", part2PtrPackBean);
|
|
|
|
DdlPackBean partPtrPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPreparedPack.getInPackList(partNoList, "srcPartNo", part2PtrPackBean);
|
|
|
|
DdlPreparedPack.getInPackList(ptrInfoList, "seqInfoPrtPart", partPtrPackBean);
|
|
|
|
DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "startTime", part2PtrPackBean);
|
|
|
|
return partPtrRao.findByHqlWhere(partPtrPackBean);
|
|
|
|
DdlPreparedPack.getIsNull("prtVehicleCount", part2PtrPackBean);
|
|
|
|
|
|
|
|
DdlPreparedPack.getIsNull("endTime", part2PtrPackBean);
|
|
|
|
|
|
|
|
List<MesPartPtr> partPtrList2 = partPtrRao.findByHqlWhere(part2PtrPackBean);
|
|
|
|
|
|
|
|
partPtrList.addAll(partPtrList2);
|
|
|
|
|
|
|
|
return partPtrList;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private MesPartProdGroup getMesPartProdGroup(String organizeCode, String workCenterCode) {
|
|
|
|
private MesPartProdGroup getMesPartProdGroup(String organizeCode, String workCenterCode) {
|
|
|
@ -2254,7 +2299,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
orderAssembly.setCraftCode(sortCfg.getCraftCode());
|
|
|
|
orderAssembly.setCraftCode(sortCfg.getCraftCode());
|
|
|
|
orderAssembly.setRouteSeq(sortCfg.getRouteSeq());
|
|
|
|
orderAssembly.setRouteSeq(sortCfg.getRouteSeq());
|
|
|
|
orderAssembly.setWorkCellCode(sortCfg.getWorkCellCode());
|
|
|
|
orderAssembly.setWorkCellCode(sortCfg.getWorkCellCode());
|
|
|
|
orderAssembly.setOrderPartId(orderPart.getId().toString());
|
|
|
|
|
|
|
|
orderAssembly.setEquipmentCode(sortCfg.getEquipmentCode());
|
|
|
|
orderAssembly.setEquipmentCode(sortCfg.getEquipmentCode());
|
|
|
|
orderAssembly.setReportType(sortCfg.getReportType());
|
|
|
|
orderAssembly.setReportType(sortCfg.getReportType());
|
|
|
|
if (sortCfg.getReportType() != null && sortCfg.getReportType() == MesExtEnumUtil.MES_REPORT_TYPE.REPORT.getValue()){
|
|
|
|
if (sortCfg.getReportType() != null && sortCfg.getReportType() == MesExtEnumUtil.MES_REPORT_TYPE.REPORT.getValue()){
|
|
|
@ -2519,4 +2563,15 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
return mesProductVersion;
|
|
|
|
return mesProductVersion;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String getCarRemark(String custCode,String carModelCode,String organizeCode){
|
|
|
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(custCode,"custCode",ddlPackBean);
|
|
|
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(carModelCode,"carModelCode",ddlPackBean);
|
|
|
|
|
|
|
|
List<MesCustomerCarModel> carModelList = customerCarModelRepository.findByHqlTopWhere(ddlPackBean, 1);
|
|
|
|
|
|
|
|
if (carModelList != null && !carModelList.isEmpty()){
|
|
|
|
|
|
|
|
return carModelList.get(0).getRemark();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return "";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|