From 4b99aedffe4e64425c059611dbb89d7d28b9ed06 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 07 五月 2025 15:28:04 +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/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