Browse Source

报销开发

anderx 2 years ago
parent
commit
8666165c28

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

@@ -656,6 +656,11 @@
 
 
   <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.order_no,o.contract_no,b.aname,b.apply_dep,b.pay_dep,
            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 sonAmount,c.`type` ,c.type_other ,c.user_names ,c.release_start ,c.release_end ,
@@ -666,8 +671,7 @@
            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
-    where a.id= #{id}
-  </select>
+  </sql>
 
   <select id="selectListByMainId" resultMap="BaseResultMap">
     select b.*
@@ -693,6 +697,7 @@
     <result column="accounts" jdbcType="VARCHAR" property="accounts" />
     <result column="status" jdbcType="INTEGER" property="status" />
     <result column="process_status" jdbcType="INTEGER" property="processStatus" />
+    <result column="createTimeStr" jdbcType="VARCHAR" property="createTimeStr" />
     <association property="sonList" resultMap="SonExpenseAccountMap"></association>
   </resultMap>
 
@@ -730,4 +735,70 @@
     where a.id= #{id} and a.ea_id=b.id
   </update>
 
+  <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,
+    date_format(a.create_time,'%Y-%m-%d %H:%i:%S')createTimeStr,b.status,b.process_status,
+    dep.name applyDepName,dep2.name payDepName, b.remarks,b.eaaid ,
+    c.id sonId,c.total_amount sonAmount,c.`type` ,c.type_other ,c.user_names ,c.release_start ,c.release_end
+    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 c on a.ea_id =c.id
+
+    left join admin ad on b.aid=ad.id
+    left join department adDep on ad .department_id=adDep.id
+    where 1=1 and b.expense_main =1
+    <if test=" status != null">
+    and b.status = #{status}
+    </if>
+    <if test=" roleType ==0">
+      and b.aid = #{aid}
+    </if>
+    <if test="roleType == 1">
+    and b.process_status &gt; 0
+      and ad.superior_id= #{aid}
+    </if>
+    <if test="roleType == 2">
+      and b.process_status &gt; 1
+      and adDep.finance_id = #{aid}
+    </if>
+    <if test="roleType == 3">
+      and b.process_status &gt; 2
+      and ad.department_id in
+      <foreach collection="deps" item="dep" open="(" close=")" separator=",">
+        #{dep}
+      </foreach>
+    </if>
+    ${page_sql}
+  </select>
+  <select id="ExpenseMainCount" resultType="java.lang.Integer">
+    select count(*)
+    from expense_account b
+    left join admin ad on b.aid=ad.id
+    left join department adDep on ad .department_id=adDep.id
+    where 1=1 and b.expense_main =1
+    <if test=" status != null">
+      and b.status = #{status}
+    </if>
+    <if test=" roleType ==0">
+      and b.aid = #{aid}
+    </if>
+    <if test="roleType == 1">
+      and b.process_status &gt; 0
+      and ad.superior_id= #{aid}
+    </if>
+    <if test="roleType == 2">
+      and b.process_status &gt; 1
+      and adDep.finance_id = #{aid}
+    </if>
+    <if test="roleType == 3">
+      and b.process_status &gt; 2
+      and ad.department_id in
+      <foreach collection="deps" item="dep" open="(" close=")" separator=",">
+        #{dep}
+      </foreach>
+    </if>
+  </select>
+
 </mapper>

+ 46 - 0
src/main/java/com/goafanti/expenseAccount/bo/ExpenseMainListInput.java

@@ -0,0 +1,46 @@
+package com.goafanti.expenseAccount.bo;
+
+public class ExpenseMainListInput {
+    private Integer pageSize;
+    private Integer pageNo;
+    /**
+     * @param pageSize 状态 0=草稿,1=审核中,2=完成,3=驳回 ,4=撤销
+     */
+    private Integer status;
+    /**
+     * @param pageSize 0 自己的主项目 1审核的主项目
+     */
+    private Integer processStatus;
+
+    public Integer getProcessStatus() {
+        return processStatus;
+    }
+
+    public void setProcessStatus(Integer processStatus) {
+        this.processStatus = processStatus;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public Integer getPageNo() {
+        return pageNo;
+    }
+
+    public void setPageNo(Integer pageNo) {
+        this.pageNo = pageNo;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+}

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

@@ -19,10 +19,19 @@ public class InputPageListBo {
     private String applyDep;
     private String payDep;
     private String checkNo;
+    private String expenseType;
 
     private Integer pageNo;
     private Integer pageSize;
 
+    public String getExpenseType() {
+        return expenseType;
+    }
+
+    public void setExpenseType(String expenseType) {
+        this.expenseType = expenseType;
+    }
+
     public String getCheckNo() {
         return checkNo;
     }

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

@@ -5,7 +5,10 @@ import java.util.List;
 
 public class MainExpenseAccount  {
 
+
     private Integer id;
+    private Integer status;
+    private Integer processStatus;
     private String checkNo;
     private BigDecimal totalAmount;
     private String orderNo;
@@ -17,12 +20,21 @@ public class MainExpenseAccount  {
     private String payDepName;
     private String remarks;
     private Integer eaaid;
-    private List<OutExpenseAccount> sonList;
     private String name;
     private String bank;
     private String accounts;
-    private Integer status;
-    private Integer processStatus;
+    private String createTimeStr;
+
+
+    private List<OutExpenseAccount> sonList;
+
+    public String getCreateTimeStr() {
+        return createTimeStr;
+    }
+
+    public void setCreateTimeStr(String createTimeStr) {
+        this.createTimeStr = createTimeStr;
+    }
 
     public List<OutExpenseAccount> getSonList() {
         return sonList;

+ 12 - 0
src/main/java/com/goafanti/expenseAccount/controller/ExpenseAccountController.java

@@ -259,6 +259,18 @@ public class ExpenseAccountController extends CertifyApiController {
     }
 
     /**
+     * 主报销列表
+     * @param in
+     * @return
+     */
+    @RequestMapping(value = "/mainList",method = RequestMethod.GET)
+    public Result mainList(ExpenseMainListInput in){
+        Result res =new Result();
+        return res.data(expenseAccountService.mainList(in));
+    }
+
+
+    /**
      * 主报销详情
      * @param id
      * @return

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

@@ -45,4 +45,6 @@ public interface ExpenseAccountService {
     Object mainExpense(Integer id);
 
     Object updateMain(MainExpenseAccount in);
+
+    Object mainList(ExpenseMainListInput id);
 }

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

@@ -1,6 +1,7 @@
 package com.goafanti.expenseAccount.service.impl;
 
 import com.goafanti.admin.bo.AdminListBo;
+import com.goafanti.admin.service.DepartmentService;
 import com.goafanti.common.bo.AdminNoticeBo;
 import com.goafanti.common.bo.EmailBo;
 import com.goafanti.common.constant.AFTConstants;
@@ -56,6 +57,8 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
     private FinanceCountMapper financeCountMapper;
     @Autowired
     private ExpenseRelationshipMapper expenseRelationshipMapper;
+    @Autowired
+    private DepartmentService departmentService;
 
 
 
@@ -726,6 +729,32 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         return expenseAccountMapper.updateByPrimaryKeySelective(update);
     }
 
+    @Override
+    public Object mainList(ExpenseMainListInput in) {
+        Map<String,Object> params = new HashMap<>();
+        if (in.getStatus()!=null) params.put("status",in.getStatus());
+        if (in.getProcessStatus()==null){
+            if (TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)){
+                in.setProcessStatus(3);
+            }else if (TokenManager.hasRole(AFTConstants.FINANCE)||TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)){
+                in.setProcessStatus(2);
+            }else if (TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER)){
+                in.setProcessStatus(1);
+            }else {
+                in.setProcessStatus(0);
+            }
+        }
+        if (in.getProcessStatus()!=null){
+            params.put("aid",TokenManager.getAdminId());
+            params.put("roleType",in.getProcessStatus());
+            if (in.getProcessStatus()==3){
+                params.put("deps",departmentService.selectMyDeps());
+            }
+        }
+        return findPage("ExpenseMainList","ExpenseMainCount",params,in.getPageNo(),in.getPageSize());
+    }
+
+
     /**
      * 计算当前报销显示抵扣金额
      * @param useEa
@@ -837,6 +866,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         if (in.getPayDep()!=null)param.put("payDep",in.getPayDep());
         if (in.getType()!=null)param.put("type",in.getType());
         if (in.getCheckNo()!=null)param.put("checkNo",in.getCheckNo());
+        if (in.getExpenseType()!=null)param.put("expenseType",in.getExpenseType());
     }
 
     /**