lingpeng.li пре 3 недеља
родитељ
комит
50bb2ae7a5

+ 1 - 1
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/actualControl/billetActual/billetActual/utils/MqttClientUtil.java

@@ -63,7 +63,7 @@ public class MqttClientUtil implements ApplicationRunner {
         MqttTopic topic = mqttClient.getTopic(topicInfo);
         MqttMessage message = new MqttMessage();
         message.setPayload(JSON.toJSON(map).toString().getBytes());
-        message.setQos(0);
+        message.setQos(2);
         message.setRetained(true);
         if (null == topic) {
             log.error("topic is not exist");

+ 92 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/actualControl/billetActual/billetActual/utils/TopicType.java

@@ -0,0 +1,92 @@
+package org.jeecg.modules.actualControl.billetActual.billetActual.utils;
+
+/**
+ * 主题类型
+ */
+public enum TopicType {
+    /**
+     *  炉次实绩
+     */
+    TRACE_PERFORMANCE_CONVERTER_ADD("trace/performance/converter/add"),
+    /**
+     * 钢坯基础信息
+     */
+    TRACE_PERFORMANCE_BILLET_ADD("trace/performance/billet/add"),
+    /**
+     * 自动化钢坯装运单新增
+     */
+    SYN_STORAGE_BILL_ADD("syn/storageBill/add"),
+    /**
+     * 自动化新增 1、5号机 直轧棒1    2、 6号机 高线
+     */
+    SYN_BILLET_HOTSEND_BASE_SAVE("syn/billetHotsendBase/save"),
+    /**
+     * 自动化5、6号机轧钢外运去上若保存
+     */
+    SYN_BILLET_HOTSEND_BASE_SHIPP_SAVE("syn/billetHotsendBase/shipp/save"),
+    /**
+     * 自动化5、6号机轧钢外运去上若发车
+     */
+    SYN_BILLET_HOTSEND_BASE_SHIPP_DEPART("syn/billetHotsendBase/shipp/depart"),
+    /**
+     * 自动化新增堆垛
+     */
+    SYN_BILLET_ADD_STACKING("syn/billet/addStacking"),
+    /**
+     * 自动化堆垛装车保存
+     */
+    SYN_BILLET_STACKING_AND_LOADING_VEHICLES_LOADING("syn/billet/stackingAndLoadingVehicles/loading"),
+    /**
+     * 自动化堆垛装车发车
+     */
+    SYN_STACKING_AND_LOADING_VEHICLES_STACK_DEPART("syn/stackingAndLoadingVehicles/stackDepart"),
+
+    /**
+     * 组坯实绩信息
+     */
+    TRACE_BILLETASSEMBLYNUMBER_BILLET_ADD("trace/billet/billetAssemblyNumber/add"),
+
+    /**
+     * 车牌号更新
+     */
+    SYN_STORAGE_BILL_UPDATE("syn/storageBill/update"),
+    /**
+     * 5号机自动化交班
+     */
+    SYN_BILLET_CHANGESHIFT("syn/billet/changeShift"),
+    /**
+     * 6号机自动化交班
+     */
+    SYN_BILLET_SIX_CHANGESHIFT("syn/billet/changeSixShift"),
+
+    /**
+     * 堆垛位置清空
+     */
+    SYN_STACKING_CLEARLOCATION("syn/stacking/clearLocation"),
+    /**
+     * 坯号回传
+     */
+    SYN_STACKING_PASSBACK("syn/stacking/passback"),
+    /**
+     * 堆垛被占位置总数
+     */
+    SYN_STACK_PLACEHOLDERS("syn/stack/placeholders"),
+    /**
+     * 回传堆垛被占位置总数
+     */
+    SYN_PLACEHOLDER_PASSBACK("syn/placeholderSum/passback"),
+    /**
+     * 换炉传递参数
+     */
+    SYN_PUSHBILLETHOTSEND_NEXTSEND("syn/pushbillethotsend/nexthosend");
+
+    private String topicValue;
+
+    TopicType(String topicValue) {
+        this.topicValue = topicValue;
+    }
+
+    public String getTopicValue() {
+        return topicValue;
+    }
+}

+ 7 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetHotsend/controller/BilletHotsendBaseController.java

@@ -511,4 +511,11 @@ public class BilletHotsendBaseController extends JeecgController<BilletHotsend,
         return Result.OK("返回换炉消息成功!",furnaceChangeData);
     }
 
+    @ApiOperation(value = "换炉推送消息", notes = "换炉推送消息")
+    @PostMapping(value = "/furnaceChange")
+    public Result<?> furnaceChange(@RequestBody FurnaceChangeData data) {
+        billetHotsendBaseService.furnaceChange(data);
+        return Result.OK("换炉推送消息成功!");
+    }
+
 }

+ 1 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetHotsend/entity/FurnaceChangeData.java

@@ -5,6 +5,7 @@ import lombok.Data;
 @Data
 public class FurnaceChangeData {
 
+    private String id;
     private String ccmNo;        // 铸机号
     private String heatNo;       // 炉号
     private String netWeight;    // 钢水毛重

+ 2 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetHotsend/service/IBilletHotsendBaseService.java

@@ -35,4 +35,6 @@ public interface IBilletHotsendBaseService extends IService<BilletHotsend> {
     BilletHotsendTypeConfig getBilletHotsendTypeConfigByCcmNoAndTypeConfigId(String typeConfigId);
 
     FurnaceChangeData buildFurnaceChangeData(FurnaceChangeData data);
+
+    void furnaceChange(FurnaceChangeData data);
 }

+ 52 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetHotsend/service/impl/BilletHotsendBaseServiceImpl.java

@@ -12,6 +12,8 @@ import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.actualControl.billetActual.billetActual.entity.BilletBasicInfo;
 import org.jeecg.modules.actualControl.billetActual.billetActual.service.IBilletBasicInfoService;
+import org.jeecg.modules.actualControl.billetActual.billetActual.utils.MqttClientUtil;
+import org.jeecg.modules.actualControl.billetActual.billetActual.utils.TopicType;
 import org.jeecg.modules.actualControl.heatsActuals.entity.HeatsActuals;
 import org.jeecg.modules.actualControl.heatsActuals.service.IHeatsActualsService;
 import org.jeecg.modules.billet.billetHotsend.entity.*;
@@ -54,6 +56,7 @@ import org.jeecg.modules.billet.storageBill.entity.StorageBill;
 import org.jeecg.modules.billet.storageBill.service.IStorageBillService;
 import org.jeecg.modules.billet.storageCarLog.entity.StorageCarLog;
 import org.jeecg.modules.billet.storageCarLog.service.IStorageCarLogService;
+import org.jeecg.modules.connConfig.mapper.ConfigMqttMapper;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -124,6 +127,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 	private IBilletLiftingBillService billetLiftingBillService;
 	@Autowired
 	private IHeatsActualsService heatsActualsService;
+	@Autowired
+	private ConfigMqttMapper configMqttMapper;
 
 	@Override
 	@Transactional
@@ -725,6 +730,7 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 		finalData.setHeatNo(heatNo);
 
 		if (one != null) {
+			finalData.setId(one.getId());
 			finalData.setNetWeight(one.getMoltenSteelWeight() != null ? one.getMoltenSteelWeight().toString() : null);
 			finalData.setLadleNo(one.getLadleCode());
 			finalData.setGrade(one.getGrade());
@@ -732,6 +738,7 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 			finalData.setSpec(one.getSpec());
 			finalData.setCcmNo(one.getCasterCode());
 		} else {
+			finalData.setId("");
 			finalData.setNetWeight(data.getNetWeight());
 			finalData.setLadleNo(data.getLadleNo());
 			finalData.setGrade(data.getGrade());
@@ -743,6 +750,51 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 		return finalData;
 	}
 
+	@Override
+	public void furnaceChange(FurnaceChangeData data) {
+		String ccmNo = data.getCcmNo();   // 铸机号
+		String heatNo = data.getHeatNo(); // 炉号
+		String startPourTime = data.getStartPourTime(); // 开浇时间
+		if (oConvertUtils.isEmpty(ccmNo) || oConvertUtils.isEmpty(heatNo) || oConvertUtils.isEmpty(startPourTime)) {
+			throw new JeecgBootException("换炉失败:铸机号或炉号或开浇时间不能为空!");
+		}
+
+		// 构建最终要传递的对象
+		FurnaceChangeData finalData = new FurnaceChangeData();
+		finalData.setCcmNo(ccmNo);
+		finalData.setHeatNo(heatNo);
+		finalData.setStartPourTime(startPourTime);
+		finalData.setNetWeight(data.getNetWeight());
+		finalData.setLadleNo(data.getLadleNo());
+		finalData.setGrade(data.getGrade());
+		finalData.setSpec(data.getSpec());
+		finalData.setSendTime(formatDate(new Date()));
+
+		// 发送mqtt消息
+		sendFurnaceChangeToMqtt(finalData);
+	}
+
+	public void sendFurnaceChangeToMqtt(FurnaceChangeData data) {
+		try {
+			Map<String, Object> mapSendInfo = new HashMap<>();
+			mapSendInfo.put("netWeight", data.getNetWeight());
+			mapSendInfo.put("ladleNo", data.getLadleNo());
+			mapSendInfo.put("heatNo", data.getHeatNo());
+			mapSendInfo.put("grade", data.getGrade());
+			mapSendInfo.put("startPourTime", data.getStartPourTime());
+			mapSendInfo.put("spec", data.getSpec());
+			mapSendInfo.put("ccmNo", data.getCcmNo());
+			mapSendInfo.put("sendTime", data.getSendTime());
+
+			// 执行MQTT推送,设置合理的超时时间
+			MqttClientUtil mqttClientUtilBe = new MqttClientUtil();
+			mqttClientUtilBe.pushCData(configMqttMapper, mapSendInfo, TopicType.SYN_PUSHBILLETHOTSEND_NEXTSEND.getTopicValue());
+			log.info("B端传递换炉参数,发送MQTT成功: {}", mapSendInfo);
+		} catch (Exception e) {
+			log.error("B端传递换炉参数,发送MQTT异常!", e);
+		}
+	}
+
 	/**
 	 * 通过CcmNo查询结束根
 	 * @param ccmNo