Browse Source

报销开发费用明细列表,费用列表新增
主报销查询修改

anderx 2 years ago
parent
commit
11a0cde9f6

+ 27 - 8
src/main/java/com/goafanti/common/mapper/ExpenseAccountMapper.xml

@@ -423,7 +423,7 @@
 
 
   <select id="selectExpenseAccountList" resultType="com.goafanti.expenseAccount.bo.OutExpenseAccountBo">
   <select id="selectExpenseAccountList" resultType="com.goafanti.expenseAccount.bo.OutExpenseAccountBo">
     select a.id,a.total_amount totalAmount,a.`type`,a.process_status processStatus,a.type_other typeOther,
     select a.id,a.total_amount totalAmount,a.`type`,a.process_status processStatus,a.type_other typeOther,
-    a.attachment_url attachmentUrl,a.target_type targetType ,a.user_names userNames,
+    a.attachment_url attachmentUrl,a.target_type targetType ,a.user_names userNames,a.real_amount realAmount,
     a.secondary_type secondaryType, a.secondary_type_other secondaryTypeOther,a.status,
     a.secondary_type secondaryType, a.secondary_type_other secondaryTypeOther,a.status,
     date_format(a.release_start,'%Y-%m-%d %H:%i:%S')releaseStartStr,
     date_format(a.release_start,'%Y-%m-%d %H:%i:%S')releaseStartStr,
     date_format(a.release_end,'%Y-%m-%d %H:%i:%S')releaseEndStr,
     date_format(a.release_end,'%Y-%m-%d %H:%i:%S')releaseEndStr,
@@ -557,7 +557,7 @@
     <include refid="selectExpenseAccountSql"/>
     <include refid="selectExpenseAccountSql"/>
   </select>
   </select>
 
 
-  <select id="selectExpenseAccountTotalAmount" resultType="java.lang.Integer">
+  <select id="selectExpenseAccountTotalAmount" resultType="java.math.BigDecimal">
     select sum(a.total_amount) totalAmount
     select sum(a.total_amount) totalAmount
     from expense_account a
     from expense_account a
     <if test="type !=null">
     <if test="type !=null">
@@ -566,9 +566,17 @@
       left join expense_account c on b.ea_id =c.id
       left join expense_account c on b.ea_id =c.id
       where c.`type` = #{type})x on a.id=x.id
       where c.`type` = #{type})x on a.id=x.id
     </if>
     </if>
-    left join department b on a.apply_dep =b.id left join department c on a.pay_dep =c.id
-    left join admin d on a.aid =d.id left join t_order_new e on a.order_no =e.order_no
-    left join t_order_mid tm on a.order_no =tm.order_no
+    left join admin d on a.aid =d.id left join department f on d.department_id =f.id
+    <if test="expenseMain ==0">
+      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 mea.order_no =e.order_no
+      left join department b on mea.apply_dep =b.id left join department c on mea.pay_dep =c.id
+    </if>
+    <if test="expenseMain ==1">
+      left join t_order_new e on a.order_no =e.order_no
+      left join department b on a.apply_dep =b.id left join department c on a.pay_dep =c.id
+    </if>
     <if test="processStatus ==1">
     <if test="processStatus ==1">
       inner join (select eaid ,auditor,min(process_status)`type` from expense_account_examine
       inner join (select eaid ,auditor,min(process_status)`type` from expense_account_examine
       where auditor= #{auditor} group by eaid) eae on a.id=eae.eaid
       where auditor= #{auditor} group by eaid) eae on a.id=eae.eaid
@@ -869,7 +877,7 @@
     left join expense_relationship er on a.id=er.ea_id  left join expense_account mea on  er.id=mea.id
     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 o on mea.order_no =o.order_no left join t_order_mid tm on o.order_no =tm.order_no
     left join t_order_new o on mea.order_no =o.order_no left join t_order_mid tm on o.order_no =tm.order_no
     left join department dep on mea.apply_dep =dep.id
     left join department dep on mea.apply_dep =dep.id
-    left join department dep2 on mea.pay_dep =dep2.id  left join  admin ad on mea.aid=ad.id
+    left join department dep2 on mea.pay_dep =dep2.id  left join  admin ad on a.aid=ad.id
     left join department dep3 on ad.department_id =dep3.id left join admin ad2 on dep3.finance_id =ad2.id
     left join department dep3 on ad.department_id =dep3.id left join admin ad2 on dep3.finance_id =ad2.id
     where 1=1
     where 1=1
    <include refid="ExpenseDetailsSql"/>
    <include refid="ExpenseDetailsSql"/>
@@ -886,10 +894,10 @@
       </foreach>
       </foreach>
     </if>
     </if>
     <if test="roleType ==1">
     <if test="roleType ==1">
-      and dep.finance_id = #{aid}
+      and dep3.finance_id = #{aid}
     </if>
     </if>
     <if test="roleType ==2">
     <if test="roleType ==2">
-      and dep.finance_id in  (select id from admin where superior_id = #{aid})
+      and dep3.finance_id in  (select id from admin where superior_id = #{aid})
     </if>
     </if>
     <if test=" contractNo != null">
     <if test=" contractNo != null">
       and o.contract_no like concat('%',#{contractNo},'%')
       and o.contract_no like concat('%',#{contractNo},'%')
@@ -920,6 +928,17 @@
     where 1=1
     where 1=1
     <include refid="ExpenseDetailsSql"/>
     <include refid="ExpenseDetailsSql"/>
   </select>
   </select>
+  <select id="ExpenseDetailsTotalAmount" resultType="java.math.BigDecimal">
+    select sum(ead.amount) totalAmount
+    from expense_account_details  ead left join expense_account a on ead.eaid =a.id
+    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 o on mea.order_no =o.order_no left join t_order_mid tm on o.order_no =tm.order_no
+    left join department dep on mea.apply_dep =dep.id
+    left join department dep2 on mea.pay_dep =dep2.id  left join  admin ad on mea.aid=ad.id
+    left join department dep3 on ad.department_id =dep3.id left join admin ad2 on dep3.finance_id =ad2.id
+    where 1=1
+    <include refid="ExpenseDetailsSql"/>
+  </select>
   <select id="selectCountByIdsAndType" resultType="java.lang.Integer">
   <select id="selectCountByIdsAndType" resultType="java.lang.Integer">
     select count(*) from expense_account
     select count(*) from expense_account
     where type =#{type}
     where type =#{type}

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

@@ -28,6 +28,15 @@ public class OutExpenseAccountBo {
     private String financeName;
     private String financeName;
     private String attachmentUrl;
     private String attachmentUrl;
     private Integer examine;
     private Integer examine;
+    private Integer realAmount;
+
+    public Integer getRealAmount() {
+        return realAmount;
+    }
+
+    public void setRealAmount(Integer realAmount) {
+        this.realAmount = realAmount;
+    }
 
 
     public String getReleaseStartStr() {
     public String getReleaseStartStr() {
         return releaseStartStr;
         return releaseStartStr;

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

@@ -121,7 +121,6 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                 eae.setAuditorname(examineName);
                 eae.setAuditorname(examineName);
                 ea.setExamineName(examineName);
                 ea.setExamineName(examineName);
                 if (eae.getAuditor().equals(aid))eae.setStatus(1);
                 if (eae.getAuditor().equals(aid))eae.setStatus(1);
-
                 else  eae.setStatus(0);
                 else  eae.setStatus(0);
                 list.add(eae);
                 list.add(eae);
             }else if (i==2){
             }else if (i==2){
@@ -147,7 +146,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                     list.add(eae);
                     list.add(eae);
                 }
                 }
             }else if (i==4){
             }else if (i==4){
-                List<Admin> admins = adminMapper.selectAdminByRoleType(AFTConstants.All_CED_AND_CHAIRMAN);
+                List<Admin> admins = adminMapper.selectAdminByRoleType(AFTConstants.APPROVAL_DECISION);
                 for (Admin e : admins) {
                 for (Admin e : admins) {
                     ExpenseAccountExamine eae=new ExpenseAccountExamine(id,i);
                     ExpenseAccountExamine eae=new ExpenseAccountExamine(id,i);
                     eae.setAuditor(e.getId());
                     eae.setAuditor(e.getId());
@@ -197,15 +196,12 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         String aid=TokenManager.getAdminId();
         String aid=TokenManager.getAdminId();
         addExpenseAccountLog(in.getId(),status,in.getProcessStatus(),aid,str);
         addExpenseAccountLog(in.getId(),status,in.getProcessStatus(),aid,str);
         Admin admin = adminMapper.selectByPrimaryKey(aid);
         Admin admin = adminMapper.selectByPrimaryKey(aid);
-        if(in.getStatus()==1){
-            in.setProcessStatus(1);
-        }
         if (admin.getSuperiorId()==null||admin.getId().equals(admin.getSuperiorId())){
         if (admin.getSuperiorId()==null||admin.getId().equals(admin.getSuperiorId())){
+            in.setProcessStatus(in.getProcessStatus()+1);
             String str2=String.format("重复审核人跳过[%s]。",EAProcessStatus.getDesc(in.getProcessStatus()));
             String str2=String.format("重复审核人跳过[%s]。",EAProcessStatus.getDesc(in.getProcessStatus()));
             Date date=new Date();
             Date date=new Date();
             date.setTime(date.getTime()+1000L);
             date.setTime(date.getTime()+1000L);
             addExpenseAccountLog(in.getId(),1,in.getProcessStatus(),aid,str2,date);
             addExpenseAccountLog(in.getId(),1,in.getProcessStatus(),aid,str2,date);
-            in.setProcessStatus(in.getProcessStatus()+1);
         }
         }
         createExamineByProcess(in);
         createExamineByProcess(in);
     }
     }
@@ -412,7 +408,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                 ExpenseAccount updateSon=new ExpenseAccount();
                 ExpenseAccount updateSon=new ExpenseAccount();
                 updateSon.setId(e.getId());
                 updateSon.setId(e.getId());
                 updateSon.setStatus(2);
                 updateSon.setStatus(2);
-                expenseAccountMapper.updateByPrimaryKey(e);
+                expenseAccountMapper.updateByPrimaryKeySelective(updateSon);
             }
             }
 
 
 
 
@@ -773,8 +769,8 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             if (in.getApplyDep()!=null)update.setApplyDep(in.getApplyDep());
             if (in.getApplyDep()!=null)update.setApplyDep(in.getApplyDep());
             if (in.getRemarks()!=null)update.setRemarks(in.getRemarks());
             if (in.getRemarks()!=null)update.setRemarks(in.getRemarks());
             if (in.getEaaid()!=null)update.setEaaid(in.getEaaid());
             if (in.getEaaid()!=null)update.setEaaid(in.getEaaid());
+            outExpenseAccount.setProcessStatus(1);
             addExpenseAccountExamine(in.getId(),update);
             addExpenseAccountExamine(in.getId(),update);
-            update.setProcessStatus(1);
             if (outExpenseAccount.getStatus()==0){
             if (outExpenseAccount.getStatus()==0){
                 addExpenseAccountLogAndNoticEmail(outExpenseAccount,0,"发起报销审核");
                 addExpenseAccountLogAndNoticEmail(outExpenseAccount,0,"发起报销审核");
             }else if (outExpenseAccount.getStatus()==3){
             }else if (outExpenseAccount.getStatus()==3){
@@ -784,7 +780,9 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             expenseAccountMapper.updateByMainId(in.getId(),0);
             expenseAccountMapper.updateByMainId(in.getId(),0);
         }
         }
         update.setStatus(in.getStatus());
         update.setStatus(in.getStatus());
+        update.setProcessStatus(outExpenseAccount.getProcessStatus());
         update.setId(in.getId());
         update.setId(in.getId());
+        update.setExamineName(outExpenseAccount.getExamineName());
         return expenseAccountMapper.updateByPrimaryKeySelective(update);
         return expenseAccountMapper.updateByPrimaryKeySelective(update);
     }
     }
 
 
@@ -797,7 +795,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         //1-3s是不同人的审核
         //1-3s是不同人的审核
         if (in.getProcessStatus()!=null&&in.getProcessStatus()==1){
         if (in.getProcessStatus()!=null&&in.getProcessStatus()==1){
             if (TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)){
             if (TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)){
-                in.setProcessStatus(4);
+                in.setProcessStatus(3);
             }else if (TokenManager.hasRole(AFTConstants.FINANCE)){
             }else if (TokenManager.hasRole(AFTConstants.FINANCE)){
                 in.setProcessStatus(2);
                 in.setProcessStatus(2);
             }else if (TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER)){
             }else if (TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER)){
@@ -852,7 +850,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         }else{
         }else{
             params.put("roleType",0);
             params.put("roleType",0);
         }
         }
-        return findPage("ExpenseDetailsList","ExpenseDetailsCount",params,in.getPageNo(),in.getPageSize());
+        return findPagePlus("ExpenseDetailsList","ExpenseDetailsCount","ExpenseDetailsTotalAmount",params,in.getPageNo(),in.getPageSize());
     }
     }
 
 
     @Override
     @Override
@@ -943,6 +941,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
     @Override
     @Override
     public Object updateType(InputExpenseAccount in) {
     public Object updateType(InputExpenseAccount in) {
         expenseAccountDetailsMapper.deleteByeaid(in.getId());
         expenseAccountDetailsMapper.deleteByeaid(in.getId());
+        if (in.getType()!=2)in.setSecondaryType(0);
         return expenseAccountMapper.updateByPrimaryKeySelective(in);
         return expenseAccountMapper.updateByPrimaryKeySelective(in);
     }
     }