anderx лет назад: 2
Родитель
Сommit
30096966f8

+ 0 - 1
src/main/java/com/goafanti/common/dao/ExpenseAccountDetailsMapper.java

@@ -19,7 +19,6 @@ public interface ExpenseAccountDetailsMapper {
 
     int updateByPrimaryKey(ExpenseAccountDetails record);
 
-    BigDecimal selectAmountCountByEAid(Integer id);
 
     List<OutExpenseAccountDetails> selectByEAid(Integer eaid);
 

+ 2 - 5
src/main/java/com/goafanti/common/mapper/ExpenseAccountDetailsMapper.xml

@@ -298,13 +298,10 @@
   </update>
 
 
-  <select id="selectAmountCountByEAid" resultType="java.math.BigDecimal">
-    select ifnull(sum(amount),0)amount  from expense_account_details
-    where eaid = #{id}
-  </select>
+
   <select id="selectByEAid" resultType="com.goafanti.expenseAccount.bo.OutExpenseAccountDetails">
     SELECT id, eaid, `type`, type_other typeOther, date_format(a.start_time,'%Y-%m-%d %H:%i:%S')startTimeStr, date_format(a.end_time,'%Y-%m-%d %H:%i:%S')endTimeStr,
-           start_district startDistrict, end_district endDistrict, amount, vehicle, vehicle_other vehicleOther, remarks,
+           start_district startDistrict, end_district endDistrict, amount,real_Amount realAmount, vehicle, vehicle_other vehicleOther, remarks,
            date_format(a.agree_time,'%Y-%m-%d %H:%i:%S')agreeTimeStr, pay_type payType,invoice_type invoiceType, invoice_no invoiceNo,
            payer_name payerName, open_bank openBank, bank_accounts bankAccounts, open_bank_address openBankAddress, lend_id lendId,
            date_format(a.create_time,'%Y-%m-%d %H:%i:%S')createTimeStr

+ 3 - 3
src/main/java/com/goafanti/expenseAccount/bo/OutExpenseAccountBo.java

@@ -31,7 +31,7 @@ public class OutExpenseAccountBo {
     private String financeName;
     private String attachmentUrl;
     private Integer examine;
-    private Integer realAmount;
+    private BigDecimal realAmount;
 
     public BigDecimal getAmount() {
         return amount;
@@ -57,11 +57,11 @@ public class OutExpenseAccountBo {
         this.buyerName = buyerName;
     }
 
-    public Integer getRealAmount() {
+    public BigDecimal getRealAmount() {
         return realAmount;
     }
 
-    public void setRealAmount(Integer realAmount) {
+    public void setRealAmount(BigDecimal realAmount) {
         this.realAmount = realAmount;
     }
 

+ 28 - 5
src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseAccountServiceImpl.java

@@ -226,8 +226,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
 
         //计算总金额
         if (in.getTotalAmount()==null){
-            in.setTotalAmount(expenseAccountDetailsMapper.selectAmountCountByEAid(in.getId()));
-            in.setRealAmount(in.getTotalAmount());
+            pushExpenseAccountAmount(in);
         }
         in.setProcessStatus(0);
         if (in.getOrderNo()==null){
@@ -248,12 +247,24 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             }
         }
         if (in.getSettlementAmount()==null)in.setSettlementAmount(useEA.getSettlementAmount());
-        in.setAmount(in.getTotalAmount().subtract(in.getSettlementAmount()));
+        in.setAmount(in.getRealAmount().subtract(in.getSettlementAmount()));
         in.setRealAmount(in.getAmount());
         in.setStatus(0);
         return expenseAccountMapper.updateByPrimaryKeySelective(in);
     }
 
+    private void pushExpenseAccountAmount(ExpenseAccount in) {
+        List<OutExpenseAccountDetails> list = expenseAccountDetailsMapper.selectByEAid(in.getId());
+        BigDecimal totalAmount = BigDecimal.ZERO;
+        BigDecimal realAmount = BigDecimal.ZERO;
+        for (OutExpenseAccountDetails e : list) {
+            totalAmount=totalAmount.add(e.getAmount());
+            realAmount=realAmount.add(e.getRealAmount());
+        }
+        in.setTotalAmount(totalAmount);
+        in.setRealAmount(realAmount);
+    }
+
     @Override
     public Object updateDebitId(InputExpenseAccount in) {
         OutExpenseAccount useEA = expenseAccountMapper.selectByid(in.getId());
@@ -324,12 +335,21 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         }
         in.setRealAmount(in.getAmount());
         expenseAccountDetailsMapper.insertSelective(in);
+        ExpenseAccount ea =new ExpenseAccount();
+        ea.setId(in.getEaid());
+        pushExpenseAccountAmount(ea);
+        expenseAccountMapper.updateByPrimaryKeySelective(ea);
         return 1;
     }
 
     @Override
     public int deleteDetails(Integer id) {
-        return expenseAccountDetailsMapper.deleteByPrimaryKey(id);
+        expenseAccountDetailsMapper.deleteByPrimaryKey(id);
+        ExpenseAccount ea =new ExpenseAccount();
+        ea.setId(id);
+        pushExpenseAccountAmount(ea);
+        expenseAccountMapper.updateByPrimaryKeySelective(ea);
+        return 1;
     }
 
     @Override
@@ -697,10 +717,12 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         in.setEaaid(eaaid);
         BigDecimal count = new BigDecimal(0);
         BigDecimal amount = new BigDecimal(0);
+        BigDecimal realAmount = new BigDecimal(0);
         List<String> typeList = new ArrayList<String>();
         for (ExpenseAccount e : list) {
             count=count.add(e.getTotalAmount());
             amount=amount.add(e.getAmount());
+            realAmount=realAmount.add(e.getRealAmount());
             StringBuffer types=new StringBuffer();
             if (e.getType()!=0){
                 types=types.append(EATypes.getDescByCode(e.getType()));
@@ -719,7 +741,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         }
         in.setTotalAmount(count);
         in.setAmount(amount);
-        in.setRealAmount(amount);
+        in.setRealAmount(realAmount);
         in.setExpenseMain(1);
         in.setTypeOther(String.join(",",typeList));
         expenseAccountMapper.insertSelective(in);
@@ -779,6 +801,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                     if (i !=null)
                         expenseAccountLogMapper.updateUseLogByUseId(in.getId(),i);
                         expenseAccountLogMapper.deleteByeaid(i);
+                        expenseRelationshipMapper.deleteByPrimaryKey(i);
                 }
                 addExpenseAccountLogAndNoticEmail(outExpenseAccount,outExpenseAccount.getStatus(),"发起报销审核");
             }else if (outExpenseAccount.getStatus()==3){