From 7439a515cd6bf6795341f01bfe68376b7c56dd0f Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 4 Jul 2024 14:47:28 +0800 Subject: [PATCH] fsm reset --- .../serviceimpl/busi/MesNcProcessingService.java | 2 +- .../rulematch/MesNumberRuleMatchSnService.java | 4 +- .../step/MesProduceSeqCheckStepService.java | 50 ++++++++++++++++++++++ .../MesProductionProcessMonitorService.java | 15 ++++++- 4 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckStepService.java diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java index 1c79e63..b51091f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java @@ -327,7 +327,7 @@ public class MesNcProcessingService implements IMesNcProcessingService { if (type == MesExtEnumUtil.NC_TYPE.NORMAL.getValue()) { //更新条码质量状态 MesProduceSn sn = checkProduceSn(model.getSn(), org); - sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); + sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS_TO_QUALIFIED.getValue()); ConvertBean.serviceModelUpdate(sn, model.getPartInspection().getModifyUser()); produceSnRepository.save(sn); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java index ef19711..c0e9824 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java @@ -2,7 +2,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.rulematch; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesNumberRuleMatchDispatchService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; -import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base.MesPojoVersionServiceImpl; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyNosortContext; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; @@ -18,8 +17,6 @@ import org.springframework.util.StringUtils; import java.util.Arrays; import java.util.Comparator; import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -60,6 +57,7 @@ public class MesNumberRuleMatchSnService implements IMesNumberRuleMatchDispatchS LOGGER.info("条码:{}, 质量状态不合格 qcStatus={}", mesProduceSn.getProductSn(), mesProduceSn.getQcStatus()); return false; } + if (!Objects.equal(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue(), mesProduceSn.getSnStatus())) { LOGGER.info("条码:{}, 条码状态未完成 snStatus={}", mesProduceSn.getProductSn(), mesProduceSn.getSnStatus()); return false; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckStepService.java new file mode 100644 index 0000000..7a72a9f --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckStepService.java @@ -0,0 +1,50 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +import cn.estsh.i3plus.pojo.mes.model.StationResultBean; +import cn.estsh.i3plus.pojo.mes.model.StepResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description : 生产工单顺序防错 + * @Author : wangjie + **/ +@Slf4j +@Service("mesProduceSeqCheckStepService") +public class MesProduceSeqCheckStepService extends BaseStepService { + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + //获取上下文信息 + MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean); + + //获取生产过程上下文对象有异常信息 抛出异常 + if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage()); + + //存储生产过程上下文对象 + productionProcessContextStepService.saveProductionProcessContext(reqBean, productionProcessContext); + + + + return stepResult; + + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java index 718407c..ccbd519 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java @@ -57,10 +57,21 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic public Boolean doOffLine(StationRequestBean requestBean) { //删除当前状态点 fsmCommonService.doFlushCache(requestBean); - //执行跳过工序二开实现逻辑 - doJumpProcess(requestBean); + //清除上下文中的所有业务数据 + productionDispatchContextStepService.doFlushProductionDispatchContext(requestBean); + //清除上下文中的所有基础数据 + productionProcessContextStepService.doFlushProductionProcessContext(requestBean); + return true; + } + + @Override + public Boolean fsmReset(StationRequestBean requestBean) { + //清除上下文中的所有业务数据 + productionDispatchContextStepService.doFlushProductionDispatchContext(requestBean); //清除上下文中的所有基础数据 productionProcessContextStepService.doFlushProductionProcessContext(requestBean); + //清除工步客制化区域数据【装配件清单】 + this.sendMessage(requestBean, new StationResultBean().busiType(MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_CUSTOM_CONTENT.getValue()).dataType(MesPcnEnumUtil.STATION_DATA_TYPE.TABLES.getValue())); return true; }