diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java index eff2f63..bd0ef23 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station; +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.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseModuleService; @@ -29,12 +30,18 @@ public class MesProductionNoSortModuleService extends BaseModuleService { @Autowired private IMesProductionProcessContextStepService productionProcessContextStepService; + @Autowired + private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService; + @Override public void init(StationRequestBean reqBean) { /** * 工单号 和 分组 */ - StationResultBean resultBean = getStationResultBean(reqBean); + List> moduleContentContext = mesProductionDispatchContextStepService.getModuleContentContext(reqBean); + + + StationResultBean resultBean = getStationResultBean(reqBean, moduleContentContext); StationResultBean resultBean1 = getStationResultBean1(reqBean); @@ -44,62 +51,17 @@ public class MesProductionNoSortModuleService extends BaseModuleService { this.sendMessage(reqBean, resultBean); - - - - this.sendMessage(reqBean, resultBean); } - private StationResultBean getStationResultBean(StationRequestBean reqBean) { + private StationResultBean getStationResultBean(StationRequestBean reqBean, List> moduleContentContext) { StationResultBean resultBean = new StationResultBean(); resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue()); resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.CUSTOM.getValue()); resultBean.setCustomPageName(MesPcnExtConstWords.CUSTOM_PAGE_NAME_DEFAULT); resultBean.setSpecialDisplayData(getStepColIndent(reqBean)); - List> stationKvBeansList = new ArrayList<>(); - List stationKvBeans = new ArrayList<>(); - StationKvBean stationKvBean = new StationKvBean(); - stationKvBean.setKey("orderNo"); - stationKvBean.setName("工单号"); - stationKvBean.setValue("11111"); - stationKvBeans.add(stationKvBean); - - StationKvBean stationKvBean1 = new StationKvBean(); - stationKvBean1.setKey("partNo"); - stationKvBean1.setName("零件号"); - stationKvBean1.setValue("111"); - stationKvBeans.add(stationKvBean1); - - StationKvBean stationKvBean2 = new StationKvBean(); - stationKvBean2.setKey("count"); - stationKvBean2.setName("单数"); - stationKvBean2.setValue("1111"); - stationKvBeans.add(stationKvBean2); - - stationKvBeansList.add(stationKvBeans); - List stationKvBeans1 = new ArrayList<>(); - StationKvBean stationKvBean4 = new StationKvBean(); - stationKvBean4.setKey("orderNo"); - stationKvBean4.setName("工单号"); - stationKvBean4.setValue("11111"); - stationKvBeans1.add(stationKvBean4); - - StationKvBean stationKvBean5 = new StationKvBean(); - stationKvBean5.setKey("partNo"); - stationKvBean5.setName("零件号"); - stationKvBean5.setValue("111"); - stationKvBeans1.add(stationKvBean5); - - StationKvBean stationKvBean6 = new StationKvBean(); - stationKvBean6.setKey("count"); - stationKvBean6.setName("单数"); - stationKvBean6.setValue("1111"); - stationKvBeans1.add(stationKvBean6); - stationKvBeansList.add(stationKvBeans1); - List stationKvBeans3 = new ArrayList<>(); StationKvBean stationKvBean7 = new StationKvBean(); @@ -115,7 +77,7 @@ public class MesProductionNoSortModuleService extends BaseModuleService { stationKvBeans3.add(stationKvBean8); resultBean.setResultObj(stationKvBeans3); - resultBean.setResultList(stationKvBeansList); + resultBean.setResultList(moduleContentContext); return resultBean; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldRecordGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldRecordGenerateStepService.java index 14788ca..43e06f7 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldRecordGenerateStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldRecordGenerateStepService.java @@ -11,6 +11,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil; @@ -91,6 +92,7 @@ public class MesMouldRecordGenerateStepService extends BaseStepService { MesProdMouldRecord mesProductionRecord = getMesProdMouldRecord(mesCellEquipContext, mouldNo, mesMouldMappingCfg); + ConvertBean.serviceModelInitialize(mesProductionRecord, reqBean.getUserInfo()); mesProdMouldRecords.add(mesProductionRecord); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultErrorHandleStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultErrorHandleStepService.java new file mode 100644 index 0000000..8e8900c --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultErrorHandleStepService.java @@ -0,0 +1,90 @@ +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.pojo.context.MesCellEquipContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ActorMessage; +import cn.estsh.i3plus.mes.pcn.config.SpringExtProvider; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +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.util.MesExtEnumUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @Description : 加工异常处理工步 + * @Author : zxw + **/ +@Slf4j +@Service +public class MesProductResultErrorHandleStepService extends BaseStepService { + @Autowired + private SnowflakeIdMaker snowflakeIdMaker; + + @Autowired + private ActorSystem actorSystem; + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + + + @Autowired + private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService; + + public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT"; + + private static final Map refMap = new ConcurrentHashMap<>(200); + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + // 获取上下文信息 + MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean); + + // 获取条码信息 + List mesProduceSns = mesProductionDispatchContextStepService.getOutProduceSnDataContext(reqBean); + // 通过上下文获取工位设备信息 + MesCellEquipContext curCellEquip = productionProcessContext.getCurCellEquip(); + + String mesProduceSnsStr = !CollectionUtils.isEmpty(mesProduceSns) ? JSONObject.toJSONString(mesProduceSns) : null; + ActorMessage actorMessage = ActorMessage.builder() + .equipmentCode(curCellEquip.getEquipmentCode()) + .equipId(curCellEquip.getEquipId()) + .organizeCode(reqBean.getOrganizeCode()) + .organizeName(reqBean.getOrganizeName()) + .workCellCode(reqBean.getWorkCellCode()) + .workCenterCode(reqBean.getWorkCenterCode()) + .areaCode(reqBean.getAreaCode()) + .craftCode(productionProcessContext.getCraftCode()) + .processCode(reqBean.getProcessCode()) + .produceSnJson(mesProduceSnsStr) + .userName(reqBean.getUserInfo()) + .build(); + // 数据采集信息需要存放到 redis中 + String key = this.getFsmBusikey(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.name()); + ActorRef ref = refMap.computeIfAbsent(key, + k -> actorSystem.actorOf(SpringExtProvider.getInstance().get(actorSystem).create("mesHandlerEquipLogActor"), key)); + ref.tell(actorMessage, ActorRef.noSender()); + + return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "保存工艺参数成功"); + } +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionReocrdGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionReocrdGenerateStepService.java index 8705df5..f317df1 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionReocrdGenerateStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionReocrdGenerateStepService.java @@ -6,6 +6,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesPart; @@ -63,6 +64,7 @@ public class MesProductionReocrdGenerateStepService extends BaseStepService { mesProduceSns.forEach(mesProduceSn -> { MesProductionRecord mesProductionRecord = getMesProductionRecord(productionProcessContext, mesProduceSn, reqBean); + ConvertBean.serviceModelInitialize(mesProductionRecord, reqBean.getUserInfo()); mesProductionRecords.add(mesProductionRecord); }); @@ -78,11 +80,17 @@ public class MesProductionReocrdGenerateStepService extends BaseStepService { mesProductionRecord.setAreaCode(mesProduceSn.getAreaCode()); mesProductionRecord.setCraftCode(mesProduceSn.getCraftCode()); mesProductionRecord.setCustSn(mesProduceSn.getCustSn()); - mesProductionRecord.setEquipmentCode(mesProduceSn.getEquipmentCode()); + mesProductionRecord.setProductSn(mesProduceSn.getCustSn()); + mesProductionRecord.setEquipmentCode(productionProcessContext.getCurCellEquip().getEquipmentCode()); + mesProductionRecord.setEquipmentName(productionProcessContext.getCurCellEquip().getEquipmentName()); + mesProductionRecord.setPartNo(mesProduceSn.getPartNo()); + mesProductionRecord.setPartName(mesProduceSn.getPartNameRdd()); mesProductionRecord.setIsComplete(MesEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); mesProductionRecord.setCompleteDateTime(DateUtil.formatDateTime(new Date())); mesProductionRecord.setLotNo(mesProduceSn.getLotNo()); mesProductionRecord.setEquipmentName(mesProduceSn.getEquipmentName()); + //mesProductionRecord.setShiftGroup(); + //mesProductionRecord.setWorkOrderNo(productionProcessContext.get); String mouldNo = ""; MesEquipVariableCollectContext mesFirstMouldNoCollectContext = mesProductionDispatchContextStepService.getFirstMouldNoContext(reqBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSaveProcessResultStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSaveProcessResultStepService.java new file mode 100644 index 0000000..eef2e48 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSaveProcessResultStepService.java @@ -0,0 +1,81 @@ +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.pojo.context.MesCellEquipContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ActorMessage; +import cn.estsh.i3plus.mes.pcn.config.SpringExtProvider; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +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.util.MesExtEnumUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @Description : 加工异常处理工步 + * @Author : zxw + **/ +@Slf4j +@Service +public class MesSaveProcessResultStepService extends BaseStepService { + @Autowired + private SnowflakeIdMaker snowflakeIdMaker; + + @Autowired + private ActorSystem actorSystem; + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Autowired + private MesVariableWhenFinishedReadStepService mesVariableWhenFinishedReadStepService; + + @Autowired + private MesMouldRecordGenerateStepService mesMouldRecordGenerateStepService; + + @Autowired + private MesProductSnSaveStepService MesProductSnSaveStepService; + + @Autowired + private MesProductionReocrdGenerateStepService mesProductionReocrdGenerateStepService; + + @Autowired + private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService; + + public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT"; + + private static final Map refMap = new ConcurrentHashMap<>(200); + + @Override + public StepResult execute(StationRequestBean reqBean) { + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + mesMouldRecordGenerateStepService.execute(reqBean); + + MesProductSnSaveStepService.execute(reqBean); + + mesProductionReocrdGenerateStepService.execute(reqBean); + + + mesProductionDispatchContextStepService.deleteFirstMouldNoContext(reqBean); + mesProductionDispatchContextStepService.deleteMouldNoContext(reqBean); + mesProductionDispatchContextStepService.deleteProductResultContext(reqBean); + mesProductionDispatchContextStepService.deleteReadySignalContext(reqBean); + return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "保存加工结果成功"); + } +}