增加修改用户入账金额校验
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java b/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
index 8289e96..895263b 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
@@ -54,7 +54,7 @@
     TPersonIdentity updateCoamount(String thirdUid,Double amount);
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    TPersonIdentity updateAccamount(String thirdUid,Double amount);
+    TPersonIdentity updateAccamount(String thirdUid,Double amount,String billno);
 
     @Transactional(rollbackFor = Exception.class, readOnly = true)
     PageResult<UserAccountDTO> queryUserAccByParam(UserAccountSearchBean param);
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
index b70140a..51177e4 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
@@ -16,7 +16,9 @@
 import com.supwisdom.dlpay.system.bean.PersonParamBean;
 import com.supwisdom.dlpay.system.service.UserDataService;
 import com.supwisdom.dlpay.water.bean.UserAccountSearchBean;
+import com.supwisdom.dlpay.water.domain.TAccdtl;
 import com.supwisdom.dlpay.water.pojo.UserAccountDTO;
+import com.supwisdom.dlpay.water.service.AccdtlService;
 import org.hibernate.query.internal.NativeQueryImpl;
 import org.hibernate.transform.Transformers;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +47,8 @@
     private SystemUtilService systemUtilService;
     @Autowired
     private PersonIdentityDao personIdentityDao;
+    @Autowired
+    private AccdtlService accdtlService;
     @PersistenceContext
     private EntityManager em;
 
@@ -215,12 +219,20 @@
     }
 
     @Override
-    public TPersonIdentity updateAccamount(String thirdUid, Double amount) {
+    public TPersonIdentity updateAccamount(String thirdUid, Double amount,String billno) {
         TPersonIdentity personIdentity = personIdentityDao.getByThirdUid(thirdUid);
         if (null == personIdentity) {
             throw new RuntimeException("未找到用户id为" + thirdUid + "的用户");
         }
-        personIdentity.setAccamount(personIdentity.getAccamount() == null ? amount : add(personIdentity.getAccamount(),amount));
+        TAccdtl accdtl = accdtlService.findByBillno(billno);
+        if (null == accdtl) {
+            throw new RuntimeException("未找到billno为" + billno + "的入账流水");
+        }
+        if (accdtl.getUpdatedacc()==null||!accdtl.getUpdatedacc()) {
+            personIdentity.setAccamount(personIdentity.getAccamount() == null ? amount : add(personIdentity.getAccamount(),amount));
+            accdtl.setUpdatedacc(true);
+            accdtlService.saveAccdtl(accdtl);
+        }
         personIdentityDao.save(personIdentity);
         return personIdentity;
     }
diff --git a/src/main/java/com/supwisdom/dlpay/water/domain/TAccdtl.java b/src/main/java/com/supwisdom/dlpay/water/domain/TAccdtl.java
index d459b5e..32c26d2 100644
--- a/src/main/java/com/supwisdom/dlpay/water/domain/TAccdtl.java
+++ b/src/main/java/com/supwisdom/dlpay/water/domain/TAccdtl.java
@@ -56,6 +56,12 @@
     @Column(name = "refno", length = 32)
     private String refno;
 
+    /**
+     * 是否已更新用户入账金额
+     */
+    @Column(name = "updatedacc")
+    private Boolean updatedacc;
+
 
     public String getRefno() {
         return refno;
@@ -168,4 +174,12 @@
     public void setActualamount(Double actualamount) {
         this.actualamount = actualamount;
     }
+
+    public Boolean getUpdatedacc() {
+        return updatedacc;
+    }
+
+    public void setUpdatedacc(Boolean updatedacc) {
+        this.updatedacc = updatedacc;
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java b/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
index b7e121a..8d00a27 100644
--- a/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
+++ b/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
@@ -127,7 +127,7 @@
                         payConfirm(accdtl);
                     } else if (TradeDict.DTL_STATUS_SUCCESS.equals(queryResult.getStatus())) {
                         //  查询得到状态为success,记录下状态
-                        userDataService.updateAccamount(accdtl.getCitizenCardno(), accdtl.getActualamount());
+                        userDataService.updateAccamount(accdtl.getCitizenCardno(), accdtl.getActualamount(),accdtl.getBillno());
                         cofirmAcc(queryResult.getStatus(), accdtl.getBillno(), accdtl.getRefno());
                     } else if (TradeDict.DTL_STATUS_FAIL.equals(queryResult.getStatus())) {
                         cofirmAcc(queryResult.getStatus(), accdtl.getBillno(), accdtl.getRefno());
@@ -205,7 +205,7 @@
         if (finishRetcode == 0) {
             accStatus = TradeDict.DTL_STATUS_SUCCESS;
             //  更新用户已入账金额
-            userDataService.updateAccamount(initAccdtl.getCitizenCardno(), initAccdtl.getActualamount());
+            userDataService.updateAccamount(initAccdtl.getCitizenCardno(), initAccdtl.getActualamount(),initAccdtl.getBillno());
         } else if (finishRetcode == TradeErrorCode.WAIT_QUERY_RESULT) {
             QueryDtlResultParam queryParam = new QueryDtlResultParam();
             queryParam.setRefno(payFinish.getRefno());
@@ -214,7 +214,7 @@
                 accStatus = queryResult.getStatus();
                 if (TradeDict.DTL_STATUS_SUCCESS.equals(accStatus)) {
                     accStatus = TradeDict.DTL_STATUS_SUCCESS;
-                    userDataService.updateAccamount(initAccdtl.getCitizenCardno(), initAccdtl.getActualamount());
+                    userDataService.updateAccamount(initAccdtl.getCitizenCardno(), initAccdtl.getActualamount(),initAccdtl.getBillno());
                 }
             } else {
                 accStatus = TradeDict.DTL_STATUS_WIP;