Переглянути джерело

Merge remote-tracking branch 'origin/test' into test

helixiao 2 роки тому
батько
коміт
badee4a35a

+ 8 - 8
src/main/java/com/ydtech/modules/inv/service/impl/InvAccountExcelServiceImpl.java

@@ -179,15 +179,15 @@ public class InvAccountExcelServiceImpl extends ServiceImpl<InvAccountExcelMappe
             JSONObject outProfit = invAccountExcel.getOutProfit();
             JSONObject entProfit = invAccountExcel.getEntProfit();
 
-            outJsonUtil(outProfit, outAccount, outAccountCard,invAccountOperate.getAccountOperateId());
-            entJsonUtil(entProfit, enterAccount, enterAccountCard, invAccountOperate1.getAccountOperateId());
+            outJsonUtil(outProfit, outAccount, outAccountCard,invAccountOperate.getAccountOperateId(),payOutAmount);
+            entJsonUtil(entProfit, enterAccount, enterAccountCard, invAccountOperate1.getAccountOperateId(), payOutAmount);
 
             if (invAccountExcel.getApplyAmount().equals(payOutAmount)) {
                 invAccountExcel.setTransferFlag("0");
                 invAccountExcel.setPayoutAmount(String.valueOf(Double.parseDouble(payOutAmount) + Double.parseDouble(invAccountExcel.getPayoutAmount())));
             } else {
                 invAccountExcel.setTransferFlag("1");
-                invAccountExcel.setPayoutAmount(String.valueOf(Integer.parseInt(payOutAmount) + Integer.parseInt(invAccountExcel.getPayoutAmount())));
+                invAccountExcel.setPayoutAmount(String.valueOf(Double.parseDouble(payOutAmount) + Double.parseDouble(invAccountExcel.getPayoutAmount())));
             }
 
         } else {
@@ -201,7 +201,7 @@ public class InvAccountExcelServiceImpl extends ServiceImpl<InvAccountExcelMappe
             invAccountOperate.setExcelAccountOperateId(invAccountExcel.getExcelAccountOperateId());
             insAccountOperateService.save(invAccountOperate);
             JSONObject outProfit = invAccountExcel.getOutProfit();
-            outJsonUtil(outProfit, outAccount, outAccountCard,invAccountOperate.getAccountOperateId());
+            outJsonUtil(outProfit, outAccount, outAccountCard,invAccountOperate.getAccountOperateId(),payOutAmount);
 
             if (invAccountExcel.getApplyAmount().equals(payOutAmount)) {
                 invAccountExcel.setTransferFlag("0");
@@ -214,13 +214,13 @@ public class InvAccountExcelServiceImpl extends ServiceImpl<InvAccountExcelMappe
         return HttpResult.ok("", insAccountExcelMapper.updateById(invAccountExcel));
     }
 
-    private void outJsonUtil( JSONObject outProfit, InvAccount outAccount, InvAccountCard outCard,String operateId) {
-        List<InvAccountOp> list = invAccountOutOpList(outProfit, outAccount, outCard,operateId);
+    private void outJsonUtil( JSONObject outProfit, InvAccount outAccount, InvAccountCard outCard,String operateId,String payoutAmount) {
+        List<InvAccountOp> list = invAccountOutOpList1(outProfit, outAccount, outCard,operateId,payoutAmount);
         insAccountOpService.saveBatch(list);
     }
 
-    private void entJsonUtil( JSONObject outProfit, InvAccount entAccount, InvAccountCard entCard,String operateId) {
-        List<InvAccountOp> list = invAccountEntOpList(outProfit, entAccount, entCard,operateId);
+    private void entJsonUtil( JSONObject outProfit, InvAccount entAccount, InvAccountCard entCard,String operateId,String payoutAmount) {
+        List<InvAccountOp> list = invAccountEntOpList1(outProfit, entAccount, entCard,operateId,payoutAmount);
         insAccountOpService.saveBatch(list);
     }
 

+ 40 - 0
src/main/java/com/ydtech/modules/inv/utils/TransferUtils.java

@@ -50,6 +50,26 @@ public class TransferUtils {
         return list;
     }
 
+    public static List<InvAccountOp> invAccountEntOpList1(JSONObject entProfit, InvAccount entAccount, InvAccountCard entAccountCard, String operateId,String payoutAmount) {
+        List<InvAccountOp> list = new ArrayList<>();
+        if (entProfit != null) {
+            for (Map.Entry<String, Object> entry : entProfit.entrySet()) {
+                if (new BigDecimal(entry.getValue().toString()).compareTo(BigDecimal.ZERO) != 0) {
+                    InvAccountOp invAccountOp = new InvAccountOp();
+                    invAccountOp.setAccountId(entAccount.getAccountId());
+                    invAccountOp.setAccountName(entAccount.getAccountName());
+                    invAccountOp.setCardNum(entAccountCard.getBankCardNum());
+                    invAccountOp.setCardName(entAccountCard.getBankName());
+                    invAccountOp.setAccountOperateId(operateId);
+                    invAccountOp.setProfit(entry.getKey());
+                    invAccountOp.setMoney(payoutAmount);
+                    list.add(invAccountOp);
+                }
+            }
+        }
+        return list;
+    }
+
 
     /**
      * 插入支出归属
@@ -77,6 +97,26 @@ public class TransferUtils {
         return list;
     }
 
+    //处理部分支出时逻辑
+    public static List<InvAccountOp> invAccountOutOpList1(JSONObject outProfit, InvAccount outAccount, InvAccountCard outAccountCard, String operateId,String payoutAmount) {
+        List<InvAccountOp> list = new ArrayList<>();
+        for (Map.Entry<String, Object> entry : outProfit.entrySet()) {
+            if (new BigDecimal(entry.getValue().toString()).compareTo(BigDecimal.ZERO) != 0) {
+                InvAccountOp invAccountOp = new InvAccountOp();
+                invAccountOp.setAccountId(outAccount.getAccountId());
+                invAccountOp.setAccountName(outAccount.getAccountName());
+                invAccountOp.setCardNum(outAccountCard.getBankCardNum());
+                invAccountOp.setCardName(outAccountCard.getBankName());
+                invAccountOp.setProfit(entry.getKey());
+                invAccountOp.setAccountOperateId(operateId);
+                payoutAmount = "-" + payoutAmount;
+                invAccountOp.setMoney(payoutAmount);
+                list.add(invAccountOp);
+            }
+        }
+        return list;
+    }
+
 
     /**
      * 转账成功后添加支出账户操作信息