武汉工单生成队列和序列号

tags/yfai-mes-ext-v2.3
臧学普 8 months ago
parent eceb7d9b5e
commit 68f09d4fcf

@ -4,7 +4,6 @@ import cn.estsh.i3plus.ext.mes.api.base.IMesCustSoftInfoService;
import cn.estsh.i3plus.ext.mes.api.base.strategy.IRoundnessStrategy; import cn.estsh.i3plus.ext.mes.api.base.strategy.IRoundnessStrategy;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesBomService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesBomService;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesPartSapService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesPartSapService;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
@ -85,6 +84,9 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
@Autowired @Autowired
private MesProduceSnRepository mesProduceSnRao; private MesProduceSnRepository mesProduceSnRao;
@Autowired
private MesQueueOrderRepository queueOrderRao;
@Override @Override
public void execute(MesPartProdGroup partProdGroup, List<MesCustSortInfo> sortInfoList, List<MesPartProdGroupDetail> details) { public void execute(MesPartProdGroup partProdGroup, List<MesCustSortInfo> sortInfoList, List<MesPartProdGroupDetail> details) {
try { try {
@ -188,7 +190,7 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
//订单序号=客户排序信息的序号 //订单序号=客户排序信息的序号
mesWorkOrder.setWorkOrderSeq(sortInfo.getCustInfoSeq().toString()); mesWorkOrder.setWorkOrderSeq(sortInfo.getCustInfoSeq().toString());
mesWorkOrder.setOrganizeCode(sortInfo.getOrganizeCode()); mesWorkOrder.setOrganizeCode(sortInfo.getOrganizeCode());
mesWorkOrder.setWorkCenterCode(mesPartProdGroupDetail.getWorkCenterCode()); mesWorkOrder.setWorkCenterCode(partProdGroup.getWorkCenterCode());
mesWorkOrder.setWorkCellCode(mesPartProdGroupDetail.getWorkCellCode()); mesWorkOrder.setWorkCellCode(mesPartProdGroupDetail.getWorkCellCode());
//来源 //来源
@ -275,17 +277,7 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
mesWorkOrder.setPartProdGroupCode(partProdGroup.getPartProdGroupCode()); mesWorkOrder.setPartProdGroupCode(partProdGroup.getPartProdGroupCode());
mesWorkOrder.setCarModelCode(sortInfo.getVehicleNo()); mesWorkOrder.setCarModelCode(sortInfo.getVehicleNo());
/**
*
* {dynamicRule}{dynamicRule}{dynamicRule}{dynamicrule}{serialNo}
* + +++
*/
GenSerialNoModel genSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN");
genSerialNoModel.setPartNo(mesPartProdGroupDetail.getWorkCenterCode());
String dynamicRule=organizeCode+","+mesWorkOrder.getOrderFlag()+","+sortInfo.getCustOrderCode()+","+mesWorkOrder.getShiftCode();
genSerialNoModel.setDynamicRule(dynamicRule);
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(organizeCode), "edi", mesPartProdGroupDetail.getOrganizeCode(), 1).getResultList();
mesWorkOrder.setWorkOrderNo(resultList.get(0));
/** /**
* RS ASCII:30 * RS ASCII:30
@ -436,6 +428,28 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
}else { }else {
mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()); mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue());
} }
/**
*
* {dynamicRule}{dynamicRule}{dynamicRule}{dynamicrule}{serialNo}
* + +++
*/
GenSerialNoModel genSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN");
genSerialNoModel.setPartNo(mesPartProdGroupDetail.getWorkCenterCode());
String dynamicRule=organizeCode+","+mesWorkOrder.getOrderFlag()+","+sortInfo.getCustOrderCode()+","+mesWorkOrder.getShiftCode();
genSerialNoModel.setDynamicRule(dynamicRule);
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(organizeCode), "edi", mesPartProdGroupDetail.getOrganizeCode(), 1).getResultList();
mesWorkOrder.setWorkOrderNo(resultList.get(0));
/**
*
* -线-9,10
*/
GenSerialNoModel prodSeqSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN");
prodSeqSerialNoModel.setProdLocation(mesWorkOrder.getWorkCenterCode());
List<String> proSeqResultList = syncFuncService.syncSerialNo(prodSeqSerialNoModel.organizeCode(organizeCode), "edi", mesPartProdGroupDetail.getOrganizeCode(), 1).getResultList();
String proSeqStr = proSeqResultList.get(0);
mesWorkOrder.setProduceSeq(Long.parseLong(proSeqStr.replace(organizeCode, "").replace(mesWorkOrder.getWorkCenterCode(),"")));
mesWorkOrderRao.insert(mesWorkOrder); mesWorkOrderRao.insert(mesWorkOrder);
@ -446,6 +460,31 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
ConvertBean.saveOrUpdate(orderAssembly, "MES-JOB"); ConvertBean.saveOrUpdate(orderAssembly, "MES-JOB");
} }
workOrderAssemblyRao.saveAll(assemblyList); workOrderAssemblyRao.saveAll(assemblyList);
List<String> cellCodeList = assemblyList.stream().map(MesWorkOrderAssembly::getWorkCellCode).distinct().collect(Collectors.toList());
Map<String, Integer> cell2Process = assemblyList.stream().collect(Collectors.toMap(MesWorkOrderAssembly::getWorkCellCode, MesWorkOrderAssembly::getProcessSeq));
for (String cellCode : cellCodeList) {
MesQueueOrder mesQueueOrder = new MesQueueOrder();
mesQueueOrder.setWorkOrderNo(mesWorkOrder.getWorkOrderNo());
mesQueueOrder.setOrganizeCode(organizeCode);
mesQueueOrder.setWorkCellCode(cellCode);
mesQueueOrder.setPartProdGroupCode(partProdGroup.getPartProdGroupCode());
mesQueueOrder.setPartProdGroupName(partProdGroup.getPartProdGroupName());
mesQueueOrder.setProcessSeq(cell2Process.get(cellCode));
mesQueueOrder.setPartNo(mesWorkOrder.getPartNo());
mesQueueOrder.setPartName(mesWorkOrder.getPartName());
mesQueueOrder.setWorkOrderNo(mesWorkOrder.getWorkOrderNo());
mesQueueOrder.setSerialNumber(mesWorkOrder.getWorkOrderNo());
mesQueueOrder.setProductSn(mesWorkOrder.getWorkOrderNo());
mesQueueOrder.setCustSn(mesWorkOrder.getSn());
mesQueueOrder.setStatus(MesExtEnumUtil.QUEUE_ORDER_STATUS.CREATE.getValue());
mesQueueOrder.setProduceSeq(mesWorkOrder.getProduceSeq());
mesQueueOrder.setWorkOrderSeq(mesWorkOrder.getWorkOrderSeq());
mesQueueOrder.setCustPartNo(mesWorkOrder.getCustPartNo());
ConvertBean.saveOrUpdate(mesQueueOrder, "MES-JOB");
queueOrderRao.insert(mesQueueOrder);
}
} }
//生成条码表 //生成条码表
@ -494,6 +533,9 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
if (StringUtils.isNotBlank(sortCfg.getVehicleNo()) && !sortCfg.getVehicleNo().equals(VehicleNo)){ if (StringUtils.isNotBlank(sortCfg.getVehicleNo()) && !sortCfg.getVehicleNo().equals(VehicleNo)){
continue; continue;
} }
orderAssembly.setDisplaySeq(sortCfg.getDisplaySeq());
orderAssembly.setDisplayValue(sortCfg.getDisplayValue());
orderAssembly.setProcessSeq(sortCfg.getProcessSeq());
orderAssembly.setCraftName(sortCfg.getCraftName()); orderAssembly.setCraftName(sortCfg.getCraftName());
orderAssembly.setCraftCode(sortCfg.getCraftCode()); orderAssembly.setCraftCode(sortCfg.getCraftCode());
orderAssembly.setRouteSeq(sortCfg.getRouteSeq()); orderAssembly.setRouteSeq(sortCfg.getRouteSeq());

Loading…
Cancel
Save