Просмотр исходного кода

财务统计报销模块修改

anderx лет назад: 2
Родитель
Сommit
8986175392

+ 10 - 0
src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java

@@ -651,6 +651,9 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 			if (!orderList.isEmpty()){
 				aList.addAll(orderList);
 			}
+			if (admin.getId().equals("060583e4-82a2-4f72-8141-ae44806844e7")){
+				System.out.println("???");
+			}
 			List<FinanceCount> expenseList = expenseAccountMapper.selectCountByFinance(admin.getId());
 			pushFinanceList(aList, expenseList,0);
 			List<FinanceCount> invoiceList =tOrderInvoiceMapper.selectCountByFinance(admin.getId());
@@ -659,6 +662,13 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 			pushFinanceList(aList, memberList,2);
 			List<FinanceCount> paymentList =tOrderPaymentMapper.selectCountByFinance(admin.getId());
 			pushFinanceList(aList, paymentList,3);
+			if (!aList.isEmpty()){
+				for (FinanceCount financeCount : aList) {
+					if (financeCount.getExpenseCount()!=null&&financeCount.getExpenseCount()>0){
+						financeCount.toString();
+					}
+				}
+			}
 			list.addAll(aList);
 		}
 		List<FinanceCount> addList=new ArrayList<>();

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

@@ -618,11 +618,9 @@
   </select>
     <select id="selectCountByFinance" resultType="com.goafanti.common.model.FinanceCount">
       select x.aid, x.dates dateTime, count(*)expenseCount, sum(if(x.process_status = 1, 1, 0))expenseUnauditedCount
-      from (select a.aid , a.process_status, DATE_FORMAT(a.create_time , '%Y-%m-%d') dates
-            from expense_account a
-            where status in (1, 2)
-              and process_status >0
-              and a.aid = #{aid})x
+      from (select c.finance_id aid , a.process_status, DATE_FORMAT(a.create_time , '%Y-%m-%d') dates
+            from expense_account a left join admin b on a.aid=b.id left join department c on b.department_id =c.id
+            where a.status in (1, 2) and a.process_status >0 and c.finance_id = #{aid})x
       group by x.aid, x.dates;
     </select>
 

+ 20 - 0
src/main/java/com/goafanti/common/model/FinanceCount.java

@@ -226,4 +226,24 @@ public class FinanceCount implements Serializable {
     public void setCreateTime(Date createTime) {
         this.createTime = createTime;
     }
+
+    @Override
+    public String toString() {
+        return "FinanceCount{" +
+                "id=" + id +
+                ", aid='" + aid + '\'' +
+                ", orderCount=" + orderCount +
+                ", orderUnauditedCount=" + orderUnauditedCount +
+                ", expenseCount=" + expenseCount +
+                ", expenseUnauditedCount=" + expenseUnauditedCount +
+                ", invoiceCount=" + invoiceCount +
+                ", invoiceUnauditedCount=" + invoiceUnauditedCount +
+                ", memberCount=" + memberCount +
+                ", memberUnauditedCount=" + memberUnauditedCount +
+                ", paymentCount=" + paymentCount +
+                ", paymentUnauditedCount=" + paymentUnauditedCount +
+                ", dateTime=" + dateTime +
+                ", createTime=" + createTime +
+                '}';
+    }
 }

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

@@ -205,9 +205,9 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
      */
     private void createExamineByProcess(InputExpenseAccount in) {
         //审核流程推送到最新
-        examineByprocess(in);
-        List<Admin> aids=new ArrayList<>();
         AdminListBo admin = adminMapper.getDeptNameByAid(in.getAid());
+        examineByprocess(in,admin);
+        List<Admin> aids=new ArrayList<>();
         if(in.getProcessStatus()== EAProcessStatus.SJSH.getCode()){
             //获取上级
             Admin superAdmin = adminMapper.selectByPrimaryKey(admin.getSuperiorId());
@@ -218,9 +218,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             Admin finaceAdmin = adminMapper.selectByPrimaryKey(admin.getDepFinance());
             aids.add(finaceAdmin);
             in.setExamineName(finaceAdmin.getName());
-            String startTime=DateUtils.formatDate(new Date(),AFTConstants.YYYYMMDD);
-            FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getDepFinance(), startTime);
-            addFinanceCount(startTime, admin.getDepFinance(), financeCount);
+            addFinanceCount( admin.getDepFinance(), new Date());
         }else if (in.getProcessStatus()== EAProcessStatus.ZJLSH.getCode()){
             //获取部门负责人
             List<Admin> list = adminMapper.listAdminBydepIdAndRoleType(admin.getDepartmentId(), AFTConstants.SALESMAN_ADMIN);
@@ -399,18 +397,18 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         }
         if (newEa.getStatus()==1){
             if (newEa.getProcessStatus()==EAProcessStatus.CWSH.getCode()){
-                pushFinanceCount(admin.getDepFinance(),newEa.getCreateTime(),0);
+                pushFinanceCount(admin.getDepFinance(),useEa.getCreateTime(),0);
             }else if (newEa.getProcessStatus()==EAProcessStatus.ZJLSH.getCode()){
-                pushFinanceCount(admin.getDepFinance(),newEa.getCreateTime(),1);
+                pushFinanceCount(admin.getDepFinance(),useEa.getCreateTime(),1);
             }
         }else if (newEa.getStatus()==3){
             if (useEa.getProcessStatus()==EAProcessStatus.CWSH.getCode()){
-                pushFinanceCount(admin.getDepFinance(),newEa.getCreateTime(),2);
+                pushFinanceCount(admin.getDepFinance(),useEa.getCreateTime(),2);
             }else if (newEa.getProcessStatus()>EAProcessStatus.ZJLSH.getCode()){
-                pushFinanceCount(admin.getDepFinance(),newEa.getCreateTime(),3);
+                pushFinanceCount(admin.getDepFinance(),useEa.getCreateTime(),3);
             }
         }
-        pushExpenseFinaceCount(useEa,newEa);
+
             //审核处理审核表
             pushExpenseAccountExamine(in);
         expenseAccountMapper.updateByPrimaryKeySelective(newEa);
@@ -418,7 +416,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
     }
 
     private void pushExpenseFinaceCount(ExpenseAccount useEa, ExpenseAccount newEa) {
-        String startTime=DateUtils.formatDate(newEa.getCreateTime(),AFTConstants.YYYYMMDD);
+        String startTime=DateUtils.formatDate(useEa.getCreateTime(),AFTConstants.YYYYMMDD);
         AdminListBo admin = adminMapper.getDeptNameByAid(useEa.getAid());
         FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getDepFinance(), startTime);
         //通过
@@ -427,7 +425,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             if (newEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()||
                     useEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()){
                 if (newEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()){
-                    addFinanceCount(startTime, admin.getDepFinance(), financeCount);
+                    addFinanceCount(admin.getDepFinance(), startTime);
                     //如果当前是财务审核通过就要减去未审核
                 }else if (useEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()){
                     FinanceCount newFinanceCount =new FinanceCount();
@@ -454,8 +452,13 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         }
 
     }
+    private void addFinanceCount(String aid,Date startTime ) {
+        String forDate=DateUtils.formatDate(startTime,AFTConstants.YYYYMMDD);
+        addFinanceCount(aid,forDate);
+    }
 
-    private void addFinanceCount(String startTime, String aid, FinanceCount financeCount) {
+    private void addFinanceCount(String aid,String startTime ) {
+        FinanceCount financeCount = financeCountMapper.selectByAidAndDates(aid, startTime);
         if (financeCount ==null){
             financeCount =FinanceCount.initialization(aid, startTime);
             financeCount.setExpenseCount(1);
@@ -487,7 +490,9 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             str=str.append("您有报销需要审核,").append("报销编号[").append(in.getId()).append("]").append(",请查看并审核。");
             //新的流程是当前流程+1
             newEa.setProcessStatus(useEa.getProcessStatus()+1);
-            pushExamineProcess(newEa);
+            newEa.setAid(useEa.getAid());
+            newEa.setCreateTime(useEa.getCreateTime());
+            pushExamineProcess(newEa,admin);
             if (newEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()){
                 //获取财务负责人
                 Admin finaceAdmin = adminMapper.selectByPrimaryKey(admin.getDepFinance());
@@ -562,11 +567,11 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
 
     }
 
-    private void pushExamineProcess( ExpenseAccount newEa) {
+    private void pushExamineProcess( ExpenseAccount newEa,AdminListBo admin) {
         //如果到了董事长审核,无需判断了
         if (newEa.getProcessStatus()<EAProcessStatus.WCSH.getCode()){
             //判断没一个流程是否可以跳过
-             examineByprocess(newEa);
+             examineByprocess(newEa,admin);
         }
     }
 
@@ -574,7 +579,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
      * 审核流程推送,只要不是完成状态就继续判断是否跳过
      * @param newEa
      */
-    private void examineByprocess( ExpenseAccount newEa) {
+    private void examineByprocess( ExpenseAccount newEa,AdminListBo admin) {
         //获取当前流程审核人,如果有已审核则跳过当前审核
         List<ExpenseAccountExamine> list = expenseAccountExamineMapper.selectByEaidAndProcessStatus(newEa.getId(), newEa.getProcessStatus());
         boolean flag=false;
@@ -585,14 +590,22 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                 aid=e.getAuditor();
                 break;
             }
+            if(e.getAuditor().equals(newEa.getAid())){
+                flag=true;
+                break;
+            }
         }
+
         if (flag){
             String str=String.format("重复审核人跳过[%s]。",EAProcessStatus.getDesc(newEa.getProcessStatus()));
             Date date=new Date();
             date.setTime(date.getTime()+1000l);
             addExpenseAccountLog(newEa.getId(),1,newEa.getProcessStatus(),aid,str,date);
+            if (newEa.getProcessStatus()==EAProcessStatus.CWSH.getCode()){
+                addFinanceCount(admin.getDepFinance(),newEa.getCreateTime());
+            }
             newEa.setProcessStatus(newEa.getProcessStatus()+1);
-            if (newEa.getProcessStatus()<EAProcessStatus.WCSH.getCode())examineByprocess(newEa);
+            if (newEa.getProcessStatus()<EAProcessStatus.WCSH.getCode())examineByprocess(newEa,admin);
         }
 
     }