diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckCustOrderNoStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckCustOrderNoStepService.java index d827c37..f7680ec 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckCustOrderNoStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckCustOrderNoStepService.java @@ -68,11 +68,11 @@ public class MesProduceSeqCheckCustOrderNoStepService extends MesProduceSeqCheck List productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean); //验证是否存在加工单 - if (!checkIsExistWorkOrder(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前无加工单信息,无需进行顺序防错验证!"); + if (!checkIsExistWorkOrder(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前无加工单信息,无需进行加工单客户订单号顺序防错验证!"); //验证工位是否设置需要顺序防错 if (!isNeedCheckProduceSeq(productionPartContextList)) - return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置顺序防错,无需进行顺序防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); + return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置顺序防错,无需进行加工单客户订单号顺序防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); //验证是否存在工艺强过码, 存在则保存 并返回强过的加工单 List workOrderNoList2Jump = doHandleCraftJumpCode(reqBean, productionPartContextList); @@ -89,6 +89,30 @@ public class MesProduceSeqCheckCustOrderNoStepService extends MesProduceSeqCheck } + //验证是否存在工艺强过码, 存在则保存 并返回强过的加工单 + public List doHandleCraftJumpCode(StationRequestBean reqBean, List productionPartContextList) { + + List workOrderNoList2Jump = null; + + for (MesProductionPartContext productionPartContext : productionPartContextList) { + + if (null == productionPartContext || productionPartContext.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) != 0 || StringUtils.isEmpty(productionPartContext.getCraftJumpCode())) continue; + + if (CollectionUtils.isEmpty(workOrderNoList2Jump)) workOrderNoList2Jump = new ArrayList<>(); + + workOrderNoList2Jump.add(productionPartContext.getWorkOrderNo()); + + productionPartContext.checkSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + + } + + //保存上下文产出零件信息 + if (!CollectionUtils.isEmpty(workOrderNoList2Jump)) productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList); + + return workOrderNoList2Jump; + + } + //顺序防错验证处理 private void doHandleProduceSeqCheck(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List productionPartContextList) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckNosortStepService.java index dfed3b9..78117d3 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckNosortStepService.java @@ -66,11 +66,11 @@ public class MesProduceSeqCheckNosortStepService extends MesProduceSeqCheckStepS List productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean); //验证是否存在加工单 - if (!checkIsExistWorkOrder(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前无加工单信息,无需进行顺序防错验证!"); + if (!checkIsExistWorkOrder(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前无加工单信息,无需进行加工单顺序防错验证!"); //验证工位是否设置需要顺序防错 if (!isNeedCheckProduceSeq(productionPartContextList)) - return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置顺序防错,无需进行顺序防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); + return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置顺序防错,无需进行加工单顺序防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); //验证是否存在工艺强过码, 存在则保存 并返回强过的加工单 List workOrderNoList2Jump = doHandleCraftJumpCode(reqBean, productionPartContextList); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckSortStepService.java index 29e9905..16465fd 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckSortStepService.java @@ -68,11 +68,11 @@ public class MesProduceSeqCheckSortStepService extends MesProduceSeqCheckStepSer List productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean); //验证是否存在加工单 - if (!checkIsExistWorkOrder(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前无加工单信息,无需进行顺序防错验证!"); + if (!checkIsExistWorkOrder(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前无加工单信息,无需进行加工单顺序防错验证!"); //验证工位是否设置需要顺序防错 if (!isNeedCheckProduceSeq(productionPartContextList)) - return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置顺序防错,无需进行顺序防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); + return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置顺序防错,无需进行加工单顺序防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); //验证是否存在工艺强过码, 存在则保存 并返回强过的加工单 List workOrderNoList2Jump = doHandleCraftJumpCode(reqBean, productionPartContextList); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java index b3c3b86..327dbc6 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java @@ -153,7 +153,7 @@ public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepServi String workOrderStr = equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.toList()).toString(); return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(workOrderStr), stepResult, String.format("当前%s加工单%s验证工单状态成功%s!", MesExtEnumUtil.CELL_MESSAGE_SOURCE.valueOfDescription(equipVariableCollectContextList.get(0).getMessageSource()), workOrderStr, - MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue() == equipVariableCollectContextList.get(0).getMessageSource() ? String.format(",当前加工单个数[%s]已满足腔数", productionPartContextList.size()) : MesPcnExtConstWords.EMPTY)); + (MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue() == equipVariableCollectContextList.get(0).getMessageSource() && productionPartContextList.size() > 1) ? String.format(",当前加工单个数[%s]已满足腔数", productionPartContextList.size()) : MesPcnExtConstWords.EMPTY)); } @@ -251,8 +251,8 @@ public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepServi if (!CollectionUtils.isEmpty(orderList)) { orderList.forEach(o -> StationKvBeanUtil.addStationKvBeanList(dataList, new ArrayList<>(), new StationKvBean(MesPcnExtConstWords.WORK_ORDER_NO, "工单号", o.getWorkOrderNo()), new StationKvBean(MesPcnExtConstWords.PART_NO, "零件编码", o.getPartNo()), - new StationKvBean(MesPcnExtConstWords.QTY, "工单数", String.valueOf(o.getQty().intValue())), - new StationKvBean(MesPcnExtConstWords.CAVITY, "腔数", new StringJoiner(MesPcnExtConstWords.SLANT_R).add(String.valueOf(index.updateAndGet(v -> v + 1))).add(String.valueOf(productionPartContextList.size())).toString()))); + new StationKvBean(MesPcnExtConstWords.CAR_MODEL_CODE, "车型配置", o.getCarModelCode()), new StationKvBean(MesPcnExtConstWords.CUST_ORDER_NO, "客户订单号", o.getCustOrderNo()), + productionPartContextList.size() == 1 ? null : new StationKvBean(MesPcnExtConstWords.CAVITY, "腔数", new StringJoiner(MesPcnExtConstWords.SLANT_R).add(String.valueOf(index.updateAndGet(v -> v + 1))).add(String.valueOf(productionPartContextList.size())).toString()))); } if (!CollectionUtils.isEmpty(finishCodeList)) { diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java index cc92111..2fa662f 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java @@ -76,13 +76,16 @@ public class MesProductionPartContext implements Serializable { @ApiParam("零件生产组代码") private String partProdGroupCode; + @ApiParam("车型大类") + private String carModelCode; + @ApiParam("信息来源") private Integer messageSource; @ApiParam("生产序号") private Long produceSeq; - @ApiParam("客户订单号【用于发送设备加工参数】") + @ApiParam("客户订单号") private String custOrderNo; @ApiParam("vin号【用于发送设备加工参数】") diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 7881fef..f4d53c5 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -177,6 +177,10 @@ public class MesPcnExtConstWords { public static final String COLOR = "color"; // 设备计数点位固定二级变量 public static final String SHOT_COUNTER = "shot_counter"; + // 车型大类 + public static final String CAR_MODEL_CODE = "carModelCode"; + // 客户订单号 + public static final String CUST_ORDER_NO = "custOrderNo"; // 客制化条码长度:通用 public static final Integer CUSTOMER_SN_LENGTH_GM = 58;