From b768644b407e780ce8dcea0095521447e0f36862 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BE=AE=E7=AC=91=E7=9D=80=E9=9D=A2=E5=AF=B9=E6=98=8E?=
=?UTF-8?q?=E5=A4=A9?= <752558143@qq.com>
Date: Sat, 15 Jun 2024 18:28:12 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E6=AD=A5=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../MesNumberRuleMatchDispatchService.java | 4 +
...MesNumberRuleMatchRegularExpressionService.java | 109 ++++++++++++++++++++-
.../strategy/AbstractWriteVariableService.java | 41 ++++++++
.../strategy/CommonWriteVariableService.java | 18 ++++
.../strategy/OrderWriteVariableService.java | 62 ++++++++++++
.../strategy/PartWriteVariableService.java | 63 ++++++++++++
.../step/MesSaveAssemblyStepService.java | 105 ++++++++++++++++++++
.../MesSendCavityGroupParamsCmdStepService.java | 49 +++++----
.../step/MesSendEquipParamsCmdStepService.java | 99 +++++++++++--------
.../MesProductionCustomContextStepService.java | 2 +-
10 files changed, 483 insertions(+), 69 deletions(-)
create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/AbstractWriteVariableService.java
create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/CommonWriteVariableService.java
create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/OrderWriteVariableService.java
create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/PartWriteVariableService.java
create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSaveAssemblyStepService.java
diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchDispatchService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchDispatchService.java
index 0b3fc8f..6cc23d6 100644
--- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchDispatchService.java
+++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchDispatchService.java
@@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.rulematch;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesNumberRuleMatchDispatchService;
import cn.estsh.i3plus.pojo.mes.bean.MesProdRuleNosortCfg;
+import cn.estsh.i3plus.pojo.mes.bean.MesProdRuleSortCfg;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Primary;
@@ -26,6 +27,9 @@ public class MesNumberRuleMatchDispatchService implements IMesNumberRuleMatchDis
if (numberRuleList.get(0) instanceof MesProdRuleNosortCfg) numberRuleList.forEach(o -> matchNumberRule(organizeCode, sn, resultList, o, "mesNumberRuleMatchRegularExpressionService",o, ((MesProdRuleNosortCfg) o).getInPartNoRule()));
+ if (numberRuleList.get(0) instanceof MesProdRuleSortCfg) numberRuleList.forEach(o -> matchNumberRule(organizeCode, sn, resultList, o, "mesNumberRuleMatchRegularExpressionService",o, ((MesProdRuleNosortCfg) o).getInPartNoRule()));
+
+
return resultList;
}
diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchRegularExpressionService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchRegularExpressionService.java
index 8f8c889..9095ac5 100644
--- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchRegularExpressionService.java
+++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchRegularExpressionService.java
@@ -1,8 +1,14 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.rulematch;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesNumberRuleMatchDispatchService;
+import com.google.common.base.Objects;
+import jdk.nashorn.internal.runtime.regexp.joni.Regex;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* 正则表达式匹配
@@ -16,10 +22,111 @@ public class MesNumberRuleMatchRegularExpressionService implements IMesNumberRul
String matchRule = params[1].toString();
+ if (sn.matches(matchRule)){
+ return true;
+ }
+
+ return false;
+ }
- return true;
+ private boolean match(String ruleStr, String barCode) {
+ if (StringUtils.isEmpty(ruleStr)) {
+ return false;
+ }
+ if (!ruleStr.contains("*") && !ruleStr.contains("?") && !ruleStr.contains(",")) {
+ if (Objects.equal(ruleStr.toLowerCase(), barCode.toLowerCase())) {
+ return true;
+ }
+ return false;
+ }
+ String ruleArray[] = ruleStr.split(",");
+ for (String rule : ruleArray) {
+ if (rule.contains("yyyyMMdd")) {
+ String pattern = "\\d{4}\\d{2}\\d{2}";
+ Pattern regex = Pattern.compile(pattern);
+ Matcher matcher = regex.matcher(rule);
+ return matcher.matches();
+ } else if (rule.contains("yyyy.MM.dd") || rule.contains("yyyy/MM/dd") || rule.contains("yyyy-MM-dd")) {
+ String pattern = "\\d{4}[./-]\\d{2}[./-]\\d{2}";
+ Pattern regex = Pattern.compile(pattern);
+ Matcher matcher = regex.matcher(rule);
+ return matcher.matches();
+ }
+ }
+ return false;
+ }
+ public static void main(String[] args) {
+ String sn = "1574110000123";
+ String matchRule = "1574110000*";
+ System.out.println(sn.matches(matchRule));
}
+/*
+ ///
+ /// 装配件BarCode规则是否匹配
+ ///
+ /// 规则字串
+ /// 条码
+ ///
+ public static Boolean BarcodeRuleIsMatch(String ruleStr, String barCode)
+ {
+ if (String.IsNullOrEmpty(ruleStr))
+ return false;
+ if (!ruleStr.Contains("*") && !ruleStr.Contains("?") && !ruleStr.Contains(","))
+ {
+ if (ruleStr.ToLower() == barCode.ToLower())
+ return true;
+ else
+ return false;
+ }
+ ///首先规则可以是多种以逗号隔开,将其先拆到数组中
+ string[] rules = ruleStr.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries);
+ ///以当前扫入的条码匹配每一条规则,当某条匹配上后直接返回true
+ foreach (var rule in rules)
+ {
+ if (rule.Contains("yyyyMMdd"))
+ {
+ Regex reg = new Regex(@"\d{4}[年/.-]?\d{1,2}[月./-]?(\d{1,2}日?)?");
+ MatchCollection mc = reg.Matches(barCode);
+ if (reg.IsMatch(barCode.ToLower())) return true;
+ }
+ else if (rule.Contains("yyyy.MM.dd"))
+ {
+ Regex reg = new Regex(@"\d{4}[年/.-]?\d{1,2}[月./-]?(\d{1,2}日?)?");
+ MatchCollection mc = reg.Matches(barCode);
+ if (reg.IsMatch(barCode.ToLower())) return true;
+ }
+ else if (rule.Contains("yyyy/MM/dd"))
+ {
+ Regex reg = new Regex(@"\d{4}[年/.-]?\d{1,2}[月./-]?(\d{1,2}日?)?");
+ MatchCollection mc = reg.Matches(barCode);
+ if (reg.IsMatch(barCode.ToLower())) return true;
+ }
+ else if (rule.Contains("yyyy-MM-dd"))
+ {
+ Regex reg = new Regex(@"\d{4}[年/.-]?\d{1,2}[月./-]?(\d{1,2}日?)?");
+ MatchCollection mc = reg.Matches(barCode);
+ if (reg.IsMatch(barCode.ToLower())) return true;
+ }
+ else if (rule.Contains("yyyy-MM-dd hh:mm:ss"))
+ {
+ Regex reg = new Regex(@"\d{4}[年/.-]?\d{1,2}[月./-]?(\d{1,2}日?)?");
+ MatchCollection mc = reg.Matches(barCode);
+ if (reg.IsMatch(barCode.ToLower())) return true;
+ }
+ string ruleNoSpecialChar = StringUtil.TrimSpecialChars2(rule);
+ string barcodeNoSpecialChar = StringUtil.TrimSpecialChars2(barCode);
+ ///将规则转换为正则表达式,使用正则表达式进行匹配,正则中去除二维码的起始特殊符号
+ //update by huxj 2020.04.07 添加二维码前缀正则匹配
+ var regStr = "^" + ruleNoSpecialChar.ToLower().Replace(")", @"\)").Replace("?", @"(?:.|\n){1}").Replace("*", @"(?:.|-\n)*").Replace("[", @"\[") + "$";
+ //Regex rgx = new Regex("^" + ruleNoSpecialChar.ToLower().Replace("?", @"(?:.|\n){1}").Replace("*", @"(?:.|\n)*") + "$");
+ Regex rgx = new Regex(regStr);
+ //end update
+ if (rgx.IsMatch(barcodeNoSpecialChar.ToLower())) return true;
+ if (rule == barCode) return true;
+ }
+ return false;
+ }*/
}
diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/AbstractWriteVariableService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/AbstractWriteVariableService.java
new file mode 100644
index 0000000..ff42c52
--- /dev/null
+++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/AbstractWriteVariableService.java
@@ -0,0 +1,41 @@
+package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.rulematch.strategy;
+
+
+import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipVariableRwExtService;
+import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
+import cn.estsh.i3plus.pojo.mes.model.MesEquipVariableRwResult;
+import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @Description : 发送加工参数的抽象类
+ * @Author : zxw
+ **/
+public abstract class AbstractWriteVariableService {
+
+ @Autowired
+ private IMesEquipVariableRwExtService equipVariableRwExtService;
+
+ /**
+ * 写值
+ * @param value
+ * @param equipmentVariable
+ * @param kepwareFlag
+ */
+ public MesEquipVariableRwResult writeVariable(StationRequestBean reqBean, String value, MesEquipmentVariable equipmentVariable, String kepwareFlag, Integer foreignKey) {
+ // 需要不同的策略不同的转换方式
+ String newValue = transferValue(reqBean, value, foreignKey);
+ MesEquipVariableRwResult mesEquipVariableRwResult = equipVariableRwExtService.writeVariable(newValue, equipmentVariable, kepwareFlag);
+ /* if (mesEquipVariableRwResult.getIsSuccessed()) {
+ handlerValue();
+ }*/
+ return mesEquipVariableRwResult;
+ }
+
+
+ public abstract String transferValue(StationRequestBean reqBean, String value, Integer foreignKey);
+
+/* public abstract void handlerValue();
+
+ public abstract void removeValue();*/
+}
diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/CommonWriteVariableService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/CommonWriteVariableService.java
new file mode 100644
index 0000000..f12f9c7
--- /dev/null
+++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/CommonWriteVariableService.java
@@ -0,0 +1,18 @@
+package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.rulematch.strategy;
+
+import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
+import io.swagger.models.auth.In;
+import org.springframework.stereotype.Service;
+
+/**
+ * 发送工单号
+ */
+@Service
+public class CommonWriteVariableService extends AbstractWriteVariableService{
+
+
+ @Override
+ public String transferValue(StationRequestBean reqBean, String value, Integer foreignKey) {
+ return value;
+ }
+}
diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/OrderWriteVariableService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/OrderWriteVariableService.java
new file mode 100644
index 0000000..8843bb3
--- /dev/null
+++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/OrderWriteVariableService.java
@@ -0,0 +1,62 @@
+package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.rulematch.strategy;
+
+import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
+import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext;
+import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
+
+/**
+ * 发送工单号
+ */
+@Service
+public class OrderWriteVariableService extends AbstractWriteVariableService{
+
+ @Autowired
+ private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService;
+
+ private Map map = new HashMap<>();
+
+ private String orderNo;
+
+ @Override
+ public String transferValue(StationRequestBean reqBean, String value, Integer foreignKey) {
+
+ List productionPartContextList = mesProductionDispatchContextStepService.getProductionPartContext(reqBean);
+
+ MesProductionPartContext mesProductionPartContext = productionPartContextList.stream().filter(pductionPartContext -> Objects.equals(pductionPartContext.getForeignKey(), foreignKey)).findFirst().orElse(null);
+
+ if (mesProductionPartContext != null) {
+ return mesProductionPartContext.getWorkOrderNo();
+ }
+ /*
+ for (MesProductionPartContext mesProductionPartContext : productionPartContextList) {
+
+ if (orderNoList.contains(mesProductionPartContext.getWorkOrderNo())) {
+ continue;
+ }
+ orderNo = mesProductionPartContext.getWorkOrderNo();
+ return mesProductionPartContext.getWorkOrderNo();
+ }*/
+ return null;
+ }
+
+ /* public void addList(String orderNo){
+ orderNoList.add(orderNo);
+ }
+
+ @Override
+ public void handlerValue() {
+ orderNoList.add(this.orderNo);
+ }
+
+ @Override
+ public void removeValue() {
+ orderNoList.clear();
+ orderNo = null;
+ }*/
+}
diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/PartWriteVariableService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/PartWriteVariableService.java
new file mode 100644
index 0000000..d28f03a
--- /dev/null
+++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/strategy/PartWriteVariableService.java
@@ -0,0 +1,63 @@
+package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.rulematch.strategy;
+
+import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
+import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext;
+import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * 发送物料号
+ */
+@Service
+public class PartWriteVariableService extends AbstractWriteVariableService{
+
+ @Autowired
+ private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService;
+
+ private Map map = new HashMap<>();
+
+ private String orderNo;
+
+ @Override
+ public String transferValue(StationRequestBean reqBean, String value, Integer foreignKey) {
+
+ List productionPartContextList = mesProductionDispatchContextStepService.getProductionPartContext(reqBean);
+
+ MesProductionPartContext mesProductionPartContext = productionPartContextList.stream().filter(pductionPartContext -> Objects.equals(pductionPartContext.getForeignKey(), foreignKey)).findFirst().orElse(null);
+
+ if (mesProductionPartContext != null) {
+ return mesProductionPartContext.getPartNo();
+ }
+ /*
+ for (MesProductionPartContext mesProductionPartContext : productionPartContextList) {
+
+ if (orderNoList.contains(mesProductionPartContext.getWorkOrderNo())) {
+ continue;
+ }
+ orderNo = mesProductionPartContext.getWorkOrderNo();
+ return mesProductionPartContext.getWorkOrderNo();
+ }*/
+ return null;
+ }
+
+ /* public void addList(String orderNo){
+ orderNoList.add(orderNo);
+ }
+
+ @Override
+ public void handlerValue() {
+ orderNoList.add(this.orderNo);
+ }
+
+ @Override
+ public void removeValue() {
+ orderNoList.clear();
+ orderNo = null;
+ }*/
+}
diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSaveAssemblyStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSaveAssemblyStepService.java
new file mode 100644
index 0000000..95a2fcd
--- /dev/null
+++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSaveAssemblyStepService.java
@@ -0,0 +1,105 @@
+/*
+package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
+
+import akka.actor.ActorRef;
+import akka.actor.ActorSystem;
+import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
+import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
+import cn.estsh.i3plus.ext.mes.pcn.pojo.context.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.codemaker.SnowflakeIdMaker;
+import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
+import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
+import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
+import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
+import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
+import cn.estsh.i3plus.pojo.mes.model.StepResult;
+import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
+import com.google.common.base.Objects;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+*/
+/**
+ * @Description : 保存装配件
+ * @Author : zxw
+ **//*
+
+@Slf4j
+@Service
+public class MesSaveAssemblyStepService extends BaseStepService {
+ @Autowired
+ private SnowflakeIdMaker snowflakeIdMaker;
+
+ @Autowired
+ private ActorSystem actorSystem;
+
+ @Autowired
+ private IMesProductionProcessContextStepService productionProcessContextStepService;
+
+ @Autowired
+ private MesVariableWhenFinishedReadStepService mesVariableWhenFinishedReadStepService;
+
+ @Autowired
+ private MesMouldRecordGenerateStepService mesMouldRecordGenerateStepService;
+
+ @Autowired
+ private MesProductSnSaveStepService MesProductSnSaveStepService;
+
+ @Autowired
+ private MesProductionReocrdGenerateStepService mesProductionReocrdGenerateStepService;
+
+ @Autowired
+ private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService;
+
+ @Autowired
+ private MesProductResultErrorHandleStepService mesProductResultErrorHandleStepService;
+
+ @Autowired
+ private MesReportGenerateStepService mesReportGenerateStepService;
+
+ public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT";
+
+ private static final Map refMap = new ConcurrentHashMap<>(200);
+
+ @Override
+ public StepResult execute(StationRequestBean reqBean) {
+ StationResultBean resultBean = new StationResultBean();
+
+ StepResult stepResult = StepResult.getSuccessComplete();
+ */
+/**
+ * 获取上下文
+ *//*
+
+ MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue());
+ MesWorkCell mesWorkCell = productionProcessContext.getWorkCell();
+
+ List mesProduceSnContexts = mesProductionDispatchContextStepService.getProductionPsOutContext(reqBean);
+
+ List mesProductionRecords = new ArrayList<>();
+ mesProduceSnContexts.forEach(mesProductionPsOutContext -> {
+
+ MesProductionRecord mesProductionRecord = getMesProductionRecord(productionProcessContext, mesProductionPsOutContext, reqBean);
+ ConvertBean.serviceModelInitialize(mesProductionRecord, reqBean.getUserInfo());
+ mesProductionRecords.add(mesProductionRecord);
+ });
+
+ mesProductionRecordRepository.saveAll(mesProductionRecords);
+ if (Objects.equal(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),mesWorkCell.getIsCountFinish())) {
+ // 保存班次加工数量上下文
+ productionCustomContextStepService.addProductionStatisticsContext(reqBean,mesProduceSnContexts.size());
+ }
+
+ return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "生成加工记录成功");
+ }
+}
+*/
diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendCavityGroupParamsCmdStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendCavityGroupParamsCmdStepService.java
index de5fdc7..e30af40 100644
--- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendCavityGroupParamsCmdStepService.java
+++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendCavityGroupParamsCmdStepService.java
@@ -3,9 +3,8 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipVariableRwExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
-import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
-import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdRuleContext;
-import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
+import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.rulematch.strategy.AbstractWriteVariableService;
+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.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
@@ -22,6 +21,7 @@ import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.i3plus.pojo.mes.repository.MesCavityGroupDetailCfgRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentProdParamCfgRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentVariableRepository;
+import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -103,42 +103,26 @@ public class MesSendCavityGroupParamsCmdStepService extends BaseStepService {
DdlPreparedPack.getNumEqualPack(mesCavityGroupDetailCfg.getId(), "sourceId", ddlPackBean);
List mesEquipmentProdParamCfgs = mesEquipmentProdParamCfgRepository.findByHqlWhere(ddlPackBean);
for (MesEquipmentProdParamCfg mesEquipmentProdParamCfg : mesEquipmentProdParamCfgs) {//
+ String strategyClass = getStrateClass(mesEquipmentProdParamCfg.getMatchRule());
+ AbstractWriteVariableService equipVariableRwExtService = ((AbstractWriteVariableService) SpringContextsUtil.getBean(strategyClass));
+
DdlPackBean paramPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getNumEqualPack(mesEquipmentProdParamCfg.getEquipVariableId(), "id", paramPackBean);
MesEquipmentVariable mesEquipmentVariable = mesEquipmentVariableRepository.getByProperty(paramPackBean);
if (mesEquipmentVariable == null) {
continue;
}
- execSendEquipParamsCmd(reqBean, resultBean, stepParamMap, stepResult, cellEquipContext, mesEquipmentProdParamCfg.getMatchRule(), mesEquipmentVariable, cellEquipContext.getKepwareFlag(mesEquipmentVariable.getChannel()));
+ execSendEquipParamsCmd(equipVariableRwExtService, reqBean, mesEquipmentProdParamCfg.getMatchRule(), mesEquipmentVariable, cellEquipContext.getKepwareFlag(mesEquipmentVariable.getChannel()), null);
}
}
}
- private StepResult execSendEquipParamsCmd(StationRequestBean reqBean, StationResultBean resultBean, Optional