From 11fcda0b433cedae7727ab06e5f1750788ec9c27 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Wed, 10 Jul 2024 20:56:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=BA=E5=BA=8F=E9=98=B2=E9=94=99=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../station/function/MesFunctionSwitchCellService.java | 10 ++++++++-- .../step/MesWorkOrderCheckNosortStepService.java | 14 +++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionSwitchCellService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionSwitchCellService.java index 3890531..531d9a0 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionSwitchCellService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionSwitchCellService.java @@ -3,12 +3,14 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IShippingDispatchService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; /** * @Description : 工位参数按钮事件接口实现【切换工位】 @@ -22,8 +24,12 @@ public class MesFunctionSwitchCellService extends BaseSwsService implements IFsm @Override public Object doCustomApiDispatch(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) { - this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue()).scanInfo(buttonDynamicModel.getFunctionValue()), - String.format("生产线[%s]工位[%s]%s,客户端已下线!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), buttonDynamicModel.getButtonName()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); + if (StringUtils.isEmpty(buttonDynamicModel.getFunctionValue()) || buttonDynamicModel.getFunctionValue().equals(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValueStr())) + this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue()).scanInfo(buttonDynamicModel.getFunctionValue()), + String.format("生产线[%s]工位[%s]%s,客户端已下线!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), buttonDynamicModel.getButtonName()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); + else + this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue()).scanInfo(buttonDynamicModel.getFunctionValue()), + String.format("生产线[%s]工位[%s]%s,客户端已在线!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), buttonDynamicModel.getButtonName()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); return true; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java index c21b0c5..9075fd1 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java @@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; @@ -89,6 +90,13 @@ public class MesWorkOrderCheckNosortStepService extends MesWorkOrderCheckStepSer //验证是否支持跳过 Boolean isAllowJump = checkIsAllowJump(cachedProductionPartContextList); + //不属于工艺强过码,如果此前存在工艺验证失败的数据 则清除此前的产出零件信息 + if (!isCraftJumpCode && isAllowJump) { + //删除上下文产出零件信息 + productionDispatchContextStepService.deleteProductionPartContext(reqBean); + cachedProductionPartContextList = null; + } + //当前不允许跳过 if (isCraftJumpCode && !isAllowJump) return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.SCAN.getValue()). @@ -155,20 +163,20 @@ public class MesWorkOrderCheckNosortStepService extends MesWorkOrderCheckStepSer } //验证扫描信息是否属于工艺强过码 - public Boolean doMatchCraftJumpCode(MesProductionProcessContext productionProcessContext, List equipVariableCollectContextList) { + private Boolean doMatchCraftJumpCode(MesProductionProcessContext productionProcessContext, List equipVariableCollectContextList) { if (equipVariableCollectContextList.size() != 1 || MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue() != equipVariableCollectContextList.get(0).getMessageSource()) return false; if (!equipVariableCollectContextList.get(0).getEquipVariableValue().equals(productionProcessContext.getCraftJumpCode())) return false; return true; } //验证是否支持跳过 - public Boolean checkIsAllowJump(List productionPartContextList) { + private Boolean checkIsAllowJump(List productionPartContextList) { Optional optional = CollectionUtils.isEmpty(productionPartContextList) ? null : productionPartContextList.stream().filter(o -> (null != o && o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).findFirst(); return (null != optional && optional.isPresent()) ? true : false; } //验证扫描信息属于工艺强过码 并且支持跳过,进行数据变更 - public void updateProductionPartContextList(StationRequestBean reqBean, List productionPartContextList, String craftJumpCode) { + private void updateProductionPartContextList(StationRequestBean reqBean, List productionPartContextList, String craftJumpCode) { productionPartContextList.forEach(o -> { if (o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0) o.setCraftJumpCode(craftJumpCode); });