yusm 1 månad sedan
förälder
incheckning
1e1a430f96

+ 15 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -498,6 +498,20 @@ public class TaskController {
                 task.setTaskStatus(3);//待第一审核人审核
             }
         }
+        if (Constant.MLD_COMPANY_ID==user.getCompanyId()&&task.getIsTaskPlan()==1) {
+            if (task.getCheckSecondId() != null && !task.getExecutorList().isEmpty()) {
+                System.out.println("===>"+task.getExecutorList());
+                List<User> userManagers = userMapper.selectList(new QueryWrapper<User>()
+                        .eq("role_name", "区域经理&PM").eq("company_id",user.getCompanyId()));
+                for (TaskExecutor taskExecutor : task.getExecutorList()) {
+                    boolean b = userManagers.stream().anyMatch(u -> u.getId().equals(taskExecutor.getExecutorId()));
+                    if (b) {
+                        msg.setError("工作计划执行人不能选择区域经理");
+                        return msg;
+                    }
+                }
+            }
+        }
         boolean saved = taskService.saveOrUpdate(task);
         //新增成功,给第一审核人发送信息提醒
         if (saved&&isInsert==1){
@@ -533,6 +547,7 @@ public class TaskController {
                         User owner = userMapper.selectById(taskExecutor.getExecutorId());
                         Information information = new Information();
                         information.setMsg("您有新的任务");
+                        information.setContent(taskExecutor.getProjectId()==null?null:(""+taskExecutor.getProjectId()));
                         information.setType(1);
                         information.setUserId(owner.getId());
                         information.setTime(LocalDateTime.now());

+ 49 - 22
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -1607,15 +1607,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         projectVO.setProjectSeparate(first1.get());
                     }
                 }else if (companyId==Constant.MLD_COMPANY_ID){
-                    List<ProjectLeader> leaderCollect = leaderList.stream().filter(l -> l.getProjectId().equals(project.getId())).collect(Collectors.toList());
-                    leaderCollect.forEach(l->{
-                        Optional<User> userOptional = userList.stream().filter(u -> u.getId().equals(l.getLeaderId())).findFirst();
-                        if(userOptional.isPresent()){
-                            User user1 = userOptional.get();
-                            l.setUserName(user1.getName());
-                        }
-                    });
-                    projectVO.setLeaderList(leaderCollect);
+                    if (!leaderList.isEmpty()) {
+                        List<ProjectLeader> leaderCollect = leaderList.stream().filter(l ->l.getProjectId()!=null&& l.getProjectId().equals(project.getId())).collect(Collectors.toList());
+                        leaderCollect.forEach(l -> {
+                            Optional<User> userOptional = userList.stream().filter(u -> u.getId().equals(l.getLeaderId())).findFirst();
+                            if (userOptional.isPresent()) {
+                                User user1 = userOptional.get();
+                                l.setUserName(user1.getName());
+                            }
+                        });
+                        projectVO.setLeaderList(leaderCollect);
+                    }
                 }
 
                 //工程专业版:计算当前项目的总进度
@@ -1700,6 +1702,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     //添加或编辑项目
+    @Transactional
     @Override
     public HttpRespMsg editProject(Integer id, String name, String code, String[] userIds, String inchargerId,
                                    Integer isPublic,
@@ -1775,6 +1778,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         String oldInchargerId = null;
         Project oldProject = null;
         if (id == null) {
+            ArrayList<ProjectLeader> leaderArrayList = new ArrayList<>();
             //新增项目
             if (name == null) {
                 //httpRespMsg.setError("请填写项目名称");
@@ -1864,6 +1868,26 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     } else {
                         project.setCustomerName("");
                     }
+                    if (companyId==Constant.MLD_COMPANY_ID){
+                        if (leaderIds!=null&&leaderIds.length>0) {
+                            List<User> userManagers = userMapper.selectList(new QueryWrapper<User>()
+                                    .eq("role_name", "区域经理&PM").eq("company_id",companyId));
+                            for (String leaderId : leaderIds) {
+                                ProjectLeader leader = new ProjectLeader();
+                                leader.setProjectId(project.getId());
+                                leader.setLeaderId(leaderId);
+                                if (!userManagers.isEmpty()){
+                                    boolean b = userManagers.stream().anyMatch(u -> u.getId().equals(leaderId));
+                                    if (b){
+                                        httpRespMsg.setError("区域经理不能担任小组长");
+                                        return httpRespMsg;
+                                    }
+                                }
+                                leader.setCompanyId(companyId);
+                                leaderArrayList.add(leader);
+                            }
+                        }
+                    }
                     if (projectMapper.insert(project) == 0) {
                         //httpRespMsg.setError("操作失败");
                         httpRespMsg.setError(MessageUtils.message("other.operationFail"));
@@ -1874,23 +1898,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         if (projectKeyNodesData != null) {
                             updateProjectKeyNodesData(projectKeyNodesData, project.getId());
                         }
+
+                    }if (companyId==Constant.MLD_COMPANY_ID) {
+                        if (leaderIds != null && leaderIds.length > 0) {
+                            leaderArrayList.forEach(l->l.setProjectId(project.getId()));
+                            projectLeaderService.saveBatch(leaderArrayList);
+                        }
                     }
                     id = project.getId();
                     if(companyId==936){
                         projectSeparate.setId(id);
                         projectSeparateMapper.insert(projectSeparate);
-                    }else if (companyId==Constant.MLD_COMPANY_ID){
-                        if (leaderIds!=null&&leaderIds.length>0) {
-                            ArrayList<ProjectLeader> leaderArrayList = new ArrayList<>();
-                            for (String leaderId : leaderIds) {
-                                ProjectLeader leader = new ProjectLeader();
-                                leader.setProjectId(project.getId());
-                                leader.setLeaderId(leaderId);
-                                leader.setCompanyId(companyId);
-                                leaderArrayList.add(leader);
-                            }
-                            projectLeaderService.saveBatch(leaderArrayList);
-                        }
                     }
                     OperationRecord operationRecord=new OperationRecord();
                     operationRecord.setProjectName(project.getProjectName());
@@ -2163,6 +2181,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                 }else if (companyId==Constant.MLD_COMPANY_ID){
                     projectLeaderService.remove(new QueryWrapper<ProjectLeader>().eq("project_id",p.getId()));
+                    List<User> userManagers = userMapper.selectList(new QueryWrapper<User>()
+                            .eq("role_name", "区域经理&PM").eq("company_id",companyId));
                     if (leaderIds!=null&&leaderIds.length>0) {
                         ArrayList<ProjectLeader> leaderArrayList = new ArrayList<>();
                         for (String leaderId : leaderIds) {
@@ -2170,6 +2190,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             leader.setProjectId(p.getId());
                             leader.setLeaderId(leaderId);
                             leader.setCompanyId(companyId);
+                            if (!userManagers.isEmpty()){
+                                boolean b = userManagers.stream().anyMatch(u -> u.getId().equals(leaderId));
+                                if (b){
+                                    httpRespMsg.setError("区域经理不能担任小组长");
+                                    return httpRespMsg;
+                                }
+                            }
                             leaderArrayList.add(leader);
                         }
                         projectLeaderService.saveBatch(leaderArrayList);
@@ -2409,7 +2436,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             projectDeptRelateMapper.delete(new LambdaQueryWrapper<ProjectDeptRelate>()
                     .eq(ProjectDeptRelate::getProjectId,id)
             );
-            if(CollectionUtils.isNotEmpty(deptList)){
+            if(CollectionUtils.isNotEmpty(deptList)&&id!=null){
                 projectDeptRelateMapper.insertBatch(id,deptList);
             }
 

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

@@ -1100,6 +1100,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                         User owner = userMapper.selectById(taskExecutor.getExecutorId());
                         Information information = new Information();
                         information.setMsg("您有新的任务");
+                        information.setContent(taskExecutor.getProjectId()==null?null:(""+taskExecutor.getProjectId()));
                         information.setType(1);
                         information.setUserId(owner.getId());
                         information.setTime(LocalDateTime.now());

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -743,7 +743,7 @@
             #{item}
         </foreach>
         and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
-        and task.end_date is not null and task.task_plan =0
+        and task.end_date is not null and task.is_task_plan =0
         AND project.`status` = 1
         ORDER BY user.id, task.start_date
     </select>