diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportGenerateStepService.java index 748a3fb..f345329 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportGenerateStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportGenerateStepService.java @@ -1,38 +1,21 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import akka.actor.ActorRef; -import akka.actor.ActorSystem; 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.api.busi.IMesWorkOrderService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdRuleContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; -import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; -import cn.estsh.i3plus.platform.common.convert.ConvertBean; -import cn.estsh.i3plus.platform.common.tool.MathOperation; -import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; -import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; -import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.base.util.StringUtil; -import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; 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 cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; -import cn.estsh.impp.framework.boot.exception.ImppBusiException; -import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; +import java.util.List; /** * @Description : 生产汇报工步 @@ -46,6 +29,9 @@ public class MesReportGenerateStepService extends BaseStepService { private IMesProductionProcessContextStepService productionProcessContextStepService; @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Autowired private MesReportNoSortStepService reportNoSortStepService; @Autowired @@ -56,15 +42,16 @@ public class MesReportGenerateStepService extends BaseStepService { StationResultBean resultBean = new StationResultBean(); StepResult stepResult = StepResult.getSuccessComplete(); // todo 根据产线判断是排序还是非排序,然后调用排序或者非排序的报工工步 -// //产品加工规则 -// List prodRuleDataContext = mesProductionDispatchContextStepService.getProdRuleDataContext(reqBean); -// //获取产成零件信息 -// List productionPartContext = mesProductionDispatchContextStepService.getProductionPartContext(reqBean); + //产品加工规则 +// List prodRuleDataContext = productionDispatchContextStepService.getProdRuleDataContext(reqBean); + //获取产成零件信息 +// List productionPartContext = productionDispatchContextStepService.getProductionPartContext(reqBean); //1. 校验当前有没有工单---只有有工单才能报工 //如果产品加工规则中的foreignKey 和 产成零件信息 一一对应的,查询MesProductionPartContext的工单号 // List mesProduceSns = mesProductionDispatchContextStepService.getProductionPsOutContext(reqBean); + //获取上下文信息 MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportNoSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportNoSortStepService.java index 5c15f43..aed2dc4 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportNoSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReportNoSortStepService.java @@ -1,6 +1,7 @@ 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.pojo.context.MesProdRuleContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; @@ -56,16 +57,31 @@ public class MesReportNoSortStepService extends BaseStepService { @Autowired private MesProductPlanRepository mesProductPlanRDao; + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; @Override public StepResult execute(StationRequestBean reqBean) { StationResultBean resultBean = new StationResultBean(); StepResult stepResult = StepResult.getSuccessComplete(); - // todo 先不使用缓存中的数据 - //1. 校验当前有没有工单---只有有工单才能报工 - //如果产品加工规则中的foreignKey 和 产成零件信息 一一对应的,查询MesProductionPartContext的工单号 + + //产品加工规则 + List prodRuleDataContext = productionDispatchContextStepService.getProdRuleDataContext(reqBean); + //如果产品加工规则中的foreignKey 和 mesProduceSns 一一对应的, List mesProduceSns = mesProductionDispatchContextStepService.getProductionPsOutContext(reqBean); - this.doProductReport(mesProduceSns, reqBean.getOrganizeCode(), reqBean.getUserInfo(),reqBean,resultBean); + //需要报工的条码 + List needReportSn = new ArrayList<>(); + for (MesProductionPsOutContext sn : mesProduceSns) { + Integer foreignKey = sn.getForeignKey(); + List ruleContextList = prodRuleDataContext.stream().filter(rule -> Objects.equals(rule.getForeignKey(), foreignKey)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(ruleContextList)) { + Integer reportType = ruleContextList.get(0).getReportType(); + if (MesExtEnumUtil.NOSORT_REPORT_TYPE.REPORT.getValue() == reportType){ + needReportSn.add(sn); + } + } + } + this.doProductReport(needReportSn, reqBean.getOrganizeCode(), reqBean.getUserInfo(),reqBean,resultBean); return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "报工成功"); }