From 7797c3b20a9b41a831ec5f396e5cc916cf813edc Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 08 八月 2024 09:35:36 +0800
Subject: [PATCH] 1、通信中间件实现上行数据任务:更新物理卡和虚拟卡的剩余金额; 2、完善代码。
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml | 30 +++-
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIcRemainMoney.java | 157 ++++++++++++++++++++++++++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml | 3
pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml | 4
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 42 +++++-
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCardInfo1.java | 25 ++++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java | 16 ++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java | 14 ++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java | 68 ++++++++++-
9 files changed, 331 insertions(+), 28 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
index 0d4c581..1536693 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
@@ -4,6 +4,7 @@
import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
import com.dy.pipIrrGlobal.voSe.VoCardInfo;
+import com.dy.pipIrrGlobal.voSe.VoCardInfo1;
import com.dy.pipIrrGlobal.voSe.VoCards;
import com.dy.pipIrrGlobal.voSe.VoCards2;
import com.dy.pipIrrGlobal.voWe.VoCards3;
@@ -69,6 +70,14 @@
* @return
*/
Map getClientIdAndNameByCardAddrAndCardNo(@Param("cardAddr") String cardAddr, @Param("cardNum") Long cardNum);
+
+ /**
+ * 寰楀埌姘村崱瀵硅薄
+ * @param cardAddr
+ * @param cardNum
+ * @return
+ */
+ List<VoCardInfo1> getCardsByAddrAndNum(@Param("cardAddr") String cardAddr, @Param("cardNum") Long cardNum);
/**
* 鏍规嵁鍐滄埛涓婚敭鑾峰彇姘村崱鍒楄〃
@@ -166,4 +175,11 @@
* @return
*/
List<VoCards3> getCardsByClientID(String clientId);
+
+ /**
+ * 鏇存柊瀹炰綋鍗″墿浣欓噾棰�
+ * @param id
+ * @param money
+ */
+ void updateMoney(@Param("id")Long id , @Param("money")Double money);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java
index 5f456fc..7e4033b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard;
+import com.dy.pipIrrGlobal.voSe.VoCardInfo1;
import com.dy.pipIrrGlobal.voSe.VoVcRecharge;
import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
import org.apache.ibatis.annotations.Mapper;
@@ -66,6 +67,12 @@
*/
Map getClientIdAndNameByVsCardNo(@Param("vcNum") Long vcNum);
+ /**
+ * 寰楀埌姘村崱瀵硅薄
+ * @param cardNum
+ * @return
+ */
+ List<VoCardInfo1> getCardsByNum(@Param("cardNum") Long cardNum);
/**
* 鏍规嵁铏氭嫙鍗$紪鍙疯幏鍙栬櫄鎷熷崱ID
@@ -100,4 +107,11 @@
* @return
*/
Long getRechargeRecordCount(Map<?, ?> params);
+
+ /**
+ * 鏇存柊瀹炰綋鍗″墿浣欓噾棰�
+ * @param id
+ * @param money
+ */
+ void updateMoney(@Param("id")Long id , @Param("money")Double money);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCardInfo1.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCardInfo1.java
new file mode 100644
index 0000000..c94d8de
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCardInfo1.java
@@ -0,0 +1,25 @@
+package com.dy.pipIrrGlobal.voSe;
+
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023-12-27 19:22
+ * @LastEditTime 2023-12-27 19:22
+ * @Description
+ */
+
+@Data
+@Schema(title = "IC鍗¤鍥惧璞�1")
+public class VoCardInfo1 implements BaseEntity {
+ private static final long serialVersionUID = 202408071750001L;
+
+ @Schema(title = "涓婚敭")
+ public Long id ;
+
+ @Schema(title = "浣欓")
+ public Float money;
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml
index 4b4bcd7..f2a1069 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml
@@ -52,7 +52,7 @@
phone = #{phone,jdbcType=VARCHAR} and
</if>
<if test="area != null">
- area = ${area} and
+ area = #{area,jdbcType=INTEGER} and
</if>
</trim>
</select>
@@ -73,7 +73,7 @@
phone = #{phone,jdbcType=VARCHAR} and
</if>
<if test="area != null">
- area = ${area} and
+ area = #{area,jdbcType=INTEGER} and
</if>
</trim>
order by id DESC
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
index 71d1989..04879a7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -75,6 +75,16 @@
WHERE card.cardAddr = #{cardAddr} and card.cardNum = #{cardNum}
</select>
+
+ <!-- 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱 -->
+ <select id="getCardsByAddrAndNum" resultType="com.dy.pipIrrGlobal.voSe.VoCardInfo1">
+ SELECT
+ id,
+ money
+ FROM se_client_card
+ WHERE cardAddr = #{cardAddr} and cardNum = #{cardNum}
+ </select>
+
<!--鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈡按鍗$紪鍙�-->
<select id="getCardNumOfMax" resultType="java.lang.String">
SELECT cardNum
@@ -104,6 +114,9 @@
<!--@mbg.generated-->
insert into se_client_card
<trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
<if test="protocol != null">
protocol,
</if>
@@ -160,6 +173,9 @@
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
<if test="protocol != null">
#{protocol,jdbcType=VARCHAR},
</if>
@@ -280,8 +296,8 @@
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
<!--@mbg.generated-->
update se_client_card
- set protocol = #{protocol,jdbcType=VARCHAR}
- cardAddr = #{cardaddr,jdbcType=VARCHAR},
+ set protocol = #{protocol,jdbcType=VARCHAR},
+ cardAddr = #{cardaddr,jdbcType=VARCHAR},
cardNum = #{cardnum,jdbcType=BIGINT},
clientId = #{clientid,jdbcType=BIGINT},
money = #{money,jdbcType=FLOAT},
@@ -300,7 +316,11 @@
remarks = #{remarks,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
-
+ <update id="updateMoney" >
+ update se_client_card
+ set money = #{money,jdbcType=FLOAT}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
<!--鏍规嵁鍐滄埛涓婚敭鑾峰彇姘村崱鍒楄〃-->
<select id="getCardInfoByClientId" resultType="com.dy.pipIrrGlobal.voSe.VoCardInfo">
SELECT
@@ -308,22 +328,22 @@
'鐢ㄦ埛鍗�' AS cardType,
money,
(CASE
- WHEN state = 1 THEN "姝e父"
- WHEN state = 2 THEN "宸叉敞閿�"
- ELSE "宸叉寕澶�"
+ WHEN state = 1 THEN '姝e父'
+ WHEN state = 2 THEN '宸叉敞閿�'
+ ELSE '宸叉寕澶�'
END) AS state
FROM se_client_card
- WHERE clientId = ${clientId}
+ WHERE clientId = #{clientId,jdbcType=BIGINT}
</select>
<!--鏍规嵁姘村崱缂栧彿鑾峰彇鎿嶄綔璁板綍鍒楄〃-->
<select id="getOperateRecordsByCardNum" resultType="java.util.HashMap">
- SELECT * FROM v_operate WHERE cardNum = ${cardNum}
+ SELECT * FROM v_operate WHERE cardNum = #{cardNum,jdbcType=BIGINT}
</select>
<!--鏍规嵁姘村崱缂栧彿鑾峰彇浣欓-->
<select id="getMoneyByCardNum" resultType="java.lang.Float">
- SELECT money FROM se_client_card WHERE cardNum = ${cardNum}
+ SELECT money FROM se_client_card WHERE cardNum = #{cardNum,jdbcType=BIGINT}
</select>
<!--鏍规嵁姘村崱缂栧彿鑾峰彇鍏呭�兼�婚-->
@@ -332,7 +352,7 @@
SUM(his.amount) AS amount
FROM se_recharge_history his
INNER JOIN se_client_card card ON his.cardId = card.id
- WHERE card.cardNum = ${cardNum}
+ WHERE card.cardNum = #{cardNum,jdbcType=BIGINT}
</select>
<!--鏍规嵁姘村崱缂栧彿鑾峰彇鍗$墖鐘舵�侊細1-寮�鍗★紝2-琛ュ崱锛�3-鍏呭�硷紝4-鎸傚け锛�5-娉ㄩ攢锛�6-瑙i攣锛�7-鍐叉锛�8-娑堣垂-->
@@ -357,7 +377,7 @@
WHEN state = 3 THEN '宸叉寕澶�'
END) AS stateName
FROM se_client_card
- WHERE cardNum = ${cardNum}
+ WHERE cardNum = #{cardNum,jdbcType=BIGINT}
</select>
<!--鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃璁板綍鏁帮紝搴旂敤绋嬪簭浣跨敤-->
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
index cbe262b..895b2d3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
@@ -152,6 +152,11 @@
intake_id = null
where intake_id = #{intakeId,jdbcType=BIGINT}
</update>
+ <update id="updateMoney" >
+ update se_virtual_card
+ set money = #{money,jdbcType=FLOAT}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
<!--楠岃瘉鍐滄埛鏄惁鎷ユ湁鎸囧畾鍚嶇О鐨勮櫄鎷熷崱-->
<select id="getRecordCountByName" resultType="java.lang.Integer">
SELECT COUNT(*) AS recordCount
@@ -176,8 +181,8 @@
money,
in_use AS inUse,
(CASE
- WHEN in_use = 0 THEN "鏈娇鐢�"
- WHEN in_use = 1 THEN "浣跨敤涓�"
+ WHEN in_use = 0 THEN '鏈娇鐢�'
+ WHEN in_use = 1 THEN '浣跨敤涓�'
END) AS inUseName
FROM se_virtual_card
<where>
@@ -196,8 +201,8 @@
money,
in_use AS inUse,
(CASE
- WHEN in_use = 0 THEN "鏈娇鐢�"
- WHEN in_use = 1 THEN "浣跨敤涓�"
+ WHEN in_use = 0 THEN '鏈娇鐢�'
+ WHEN in_use = 1 THEN '浣跨敤涓�'
END) AS inUseName
FROM se_virtual_card
WHERE id = #{vcId}
@@ -225,6 +230,15 @@
WHERE card.vc_num = #{vcNum}
</select>
+ <!-- 鏍规嵁姘村崱缂栧彿鑾峰彇铏氭嫙姘村崱 -->
+ <select id="getCardsByNum" resultType="com.dy.pipIrrGlobal.voSe.VoCardInfo1">
+ SELECT
+ id,
+ money
+ FROM se_virtual_card
+ WHERE vc_num = #{cardNum}
+ </select>
+
<!--鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈣櫄鎷熷崱缂栧彿-->
<select id="getVcCardNumOfMax" resultType="java.lang.String">
SELECT vc_num
@@ -248,14 +262,14 @@
recharge_time AS rechargeTime,
order_state AS orderState,
(CASE
- WHEN order_state = 1 THEN "鏈敮浠�"
- WHEN order_state = 2 THEN "宸叉敮浠�"
+ WHEN order_state = 1 THEN '鏈敮浠�'
+ WHEN order_state = 2 THEN '宸叉敮浠�'
END) AS orderStateName
FROM se_vc_recharge
where order_state = 2
order by recharge_time DESC
- <if test="pageCurr != null and pageSize != null">
- LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
+ <if test="start != null and count != null">
+ LIMIT #{start}, #{count}
</if>
</select>
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
index 97bada3..8ff25aa 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
@@ -10,6 +10,8 @@
import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
import com.dy.pipIrrGlobal.pojoRm.*;
import com.dy.pipIrrGlobal.pojoSe.SeClient;
+import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
+import com.dy.pipIrrGlobal.voSe.VoCardInfo1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -27,9 +29,9 @@
@Service()
public class DbSv {
@Autowired
- private SeClientCardMapper seClientCardMapperDao;//鍐滄埛姘村崱DAO
+ private SeClientCardMapper seClientCardDao;//鍐滄埛姘村崱DAO
@Autowired
- private SeVirtualCardMapper seVirtualCardMapper;//鍐滄埛铏氭嫙姘村崱DAO
+ private SeVirtualCardMapper seVirtualCardDao ;//铏氭嫙鍗$浉鍏矰AO
@Autowired
private PrControllerTrampMapper prControllerTrampMapperDao;//娴佹氮鎺у埗鍣―AO
@Autowired
@@ -60,8 +62,6 @@
private RmLossDayMapper rmLossHistoryMapperDao ;//鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁″巻鍙叉暟鎹瓺AO
@Autowired
private RmCommandHistoryMapper rmCommandHistoryDao ;//杩滅▼鍛戒护鏃ュ織鐩稿叧
- @Autowired
- private SeVirtualCardMapper seVirtualCardDao ;//铏氭嫙鍗$浉鍏�
@Autowired
private RmTimingReportHistoryMapper rmTimingReportHistoryDao; // 瀹氱偣涓婃姤鍘嗗彶鏁版嵁DAO
@@ -72,6 +72,7 @@
private RmOnHourReportHistoryMapper rmOnHourReportHistoryDao; // 鏁寸偣涓婃姤鍘嗗彶鏁版嵁DAO
@Autowired
private RmOnHourReportLastMapper rmOnHourReportLastDao; // 鏁寸偣涓婃姤鏈�鏂版暟鎹瓺AO
+
//@Autowired
//@Lazy
@@ -93,7 +94,7 @@
SeClient vo = null ;
if(NumUtil.isPlusIntNumber(icCardNo)){
Long icCardNoLong = Long.parseLong(icCardNo) ;
- Map<String, Object> map = seClientCardMapperDao.getClientIdAndNameByCardAddrAndCardNo(icCardAddr, icCardNoLong) ;
+ Map<String, Object> map = seClientCardDao.getClientIdAndNameByCardAddrAndCardNo(icCardAddr, icCardNoLong) ;
if(map != null && map.size() > 0) {
vo = new SeClient() ;
vo.setId(Long.parseLong(map.get("clientId").toString()));
@@ -111,7 +112,7 @@
SeClient vo = null ;
if(NumUtil.isPlusIntNumber(icCardNo)){
Long icCardNoLong = Long.parseLong(icCardNo) ;
- Map<String, Object> map = seVirtualCardMapper.getClientIdAndNameByVsCardNo(icCardNoLong) ;
+ Map<String, Object> map = seVirtualCardDao.getClientIdAndNameByVsCardNo(icCardNoLong) ;
if(map != null && map.size() > 0) {
vo = new SeClient() ;
vo.setId(Long.parseLong(map.get("clientId").toString()));
@@ -634,6 +635,61 @@
//////////////////////////////////////////////////////
//
+ // IC鍗$浉鍏�
+ //
+ //////////////////////////////////////////////////////
+ /**
+ * 寰楀埌鍐滄埛鍗�
+ * @param cardAddr
+ * @param cardNo
+ * @return
+ */
+ public VoCardInfo1 getIcCard(String cardAddr, String cardNo){
+ if(NumUtil.isPlusIntNumber(cardNo)){
+ Long icCardNoLong = Long.parseLong(cardNo) ;
+ List<VoCardInfo1> list = seClientCardDao.getCardsByAddrAndNum(cardAddr, icCardNoLong) ;
+ if(list != null && list.size() > 0){
+ return list.get(0) ;
+ }
+ }
+ return null ;
+ }
+ /**
+ * 寰楀埌鍐滄埛铏氭嫙鍗�
+ * @param cardNo
+ * @return
+ */
+ public VoCardInfo1 getVirIcCard(String cardNo){
+ if(NumUtil.isPlusIntNumber(cardNo)){
+ Long icCardNoLong = Long.parseLong(cardNo) ;
+ List<VoCardInfo1> list = seVirtualCardDao.getCardsByNum(icCardNoLong) ;
+ if(list != null && list.size() > 0){
+ return list.get(0) ;
+ }
+ }
+ return null ;
+ }
+
+ /**
+ * 鏇存柊瀹炰綋鍗″墿浣欓噾棰�
+ * @param id
+ * @param remainMoney
+ */
+ public void updateIcCardRemainMoney(Long id , Double remainMoney){
+ seClientCardDao.updateMoney(id,remainMoney);
+ }
+
+ /**
+ * 鏇存柊铏氭嫙鍗″墿浣欓噾棰�
+ * @param id
+ * @param remainMoney
+ */
+ public void updateVirIcCardRemainMoney(Long id , Double remainMoney){
+ seVirtualCardDao.updateMoney(id,remainMoney);
+ }
+
+ //////////////////////////////////////////////////////
+ //
// 鍛戒护鏃ュ織鐩稿叧
//
//////////////////////////////////////////////////////
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..554ead7
--- /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,157 @@
+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){
+ this.updateIcCardRemainMoney(sv, vo.id, dataVo.remainMoney);
+ }
+ }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){
+ this.updateVirIcCardRemainMoney(sv, vo.id, dataVo.remainMoney);
+ }
+ }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 ;
+ }
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
index 55cd26e..c46cc46 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
@@ -22,7 +22,8 @@
<task id="TkDealCloseValveReport" name="鎺у埗鍣ㄥ叧闃�涓婃姤(鍔熻兘鐮�83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealCloseValveReport" />
<task id="TkDealLoss" name="鍙栨按鍙f棩婕忔崯閲�(鍔熻兘鐮丆0)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealLoss" />
<task id="TkDealIntakeAmountDay" name="鍙栨按鍙f棩鐢ㄦ按閲�(鍔熻兘鐮�84銆佸姛鑳界爜83銆佸姛鑳界爜C0)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealIntakeAmountDay" />
- <task id="TkDealClientAmountDay" name="鍐滄埛鏃ョ敤姘撮噺(鍔熻兘鐮�84銆佸姛鑳界爜83銆佸姛鑳界爜C0)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealClientAmountDay" />
+ <task id="TkDealClientAmountDay" name="鍐滄埛鏃ョ敤姘撮噺(鍔熻兘鐮�83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealClientAmountDay" />
+ <task id="TkDealIcRemainMoney" name="IC鍗″墿浣欓噾棰�(鍔熻兘鐮�84銆佸姛鑳界爜83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealIcRemainMoney" />
</task>
<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
<task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindComResponse">
--
Gitblit v1.8.0