Pārlūkot izejas kodu

报销日志修改

anderx 2 gadi atpakaļ
vecāks
revīzija
aff8557d28

+ 67 - 6
src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseAccountServiceImpl.java

@@ -435,16 +435,76 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
     @Override
     public Object logList(Integer eaid) {
         List<OutExpenseAccountLog> list = expenseAccountLogMapper.selectByEaid(eaid);
-        if (!list.isEmpty()){
-        OutExpenseAccountLog lastout=list.get(list.size()-1);
-        if (lastout.getStatus()!=3){
-            List<OutExpenseAccountLog> eaelist = expenseAccountExamineMapper.selectNotExamineByEaidAndProcessStatus(eaid, lastout.getProcessStatus());
-            list.addAll(eaelist);
+        if (!list.isEmpty()) {
+            OutExpenseAccountLog lastout = list.get(list.size() - 1);
+            ExpenseAccount expenseAccount = expenseAccountMapper.selectByPrimaryKey(eaid);
+            Integer processStatus = expenseAccount.getProcessStatus();
+            if (processStatus <4){
+                List<OutExpenseAccountLog> outExpenseAccountLogs = expenseAccountExamineMapper.selectNotExamineByEaidAndProcessStatus(eaid, processStatus);
+                list.addAll(outExpenseAccountLogs);
+                processStatus=3;
+            }
+            if (lastout.getStatus() != 3) {
+                addDetailsLog(list, expenseAccount,processStatus);
+
             }
         }
-        return list;
+            return list;
     }
 
+    private void addDetailsLog(List<OutExpenseAccountLog> list, ExpenseAccount expenseAccount,Integer processStatus) {
+        OrganizationListOut dep = departmentMapper.selectAllById(expenseAccount.getApplyDep());
+        List<ExpenseConfigDetails> configDetails = expenseConfigDetailsMapper.selectByDepId(expenseAccount.getApplyDep());
+        if (processStatus ==3){
+                if (dep.getExpenseRetrialFinanceExamine()==1){
+                    List<ExpenseConfigDetails> collect = configDetails.stream().filter(e -> e.getType() == 1).collect(Collectors.toList());
+                    for (ExpenseConfigDetails e : collect) {
+                        addDetailsTypeLog(list, expenseAccount, e);
+                    }
+                }
+            processStatus++;
+        }
+        if (processStatus ==4){
+            if (dep.getCeoExamine()==1){
+                List<ExpenseConfigDetails> collect = configDetails.stream().filter(e -> e.getType() == 2).collect(Collectors.toList());
+                for (ExpenseConfigDetails e : collect) {
+                    addDetailsTypeLog(list, expenseAccount, e);
+                }
+            }
+            processStatus++;
+        }if (processStatus ==5){
+            if (dep.getCfoExamine()==1){
+                List<ExpenseConfigDetails> collect = configDetails.stream().filter(e -> e.getType() == 3).collect(Collectors.toList());
+                for (ExpenseConfigDetails e : collect) {
+                    addDetailsTypeLog(list, expenseAccount, e);
+                }
+            }
+            processStatus++;
+        }if (processStatus ==6){
+            if (dep.getViceCeoExamine()==1){
+                List<ExpenseConfigDetails> collect = configDetails.stream().filter(e -> e.getType() == 4).collect(Collectors.toList());
+                for (ExpenseConfigDetails e : collect) {
+                    addDetailsTypeLog(list, expenseAccount, e);
+                }
+            }
+            processStatus++;
+        }if (processStatus ==7){
+            if (dep.getCashierExamine()==1){
+                List<ExpenseConfigDetails> collect = configDetails.stream().filter(e -> e.getType() == 5).collect(Collectors.toList());
+                for (ExpenseConfigDetails e : collect) {
+                    addDetailsTypeLog(list, expenseAccount, e);
+                }
+            }
+        }
+    }
+
+    private static void addDetailsTypeLog(List<OutExpenseAccountLog> list, ExpenseAccount expenseAccount, ExpenseConfigDetails e) {
+        OutExpenseAccountLog addLog=new OutExpenseAccountLog();
+        addLog.setEaid(expenseAccount.getId());
+        addLog.setAuditor(e.getAid());
+        addLog.setAuditorName(e.getAdminName());
+        list.add(addLog);
+    }
 
 
 
@@ -997,6 +1057,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             expenseAccountMapper.updateByMainId(in.getId(),0);
             addExpenseAccountLog(in.getId(),4,0,in.getAid(),"撤销报销审核");
             List<ExpenseRelationship> list = expenseRelationshipMapper.selectById(in.getId());
+            //撤销日志处理,先将日志改在挂子编号上,在新发起的时候再从自编号加到新编号上
             if (list.size()==1){
                 ExpenseRelationship e =list.get(0);
                 expenseAccountLogMapper.updateUseLogByUseId(e.getEaId(),e.getId());