From c42614978ff12013a1eabebd0289b27169a5784f Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 06 五月 2025 17:25:56 +0800
Subject: [PATCH] 1、实现万功能token(0000-0000-1234-9876-5); 2、web端单独实现命令结果等待器,并相应修改相关部分; 3、web端实现透传命令; 4、修改一些不当注释; 5、优化一些代码。

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

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkingReportV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkingReportV202404.java
new file mode 100644
index 0000000..185f239
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkingReportV202404.java
@@ -0,0 +1,134 @@
+package com.dy.rtuMw.server.rtuData.p206V202404;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast;
+import com.dy.pipIrrGlobal.pojoSe.SeClient;
+import com.dy.rtuMw.server.ServerProperties;
+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;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/6/14 9:19
+ * @Description 澶勭悊鎺у埗鍣ㄥ伐浣滄姤锛堝姛鑳界爜80锛�
+ */
+public class TkDealWorkingReportV202404 extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealWorkingReportV202404.class.getName());
+
+    private static final Map<String, Integer> RtuReportTimes = new HashMap<>();
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealWorkingReportV202404";
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟锛氭姤璀﹀強鐘舵��
+     *
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Data d = (Data)data ;
+        DataV202404 dV202404 = (DataV202404)d.getSubData() ;
+        Object cdObj = dV202404.subData ;
+        //鍓嶉潰浠诲姟宸茬粡鍒ゆ柇cdObj涓嶄负null
+        if (cdObj instanceof DataCd80_5BVo) {
+            boolean deal = false ;
+            Integer times = RtuReportTimes.get(d.rtuAddr) ;
+            if(times == null){
+                times = 1 ;
+                RtuReportTimes.put(d.rtuAddr, times) ;
+                deal = true ;//绗竴娆�
+            }else{
+                times++ ;
+                if(times > ServerProperties.workReportDealOneByTimes){
+                    times = 1 ;//寰幆绗竴娆�
+                    deal = true ;
+                }
+                RtuReportTimes.put(d.rtuAddr, times) ;
+            }
+            if(deal){
+                try {
+                    Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId);
+                    DbSv sv = (DbSv) objs[0];
+                    PrController controller = (PrController) objs[1];
+                    SeClient clientVo = (SeClient)objs[3] ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
+                    this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV202404, (DataCd80_5BVo)cdObj);
+                } catch (Exception e) {
+                    log.error("澶勭悊淇濆瓨鎺у埗鍣ㄥ伐浣滄姤鏁版嵁鏃跺彂鐢熷紓甯�", e);
+                }
+            }
+        }
+    }
+    /**
+     * 澶勭悊闃�寮�宸ヤ綔鎶ユ暟鎹�
+     * @param sv 鏈嶅姟
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void doDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd80_5BVo cdData) throws Exception {
+        this.saveOrUpdateLast(sv, clientVo, controller, rtuAddr, dataV202404, cdData);
+        this.saveHistory(sv, clientVo, controller, rtuAddr, dataV202404, cdData);
+    }
+
+    /**
+     * 淇濆瓨鎴栨洿鏂版帶鍒跺櫒宸ヤ綔鎶ユ渶鏂版暟鎹�
+     * @param sv 鏈嶅姟bean
+     * @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void saveOrUpdateLast(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd80_5BVo cdData)throws Exception {
+        RmWorkReportLast po = sv.getRmWorkReportLast(controller.getIntakeId()) ;
+        if(po == null){
+            po = new RmWorkReportLast();
+            po.clientId = clientVo==null?null:clientVo.getId() ;
+            po.clientName = clientVo==null?null:clientVo.getName() ;
+            po.controllerId = controller==null?null:controller.getId();
+            po.intakeId = controller==null?null:controller.getIntakeId();
+            po.rtuAddr = rtuAddr;
+            po.valueFrom(dataV202404, cdData);
+            sv.saveRmWorkReportLast(po) ;
+        }else{
+            po.clientId = clientVo==null?null:clientVo.getId() ;
+            po.clientName = clientVo==null?null:clientVo.getName() ;
+            po.controllerId = controller==null?null:controller.getId();
+            po.intakeId = controller==null?null:controller.getIntakeId();
+            po.valueFrom(dataV202404, cdData);
+            sv.updateRmWorkReportLast(po);
+        }
+    }
+
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ伐浣滄姤鍘嗗彶鏁版嵁
+     * @param sv 鏈嶅姟bean
+     * @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void saveHistory(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd80_5BVo cdData)throws Exception {
+        RmWorkReportHistory po = new RmWorkReportHistory();
+        po.clientId = clientVo==null?null:clientVo.getId() ;
+        po.clientName = clientVo==null?null:clientVo.getName() ;
+        po.controllerId = controller==null?null:controller.getId();
+        po.intakeId = controller==null?null:controller.getIntakeId();
+        po.rtuAddr = rtuAddr;
+        po.valueFrom(dataV202404, cdData);
+        sv.saveRmWorkReportHistory(po); ;
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0