Forráskód Böngészése

日报导出针对并行审核模式修复bug

QuYueTing 8 hónapja
szülő
commit
db2551e15e

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java

@@ -567,6 +567,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
         User user = userMapper.selectById(userId);
         DateTimeFormatter yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd");
         String format = yyyyMMdd.format(LocalDate.now());
+        //TODO: 存在潜在bug,多个人同时提交时,可能会出现重复的code,考虑换成redis计数器
         List<ExpenseSheet> list = expenseSheetMapper.selectList(new QueryWrapper<ExpenseSheet>()
                 .eq("company_id", user.getCompanyId())
                 .like("code", format).orderByDesc("id").last("limit 1"));

+ 53 - 18
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -5969,12 +5969,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 List<UserDailyWorkItem> noReportUserList = (List<UserDailyWorkItem>)noReportMsg.data;
                 //追加到最后
                 for (UserDailyWorkItem item : noReportUserList) {
-                    HashMap mapItem = item.toHashMap();
-                    mapItem.put("duration", 0);
-                    mapItem.put("isOvertime", 0);
-                    mapItem.put("createDate", item.getCreateDate());
-                    mapItem.put("state", 99);
-                    allReportByDate.add(mapItem);
+                    if (!"请假".equals(item.status)) {
+                        HashMap mapItem = item.toHashMap();
+                        mapItem.put("duration", 0);
+                        mapItem.put("isOvertime", 0);
+                        mapItem.put("createDate", item.getCreateDate());
+                        mapItem.put("state", 99);
+                        allReportByDate.add(mapItem);
+                    }
                 }
             }
             for (Map<String, Object> map : allReportByDate) {
@@ -6358,23 +6360,56 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                                 }
                             } else {
                                 //项目审核或分组审核
-                                if (String.valueOf(map.get("projectAuditState")).equals("0") || String.valueOf(map.get("groupAuditState")).equals("0")) {
-                                    String projectAuditorName = map.get("projectAuditorName") + "";
-                                    String projectAuditorId = map.get("projectAuditorId") + "";
-                                    if (needCorpWxTranslate||(dingding!=null&&dingding.getContactNeedTranslate()==1)) {
+                                if (timeType.getReportAuditType() == 7) {
+                                    //项目和部门并行审核模式
+                                    String str = "待";
+                                    if (String.valueOf(map.get("projectAuditState")).equals("0")) {
+                                        String projectAuditorName = map.get("projectAuditorName") + "";
+                                        if (needCorpWxTranslate) {
+                                            for (User userItem : userList) {
+                                                if (userItem.getId().equals(map.get("projectAuditorId"))) {
+                                                    projectAuditorName = "$userName=" + userItem.getCorpwxRealUserid() + "$";
+                                                    break;
+                                                }
+                                            }
+                                        }
+                                        str += "项目审核人("+projectAuditorName+")";
+                                    }
+                                    if (String.valueOf(map.get("departmentAuditState")).equals("0")) {
+                                        String deptAuditorId = map.get("deptAuditorName") + "";
                                         for (User userItem : userList) {
-                                            if (userItem.getId().equals(projectAuditorId)) {
-                                                if(needCorpWxTranslate){
-                                                    projectAuditorName = "$userName=" + userItem.getCorpwxUserid() + "$";
-                                                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
-                                                    projectAuditorName = "$userName=" + userItem.getDingdingUserid() + "$";
+                                            if (userItem.getId().equals(deptAuditorId)) {
+                                                String deptAuditorName = userItem.getName();
+                                                if (needCorpWxTranslate) {
+                                                    deptAuditorName = "$userName=" + userItem.getCorpwxRealUserid() + "$";
                                                 }
-                                                item.add("待项目审核人" + "(" + projectAuditorName + ")审核");
+                                                if (str.length() > 1) str += "、";
+                                                str += "部门审核人("+deptAuditorName+")";
                                                 break;
                                             }
                                         }
-                                    } else {
-                                        item.add("待项目审核人" + "(" + projectAuditorName + ")审核");
+                                    }
+                                    str += "审核";
+                                    item.add(str);
+                                } else {
+                                    if (String.valueOf(map.get("projectAuditState")).equals("0") || String.valueOf(map.get("groupAuditState")).equals("0")) {
+                                        String projectAuditorName = map.get("projectAuditorName") + "";
+                                        String projectAuditorId = map.get("projectAuditorId") + "";
+                                        if (needCorpWxTranslate||(dingding!=null&&dingding.getContactNeedTranslate()==1)) {
+                                            for (User userItem : userList) {
+                                                if (userItem.getId().equals(projectAuditorId)) {
+                                                    if(needCorpWxTranslate){
+                                                        projectAuditorName = "$userName=" + userItem.getCorpwxUserid() + "$";
+                                                    }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                                                        projectAuditorName = "$userName=" + userItem.getDingdingUserid() + "$";
+                                                    }
+                                                    item.add("待项目审核人" + "(" + projectAuditorName + ")审核");
+                                                    break;
+                                                }
+                                            }
+                                        } else {
+                                            item.add("待项目审核人" + "(" + projectAuditorName + ")审核");
+                                        }
                                     }
                                 }
                             }