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