|
|
|
@ -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.apiservice.serviceimpl.base.MesBomService;
|
|
|
|
|
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.platform.common.convert.ConvertBean;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.tool.TimeTool;
|
|
|
|
@ -85,6 +84,9 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesProduceSnRepository mesProduceSnRao;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesQueueOrderRepository queueOrderRao;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void execute(MesPartProdGroup partProdGroup, List<MesCustSortInfo> sortInfoList, List<MesPartProdGroupDetail> details) {
|
|
|
|
|
try {
|
|
|
|
@ -188,7 +190,7 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
|
|
|
|
|
//订单序号=客户排序信息的序号
|
|
|
|
|
mesWorkOrder.setWorkOrderSeq(sortInfo.getCustInfoSeq().toString());
|
|
|
|
|
mesWorkOrder.setOrganizeCode(sortInfo.getOrganizeCode());
|
|
|
|
|
mesWorkOrder.setWorkCenterCode(mesPartProdGroupDetail.getWorkCenterCode());
|
|
|
|
|
mesWorkOrder.setWorkCenterCode(partProdGroup.getWorkCenterCode());
|
|
|
|
|
mesWorkOrder.setWorkCellCode(mesPartProdGroupDetail.getWorkCellCode());
|
|
|
|
|
|
|
|
|
|
//来源
|
|
|
|
@ -275,17 +277,7 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
|
|
|
|
|
|
|
|
|
|
mesWorkOrder.setPartProdGroupCode(partProdGroup.getPartProdGroupCode());
|
|
|
|
|
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
|
|
|
|
@ -436,6 +428,28 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
|
|
|
|
|
}else {
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -446,6 +460,31 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
|
|
|
|
|
ConvertBean.saveOrUpdate(orderAssembly, "MES-JOB");
|
|
|
|
|
}
|
|
|
|
|
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)){
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
orderAssembly.setDisplaySeq(sortCfg.getDisplaySeq());
|
|
|
|
|
orderAssembly.setDisplayValue(sortCfg.getDisplayValue());
|
|
|
|
|
orderAssembly.setProcessSeq(sortCfg.getProcessSeq());
|
|
|
|
|
orderAssembly.setCraftName(sortCfg.getCraftName());
|
|
|
|
|
orderAssembly.setCraftCode(sortCfg.getCraftCode());
|
|
|
|
|
orderAssembly.setRouteSeq(sortCfg.getRouteSeq());
|
|
|
|
|