Explorar o código

财务专员费用单、费用明细列表权限修改
报销统计财务专员修改

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

+ 3 - 1
src/main/java/com/goafanti/common/dao/ExpenseAccountMapper.java

@@ -33,7 +33,7 @@ public interface ExpenseAccountMapper {
                                                @Param("id")Integer id);
 
     List<OutMyEAStatistics> selectStatistics(@Param("name") String name, @Param("depId") String depId,
-                                             @Param("startTime") String startTime, @Param("endTime") String endTime);
+                                             @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("lander") String lander);
 
     List<ExpenseAccount> selectByDebitId(Integer debitId);
 
@@ -64,4 +64,6 @@ public interface ExpenseAccountMapper {
     void updateDeleteDebitId(Integer id);
 
     List<MainExpenseAccount> selectSonByMainIds(List<Integer> list);
+
+    void updateSonByMainId(Integer id);
 }

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

@@ -473,7 +473,6 @@
       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
     </if>
-
     <include refid="selectExpenseAccountSql"/>
     order by a.status,a.create_time desc
     <if test="page_sql !=null">
@@ -492,6 +491,9 @@
       </if>
     </if>
     <if test="processStatus ==2">
+        <if test="roleType ==0">
+          and f.finance_id = #{auditor}
+        </if>
       <if test="examineStatus ==0">
         and a.process_status> 1
         and a.status in (1,2)
@@ -637,7 +639,11 @@
     select a.aid,a.aname ,a.type,a.status ,a.amount totalAmount ,ifnull(a.debit_id,0) debitId ,a.target_type targetType ,ifnull(a2.settlement_amount,0) bxdkAmount
     from expense_account a
     left join expense_account a2 on a.debit_id =a2.id left join admin ad on a.aid=ad.id
+    left join department dep on ad.department_id=dep.id
     where 1=1 and a.expense_main=0 and a.status>0
+      <if test="lander != null">
+      and dep.finance_id = #{lander}
+      </if>
     <if test="name != null">
       and a.aname like concat('%',#{name},'%')
     </if>
@@ -815,9 +821,15 @@
     set debit_id=null
     where id= #{id}
   </update>
+    <update id="updateSonByMainId">
+      update expense_relationship a left join expense_account b on a.id =b.id
+        left join expense_account c on a.ea_id =c.id
+        set c.status =b.status ,c.process_status =b.process_status
+      where a.id= #{id}
+    </update>
 
 
-  <select id="ExpenseMainList" resultMap="MainMap">
+    <select id="ExpenseMainList" resultMap="MainMap">
     select b.id,b.check_no,b.total_amount,b.order_no,o.contract_no ,b.aname,b.apply_dep,b.pay_dep,b.amount,
     date_format(b.create_time,'%Y-%m-%d %H:%i:%S')createTimeStr,b.status,b.process_status,b.examine_name,
     dep.name applyDepName,dep2.name payDepName, b.remarks,b.eaaid

+ 16 - 8
src/main/java/com/goafanti/expenseAccount/controller/ExpenseAccountController.java

@@ -1,6 +1,7 @@
 package com.goafanti.expenseAccount.controller;
 
 import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.model.ExpenseAccount;
@@ -232,7 +233,6 @@ public class ExpenseAccountController extends CertifyApiController {
             res.getError().add(buildError(ParamUtils.getParamMsg(in,param),ParamUtils.getParamName(in,param)));
             return res;
         }
-
         res.setData(expenseAccountService.updateExamine(in));
         return res;
     }
@@ -257,9 +257,13 @@ public class ExpenseAccountController extends CertifyApiController {
      * @return
      */
     @RequestMapping(value = "/statistics",method = RequestMethod.GET)
-    public Result statistics(String name,String depId,String startTime,String endTime){
-        Result res=new Result();
-        res.setData(expenseAccountService.statistics( name, depId, startTime, endTime));
+    public Result statistics(String name,String depId,String startTime,String endTime) {
+        Result res = new Result();
+        String lander = null;
+        if (TokenManager.hasRole(AFTConstants.FINANCE)) {
+            lander = TokenManager.getAdminId();
+        }
+        res.setData(expenseAccountService.statistics(name, depId, startTime, endTime, lander));
         return res;
     }
 
@@ -276,10 +280,14 @@ public class ExpenseAccountController extends CertifyApiController {
      * @return
      */
     @RequestMapping(value = "/statistics/export",method = RequestMethod.GET)
-    public Result statisticsExport(String name,String depId,String startTime,String endTime){
-        List<OutExpenseAccountStatistics> list = expenseAccountService.statistics( name,  depId,  startTime,  endTime);
-        NewExcelUtil<OutExpenseAccountStatistics> newExcelUtil=new NewExcelUtil<>(OutExpenseAccountStatistics.class);
-        return newExcelUtil.exportExcel(list,"报销统计",uploadPath);
+    public Result statisticsExport(String name,String depId,String startTime,String endTime) {
+        String lander = null;
+        if (TokenManager.hasRole(AFTConstants.FINANCE)) {
+            lander = TokenManager.getAdminId();
+        }
+        List<OutExpenseAccountStatistics> list = expenseAccountService.statistics(name, depId, startTime, endTime, lander);
+        NewExcelUtil<OutExpenseAccountStatistics> newExcelUtil = new NewExcelUtil<>(OutExpenseAccountStatistics.class);
+        return newExcelUtil.exportExcel(list, "报销统计", uploadPath);
     }
 
     /**

+ 1 - 1
src/main/java/com/goafanti/expenseAccount/service/ExpenseAccountService.java

@@ -33,7 +33,7 @@ public interface ExpenseAccountService {
 
     List<OutExpenseAccount> selectDebitOrder(String depId,Integer id);
 
-    List<OutExpenseAccountStatistics> statistics(String name,String depId,String startTime,String endTime);
+    List<OutExpenseAccountStatistics> statistics(String name,String depId,String startTime,String endTime,String lander);
 
 
     void statisticsEvict(String name, String depId, String startTime, String endTime);

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

@@ -426,8 +426,6 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                 updateSon.setStatus(2);
                 expenseAccountMapper.updateByPrimaryKeySelective(updateSon);
             }
-
-
         }else if (newEa.getStatus()==1){
             if (newEa.getProcessStatus()==EAProcessStatus.CWSH.getCode()){
                 pushFinanceCount(admin.getDepFinance(),useEa.getCreateTime(),0);
@@ -465,6 +463,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         //审核处理审核表
         pushExpenseAccountExamine(in);
         expenseAccountMapper.updateByPrimaryKeySelective(newEa);
+        expenseAccountMapper.updateSonByMainId(newEa.getId());
         return 1;
     }
 
@@ -1015,6 +1014,9 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                      TokenManager.hasRole(AFTConstants.VICE_CEO)|| TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)){
                  //财务管理员和超级管理员查看全部
                  in.setProcessStatus(6);
+             }else if (TokenManager.hasRole(AFTConstants.FINANCE)){
+                 //0 设置为财务查看
+                 param.put("roleType",0);
              }
                 if (in.getAid()!=null){
                     param.put("aid",in.getAid());
@@ -1063,12 +1065,12 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
 
 
     @Override
-    @Cacheable(value = "expenseAccountStatistics#300", key = "'page:'+#name+',depId'+#depId+',startTime'+#startTime+',endTime'+#endTime")
-    public List<OutExpenseAccountStatistics> statistics(String name,String depId,String startTime,String endTime) {
-        if (endTime!=null)endTime=endTime+" 23:59:59";
-        List<OutMyEAStatistics> list = expenseAccountMapper.selectStatistics(name, depId, startTime, endTime);
-        List<OutExpenseAccountStatistics> results=new ArrayList<>();
-        Map<String ,Object> map=new HashMap<>();
+    @Cacheable(value = "expenseAccountStatistics#300", key = "'page:'+#name+',depId'+#depId+',startTime'+#startTime+',endTime'+#endTime+'lander'+#lander")
+    public List<OutExpenseAccountStatistics> statistics(String name,String depId,String startTime,String endTime,String lander) {
+        if (endTime != null) endTime = endTime + " 23:59:59";
+        List<OutMyEAStatistics> list = expenseAccountMapper.selectStatistics(name, depId, startTime, endTime, lander);
+        List<OutExpenseAccountStatistics> results = new ArrayList<>();
+        Map<String, Object> map = new HashMap<>();
         for (OutMyEAStatistics e : list) {
             OutExpenseAccountStatistics out = new OutExpenseAccountStatistics(e.getAid());
             out.setAname(e.getAname());
@@ -1100,35 +1102,35 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                 out.setBhs(1);
             }
             //如果不存在就新增
-            if (!map.keySet().contains(out.getAid())){
-                List<OutExpenseAccountStatistics> list2=new ArrayList<>();
+            if (!map.keySet().contains(out.getAid())) {
+                List<OutExpenseAccountStatistics> list2 = new ArrayList<>();
                 list2.add(out);
-                map.put(out.getAid(),list2);
-            }else {
+                map.put(out.getAid(), list2);
+            } else {
                 List<OutExpenseAccountStatistics> list2 = (List<OutExpenseAccountStatistics>) map.get(e.getAid());
                 list2.add(out);
             }
         }
         for (String s : map.keySet()) {
             List<OutExpenseAccountStatistics> list3 = (List<OutExpenseAccountStatistics>) map.get(s);
-            if (!list3.isEmpty()){
-                OutExpenseAccountStatistics out =new OutExpenseAccountStatistics(s);
+            if (!list3.isEmpty()) {
+                OutExpenseAccountStatistics out = new OutExpenseAccountStatistics(s);
 
                 for (OutExpenseAccountStatistics e : list3) {
-                    if (out.getAname()==null)out.setAname(e.getAname());
-                    if (e.getBx()!=null)out.setBx(out.getBx()+e.getBx());
-                    if (e.getJz()!=null)out.setJz(out.getJz()+e.getJz());
-                    if (e.getDk()!=null)out.setDk(out.getDk()+e.getDk());
-                    if (e.getBxAmount()!=null)out.setBxAmount(out.getBxAmount().add(e.getBxAmount()));
-                    if (e.getJzAmount()!=null)out.setJzAmount(out.getJzAmount().add(e.getJzAmount()));
-                    if (e.getDkAmount()!=null)out.setDkAmount(out.getDkAmount().add(e.getDkAmount()));
-                    if (e.getGdfyAmount()!=null)out.setGdfyAmount(out.getGdfyAmount().add(e.getGdfyAmount()));
-                    if (e.getBxddAmount()!=null)out.setBxddAmount(out.getBxddAmount().add(e.getBxddAmount()));
-                    if (e.getWshs()!=null)out.setWshs(out.getWshs()+e.getWshs());
-                    if (e.getBhs()!=null)out.setBhs(out.getBhs()+e.getBhs());
+                    if (out.getAname() == null) out.setAname(e.getAname());
+                    if (e.getBx() != null) out.setBx(out.getBx() + e.getBx());
+                    if (e.getJz() != null) out.setJz(out.getJz() + e.getJz());
+                    if (e.getDk() != null) out.setDk(out.getDk() + e.getDk());
+                    if (e.getBxAmount() != null) out.setBxAmount(out.getBxAmount().add(e.getBxAmount()));
+                    if (e.getJzAmount() != null) out.setJzAmount(out.getJzAmount().add(e.getJzAmount()));
+                    if (e.getDkAmount() != null) out.setDkAmount(out.getDkAmount().add(e.getDkAmount()));
+                    if (e.getGdfyAmount() != null) out.setGdfyAmount(out.getGdfyAmount().add(e.getGdfyAmount()));
+                    if (e.getBxddAmount() != null) out.setBxddAmount(out.getBxddAmount().add(e.getBxddAmount()));
+                    if (e.getWshs() != null) out.setWshs(out.getWshs() + e.getWshs());
+                    if (e.getBhs() != null) out.setBhs(out.getBhs() + e.getBhs());
                 }
-                BigDecimal totalAmount=new BigDecimal(0);
-                totalAmount=totalAmount.add(out.getBxAmount()).add(out.getJzAmount()).subtract(out.getDkAmount());
+                BigDecimal totalAmount = new BigDecimal(0);
+                totalAmount = totalAmount.add(out.getBxAmount()).add(out.getJzAmount()).subtract(out.getDkAmount());
                 out.setTotalAmount(totalAmount);
                 results.add(out);
             }