Browse Source

报销详情BUG修复

anderx 2 years ago
parent
commit
15ba4cb15c

+ 36 - 15
src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseAccountServiceImpl.java

@@ -539,32 +539,53 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
     @Override
     public Object selectById(Integer id) {
         OutExpenseAccount useEa = expenseAccountMapper.selectByid(id);
-        List<ExpenseAccountExamine> list = expenseAccountExamineMapper.selectByEaidAndProcessStatus(id, useEa.getProcessStatus());
+        //判断当前角色是否审核
+        pushExpenseAccountGetExamine(useEa);
+
+        if (useEa.getDebitId()!=null){
+            pushExpenseAccountGetDebitAmount(useEa);
+
+        }
+        return useEa;
+    }
+
+    /**
+     * 计算当前报销显示抵扣金额
+     * @param useEa
+     */
+    private void pushExpenseAccountGetDebitAmount(OutExpenseAccount useEa) {
+        ExpenseAccount debit = expenseAccountMapper.selectByPrimaryKey(useEa.getDebitId());
+        List<ExpenseAccount> list1 = expenseAccountMapper.selectByDebitId(useEa.getDebitId());
+        BigDecimal count =debit.getTotalAmount();
+        for (ExpenseAccount e : list1) {
+            if (!e.getId().equals(useEa.getId())){
+                count.subtract(e.getSettlementAmount());
+            }
+        }
+        if (count.compareTo(new BigDecimal(0))<0)count=new BigDecimal(0);
+        useEa.setDebitTotalAmount(count);
+    }
+
+    /**
+     * 判断角色是否已经审核
+     * @param useEa
+     */
+    private void pushExpenseAccountGetExamine(OutExpenseAccount useEa) {
+        List<ExpenseAccountExamine> list = expenseAccountExamineMapper.selectByEaidAndProcessStatus(useEa.getId(), useEa.getProcessStatus());
         boolean flag=false;
         for (ExpenseAccountExamine e : list) {
-                if (e.getAuditor().equals(TokenManager.getAdminId())){
+            if (e.getAuditor().equals(TokenManager.getAdminId())){
+                if (e.getStatus()==0){
                     flag=true;
                     break;
                 }
+            }
         }
         if (flag){
             useEa.setExamine(1);
         }else {
             useEa.setExamine(0);
         }
-        if (useEa.getDebitId()!=null){
-            ExpenseAccount debit = expenseAccountMapper.selectByPrimaryKey(useEa.getDebitId());
-            List<ExpenseAccount> list1 = expenseAccountMapper.selectByDebitId(useEa.getDebitId());
-            BigDecimal count =debit.getTotalAmount();
-            for (ExpenseAccount e : list1) {
-                if (!e.getId().equals(id)){
-                    count.subtract(e.getSettlementAmount());
-                }
-            }
-            if (count.compareTo(new BigDecimal(0))<0)count=new BigDecimal(0);
-            useEa.setDebitTotalAmount(count);
-        }
-        return useEa;
     }
 
     @Override