From b5dfb0c9b4aa4415a7d82bbe20b65fc6cd69f8eb Mon Sep 17 00:00:00 2001 From: 86156 <823267011@qq.com> Date: Wed, 21 Jan 2026 19:28:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96+PRODUCING?= =?UTF-8?q?=E5=88=B0PRODUCT=E7=8A=B6=E6=80=81=E8=BD=AC=E5=8C=96=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/constants/enums/DeviceEnum.java | 6 +++--- .../constants/enums/L1OperateMatEnum.java | 4 ++-- .../business/service/hanle/ExitCutHandler.java | 11 +++++++---- .../service/impl/CrmPdiPlanServiceImpl.java | 16 +++++----------- .../service/manager/OpcMessageIdsManager.java | 3 ++- .../service/strip/SegmentTrackerService.java | 16 +++------------- .../com/fizz/business/utils/WebSocketUtil.java | 11 ++++++----- 7 files changed, 28 insertions(+), 39 deletions(-) diff --git a/business/src/main/java/com/fizz/business/constants/enums/DeviceEnum.java b/business/src/main/java/com/fizz/business/constants/enums/DeviceEnum.java index a15f807..e2e3e7f 100644 --- a/business/src/main/java/com/fizz/business/constants/enums/DeviceEnum.java +++ b/business/src/main/java/com/fizz/business/constants/enums/DeviceEnum.java @@ -14,12 +14,12 @@ import java.util.*; @Getter public enum DeviceEnum { // === Entry section / 入口段 === - POR1(0, "Uncoiler #1", 0.0, SectionType.ENTRY, SourceType.ENTRY, Arrays.asList("tensionPorBr1", "stripSpeed")), - POR2(1, "Uncoiler #2", 0.0, SectionType.ENTRY, SourceType.ENTRY, Arrays.asList("tensionPorBr2", "stripSpeed")), + POR1(0, "Uncoiler #1", 0.0, SectionType.ENTRY, SourceType.ENTRY, Arrays.asList("tensionPorBr1", "stripSpeed","bR4or5toBR6Tension")), + POR2(1, "Uncoiler #2", 0.0, SectionType.ENTRY, SourceType.ENTRY, Arrays.asList("tensionPorBr2", "stripSpeed","bR4or5toBR6Tension")), WELDER(2, "Welder", 4.98, SectionType.ENTRY, SourceType.ENTRY, Arrays.asList("weldStatus")), ENL1(3, "Entry Looper #1", 19.04, SectionType.PROCESS, SourceType.ENTRY, Arrays.asList("celLength", "celCapacity", "tensionCel")), ENL2(4, "Entry Looper #2", 167.09, SectionType.PROCESS, SourceType.ENTRY, Arrays.asList("celLength", "celCapacity", "tensionCel")), - ENL3(5, "Entry Looper #3", 198.19, SectionType.PROCESS, SourceType.ENTRY, Arrays.asList("celLength", "celCapacity", "tensionCel")), + ENL3(5, "Entry Looper #3", 198.19, SectionType.PROCESS, SourceType.ENTRY, Arrays.asList("celLength", "celCapacity", "tensionCel","bR4or5toBR6Tension")), // === Process section / 工艺段 === CLEAN(6, "Cleaning Section", 264.803, SectionType.PROCESS, SourceType.FURNACE, Arrays.asList("cleaningVoltage", "cleaningCurrent", "alkaliConcentration", "alkaliTemperature")), diff --git a/business/src/main/java/com/fizz/business/constants/enums/L1OperateMatEnum.java b/business/src/main/java/com/fizz/business/constants/enums/L1OperateMatEnum.java index 9a2cfc2..9776a45 100644 --- a/business/src/main/java/com/fizz/business/constants/enums/L1OperateMatEnum.java +++ b/business/src/main/java/com/fizz/business/constants/enums/L1OperateMatEnum.java @@ -80,11 +80,11 @@ public enum L1OperateMatEnum implements IEnum, IOperateMat status = Lists.newArrayList(PlanStatusEnum.PRODUCING.name(), PlanStatusEnum.PRODUCT.name()); +// ArrayList status = Lists.newArrayList(PlanStatusEnum.PRODUCING.name(), PlanStatusEnum.PRODUCT.name()); CrmPdiPlanService planClient = BeanFactory.getBean(CrmPdiPlanService.class); CrmPdiPlanVO plan = planClient.getByCoilIdAndOperId(form.getEntryMatId()); Assert.notNull(plan, "计划[{}]不存在", plan.getId()); - Assert.isTrue(status.contains(plan.getStatus()), "当前状态[{}]不支持甩尾", plan.getStatus()); +// Assert.isTrue(status.contains(plan.getStatus()), "当前状态[{}]不支持甩尾", plan.getStatus()); MatmapUtil.clearMatmap(form.getPorIdx()); WebSocketUtil.sendSignalMsg(form); WebSocketUtil.sendMatmapMsg(); diff --git a/business/src/main/java/com/fizz/business/service/hanle/ExitCutHandler.java b/business/src/main/java/com/fizz/business/service/hanle/ExitCutHandler.java index 8a4d290..8525432 100644 --- a/business/src/main/java/com/fizz/business/service/hanle/ExitCutHandler.java +++ b/business/src/main/java/com/fizz/business/service/hanle/ExitCutHandler.java @@ -9,6 +9,7 @@ import com.fizz.business.domain.msg.ExitCutMessage; import com.fizz.business.dto.ExitCoilInfoDTO; import com.fizz.business.dto.MatmapDTO; import com.fizz.business.form.L1OperateMatForm; +import com.fizz.business.service.LogDataService; import com.fizz.business.service.OpcMessageHandler; import com.fizz.business.service.PdoExCoilService; import com.fizz.business.service.TrackService; @@ -32,6 +33,7 @@ public class ExitCutHandler implements OpcMessageHandler { private final TrackService trackService; @Resource private OpcReceiverHandler opcReceiverHandler; + private final LogDataService logDataService; @Override public void handle(ExitCutMessage message) { // 1. 获取卷取机 (TR) 上的物料信息 @@ -54,16 +56,17 @@ public class ExitCutHandler implements OpcMessageHandler { pdoExCoilService.saveExCoil(exitCoilInfo); if (exitCoilInfo.isLastFlag()) { - + logDataService.logInfo("TRACK", "当前trMatmap的值为 -> matId={}, planId={}", trMatmap.getMatId(), trMatmap.getPlanId()); trackService.l1OperateMat(L1OperateMatForm.builder() .trIdx(TR.getIdx()) - .entryMatId(trMatmap.getMatId()) - .planId(trMatmap.getPlanId()) + .entryMatId(exitCoilInfo.getEntryMatId()) + .planId(exitCoilInfo.getPlanId()) .operation(L1OperateMatEnum.PRODUCT) .build()); + + logDataService.logInfo("EXIT_CUT", "成功处理 EXIT_CUT 消息,已保存成品卷 -> exitMatId={}, planId={}, entryMatId={}", exitCoilInfo.getExitMatId(), exitCoilInfo.getPlanId(), trMatmap.getMatId()); } - log.info("成功处理 EXIT_CUT 消息,已保存成品卷: " + exitCoilInfo.getExitMatId()); } } diff --git a/business/src/main/java/com/fizz/business/service/impl/CrmPdiPlanServiceImpl.java b/business/src/main/java/com/fizz/business/service/impl/CrmPdiPlanServiceImpl.java index 2f8e3a3..f633ef2 100644 --- a/business/src/main/java/com/fizz/business/service/impl/CrmPdiPlanServiceImpl.java +++ b/business/src/main/java/com/fizz/business/service/impl/CrmPdiPlanServiceImpl.java @@ -166,9 +166,8 @@ public class CrmPdiPlanServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); if (StrUtil.isBlank(build.getMatId())) { - if (logDataService != null) { - logDataService.logInfo("PLAN", "changeStatus matId为空, planId={}, operation={}", build.getId(), build.getOperation()); - } + + logDataService.logInfo("PLAN", "changeStatus matId为空, planId={}, operation={}", build.getId(), build.getOperation()); return false; } @@ -183,9 +182,7 @@ public class CrmPdiPlanServiceImpl extends ServiceImpl clients = trackWsHandler.getClients().getOrDefault(type.name(), Maps.newConcurrentMap()); TextMessage message = new TextMessage(text); clients.values().forEach(s -> { - try { - s.sendMessage(message); + synchronized (s) { + try { + s.sendMessage(message); // log.info("[websocket]向客户端[{}]推送消息:{}", type + "-" + s.getId(), text); - } catch (IOException e) { - log.error("[websocket]向客户端[{}]推送消息异常:{}", type + "-" + s.getId(), text); + } catch (IOException e) { + log.error("[websocket]向客户端[{}]推送消息异常:{}", type + "-" + s.getId(), text); + } } }); }