Parcourir la source

接收流号定尺的推送消息

lingpeng.li il y a 2 semaines
Parent
commit
f5b6622b45

+ 9 - 0
zgzt-sys-java/jeecg-module-conn/src/main/java/org/jeecg/modules/billetActual/controller/BilletHotsendBaseController.java

@@ -58,4 +58,13 @@ public class BilletHotsendBaseController extends JeecgController<BilletHotsend,
         return Result.OK("换炉推送消息成功!");
     }
 
+    @ApiOperation(value = "流号定尺消息接收测试接口", notes = "流号定尺消息接收测试接口")
+    @PostMapping(value = "/receiveStrandNoSize")
+    public Result<?> receiveStrandNoSize(@RequestBody JSONObject jsonObject) {
+        billetHotsendBaseService.receiveStrandNoSize(jsonObject);
+        return Result.OK("换炉推送消息成功!");
+    }
+
+
+
 }

+ 2 - 0
zgzt-sys-java/jeecg-module-conn/src/main/java/org/jeecg/modules/billetActual/service/IBilletHotsendBaseService.java

@@ -20,4 +20,6 @@ public interface IBilletHotsendBaseService extends IService<BilletHotsend> {
     void autoDepartTrucking(JSONObject jsonObject);
 
     void furnaceChange(FurnaceChangeData data);
+
+    void receiveStrandNoSize(JSONObject jsonObject);
 }

+ 29 - 0
zgzt-sys-java/jeecg-module-conn/src/main/java/org/jeecg/modules/billetActual/service/impl/BilletHotsendBaseServiceImpl.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.billetActual.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -566,6 +567,34 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
         sendFurnaceChangeToMqtt(finalData);
     }
 
+	@Override
+	public void receiveStrandNoSize(JSONObject jsonObject) {
+
+		if (jsonObject == null) {
+			throw new JeecgBootException("参数不能为空!");
+		}
+
+		String ccmNo = jsonObject.getString("ccmNo");
+		if (oConvertUtils.isEmpty(ccmNo)) {
+			throw new JeecgBootException("铸机号不能为空!");
+		}
+
+		JSONArray strandNoSizeArray = jsonObject.getJSONArray("strandNoSizeList");
+		if (strandNoSizeArray == null || strandNoSizeArray.isEmpty()) {
+			throw new JeecgBootException("流号定尺集合不能为空!");
+		}
+
+		// 构造 Redis key
+		String redisKey = String.format("ccmno:length:stream:%s", ccmNo);
+
+		// 序列化成 JSON 字符串(保留原始格式存储)
+		String jsonValue = strandNoSizeArray.toJSONString();
+
+		// 存入 Redis
+		redisTemplate.opsForValue().set(redisKey, jsonValue);
+
+	}
+
     public void sendFurnaceChangeToMqtt(FurnaceChangeData data) {
         try {
             Map<String, Object> mapSendInfo = new HashMap<>();

+ 9 - 0
zgzt-sys-java/jeecg-module-conn/src/main/java/org/jeecg/modules/push/utils/MqttClientCallback.java

@@ -246,6 +246,15 @@ public class MqttClientCallback implements MqttCallback, MqttCallbackExtended{
                         log.info("{}{}", "mqtt处理6号机自动化交班消息出错: ", e.getMessage());
                     }
                     return;
+                case SYN_STRANDNO_SIZE_RECEIVE:
+                    try {
+                        JSONObject jsonObject = JSON.parseObject(payload);
+                        log.info("{}{}", "接收到流号定尺消息:", jsonObject);
+                        billetHotsendBaseService.receiveStrandNoSize(jsonObject);
+                    } catch (Exception e) {
+                        log.info("{}{}", "mqtt接收流号定尺消息出错: ", e.getMessage());
+                    }
+                    return;
                 case SYN_STACKING_CLEARLOCATION:
                     try {
                         JSONObject jsonObject = JSON.parseObject(payload);

+ 4 - 0
zgzt-sys-java/jeecg-module-conn/src/main/java/org/jeecg/modules/push/utils/TopicType.java

@@ -75,6 +75,10 @@ public enum TopicType {
      * 回传堆垛被占位置总数
      */
     SYN_PLACEHOLDER_PASSBACK("syn/placeholderSum/passback"),
+    /**
+     * 流号定尺参数
+     */
+    SYN_STRANDNO_SIZE_RECEIVE("syn/strandnosize/receive"),
     /**
      * 换炉传递参数
      */