From 1a2b07f01ba4616fd9e894dddf474b56d020158c Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 07 四月 2025 15:18:51 +0800
Subject: [PATCH] 整理版本

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

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealIcRemainMoneyV2.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealIcRemainMoneyV2.java
new file mode 100644
index 0000000..72d5e4a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealIcRemainMoneyV2.java
@@ -0,0 +1,177 @@
+package com.dy.rtuMw.server.rtuData.p206V2;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V2.DataV2;
+import com.dy.common.mw.protocol.p206V2.upVos.DataCd83CloseVo;
+import com.dy.common.mw.protocol.p206V2.upVos.DataCd83OpenVo;
+import com.dy.common.mw.protocol.p206V2.upVos.DataCd84Vo;
+import com.dy.pipIrrGlobal.voSe.VoCardInfo1;
+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: 2024/8/7 17:05
+ * @Description 澶勭悊IC鍗″墿浣欓噾棰�
+ */
+public class TkDealIcRemainMoneyV2 extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealIcRemainMoneyV2.class.getName());
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealIcRemainMoneyV2";
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟: 鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲�
+     *
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Data d = (Data) data;
+        DataV2 dV2 = (DataV2) d.getSubData();//鍓嶉潰浠诲姟宸茬粡鍒ゆ柇涓嶄负null
+        Object cdObj = dV2.subData;
+        if (cdObj != null && (cdObj instanceof DataCd84Vo
+                || cdObj instanceof DataCd83OpenVo
+                || cdObj instanceof DataCd83CloseVo)){
+            Object[] objs = this.getTaskResults(TkPreGenObjsV2.taskId) ;
+            DbSv sv = (DbSv)objs[0] ;
+            try{
+                UpDataVo vo = new UpDataVo() ;
+                if(cdObj instanceof DataCd84Vo){
+                    vo.valueFrom( (DataCd84Vo)cdObj, null, null);
+                }else if(cdObj instanceof DataCd83OpenVo){
+                    vo.valueFrom(null,  (DataCd83OpenVo)cdObj,null);
+                }else if(cdObj instanceof DataCd83CloseVo){
+                    vo.valueFrom(null,null, (DataCd83CloseVo)cdObj);
+                }
+                this.doDeal(sv, dV2, vo);
+            }catch (Exception e){
+                log.error("淇濆瓨鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲忔暟鎹椂鍙戠敓寮傚父", e);
+            }
+        }
+    }
+
+    /**
+     * 涓氬姟澶勭悊
+     * @param sv             鏈嶅姟
+     * @param dV2        涓婃姤鏁版嵁
+     * @param dataVo         涓婃姤鏁版嵁瀵硅薄
+     */
+    private void doDeal(DbSv sv, DataV2 dV2, UpDataVo dataVo) throws Exception {
+        if(dataVo.icCardNo != null){
+            if(!dataVo.isVirIcCard){
+                //瀹炰綋鍗�
+                if(dataVo.remainMoney != null){
+                    VoCardInfo1 vo = sv.getIcCard(dataVo.icCardAddr, dataVo.icCardNo) ;
+                    if(vo != null && vo.id != null){
+                        if(vo.money != null){
+                            if(vo.money > dataVo.remainMoney){
+                                //鏈湴鐨勫墿浣欓噾棰� 澶т簬 RTU涓婃姤鐨勫墿浣欓噾棰�
+                                this.updateIcCardRemainMoney(sv, vo.id, dataVo.remainMoney);
+                            }else{
+                                //鏈湴鐨勫墿浣欓噾棰� 灏忎簬 RTU涓婃姤鐨勫墿浣欓噾棰濓紝璇存槑褰撳墠涓婃姤鍙兘鏄ˉ鎶ユ垨鍏朵粬鍘熷洜閫犳垚鐨勭幇璞�
+                                //涓嶅仛澶勭悊
+                            }
+                        }else{
+                            //杩欑鎯呭喌涓�鑸笉浼氬瓨鍦紝闄ら潪鏈変粈涔堣鎿嶄綔閫犳垚
+                            this.updateIcCardRemainMoney(sv, vo.id, dataVo.remainMoney);
+                        }
+                    }
+                }
+            }else{
+                //铏氭嫙鍗�
+                if(dataVo.remainMoney != null){
+                    VoCardInfo1 vo = sv.getVirIcCard(dataVo.icCardNo) ;
+                    if(vo != null && vo.id != null){
+                        if(vo.money != null){
+                            if(vo.money > dataVo.remainMoney){
+                                //鏈湴鐨勫墿浣欓噾棰� 澶т簬 RTU涓婃姤鐨勫墿浣欓噾棰�
+                                this.updateVirIcCardRemainMoney(sv, vo.id, dataVo.remainMoney);
+                            }else{
+                                //鏈湴鐨勫墿浣欓噾棰� 灏忎簬 RTU涓婃姤鐨勫墿浣欓噾棰濓紝璇存槑褰撳墠涓婃姤鍙兘鏄ˉ鎶ユ垨鍏朵粬鍘熷洜閫犳垚鐨勭幇璞�
+                                //涓嶅仛澶勭悊
+                            }
+                        }else{
+                            //杩欑鎯呭喌涓�鑸笉浼氬瓨鍦紝闄ら潪鏈変粈涔堣鎿嶄綔閫犳垚
+                            this.updateVirIcCardRemainMoney(sv, vo.id, dataVo.remainMoney);
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 鏇存柊瀹炰綋鍗″墿浣欓噾棰�
+     * @param id
+     * @param remainMoney
+     */
+    private void updateIcCardRemainMoney(DbSv sv, Long id , Double remainMoney){
+        sv.updateIcCardRemainMoney(id,remainMoney);
+    }
+
+    /**
+     * 鏇存柊铏氭嫙鍗″墿浣欓噾棰�
+     * @param id
+     * @param remainMoney
+     */
+    private void updateVirIcCardRemainMoney(DbSv sv, Long id , Double remainMoney){
+        sv.updateVirIcCardRemainMoney(id, remainMoney);
+    }
+
+
+    private class UpDataVo{
+        public Boolean isVirIcCard ;//鏄惁涓鸿櫄鎷熷崱
+        public String icCardAddr ;//鍗″湴鍧�
+        public String icCardNo ;//鍗$紪鍙�
+        public Double remainMoney ; //鍓╀綑閲戦
+
+        public void valueFrom(DataCd84Vo vo84, DataCd83OpenVo vo83Op, DataCd83CloseVo vo83Cl){
+            if(vo84 != null){
+                if(this.isAll0(vo84.cardAddr)){
+                    this.isVirIcCard = true ;
+                }else{
+                    this.isVirIcCard = false ;
+                }
+                this.icCardAddr = vo84.cardAddr ;
+                this.icCardNo = vo84.cardNo ;
+                this.remainMoney = vo84.remainMoney ;
+            }else if(vo83Op != null){
+                if(this.isAll0(vo83Op.icCardAddr)){
+                    this.isVirIcCard = true ;
+                }else{
+                    this.isVirIcCard = false ;
+                }
+                this.icCardAddr = vo83Op.icCardAddr ;
+                this.icCardNo = vo83Op.icCardNo ;
+                this.remainMoney = vo83Op.remainMoney ;
+            }else if(vo83Cl != null){
+                if(this.isAll0(vo83Cl.icCardAddr)){
+                    this.isVirIcCard = true ;
+                }else{
+                    this.isVirIcCard = false ;
+                }
+                this.icCardAddr = vo83Cl.icCardAddr ;
+                this.icCardNo = vo83Cl.icCardNo ;
+                this.remainMoney = vo83Cl.remainMoney ;
+            }
+        }
+
+        private boolean isAll0(String s){
+            if(s != null && !s.trim().equals("")){
+                s = s.replaceAll("0", "") ;
+                if(s.equals("")){
+                    return true ;
+                }else{
+                    return false ;
+                }
+            }
+            return false ;
+        }
+    }
+
+
+}

--
Gitblit v1.8.0