Jelajahi Sumber

修复智能填报的审核人乱码问题

QuYueTing 7 bulan lalu
induk
melakukan
b199e580e9

+ 47 - 9
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -8051,7 +8051,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     public HttpRespMsg getAIReport(HttpServletRequest request) {
         HttpRespMsg msg = new HttpRespMsg();
         String userId = request.getHeader("token");
-        Integer companyId = userMapper.selectById(userId).getCompanyId();
+        User user = userMapper.selectById(userId);
+        Integer companyId = user.getCompanyId();
         Company company = companyMapper.selectById(companyId);
         //先判断用户是否填写过日报
         QueryWrapper<Report> queryWrapper = new QueryWrapper<>();
@@ -8178,11 +8179,48 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 }
                 //项目的审核人
                 if (reportAuditType == 0) {
-                    r.setAuditUserList(auditorList.stream().filter(au->au.getProjectId().equals(r.getProjectId())).collect(Collectors.toList()));
+                    int mode = 0;
+                    if (company.getNonProjectSimple() == 1) {
+                        //启用了简易模式
+                        Optional<Project> pOption = allProjectList.stream().filter(p->p.getId().equals(r.getProjectId())).findFirst();
+                        if (pOption.isPresent()) {
+                            Project project = pOption.get();
+                            List<ProjectAuditor> pAuditorList = new ArrayList<>();
+                            if (project.getIsPublic() == 1) {
+                                //非项目,该员工的部门主要负责人审核
+                                mode = 1;
+                                String superiorId = null;
+                                Integer departmentId = user.getDepartmentId();
+                                Department department = departmentMapper.selectById(departmentId);
+                                if (department != null) {
+                                    superiorId = department.getManagerId();
+                                }
+                                if (superiorId != null) {
+                                    User superior = userMapper.selectById(superiorId);
+                                    if (superior != null) {
+                                        ProjectAuditor auditor = new ProjectAuditor();
+                                        auditor.setAuditorId(superiorId);
+                                        auditor.setAuditorName(superior.getName());
+                                        pAuditorList.add(auditor);
+                                    }
+                                }
+                                r.setAuditUserList(pAuditorList);
+                            }
+                        }
+                    }
+                    if (mode == 0) {
+                        List<ProjectAuditor> pAuditorList = auditorList.stream().filter(au->au.getProjectId().equals(r.getProjectId())).collect(Collectors.toList());
+                        r.setAuditUserList(pAuditorList);
+                    }
+
                     if (r.getProjectAuditorId() != null) {
-                        Optional<ProjectAuditor> auItem = auditorList.stream().filter(au->au.getAuditorId().equals(r.getProjectAuditorId())).findFirst();
-                        if (auItem.isPresent()) {
-                            r.setProjectAuditorName(auItem.get().getAuditorName());
+                        List<ProjectAuditor> auList = r.getAuditUserList();
+                        if (auList.stream().anyMatch(au->au.getAuditorId().equals(r.getProjectAuditorId()))) {
+                            r.setProjectAuditorName(auList.stream().filter(au->au.getAuditorId().equals(r.getProjectAuditorId())).findFirst().get().getAuditorName());
+                        } else {
+                            //审核人列表里面没有之前日报里的该审核人,直接用审核人列表里面的第一个作为项目审核人
+                            r.setProjectAuditorId(auList.get(0).getAuditorId());
+                            r.setProjectAuditorName(auList.get(0).getAuditorName());
                         }
                     }
                 } else if (reportAuditType == 1 || reportAuditType == 2) {
@@ -8192,15 +8230,15 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         if (tgoup.isPresent()) {
                             TaskGroup curGroup = tgoup.get();
                             if (curGroup.getInchargerId() != null) {
-                                User user = userMapper.selectById(curGroup.getInchargerId());
+                                User incharger = userMapper.selectById(curGroup.getInchargerId());
                                 HashMap map = new HashMap();
-                                map.put("auditorId", user.getId());
-                                map.put("auditorName", user.getName());
+                                map.put("auditorId", incharger.getId());
+                                map.put("auditorName", incharger.getName());
                                 List list = new ArrayList();
                                 list.add(map);
                                 r.setAuditUserList(list);
                                 if (r.getProjectAuditorId() != null) {
-                                    r.setProjectAuditorName(user.selectById(r.getProjectAuditorId()).getName());
+                                    r.setProjectAuditorName(userMapper.selectById(r.getProjectAuditorId()).getName());
                                 }
                             }
                         }