Переглянути джерело

修复擎剑漏掉的参与人

QuYueTing 1 тиждень тому
батько
коміт
42ddbc7bef

+ 12 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -78,6 +78,12 @@ public class ProjectController {
     private ReportExtraDegreeMapper reportExtraDegreeMapper;
     @Resource
     private ProjectMainService projectMainService;
+    @Resource
+    private ProjectDeptRelateMapper projectDeptRelateMapper;
+    @Resource
+    private ParticipationMapper participationMapper;
+    @Autowired
+    private ProjectMapper projectMapper;
 
 
     @RequestMapping("/testRead")
@@ -1569,5 +1575,11 @@ public class ProjectController {
     public HttpRespMsg exportWorkOrderNumStatistics(String startDate,String endDate,HttpServletRequest request) throws Exception {
         return projectService.exportWorkOrderNumStatistics(startDate,endDate,request);
     }
+
+    @RequestMapping("/fixQingJianData")
+    public HttpRespMsg fixQingJianData() {
+        return projectService.fixQingJianData();
+    }
+
 }
 

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -1209,6 +1209,7 @@ public class WeiXinCorpController {
                         } else {
                             System.out.println("部门未变更,不处理");
                         }
+                        System.out.println("人员[openUserId="+openUserId+"]变更部门,新的部门curUserWXDeptid="+curUserWXDeptid);
                         if (curUserWXDeptid != 0) {
                             User user = userMapper.selectOne(new QueryWrapper<User>().eq("company_id", companyId).eq("corpwx_userid", openUserId));
                             if (user != null) {

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -342,4 +342,6 @@ public interface ProjectService extends IService<Project> {
     HttpRespMsg exportWorkOrderNumStatistics(String startDate, String endDate, HttpServletRequest request) throws Exception;
 
     void syncHongHuData(int honghuCompId);
+
+    HttpRespMsg fixQingJianData();
 }

+ 48 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -14434,6 +14434,54 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             e.printStackTrace();
         }
     }
+
+    @Override
+    public HttpRespMsg fixQingJianData() {
+        HttpRespMsg msg = new HttpRespMsg();
+        int companyId = 1256;
+        List<Participation> toAddList = new ArrayList<>();
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+        List<Integer> projectIds = projectList.stream().map(Project::getId).collect(Collectors.toList());
+        List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
+        List<ProjectDeptRelate> data = projectDeptRelateMapper.selectList(new QueryWrapper<ProjectDeptRelate>().in("project_id", projectIds));
+        //清理重复数据
+        List<ProjectDeptRelate> pureList = new ArrayList<>();
+        List<Integer> deleteIds = new ArrayList<>();
+        for (ProjectDeptRelate relate : data) {
+            if (pureList.stream().anyMatch(p->p.getProjectId().equals(relate.getProjectId()) && p.getDepartmentId().equals(relate.getDepartmentId()))) {
+                //已存在
+                deleteIds.add(relate.getId());
+            } else {
+                pureList.add(relate);
+            }
+        }
+        System.out.println("需要删除的数据size="+deleteIds.size());
+        if (deleteIds.size() > 0) {
+            projectDeptRelateMapper.deleteBatchIds(deleteIds);
+        }
+        List<Participation> allPartiList = participationMapper.selectList(new QueryWrapper<Participation>().in("project_id", projectIds));
+        for (ProjectDeptRelate projectDeptRelate : pureList) {
+            List<Participation> curProjectParticiList = allPartiList.stream().filter(p -> p.getProjectId().equals(projectDeptRelate.getProjectId())).collect(Collectors.toList());
+            List<String> curPartiUserIds = curProjectParticiList.stream().map(Participation::getUserId).collect(Collectors.toList());
+            List<User> deptUserList = userList.stream().filter(u -> u.getDepartmentId().equals(projectDeptRelate.getDepartmentId())).collect(Collectors.toList());
+            for (User user : deptUserList) {
+                if (!curPartiUserIds.contains(user.getId())) {
+                    //不在参与人里面
+                    Participation participation = new Participation();
+                    participation.setUserId(user.getId());
+                    participation.setProjectId(projectDeptRelate.getProjectId());
+                    toAddList.add(participation);
+                }
+            }
+        }
+
+        if (toAddList.size() > 0) {
+            msg.data = toAddList;
+            participationMapper.insertBatch(toAddList);
+        }
+        return msg;
+    }
+
     public void initGroup(Integer companyId, Integer projectId) {
         User user = userMapper.selectOne(new LambdaQueryWrapper<User>()
                 .eq(User::getRoleName, "超级管理员")

+ 7 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -2357,4 +2357,11 @@ public class TimingTask {
         Integer companyId = 7536;//泓浒(苏州)公司Id
         reportService.checkAndAlertFVReportTimeLessThanCardTimeList(startDate, yestoday, companyId);
     }
+
+    //每天凌晨5点自动给擎剑把人员没有勾选上的自动选上
+    @Scheduled(cron = "0 8 5 ? * *")
+    private void fixQingJianData() {
+        if (isDev) return;
+        projectService.fixQingJianData();
+    }
 }