From ea84f710b449f931562ce649ff44cab05c15d9e0 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 10 七月 2024 18:07:15 +0800
Subject: [PATCH] 1、实现用水户日用水量水费统计; 2、靳总IC卡结构中卡号(用户号)由10位改为17位,相应协议也变化。

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java                  |   16 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlParse.java              |   19 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Up.java                    |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java                      |   38 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java                  |   15 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Up.java                    |    6 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml                                 |  191 +++++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java            |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java                    |    6 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java                        |  100 +++-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmClientAmountDay.java                           |   94 +++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealClientAmountDay.java |  327 +++++++++++++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java                  |   14 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIntakeAmountDay.java |   66 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java                  |   65 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java            |    1 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultToRtu.java                               |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java                  |   15 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java  |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmClientAmountDayLast.java                       |  102 ++++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultFromRtu.java                             |    8 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml                                          |    3 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java                    |   12 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlCreate.java             |   20 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml                                     |  181 +++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayMapper.java                      |   74 +++
 26 files changed, 1,280 insertions(+), 105 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultFromRtu.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultFromRtu.java
index 62278cc..7116f14 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultFromRtu.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultFromRtu.java
@@ -1,9 +1,5 @@
 package com.dy.common.mw.protocol;
 
-import com.dy.common.mw.protocol.p206V1_0_0.*;
-import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd97Vo;
-import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd98Vo;
-
 /**
  * 浠嶳TU鏀跺埌鏁版嵁
  */
@@ -30,11 +26,12 @@
 		ProtocolUnit.getInstance().adapter.getSingleActionFromRtu(this.protocolName).doAction(this); 
 	}
 	
-	public void matchedCommand(String commandId, Object toRtuMidResultParam, String rtuResultSendWebUrl){
+	public void matchedCommand(String commandId, String rtuResultSendWebUrl){
 		this.commandId = commandId ;
 		if(this.data != null){
 			this.data.setCommandId(commandId);
 		}
+		/*
 		if(toRtuMidResultParam != null){
 			if(protocolName != null && protocolName.equals(ProtocolConstantV206V1_0_0.protocolName)){
 				if(upCode != null && upCode.equals(CodeV1_0_1.cd_97)){
@@ -60,6 +57,7 @@
 				}
 			}
 		}
+		 */
 		this.rtuResultSendWebUrl = rtuResultSendWebUrl ;
 		if(this.data != null){
 			this.data.setRtuResultSendWebUrl(rtuResultSendWebUrl);
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultToRtu.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultToRtu.java
index 45864bb..9ff83f4 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultToRtu.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultToRtu.java
@@ -24,7 +24,7 @@
 	public boolean isSendFirst;//浼樺厛鍏朵粬鍙戦�侊紝渚嬪鍚勫懡浠ょ殑搴旂瓟
 	public boolean isQuickSend;//閫熷彂鍛戒护锛屽嵆涓嶅彈涓嬪彂鏁版嵁鏃堕棿闂撮殧闄愬埗
 
-	public Object param ;//缂撳瓨涓�浜涙暟鎹紝渚嬪涓哄吋瀹圭帇宸ワ紙姹熸捣锛夊崗璁笌闈虫�诲崗璁紙铏氭嫙IC鍗$紪鍙烽暱搴︿笉涓�鑷达級锛屾妸涓嶅吋瀹圭殑铏氭嫙IC鍗$紪鍙风殑鍓嶅崐閮ㄥ垎鏀惧叆姝ゅ
+	//public Object param ;//缂撳瓨涓�浜涙暟鎹紝渚嬪涓哄吋瀹圭帇宸ワ紙姹熸捣锛夊崗璁笌闈虫�诲崗璁紙铏氭嫙IC鍗$紪鍙烽暱搴︿笉涓�鑷达級锛屾妸涓嶅吋瀹圭殑铏氭嫙IC鍗$紪鍙风殑鍓嶅崐閮ㄥ垎鏀惧叆姝ゅ
 
 	public MidResultToRtu(){
 		hasResponse = true ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java
index 0817c1b..3e347ff 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java
@@ -202,25 +202,25 @@
 		};
 	}
 
-	/**
-	 * 澶勭悊IC鍗$紪鍙凤紝闈虫�诲埗瀹氱殑鍗忚瑕佹眰10浣岻C鍗$紪鍙�
-	 * @param icCardNo
-	 * @return
-	 */
-	public static String[] dealIcCardNo(String icCardNo){
-		if(icCardNo.length() > 10){
-			String tail = icCardNo.substring(icCardNo.length() - 10) ;
-			String head = icCardNo.substring(0, icCardNo.length() - 10) ;
-			return new String[]{head , tail} ;
-		}else if(icCardNo.length() < 10){
-			while(icCardNo.length() != 10){
-				icCardNo = "0" + icCardNo ;
-			}
-			return new String[]{null , icCardNo} ;
-		}else{
-			return new String[]{null , icCardNo} ;
-		}
-	}
+//	/**
+//	 * 澶勭悊IC鍗$紪鍙凤紝闈虫�诲埗瀹氱殑鍗忚瑕佹眰10浣岻C鍗$紪鍙�
+//	 * @param icCardNo
+//	 * @return
+//	 */
+//	public static String[] dealIcCardNo(String icCardNo){
+//		if(icCardNo.length() > 10){
+//			String tail = icCardNo.substring(icCardNo.length() - 10) ;
+//			String head = icCardNo.substring(0, icCardNo.length() - 10) ;
+//			return new String[]{head , tail} ;
+//		}else if(icCardNo.length() < 10){
+//			while(icCardNo.length() != 10){
+//				icCardNo = "0" + icCardNo ;
+//			}
+//			return new String[]{null , icCardNo} ;
+//		}else{
+//			return new String[]{null , icCardNo} ;
+//		}
+//	}
 	
 	/*
 	 * 鍒嗘瀽鐗堟湰鍙�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java
index 2efc729..d51fa90 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java
@@ -105,10 +105,10 @@
         cdData.totalAmount = tpInt/100.0 ;
 
         index += 5 ;
-        //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�5瀛楄妭BCD鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛��
-        cdData.icCardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ;
+        //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�8瀛楄妭浣庝綅鍦ㄥ墠楂樹綅鍦ㄥ悗銆�
+        cdData.icCardNo = GlParse.parseIcCardNo(bs, index) ;
 
-        index += 5 ;
+        index += 8 ;
         //IC鍗″彿鏍煎紡锛�4瀛楄妭HEX鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛��
         cdData.icCardAddr = ByteUtil.bytes2Hex_LE(bs, false,  index, 4) ;
 
@@ -156,10 +156,10 @@
         cdData.totalAmount = tpInt/100.0 ;
 
         index += 5 ;
-        //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�5瀛楄妭BCD鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛��
-        cdData.icCardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ;
+        //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�8瀛楄妭浣庝綅鍦ㄥ墠楂樹綅鍦ㄥ悗銆�
+        cdData.icCardNo = GlParse.parseIcCardNo(bs, index) ;
 
-        index += 5 ;
+        index += 8 ;
         //IC鍗″彿鏍煎紡锛�4瀛楄妭HEX鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛��
         cdData.icCardAddr = ByteUtil.bytes2Hex_LE(bs, false,  index, 4) ;
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java
index 0deb3cb..877e0b8 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java
@@ -97,10 +97,10 @@
         cdData.cardAddr = ByteUtil.bytes2Hex_LE(bs, false,  index, 4) ;
 
         index += 4 ;
-        //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�5瀛楄妭BCD鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛��
-        cdData.cardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ;
+        //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�8瀛楄妭浣庝綅鍦ㄥ墠楂樹綅鍦ㄥ悗銆�
+        cdData.cardNo = GlParse.parseIcCardNo(bs, index) ;
 
-        index += 5 ;
+        index += 8 ;
         //鐢ㄦ按鎴蜂綑棰濓細鐢ㄦ埛浣欓4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏冦��
         int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ;
         cdData.remainMoney = tpInt/100.0 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java
index 33787cd..e981b9c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java
@@ -92,16 +92,17 @@
             throw new Exception("姘翠环涓嶈兘涓虹┖") ;
         }
 
-        String[] icCardNoGrp = CommonV1_0_1.dealIcCardNo(cvo.icCardNo) ;
-        if(icCardNoGrp[0] != null){
-            midRs.param = icCardNoGrp[0] ;
-        }
+        //String[] icCardNoGrp = CommonV1_0_1.dealIcCardNo(cvo.icCardNo) ;
+        //if(icCardNoGrp[0] != null){
+        //    midRs.param = icCardNoGrp[0] ;
+        //}
 
-        byte[] bs = new byte[11] ;
+        byte[] bs = new byte[14] ;
         index = 0 ;
-        ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ;
+        GlCreate.createIcCardNo(cvo.icCardNo, bs, index);
+        //ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ;
 
-        index += 5 ;
+        index += 8 ;
         Integer money = Double.valueOf(cvo.moneyRemain * 100.0D).intValue() ;
         byte[] bTemp = ByteUtil.int2BCD_LE(money) ;
         int bTempLen = bTemp.length ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Up.java
index 7e4f9ef..b3a9ece 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Up.java
@@ -2,6 +2,7 @@
 
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V1_0_0.*;
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlParse;
 import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd97Vo;
 import com.dy.common.util.ByteUtil;
 import org.apache.logging.log4j.LogManager;
@@ -62,8 +63,9 @@
         DataCd97Vo cdData = new DataCd97Vo() ;
         dV1.subData = cdData ;
         //铏氭嫙鍗″彿
-        cdData.cardNo = ByteUtil.BCD2String_LE(bs, ProtocolConstantV206V1_0_0.dataIndex, ProtocolConstantV206V1_0_0.dataIndex+4) ;
-        if(bs[ProtocolConstantV206V1_0_0.dataIndex + 5] == (byte)0xAA){
+        cdData.cardNo = GlParse.parseIcCardNo(bs, ProtocolConstantV206V1_0_0.dataIndex) ;
+
+        if(bs[ProtocolConstantV206V1_0_0.dataIndex + 8] == (byte)0xAA){
             cdData.success = true ;
         }else{
             cdData.success = false ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java
index ae52d59..cc54382 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java
@@ -86,12 +86,15 @@
             throw new Exception("铏氭嫙IC鍗$紪鍙蜂笉鑳戒负绌�") ;
         }
 
-        String[] icCardNoGrp = CommonV1_0_1.dealIcCardNo(cvo.icCardNo) ;
-        if(icCardNoGrp[0] != null){
-            midRs.param = icCardNoGrp[0] ;
-        }
-        byte[] bs = new byte[5] ;
-        ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], 0) ;
+        //String[] icCardNoGrp = CommonV1_0_1.dealIcCardNo(cvo.icCardNo) ;
+        //if(icCardNoGrp[0] != null){
+        //    midRs.param = icCardNoGrp[0] ;
+        //}
+        //byte[] bs = new byte[5] ;
+        //ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], 0) ;
+        byte[] bs = new byte[8] ;
+        GlCreate.createIcCardNo(cvo.icCardNo, bs, 0);
+
 
         bytes = ByteUtil.bytesMerge(bsHead, bs) ;
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Up.java
index 777f9b4..d3c28fe 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Up.java
@@ -2,6 +2,7 @@
 
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V1_0_0.*;
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlParse;
 import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd98Vo;
 import com.dy.common.util.ByteUtil;
 import org.apache.logging.log4j.LogManager;
@@ -62,8 +63,9 @@
         DataCd98Vo cdData = new DataCd98Vo() ;
         dV1.subData = cdData ;
         //铏氭嫙鍗″彿
-        cdData.cardNo = ByteUtil.BCD2String_LE(bs, ProtocolConstantV206V1_0_0.dataIndex, ProtocolConstantV206V1_0_0.dataIndex+4) ;
-        if(bs[ProtocolConstantV206V1_0_0.dataIndex + 5] == (byte)0xAA){
+        cdData.cardNo = GlParse.parseIcCardNo(bs, ProtocolConstantV206V1_0_0.dataIndex) ;
+
+        if(bs[ProtocolConstantV206V1_0_0.dataIndex + 8] == (byte)0xAA){
             cdData.success = true ;
         }else{
             cdData.success = false ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java
index d7ff9b7..f017296 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java
@@ -97,14 +97,16 @@
             throw new Exception("鐢ㄦ按鏃堕暱鍙栧�艰寖鍥存槸0~9999鍒嗛挓") ;
         }
 
-        String[] icCardNoGrp = CommonV1_0_1.dealIcCardNo(cvo.icCardNo) ;
-        if(icCardNoGrp[0] != null){
-            midRs.param = icCardNoGrp[0] ;
-        }
+        //String[] icCardNoGrp = CommonV1_0_1.dealIcCardNo(cvo.icCardNo) ;
+        //if(icCardNoGrp[0] != null){
+        //    midRs.param = icCardNoGrp[0] ;
+        //}
+        //byte[] bs = new byte[13] ;
+        //index = 0 ;
+        //ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ;
+        byte[] bs = new byte[8] ;
+        GlCreate.createIcCardNo(cvo.icCardNo, bs, 0);
 
-        byte[] bs = new byte[13] ;
-        index = 0 ;
-        ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ;
 
         index += 5 ;
         Integer money = Double.valueOf(cvo.moneyRemain * 100.0D).intValue() ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java
index 3c8baa4..29efc43 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java
@@ -97,14 +97,14 @@
             throw new Exception("棰勭敤姘撮噺鍙栧�艰寖鍥存槸0~9999m3") ;
         }
 
-        String[] icCardNoGrp = CommonV1_0_1.dealIcCardNo(cvo.icCardNo) ;
-        if(icCardNoGrp[0] != null){
-            midRs.param = icCardNoGrp[0] ;
-        }
-
-        byte[] bs = new byte[13] ;
+        //String[] icCardNoGrp = CommonV1_0_1.dealIcCardNo(cvo.icCardNo) ;
+        //if(icCardNoGrp[0] != null){
+        //    midRs.param = icCardNoGrp[0] ;
+        //}
+        byte[] bs = new byte[16] ;
         index = 0 ;
-        ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ;
+        //ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ;
+        GlCreate.createIcCardNo(cvo.icCardNo, bs, 0);
 
         index += 5 ;
         Integer money = Double.valueOf(cvo.moneyRemain * 100.0D).intValue() ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlCreate.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlCreate.java
index 7b0e72a..a47ac4c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlCreate.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlCreate.java
@@ -33,6 +33,26 @@
         bsNoTail[ProtocolConstantV206V1_0_0.dataLenIndex] = (byte)len ;
     }
 
+
+    /**
+     * 鐢熸垚IC鍗$紪鐮�
+     * 6瀛楄妭BCD鐮侊紙12浣嶈鏀垮尯鍒掞級 + 2瀛楄妭HEX
+     * @param icCardNo
+     * @param bs
+     * @param index
+     * @throws Exception
+     */
+    public static void createIcCardNo(String icCardNo, byte[] bs, int index) throws Exception {
+        String icCardNo1 = icCardNo.substring(0, 12) ;
+        String icCardNo2 = icCardNo.substring(12) ;
+
+        Integer icCardNo2Int = Integer.parseInt(icCardNo2) ;
+        ByteUtilUnsigned.short2Bytes_LE(bs, icCardNo2Int.shortValue(), index);
+
+        index += 2 ;
+        ByteUtil.string2BCD_LE(bs, icCardNo1, index) ;
+    }
+
     public static byte[] createCrcTail(byte[] bsNoTail) throws Exception {
         int crc = new CRC8_for_2_0().CRC8(bsNoTail, ProtocolConstantV206V1_0_0.ctrlIndex, bsNoTail.length -1) ;
         byte[] bytes = new byte[ProtocolConstantV206V1_0_0.lenTail] ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlParse.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlParse.java
index 6e5a7a9..028f991 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlParse.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlParse.java
@@ -3,6 +3,7 @@
 import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataAlarmVo;
 import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataStateVo;
 import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -39,6 +40,24 @@
         return avo ;
     }
 
+    /**
+     * 鍒嗘瀽IC鍗$紪鍙�
+     * @param bs 涓婅瀛楄妭鏁扮粍
+     * @param index 鍚浣�
+     * @return 鎺у埗鍣ㄥ湴鍧�
+     * @throws Exception 寮傚父
+     */
+    public static String parseIcCardNo(byte[] bs, int index)throws Exception{
+        String rtuAddrStr = "" + ByteUtilUnsigned.bytes2Short_LE(bs, index) ;
+        String rtuAddrBCD = "" + ByteUtil.BCD2Long_LE(bs, index + 2, index + 7) ;
+        while(rtuAddrStr.length() < 5){
+            rtuAddrStr = "0" + rtuAddrStr ;
+        }
+        return rtuAddrBCD + rtuAddrStr ;
+    }
+
+
+
     public static String parseTp(byte[] bs, short index){
         String dt = "" ;
         try{
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java
new file mode 100644
index 0000000..bafb46b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java
@@ -0,0 +1,65 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmClientAmountDayLast;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/9 14:33
+ * @Description
+ */
+@Mapper
+public interface RmClientAmountDayLastMapper extends BaseMapper<RmClientAmountDayLast> {
+    /**
+     * delete by primary key
+     *
+     * @param id primaryKey
+     * @return deleteCount
+     */
+    int deleteByPrimaryKey(Long id);
+
+    List<RmClientAmountDayLast> selectByClientId(Long clientId) ;
+
+    /**
+     * insert record to table
+     *
+     * @param record the record
+     * @return insert count
+     */
+    int insert(RmClientAmountDayLast record);
+
+    /**
+     * insert record to table selective
+     *
+     * @param record the record
+     * @return insert count
+     */
+    int insertSelective(RmClientAmountDayLast record);
+
+    /**
+     * select by primary key
+     *
+     * @param id primary key
+     * @return object by primary key
+     */
+    RmClientAmountDayLast selectByPrimaryKey(Long id);
+
+    /**
+     * update record selective
+     *
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKeySelective(RmClientAmountDayLast record);
+
+    /**
+     * update record
+     *
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKey(RmClientAmountDayLast record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayMapper.java
new file mode 100644
index 0000000..37d8992
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayMapper.java
@@ -0,0 +1,74 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmClientAmountDay;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/9 14:33
+ * @Description
+ */
+@Mapper
+public interface RmClientAmountDayMapper  extends BaseMapper<RmClientAmountDay> {
+    /**
+     * delete by primary key
+     *
+     * @param id primaryKey
+     * @return deleteCount
+     */
+    int deleteByPrimaryKey(Long id);
+
+    /**
+     * insert record to table
+     *
+     * @param record the record
+     * @return insert count
+     */
+    int insert(RmClientAmountDay record);
+
+    /**
+     * insert record to table selective
+     *
+     * @param record the record
+     * @return insert count
+     */
+    int insertSelective(RmClientAmountDay record);
+
+    /**
+     * select by primary key
+     *
+     * @param id primary key
+     * @return object by primary key
+     */
+    RmClientAmountDay selectByPrimaryKey(Long id);
+
+    /**
+     * select by primary key
+     *
+     * @param clientId clientId
+     * @param dt dt
+     * @return objects by ByClientAndDate
+     */
+    List<RmClientAmountDay> selectByClientAndDate(@Param("clientId")Long clientId, @Param("dt")Date dt) ;
+
+    /**
+     * update record selective
+     *
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKeySelective(RmClientAmountDay record);
+
+    /**
+     * update record
+     *
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKey(RmClientAmountDay record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmClientAmountDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmClientAmountDay.java
new file mode 100644
index 0000000..9f943eb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmClientAmountDay.java
@@ -0,0 +1,94 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/9 14:33
+ * @Description 鍐滄埛鏃ョ敤姘撮噺缁熻
+ */
+
+@TableName(value="rm_client_amount_day", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鍐滄埛鏃ョ敤姘撮噺缁熻")
+public class RmClientAmountDay implements BaseEntity {
+
+    public static final long serialVersionUID = 2024007091435002L;
+    /**
+     * 涓婚敭
+     */
+    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    public Long id;
+
+    /**
+     * 鍐滄埛id
+     */
+    public Long clientId;
+
+    /**
+     * 鏃ュ彇姘撮噺
+     */
+    public Double amount;
+
+    /**
+     * 鏃ュ彇鑺辫垂閲戦
+     */
+    public Double money;
+
+    /**
+     * 缁熻鏃ユ湡(yyyy-mm-dd)
+     */
+    @Schema(description = "缁熻鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    public Date dt;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″紑闃�鏃ユ湡鏃堕棿锛坹yyy-mm-dd HH:MM:SS锛�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date openDtLast;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″叧闃�鏃ユ湡鏃堕棿锛坹yyy-mm-dd HH:MM:SS锛�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date closeDtLast;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″紑闃�鍙栨按閲�
+     */
+    public Double thisAmountLast;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″紑闃�鑺辫垂閲戦
+     */
+    public Double thisMoneyLast;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″紑闃�鍙栨按鏃堕暱锛堝垎閽燂級
+     */
+    public Integer thisTimeLast;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″叧闃�涓婃姤鎺у埗鍣ㄦ椂閽�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date rtuDtLast;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmClientAmountDayLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmClientAmountDayLast.java
new file mode 100644
index 0000000..23fb4d2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmClientAmountDayLast.java
@@ -0,0 +1,102 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/9 14:33
+ * @Description 鍐滄埛鏃ョ敤姘撮噺缁熻
+ */
+
+@TableName(value="rm_client_amount_day_last", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鍐滄埛鏃ョ敤姘撮噺缁熻")
+public class RmClientAmountDayLast implements BaseEntity {
+
+    public static final long serialVersionUID = 2024007091435001L;
+    /**
+     * 涓婚敭
+     */
+    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    public Long id;
+
+    /**
+     * 鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+     * json涓嶅簭鍒楀寲姝ゅ睘鎬э紝鍗充笉鍚戝墠绔〉闈㈠彂閫佸強鏄剧ず
+     */
+    @Schema(hidden=true)
+    @JSONField(serialize = false)
+    public Long lastHistoryId;
+
+    /**
+     * 鍐滄埛id
+     */
+    public Long clientId;
+
+    /**
+     * 鏃ュ彇姘撮噺
+     */
+    public Double amount;
+
+    /**
+     * 鏃ュ彇鑺辫垂閲戦
+     */
+    public Double money;
+
+    /**
+     * 缁熻鏃ユ湡(yyyy-mm-dd)
+     */
+    @Schema(description = "缁熻鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    public Date dt;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″紑闃�鏃ユ湡鏃堕棿锛坹yyy-mm-dd HH:MM:SS锛�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date openDtLast;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″叧闃�鏃ユ湡鏃堕棿锛坹yyy-mm-dd HH:MM:SS锛�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date closeDtLast;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″紑闃�鍙栨按閲�
+     */
+    public Double thisAmountLast;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″紑闃�鑺辫垂閲戦
+     */
+    public Double thisMoneyLast;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″紑闃�鍙栨按鏃堕暱锛堝垎閽燂級
+     */
+    public Integer thisTimeLast;
+
+    /**
+     * 缁熻鏃ユ渶鍚庝竴娆″叧闃�涓婃姤鎺у埗鍣ㄦ椂閽�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date rtuDtLast;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml
new file mode 100644
index 0000000..c7f20a2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmClientAmountDayLastMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmClientAmountDayLast">
+    <!--@mbg.generated-->
+    <!--@Table rm_client_amount_day_last-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="last_history_id" jdbcType="BIGINT" property="lastHistoryId" />
+    <result column="client_id" jdbcType="BIGINT" property="clientId" />
+    <result column="amount" jdbcType="FLOAT" property="amount" />
+    <result column="money" jdbcType="FLOAT" property="money" />
+    <result column="dt" jdbcType="DATE" property="dt" />
+    <result column="open_dt_last" jdbcType="TIMESTAMP" property="openDtLast" />
+    <result column="close_dt_last" jdbcType="TIMESTAMP" property="closeDtLast" />
+    <result column="this_amount_last" jdbcType="FLOAT" property="thisAmountLast" />
+    <result column="this_money_last" jdbcType="FLOAT" property="thisMoneyLast" />
+    <result column="this_time_last" jdbcType="INTEGER" property="thisTimeLast" />
+    <result column="rtu_dt_last" jdbcType="TIMESTAMP" property="rtuDtLast" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, last_history_id, client_id, amount, money, dt, open_dt_last, close_dt_last, this_amount_last,
+    this_money_last, this_time_last, rtu_dt_last
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_client_amount_day_last
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <select id="selectByClientId" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from rm_client_amount_day_last
+    where client_id = #{ClientId,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_client_amount_day_last
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmClientAmountDayLast">
+    <!--@mbg.generated-->
+    insert into rm_client_amount_day_last (id, last_history_id, client_id, 
+      amount, money, dt, open_dt_last,
+      close_dt_last, this_amount_last, this_money_last,
+      this_time_last, rtu_dt_last)
+    values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT},
+    #{amount,jdbcType=FLOAT}, #{money,jdbcType=FLOAT}, #{dt,jdbcType=DATE}, #{openDtLast,jdbcType=TIMESTAMP},
+      #{closeDtLast,jdbcType=TIMESTAMP}, #{thisAmountLast,jdbcType=FLOAT}, #{thisMoneyLast,jdbcType=FLOAT},
+      #{thisTimeLast,jdbcType=INTEGER}, #{rtuDtLast,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmClientAmountDayLast">
+    <!--@mbg.generated-->
+    insert into rm_client_amount_day_last
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="lastHistoryId != null">
+        last_history_id,
+      </if>
+      <if test="clientId != null">
+        client_id,
+      </if>
+      <if test="amount != null">
+        amount,
+      </if>
+      <if test="money != null">
+        money,
+      </if>
+      <if test="dt != null">
+        dt,
+      </if>
+      <if test="openDtLast != null">
+        open_dt_last,
+      </if>
+      <if test="closeDtLast != null">
+        close_dt_last,
+      </if>
+      <if test="thisAmountLast != null">
+        this_amount_last,
+      </if>
+      <if test="thisMoneyLast != null">
+        this_money_last,
+      </if>
+      <if test="thisTimeLast != null">
+        this_time_last,
+      </if>
+      <if test="rtuDtLast != null">
+        rtu_dt_last,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="lastHistoryId != null">
+        #{lastHistoryId,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="amount != null">
+        #{amount,jdbcType=FLOAT},
+      </if>
+      <if test="money != null">
+        #{money,jdbcType=FLOAT},
+      </if>
+      <if test="dt != null">
+        #{dt,jdbcType=DATE},
+      </if>
+      <if test="openDtLast != null">
+        #{openDtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="closeDtLast != null">
+        #{closeDtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="thisAmountLast != null">
+        #{thisAmountLast,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoneyLast != null">
+        #{thisMoneyLast,jdbcType=FLOAT},
+      </if>
+      <if test="thisTimeLast != null">
+        #{thisTimeLast,jdbcType=INTEGER},
+      </if>
+      <if test="rtuDtLast != null">
+        #{rtuDtLast,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmClientAmountDayLast">
+    <!--@mbg.generated-->
+    update rm_client_amount_day_last
+    <set>
+      <if test="lastHistoryId != null">
+        last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        client_id = #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="amount != null">
+        amount = #{amount,jdbcType=FLOAT},
+      </if>
+      <if test="money != null">
+        money = #{money,jdbcType=FLOAT},
+      </if>
+      <if test="dt != null">
+        dt = #{dt,jdbcType=DATE},
+      </if>
+      <if test="openDtLast != null">
+        open_dt_last = #{openDtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="closeDtLast != null">
+        close_dt_last = #{closeDtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="thisAmountLast != null">
+        this_amount_last = #{thisAmountLast,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoneyLast != null">
+        this_money_last = #{thisMoneyLast,jdbcType=FLOAT},
+      </if>
+      <if test="thisTimeLast != null">
+        this_time_last = #{thisTimeLast,jdbcType=INTEGER},
+      </if>
+      <if test="rtuDtLast != null">
+        rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmClientAmountDayLast">
+    <!--@mbg.generated-->
+    update rm_client_amount_day_last
+    set last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+      client_id = #{clientId,jdbcType=BIGINT},
+      amount = #{amount,jdbcType=FLOAT},
+      money = #{money,jdbcType=FLOAT},
+      dt = #{dt,jdbcType=DATE},
+      open_dt_last = #{openDtLast,jdbcType=TIMESTAMP},
+      close_dt_last = #{closeDtLast,jdbcType=TIMESTAMP},
+      this_amount_last = #{thisAmountLast,jdbcType=FLOAT},
+      this_money_last = #{thisMoneyLast,jdbcType=FLOAT},
+      this_time_last = #{thisTimeLast,jdbcType=INTEGER},
+      rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml
new file mode 100644
index 0000000..cbd5d43
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmClientAmountDayMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmClientAmountDay">
+    <!--@mbg.generated-->
+    <!--@Table rm_client_amount_day-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="client_id" jdbcType="BIGINT" property="clientId" />
+    <result column="amount" jdbcType="FLOAT" property="amount" />
+    <result column="money" jdbcType="FLOAT" property="money" />
+    <result column="dt" jdbcType="DATE" property="dt" />
+    <result column="open_dt_last" jdbcType="TIMESTAMP" property="openDtLast" />
+    <result column="close_dt_last" jdbcType="TIMESTAMP" property="closeDtLast" />
+    <result column="this_amount_last" jdbcType="FLOAT" property="thisAmountLast" />
+    <result column="this_money_last" jdbcType="FLOAT" property="thisMoneyLast" />
+    <result column="this_time_last" jdbcType="INTEGER" property="thisTimeLast" />
+    <result column="rtu_dt_last" jdbcType="TIMESTAMP" property="rtuDtLast" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, client_id, amount, money, dt, open_dt_last, close_dt_last, this_amount_last, this_money_last,
+    this_time_last, rtu_dt_last
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_client_amount_day
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+
+  <select id="selectByClientAndDate" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from rm_client_amount_day
+    where client_id = #{clientId,jdbcType=BIGINT} and dt = #{dt,jdbcType=DATE}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_client_amount_day
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmClientAmountDay">
+    <!--@mbg.generated-->
+    insert into rm_client_amount_day (id, client_id, amount, money,
+      dt, open_dt_last, close_dt_last, 
+      this_amount_last, this_money_last, this_time_last,
+      rtu_dt_last)
+    values (#{id,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, #{amount,jdbcType=FLOAT}, #{money,jdbcType=FLOAT},
+      #{dt,jdbcType=DATE}, #{openDtLast,jdbcType=TIMESTAMP}, #{closeDtLast,jdbcType=TIMESTAMP}, 
+      #{thisAmountLast,jdbcType=FLOAT}, #{thisMoneyLast,jdbcType=FLOAT}, #{thisTimeLast,jdbcType=INTEGER},
+      #{rtuDtLast,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmClientAmountDay">
+    <!--@mbg.generated-->
+    insert into rm_client_amount_day
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="clientId != null">
+        client_id,
+      </if>
+      <if test="amount != null">
+        amount,
+      </if>
+      <if test="money != null">
+        money,
+      </if>
+      <if test="dt != null">
+        dt,
+      </if>
+      <if test="openDtLast != null">
+        open_dt_last,
+      </if>
+      <if test="closeDtLast != null">
+        close_dt_last,
+      </if>
+      <if test="thisAmountLast != null">
+        this_amount_last,
+      </if>
+      <if test="thisMoneyLast != null">
+        this_money_last,
+      </if>
+      <if test="thisTimeLast != null">
+        this_time_last,
+      </if>
+      <if test="rtuDtLast != null">
+        rtu_dt_last,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="amount != null">
+        #{amount,jdbcType=FLOAT},
+      </if>
+      <if test="money != null">
+        #{money,jdbcType=FLOAT},
+      </if>
+      <if test="dt != null">
+        #{dt,jdbcType=DATE},
+      </if>
+      <if test="openDtLast != null">
+        #{openDtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="closeDtLast != null">
+        #{closeDtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="thisAmountLast != null">
+        #{thisAmountLast,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoneyLast != null">
+        #{thisMoneyLast,jdbcType=FLOAT},
+      </if>
+      <if test="thisTimeLast != null">
+        #{thisTimeLast,jdbcType=INTEGER},
+      </if>
+      <if test="rtuDtLast != null">
+        #{rtuDtLast,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmClientAmountDay">
+    <!--@mbg.generated-->
+    update rm_client_amount_day
+    <set>
+      <if test="clientId != null">
+        client_id = #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="amount != null">
+        amount = #{amount,jdbcType=FLOAT},
+      </if>
+      <if test="money != null">
+        money = #{money,jdbcType=FLOAT},
+      </if>
+      <if test="dt != null">
+        dt = #{dt,jdbcType=DATE},
+      </if>
+      <if test="openDtLast != null">
+        open_dt_last = #{openDtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="closeDtLast != null">
+        close_dt_last = #{closeDtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="thisAmountLast != null">
+        this_amount_last = #{thisAmountLast,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoneyLast != null">
+        this_money_last = #{thisMoneyLast,jdbcType=FLOAT},
+      </if>
+      <if test="thisTimeLast != null">
+        this_time_last = #{thisTimeLast,jdbcType=INTEGER},
+      </if>
+      <if test="rtuDtLast != null">
+        rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmClientAmountDay">
+    <!--@mbg.generated-->
+    update rm_client_amount_day
+    set client_id = #{clientId,jdbcType=BIGINT},
+      amount = #{amount,jdbcType=FLOAT},
+      money = #{money,jdbcType=FLOAT},
+      dt = #{dt,jdbcType=DATE},
+      open_dt_last = #{openDtLast,jdbcType=TIMESTAMP},
+      close_dt_last = #{closeDtLast,jdbcType=TIMESTAMP},
+      this_amount_last = #{thisAmountLast,jdbcType=FLOAT},
+      this_money_last = #{thisMoneyLast,jdbcType=FLOAT},
+      this_time_last = #{thisTimeLast,jdbcType=INTEGER},
+      rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
index ff772d0..95a86a8 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
@@ -30,7 +30,7 @@
 				MidResultToRtu resToRtu = TcpDownCommandCache.matchFromHead(resFromRtu) ;
 				if(resToRtu != null){
 					//鍖归厤鍒颁笅鍙戠殑鍛戒护
-					resFromRtu.matchedCommand(resToRtu.commandId, resToRtu.param, resToRtu.rtuResultSendWebUrl) ;
+					resFromRtu.matchedCommand(resToRtu.commandId, resToRtu.rtuResultSendWebUrl) ;
 					this.nextDealRtuData(false, resFromRtu);
 					this.nextDealRtuComResult(resFromRtu);
 				}else{
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 a83efff..847d2b8 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
@@ -50,9 +50,13 @@
     @Autowired
     private RmWorkReportHistoryMapper rmWorkReportHistoryMapperDao ;//鎺у埗鍣ㄥ巻鍙插伐浣滄姤鏁版嵁DAO
     @Autowired
-    private RmIntakeAmountDayLastMapper rmIntakeAmountDayLastMapperDao ;//鍙栨按鍙e彇姘村拰婕忔崯缁熻鏈�鏂版暟鎹瓺AO
+    private RmIntakeAmountDayLastMapper rmIntakeAmountDayLastMapperDao ;//鍙栨按鍙e彇姘寸粺璁℃渶鏂版暟鎹瓺AO
     @Autowired
     private RmIntakeAmountDayMapper rmIntakeAmountDayMapperDao ;//鍙栨按鍙e彇姘村拰婕忔崯缁熻DAO
+    @Autowired
+    private RmClientAmountDayLastMapper rmClientAmountDayLastMapperDao ;//鍐滄埛鏃ョ敤姘撮噺缁熻鏈�鏂版暟鎹瓺AO
+    @Autowired
+    private RmClientAmountDayMapper rmClientAmountDayMapperDao ;//鍐滄埛鏃ョ敤姘撮噺缁熻鏁版嵁DAO
     @Autowired
     private RmLossLastMapper rmLossLastMapperDao ;//鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂版暟鎹瓺AO
     @Autowired
@@ -417,7 +421,7 @@
     //
     ////////////////////////////////////////////////
     /**
-     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * 寰楀埌鏈�鏂拌褰�
      * @param intakeId
      * @return
      */
@@ -429,7 +433,7 @@
         return null ;
     }
     /**
-     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * 淇濆瓨鏈�鏂拌褰�
      * @param po
      */
     @Transactional(rollbackFor = Exception.class)
@@ -437,7 +441,7 @@
         this.rmIntakeAmountDayLastMapperDao.insert(po) ;
     }
   /**
-     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * 淇濆瓨璁板綍
      * @param po
      */
     @Transactional(rollbackFor = Exception.class)
@@ -445,15 +449,15 @@
         this.rmIntakeAmountDayMapperDao.insert(po) ;
     }
     /**
-     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * 淇濆瓨鏈�鏂拌褰�
      * @param po
      */
     @Transactional(rollbackFor = Exception.class)
-    public void updateRmIntakeAmountLast(RmIntakeAmountDay po){
-        this.rmIntakeAmountDayMapperDao.updateByPrimaryKey(po) ;
+    public void updateRmIntakeAmountLast(RmIntakeAmountDayLast po){
+        this.rmIntakeAmountDayLastMapperDao.updateByPrimaryKey(po) ;
     }
     /**
-     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * 淇濆瓨鍘嗗彶璁板綍
      * @param po
      */
     @Transactional(rollbackFor = Exception.class)
@@ -462,7 +466,7 @@
     }
 
     /**
-     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁″巻鍙茶褰曚腑鐨勬渶鏂拌褰�
+     * 寰楀埌绗﹀悎鏉′欢鐨勫巻鍙茶褰�
      * @param id
      * @return
      */
@@ -470,32 +474,80 @@
         return rmIntakeAmountDayMapperDao.selectByPrimaryKey(id) ;
     }
 
+    /////////////////////////////////////////////////
+    //
+    // 鍐滄埛鏃ョ敤姘撮噺鍙婅姳璐圭粺璁″姛鑳�
+    //
+    ////////////////////////////////////////////////
+    /**
+     * 寰楀埌鏈�鏂拌褰�
+     * @param clientId
+     * @return
+     */
+    public RmClientAmountDayLast getRmClientAmountLast(Long clientId){
+        List<RmClientAmountDayLast> list = rmClientAmountDayLastMapperDao.selectByClientId(clientId) ;
+        if(list != null && list.size() > 0){
+            return list.get(0) ;
+        }
+        return null ;
+    }
+    /**
+     * 淇濆瓨鏈�鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmClientAmountLast(RmClientAmountDayLast po){
+        this.rmClientAmountDayLastMapperDao.insert(po) ;
+    }
+    /**
+     * 淇濆瓨璁板綍
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmClientAmountDay(RmClientAmountDay po){
+        this.rmClientAmountDayMapperDao.insert(po) ;
+    }
+    /**
+     * 鏇存柊鏈�鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmClientAmountLast(RmClientAmountDayLast po){
+        this.rmClientAmountDayLastMapperDao.updateByPrimaryKey(po) ;
+    }
+    /**
+     * 鏇存柊璁板綍
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmClientAmountDay(RmClientAmountDay po){
+        this.rmClientAmountDayMapperDao.updateByPrimaryKey(po) ;
+    }
 
     /**
-     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * 寰楀埌绗﹀悎鏉′欢鐨勫巻鍙茶褰�
+     * @param id
+     * @return
+     */
+    public RmClientAmountDay getRmClientAmountDay(Long id){
+        return rmClientAmountDayMapperDao.selectByPrimaryKey(id) ;
+    }
+
+
+    /**
+     * 寰楀埌绗﹀悎鏉′欢鐨勫巻鍙茶褰�
+     * @param clientId
      * @param dt
      * @return
      */
-    public RmIntakeAmountDay getRmIntakeAmountLastByDate(Date dt){
-        List<RmIntakeAmountDay> list = rmIntakeAmountDayMapperDao.selectByDate(dt) ;
+    public RmClientAmountDay getRmClientAmountByClientAndDate(Long clientId, Date dt){
+        List<RmClientAmountDay> list = rmClientAmountDayMapperDao.selectByClientAndDate(clientId, dt) ;
         if(list != null && list.size() > 0){
             return list.get(0) ;
         }
         return null ;
     }
 
-    /**
-     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁″巻鍙茶褰曚腑鐨勬煇鏃ヨ褰�
-     * @param dt
-     * @return
-     */
-    public RmIntakeAmountDay getRmIntakeAmountDayByDate(Date dt){
-        List<RmIntakeAmountDay> list = rmIntakeAmountDayMapperDao.selectByDate(dt) ;
-        if(list != null && list.size() > 0){
-            return list.get(0) ;
-        }
-        return null ;
-    }
 
     /////////////////////////////////////////////////
     //
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealClientAmountDay.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealClientAmountDay.java
new file mode 100644
index 0000000..5c1abe9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealClientAmountDay.java
@@ -0,0 +1,327 @@
+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.common.mw.protocol.p206V1_0_0.upVos.DataCdC0Vo;
+import com.dy.common.util.DateTime;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmClientAmountDay;
+import com.dy.pipIrrGlobal.pojoRm.RmClientAmountDayLast;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDayLast;
+import com.dy.pipIrrGlobal.pojoSe.SeClient;
+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;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/9 10:00
+ * @Description 鍐滄埛鏃ョ敤姘撮噺缁熻
+ */
+public class TkDealClientAmountDay  extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealClientAmountDay.class.getName());
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealClientAmountDay";
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟: 鍙栨按鍙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 DataCd83CloseVo) {
+            /*
+            鍙兘閲囩敤DataCd83CloseVo鏉ヨ绠楀啘鎴锋棩鐢ㄦ按閲忕殑鍘熷洜锛�
+            1銆佸鏋滈噰鐢―ataCd84Vo鏉ヨ绠楀啘鎴锋棩鐢ㄦ按閲忥紝蹇呴』閲囩敤鏈绱娴侀噺鍑忎笂娆$疮娴侀噺鐨勫樊鍊间綔涓洪樁娈靛啘鎴风敤姘撮噺锛�
+               鐒跺悗鍚勪釜闃舵鐩稿姞锛屽緱鍒版湰娆″啘鎴风敤姘撮噺锛岃繖涓敤姘撮噺杩樻病鍔犲埌鍐滄埛鏃ョ敤姘撮噺涓紝鍥犱负鍙湁鏀朵笉鍒癉ataCd83CloseVo
+               涓婃姤鏁版嵁鏃舵墠鑳藉姞鍒板啘鎴风敤姘撮噺涓紝鍚﹀垯灏变細閲嶅璁$畻锛屼絾浠�涔堟椂鍊欏強鑳藉惁鏀跺埌DataCd83CloseVo涓嶅彲棰勭煡銆�
+            2銆佸鏋滃啘鎴锋湁澶氬紶IC鍗★紝鍚屾椂鍦ㄥ涓彇姘村彛鍙栨按锛屽皢浼氭槸鏇村鏉傜殑璁$畻锛岃澶氭儏褰㈡洿涓嶅彲棰勬祴锛屼笖鏃堕棿澶嶆潅搴�
+               蹇呯劧寰堥珮锛岃繖鏍风▼搴忚繍琛屾椂闂存洿闀匡紝灏嗕細閫犳垚涓婅鏁版嵁鍫靛鐜拌薄銆�
+            3銆佹墍浠ュ彧閲囩敤涓婃姤鏁版嵁DataCd83CloseVo浣滀负璁$畻鍐滄埛鐢ㄦ按閲忕殑鏁版嵁鏉ユ簮锛岃繖鏃跺繀鐒朵細鏈夋紡鎶ョ己澶辨儏鍐靛彂鐢燂紝閲囩敤琛ユ姤鏈哄埗鍙互寮ヨˉ涓�浜涖��
+             */
+            /*
+             琛ユ姤DataCd83CloseVo澶勭悊鏂规硶锛�
+             閲囩敤DataCd83CloseVo鏁版嵁涓殑鍏抽榾鏃堕棿closeDt璁$畻鍑哄啘鎴风敤姘存棩鏈燂紝涓嶈兘鐢ㄦ暟鎹帴鏀舵棩鏈熸椂闂翠綔涓哄啘鎴风敤姘存棩鏈燂紝
+             浣嗚繖绉嶈绠楁柟娉曞彲鑳戒細鏈夐噸澶嶄笂鎶ユ儏鍐靛彂鐢燂紝鍗抽噸澶嶈绠椾簡锛屽鏋滆鍒ゆ柇閲嶅锛屽繀鐒惰澧炲姞涓�涓叧闃�鏃堕棿鏁版嵁搴撹〃锛屽鍔犳椂闂�
+             澶嶆潅搴︼紝璁$畻鐢ㄦ椂灏嗕細闀匡紝鏈郴缁熷亣璁惧彧瑕丷TU涓婃姤涓婃潵鏁版嵁浜嗭紝璇存槑褰撳墠缃戠粶杈冨ソ锛屽繀鐒惰兘鏀跺埌涓嬭搴旂瓟锛屼笉浼氬彂琛岄噸澶嶈ˉ鎶ャ��
+             */
+            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId);
+            DbSv sv = (DbSv) objs[0];
+            PrController controller = (PrController) objs[1];
+            SeClient clientVo = (SeClient)objs[3] ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
+            if(clientVo != null && clientVo.getId() != null)
+            try {
+                this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1_0_1, (DataCd83CloseVo) cdObj);
+            } catch (Exception e) {
+                log.error("淇濆瓨鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲忔暟鎹椂鍙戠敓寮傚父", e);
+            }
+        }
+    }
+
+    /**
+     * 涓氬姟澶勭悊
+     *
+     * @param sv         鏈嶅姟
+     * @param clientVo   鍐滄埛瀵硅薄
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr    鎺у埗鍣ㄥ湴鍧�
+     * @param dV1_0_1    涓婃姤鏁版嵁
+     * @param cdData     涓婃姤鍏抽榾鏁版嵁瀵硅薄
+     */
+    private void doDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo cdData) throws Exception {
+        RmClientAmountDayLast poLast = sv.getRmClientAmountLast(clientVo.getId());
+        if (poLast == null) {
+            //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鍐滄埛鐨勬棩鍙栨按閲忔暟鎹�
+            //棣栧厛鐢熸垚鏈�鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛�
+            poLast = this.newRmClientAmountLast(clientVo, dV1_0_1, cdData);
+            this.newAndSaveHistoryDataDeal(sv, clientVo, dV1_0_1, cdData, poLast);
+            sv.saveRmClientAmountLast(poLast);
+        } else {
+            if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt).equals(poLast.rtuDtLast)){
+                //RTU鏃堕挓绛変簬鏈湴鏈�鏂版暟鎹腑鐨凴TU鏃堕挓锛岄噸澶嶄笂鎶ユ暟鎹紝涓嶈繘琛屼换浣曞鐞�
+            }else if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt).after(poLast.rtuDtLast)){
+                //RTU鏃堕挓鏅氫簬鏈湴鏈�鏂版暟鎹腑鐨凴TU鏃堕挓锛屾槸鏂颁笂鎶ユ暟鎹�
+                Date upYmd = DateTime.dateFrom_yyyy_MM_dd1(cdData.closeDt);//閲囩敤鍏抽榾鏃ユ湡浣滀负缁熻鏃ユ湡
+                if(upYmd.equals(poLast.dt)){
+                    //鍚屼竴澶╂暟鎹�
+                    poLast = this.updateRmClientAmountLastBySameDateNewData(clientVo, dV1_0_1, cdData, poLast);
+                    RmClientAmountDay poHistory = null ;
+                    if(poLast.lastHistoryId != null){
+                        poHistory = sv.getRmClientAmountDay(poLast.lastHistoryId) ;
+                    }
+                    if(poHistory == null){
+                        this.newAndSaveHistoryDataDeal(sv, clientVo, dV1_0_1, cdData, poLast);
+                    }else{
+                        poHistory = this.updateRmClientAmountBySameDateNewData(clientVo, poHistory, poLast, dV1_0_1, cdData);
+                        sv.updateRmClientAmountDay(poHistory);
+                    }
+                    sv.saveRmClientAmountLast(poLast);
+                }else if(upYmd.after(poLast.dt)){
+                    //鏂扮殑鏃ユ湡
+                    poLast = this.updateRmClientAmountLastByNewDateNewData(clientVo, dV1_0_1, cdData, poLast);
+                    this.newAndSaveHistoryDataDeal(sv, clientVo, dV1_0_1, cdData, poLast);
+                    sv.saveRmClientAmountLast(poLast);
+                }else{
+                    //杩欑鎯呭喌涓嶅瓨鍦�
+                }
+                sv.updateRmClientAmountLast(poLast);
+            }else{
+                //RTU鏃堕挓鏃╀簬鏈湴鏈�鏂版暟鎹腑鐨凴TU鏃堕挓锛屾槸琛ユ姤鏁版嵁
+                Date upYmd = DateTime.dateFrom_yyyy_MM_dd1(cdData.closeDt);//閲囩敤鍏抽榾鏃ユ湡浣滀负缁熻鏃ユ湡
+                RmClientAmountDay poHistory = sv.getRmClientAmountByClientAndDate(clientVo.getId(), upYmd) ;
+                if(poHistory == null){
+                    //鏃犲巻鍙叉暟鎹�
+                    this.newAndSaveHistoryDataDeal(sv, clientVo, dV1_0_1, cdData, null);
+                }else{
+                    poHistory = this.updateOldRmClientAmountBySupplyData(clientVo, poHistory, dV1_0_1, cdData);
+                    sv.updateRmClientAmountDay(poHistory);
+                }
+            }
+        }
+    }
+
+
+    /**
+     * 鐢熸垚鏂扮殑鎺у埗鍣ㄦ紡鎹熸棩缁熻鏈�鏂拌褰�
+     * @param clientVo
+     * @param dV1_0_1
+     * @param cdData
+     * @return
+     * @throws Exception
+     */
+    private RmClientAmountDayLast newRmClientAmountLast(SeClient clientVo, DataV1_0_1 dV1_0_1, DataCd83CloseVo cdData)throws Exception {
+        RmClientAmountDayLast po = new RmClientAmountDayLast() ;
+        po.clientId = clientVo.getId();
+        po.amount = cdData.thisAmount ;
+        po.money = cdData.thisMoney ;
+        po.dt = DateTime.dateFrom_yyyy_MM_dd1(cdData.closeDt);//閲囩敤鍏抽榾鏃ユ湡浣滀负缁熻鏃ユ湡
+        po.openDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.openDt);
+        po.closeDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.closeDt);
+        po.thisAmountLast = cdData.thisAmount ;
+        po.thisMoneyLast = cdData.thisMoney ;
+        po.thisTimeLast = cdData.thisTime ;
+        po.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        return po ;
+    }
+
+    /**
+     * 鐢熸垚鏂扮殑鎺у埗鍣ㄦ紡鎹熸棩缁熻鍘嗗彶璁板綍
+     * @param clientVo
+     * @param dV1_0_1
+     * @param cdData
+     * @param lastPo
+     * @return
+     * @throws Exception
+     */
+    private RmClientAmountDay newRmClientAmountDay(SeClient clientVo, DataV1_0_1 dV1_0_1, DataCd83CloseVo cdData, RmClientAmountDayLast lastPo)throws Exception {
+        RmClientAmountDay poHistory = new RmClientAmountDay() ;
+        poHistory.clientId = clientVo.getId();
+        if(lastPo != null){
+            poHistory.amount += lastPo.amount ;
+            poHistory.money += lastPo.money ;
+            poHistory.dt = lastPo.dt ;
+            poHistory.openDtLast = lastPo.openDtLast ;
+            poHistory.closeDtLast = lastPo.closeDtLast ;
+            poHistory.thisAmountLast = lastPo.thisAmountLast ;
+            poHistory.thisMoneyLast = lastPo.thisMoneyLast ;
+            poHistory.thisTimeLast = lastPo.thisTimeLast ;
+            poHistory.rtuDtLast = lastPo.rtuDtLast ;
+        }else{
+            poHistory.amount = cdData.thisAmount ;
+            poHistory.money = cdData.thisMoney ;
+            poHistory.dt = DateTime.dateFrom_yyyy_MM_dd1(cdData.closeDt);//閲囩敤鍏抽榾鏃ユ湡浣滀负缁熻鏃ユ湡
+            poHistory.openDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.openDt);
+            poHistory.closeDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.closeDt);
+            poHistory.thisAmountLast = cdData.thisAmount ;
+            poHistory.thisMoneyLast = cdData.thisMoney ;
+            poHistory.thisTimeLast = cdData.thisTime ;
+            poHistory.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        }
+        return poHistory ;
+    }
+
+
+    /**
+     * 淇濆瓨鏂扮殑鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
+     * @param sv
+     * @param clientVo
+     * @param dV1_0_1
+     * @param cdData
+     * @param lastPo
+     * @throws Exception
+     * @return RmIntakeAmountDay
+     */
+    private RmClientAmountDay newAndSaveHistoryDataDeal(DbSv sv, SeClient clientVo, DataV1_0_1 dV1_0_1, DataCd83CloseVo cdData, RmClientAmountDayLast lastPo)throws Exception {
+        RmClientAmountDay poHistory = this.newRmClientAmountDay(clientVo, dV1_0_1, cdData, lastPo) ;
+        sv.saveRmClientAmountDay(poHistory);
+        //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+        lastPo.lastHistoryId = poHistory == null ? null: poHistory.id ;
+        return poHistory ;
+    }
+
+    /**
+     * 鏇存柊鏈�鏂版暟鎹�
+     * @param clientVo
+     * @param dV1_0_1
+     * @param cdData
+     * @param lastPo
+     * @return
+     * @throws Exception
+     */
+    private RmClientAmountDayLast updateRmClientAmountLastBySameDateNewData(SeClient clientVo, DataV1_0_1 dV1_0_1, DataCd83CloseVo cdData, RmClientAmountDayLast lastPo)throws Exception {
+        lastPo.clientId = clientVo.getId();
+        if(lastPo.amount != null){
+            lastPo.amount += cdData.thisAmount ;
+        }else{
+            lastPo.amount = cdData.thisAmount ;
+        }
+       if(lastPo.money != null){
+            lastPo.money += cdData.thisMoney ;
+        }else{
+            lastPo.money = cdData.thisMoney ;
+        }
+        lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(cdData.closeDt);//閲囩敤鍏抽榾鏃ユ湡浣滀负缁熻鏃ユ湡
+        lastPo.openDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.openDt);
+        lastPo.closeDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.closeDt);
+        lastPo.thisAmountLast = cdData.thisAmount ;
+        lastPo.thisMoneyLast = cdData.thisMoney ;
+        lastPo.thisTimeLast = cdData.thisTime ;
+        lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        return lastPo ;
+    }
+
+
+    /**
+     * 鏇存柊鏈�鏂版暟鎹�
+     * @param clientVo
+     * @param dV1_0_1
+     * @param cdData
+     * @param lastPo
+     * @return
+     * @throws Exception
+     */
+    private RmClientAmountDayLast updateRmClientAmountLastByNewDateNewData(SeClient clientVo, DataV1_0_1 dV1_0_1, DataCd83CloseVo cdData, RmClientAmountDayLast lastPo)throws Exception {
+        lastPo.clientId = clientVo.getId();
+        lastPo.amount = cdData.thisAmount ;
+        lastPo.money = cdData.thisMoney ;
+        lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(cdData.closeDt);//閲囩敤鍏抽榾鏃ユ湡浣滀负缁熻鏃ユ湡
+        lastPo.openDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.openDt);
+        lastPo.closeDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.closeDt);
+        lastPo.thisAmountLast = cdData.thisAmount ;
+        lastPo.thisMoneyLast = cdData.thisMoney ;
+        lastPo.thisTimeLast = cdData.thisTime ;
+        lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        return lastPo ;
+    }
+    /**
+     * 鏇存柊鏈�鏂版暟鎹�
+     * @param clientVo
+     * @param poHistory
+     * @param dV1_0_1
+     * @param cdData
+     * @param lastPo
+     * @return
+     * @throws Exception
+     */
+    private RmClientAmountDay updateRmClientAmountBySameDateNewData(SeClient clientVo, RmClientAmountDay poHistory, RmClientAmountDayLast lastPo, DataV1_0_1 dV1_0_1, DataCd83CloseVo cdData)throws Exception {
+        poHistory.clientId = clientVo.getId();
+        poHistory.amount += lastPo.amount ;
+        poHistory.money += lastPo.money ;
+        poHistory.dt = lastPo.dt ;
+        poHistory.openDtLast = lastPo.openDtLast ;
+        poHistory.closeDtLast = lastPo.closeDtLast ;
+        poHistory.thisAmountLast = lastPo.thisAmountLast ;
+        poHistory.thisMoneyLast = lastPo.thisMoneyLast ;
+        poHistory.thisTimeLast = lastPo.thisTimeLast ;
+        poHistory.rtuDtLast = lastPo.rtuDtLast ;
+        return poHistory ;
+    }
+
+    /**
+     * 鏇存柊鏈�鏂版暟鎹�
+     * @param clientVo
+     * @param poHistory
+     * @param dV1_0_1
+     * @param cdData
+     * @return
+     * @throws Exception
+     */
+    private RmClientAmountDay updateOldRmClientAmountBySupplyData(SeClient clientVo, RmClientAmountDay poHistory, DataV1_0_1 dV1_0_1, DataCd83CloseVo cdData)throws Exception {
+        poHistory.clientId = clientVo.getId();
+        if(poHistory.amount != null){
+            poHistory.amount += cdData.thisAmount ;
+        }else{
+            poHistory.amount = cdData.thisAmount ;
+        }
+        if(poHistory.money != null){
+            poHistory.money += cdData.thisMoney ;
+        }else{
+            poHistory.money = cdData.thisMoney ;
+        }
+        poHistory.dt = DateTime.dateFrom_yyyy_MM_dd1(cdData.closeDt);//閲囩敤鍏抽榾鏃ユ湡浣滀负缁熻鏃ユ湡
+        poHistory.openDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.openDt) ;
+        poHistory.closeDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.closeDt) ;
+        poHistory.thisAmountLast = cdData.thisAmount ;
+        poHistory.thisMoneyLast = cdData.thisMoney ;
+        poHistory.thisTimeLast = cdData.thisTime ;
+        poHistory.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt) ;
+        return poHistory ;
+    }
+
+
+
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIntakeAmountDay.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIntakeAmountDay.java
index 07ecd63..0f1af39 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIntakeAmountDay.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIntakeAmountDay.java
@@ -22,7 +22,7 @@
  */
 public class TkDealIntakeAmountDay extends TaskSurpport {
 
-    private static final Logger log = LogManager.getLogger(TkDealLoss.class.getName());
+    private static final Logger log = LogManager.getLogger(TkDealIntakeAmountDay.class.getName());
 
     //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
     public static final String taskId = "TkDealIntakeAmountDay";
@@ -73,23 +73,40 @@
     private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, UpDataVo dataVo) throws Exception {
         RmIntakeAmountDayLast poLast = sv.getRmIntakeAmountLast(controller.getIntakeId());
         if (poLast == null) {
-            //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鍙栨按鍙g殑婕忔崯鏁版嵁
+            //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鍙栨按鍙g殑鏃ュ彇姘撮噺鏁版嵁
             //棣栧厛鐢熸垚鏈�鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛�
             poLast = this.newRmIntakeAmountLast(controller, rtuAddr, dV1_0_1, dataVo);
             this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataVo, poLast);
             sv.saveRmIntakeAmountLast(poLast);
         } else {
             if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataVo.rtuDt).before(poLast.rtuDtLast)){
-                //RTU鏃堕挓鏃╀簬鏈湴RTU鏃堕挓锛屾槸琛ユ姤锛岃ˉ鎶ユ病娉曡绠楀彇姘村彛鏃ョ疮璁″彇姘撮噺锛屽洜涓洪噰鐢ㄧ殑鏄疮璁℃祦閲忕浉宸殑璁$畻鏂规硶
+                //RTU鏃堕挓鏃╀簬鏈湴RTU鏃堕挓锛屾槸琛ユ姤锛屼笉鐢ㄨˉ鎶ユ潵璁$畻鍙栨按鍙f棩绱鍙栨按閲忥紝鍥犱负閲囩敤鐨勬槸绱娴侀噺鐩稿樊鐨勮绠楁柟娉曪紝
+                //鍏跺疄琛ユ姤鐨勯噺鍊硷紝鍩轰簬鍓嶉潰涓婃姤鏁版嵁宸茬粡璁$畻鍖呭惈浜嗭紝鍙槸閲忓�煎綊缁撶殑鏃ユ湡涓嶆纭舰浜嗐��
             }else if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataVo.rtuDt).equals(poLast.rtuDtLast)){
                 //RTU鏃堕挓绛変簬鏈湴RTU鏃堕挓锛岄噸澶嶄笂鎶ユ暟鎹紝涓嶈繘琛屼换浣曞鐞�
             }else{
-                //涓婅鏁版嵁涓殑鏃ユ湡鏃堕棿绗﹀悎鍙绠楃殑鏉′欢
+                //涓婅鏁版嵁涓殑鏃ユ湡鏃堕棿绗﹀悎璁$畻鐨勬潯浠�
                 if(!rtuAddr.equals(poLast.rtuAddrLast)){
-                    //鏇存崲浜嗘帶鍒跺櫒锛屽彧鏇存崲鎺у埗鍣ㄥ湴鍧�锛屼笉杩涜姘撮噺璁$畻
-                    poLast = this.updateRmIntakeAmountLastByControllerChange(poLast, controller, rtuAddr, dV1_0_1, dataVo);
-                    //鍥犱负涓婅鏁版嵁涓殑鏃ユ湡鏃堕棿鏄彲杩涜璁$畻鐨勶紝鎵�浠ユ柊鐢熸垚涓�涓巻鍙茶褰�
-                    this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataVo, poLast);
+                    //鏇存崲浜嗘帶鍒跺櫒锛屽鐞嗘柟娉曪細鍙洿鎹㈡帶鍒跺櫒鍦板潃锛屼笉杩涜姘撮噺璁$畻
+                    //鍥犱负涓婅鏁版嵁涓殑鏃ユ湡鏃堕棿鏄彲杩涜璁$畻鐨�
+                    if(DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt).equals(poLast.dt)){
+                        //鍚屼竴澶╂暟鎹�
+                        poLast = this.updateRmIntakeAmountLastByControllerChange(poLast, controller, rtuAddr, dV1_0_1, dataVo);
+                        RmIntakeAmountDay poHistory = null ;
+                        if(poLast.lastHistoryId != null){
+                            poHistory = sv.getRmIntakeAmountDay(poLast.lastHistoryId) ;
+                        }
+                        if(poHistory == null){
+                            this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataVo, poLast);
+                        }else{
+                            poHistory = this.updateRmIntakeAmountByControllerChange(poHistory, poLast, controller, rtuAddr, dV1_0_1, dataVo);
+                            sv.updateRmIntakeAmountDay(poHistory);
+                        }
+                    }else{
+                        //闈炲悓涓�澶╋紝鎵�浠ユ柊鐢熸垚涓�涓巻鍙茶褰�
+                        poLast = this.updateRmIntakeAmountLastByControllerChange(poLast, controller, rtuAddr, dV1_0_1, dataVo);
+                        this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataVo, poLast);
+                    }
                     sv.saveRmIntakeAmountLast(poLast);
                 }else{
                     //鏈洿鎹㈡帶鍒跺櫒
@@ -117,6 +134,8 @@
                     }
                 }
             }
+            //鏇存柊鏈�鏂版暟鎹�
+            sv.updateRmIntakeAmountLast(poLast);
         }
     }
 
@@ -164,14 +183,13 @@
         }else{
             po.amount = 0.0D ;
         }
-        po.amount = lastPo==null?0.0D:lastPo.amount ;
         po.totalAmountLast = cdData.totalAmount ;
         return po ;
     }
 
 
     /**
-     * 淇濆瓨鏂扮殑寮�闃�涓婃姤鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
+     * 淇濆瓨鏂扮殑鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
      * @param sv
      * @param controller
      * @param rtuAddr
@@ -206,7 +224,7 @@
         lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
         lastPo.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
         lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
-        //lastPo.amount = lastPo.amount ; //绱鍙栨按閲忎笉鍙�
+        //lastPo.amount = lastPo.amount ; //鏃ョ疮璁″彇姘撮噺涓嶅彉
         lastPo.totalAmountLast = cdData.totalAmount ;
         return lastPo ;
     }
@@ -231,12 +249,11 @@
         if(difference > 0){
             lastPo.amount = difference;
         }else{
-            //po.amount = po.amount ; //绱鍙栨按閲忎笉鍙�
+            //po.amount = po.amount ; //鏃ョ疮璁″彇姘撮噺涓嶅彉
         }
         lastPo.totalAmountLast = cdData.totalAmount ;
         return lastPo ;
     }
-
 
     /**
      * 鏇存柊鏈�鏂拌褰�
@@ -265,6 +282,29 @@
     }
 
     /**
+     * 鐢熸垚鏂扮殑鎺у埗鍣ㄦ紡鎹熸棩缁熻鏈�鏂拌褰�
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param cdData
+     * @return
+     * @throws Exception
+     */
+    private RmIntakeAmountDay updateRmIntakeAmountByControllerChange(RmIntakeAmountDay po, RmIntakeAmountDayLast lastPo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, UpDataVo cdData)throws Exception {
+        po.intakeId = controller==null?null:controller.getIntakeId();
+        po.controllerIdLast = controller==null?null:controller.getId();
+        po.rtuAddrLast = rtuAddr;
+        po.dt = lastPo.dt ;
+        po.dtLast = lastPo.dtLast;
+        po.rtuDtLast = lastPo.rtuDtLast;
+
+        po.amount = lastPo.amount ;
+        po.totalAmountLast = lastPo.totalAmountLast ;
+
+        return po ;
+    }
+
+    /**
      * 鏇存柊鍘嗗彶璁板綍
      * @param controller
      * @param rtuAddr
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
index 828d061..225fc0c 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
@@ -94,6 +94,7 @@
                     //杩欑鎯呭喌涓嶅瓨鍦紙RTU鏃堕挓鏃╀簬鏈湴璁板綍涓殑RTU鏃堕挓锛圧TU绌胯秺鍥炶繃鍘讳簡锛屽彲鑳芥椂閽熼噸缃簡锛夛紝姝ょ鎯呭喌涓嶅鐞嗭級
                 }
             }
+            sv.updateRmLossLast(poLast);
         }
     }
 
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 5faedf0..55cd26e 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
@@ -21,7 +21,8 @@
 							<task id="TkDealOpenValveReport" name="鎺у埗鍣ㄥ紑闃�涓婃姤(鍔熻兘鐮�83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" />
 							<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="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>
 						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
 						<task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindComResponse">
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
index 4224bb4..b5dd099 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
@@ -23,7 +23,7 @@
 
     protected static String rtuAddr = "532328059995" ;
     protected static String rtuResultSendWebUrl = "http://127.0.0.1:65535/test/comRes/receive" ;
-    protected static String vsIcCardNo = "7044010666" ;//铏氭嫙IC鍗$紪鍙凤紙鐢ㄦ埛铏氭嫙鍗″簭鍒楀彿锛�
+    protected static String vsIcCardNo = "61181622830147822" ;//铏氭嫙IC鍗$紪鍙凤紙鐢ㄦ埛铏氭嫙鍗″簭鍒楀彿锛�
 
 
     @Autowired

--
Gitblit v1.8.0