From 8655825afcbd4e588ccda50f8c5cd45aeb486841 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Mon, 23 Sep 2024 17:18:11 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=BC=B9=E6=A1=86=E5=B7=A5=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/apiservice/serviceimpl/step/MesCustomDialogStepService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f07d27b..3598424 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 @@ -80,7 +80,7 @@ public class MesCustomDialogStepService extends BaseStepService { if (!scdBean.getIsAsyn()) stepSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "弹框会话开启!"); //弹框业务异步处理 - return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, "弹框会话开启!"); + return stepDynamicsCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, true, MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT, "弹框会话开启!"); } From 99437630bf70e25306a09bb0a82727ae8cd7453b Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Mon, 23 Sep 2024 18:17:50 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=9D=9E=E6=8E=92=E5=BA=8F=E6=97=A0?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E8=A3=85=E9=85=8D=E4=BB=B6=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E5=B7=A5=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...esAssemblyMatchNosortRetrodictStepService.java} | 84 +++++++++++----------- 1 file changed, 41 insertions(+), 43 deletions(-) rename modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/{MesAssemblyGeneratePartNoStepService2.java => MesAssemblyMatchNosortRetrodictStepService.java} (83%) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService2.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java similarity index 83% rename from modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService2.java rename to modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java index 268fd54..c1da4ca 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService2.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java @@ -24,12 +24,12 @@ import java.util.*; import java.util.stream.Collectors; /** - * @Description : 生成零件号工步 【非排序】 + * @Description : 非排序无显示装配件匹配工步【倒推非排序产品加工规则】 * @Author : wangjie **/ @Slf4j -@Service("mesAssemblyGeneratePartNoStepService2") -public class MesAssemblyGeneratePartNoStepService2 extends BaseStepService { +@Service("mesAssemblyMatchNosortRetrodictStepService") +public class MesAssemblyMatchNosortRetrodictStepService extends BaseStepService { @Autowired private IFsmCommonService fsmCommonService; @@ -124,15 +124,19 @@ public class MesAssemblyGeneratePartNoStepService2 extends BaseStepService { //未知腔数配置【工位参数】, 不验证装配件条码的个数 String cavityUnknownCfg = getCavityUnknownCfg(reqBean); + //根据设备代码获取可复用条码的个数 + Integer repeatAssemblySnCount = productionCustomContextStepService.getRepeatAssemblySnCount(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), cellEquipContext.getEquipmentCode()); + Integer repeatAssemblySnAmount = repeatAssemblySnCount * (!CollectionUtils.isEmpty(curProductionPsInContextList) ? curProductionPsInContextList.size() : 1); //非未知腔数,验证装配件条码个数是否匹配 腔数或者未匹配的主条码个数*每腔个数 - if (StringUtils.isEmpty(cavityUnknownCfg) && equipVariableCollectContextList.size() != (!CollectionUtils.isEmpty(curProductionPsInContextList) ? curProductionPsInContextList.size() : cellEquipContext.getCavity()) * cellEquipContext.getBindQty()) { + if (StringUtils.isEmpty(cavityUnknownCfg) && (equipVariableCollectContextList.size() + repeatAssemblySnAmount) != (!CollectionUtils.isEmpty(curProductionPsInContextList) ? curProductionPsInContextList.size() : cellEquipContext.getCavity()) * cellEquipContext.getBindQty()) { + String suffix = repeatAssemblySnAmount == 0 ? MesPcnExtConstWords.EMPTY : String.format(",可复用个数[%s]", repeatAssemblySnAmount); if (!CollectionUtils.isEmpty(curProductionPsInContextList)) { productionDispatchContextStepService.dispatchProductionPsInContext(reqBean, productionPsInContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toList())); return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(assemblySn), stepResult.nextTriggerEvent(MesPcnExtConstWords.NEXT_TRIGGER_EVENT_PRODUCT_SN), - String.format("当前装配件条码个数[%s]不满足主条码个数[%s]每腔个数[%s]配置!", equipVariableCollectContextList.size(), curProductionPsInContextList.size(), cellEquipContext.getBindQty())); + String.format("当前装配件条码个数[%s]%s不满足主条码个数[%s]每腔个数[%s]配置!", equipVariableCollectContextList.size(), suffix, curProductionPsInContextList.size(), cellEquipContext.getBindQty())); } else { return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(assemblySn), stepResult.nextTriggerEvent(MesPcnExtConstWords.NEXT_TRIGGER_EVENT_ASSEMBLY), - String.format("当前装配件条码个数[%s]不满足腔数[%s]每腔个数[%s]配置!", equipVariableCollectContextList.size(), cellEquipContext.getCavity(), cellEquipContext.getBindQty())); + String.format("当前装配件条码个数[%s]%s不满足腔数[%s]每腔个数[%s]配置!", equipVariableCollectContextList.size(), suffix, cellEquipContext.getCavity(), cellEquipContext.getBindQty())); } } @@ -249,54 +253,48 @@ public class MesAssemblyGeneratePartNoStepService2 extends BaseStepService { if (null == productionAssemblyNosortContext) continue; - //非扫描模式 或者 扫描模式情况下非可复用件 - if (equipVariableCollectContextList.get(0).getMessageSource().compareTo(MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue()) != 0 || - StringUtils.isEmpty(productionAssemblyNosortContext.getIsRepeat()) || productionAssemblyNosortContext.getIsRepeat().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) != 0) { + for (MesEquipVariableCollectContext equipVariableCollectContext : equipVariableCollectContextListTemp) { - for (MesEquipVariableCollectContext equipVariableCollectContext : equipVariableCollectContextListTemp) { + //已被消费 + if (null == equipVariableCollectContext || equipVariableCollectContext.getIsConsume().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) continue; - //已被消费 - if (null == equipVariableCollectContext || equipVariableCollectContext.getIsConsume().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) continue; + //匹配规则 + Map result = numberRuleMatchDispatchService.matchNumberRule(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext); - //匹配规则 - Map result = numberRuleMatchDispatchService.matchNumberRule(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext); - - //匹配失败 - if (!(Boolean) result.get(MesPcnExtConstWords.RESULT)) { - String msg = (String) result.get(MesPcnExtConstWords.MESSAGE); - stepResult.obj(String.format("%s%s", StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj(), StringUtils.isEmpty(msg) ? MesPcnExtConstWords.EMPTY : msg)); - continue; - } + //匹配失败 + if (!(Boolean) result.get(MesPcnExtConstWords.RESULT)) { + String msg = (String) result.get(MesPcnExtConstWords.MESSAGE); + stepResult.obj(String.format("%s%s", StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj(), StringUtils.isEmpty(msg) ? MesPcnExtConstWords.EMPTY : msg)); + continue; + } - MesProductionAssemblyNosortContext filter = (MesProductionAssemblyNosortContext) result.get(MesPcnExtConstWords.DATA); + MesProductionAssemblyNosortContext filter = (MesProductionAssemblyNosortContext) result.get(MesPcnExtConstWords.DATA); - //前道防错 - if (!StringUtils.isEmpty(filter.getProductSnId()) && !StringUtils.isEmpty(productionAssemblyNosortContext.getPreCraftCode())) { - if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))) { - stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), - String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))); - continue; - } + //前道防错 + if (!StringUtils.isEmpty(filter.getProductSnId()) && !StringUtils.isEmpty(productionAssemblyNosortContext.getPreCraftCode())) { + if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))) { + stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), + String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))); + continue; } + } - //时效性验证 - if (!StringUtils.isEmpty(filter.getProductSnId())) { - result = timeEfficientCfgMatchService.checkSnTimeliness(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), filter.getSourceId(), MesExtEnumUtil.TIME_DATA_SOURCE.DATA_SOURCE30.getValue()); - if (!(Boolean)result.get(MesPcnExtConstWords.RESULT)) { - stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), result.get(MesPcnExtConstWords.MESSAGE))); - continue; - } + //时效性验证 + if (!StringUtils.isEmpty(filter.getProductSnId())) { + result = timeEfficientCfgMatchService.checkSnTimeliness(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), filter.getSourceId(), MesExtEnumUtil.TIME_DATA_SOURCE.DATA_SOURCE30.getValue()); + if (!(Boolean)result.get(MesPcnExtConstWords.RESULT)) { + stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), result.get(MesPcnExtConstWords.MESSAGE))); + continue; } + } - //装配件清单该数据标记已装配 - productionAssemblyNosortContext.assemblyStatus(equipVariableCollectContext.getEquipVariableValue()).productSnId(filter.getProductSnId()); - - //临时数据标记已消费 - equipVariableCollectContext.isConsume(); + //装配件清单该数据标记已装配 + productionAssemblyNosortContext.assemblyStatus(equipVariableCollectContext.getEquipVariableValue()).productSnId(filter.getProductSnId()); - break; + //临时数据标记已消费 + equipVariableCollectContext.isConsume(); - } + break; } From ce2dc13c8bc10f144ecbc5df357615950eb34062 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 24 Sep 2024 00:52:51 +0800 Subject: [PATCH 3/3] =?UTF-8?q?jdbc=E8=BF=9E=E6=8E=A5url=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?allowMultiQueries=3Dtrue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-6.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-6.properties b/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-6.properties index 34f607d..9396e9d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-6.properties +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-6.properties @@ -134,12 +134,12 @@ spring.sleuth.sampler.probability=1.0 # mysql impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.write.datasource.jdbc-url=jdbc:mysql://10.193.30.20:3306/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.write.datasource.jdbc-url=jdbc:mysql://10.193.30.20:3306/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowMultiQueries=true impp.write.datasource.username=root impp.write.datasource.password=(mfLEu7@9kmfdsTy impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.read.datasource.jdbc-url=jdbc:mysql://10.193.30.17:3306/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.read.datasource.jdbc-url=jdbc:mysql://10.193.30.17:3306/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowMultiQueries=true impp.read.datasource.username=root impp.read.datasource.password=(mfLEu7@9kmfdsTy #