From 4524e9ef8679ec28e60a7d89af2fe0ca73fbfb3f Mon Sep 17 00:00:00 2001 From: Allenxy <13762749+chaosallen@user.noreply.gitee.com> Date: Sat, 1 Nov 2025 18:32:20 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E7=94=B5=E6=96=87=E4=BF=A1=E5=8F=B7?= =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comm/OPC/MessageSubscriptionRunner.java | 4 +--- .../constants/enums/L1OperateMatEnum.java | 10 ++++----- .../com/fizz/business/domain/ProMatmap.java | 3 +-- .../service/hanle/ExitCutHandler.java | 4 +++- .../service/hanle/ExitMeasureHandler.java | 10 +++++---- .../service/hanle/ExitMovementHandler.java | 13 ++++++++--- .../service/impl/CrmPdoExcoilServiceImpl.java | 3 +-- .../service/impl/PdoExCoilServiceImpl.java | 22 +++++++++---------- 8 files changed, 38 insertions(+), 31 deletions(-) diff --git a/business/src/main/java/com/fizz/business/comm/OPC/MessageSubscriptionRunner.java b/business/src/main/java/com/fizz/business/comm/OPC/MessageSubscriptionRunner.java index 3db5332..8571ee0 100644 --- a/business/src/main/java/com/fizz/business/comm/OPC/MessageSubscriptionRunner.java +++ b/business/src/main/java/com/fizz/business/comm/OPC/MessageSubscriptionRunner.java @@ -1,6 +1,5 @@ package com.fizz.business.comm.OPC; -import com.fizz.business.anno.MyLog; import com.fizz.business.constants.enums.ExitCutTypeEnum; import com.fizz.business.constants.enums.OpcMessageType; import com.fizz.business.domain.msg.*; @@ -10,7 +9,6 @@ import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.service.MiloService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; -import org.apache.commons.compress.utils.Lists; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -122,7 +120,7 @@ public class MessageSubscriptionRunner implements ApplicationRunner { { try { ExitMeasureMessage msg = new ExitMeasureMessage(); - writeMessage(msg,exitMoveIds); + writeMessage(msg,exitMeasureIds); log.info("接收出口称重信号:重量 {} ", msg.getWeight()); logDataService.logInfo("TRACK","接收出口称重信号:重量 {} ", msg.getWeight()); opcReceiverHandler.onMessageReceived(OpcMessageType.EXIT_MEASURE,msg); 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 de6f937..21c1ca2 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 @@ -12,7 +12,6 @@ import com.fizz.business.service.impl.BeanFactory; import com.fizz.business.utils.MatmapUtil; import com.fizz.business.utils.WebSocketUtil; import com.fizz.business.vo.CrmPdiPlanVO; -import com.fizz.business.vo.PdiPlanVO; import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import lombok.Getter; @@ -33,7 +32,7 @@ public enum L1OperateMatEnum implements IEnum, IOperateMat, IOperateMat, IOperateMat, IOperateMat { MatmapDTO trMatmap = MatmapUtil.getMatmap(TR.getIdx()); if (trMatmap == null) { - log.error("卷取机s."); + log.error("卷取机不存在"); return; } + log.info("接受到出口剪切信号:{}", JSONUtil.toJsonStr(message)); // 2. 根据剪切类型,生成产出卷信息 ExitCoilInfoDTO exitCoilInfo = pdoExCoilService.genExitCoilInfo(trMatmap, message.getCutType()); diff --git a/business/src/main/java/com/fizz/business/service/hanle/ExitMeasureHandler.java b/business/src/main/java/com/fizz/business/service/hanle/ExitMeasureHandler.java index 0177ec2..9a6416e 100644 --- a/business/src/main/java/com/fizz/business/service/hanle/ExitMeasureHandler.java +++ b/business/src/main/java/com/fizz/business/service/hanle/ExitMeasureHandler.java @@ -7,26 +7,28 @@ import com.fizz.business.service.CrmPdoExcoilService; import com.fizz.business.service.OpcMessageHandler; import com.fizz.business.utils.MatmapUtil; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import static com.fizz.business.constants.enums.DeviceEnum.TR; +import static com.fizz.business.constants.enums.DeviceEnum.WEIGHT; @Component @OpcMessageHandlerType(OpcMessageType.EXIT_MEASURE) @RequiredArgsConstructor +@Slf4j public class ExitMeasureHandler implements OpcMessageHandler { private final CrmPdoExcoilService crmPdoExcoilService; @Override public void handle(ExitMeasureMessage message) { - System.out.println("处理 EXIT_MEASURE 消息: " + message); // 1. 获取卷取机 (TR) 上的成品卷号 - String exitMatId = MatmapUtil.getMatId(TR.getIdx()); + log.info("获取到钢卷称重信息:{}.",message); + String exitMatId = MatmapUtil.getMatId(WEIGHT.getIdx()); if (exitMatId == null) { - System.err.println("TR device has no coil. Cannot process ExitMeasureMessage."); + log.error("TR device has no coil. Cannot process ExitMeasureMessage."); return; } diff --git a/business/src/main/java/com/fizz/business/service/hanle/ExitMovementHandler.java b/business/src/main/java/com/fizz/business/service/hanle/ExitMovementHandler.java index 157e587..3fb7882 100644 --- a/business/src/main/java/com/fizz/business/service/hanle/ExitMovementHandler.java +++ b/business/src/main/java/com/fizz/business/service/hanle/ExitMovementHandler.java @@ -6,23 +6,28 @@ import com.fizz.business.constants.enums.OpcMessageType; import com.fizz.business.domain.msg.ExitMovementMessage; import com.fizz.business.dto.MatmapDTO; import com.fizz.business.service.OpcMessageHandler; +import com.fizz.business.service.ProMatmapService; import com.fizz.business.utils.MatmapUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import javax.annotation.Resource; + @Component @Slf4j @OpcMessageHandlerType(OpcMessageType.EXIT_MOVEMENT) @RequiredArgsConstructor public class ExitMovementHandler implements OpcMessageHandler { + @Resource + ProMatmapService proMatmapService; + @Override public void handle(ExitMovementMessage message) { - System.out.printf("处理 EXIT_MOVEMENT 消息: %d -> %d%n", message.getExSrc(), message.getExDesc()); // 1. 获取源位置的物料信息 - int srcIndex = message.getExSrc() -1 ; + int srcIndex = message.getExSrc() ; MatmapDTO srcMatmap = MatmapUtil.getMatmap(srcIndex); if (ObjectUtil.isNull(srcMatmap) || ObjectUtil.isNull(srcMatmap.getMatId())) { @@ -36,9 +41,11 @@ public class ExitMovementHandler implements OpcMessageHandler queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("exit_coilid", excoilid); + queryWrapper.eq("exit_mat_id", excoilid); return this.getOne(queryWrapper); } diff --git a/business/src/main/java/com/fizz/business/service/impl/PdoExCoilServiceImpl.java b/business/src/main/java/com/fizz/business/service/impl/PdoExCoilServiceImpl.java index b045122..ffeaae9 100644 --- a/business/src/main/java/com/fizz/business/service/impl/PdoExCoilServiceImpl.java +++ b/business/src/main/java/com/fizz/business/service/impl/PdoExCoilServiceImpl.java @@ -2,9 +2,7 @@ package com.fizz.business.service.impl; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fizz.business.constants.enums.ExitCutTypeEnum; -import com.fizz.business.domain.PdoExcoil; import com.fizz.business.dto.ExitCoilInfoDTO; import com.fizz.business.dto.MatmapDTO; import com.fizz.business.dto.PdoExCoilDTO; @@ -89,8 +87,8 @@ public class PdoExCoilServiceImpl implements PdoExCoilService { pdoExCoilDTO.setEndTime(now); // 获取班组信息 - pdoExCoilDTO.setGroupNo("1"); - pdoExCoilDTO.setShiftNo("A"); + pdoExCoilDTO.setGroupNo("1"); + pdoExCoilDTO.setShiftNo("A"); pdoExCoilDTO.setStatus("UNWEIGHT"); log.info("save pdo exit coil:{}", JSONUtil.toJsonStr(pdoExCoilDTO)); @@ -104,23 +102,25 @@ public class PdoExCoilServiceImpl implements PdoExCoilService { /** * 通过计划的halfReturnType字段判断当前卷是回退的头部卷还是尾部卷 - * 1. 头部卷: entryMatId=A01 - * 2. 尾部卷: entryMatId=A01-2, returnMatId=A01。(由于计划号+钢卷号唯一,所以回退的尾部卷生成新计划时,将entryMatId设置为A01-2,真实的原料卷号保存在returnMatId中) + * 1. 头部卷: entryMatId=A01 + * 2. 尾部卷: entryMatId=A01-2, returnMatId=A01。(由于计划号+钢卷号唯一,所以回退的尾部卷生成新计划时,将entryMatId设置为A01-2,真实的原料卷号保存在returnMatId中) * 半卷回退上报产出 - * 1. 头部卷产出时,原料卷号:A01, 产出卷号: A01-1, 分卷标识: true, 尾卷标识: false - * 2. 尾部卷产出时:原料卷号:A01,产出卷号: A01-2 + * 1. 头部卷产出时,原料卷号:A01, 产出卷号: A01-1, 分卷标识: true, 尾卷标识: false + * 2. 尾部卷产出时:原料卷号:A01,产出卷号: A01-2 + * * @param trMatmap * @param cutType * @return ExitCoilInfoDTO */ @Override public ExitCoilInfoDTO genExitCoilInfo(MatmapDTO trMatmap, ExitCutTypeEnum cutType) { + log.info("触发出口分卷信号:{},剪切类型为:{}",trMatmap,cutType); String trCoilId = trMatmap.getMatId(); //准备的成品子卷号 //考虑依据数据库记录分卷,避免因为平台重启导致分卷丢失或错误 Long subNum = crmPdoExcoilService.getNumber(trCoilId - , trMatmap.getPlanNo(), - 0); + , trMatmap.getPlanNo(), + 0); CrmPdiPlanVO plan = crmPdiPlanService.getByCoilIdAndOperId(trMatmap.getMatId()); @@ -149,6 +149,6 @@ public class PdoExCoilServiceImpl implements PdoExCoilService { @Override public void deleteExistPdo(String coilId, String planId) { - crmPdoExcoilService.deleteCrmPdoExcoil(coilId,planId); + crmPdoExcoilService.deleteCrmPdoExcoil(coilId, planId); } }