Explorar o código

主报销详情修改

anderx %!s(int64=2) %!d(string=hai) anos
pai
achega
65d8f6a19b

+ 17 - 13
src/main/java/com/goafanti/common/mapper/ExpenseAccountMapper.xml

@@ -622,7 +622,7 @@
         a.attachment_url attachmentUrl,a.apply_dep applyDep, a.pay_dep payDep, a.eaaid,a.district_name districtName,
         a.user_names userNames,a.create_time, a.release_start,a.release_end, a.duration,b.name applyDepName,
         c.name payDepName,d.name ,d.bank ,d.accounts ,t0.amount settlementAmount,a.check_no checkNo,
-        a.liquidation_status liquidationStatus, a.remarks,
+        a.liquidation_status liquidationStatus, a.remarks,a.real_amount realAmount,
         date_format(a.create_time,'%Y-%m-%d %H:%i:%S')createTimeStr,
         date_format(a.release_start,'%Y-%m-%d %H:%i:%S')releaseStartStr,
         date_format(a.release_end,'%Y-%m-%d %H:%i:%S')releaseEndStr
@@ -686,27 +686,27 @@
 
 
   <select id="selectByMainId" resultMap="MainMap">
-    <include refid="mainAllSql"/>
-    where a.id= #{id}
-  </select>
-
-  <sql id="mainAllSql">
     select b.id,b.check_no,b.total_amount,b.amount,b.order_no,o.contract_no,b.aname,b.apply_dep,b.pay_dep,b.real_amount,b.type_other ,b.aid,
            date_format(b.create_time,'%Y-%m-%d %H:%i:%S')createTimeStr,b.examine_name, dep.name applyDepName,dep2.name payDepName,
            b.remarks,b.eaaid ,eap.name ,eap.bank ,eap.accounts ,b.status,b.process_status,
-           c.id sonId,c.total_amount sonTotalAmount,c.settlement_amount sonSettlementAmount,c.amount sonAmount, c.`type` sonType,c.type_other sonTypeOther,c.user_names ,c.release_start ,c.release_end ,
-           c.district_name districtName,c.user_names userNames,c.secondary_type ,c.secondary_type_other,c.attachment_url,
+           c.id sonId,c.total_amount sonTotalAmount,c.settlement_amount sonSettlementAmount,c.amount sonAmount, c.`type` sonType,c.type_other sonTypeOther,
+           c.user_names ,c.release_start ,c.release_end , c.district_name districtName,c.user_names userNames,c.secondary_type ,c.secondary_type_other,c.attachment_url,
            c.duration,pr.plan,pro.contract_no sonContractNo,c.real_amount sonRealAmount,
+           c.debit_id debitId, debit.real_amount DebitRealAmount ,debit.settlement_amount DebitSettlementAmount,debit.liquidation_status DebitliquidationStatus,
            d.id detId,d.`type` detType,d.amount detAmount,d.real_amount detRealAmount ,d.start_district ,d.end_district,d.vehicle,d.vehicle_other,
            d.pay_type ,d.invoice_type ,d.invoice_no,d.payer_name ,d.open_bank ,d.bank_accounts ,d.open_bank_address,d.type_other detTypeOther,
            date_format(d.start_time,'%Y-%m-%d %H:%i:%S')startTime,date_format(d.end_time,'%Y-%m-%d %H:%i:%S')endTime,
            date_format(d.agree_time,'%Y-%m-%d')agreeTime
     from expense_relationship a left join expense_account b on a.id =b.id
-     left join department dep on b.apply_dep =dep.id left join department dep2 on b.pay_dep =dep2.id
-     left join t_order_new o on b.order_no =o.order_no left join expense_account_private eap on b.eaaid =eap.id
-     left join expense_account c on a.ea_id =c.id left join expense_account_details d on c.id =d.eaid
-     left join public_release pr on c.prid=pr.id left join t_order_new pro on pr.order_no=pro.order_no
-  </sql>
+    left join department dep on b.apply_dep =dep.id left join department dep2 on b.pay_dep =dep2.id
+    left join t_order_new o on b.order_no =o.order_no left join expense_account_private eap on b.eaaid =eap.id
+    left join expense_account c on a.ea_id =c.id left join expense_account_details d on c.id =d.eaid
+    left join public_release pr on c.prid=pr.id left join t_order_new pro on pr.order_no=pro.order_no
+    left join expense_account debit on c.debit_id=debit.id
+    where a.id= #{id}
+  </select>
+
+
 
   <select id="selectListByMainId" resultMap="BaseResultMap">
     select b.*
@@ -759,6 +759,10 @@
     <result column="duration" jdbcType="VARCHAR" property="duration" />
     <result column="plan" jdbcType="VARCHAR" property="plan" />
     <result column="sonContractNo" jdbcType="VARCHAR" property="contractNo" />
+    <result column="debitId" jdbcType="INTEGER" property="debitId" />
+    <result column="debitRealAmount" jdbcType="DECIMAL" property="debitRealAmount" />
+    <result column="debitSettlementAmount" jdbcType="DECIMAL" property="debitSettlementAmount" />
+    <result column="debitLiquidationStatus" jdbcType="INTEGER" property="debitLiquidationStatus" />
     <association property="detList" resultMap="ExpenseAccountDetailsMap"></association>
   </resultMap>
 

+ 36 - 0
src/main/java/com/goafanti/expenseAccount/bo/SonExpenseAccount.java

@@ -21,8 +21,44 @@ public class SonExpenseAccount {
     private String duration;
     private String plan;
     private String contractNo;
+    private Integer debitId;
+    private BigDecimal debitRealAmount;
+    private BigDecimal debitSettlementAmount;
+    private Integer debitLiquidationStatus;
     private List<SonExpenseAccountDetails> detList;
 
+    public Integer getDebitId() {
+        return debitId;
+    }
+
+    public void setDebitId(Integer debitId) {
+        this.debitId = debitId;
+    }
+
+    public BigDecimal getDebitRealAmount() {
+        return debitRealAmount;
+    }
+
+    public void setDebitRealAmount(BigDecimal debitRealAmount) {
+        this.debitRealAmount = debitRealAmount;
+    }
+
+    public BigDecimal getDebitSettlementAmount() {
+        return debitSettlementAmount;
+    }
+
+    public void setDebitSettlementAmount(BigDecimal debitSettlementAmount) {
+        this.debitSettlementAmount = debitSettlementAmount;
+    }
+
+    public Integer getDebitLiquidationStatus() {
+        return debitLiquidationStatus;
+    }
+
+    public void setDebitLiquidationStatus(Integer debitLiquidationStatus) {
+        this.debitLiquidationStatus = debitLiquidationStatus;
+    }
+
     public BigDecimal getAmount() {
         return amount;
     }

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

@@ -310,9 +310,9 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         newDebit.setSettlementAmount(count);
         if (count.compareTo(new BigDecimal(0))==0){
             newDebit.setLiquidationStatus(0);
-        }else if (count.compareTo(debit.getTotalAmount())<0){
+        }else if (count.compareTo(debit.getRealAmount())<0){
             newDebit.setLiquidationStatus(1);
-        }else if (count.compareTo(debit.getTotalAmount())==0){
+        }else if (count.compareTo(debit.getRealAmount())==0){
             newDebit.setLiquidationStatus(2);
         }
         expenseAccountMapper.updateByPrimaryKeySelective(newDebit);
@@ -325,16 +325,16 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         ExpenseAccount newDebit=new ExpenseAccount();
         newDebit.setId(debit.getId());
         //计算剩余需要支付金额
-        BigDecimal decbitAmount=debit.getTotalAmount().subtract(debit.getSettlementAmount());
+        BigDecimal decbitAmount=debit.getRealAmount().subtract(debit.getSettlementAmount());
         //本次金额大于等于需要抵扣金额,则变成完全抵扣,抵扣金额变成本次已付金额
-        if (in.getTotalAmount().compareTo(decbitAmount)>=0){
+        if (in.getRealAmount().compareTo(decbitAmount)>=0){
             in.setSettlementAmount(decbitAmount);
-            newDebit.setSettlementAmount(debit.getTotalAmount());
+            newDebit.setSettlementAmount(debit.getRealAmount());
             newDebit.setLiquidationStatus(2);
         }else {
 //           本次金额小于需要抵扣,则本次变更全抵扣,借支已付加上本次金额
-            in.setSettlementAmount(in.getTotalAmount());
-            BigDecimal setAmount=new BigDecimal(0).add(debit.getSettlementAmount()).add(in.getTotalAmount());
+            in.setSettlementAmount(in.getRealAmount());
+            BigDecimal setAmount=new BigDecimal(0).add(debit.getSettlementAmount()).add(in.getRealAmount());
             newDebit.setSettlementAmount(setAmount);
             newDebit.setLiquidationStatus(1);
         }
@@ -928,7 +928,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
     private void pushExpenseAccountGetDebitAmount(OutExpenseAccount useEa) {
         ExpenseAccount debit = expenseAccountMapper.selectByPrimaryKey(useEa.getDebitId());
         List<ExpenseAccount> list1 = expenseAccountMapper.selectByDebitId(useEa.getDebitId());
-        BigDecimal count =debit.getTotalAmount();
+        BigDecimal count =debit.getRealAmount();
         for (ExpenseAccount e : list1) {
             if (!e.getId().equals(useEa.getId())){
                 count=count.subtract(e.getSettlementAmount());