diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java index 6bd1a27..0bcbb24 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java @@ -2,14 +2,12 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesWorkOrderCutDetailModel; -import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesRawPartCharging; import cn.estsh.i3plus.pojo.mes.model.StationKvBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import io.swagger.annotations.ApiOperation; import java.util.List; -import java.util.Map; /** * 获取生产过程上下文对象接口【BUSI】 @@ -88,18 +86,6 @@ public interface IMesProductionDispatchContextStepService { @ApiOperation(value = "删除上下文产出零件信息") Boolean removeProductionPartContext(StationRequestBean reqBean); - @ApiOperation(value = "获取上下文零件数据信息") - Map getPartDataContext(StationRequestBean reqBean); - - @ApiOperation(value = "获取上下文零件数据信息") - Map getPartDataExtContext(StationRequestBean reqBean); - - @ApiOperation(value = "保存上下文零件数据信息", notes = "[JSON]Map") - Boolean dispatchPartDataContext(StationRequestBean reqBean, Map partDataMap); - - @ApiOperation(value = "删除上下文零件数据信息") - void removePartDataContext(StationRequestBean reqBean); - @ApiOperation(value = "获取上下文模具号") MesEquipVariableCollectContext getMouldNoContext(StationRequestBean reqBean); diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java index 0b9035d..5cbb885 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java @@ -1,13 +1,7 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyNosortContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesScanMonitorContext; -import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable; -import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg; -import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; +import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.model.StationKvBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; @@ -107,6 +101,18 @@ public interface IMesProductionProcessContextStepService { @ApiOperation(value = "存储设备的装配件清单") Boolean dispatchAssemblyNosortCfgContext(StationRequestBean reqBean, List assemblyNosortCfgList); + @ApiOperation(value = "获取上下文零件数据信息") + Map getPartDataContext(StationRequestBean reqBean); + + @ApiOperation(value = "获取上下文零件数据信息") + Map getPartDataExtContext(StationRequestBean reqBean); + + @ApiOperation(value = "保存上下文零件数据信息", notes = "[JSON]Map") + Boolean dispatchPartDataContext(StationRequestBean reqBean, Map partDataMap); + + @ApiOperation(value = "删除上下文零件数据信息") + void removePartDataContext(StationRequestBean reqBean); + @ApiOperation(value = "获取手动选择的腔数及工单信息上下文") List getFunctionChooseCavityOrderContext(StationRequestBean reqBean); @@ -116,6 +122,15 @@ public interface IMesProductionProcessContextStepService { @ApiOperation(value = "删除手动选择的腔数及工单信息上下文") void removeFunctionChooseCavityOrderContext(StationRequestBean reqBean); + @ApiOperation(value = "获取手动选择的腔数及零件信息上下文") + List getFunctionChooseCavityPartContext(StationRequestBean reqBean); + + @ApiOperation(value = "保存选择/扫描/读取的腔数及零件信息上下文", notes = "[StationKvBean(key=cavity, name=腔数, value=3, seq=0), StationKvBean(key=cellMessageSource, name=工位信息来源, value=10, seq=1), StationKvBean(key=workOrderNo, name=零件编码, value=零件1;零件2;零件3, seq=2)]") + Boolean dispatchFunctionChooseCavityPartContext(StationRequestBean reqBean, List resultList); + + @ApiOperation(value = "删除手动选择的腔数及零件信息上下文") + void removeFunctionChooseCavityPartContext(StationRequestBean reqBean); + @ApiOperation(value = "获取上下文工位扫描监控信息") MesScanMonitorContext dispatchScanMonitorContext(StationRequestBean reqBean, Boolean isSave); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionChooseCavityPartService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionChooseCavityPartService.java index 031200c..cbf94fe 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionChooseCavityPartService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionChooseCavityPartService.java @@ -62,8 +62,8 @@ public class MesFunctionChooseCavityPartService extends BaseSwsService implement return false; } - //保存手动选择的腔数及工单信息上下文 - productionProcessContextStepService.dispatchFunctionChooseCavityOrderContext(reqBean, resultList); + //保存手动选择的腔数及零件信息上下文 + productionProcessContextStepService.dispatchFunctionChooseCavityPartContext(reqBean, resultList); this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue()).scanInfo(buttonDynamicModel.getFunctionValue()), String.format("生产线[%s]工位[%s]%s成功,请等待验证!提交信息[%s]", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), buttonDynamicModel.getButtonName(), buttonDynamicModel.getFunctionValue()), diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java index b6f5e81..7f10e72 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.busi.*; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method.MesAssemblySaveSortStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java index 262a2bd..9f29d2c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java @@ -1,9 +1,9 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProdRuleCfgExtService; 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.apiservice.serviceimpl.step.method.MesAssemblySaveSortStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService; @@ -50,9 +50,6 @@ public class MesAssemblyShowSortStepService extends BaseStepService { @Autowired private IFsmCommonService fsmCommonService; - @Autowired - public IMesAssemblyExtService assemblyExtService; - @Override public StepResult execute(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java index 65b5635..a0e36ff 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java @@ -2,15 +2,14 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMouldMultiCavityService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.*; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method.MesPartDataMapSaveStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; -import cn.estsh.i3plus.mes.pcn.api.iservice.base.IPartService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg; -import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam; import cn.estsh.i3plus.pojo.mes.model.StationKvBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; @@ -58,7 +57,7 @@ public class MesFirstMouldNoReadStepService extends BaseStepService { private IMesMouldMultiCavityService mouldMultiCavityService; @Autowired - private IPartService partService; + private MesPartDataMapSaveStepService partDataMapSaveStepService; @Override public void title(StationRequestBean reqBean) { @@ -172,10 +171,10 @@ public class MesFirstMouldNoReadStepService extends BaseStepService { productionCustomContextStepService.sendStepContextMessage(reqBean, firstMouldNo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ); //验证一模多腔信息 - List productionPartContextList = getProductionPartList(reqBean, resultBean, productionProcessContext, cellEquipContext, firstMouldNo, true); + List productionPartContextList = getProductionPartList(reqBean, resultBean, cellEquipContext, firstMouldNo, true); //保存零件数据信息 - savePartDataMap(reqBean, resultBean, stepResult, productionProcessContext, productionPartContextList, false); + savePartDataMap2PPC(reqBean, resultBean, stepResult, productionPartContextList, false, false); //保存设备当前一轮工序的头道模具号,产出零件(一模多腔)信息 productionDispatchContextStepService.dispatchFirstMouldNoContext(reqBean, equipVariableCollectContextList.get(0)); @@ -190,76 +189,47 @@ public class MesFirstMouldNoReadStepService extends BaseStepService { } - public List getProductionPartList(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, String mouldNo, Boolean isFirstMouldNo) { - - //从上下文中取出产出零件(一模多腔)信息集合 - List productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean); - - //验证产出零件(一模多腔)信息是否跟当前对设备及模具匹配; 根据设备代码,模具号查询一模多腔信息 - if (!checkCachedProductionPartValid(productionPartContextList, cellEquipContext.getEquipmentCode(), mouldNo)) productionPartContextList = mouldMultiCavityService.getProductionPartList(reqBean.getOrganizeCode(), cellEquipContext.getEquipmentCode(), mouldNo); - - //配置错误 抛出异常 - if (CollectionUtils.isEmpty(productionPartContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog().scanInfo(mouldNo), String.format("当前设备[%s]与读取到的%s模具号[%s]未维护有效的一模多腔信息!", cellEquipContext.getEquipmentName(), isFirstMouldNo ? "头道" : MesPcnExtConstWords.EMPTY, mouldNo)); - - return productionPartContextList; - - } - + //验证产出零件(一模多腔)信息是否跟当前对设备及模具匹配 private Boolean checkCachedProductionPartValid(List productionPartContextList, String equipmentCode, String firstMouldNo) { return (!CollectionUtils.isEmpty(productionPartContextList) && productionPartContextList.get(0).getEquipmentCode().equals(equipmentCode) && productionPartContextList.get(0).getMouldNo().equals(firstMouldNo)) ? true : false; } - public StepResult savePartDataMap(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List productionPartContextList, Boolean isBackError) { - - //从一模多腔信息中搜集零件编码并去重 - List partNoList = (productionPartContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()))).map(MesProductionPartContext::getPartNo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); - - return savePartDataMap(reqBean, resultBean, stepResult, partNoList, isBackError); - + //封装展示组件MODULE_CONTENT内容 + private List> getModuleContextData(StationRequestBean reqBean, List productionPartContextList, Boolean isFirstMouldNo) { + List> dataList = new ArrayList<>(); + AtomicReference index = new AtomicReference<>(0); + productionPartContextList.forEach(o -> StationKvBeanUtil.addStationKvBeanList(dataList, new ArrayList<>(), + new StationKvBean(MesPcnExtConstWords.MOULD_NO, isFirstMouldNo ? "头道模具号" : "模具号", o.getMouldNo()), new StationKvBean(MesPcnExtConstWords.PART_NO, "零件编码", o.getPartNo()), + new StationKvBean(MesPcnExtConstWords.PART_NAME, "零件名称", o.getPartName()), new StationKvBean(MesPcnExtConstWords.CAVITY, "腔数", index.updateAndGet(v -> v + 1) + "/" + productionPartContextList.size()))); + return dataList; } - public StepResult savePartDataMap(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List partNoList, Boolean isBackError) { - - if (CollectionUtils.isEmpty(partNoList)) return stepResult; - - //从上下文中取出零件信息集合 - Map partDataMap = productionDispatchContextStepService.getPartDataContext(reqBean); - - //验证上下文中取出零件信息集合是否匹配一模多腔信息中搜集零件编码 - if (!CollectionUtils.isEmpty(partDataMap) && !CollectionUtils.isEmpty(partNoList) && partDataMap.keySet().containsAll(partNoList) && partNoList.containsAll(partDataMap.keySet())) return stepResult.obj(partDataMap); - - //根据物料编码集合查询物料信息 - Map finalPartDataMap = partService.getPartMap(reqBean.getOrganizeCode(), partNoList); + //保存零件数据信息 + public void savePartDataMap2PPC(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List productionPartContextList, Boolean isBackError, Boolean isFilter) { + //保存零件数据信息 + partDataMapSaveStepService.savePartDataMap2PPC(reqBean, resultBean, stepResult, productionPartContextList, false, false); + } - //零件信息缺失 抛出异常 - List filterList = CollectionUtils.isEmpty(finalPartDataMap) ? null : partNoList.stream().filter(o -> (null != o && !finalPartDataMap.containsKey(o))).collect(Collectors.toList()); + //验证一模多腔信息 + public List getProductionPartList(StationRequestBean reqBean, StationResultBean resultBean, MesCellEquipContext cellEquipContext, String mouldNo, Boolean isFirstMouldNo) { - //保存上下文零件数据信息 - if (!CollectionUtils.isEmpty(finalPartDataMap) && CollectionUtils.isEmpty(filterList)) - return stepResult.isCompleted(productionDispatchContextStepService.dispatchPartDataContext(reqBean, finalPartDataMap)).obj(finalPartDataMap).msg(!stepResult.isCompleted() ? "零件数据信息保存上下文操作执行失败,请重试!" : null); + //从上下文中取出产出零件(一模多腔)信息集合 + List productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean); - //验证错误 根据isBackError判断是否抛出异常 - stepResult.isCompleted(false).msg(String.format("请检查零件信息,零件编码%s信息不存在!", CollectionUtils.isEmpty(finalPartDataMap) ? partNoList.toString() : filterList.toString())); + //验证产出零件(一模多腔)信息是否跟当前对设备及模具匹配; 根据设备代码,模具号查询一模多腔信息 + if (!checkCachedProductionPartValid(productionPartContextList, cellEquipContext.getEquipmentCode(), mouldNo)) productionPartContextList = mouldMultiCavityService.getProductionPartList(reqBean.getOrganizeCode(), cellEquipContext.getEquipmentCode(), mouldNo); - if (!isBackError) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), stepResult.getMsg()); + //配置错误 抛出异常 + if (CollectionUtils.isEmpty(productionPartContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog().scanInfo(mouldNo), String.format("当前设备[%s]与读取到的%s模具号[%s]未维护有效的一模多腔信息!", cellEquipContext.getEquipmentName(), isFirstMouldNo ? "头道" : MesPcnExtConstWords.EMPTY, mouldNo)); - return stepResult; + return productionPartContextList; } + //更新展示组件MODULE_CONTENT内容 public void doCacheMoudleContext(StationRequestBean reqBean, List productionPartContextList, Boolean isFirstMouldNo) { //存储展示组件MODULE_CONTENT内容 productionDispatchContextStepService.dispatchModuleContentContext(reqBean, getModuleContextData(reqBean, productionPartContextList, isFirstMouldNo)); } - //封装展示组件MODULE_CONTENT内容 - private List> getModuleContextData(StationRequestBean reqBean, List productionPartContextList, Boolean isFirstMouldNo) { - List> dataList = new ArrayList<>(); - AtomicReference index = new AtomicReference<>(0); - productionPartContextList.forEach(o -> StationKvBeanUtil.addStationKvBeanList(dataList, new ArrayList<>(), - new StationKvBean(MesPcnExtConstWords.MOULD_NO, isFirstMouldNo ? "头道模具号" : "模具号", o.getMouldNo()), new StationKvBean(MesPcnExtConstWords.PART_NO, "零件编码", o.getPartNo()), - new StationKvBean(MesPcnExtConstWords.PART_NAME, "零件名称", o.getPartName()), new StationKvBean(MesPcnExtConstWords.CAVITY, "腔数", index.updateAndGet(v -> v + 1) + "/" + productionPartContextList.size()))); - return dataList; - } - } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java index 64f3b28..b5e7cff 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java @@ -1,6 +1,5 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMouldMultiCavityService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; @@ -48,9 +47,6 @@ public class MesMouldNoReadStepService extends BaseStepService { private IMesEquipVariableCfgRuleMatchDispatchService equipVariableCfgRuleMatchService; @Autowired - private IMesMouldMultiCavityService mouldMultiCavityService; - - @Autowired private MesFirstMouldNoReadStepService firstMouldNoReadStepService; @Override @@ -183,18 +179,18 @@ public class MesMouldNoReadStepService extends BaseStepService { stepResult.obj(equipVariableCollectContextList.get(0)); //存在模具号读一模多腔配置[工步参数] - if (!StringUtils.isEmpty(isReadMultiCavityCfg)) doHandleFirstMouldNo(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, mouldNo); + if (!StringUtils.isEmpty(isReadMultiCavityCfg)) doHandleFirstMouldNo(reqBean, resultBean, stepResult, cellEquipContext, mouldNo); return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.READ.getValue()).scanInfo(mouldNo), stepResult, String.format("当前已读取到设备[%s]模具号信息[%s]!", cellEquipContext.getEquipmentName(), mouldNo)); } - private void doHandleFirstMouldNo(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, String mouldNo) { + private void doHandleFirstMouldNo(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesCellEquipContext cellEquipContext, String mouldNo) { //磨具号当头道模具号的使用 - List productionPartContextList = firstMouldNoReadStepService.getProductionPartList(reqBean, resultBean, productionProcessContext, cellEquipContext, mouldNo, false); + List productionPartContextList = firstMouldNoReadStepService.getProductionPartList(reqBean, resultBean, cellEquipContext, mouldNo, false); //保存零件数据信息 - firstMouldNoReadStepService.savePartDataMap(reqBean, resultBean, stepResult, productionProcessContext, productionPartContextList, false); + firstMouldNoReadStepService.savePartDataMap2PPC(reqBean, resultBean, stepResult, productionPartContextList, false, false); //保存设备当前一轮工序的产出零件(一模多腔)信息 productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java index 5436fed..2c4ef82 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java @@ -1,7 +1,5 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsInContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; @@ -15,7 +13,6 @@ 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; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; @@ -31,12 +28,6 @@ import java.util.stream.Collectors; @Service("mesProdCraftRouteCheckNosortStepService") public class MesProdCraftRouteCheckNosortStepService extends MesProdCraftRouteCheckStepService { - @Autowired - private IMesProductionRecordService productionRecordService; - - @Autowired - private IMesAssemblyExtService assemblyExtService; - @Override public StepResult execute(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java index b2ef2f7..279c844 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java @@ -1,7 +1,5 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsInContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; @@ -14,7 +12,6 @@ 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; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; @@ -30,12 +27,6 @@ import java.util.stream.Collectors; @Service("mesProdCraftRouteCheckSortStepService") public class MesProdCraftRouteCheckSortStepService extends MesProdCraftRouteCheckStepService { - @Autowired - private IMesProductionRecordService productionRecordService; - - @Autowired - private IMesAssemblyExtService assemblyExtService; - @Override public StepResult execute(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java index c44ab7b..3483ae3 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java @@ -1,7 +1,9 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; 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.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsInContext; import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmRouteDataService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; @@ -39,6 +41,12 @@ public class MesProdCraftRouteCheckStepService extends BaseStepService { public IMesProductionDispatchContextStepService productionDispatchContextStepService; @Autowired + public IMesProductionRecordService productionRecordService; + + @Autowired + public IMesAssemblyExtService assemblyExtService; + + @Autowired private IFsmRouteDataService fsmRouteDataService; @Override diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckCustOrderNoStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckCustOrderNoStepService.java index bab75b4..a26747f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckCustOrderNoStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckCustOrderNoStepService.java @@ -1,8 +1,5 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; 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.util.MesPcnExtConstWords; @@ -16,7 +13,6 @@ 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 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; @@ -32,15 +28,6 @@ import java.util.stream.Collectors; @Service("mesProductSeqCheckCustOrderNoStepService") public class MesProductSeqCheckCustOrderNoStepService extends MesProductSeqCheckStepService { - @Autowired - private IMesWorkOrderExtService workOrderExtService; - - @Autowired - private IMesProduceSnExtService produceSnExtService; - - @Autowired - private IMesAssemblyExtService assemblyExtService; - @Override public StepResult execute(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckNosortStepService.java index dbf1ff7..77c7525 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckNosortStepService.java @@ -1,8 +1,5 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; 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.util.MesPcnExtConstWords; @@ -16,7 +13,6 @@ 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 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; @@ -33,15 +29,6 @@ import java.util.stream.Collectors; @Service("mesProductSeqCheckNosortStepService") public class MesProductSeqCheckNosortStepService extends MesProductSeqCheckStepService { - @Autowired - private IMesWorkOrderExtService workOrderExtService; - - @Autowired - private IMesProduceSnExtService produceSnExtService; - - @Autowired - private IMesAssemblyExtService assemblyExtService; - @Override public StepResult execute(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckSortStepService.java index 3f3c1dc..dd59c04 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckSortStepService.java @@ -1,8 +1,5 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; 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.util.MesPcnExtConstWords; @@ -16,7 +13,6 @@ 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 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; @@ -35,15 +31,6 @@ import java.util.stream.Collectors; @Service("mesProductSeqCheckSortStepService") public class MesProductSeqCheckSortStepService extends MesProductSeqCheckStepService { - @Autowired - private IMesWorkOrderExtService workOrderExtService; - - @Autowired - private IMesProduceSnExtService produceSnExtService; - - @Autowired - private IMesAssemblyExtService assemblyExtService; - @Override public StepResult execute(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckStepService.java index 8d2b044..6bd8842 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckStepService.java @@ -1,7 +1,6 @@ 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.api.busi.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; @@ -34,6 +33,15 @@ public class MesProductSeqCheckStepService extends BaseStepService { @Autowired public IMesProductionDispatchContextStepService productionDispatchContextStepService; + @Autowired + public IMesWorkOrderExtService workOrderExtService; + + @Autowired + public IMesProduceSnExtService produceSnExtService; + + @Autowired + public IMesAssemblyExtService assemblyExtService; + @Override public StepResult execute(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java index ad476c5..20aff5b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; 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.apiservice.serviceimpl.step.method.MesPartDataMapSaveStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmRouteDataService; @@ -56,7 +57,7 @@ public class MesProductSnGenerateStepService extends BaseStepService { private IMesProductionCustomContextStepService productionCustomContextStepService; @Autowired - private MesFirstMouldNoReadStepService firstMouldNoReadStepService; + private MesPartDataMapSaveStepService partDataMapSaveStepService; @Autowired private ISyncFuncService syncFuncService; @@ -116,7 +117,7 @@ public class MesProductSnGenerateStepService extends BaseStepService { //获取上下文零件数据信息 List partNoList = (prodRuleContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getOutPartNo()))).map(MesProdRuleContext::getOutPartNo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); - firstMouldNoReadStepService.savePartDataMap(reqBean, resultBean, stepResult, partNoList, false); + partDataMapSaveStepService.savePartDataMap(reqBean, resultBean, stepResult, partNoList, false, false); //从上下文中取出工位对象 MesWorkCell workCell = productionProcessContext.getWorkCell(); @@ -125,12 +126,12 @@ public class MesProductSnGenerateStepService extends BaseStepService { Map ppMap = CollectionUtils.isEmpty(productionPartContextList) ? null : productionPartContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toMap(MesProductionPartContext::getForeignKey, o -> o)); Map psMap = CollectionUtils.isEmpty(productionPsInContextList) ? null : productionPsInContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toMap(MesProductionPsInContext::getForeignKey, o -> o)); - Map partMap = (Map) stepResult.getObj(); + Map partDataMap = (Map) stepResult.getObj(); //循环生成零件条码,并写入产出零件 List productionPsOutContextList = new ArrayList<>(); prodRuleContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()) && !StringUtils.isEmpty(o.getOutPartNo()))).forEach(o -> { - MesProductionPsOutContext productionPsOutContext = insertProduceSnData(reqBean, resultBean, stepResult, productionProcessContext, workCell, o, ppMap, psMap, partMap, prodShiftContext, productResult); + MesProductionPsOutContext productionPsOutContext = insertProduceSnData(reqBean, resultBean, stepResult, productionProcessContext, workCell, o, ppMap, psMap, partDataMap, prodShiftContext, productResult); if (null != productionPsOutContext) productionPsOutContextList.add(productionPsOutContext); }); @@ -143,14 +144,14 @@ public class MesProductSnGenerateStepService extends BaseStepService { //生成零件条码 private MesProductionPsOutContext insertProduceSnData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesWorkCell workCell, MesProdRuleContext prodRuleContext, - Map ppMap, Map psMap, Map partMap, MesProdShiftContext prodShiftContext, String productResult) { + Map ppMap, Map psMap, Map partDataMap, MesProdShiftContext prodShiftContext, String productResult) { //产出零件数据信息 MesProductionPartContext productionPartContext = !CollectionUtils.isEmpty(ppMap) ? ppMap.get(prodRuleContext.getForeignKey()) : null; //进料零件条码 MesProductionPsInContext productionPsInContext = !CollectionUtils.isEmpty(psMap) ? psMap.get(prodRuleContext.getForeignKey()) : null; //零件信息 - MesPart part = partMap.get(prodRuleContext.getOutPartNo()); + MesPart part = partDataMap.get(prodRuleContext.getOutPartNo()); //加工规则中进料零件与产出零件是否一致 Boolean isSamePart = isSamePart(productionPsInContext, productionPartContext); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java index e24987c..a9103c9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesTemplateService; 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.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; @@ -44,6 +45,9 @@ import java.util.stream.Collectors; public class MesProductSnPrintSortStepService extends BaseStepService { @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Autowired private IMesProductionDispatchContextStepService productionDispatchContextStepService; @Autowired @@ -94,7 +98,7 @@ public class MesProductSnPrintSortStepService extends BaseStepService { Map workOrderMap = getMesWorkOrderMap(reqBean, productionPartContextList); // 获取零件信息上下文 - Map partDataContext = productionDispatchContextStepService.getPartDataContext(reqBean); + Map partDataContext = productionProcessContextStepService.getPartDataContext(reqBean); List snLogList = new ArrayList<>(); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java index 339451c..34af48d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; 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.apiservice.serviceimpl.step.method.MesPartDataMapSaveStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdShiftContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext; @@ -51,7 +52,7 @@ public class MesProductSnSaveStepService extends BaseStepService { private IMesProductionCustomContextStepService productionCustomContextStepService; @Autowired - private MesFirstMouldNoReadStepService firstMouldNoReadStepService; + private MesPartDataMapSaveStepService partDataMapSaveStepService; @Autowired private IMesProduceSnExtService produceSnExtService; @@ -87,7 +88,7 @@ public class MesProductSnSaveStepService extends BaseStepService { //获取上下文零件数据信息 List partNoList = (productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()))).map(MesProductionPsOutContext::getPartNo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); - firstMouldNoReadStepService.savePartDataMap(reqBean, resultBean, stepResult, partNoList, false); + partDataMapSaveStepService.savePartDataMap(reqBean, resultBean, stepResult, partNoList, false, false); //获取上下文加工结果 String productResult = productionDispatchContextStepService.getProductResultContext(reqBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoReadStepService.java index 7b2e48d..5b3bdb6 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoReadStepService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.busi.*; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method.MesPartDataMapSaveStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService; @@ -52,6 +53,9 @@ public class MesProductionPartNoReadStepService extends BaseStepService { private IMesProductionCustomContextStepService productionCustomContextStepService; @Autowired + private MesPartDataMapSaveStepService partDataMapSaveStepService; + + @Autowired private IMesEquipmentLogExtService equipmentLogExtService; @Autowired @@ -98,8 +102,8 @@ public class MesProductionPartNoReadStepService extends BaseStepService { //获取上下文信息 MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean, stepParamMap); - //当前工序已存在产出零件号跟产出零件信息 - if (productionDispatchContextStepService.checkProductionPartNoIsExistContext(reqBean) && productionDispatchContextStepService.checkProductionPartIsExistContext(reqBean)) return stepResult; + //当前工序已存在产出零件信息 + if (productionDispatchContextStepService.checkProductionPartIsExistContext(reqBean)) return stepResult; //获取生产过程上下文对象有异常信息 抛出异常 if (!productionProcessContextStepService.getEquipmentVariableCfgList(productionProcessContext).getSuccess()) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage()); @@ -168,18 +172,31 @@ public class MesProductionPartNoReadStepService extends BaseStepService { MesPcnEnumUtil.STATION_BUSI_TYPE.GUIDE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT, stepParamMap, MesPcnExtConstWords.READ_FAILURE_SLEEP, MesPcnExtConstWords.READ_FAILURE_SLEEP_DEFAULT_TIME); } + //发送工步内容 + String scanInfo = equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON)); + productionCustomContextStepService.sendStepContextMessage(reqBean, scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ); + + //从读取信息中搜集零件编码并去重 + List partNoList = (equipVariableCollectContextList.stream().filter(o -> (null != o)).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + + if (!partDataMapSaveStepService.savePartDataMap(reqBean, resultBean, stepResult, partNoList, true, false).isCompleted()) { + this.sendMessage(reqBean, new StationResultBean().writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.READ.getValue()).checkRepeat(), + String.format("当前未读取到设备[%s]有效的产出零件号,%s持续监听中...%s", cellEquipContext.getEquipmentName(), stepResult.getMsg(), JSONObject.toJSONString(equipLogDispatchContext)), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); + stepThreadSleepAndSendTaskCompleteAndThrowEx(reqBean, resultBean, + stepResult.isCompleted(false).msg(String.format("当前未读取到设备[%s]有效的产出零件号,%s持续监听中...", cellEquipContext.getEquipmentName(), stepResult.getMsg())), + MesPcnEnumUtil.STATION_BUSI_TYPE.GUIDE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT, stepParamMap, MesPcnExtConstWords.READ_FAILURE_SLEEP, MesPcnExtConstWords.READ_FAILURE_SLEEP_DEFAULT_TIME); + } + + Map partDataMap = (Map) stepResult.getObj(); + //根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态 equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipmentLogIdMap()); this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.READ.getValue()), String.format("读取到设备[%s]产出零件号的详细JSON内容: %s", cellEquipContext.getEquipmentName(), JSONObject.toJSONString(equipLogDispatchContext)), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); - //发送工步内容 - String scanInfo = equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON)); - productionCustomContextStepService.sendStepContextMessage(reqBean, scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ); - - //获取产出零件信息 获取零件信息 - List productionPartContextList = getProductionPartContext(reqBean, resultBean, productionProcessContext, equipVariableCollectContextList); + //获取产出零件信息信息 + List productionPartContextList = getProductionPartContext(reqBean, resultBean, partDataMap, equipVariableCollectContextList); //更新展示组件MODULE_CONTENT内容 doCacheMoudleContext(reqBean, productionPartContextList); @@ -188,42 +205,20 @@ public class MesProductionPartNoReadStepService extends BaseStepService { } - private List getProductionPartContext(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, List equipVariableCollectContextList) { - - //从上下文中取出零件信息集合 - Map partDataMap = productionDispatchContextStepService.getPartDataContext(reqBean); - - //从读取信息中搜集零件编码并去重 - List partNoList = (equipVariableCollectContextList.stream().filter(o -> (null != o)).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + //获取产出零件信息信息 + private List getProductionPartContext(StationRequestBean reqBean, StationResultBean resultBean, Map partDataMap, List equipVariableCollectContextList) { - //验证上下文中取出零件信息集合是否匹配一模多腔信息中搜集零件编码 - if (CollectionUtils.isEmpty(partDataMap) || (!partDataMap.keySet().containsAll(partNoList) || !partNoList.containsAll(partDataMap.keySet()))) partDataMap = partService.getPartMap(reqBean.getOrganizeCode(), partNoList); - - //零件信息缺失 抛出异常 - List productionPartContextList = getProductionPartContext(reqBean, resultBean, partNoList, partDataMap, equipVariableCollectContextList); + List productionPartContextList = new ArrayList<>(); + equipVariableCollectContextList.stream().filter(o -> null != o).forEach(o -> productionPartContextList.add(new MesProductionPartContext().copyPartNo(reqBean.getOrganizeCode(), o.getEquipVariableValue(), partDataMap.get(o.getEquipVariableValue()).getPartName()))); //保存设备当前一轮工序的产出零件号,产出零件信息,零件信息 - productionDispatchContextStepService.dispatchProductionPartNoContext(reqBean, equipVariableCollectContextList); productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList); - productionDispatchContextStepService.dispatchPartDataContext(reqBean, partDataMap); - - return productionPartContextList; - - } - - private List getProductionPartContext(StationRequestBean reqBean, StationResultBean resultBean, List partNoList, Map partDataMap, List equipVariableCollectContextList) { - List filterList = CollectionUtils.isEmpty(partDataMap) ? null : partNoList.stream().filter(o -> (null != o && !partDataMap.containsKey(o))).collect(Collectors.toList()); - - //验证错误 抛出异常 - if (CollectionUtils.isEmpty(partDataMap) || !CollectionUtils.isEmpty(filterList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("请检查零件信息,零件编码%s信息不存在!", CollectionUtils.isEmpty(partDataMap) ? partNoList.toString() : filterList.toString())); - - List productionPartContextList = new ArrayList<>(); - equipVariableCollectContextList.stream().filter(o -> null != o).forEach(o -> productionPartContextList.add(new MesProductionPartContext().copyPartNo(reqBean.getOrganizeCode(), o.getEquipVariableValue(), partDataMap.get(o.getEquipVariableValue()).getPartName()))); return productionPartContextList; } + //更新展示组件MODULE_CONTENT内容 private void doCacheMoudleContext(StationRequestBean reqBean, List productionPartContextList) { //存储展示组件MODULE_CONTENT内容 productionDispatchContextStepService.dispatchModuleContentContext(reqBean, getModuleContextData(reqBean, productionPartContextList)); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoScanStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoScanStepService.java index a369c9b..3c7344c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoScanStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoScanStepService.java @@ -3,12 +3,13 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; 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.MesEquipVariableCollectContext; +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.util.MesPcnExtConstWords; +import cn.estsh.i3plus.mes.pcn.api.iservice.base.IPartService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; +import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.model.StationKvBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean; @@ -23,6 +24,7 @@ import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -42,6 +44,9 @@ public class MesProductionPartNoScanStepService extends BaseStepService { @Autowired private IMesProductionCustomContextStepService productionCustomContextStepService; + @Autowired + private IPartService partService; + @Override public StepResult guide(StationRequestBean reqBean) { @@ -58,9 +63,6 @@ public class MesProductionPartNoScanStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - //扫描信息置空 - String scanInfo = reqBean.resetScanInfo(reqBean.getScanInfo()); - //获取上下文信息 MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean); @@ -70,69 +72,67 @@ public class MesProductionPartNoScanStepService extends BaseStepService { //存储生产过程上下文对象 productionProcessContextStepService.dispatchProductionProcessContext(reqBean, productionProcessContext); - //从上下文中取出生产线对象 - MesWorkCenter workCenter = productionProcessContext.getWorkCenter(); + //扫描信息置空 + String scanInfo = reqBean.resetScanInfo(reqBean.getScanInfo()); - //如果没有扫描信息, 取手选工单信息, 封装扫/读信息:加工单信息 - List equipVariableCollectContextList; - //优先验证扫描加工单 - if (!StringUtils.isEmpty(scanInfo)) equipVariableCollectContextList = doHandleScanWorkOrderNoContext(reqBean, stepResult, scanInfo); - //选择加工单 - else equipVariableCollectContextList = doHandleScanWorkOrderNoContext(reqBean, stepResult, workCenter); + //获取手动选择的腔数及零件信息上下文 + List chooseCavityPart = productionProcessContextStepService.getFunctionChooseCavityPartContext(reqBean); - //扫描信息为空 - if (CollectionUtils.isEmpty(equipVariableCollectContextList)) stepSendGuideAndThrowEx(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "请扫描加工单!"); + List productionPartContextList = null; - //保存上下文扫/读信息:加工单 - productionDispatchContextStepService.dispatchScanWorkOrderNoContext(reqBean, equipVariableCollectContextList); + if (CollectionUtils.isEmpty(chooseCavityPart) && StringUtils.isEmpty(scanInfo)) stepSendGuideAndThrowEx(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "请扫描产成零件!"); - return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.SCAN.getValue()).scanInfo(scanInfo), stepResult, stepResult.getMsg()); + //从上下文中取出零件信息集合 + Map partDataMap = productionProcessContextStepService.getPartDataContext(reqBean); - } + if (!CollectionUtils.isEmpty(chooseCavityPart)) { - //封装扫/读信息:加工单信息 (扫描) - private List doHandleScanWorkOrderNoContext(StationRequestBean reqBean, StepResult stepResult, String scanInfo) { + String cellMessageSorce = chooseCavityPart.stream().filter(o -> (null != o && o.getKey().equals(MesPcnExtConstWords.CELL_MESSAGE_SOURCE))).findFirst().get().getValue(); + List chooseList = new ArrayList<>(Arrays.asList(chooseCavityPart.stream().filter(o -> (null != o && o.getKey().equals(MesPcnExtConstWords.PART_NO))).findFirst().get().getValue().split(MesPcnExtConstWords.SEMICOLON))); - List equipVariableCollectContextList = new ArrayList<>(); + //发送工步内容 + scanInfo = chooseCavityPart.stream().filter(o -> (null != o && !o.getKey().equals(MesPcnExtConstWords.CELL_MESSAGE_SOURCE))).map(o -> o.getName() + MesPcnExtConstWords.SQUARE_BRACKETS_L + o.getValue() + MesPcnExtConstWords.SQUARE_BRACKETS_R).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON)); + productionCustomContextStepService.sendStepContextMessage(reqBean, scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.getByValue(Integer.valueOf(cellMessageSorce))); - equipVariableCollectContextList.add(new MesEquipVariableCollectContext(reqBean.getOrganizeCode(), scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue())); + //零件编码去重 + List partNoList = chooseList.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); - //发送工步内容 - productionCustomContextStepService.sendStepContextMessage(reqBean, scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN); + //验证上下文中取出零件信息集合是否读取信息中搜集零件编码 + if (CollectionUtils.isEmpty(partDataMap) || !partDataMap.keySet().containsAll(partNoList)) partDataMap = partService.getPartMap(reqBean.getOrganizeCode(), partNoList); + + //零件信息缺失 抛出异常 + productionPartContextList = getProductionPartContext(reqBean, resultBean, partNoList, partDataMap, chooseList); + + } else { + + productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean); - stepResult.msg(String.format("当前扫描信息加工单[%s]!", scanInfo)); - return equipVariableCollectContextList; - } - //封装扫/读信息:加工单信息 (选择) - private List doHandleScanWorkOrderNoContext(StationRequestBean reqBean, StepResult stepResult, MesWorkCenter workCenter) { - //排序线不支持选择加工单 - if (workCenter.getCenterType().compareTo(MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue()) != 0) return null; - //获取手动选择的腔数及工单信息上下文, 扫描的加工单也会存入其中 - List chooseCavityOrder = productionProcessContextStepService.getFunctionChooseCavityOrderContext(reqBean); - if (CollectionUtils.isEmpty(chooseCavityOrder)) return null; - String cellMessageSorce = chooseCavityOrder.stream().filter(o -> (null != o && o.getKey().equals(MesPcnExtConstWords.CELL_MESSAGE_SOURCE))).findFirst().get().getValue(); - String isConsume = chooseCavityOrder.stream().filter(o -> (null != o && o.getKey().equals(MesPcnExtConstWords.CRAFT_JUMP_CODE))).findFirst().get().getValue(); - List chooseList = new ArrayList<>(Arrays.asList(chooseCavityOrder.stream().filter(o -> (null != o && o.getKey().equals(MesPcnExtConstWords.WORK_ORDER_NO))).findFirst().get().getValue().split(MesPcnExtConstWords.SEMICOLON))); - List equipVariableCollectContextList = new ArrayList<>(); - chooseList.stream().filter(o -> !StringUtils.isEmpty(o)).forEach(o -> - equipVariableCollectContextList.add(new MesEquipVariableCollectContext(reqBean.getOrganizeCode(), o, Integer.valueOf(cellMessageSorce)).isConsume(Integer.valueOf(isConsume)))); + } + + +// stepResult.msg(String.format("当前%s%s!", MesExtEnumUtil.CELL_MESSAGE_SOURCE.valueOfDescription(Integer.valueOf(cellMessageSorce)), scanInfo)); + return null; + + } - //发送工步内容 - String scanInfo = chooseCavityOrder.stream().filter(o -> (null != o && !o.getKey().equals(MesPcnExtConstWords.CELL_MESSAGE_SOURCE))).map(o -> o.getName() + MesPcnExtConstWords.SQUARE_BRACKETS_L + o.getValue() + MesPcnExtConstWords.SQUARE_BRACKETS_R).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON)); - productionCustomContextStepService.sendStepContextMessage(reqBean, scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.getByValue(Integer.valueOf(cellMessageSorce))); + private List getProductionPartContext(StationRequestBean reqBean, StationResultBean resultBean, List partNoList, Map partDataMap, List chooseList) { + List filterList = CollectionUtils.isEmpty(partDataMap) ? null : partNoList.stream().filter(o -> (!StringUtils.isEmpty(o) && !partDataMap.containsKey(o))).collect(Collectors.toList()); - stepResult.msg(String.format("当前%s%s!", MesExtEnumUtil.CELL_MESSAGE_SOURCE.valueOfDescription(Integer.valueOf(cellMessageSorce)), scanInfo)); + //验证错误 抛出异常 + if (CollectionUtils.isEmpty(partDataMap) || !CollectionUtils.isEmpty(filterList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("请检查零件信息,零件编码%s信息不存在!", CollectionUtils.isEmpty(partDataMap) ? partNoList.toString() : filterList.toString())); - return equipVariableCollectContextList; + List productionPartContextList = new ArrayList<>(); + chooseList.stream().filter(o -> !StringUtils.isEmpty(o)).forEach(o -> productionPartContextList.add(new MesProductionPartContext().copyPartNo(reqBean.getOrganizeCode(), o, partDataMap.get(o).getPartName()))); + return productionPartContextList; } } 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 e8a5936..6e6ff6f 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 @@ -1,6 +1,5 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; @@ -36,14 +35,8 @@ import java.util.stream.Collectors; public class MesWorkOrderCheckNosortStepService extends MesWorkOrderCheckStepService { @Autowired - private IMesWorkOrderExtService workOrderExtService; - - @Autowired private IFsmCommonService fsmCommonService; - @Autowired - private MesFirstMouldNoReadStepService firstMouldNoReadStepService; - @Override public StepResult execute(StationRequestBean reqBean) { @@ -115,7 +108,7 @@ public class MesWorkOrderCheckNosortStepService extends MesWorkOrderCheckStepSer if (checkIsAllFinishCode(reqBean, productionPartContextList)) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前加工单信息全部为空腔,已清除当前的空腔数据!"); //保存零件数据信息 - if (!firstMouldNoReadStepService.savePartDataMap(reqBean, resultBean, stepResult, productionProcessContext, productionPartContextList, true).isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg()); + if (!partDataMapSaveStepService.savePartDataMap2PPC(reqBean, resultBean, stepResult, productionPartContextList, true, true).isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg()); //保存上下文产出零件信息 productionDispatchContextStepService.dispatchProductionPartContext(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 34f3526..5133f73 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 @@ -1,9 +1,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; -import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService; import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; @@ -17,7 +15,6 @@ 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 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; @@ -34,15 +31,6 @@ import java.util.stream.Collectors; @Service("mesWorkOrderCheckSortStepService") public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepService { - @Autowired - private IMesWorkOrderExtService workOrderExtService; - - @Autowired - private IFsmCommonService fsmCommonService; - - @Autowired - private MesFirstMouldNoReadStepService firstMouldNoReadStepService; - @Override public StepResult execute(StationRequestBean reqBean) { @@ -131,7 +119,7 @@ public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepServi if (checkPartProdGroupCodeIsExistRepeat(reqBean, productionPartContextList, cachedProductionPartContextList)) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "不支持生产相同的零件生产组的加工单,已清除当前的加工单数据!"); //保存零件数据信息 - if (!firstMouldNoReadStepService.savePartDataMap(reqBean, resultBean, stepResult, productionProcessContext, productionPartContextList, true).isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg()); + if (!partDataMapSaveStepService.savePartDataMap2PPC(reqBean, resultBean, stepResult, productionPartContextList, true, true).isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg()); //保存上下文产出零件信息 productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckStepService.java index 962dade..7c3b1f3 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckStepService.java @@ -2,6 +2,8 @@ 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.api.busi.IMesWorkOrderExtService; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method.MesPartDataMapSaveStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; @@ -34,6 +36,12 @@ public class MesWorkOrderCheckStepService extends BaseStepService { @Autowired public IMesProductionDispatchContextStepService productionDispatchContextStepService; + @Autowired + public MesPartDataMapSaveStepService partDataMapSaveStepService; + + @Autowired + public IMesWorkOrderExtService workOrderExtService; + @Override public StepResult execute(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java index fdffaff..0597fb3 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPackingDefineService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesTemplateService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.*; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method.MesPartDataMapSaveStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesWorkOrderCutDetailModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; @@ -45,13 +46,13 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { private IMesProductionDispatchContextStepService productionDispatchContextStepService; @Autowired - private IMesWorkOrderExtService workOrderExtService; + private MesPartDataMapSaveStepService partDataMapSaveStepService; @Autowired - private IMesWorkOrderCutService workOrderCutService; + private IMesWorkOrderExtService workOrderExtService; @Autowired - private MesFirstMouldNoReadStepService firstMouldNoReadStepService; + private IMesWorkOrderCutService workOrderCutService; @Autowired private IMesProduceSnExtService produceSnExtService; @@ -93,29 +94,6 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { MesWorkCell workCell = productionProcessContext.getWorkCell(); - ////获取上下文产出零件信息 - //List cachedProductionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean); - ////获取工单对应的条码数据信息 - //List cachedProductionPsInContextList = productionDispatchContextStepService.getProductionPsInContext(reqBean); - - //验证扫描信息是否属于工艺强过码 - //Boolean isCraftJumpCode = matchCraftJumpCode(productionProcessContext, equipVariableCollectContextList); - // - ////验证是否支持跳过 - //Boolean isAllowJump = checkIsAllowJump(cachedProductionPartContextList, cachedProductionPsInContextList); - - ////当前不允许跳过 - //if (isCraftJumpCode && !isAllowJump) - // return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.SCAN.getValue()). - // scanInfo(equipVariableCollectContextList.get(0).getEquipVariableValue()), stepResult, String.format("当前扫描信息工艺强过码[%s],当前没有可以跳过的裁片工单信息!", equipVariableCollectContextList.get(0).getEquipVariableValue())); - // - ////允许跳过,先更新数据 - //if (isCraftJumpCode && isAllowJump) { - // updateProductionPartAndPsInContextList(reqBean, cachedProductionPartContextList, cachedProductionPsInContextList, equipVariableCollectContextList.get(0).getEquipVariableValue()); - // return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.SCAN.getValue()). - // scanInfo(equipVariableCollectContextList.get(0).getEquipVariableValue()), stepResult, String.format("当前扫描信息工艺强过码[%s]!", equipVariableCollectContextList.get(0).getEquipVariableValue())); - //} - //验证工单的有效性 List productionPartContextList = new ArrayList<>(); List productionPsInContextList = new ArrayList<>(); @@ -125,9 +103,6 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { equipVariableCollectContextList, productionPartContextList, productionPsInContextList, productionPsOutContextList, workCell).isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg()); - ////保存零件数据信息 - //if (!firstMouldNoReadStepService.savePartDataMap(reqBean, resultBean, stepResult, productionProcessContext, productionPartContextList, true).isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg()); - //保存上下文零件信息 productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList); //保存上下文产出零件信息 @@ -156,22 +131,12 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { } - //public StepResult savePartDataMap(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List productionPartContextList, Boolean isBackError) { - // - // //从一模多腔信息中搜集零件编码并去重 - // List partNoList = (productionPartContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()))).map(MesProductionPartContext::getPartNo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); - // - // return savePartDataMap(reqBean, resultBean, stepResult, partNoList, isBackError); - // - //} - //封装展示组件MODULE_CONTENT内容 private List> getModuleContextData(StationRequestBean reqBean, List productionPartContextList) { List> dataList = new ArrayList<>(); List orderList = filterProductionPartContext(productionPartContextList, true); - //List finishCodeList = filterProductionPartContext(productionPartContextList, false); AtomicReference index = new AtomicReference<>(0); @@ -188,10 +153,6 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { new StationKvBean(MesPcnExtConstWords.CAVITY, "腔数", new StringJoiner(MesPcnExtConstWords.SLANT_R).add(String.valueOf(index.updateAndGet(v -> v + 1))).add(String.valueOf(cavityQty)).toString()))); } - //if (!CollectionUtils.isEmpty(finishCodeList)) { - // StationKvBeanUtil.addStationKvBeanList(dataList, new ArrayList<>(), new StationKvBean(MesPcnExtConstWords.CAVITY_FINISH_CODE, "空腔数", String.valueOf(finishCodeList.size()))); - //} - return dataList; } @@ -254,7 +215,7 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { packProductionPartContextList(productionProcessContext, equipVariableCollectContextList, productionPartContextList, cutScheme, mesWorkOrderCutDetailList, workOrderList); //保存 上下文 零件数据信息 - if (!firstMouldNoReadStepService.savePartDataMap(reqBean, resultBean, stepResult, productionProcessContext, productionPartContextList, true).isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg()); + if (!partDataMapSaveStepService.savePartDataMap2PPC(reqBean, resultBean, stepResult, productionPartContextList, true, true, false).isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg()); // 裁片方案成品配置 List mesCutSchemeFgList = workOrderCutService.queryCutSchemeFgList(cutScheme.getCutCode(), reqBean.getOrganizeCode()); @@ -267,7 +228,7 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { List workOrderCutDetailModelList = new ArrayList<>(); - Map partDataExtContext = productionDispatchContextStepService.getPartDataExtContext(reqBean); + Map partDataExtContext = productionProcessContextStepService.getPartDataExtContext(reqBean); for (MesCutSchemeFg mesCutSchemeFg : mesCutSchemeFgList) { if (StringUtils.isEmpty(mesCutSchemeFg.getPackageSnRuleCode())) @@ -310,7 +271,7 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { } - productionDispatchContextStepService.dispatchPartDataContext(reqBean, partDataExtContext); + productionProcessContextStepService.dispatchPartDataContext(reqBean, partDataExtContext); productionDispatchContextStepService.dispatchMesWorkOrderCutFgDataContext(reqBean, workOrderCutDetailModelList); @@ -357,7 +318,6 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { MesProductionPartContext productionPartContext = new MesProductionPartContext() .copyPartNo(o, workOrderCutDetailMap.get(o.getWorkOrderNo()).getQty(), workOrderCutDetailMap.get(o.getWorkOrderNo()).getCutWorkOrderNo(), equipVariableCollectContextList.get(0).getMessageSource()) .isCheck(productionProcessContext.getWorkCell()); - //if (equipVariableCollectContextList.get(0).getIsConsume().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) productionPartContext.checkSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); productionPartContext.setCutCode(cutScheme.getCutCode()); productionPartContextList.add(productionPartContext); }); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java index d6b0a0b..350b502 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java @@ -70,7 +70,7 @@ public class MesWorkOrderCutPackageSnSaveStepService extends BaseStepService { productionProcessContextStepService.dispatchProductionProcessContext(reqBean, productionProcessContext); // 获取产成零件信息 - Map partDataContext = productionDispatchContextStepService.getPartDataExtContext(reqBean); + Map partDataContext = productionProcessContextStepService.getPartDataExtContext(reqBean); //从上下文中取出工位对象 MesWorkCell workCell = productionProcessContext.getWorkCell(); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutProductSnSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutProductSnSaveStepService.java index 7cf80ce..7f841d5 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutProductSnSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutProductSnSaveStepService.java @@ -115,7 +115,7 @@ public class MesWorkOrderCutProductSnSaveStepService extends BaseStepService { Map prodRuleContextMapByOutPartNo = prodRuleContextList.stream().collect(Collectors.toMap(MesProdRuleContext::getOutPartNo, Function.identity(), (x, y) -> y)); // 获取产成零件信息 - Map partDataContext = productionDispatchContextStepService.getPartDataContext(reqBean); + Map partDataContext = productionProcessContextStepService.getPartDataContext(reqBean); //从上下文中取出工位对象 MesWorkCell workCell = productionProcessContext.getWorkCell(); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java index e15258e..0a92bcd 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java @@ -6,7 +6,6 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesWorkOrderCutDetailModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesRawPartCharging; import cn.estsh.i3plus.pojo.mes.model.StationKvBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; @@ -18,7 +17,6 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.util.List; -import java.util.Map; import java.util.StringJoiner; /** @@ -194,33 +192,6 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp return true; } - //获取上下文零件数据信息 - @Override - public Map getPartDataContext(StationRequestBean reqBean) { - String partDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PART_DATA_CONTEXT); - return !StringUtils.isEmpty(partDataJson) ? JSONObject.parseObject(partDataJson, new TypeReference>() {}) : null; - } - - //获取上下文零件数据信息 - @Override - public Map getPartDataExtContext(StationRequestBean reqBean) { - String partDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PART_DATA_CONTEXT); - return !StringUtils.isEmpty(partDataJson) ? JSONObject.parseObject(partDataJson, new TypeReference>() {}) : null; - } - - //保存上下文零件数据信息 [JSON]Map - @Override - public Boolean dispatchPartDataContext(StationRequestBean reqBean, Map partDataMap) { - if (CollectionUtils.isEmpty(partDataMap)) return false; - return dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PART_DATA_CONTEXT, JSONObject.toJSONString(partDataMap)); - } - - //删除上下文零件数据信息 - @Override - public void removePartDataContext(StationRequestBean reqBean) { - removeFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PART_DATA_CONTEXT); - } - //获取上下文模具号 @Override public MesEquipVariableCollectContext getMouldNoContext(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java index ae1a527..361ee5e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java @@ -3,10 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.context; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEquipmentExtService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdOrgExtService; 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.MesProductionAssemblyNosortContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesScanMonitorContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmRouteDataService; import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService; @@ -392,6 +389,33 @@ public class MesProductionProcessContextStepService extends BaseStepService impl return dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.ASSEMBLY_NOSORT_CFG_CONTEXT, JSONObject.toJSONString(assemblyNosortCfgList)); } + //获取上下文零件数据信息 + @Override + public Map getPartDataContext(StationRequestBean reqBean) { + String partDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PART_DATA_CONTEXT); + return !StringUtils.isEmpty(partDataJson) ? JSONObject.parseObject(partDataJson, new TypeReference>() {}) : null; + } + + //获取上下文零件数据信息 + @Override + public Map getPartDataExtContext(StationRequestBean reqBean) { + String partDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PART_DATA_CONTEXT); + return !StringUtils.isEmpty(partDataJson) ? JSONObject.parseObject(partDataJson, new TypeReference>() {}) : null; + } + + //保存上下文零件数据信息 [JSON]Map + @Override + public Boolean dispatchPartDataContext(StationRequestBean reqBean, Map partDataMap) { + if (CollectionUtils.isEmpty(partDataMap)) return false; + return dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PART_DATA_CONTEXT, JSONObject.toJSONString(partDataMap)); + } + + //删除上下文零件数据信息 + @Override + public void removePartDataContext(StationRequestBean reqBean) { + removeFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PART_DATA_CONTEXT); + } + //获取手动选择的腔数及工单信息上下文 @Override public List getFunctionChooseCavityOrderContext(StationRequestBean reqBean) { @@ -412,6 +436,25 @@ public class MesProductionProcessContextStepService extends BaseStepService impl removeFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FUNCTION_CHOOSE_CAVITY_ORDER); } + //获取手动选择的腔数及零件信息上下文 + @Override + public List getFunctionChooseCavityPartContext(StationRequestBean reqBean) { + String chooseCavityPartJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FUNCTION_CHOOSE_CAVITY_PART); + return !StringUtils.isEmpty(chooseCavityPartJson) ? JSONObject.parseArray(chooseCavityPartJson, StationKvBean.class) : null; + } + + //保存选择/扫描/读取的腔数及零件信息上下文 腔数=工单个数 数据格式: [StationKvBean(key=cavity, name=腔数, value=3, seq=0), StationKvBean(key=cellMessageSource, name=工位信息来源, value=10, seq=1), StationKvBean(key=partNo, name=零件编码, value=零件1;零件2;零件3, seq=2)] + @Override + public Boolean dispatchFunctionChooseCavityPartContext(StationRequestBean reqBean, List resultList) { + if (CollectionUtils.isEmpty(resultList)) return false; + return dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FUNCTION_CHOOSE_CAVITY_PART, JSONObject.toJSONString(resultList)); + } + + //删除手动选择的腔数及工单信息上下文 + @Override + public void removeFunctionChooseCavityPartContext(StationRequestBean reqBean) { + removeFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FUNCTION_CHOOSE_CAVITY_PART); + } //获取上下文工位扫描监控信息, 没有就重新封装工位扫描监控信息, 同时处理基础上下文信息 【其他地方调用 isSave 必须传 true 】 @Override 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 6338fe6..ed8d7f4 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 @@ -3,12 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.context; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; 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.MesProductionPsOutContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; -import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.process.BaseProcessMonitorService; -import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.swslog.ISwsWriteDbLogService; -import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean; import org.springframework.beans.factory.annotation.Autowired; @@ -28,20 +23,13 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic @Autowired private IMesProductionCustomContextStepService productionCustomContextStepService; - @Autowired - private IFsmCommonService fsmCommonService; - - @Autowired - private ISwsWriteDbLogService writeDbLogService; - //工序开始 @Override public Boolean doProcessStart(StationRequestBean requestBean) { //保存上下文工位扫描监控信息 productionProcessContextStepService.dispatchScanMonitorContext(requestBean); - //清除工步客制化区域数据【装配件清单】 - this.sendMessage(requestBean, new StationResultBean().busiType(MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_CUSTOM_CONTENT.getValue()).dataType(MesPcnEnumUtil.STATION_DATA_TYPE.TABLES.getValue())); - return true; + //父类清除工步客制化区域数据【装配件清单】 + return super.doProcessStart(requestBean); } //工序结束 @@ -54,9 +42,8 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic } //清除上下文中的所有业务数据 productionDispatchContextStepService.flushProductionDispatchContext(requestBean); - //发送工序完成音 - this.sendMessage(requestBean, new StationResultBean().resultObj(MesPcnExtConstWords.PROCESS_COMPLETE).busiType(MesPcnEnumUtil.STATION_BUSI_TYPE.CUSTOM_COMPONENT.getValue()).dataType(MesPcnEnumUtil.STATION_DATA_TYPE.SOUND.getValue())); - return true; + //父类发送工序完成音 + return super.doProcessComplete(requestBean); } //重置工序 @@ -64,14 +51,14 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic public Boolean doJumpProcess(StationRequestBean requestBean) { //清除上下文中的所有业务数据 productionDispatchContextStepService.flushProductionDispatchContext(requestBean); - return true; + return super.doJumpProcess(requestBean); } //客户端上线 @Override public Boolean doOnLine(StationRequestBean requestBean) { - //删除当前工步集 - fsmCommonService.flushCache(requestBean); + //父类删除当前工步集 + super.doOnLine(requestBean); //清除上下文中的所有业务数据 productionDispatchContextStepService.flushProductionDispatchContext(requestBean); //清除上下文中的所有基础数据 @@ -83,16 +70,16 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic //客户端下线 @Override - public Boolean doOffLine(StationRequestBean requestBean) { return true; } + public Boolean doOffLine(StationRequestBean requestBean) { return super.doOffLine(requestBean); } - //工位流程重置 【父类已经调用: 删除当前工步集; 清除工位工序流程; TASK_COMPLETE】 + //工位流程重置 【父类调度方法已经调用: 删除当前工步集; 清除工位工序流程; TASK_COMPLETE】 @Override public Boolean fsmReset(StationRequestBean requestBean) { //清除上下文中的所有业务数据 productionDispatchContextStepService.flushProductionDispatchContext(requestBean); //清除上下文中的所有基础数据 productionProcessContextStepService.flushProductionProcessContext(requestBean); - return true; + return super.fsmReset(requestBean); } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesAssemblySaveSortStepService.java similarity index 99% rename from modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveSortStepService.java rename to modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesAssemblySaveSortStepService.java index c9dd79e..38f5533 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesAssemblySaveSortStepService.java @@ -1,4 +1,4 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesPartDataMapSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesPartDataMapSaveStepService.java new file mode 100644 index 0000000..ee61db8 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesPartDataMapSaveStepService.java @@ -0,0 +1,107 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; +import cn.estsh.i3plus.mes.pcn.api.iservice.base.IPartService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.pojo.mes.bean.MesPart; +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; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Description : 缓存零件通用工步方法 + * @Author : wangjie + **/ +@Slf4j +@Service("mesPartDataMapSaveStepService") +public class MesPartDataMapSaveStepService extends BaseStepService { + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Autowired + private IPartService partService; + + //保存零件数据信息 + public StepResult savePartDataMap2PPC(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List productionPartContextList, Boolean isBackError, Boolean isFilter, Boolean isSave) { + + //从一模多腔信息中搜集零件编码并去重 + List partNoList = (productionPartContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()))).map(MesProductionPartContext::getPartNo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + + return savePartDataMap(reqBean, resultBean, stepResult, partNoList, isBackError, isFilter, isSave); + + } + + //保存零件数据信息 + public StepResult savePartDataMap2PPC(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List productionPartContextList, Boolean isBackError, Boolean isFilter) { + + //从一模多腔信息中搜集零件编码并去重 + List partNoList = (productionPartContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()))).map(MesProductionPartContext::getPartNo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + + return savePartDataMap(reqBean, resultBean, stepResult, partNoList, isBackError, isFilter, true); + + } + + //保存零件数据信息 【isBackError=false: 抛出异常】【isFilter=false: 重新查询所有零件;true: 过滤之后查询未缓存的零件之后再进行合并前面已缓存过的零件】 + public StepResult savePartDataMap(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List partNoList, Boolean isBackError, Boolean isFilter) { + + return savePartDataMap(reqBean, resultBean, stepResult, partNoList, isBackError, isFilter, true); + + } + + //保存零件数据信息 【isBackError=false: 抛出异常】【isFilter=false: 重新查询所有零件;true: 过滤之后查询未缓存的零件之后再进行合并前面已缓存过的零件】 + public StepResult savePartDataMap(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List partNoList, Boolean isBackError, Boolean isFilter, Boolean isSave) { + + if (CollectionUtils.isEmpty(partNoList)) return stepResult; + + //从上下文中取出零件信息集合 + Map partDataMap = productionProcessContextStepService.getPartDataContext(reqBean); + + //验证上下文中取出零件信息集合是否匹配当前搜集的零件编码 + if (!CollectionUtils.isEmpty(partDataMap) && partDataMap.keySet().containsAll(partNoList)) return stepResult.obj(partDataMap); + + //新零件MAP + Map finalPartDataMap; + if (!isFilter) { + //根据物料编码集合查询物料信息 + finalPartDataMap = partService.getPartMap(reqBean.getOrganizeCode(), partNoList); + } else { + //已缓存的零件号 + List containPartNoList = CollectionUtils.isEmpty(partDataMap) ? null : partNoList.stream().filter(o -> (!StringUtils.isEmpty(o) && partDataMap.containsKey(o))).collect(Collectors.toList()); + //未缓存的零件号 + List unContainPartNoList = CollectionUtils.isEmpty(partDataMap) ? partNoList : partNoList.stream().filter(o -> (!StringUtils.isEmpty(o) && !partDataMap.containsKey(o))).collect(Collectors.toList()); + //根据未缓存的零件号集合查询物料信息 + finalPartDataMap = partService.getPartMap(reqBean.getOrganizeCode(), unContainPartNoList); + //合并零件号 + if (!CollectionUtils.isEmpty(finalPartDataMap) && !CollectionUtils.isEmpty(containPartNoList)) containPartNoList.stream().filter(o -> !StringUtils.isEmpty(o)).forEach(o -> finalPartDataMap.put(o, partDataMap.get(o))); + } + + //零件信息缺失 抛出异常 + List filterList = CollectionUtils.isEmpty(finalPartDataMap) ? null : partNoList.stream().filter(o -> (!StringUtils.isEmpty(o) && !finalPartDataMap.containsKey(o))).collect(Collectors.toList()); + + //保存上下文零件数据信息 + if (!CollectionUtils.isEmpty(finalPartDataMap) && CollectionUtils.isEmpty(filterList)) { + if (isSave) productionProcessContextStepService.dispatchPartDataContext(reqBean, finalPartDataMap); + return stepResult.obj(finalPartDataMap); + } + + //验证错误 根据isBackError判断是否抛出异常 + stepResult.isCompleted(false).msg(String.format("请检查零件信息,零件编码%s信息不存在!", CollectionUtils.isEmpty(finalPartDataMap) ? partNoList.toString() : filterList.toString())); + + if (!isBackError) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), stepResult.getMsg()); + + return stepResult; + + } + +} 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 57c31dc..6449932 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 @@ -366,6 +366,8 @@ public class MesPcnExtConstWords { public static final String FUNCTION_RESET_CELL_CONTEXT = "FUNCTION_RESET_CELL_CONTEXT"; // 工位参数按钮事件: 选择工单(先选腔数, 再选工单) public static final String FUNCTION_CHOOSE_CAVITY_ORDER = "FUNCTION_CHOOSE_CAVITY_ORDER"; + // 工位参数按钮事件: 选择产成零件(先选腔数, 再选零件) + public static final String FUNCTION_CHOOSE_CAVITY_PART = "FUNCTION_CHOOSE_CAVITY_PART"; // 工位参数按钮事件: 切换工位 public static final String FUNCTION_SWITCH_CELL = "FUNCTION_SWITCH_CELL"; // 工位参数按钮事件: 锁定 @@ -380,9 +382,6 @@ public class MesPcnExtConstWords { // 自定义触发事件: 产出零件 public static final String NEXT_TRIGGER_EVENT_PART_NO = "PART_NO"; - // 工序完成 - public static final String PROCESS_COMPLETE = "processComplete"; - // 0 public static final String ZERO_STR = "0"; // 0