From bc352eb500297445631fb02351e0c64e09631a3d Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期四, 08 八月 2024 11:08:10 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

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

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIcRemainMoney.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIcRemainMoney.java
new file mode 100644
index 0000000..f15c4c8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIcRemainMoney.java
@@ -0,0 +1,167 @@
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83CloseVo;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo;
+import com.dy.common.mw.protocol.p206V1_0_0.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 TkDealIcRemainMoney  extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealIcRemainMoney.class.getName());
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealIcRemainMoney";
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟: 鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲�
+     *
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Data d = (Data) data;
+        DataV1_0_1 dV1_0_1 = (DataV1_0_1) d.getSubData();//鍓嶉潰浠诲姟宸茬粡鍒ゆ柇涓嶄负null
+        Object cdObj = dV1_0_1.subData;
+        if (cdObj != null && (cdObj instanceof DataCd84Vo
+                || cdObj instanceof DataCd83OpenVo
+                || cdObj instanceof DataCd83CloseVo)){
+            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+            DbSv sv = (DbSv)objs[0] ;
+            try{
+                TkDealIcRemainMoney.UpDataVo vo = new TkDealIcRemainMoney.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, dV1_0_1, vo);
+            }catch (Exception e){
+                log.error("淇濆瓨鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲忔暟鎹椂鍙戠敓寮傚父", e);
+            }
+        }
+    }
+
+    /**
+     * 涓氬姟澶勭悊
+     * @param sv             鏈嶅姟
+     * @param dV1_0_1        涓婃姤鏁版嵁
+     * @param dataVo         涓婃姤鏁版嵁瀵硅薄
+     */
+    private void doDeal(DbSv sv, DataV1_0_1 dV1_0_1, TkDealIcRemainMoney.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(this.isAll0(this.icCardAddr)){
+                this.isVirIcCard = true ;
+            }else{
+                this.isVirIcCard = false ;
+            }
+            if(vo84 != null){
+                this.icCardAddr = vo84.cardAddr ;
+                this.icCardNo = vo84.cardNo ;
+                this.remainMoney = vo84.remainMoney ;
+            }else if(vo83Op != null){
+                this.icCardAddr = vo83Op.icCardAddr ;
+                this.icCardNo = vo83Op.icCardNo ;
+                this.remainMoney = vo83Op.remainMoney ;
+            }else if(vo83Cl != null){
+                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