From c06eb67236a2386a33c1339ce32662d5799255be Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Fri, 7 Feb 2025 17:43:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=AF=BB=E5=8F=96=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E6=9D=A1=E7=A0=81;=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E6=9D=A1=E7=A0=81=E4=B8=8E=E5=B7=A5=E5=8D=95=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E5=85=B3=E7=B3=BB;=E8=A3=85=E9=85=8D=E4=BB=B6?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=8C=B9=E9=85=8D=E5=B7=A5=E5=8D=95=20?= =?UTF-8?q?=E4=B8=89=E4=B8=AA=E5=B7=A5=E6=AD=A5=20=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E7=89=88=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IMesProductionDispatchContextStepService.java | 4 +- ...arcodeWithWorkOrderRelationFindStepService.java | 111 +++++++++++++++++++++ ...arcodeWithWorkOrderRelationSaveStepService.java | 97 ++++++++++++++++++ .../MesProductSnGenerateByReadStepService.java | 81 +++++++++++++++ .../MesProductionDispatchContextStepService.java | 6 +- 5 files changed, 294 insertions(+), 5 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesBarcodeWithWorkOrderRelationFindStepService.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesBarcodeWithWorkOrderRelationSaveStepService.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateByReadStepService.java 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 0bcbb24..b623c6b 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 @@ -105,7 +105,7 @@ public interface IMesProductionDispatchContextStepService { Boolean checkScanWorkOrderNoIsExistContext(StationRequestBean reqBean); @ApiOperation(value = "保存上下文扫/读信息:加工单", notes = "[JSON]List") - Boolean dispatchScanWorkOrderNoContext(StationRequestBean reqBean, List productSnList); + Boolean dispatchScanWorkOrderNoContext(StationRequestBean reqBean, List workOrderNoList); @ApiOperation(value = "删除上下文扫/读信息:加工单") void removeScanWorkOrderNoContext(StationRequestBean reqBean); @@ -129,7 +129,7 @@ public interface IMesProductionDispatchContextStepService { Boolean checkScanAssemblySnIsExistContext(StationRequestBean reqBean); @ApiOperation(value = "保存上下文扫/读信息:装配件条码", notes = "[JSON]List") - Boolean dispatchScanAssemblySnContext(StationRequestBean reqBean, List productSnList); + Boolean dispatchScanAssemblySnContext(StationRequestBean reqBean, List assemblySnList); @ApiOperation(value = "删除上下文扫/读信息:装配件条码") void removeScanAssemblySnContext(StationRequestBean reqBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesBarcodeWithWorkOrderRelationFindStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesBarcodeWithWorkOrderRelationFindStepService.java new file mode 100644 index 0000000..4ee444c --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesBarcodeWithWorkOrderRelationFindStepService.java @@ -0,0 +1,111 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderReductionSource; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +import cn.estsh.i3plus.pojo.mes.model.StationResultBean; +import cn.estsh.i3plus.pojo.mes.model.StepResult; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderReductionSourceRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import cn.estsh.impp.framework.boot.util.SpringContextsUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Description : 装配件获取匹配工单工步 + * @Author : wangjie + **/ +@Slf4j +@Service("mesBarcodeWithWorkOrderRelationFindStepService") +public class MesBarcodeWithWorkOrderRelationFindStepService extends BaseStepService { + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Autowired + private MesWorkOrderReductionSourceRepository workOrderReductionSourceRepository; + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + //获取上下文扫/读信息:装配件条码 + List equipVariableCollectContextList = productionDispatchContextStepService.getScanAssemblySnContext(reqBean); + //搜集装配件条码 + List assemblySnList = CollectionUtils.isEmpty(equipVariableCollectContextList) ? null : + equipVariableCollectContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getEquipVariableValue()))).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.toList()); + + //没有待验证的装配件条码 + if (CollectionUtils.isEmpty(assemblySnList)) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前没有需要验证的装配件条码!"); + + try { + //查询条码与工单对应关系【在前道工序中作为主条码写入次关系表】 + Map> workOrderReductionSourceMap = getWorkOrderReductionSourceMap(reqBean.getOrganizeCode(), assemblySnList); + if (CollectionUtils.isEmpty(workOrderReductionSourceMap)) + return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("读取的装配件条码%s未获取到匹配工单!", assemblySnList.toString())); + + //用于写入加工单 + equipVariableCollectContextList = new ArrayList<>(); + for (Map.Entry> entry : workOrderReductionSourceMap.entrySet()) { + if (null == entry) continue; + //取最新的数据 + MesWorkOrderReductionSource workOrderReductionSource = entry.getValue().stream() + .filter(o -> null != o).sorted(Comparator.comparing(MesWorkOrderReductionSource::getCreateDatetime).reversed()).collect(Collectors.toList()).get(0); + equipVariableCollectContextList.add(new MesEquipVariableCollectContext(reqBean.getOrganizeCode(), workOrderReductionSource.getWorkOrderNo(), MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ.getValue())); + } + + //保存上下文扫/读信息:加工单 + productionDispatchContextStepService.dispatchScanWorkOrderNoContext(reqBean, equipVariableCollectContextList); + + this.sendMessage(reqBean, new StationResultBean().writeDbLog(), String.format("读取的装配件条码%s获取到匹配工单%s!", + assemblySnList.toString(), equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.toList()).toString()), + MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); + + //加工单验证工步 【非排序】 + stepResult = ((IStepService) SpringContextsUtil.getBean("mesWorkOrderCheckNosortStepService")).executeInState(reqBean); + + } finally { + + //验证失败后, 删除上下文扫/读信息:装配件条码 + if (!stepResult.isCompleted()) productionDispatchContextStepService.removeScanAssemblySnContext(reqBean); + + } + + return stepResult; + + } + + //查询条码与工单对应关系【在前道工序中作为主条码写入次关系表】 + private Map> getWorkOrderReductionSourceMap(String organizeCode, List assemblySnList) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + if (assemblySnList.size() == 1) DdlPreparedPack.getStringEqualPack(assemblySnList.get(0), MesPcnExtConstWords.PRODUCT_SN, packBean); + else DdlPreparedPack.getInPackList(assemblySnList, MesPcnExtConstWords.PRODUCT_SN, packBean); + List workOrderReductionSourceList = workOrderReductionSourceRepository.findByHqlWhere(packBean); + return CollectionUtils.isEmpty(workOrderReductionSourceList) ? null : + workOrderReductionSourceList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkOrderReductionSource::getProductSn)); + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesBarcodeWithWorkOrderRelationSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesBarcodeWithWorkOrderRelationSaveStepService.java new file mode 100644 index 0000000..60f772c --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesBarcodeWithWorkOrderRelationSaveStepService.java @@ -0,0 +1,97 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdRuleContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderReductionSource; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +import cn.estsh.i3plus.pojo.mes.model.StationResultBean; +import cn.estsh.i3plus.pojo.mes.model.StepResult; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderReductionSourceRepository; +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.Optional; +import java.util.stream.Collectors; + +/** + * @Description : 保存条码与工单对应关系工步 + * @Author : wangjie + **/ +@Slf4j +@Service("mesBarcodeWithWorkOrderRelationSaveStepService") +public class MesBarcodeWithWorkOrderRelationSaveStepService extends BaseStepService { + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Autowired + private MesWorkOrderReductionSourceRepository workOrderReductionSourceRepository; + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + //获取上下文信息 + MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean); + + //配置错误 抛出异常 + if (!productionProcessContext.getSuccess()) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage()); + + //存储生产过程上下文对象 + productionProcessContextStepService.dispatchProductionProcessContext(reqBean, productionProcessContext); + + //获取上下文产品加工规则数据信息集合 + List prodRuleContextList = productionDispatchContextStepService.getProdRuleDataContext(reqBean); + if (CollectionUtils.isEmpty(prodRuleContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在非排序加工规则数据,请重置工序!"); + + //获取上下文产出条码数据信息集合 + List productionPsOutContextList = productionDispatchContextStepService.getProductionPsOutContext(reqBean); + if (CollectionUtils.isEmpty(productionPsOutContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在产出零件条码信息,请重置工序解决!"); + + //验证产出条码是否匹配工单 + Optional optional = productionPsOutContextList.stream().filter(o -> (null != o && StringUtils.isEmpty(o.getWorkOrderNo()))).findFirst(); + if (null != optional && optional.isPresent()) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前产出零件条码信息未匹配工单,请重置工序解决!"); + + Map prMap = prodRuleContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toMap(MesProdRuleContext::getForeignKey, o -> o)); + + productionPsOutContextList.stream().filter(o -> null != o).forEach(o -> saveBarcodeWithWorkOrderRelation(reqBean, o, prMap.get(o.getForeignKey()))); + + return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "保存条码与工单对应关系成功!"); + + } + + private void saveBarcodeWithWorkOrderRelation(StationRequestBean reqBean, MesProductionPsOutContext productionPsOutContext, MesProdRuleContext prodRuleContext) { + MesWorkOrderReductionSource workOrderReductionSource = new MesWorkOrderReductionSource(); + workOrderReductionSource.setWorkOrderNo(productionPsOutContext.getWorkOrderNo()); + workOrderReductionSource.setProductSn(productionPsOutContext.getProductSn()); + workOrderReductionSource.setPartNo(productionPsOutContext.getPartNo()); + workOrderReductionSource.setPartName(productionPsOutContext.getPartName()); + workOrderReductionSource.setAreaCode(reqBean.getAreaCode()); + workOrderReductionSource.setWorkCenterCode(reqBean.getWorkCenterCode()); + workOrderReductionSource.setProductionRecordId(prodRuleContext.getProductionRecordId()); +// workOrderReductionSource.setQty(); +// workOrderReductionSource.setSourceType(10); +// workOrderReductionSource.setSourceStatus(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + workOrderReductionSource.setOrganizeCode(reqBean.getOrganizeCode()); + ConvertBean.serviceModelInitialize(workOrderReductionSource, reqBean.getUserInfo()); + workOrderReductionSourceRepository.insert(workOrderReductionSource); + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateByReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateByReadStepService.java new file mode 100644 index 0000000..703879b --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateByReadStepService.java @@ -0,0 +1,81 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdRuleContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsInContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +import cn.estsh.i3plus.pojo.mes.model.StationResultBean; +import cn.estsh.i3plus.pojo.mes.model.StepResult; +import cn.estsh.impp.framework.boot.util.SpringContextsUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description : 根据读取条码生成零件条码工步 + * @Author : wangjie + **/ +@Slf4j +@Service("mesProductSnGenerateByReadStepService") +public class MesProductSnGenerateByReadStepService extends BaseStepService { + + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + //获取上下文产品加工规则数据信息集合 + List prodRuleContextList = productionDispatchContextStepService.getProdRuleDataContext(reqBean); + if (CollectionUtils.isEmpty(prodRuleContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "当前不存在非排序加工规则数据,请重置工序!"); + + //获取上下文扫/读信息:主条码 + List equipVariableCollectContextList = productionDispatchContextStepService.getScanProductSnContext(reqBean); + + //没有待验证的主条码 + if (CollectionUtils.isEmpty(equipVariableCollectContextList)) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前没有需要验证的主条码!"); + + //清除本次已获取得到的主条码信息 + productionDispatchContextStepService.removeScanProductSnContext(reqBean); + + //搜集主条码值 + List productSnList = equipVariableCollectContextList.stream().filter( + o -> (null != o && !StringUtils.isEmpty(o.getEquipVariableValue()))).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.toList()); + + if (CollectionUtils.isEmpty(productSnList) || productSnList.size() < prodRuleContextList.size()) { + return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, + String.format("当前读取到主条码个数[%s]不满足当前实际产品腔数[%s]", CollectionUtils.isEmpty(productSnList) ? MesPcnExtConstWords.ZERO : productSnList.size(), prodRuleContextList.size())); + } + + //封装上下文进料零件条码信息集合 + List productionPsInContextList = new ArrayList<>(); + Integer index = 0; + for (MesProdRuleContext prodRuleContext : prodRuleContextList) { + if (null == prodRuleContext || StringUtils.isEmpty(prodRuleContext.getForeignKey())) continue; + productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), productSnList.get(index)).foreignKey(prodRuleContext.getForeignKey())); + index ++; + } + + //保存进料主条码数据 + productionDispatchContextStepService.dispatchProductionPsInContext(reqBean, productionPsInContextList); + + //调用生成零件条码工步 + return ((IStepService) SpringContextsUtil.getBean("mesProductSnGenerateStepService")).executeInState(reqBean); + + } + +} 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 0a92bcd..ea1eed5 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 @@ -235,9 +235,9 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp //保存上下文扫/读信息:加工单 [JSON]List @Override - public Boolean dispatchScanWorkOrderNoContext(StationRequestBean reqBean, List productSnList) { - if (CollectionUtils.isEmpty(productSnList)) return false; - return dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_WORK_ORDER_NO_CONTEXT, JSONObject.toJSONString(productSnList)); + public Boolean dispatchScanWorkOrderNoContext(StationRequestBean reqBean, List workOrderNoList) { + if (CollectionUtils.isEmpty(workOrderNoList)) return false; + return dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_WORK_ORDER_NO_CONTEXT, JSONObject.toJSONString(workOrderNoList)); } //删除上下文扫/读信息:加工单