Przeglądaj źródła

托管账户对账

shenziyin-gh 1 rok temu
rodzic
commit
356ceea575

+ 6 - 0
src/main/java/com/cool/bang/api/DataMatch.java

@@ -174,4 +174,10 @@ public class DataMatch {
         mySQLSecondService.accountChecking();
     }
 
+    /**
+     * 托管账户对账
+     */
+    @GetMapping("bankAccountChecing")
+    public void bankAccountChecing(){mySQLSecondService.bankAccountChecing();}
+
 }

+ 13 - 0
src/main/java/com/cool/bang/modules/mysql/domain/Account.java

@@ -52,6 +52,11 @@ public class Account {
     /** 账户余额 */
     private BigDecimal accountBalance;
 
+    /**
+     * 非数据库字段 用于展示  总项目余额
+     */
+    private BigDecimal balance;
+
     /** 收益余额 */
     private BigDecimal incomeBalance;
 
@@ -274,4 +279,12 @@ public class Account {
     public void setDelFlag(Integer delFlag) {
         this.delFlag = delFlag;
     }
+
+    public BigDecimal getBalance() {
+        return balance;
+    }
+
+    public void setBalance(BigDecimal balance) {
+        this.balance = balance;
+    }
 }

+ 15 - 0
src/main/java/com/cool/bang/modules/mysql/mapper/MySqlMapper.java

@@ -75,4 +75,19 @@ public interface MySqlMapper {
     List<Map<String, Object>> selectBuildingBy(@Param("projectId") Long id,@Param("projectAccountId") Long projectAccountId);
 
     BigDecimal getAccountBalanceByNumber(@Param("buildingNumber") String buildingNumber);
+
+    /**
+     * 更新 building_account
+     * @param lzbh
+     * @param
+     * @param
+     * @return
+     */
+    int updateBuildingAccountByLZBH(@Param("lzbh") String lzbh,@Param("name") String name,@Param("id") int id);
+
+    /**
+     * 查询八个托管账户的信息
+     * @return
+     */
+    List<Account> selectTgAccountInfo();
 }

+ 41 - 4
src/main/java/com/cool/bang/modules/mysql/service/MySQLSecondService.java

@@ -172,7 +172,7 @@ public class MySQLSecondService {
                 List<Map<String, Object>> buildingInfo = mySqlMapper.selectBuildingBy((Long) map.get("id"), (Long) account.get("id"));
                 for (Map<String, Object> building : buildingInfo) {
                     //监管转托管
-                    BigDecimal zgToTg = oracleMapper.sumByZgToTg((String)(building.get("building_number")));
+                    BigDecimal zgToTg = oracleMapper.sumByZgToTg((String) (building.get("building_number")));
                     zgToTg = null == zgToTg ? BigDecimal.ZERO : zgToTg;
                     //交存
                     BigDecimal jc = oracleMapper.sumByJc((String) building.get("building_number"));
@@ -187,11 +187,11 @@ public class MySQLSecondService {
                     StringBuilder str = new StringBuilder();
                     String buildingName = String.valueOf(building.get("building_name"));
                     BigDecimal cz = BigDecimal.ZERO;
-                    if(!(hj.compareTo(accountBalance) == 0)){
+                    if (!(hj.compareTo(accountBalance) == 0)) {
                         cz = hj.subtract(accountBalance);
                     }
                     str.append(building.get("project_name").toString())
-                            .append(";"+building.get("project_number").toString())
+                            .append(";" + building.get("project_number").toString())
                             .append(";" + buildingName)
                             .append(";" + building.get("building_number").toString())
                             .append(";" + zgToTg)
@@ -199,7 +199,7 @@ public class MySQLSecondService {
                             .append(";" + bf)
                             .append(";" + hj)
                             .append(";" + accountBalance)
-                            .append(";" + (hj.compareTo(accountBalance) == 0 ? "是" :"否"))
+                            .append(";" + (hj.compareTo(accountBalance) == 0 ? "是" : "否"))
                             .append(";" + (hj.compareTo(accountBalance) == 0 ? "" : cz));
                     System.out.println(str.toString());
                     list.add(str.toString());
@@ -210,4 +210,41 @@ public class MySQLSecondService {
             System.out.println(str);
         }
     }
+
+    /**
+     * 银行账户对账
+     */
+    public void bankAccountChecing() {
+        List<Account> list = mySqlMapper.selectTgAccountInfo();
+        List<Account> wdzJc = oracleMapper.getWdzJc();
+        List<Account> wdzBf = oracleMapper.getWdzBf();
+        List<String> strs = new ArrayList<>();
+        for (Account account : list) {
+            //未对账的交存
+            BigDecimal jc = BigDecimal.ZERO;
+            if (wdzJc != null && !wdzJc.isEmpty()) {
+                Account jcAccount = wdzJc.stream().filter(t -> !StringUtils.isEmpty(t.getBankCode()) && t.getBankCode().equals(account.getBankCode())).findFirst().orElse(null);
+                jc = null != jcAccount ? jcAccount.getBalance() : BigDecimal.ZERO;
+            }
+            //未对账的拨付
+            BigDecimal bf = BigDecimal.ZERO;
+            if (wdzBf != null && !wdzBf.isEmpty()) {
+                Account bfAccount = wdzBf.stream().filter(t -> !StringUtils.isEmpty(t.getBankCode()) && t.getBankCode().equals(account.getBankCode())).findFirst().orElse(null);
+                bf = null != bfAccount ? bfAccount.getBalance() : BigDecimal.ZERO;
+            }
+            StringBuilder str = new StringBuilder();
+            str.append(account.getBankName())
+                    .append(";" + account.getBankCode())
+                    .append(";" + jc)
+                    .append(";" + bf)
+                    .append(";" + account.getBalance())
+                    .append(";" + account.getAccountBalance())
+                    .append(";" + ((account.getBalance().subtract(jc)).add(bf)).subtract(account.getAccountBalance()));
+            strs.add(str.toString());
+        }
+
+        for (String str : strs) {
+            System.out.println(str);
+        }
+    }
 }

+ 0 - 1
src/main/java/com/cool/bang/modules/mysql/service/MySQLService.java

@@ -409,7 +409,6 @@ public class MySQLService {
                 projectMapper.updateRelieve(relieve.getProjectId());
             } else { //说明该项目下存在还没有解除的项目虚拟户,所以只解除该项目虚拟户、以及该项目虚拟户绑定的账户、楼幢
                 relieve.setRelieveType(2);
-                //楼栋解除需
                 mySqlMapper.insertRelieve(relieve);
             }
             //项目虚拟户变更解除状态

+ 13 - 0
src/main/java/com/cool/bang/modules/oracle/mapper/OracleMapper.java

@@ -1,5 +1,6 @@
 package com.cool.bang.modules.oracle.mapper;
 
+import com.cool.bang.modules.mysql.domain.Account;
 import com.cool.bang.modules.mysql.domain.TradeInfo;
 import com.cool.bang.modules.oracle.domain.OracleUser;
 import com.cool.bang.modules.oracle.domain.Trade;
@@ -76,4 +77,16 @@ public interface OracleMapper {
      * @return
      */
     BigDecimal sumByBf(@Param("buildingNumber") String buildingNumber);
+
+    /**
+     * 获取未对账的交存
+     * @return
+     */
+    List<Account> getWdzJc();
+
+    /**
+     * 未对账的拨付
+     * @return
+     */
+    List<Account> getWdzBf();
 }

+ 23 - 3
src/main/resources/mapper/mysql/MySQLMapper.xml

@@ -348,9 +348,9 @@
     </select>
 
     <select id="selectXmAccountByProjectId" resultType="map">
-        SELECT pa.*,a.name
+        SELECT pa.*, a.name
         FROM fc_project_account pa
-        LEFT JOIN fc_account a ON  pa.account_id = a.id
+                 LEFT JOIN fc_account a ON pa.account_id = a.id
         WHERE pa.account_type = 1
           AND pa.state = 1
           AND pa.del_flag = 1
@@ -366,6 +366,26 @@
     </select>
 
     <select id="getAccountBalanceByNumber" resultType="decimal">
-        select account_balance from  fc_building_account where building_number = #{buildingNumber}
+        select account_balance
+        from fc_building_account
+        where building_number = #{buildingNumber}
+    </select>
+
+    <update id="updateBuildingAccountByLZBH">
+        update fc_building_account
+        set progress_id   = #{id},
+            progress_name = #{name}
+        where building_number = #{lzbh}
+    </update>
+
+    <select id="selectTgAccountInfo" resultType="com.cool.bang.modules.mysql.domain.Account">
+        SELECT
+            t.book_balance, t.income_balance, t2.bank_code AS bankCode , t.bank_name AS bankName,
+            t.account_balance AS accountBalance, t2.balance AS balance
+        FROM
+            fc_account t
+                LEFT JOIN ( SELECT bank_code, sum( trusteeship_balance) as balance FROM fc_project_account WHERE account_type = 1 GROUP BY bank_code ) t2 ON t2.bank_code = t.bank_code
+        WHERE
+            t.type = 1
     </select>
 </mapper>

+ 20 - 1
src/main/resources/mapper/oracle/OracleMapper.xml

@@ -161,7 +161,7 @@
         SELECT NVL(SUM(TRADEAMOUNT),0)
         FROM TRADE
         WHERE ACCOUNTNO IN (SELECT ACCOUNTNO FROM ACCOUNT WHERE accountid &lt;= 8)
-          and CHECKFLAG = 2 AND ZJJGFLAG = 1 AND TRADESTATE = 1 AND PAYTYPE in (01) and LZBH = #{buildingNumber}
+          and CHECKFLAG IN(1,2) AND ZJJGFLAG = 1 AND TRADESTATE = 1 AND PAYTYPE in (01) and LZBH = #{buildingNumber}
     </select>
 
     <select id="sumByBf" resultType="decimal">
@@ -173,4 +173,23 @@
         WHERE t.ACCOUNTNO IN (SELECT ACCOUNTNO FROM ACCOUNT WHERE accountid  &lt;= 8) AND t.PAYTYPE in (18,19,20)
           AND t4.lzbh = #{buildingNumber}
     </select>
+
+    <select id="getWdzJc" resultType="com.cool.bang.modules.mysql.domain.Account">
+        SELECT SUM(t.TRADEAMOUNT) AS balance,a.BANKCODE AS bankCode
+        FROM TRADE t
+                 LEFT JOIN ACCOUNT a ON t.ACCOUNTNO =  a.ACCOUNTNO
+        WHERE  a.ACCOUNTTYPE =1  and   t.CHECKFLAG = 1 AND t.TRADESTATE = 1 AND t.PAYTYPE in (01)
+        GROUP BY a.BANKCODE
+    </select>
+
+    <select id="getWdzBf" resultType="com.cool.bang.modules.mysql.domain.Account">
+        SELECT a.BANKCODE AS bankCode,SUM(t3.money) AS balance
+        FROM TRADE t
+                 left join PAYITEM t2 on t2.PAYCODE = t.TRADENUM
+                 left join PAYITEMLZ t3 on t3.PAYITEMID = t2.PAYITEMID
+                 left join AREGITEM t4 on t4.AREGITEMID = t3.AREGITEMID
+                 LEFT JOIN ACCOUNT a ON t.ACCOUNTNO =  a.ACCOUNTNO
+        WHERE  a.ACCOUNTTYPE =1  and   t.CHECKFLAG = 1 AND t.TRADESTATE = 1  AND t.PAYTYPE in (18,19,20)
+        GROUP BY a.BANKCODE
+    </select>
 </mapper>