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