From d2fc819dc069c7b8d338ae52a90a7f38704fac08 Mon Sep 17 00:00:00 2001
From: zuoxiao <lf_zuo@163.com>
Date: 星期三, 25 六月 2025 19:52:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealWeatherSdV1.java |  105 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 105 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealWeatherSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealWeatherSdV1.java
new file mode 100644
index 0000000..ce5f281
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealWeatherSdV1.java
@@ -0,0 +1,105 @@
+package com.dy.rtuMw.server.rtuData.pSdV1;
+
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.WeatherVo;
+import com.dy.pipIrrGlobal.pojoPr.PrStWeather;
+import com.dy.pipIrrGlobal.pojoRm.RmWeatherHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmWeatherLast;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 11:37
+ * @Description
+ */
+public class TkDealWeatherSdV1 extends TaskSurpport {
+
+    private static Logger log = LogManager.getLogger(TkDealWeatherSdV1.class.getName());
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealWeatherSdV1";
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟
+     *
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        //鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌轰笖涓烘皵璞℃暟鎹�
+        MqttSubMsg msg = (MqttSubMsg) data;
+        WeatherVo stVo = (WeatherVo) msg.vo4Up;
+        Object[] objs = this.getTaskResults(TkPreGenObjs4WeatherSdV1.taskId);
+        DbSv sv = (DbSv) objs[0];
+        PrStWeather stPo = (PrStWeather) objs[1];
+        try{
+            this.doDeal(sv, stPo, msg, stVo);
+        }catch (Exception e){
+            log.error("淇濆瓨姘旇薄鏁版嵁鏃跺彂鐢熷紓甯�", e);
+        }
+    }
+
+    /**
+     * 澶勭悊涓婅娑堟伅鏁版嵁
+     * @param sv 鏈嶅姟
+     * @param stPo 瀹炰綋瀵硅薄
+     * @param msg 涓婅鐨勮闃呮秷鎭�
+     * @param stVo 涓婅鐨勮澶囨暟鎹�
+     */
+    private void doDeal(DbSv sv,
+                        PrStWeather stPo,
+                        MqttSubMsg msg,
+                        WeatherVo stVo) throws Exception {
+        RmWeatherHistory hpo = this.saveHistory(sv, stPo, msg, stVo);
+        this.saveOrUpdateLast(sv, stPo, msg, stVo, hpo);
+    }
+    /**
+     * 澶勭悊涓婅娑堟伅鏁版嵁
+     * @param sv 鏈嶅姟
+     * @param stPo 瀹炰綋瀵硅薄
+     * @param msg 涓婅鐨勮闃呮秷鎭�
+     * @param stVo 涓婅鐨勮澶囨暟鎹�
+     * @param hpo 鍘嗗彶璁板綍鏈�鏂版暟鎹�
+     */
+    private void saveOrUpdateLast(DbSv sv,
+                                  PrStWeather stPo,
+                                  MqttSubMsg msg,
+                                  WeatherVo stVo,
+                                  RmWeatherHistory hpo) throws Exception {
+        RmWeatherLast po = sv.getRmWeatherLast(stPo.id) ;
+        if(po == null){
+            po = new RmWeatherLast();
+            po.valueFrom(msg, stVo);
+            po.weatherId = stPo.id ;
+            po.lastHistoryId = hpo==null?null:hpo.id ;
+            sv.saveRmWeatherLast(po) ;
+        }else{
+            po.valueFrom(msg, stVo);
+            po.weatherId = stPo.id ;
+            po.lastHistoryId = hpo==null?null:hpo.id ;
+            sv.updateRmWeatherLast(po);
+        }
+    }
+
+    /**
+     * 澶勭悊涓婅娑堟伅鏁版嵁
+     * @param sv 鏈嶅姟
+     * @param stPo 瀹炰綋瀵硅薄
+     * @param msg 涓婅鐨勮闃呮秷鎭�
+     * @param stVo 涓婅鐨勮澶囨暟鎹�
+     */
+    private RmWeatherHistory saveHistory(DbSv sv,
+                                      PrStWeather stPo,
+                                      MqttSubMsg msg,
+                                      WeatherVo stVo) throws Exception {
+        RmWeatherHistory po = new RmWeatherHistory();
+        po.valueFrom(msg, stVo);
+        po.weatherId = stPo.id ;
+        sv.saveRmWeatherHistory(po);
+        return po ;
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.8.0