From 5a385d72d00390211a04299da2f9cae61b13bc04 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 26 Jun 2025 11:46:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=B8=E5=A1=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IMesProductionDispatchContextStepService.java | 6 --- .../MesFunctionDialogInputOrderQtyService.java | 6 ++- .../MesFunctionDialogInputRawMixWeightService.java | 45 ++++++++++++++++++++++ .../step/MesCustomDialogStepService.java | 14 +++++-- .../step/MesProductSnGenerateStepService.java | 6 ++- .../MesStationDeductionAssemblyStepService.java | 15 ++++---- .../step/MesStationMatchAssemblyStepService.java | 13 +++---- .../MesProductionDispatchContextStepService.java | 13 ------- .../mes/pcn/pojo/context/MesProdRuleContext.java | 28 ++++++++++++++ .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 2 - 10 files changed, 104 insertions(+), 44 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogInputRawMixWeightService.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 2ebedaa..bf52992 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 @@ -259,12 +259,6 @@ public interface IMesProductionDispatchContextStepService { @ApiOperation(value = "保存上下文推单队列信息") Boolean dispatchSortQueuePushContext(StationRequestBean reqBean, List queueOrderPushList); - @ApiOperation(value = "获取弹框输入的工单数量") - Double getOrderQtyDialogContext(StationRequestBean reqBean); - - @ApiOperation(value = "保存弹框输入的工单数量") - void dispatchOrderQtyDialogContext(StationRequestBean reqBean, String orderQty); - @ApiOperation(value = "获取站点用于缺料时进行上料绑定") List getMatchStationContext(StationRequestBean reqBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogInputOrderQtyService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogInputOrderQtyService.java index efbee2d..7072fa4 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogInputOrderQtyService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogInputOrderQtyService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; 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.MesWorkOrderCheckCompleteQtyStepService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdRuleContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext; @@ -71,8 +72,9 @@ public class MesFunctionDialogInputOrderQtyService extends BaseSwsService implem if (!stepResult.isCompleted()) reqBean.setTriggerAutoFsm(true); else { - //保存弹框输入的工单数量 - productionDispatchContextStepService.dispatchOrderQtyDialogContext(reqBean, buttonDynamicModel.getFunctionValue()); + //获取上下文产品加工规则数据信息集合 + List prodRuleContextList = productionDispatchContextStepService.getProdRuleDataContext(reqBean); + prodRuleContextList.stream().forEach(o -> o.eachCavityQty(buttonDynamicModel.getFunctionValue())); reqBean.setButtonCode(buttonDynamicModel.getButtonCode()); reqBean.setStepDialogStatus(true); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogInputRawMixWeightService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogInputRawMixWeightService.java new file mode 100644 index 0000000..abda7ed --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionDialogInputRawMixWeightService.java @@ -0,0 +1,45 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; + +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.MesWorkOrderCheckCompleteQtyStepService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IShippingDispatchService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService; +import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; +import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +import cn.estsh.i3plus.pojo.mes.model.StationResultBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description : 原料调配输入重量弹框接口实现【输入原料调配弹框重量弹框】 + **/ +@Service +public class MesFunctionDialogInputRawMixWeightService extends BaseSwsService implements IFsmModuleFunctionService { + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Autowired + private MesWorkOrderCheckCompleteQtyStepService workOrderCheckCompleteQtyStepService; + + @Autowired + private IShippingDispatchService shippingDispatchService; + + @Override + public Boolean doFunction(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) { + + this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue()).scanInfo(buttonDynamicModel.getFunctionValue()), + String.format("生产线[%s]工位[%s]原料调配弹框提交成功,请等待验证!提交信息[%s]", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), buttonDynamicModel.getFunctionValue()), + MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); + + return true; + + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesCustomDialogStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesCustomDialogStepService.java index 1219e56..b2db566 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesCustomDialogStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesCustomDialogStepService.java @@ -53,10 +53,16 @@ public class MesCustomDialogStepService extends BaseStepService { return stepDynamicsCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, true, MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT, "弹框会话关闭!"); } - //获取工步参数 - Optional> stepParamMap = getStepParams(reqBean); - - String customPageName = (null != stepParamMap && stepParamMap.isPresent() && stepParamMap.get().containsKey(MesPcnExtConstWords.CUSTOM_PAGE_NAME)) ? stepParamMap.get().get(MesPcnExtConstWords.CUSTOM_PAGE_NAME).getParamValue() : null; + String customPageName; + if (reqBean.getDataMap().containsKey(MesPcnExtConstWords.CUSTOM_PAGE_NAME)) { + //适配其他工步调用弹框工步 例如: 原料调配弹框输入重量 [CUSTOM_PAGE_NAME = FUNCTION_DIALOG_INPUT_RAW_MIX_WEIGHT] + customPageName = (String) reqBean.getDataMap().get(MesPcnExtConstWords.CUSTOM_PAGE_NAME); + reqBean.getDataMap().remove(MesPcnExtConstWords.CUSTOM_PAGE_NAME); + } else { + //获取工步参数 + Optional> stepParamMap = getStepParams(reqBean); + customPageName = (null != stepParamMap && stepParamMap.isPresent() && stepParamMap.get().containsKey(MesPcnExtConstWords.CUSTOM_PAGE_NAME)) ? stepParamMap.get().get(MesPcnExtConstWords.CUSTOM_PAGE_NAME).getParamValue() : null; + } if (StringUtils.isEmpty(customPageName)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("弹框会话工步未配置工步参数[%s]!", MesPcnExtConstWords.CUSTOM_PAGE_NAME)); 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 da4df77..c6d6abc 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 @@ -14,6 +14,7 @@ import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.mes.pcn.util.StringUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.tool.MathOperation; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; @@ -198,7 +199,10 @@ public class MesProductSnGenerateStepService extends BaseStepService { produceSnClone.setSerialNumber(snowflakeIdMaker.nextId() + MesPcnExtConstWords.EMPTY); } - produceSnClone.setQty(new Double(1)); + //适配弹框输入的工单数量【每腔数量】 + if (StringUtils.isEmpty(produceSnClone.getQty()) || MathOperation.compareTo(produceSnClone.getQty(), new Double(0)) == 0) { + produceSnClone.setQty(prodRuleContext.getEachCavityQty()); + } if (!StringUtils.isEmpty(prodRuleContext.getWorkOrderNo())) produceSnClone.setWorkOrderNo(prodRuleContext.getWorkOrderNo()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesStationDeductionAssemblyStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesStationDeductionAssemblyStepService.java index 28a3b17..d9758d7 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesStationDeductionAssemblyStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesStationDeductionAssemblyStepService.java @@ -103,9 +103,6 @@ public class MesStationDeductionAssemblyStepService extends BaseStepService { MesWorkCenter workCenter = productionProcessContext.getWorkCenter(); - //获取弹框输入的工单数量, 未弹框默认 数量=1 - Double orderQtyDialogContext = productionDispatchContextStepService.getOrderQtyDialogContext(reqBean); - List acquiredLocks = new ArrayList<>(); try { if (!tryLock(acquiredLocks, stationNameList)) { @@ -117,7 +114,7 @@ public class MesStationDeductionAssemblyStepService extends BaseStepService { Map remainQtyMap2Cache = new HashMap<>(); //执行容器装配件的缓存扣减 - dispatchStationDeductionAssembly(reqBean, resultBean, stepResult, workCenter, prodRuleContextList, orderQtyDialogContext, remainQtyMap2Cache); + dispatchStationDeductionAssembly(reqBean, resultBean, stepResult, workCenter, prodRuleContextList, remainQtyMap2Cache); if (!stepResult.isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult.nextTriggerEvent(MesPcnExtConstWords.NEXT_TRIGGER_EVENT_FEEDING), stepResult.getMsg()); @@ -127,6 +124,8 @@ public class MesStationDeductionAssemblyStepService extends BaseStepService { } catch (InterruptedException e) { Thread.currentThread().interrupt(); + return stepDynamicsCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().checkRepeat(), stepResult, false, + MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT, "站点扣减装配件扣减异常,即将重试!"); } finally { unLockAll(acquiredLocks); } @@ -137,11 +136,11 @@ public class MesStationDeductionAssemblyStepService extends BaseStepService { //执行容器装配件的缓存扣减 private void dispatchStationDeductionAssembly(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesWorkCenter workCenter, - List prodRuleContextList, Double orderQtyDialogContext, Map remainQtyMap2Cache) { + List prodRuleContextList, Map remainQtyMap2Cache) { for (MesProdRuleContext prodRuleContext : prodRuleContextList) { if (null == prodRuleContext || StringUtils.isEmpty(prodRuleContext.getIsMatchContainer())) continue; - List productionAssemblyContextList = dispatchStationDeductionAssembly(reqBean, resultBean, stepResult, workCenter, prodRuleContext, orderQtyDialogContext, remainQtyMap2Cache); + List productionAssemblyContextList = dispatchStationDeductionAssembly(reqBean, resultBean, stepResult, workCenter, prodRuleContext, remainQtyMap2Cache); if (!stepResult.isCompleted()) break; prodRuleContext.assemblyDataJson(productionAssemblyContextList); } @@ -150,14 +149,14 @@ public class MesStationDeductionAssemblyStepService extends BaseStepService { //执行容器装配件的缓存扣减 private List dispatchStationDeductionAssembly(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesWorkCenter workCenter, - MesProdRuleContext prodRuleContext, Double orderQtyDialogContext, Map remainQtyMap2Cache) { + MesProdRuleContext prodRuleContext, Map remainQtyMap2Cache) { List productionAssemblyContextList = prodRuleContext.getAssemblyDataContext(workCenter); for (MesProductionAssemblyContext productionAssemblyContext : productionAssemblyContextList) { if (null == productionAssemblyContext || productionAssemblyContext.getMatchType().compareTo(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_80.getValue()) != 0) continue; //未匹配的工序用量 - Double unMatchQty = MathOperation.mul(productionAssemblyContext.getQty(), orderQtyDialogContext); + Double unMatchQty = MathOperation.mul(productionAssemblyContext.getQty(), prodRuleContext.getEachCavityQty()); //扣料原料条码信息 List deductionContextList = null; //用于给装配件清单赋值 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesStationMatchAssemblyStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesStationMatchAssemblyStepService.java index b9b3c40..9cdddb5 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesStationMatchAssemblyStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesStationMatchAssemblyStepService.java @@ -93,16 +93,13 @@ public class MesStationMatchAssemblyStepService extends BaseStepService { //将可扣减的条码进行原子性缓存, 并获取最新的实际库存 productionCustomContextStepService.dispatchContainerPackageDetailAtomicity(reqBean.getOrganizeCode(), containerPackageDetailContextList); - //获取弹框输入的工单数量, 未弹框默认 数量=1 - Double orderQtyDialogContext = productionDispatchContextStepService.getOrderQtyDialogContext(reqBean); - MesWorkCenter workCenter = productionProcessContext.getWorkCenter(); //站点信息用于后面扣料业务中进行LOCK Map stationMap2Lock = new HashMap<>(); //匹配装配件的工序用量 - dispatchStationMatchAssembly(reqBean, resultBean, stepResult, workCenter, prodRuleContextList, containerPackageDetailContextList, orderQtyDialogContext, stationMap2Lock); + dispatchStationMatchAssembly(reqBean, resultBean, stepResult, workCenter, prodRuleContextList, containerPackageDetailContextList, stationMap2Lock); if (!stepResult.isCompleted()) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult.nextTriggerEvent(MesPcnExtConstWords.NEXT_TRIGGER_EVENT_FEEDING), stepResult.getMsg()); @@ -123,10 +120,10 @@ public class MesStationMatchAssemblyStepService extends BaseStepService { //匹配装配件的工序用量【遍历加工规则】 private void dispatchStationMatchAssembly(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesWorkCenter workCenter, List prodRuleContextList, List containerPackageDetailContextList, - Double orderQtyDialogContext, Map stationMap2Lock) { + Map stationMap2Lock) { for (MesProdRuleContext prodRuleContext : prodRuleContextList) { if (null == prodRuleContext || StringUtils.isEmpty(prodRuleContext.getIsMatchContainer())) continue; - List productionAssemblyContextList = dispatchStationMatchAssembly(reqBean, resultBean, stepResult, workCenter, prodRuleContext, containerPackageDetailContextList, orderQtyDialogContext, stationMap2Lock); + List productionAssemblyContextList = dispatchStationMatchAssembly(reqBean, resultBean, stepResult, workCenter, prodRuleContext, containerPackageDetailContextList, stationMap2Lock); if (!stepResult.isCompleted()) break; prodRuleContext.assemblyDataJson(productionAssemblyContextList); } @@ -135,7 +132,7 @@ public class MesStationMatchAssemblyStepService extends BaseStepService { //匹配装配件的工序用量【遍历装配件】 private List dispatchStationMatchAssembly(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesWorkCenter workCenter, MesProdRuleContext prodRuleContext, List containerPackageDetailContextList, - Double orderQtyDialogContext, Map stationMap2Lock) { + Map stationMap2Lock) { List productionAssemblyContextList = prodRuleContext.getAssemblyDataContext(workCenter); for (MesProductionAssemblyContext productionAssemblyContext : productionAssemblyContextList) { if (null == productionAssemblyContext || productionAssemblyContext.getMatchType().compareTo(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_80.getValue()) != 0) continue; @@ -144,7 +141,7 @@ public class MesStationMatchAssemblyStepService extends BaseStepService { stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("当前产成对应的[%s]类型的装配件信息维护零件号或工序用量!", MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_80.getDescription())); //未匹配的工序用量 - Double unMatchQty = MathOperation.mul(productionAssemblyContext.getQty(), orderQtyDialogContext); + Double unMatchQty = MathOperation.mul(productionAssemblyContext.getQty(), prodRuleContext.getEachCavityQty()); //支持被扣减的原料条码 List containerSnDataList = null; //用于给装配件清单赋值 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 f0652fe..7264796 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 @@ -589,19 +589,6 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp return dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.QUEUE_PUSH_CONTEXT, JSONObject.toJSONString(queueOrderPushList)); } - //获取弹框输入的工单数量 - @Override - public Double getOrderQtyDialogContext(StationRequestBean reqBean) { - String orderQty = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.ORDER_QTY_DIALOG_CONTEXT); - return StringUtils.isEmpty(orderQty) ? new Double(1) : new Double(orderQty); - } - - //获取弹框输入的工单数量 - @Override - public void dispatchOrderQtyDialogContext(StationRequestBean reqBean, String orderQty) { - dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.ORDER_QTY_DIALOG_CONTEXT, orderQty); - } - //获取站点用于缺料时进行上料绑定 @Override public List getMatchStationContext(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java index ef06776..c7c6658 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java @@ -122,6 +122,13 @@ public class MesProdRuleContext implements Serializable { @ApiParam(name = "是否存在装配件容器匹配") private String isMatchContainer; + @ApiParam(name = "是否存在装配件原料调配") + private String isMatchRawMix; + + //用于弹框输入工单数量 + @ApiParam(name = "每腔数量") + private Double eachCavityQty = new Double(1); + public MesProdRuleContext() {} public MesProdRuleContext(String organizeCode) { @@ -230,10 +237,22 @@ public class MesProdRuleContext implements Serializable { return this; } + public MesProdRuleContext eachCavityQty(String eachCavityQty) { + if (StringUtils.isEmpty(eachCavityQty)) return this; + return eachCavityQty(new Double(eachCavityQty)); + } + + public MesProdRuleContext eachCavityQty(Double eachCavityQty) { + if (StringUtils.isEmpty(eachCavityQty) || eachCavityQty.compareTo(new Double(0)) == 0) return this; + this.eachCavityQty = eachCavityQty; + return this; + } + public MesProdRuleContext assemblyDataJson(List productionAssemblyContextList) { if (CollectionUtils.isEmpty(productionAssemblyContextList)) return this; this.assemblyDataJson = JSONObject.toJSONString(productionAssemblyContextList); isMatchContainer(productionAssemblyContextList); + isMatchRawMix(productionAssemblyContextList); return this; } @@ -246,6 +265,15 @@ public class MesProdRuleContext implements Serializable { return this; } + //标记装配件是否需要进行原料调配 + public MesProdRuleContext isMatchRawMix(List productionAssemblyContextList) { + if (CollectionUtils.isEmpty(productionAssemblyContextList)) return this; + Optional optional = (Optional) productionAssemblyContextList.stream() + .filter(o -> (null != o && !StringUtils.isEmpty(o.getMatchType()) && o.getMatchType().compareTo(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_90.getValue()) == 0)).findFirst(); + if (null != optional && optional.isPresent()) this.isMatchRawMix = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr(); + return this; + } + //根据生产线类型返回装配件数据集合 public List getProductionAssemblyContextList(MesWorkCenter workCenter) { if (StringUtils.isEmpty(this.assemblyDataJson)) return null; 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 8a24ea4..10e10f9 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 @@ -742,8 +742,6 @@ public class MesPcnExtConstWords { public static final String PROD_TEMP_DATA_CONTEXT = "PROD_TEMP_DATA_CONTEXT"; // 上下文: 发运队列 public static final String SHIPPING_QUEUE_CONTEXT = "SHIPPING_QUEUE_CONTEXT"; - // 上下文: 获取弹框输入的工单数量 - public static final String ORDER_QTY_DIALOG_CONTEXT = "ORDER_QTY_DIALOG_CONTEXT"; // 用于缺料时进行上料绑定的站点 public static final String MATCH_STATION_CONTEXT = "MATCH_STATION_CONTEXT"; // 用于扣料业务中进行LOCK