Bläddra i källkod

新增报销总计数据调整

anderx 1 år sedan
förälder
incheckning
e262fc30ee

+ 2 - 3
src/main/java/com/goafanti/common/mapper/ExpenseAccountMapper.xml

@@ -459,7 +459,7 @@
        a.examine_name examineName,a.check_no checkNo,a.target_type targetType,
     </if>
     f.name depName,d2.name financeName, date_format(a.create_time,'%Y-%m-%d %H:%i:%S')createTimeStr,a.aname,
-    b.name applyDepName, c.name payDepName
+    b.name applyDepName, c.name payDepName,e.contract_no contractNo,tm.buyer_name buyerName
     from expense_account a
     <if test="type !=null">
       right join  (select a.id
@@ -472,17 +472,16 @@
       left join expense_relationship er on a.id=er.ea_id
       left join expense_account mea on  er.id=mea.id
       left join t_order_new e on a.order_no =e.order_no
+      left join t_order_mid  tm on e.order_no =tm.order_no
       left join department b on mea.apply_dep =b.id left join department c on mea.pay_dep =c.id
       left join admin d2 on b.expense_finance_id =d2.id
     </if>
     <if test="expenseMain ==1">
       left join department b on a.apply_dep =b.id left join department c on a.pay_dep =c.id
-      <if test="contractNo !=null or username !=null">
         left join expense_relationship er on a.id=er.id
         left join expense_account sea on  er.ea_id=sea.id
         left join t_order_new e on sea.order_no =e.order_no
         left join t_order_mid  tm on e.order_no =tm.order_no
-      </if>
       left join admin d2 on b.expense_finance_id =d2.id
     </if>
     <if test="processStatus ==1">

+ 24 - 20
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -2211,38 +2211,42 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
   </select>
     <select id="selectExpenseCount" parameterType="com.goafanti.expenseAccount.bo.ExpenseCountsInput" resultType="com.goafanti.expenseAccount.bo.ExpenseCountsBo">
       select a.order_no orderNo,a.contract_no contractNo,b.buyer_name buyerName,a.total_amount totalAmount,a.settlement_amount settlementAmount,
-             c.expenseCount,c.peopleCount,c.notExamine,c.rejectCount,c.paymentAmount,c.days,c.amount expenseAmount
-      from t_order_new a left join t_order_mid b on a.order_no =b.order_no left join (select a.order_no,a.expenseCount,b.peopleCount,c.notExamine,
-            c.rejectCount,ifnull(d.paymentAmount,0)paymentAmount,a.days,a.amount
-            from (select a.order_no,count(a.id)expenseCount,sum(a.amount) amount,
-                sum(ROUND(a.duration/7.5) )days from expense_account a where a.order_no in (select a.order_no from expense_account a
-                where a.target_type = #{targetType}
-                group by order_no)
+             c.expenseCount,c.peopleCount,c.notExamine,c.rejectCount,d.paymentAmount,c.days,c.amount expenseAmount
+      from t_order_new a left join t_order_mid b on a.order_no =b.order_no
+      left join (select a.order_no,a.expenseCount,b.peopleCount,c.notExamine, c.rejectCount,a.days,a.amount
+                from (select a.order_no,count(a.id)expenseCount,sum(a.amount) amount,sum(ROUND(a.duration/7.5) )days
+                      from expense_account a where a.order_no in (select a.order_no from expense_account a
+                      where a.target_type = 1 group by order_no)
+                      and a.status=2
                 <if test="startTime !=null and endTime != null">
                   and a.create_time BETWEEN #{startTime} and #{endTime}
                 </if>
-                group by order_no )a left join (select order_no,count(aid)peopleCount from (select a.order_no,aid from expense_account a where a.order_no in
-                (select a.order_no from expense_account a  where a.target_type = #{targetType}
+                group by order_no )a
+                left join (select order_no,count(aid)peopleCount from (select a.order_no,aid from expense_account a where a.order_no in
+                (select a.order_no from expense_account a  where a.target_type = 1
+                and a.status=2
                 group by order_no)
                 <if test="startTime !=null and endTime != null">
                 and a.create_time BETWEEN #{startTime} and #{endTime}
                 </if>
-                group by order_no,aid )a group by order_no)b on a.order_no=b.order_no left join (select a.order_no,sum(notExamine)notExamine,sum(rejectCount)rejectCount
+                group by order_no,aid )a group by order_no)b on a.order_no=b.order_no
+                left join (select a.order_no,sum(notExamine)notExamine,sum(rejectCount)rejectCount
                 from (select a.order_no,status ,IF(status=1,1,0)notExamine,IF(status=3,1,0)rejectCount
-                from expense_account a where a.order_no in (select a.order_no from expense_account a where a.target_type = #{targetType}
+                from expense_account a where a.order_no in (select a.order_no from expense_account a where a.target_type = 1
                 group by order_no)
                 <if test="startTime !=null and endTime != null">
                   and a.create_time BETWEEN #{startTime} and #{endTime}
                 </if>
-                )a group by order_no)c on a.order_no=c.order_no left join (    select a.order_no ,sum(c.payment_amount) paymentAmount
-                from t_order_new a left join t_order_task b on a.order_no =b.order_no left join  t_order_payment c on b.id =c.tid
-                where c.status =3 and a.order_no in (select a.order_no from expense_account a  where a.target_type = #{targetType}
-                 group by order_no)
-                <if test="startTime !=null and endTime != null">
-                  and a.create_time BETWEEN #{startTime} and #{endTime}
-                </if>
-                group by order_no )d on a.order_no=d.order_no)c on a.order_no =c.order_no
-      where a.order_no in (select a.order_no from expense_account a where a.target_type = #{targetType}
+                )a group by order_no)c on a.order_no=c.order_no )c on a.order_no =c.order_no
+      left join (    select a.order_no ,sum(c.payment_amount) paymentAmount
+      from t_order_new a left join t_order_task b on a.order_no =b.order_no left join  t_order_payment c on b.id =c.tid
+      where c.status =3 and a.order_no in (select a.order_no from expense_account a  where a.target_type = 1
+      group by order_no)
+      <if test="startTime !=null and endTime != null">
+        and a.create_time BETWEEN #{startTime} and #{endTime}
+      </if>
+      group by order_no )d on a.order_no=d.order_no
+      where a.order_no in (select a.order_no from expense_account a where a.target_type = 1
                 <if test="startTime !=null and endTime != null">
                   and a.create_time BETWEEN #{startTime} and #{endTime}
                 </if>

+ 9 - 0
src/main/java/com/goafanti/expenseAccount/bo/ExpenseCountsBo.java

@@ -39,6 +39,9 @@ public class ExpenseCountsBo {
     }
 
     public BigDecimal getExpenseAmount() {
+        if(expenseAmount == null){
+            expenseAmount = BigDecimal.ZERO;
+        }
         return expenseAmount;
     }
 
@@ -87,6 +90,7 @@ public class ExpenseCountsBo {
     }
 
     public Integer getExpenseCount() {
+        if (expenseCount==null)return 0;
         return expenseCount;
     }
 
@@ -95,6 +99,7 @@ public class ExpenseCountsBo {
     }
 
     public Integer getPeopleCount() {
+        if (peopleCount==null)return 0;
         return peopleCount;
     }
 
@@ -103,6 +108,7 @@ public class ExpenseCountsBo {
     }
 
     public Integer getRejectCount() {
+        if (rejectCount==null)return 0;
         return rejectCount;
     }
 
@@ -111,6 +117,7 @@ public class ExpenseCountsBo {
     }
 
     public BigDecimal getPaymentAmount() {
+        if (paymentAmount==null)return BigDecimal.ZERO;
         return paymentAmount;
     }
 
@@ -119,6 +126,7 @@ public class ExpenseCountsBo {
     }
 
     public Integer getNotExamine() {
+        if (notExamine==null)return 0;
         return notExamine;
     }
 
@@ -127,6 +135,7 @@ public class ExpenseCountsBo {
     }
 
     public Integer getDays() {
+        if (days==null)return 0;
         return days;
     }