Browse Source

FTE修改

yusm 1 month ago
parent
commit
90b1bcbdef
12 changed files with 240 additions and 53 deletions
  1. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  2. 129 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java
  3. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/GanttDataItem.java
  4. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/UserVO.java
  5. 4 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectLeaderMapper.java
  6. 17 8
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java
  7. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java
  8. 20 16
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/InformationServiceImpl.java
  9. 22 12
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  10. 5 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java
  11. 7 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectLeaderMapper.xml
  12. 31 7
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

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

@@ -564,8 +564,8 @@ public class ProjectController {
     }
 
     @RequestMapping("/getGanttData")
-    public HttpRespMsg getGanttData(@RequestParam(required = false, defaultValue = "0") Integer type, String startDate, String endDate, String userId, Integer projectId, String groupName,Integer taskType, HttpServletRequest request) {
-        return projectService.getGanttData(type, startDate, endDate, userId, projectId, groupName,taskType, request);
+    public HttpRespMsg getGanttData(@RequestParam(required = false, defaultValue = "0") Integer type, String startDate, String endDate, String userId, Integer projectId, String groupName,Integer taskType,@RequestParam(required = false) Integer justWaitForMe, HttpServletRequest request) {
+        return projectService.getGanttData(type, startDate, endDate, userId, projectId, groupName,taskType,justWaitForMe, request);
     }
 
     @RequestMapping("/getGanttDataNew")

+ 129 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -9,6 +9,7 @@ import com.management.platform.constant.Constant;
 import com.management.platform.entity.*;
 import com.management.platform.entity.bo.QueryTaskChargePage;
 import com.management.platform.entity.vo.SysRichFunction;
+import com.management.platform.entity.vo.UserVO;
 import com.management.platform.mapper.*;
 import com.management.platform.service.*;
 import com.management.platform.service.impl.WxCorpInfoServiceImpl;
@@ -125,6 +126,12 @@ public class TaskController {
     @Resource
     private WxCorpInfoMapper wxCorpInfoMapper;
 
+    @Resource
+    private ProjectLeaderMapper projectLeaderMapper;
+
+    @Resource
+    private InformationMapper informationMapper;
+
     //用于控制线程锁
     public static HashMap<String, CorpwxJobResult> corpwxJobCenter = new HashMap();
     public static HashMap<String, Integer> corpddJobCenter = new HashMap();
@@ -497,6 +504,23 @@ public class TaskController {
                 isUpdate=3;
                 task.setTaskStatus(3);//待第一审核人审核
             }
+            // 撤回后,对计划进行修改
+            if (user.getCompanyId()==Constant.MLD_COMPANY_ID
+                    &&task.getIsTaskPlan()==1
+                    &&(task.getTaskStatus()==2)
+            ){
+                if (user.getId().equals(task.getCheckFirstId())){
+                    task.setTaskStatus(4);//待第二审核人审核
+                    isUpdate=5;
+                } else if (user.getId().equals(task.getCheckSecondId())) {
+                    task.setTaskStatus(0);//变化为进行中
+                    task.setIsTaskPlan(0);//不再是计划
+                    isUpdate=6;
+                }else {
+                    task.setTaskStatus(3);//待第一审核人审核
+                    isUpdate=4;
+                }
+            }
         }
         if (Constant.MLD_COMPANY_ID==user.getCompanyId()&&task.getIsTaskPlan()==1) {
             if (task.getCheckSecondId() != null && !task.getExecutorList().isEmpty()) {
@@ -532,7 +556,7 @@ public class TaskController {
         } else if (saved && isUpdate > 0) {
             msgRecepientList=new ArrayList<>();
             //第一审核人修改后, 变成待第二审核人审核
-            if (isUpdate==1){
+            if (isUpdate==1||isUpdate==5){
                 User owner = userMapper.selectById(task.getCheckSecondId());
                 Information information = new Information();
                 Project project = projectMapper.selectById(task.getProjectId());
@@ -543,7 +567,7 @@ public class TaskController {
                 information.setTime(LocalDateTime.now());
                 informationService.save(information);
 
-            }else if(isUpdate==2){
+            }else if(isUpdate==2||isUpdate==6){
                 List<TaskExecutor> taskExecutorList = taskExecutorMapper.selectList(new QueryWrapper<TaskExecutor>().eq("task_id", task.getId()));
                 if(CollectionUtils.isNotEmpty(taskExecutorList)){
                     for (TaskExecutor taskExecutor : taskExecutorList) {
@@ -570,6 +594,18 @@ public class TaskController {
                 information.setUserId(owner.getId());
                 information.setTime(LocalDateTime.now());
                 informationService.save(information);
+            } else if (isUpdate==4) {
+                //给第一审核人发送信息提醒
+                log.info("撤销后小组长修改,给第一审核人发送信息提醒");
+                User owner = userMapper.selectById(task.getCheckFirstId());
+                Information information = new Information();
+                information.setType(11);
+                Project project = projectMapper.selectById(task.getProjectId());
+                information.setMsg(project.getProjectName()+"项目有新的预计FTE计划审批任务,请您查收.");
+                information.setTaskId(task.getId());
+                information.setUserId(owner.getId());
+                information.setTime(LocalDateTime.now());
+                informationService.save(information);
             }
         }
         if (task.getExecutorId() == null) {
@@ -640,6 +676,57 @@ public class TaskController {
         return msg;
     }
 
+    //撤回工作计划
+    @RequestMapping("/withdrawalTaskPlan")
+    public HttpRespMsg withdrawalTaskPlan(Integer taskId,HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        String token = request.getHeader("TOKEN");
+        User user = userMapper.selectById(token);
+        Task task = taskMapper.selectById(taskId);
+        if (task.getTaskPlan()!=1&&task.getIsTaskPlan()!=1){
+            msg.setError("当前计划已变成任务不能撤回计划");
+            return msg;
+        }
+        /**
+         * 任务状态,0-进行中 1-已完成 2-已撤销 3-待第一审核人审核 4-待第二审核人审核 5-第一审核人驳回  6-第二审核人驳回
+         */
+        int count= projectLeaderMapper.selectCountIsLeader(taskId,user.getId());
+        //是这个计划的小组长
+        if (count>0){
+            //待第一审核人审核
+            if (task.getTaskStatus()==3){
+                task.setTaskStatus(2);
+                taskMapper.updateById(task);
+                Information information = new Information();
+                User owner = userMapper.selectById(task.getCheckFirstId());
+                Project project = projectMapper.selectById(task.getProjectId());
+                information.setMsg(project.getProjectName()+"项目有预计FTE计划撤销");
+//                information.setTaskId(task.getId());
+                information.setUserId(owner.getId());
+                information.setType(11);
+                information.setTime(LocalDateTime.now());
+                informationMapper.insert(information);
+            }else {
+                msg.setError("当前计划已处于二级审核或已审核通过,不能撤回");
+                return msg;
+            }
+        }
+        //计划的第一审核人
+        String checkFirstId = task.getCheckFirstId();
+        if (checkFirstId!=null&&checkFirstId.equals(user.getId())){
+            msg.setError("项目经理不能撤回");
+            return msg;
+        }
+
+        //计划的第二审核人
+        String checkSecondId = task.getCheckSecondId();
+        if (checkSecondId!=null&&checkSecondId.equals(user.getId())){
+            msg.setError("区域经理不能撤回");
+            return msg;
+        }
+        return msg;
+    }
+
     private void updateProjectProgress(Integer projectId) {
         //只有里程碑才更新项目进度, 非已撤销状态的
         List<Task> all = taskMapper.simpleList(new QueryWrapper<Task>().eq("project_id", projectId).ne("task_status", 2).eq("task_type",1),null,null);
@@ -1193,6 +1280,46 @@ public class TaskController {
             msg.setError(MessageUtils.message("Stages.noExistAndRefresh"));
             return msg;
         }
+        HttpRespMsg msg = new HttpRespMsg();
+        String token = request.getHeader("TOKEN");
+        User user = userMapper.selectById(token);
+        if (Constant.MLD_COMPANY_ID==user.getCompanyId()){
+            int count= projectLeaderMapper.selectCountIsLeader(id,user.getId());
+            //是这个计划的小组长
+            if (count>0){
+                /**
+                 * 任务状态,0-进行中 1-已完成 2-已撤销 3-待第一审核人审核 4-待第二审核人审核 5-第一审核人驳回  6-第二审核人驳回
+                 */
+                //待第一审核人审核
+                if (task.getTaskStatus()==3&&task.getIsTaskPlan()==1){
+                    msg.setError("当前计划已处于一级审核状态,小组长不能删除");
+                    return msg;
+                }else if(task.getTaskStatus()==4&&task.getIsTaskPlan()==1){
+                    msg.setError("当前计划已处于二级审核状态,小组长不能删除");
+                    return msg;
+                }else if(task.getTaskStatus()==0&&task.getIsTaskPlan()==0){
+                    msg.setError("当前计划已审核通过,小组长不能删除");
+                    return msg;
+                }
+            }
+
+            if (task.getCheckFirstId()!=null&&task.getCheckFirstId().equals(user.getId())){
+                if(task.getTaskStatus()==4&&task.getIsTaskPlan()==1){
+                    msg.setError("当前计划已处于二级审核状态,项目经理不能删除");
+                    return msg;
+                }else if(task.getTaskStatus()==0&&task.getIsTaskPlan()==0){
+                    msg.setError("当前计划已审核通过,项目经理不能删除");
+                    return msg;
+                }
+            }
+
+            if (task.getCheckSecondId()!=null&&task.getCheckSecondId().equals(user.getId())){
+                if(task.getTaskStatus()==3&&task.getIsTaskPlan()==1){
+                    msg.setError("当前计划已处于一级审核状态,区域经理不能删除");
+                    return msg;
+                }
+            }
+        }
 
         if (task.getParentTid() == null) {
             //删除的是第一级任务,需要调整顺序

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/GanttDataItem.java

@@ -33,4 +33,5 @@ public class GanttDataItem {
     private Integer taskId;
     private Integer leaderOrManager;
     private Integer taskPlan;
+    private List<String> leaderIdList;
 }

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/UserVO.java

@@ -16,7 +16,7 @@ public class UserVO extends User {
     private Long remainingTime;
     //是否是项目经理
     private boolean isLeader;
-    // 组员0, 小组长1,审核人2
+    // 组员0, 小组长1,审核人2 ,既是小组长又是审核人3
     private int projectLeaderType;
     private Company company;
 

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectLeaderMapper.java

@@ -2,6 +2,7 @@ package com.management.platform.mapper;
 
 import com.management.platform.entity.ProjectLeader;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +14,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProjectLeaderMapper extends BaseMapper<ProjectLeader> {
 
+    int selectCountIsLeader(@Param("taskId") Integer taskId,@Param("userId") String userId);
+
+
 }

+ 17 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java

@@ -66,31 +66,40 @@ public interface ProjectMapper extends BaseMapper<Project> {
     List<Map> getGanttData(@Param("userIds") List<String> userIds, @Param("companyId") Integer companyId);
 
     List<Map> getTaskPlanByMemb(@Param("userIds") List<String> userIds, @Param("startDate") String startDate,
-                                    @Param("endDate") String endDate, @Param("companyId") Integer companyId);
+                                    @Param("endDate") String endDate, @Param("companyId") Integer companyId,
+                                @Param("creatorId") String creatorId,@Param("justWaitForMe")Integer justWaitForMe
+                                );
 
     List<Map> getTaskPlanByProject(@Param("projectIds") List<Integer> projectIds, @Param("startDate") String startDate,
-                                @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("groupName")String groupName,@Param("taskType")Integer taskType);
+                                @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("groupName")String groupName,@Param("taskType")Integer taskType,
+                                   @Param("creatorId") String creatorId,@Param("justWaitForMe")Integer justWaitForMe);
     List<Map> getTaskPlanWithLeave(@Param("userIds") List<String> userIds, @Param("startDate") String startDate,
                                    @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("creatorId") String creatorId,@Param("targetUserId") String targetUserId);
 
     List<Map> getTaskPlanByGeneralMemb(@Param("userIds") List<String> userIds, @Param("startDate") String startDate,
-                                @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("creatorId") String creatorId,@Param("targetUserId") String targetUserId);
+                                @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("creatorId") String creatorId,@Param("targetUserId") String targetUserId,
+                                       @Param("justWaitForMe")Integer justWaitForMe);
 
     List<Map> getTaskPlanByProManager(@Param("userIds") List<String> userIds, @Param("startDate") String startDate,
-                                      @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("managerId") String managerId,@Param("targetUserId") String targetUserId);
+                                      @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("managerId") String managerId,@Param("targetUserId") String targetUserId,
+                                      @Param("justWaitForMe")Integer justWaitForMe);
     List<Map> getTaskPlanByAreaManager(@Param("userIds") List<String> userIds, @Param("startDate") String startDate,
-                                      @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("managerId") String managerId,@Param("targetUserId") String targetUserId);
+                                      @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("managerId") String managerId,@Param("targetUserId") String targetUserId,
+                                       @Param("justWaitForMe")Integer justWaitForMe);
 
     List<Map> getTaskPlanByProjectGeneralMemb(@Param("projectIds") List<Integer> projectIds, @Param("startDate") String startDate,
                                    @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("creatorId") String creatorId,
-                                              @Param("groupName")String groupName,@Param("taskType")Integer taskType,@Param("targetProjectId")Integer targetProjectId);
+                                              @Param("groupName")String groupName,@Param("taskType")Integer taskType,@Param("targetProjectId")Integer targetProjectId,
+                                              @Param("justWaitForMe")Integer justWaitForMe);
 
     List<Map> getTaskPlanByProjectManager(@Param("projectIds") List<Integer> projectIds, @Param("startDate") String startDate,
                                               @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("managerId") String managerId,
-                                          @Param("groupName")String groupName,@Param("taskType")Integer taskType,@Param("targetProjectId")Integer targetProjectId);
+                                          @Param("groupName")String groupName,@Param("taskType")Integer taskType,@Param("targetProjectId")Integer targetProjectId,
+                                          @Param("justWaitForMe")Integer justWaitForMe);
     List<Map> getTaskPlanByProjectAreaManager(@Param("projectIds") List<Integer> projectIds, @Param("startDate") String startDate,
                                           @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("managerId") String managerId,
-                                              @Param("groupName")String groupName,@Param("taskType")Integer taskType,@Param("targetProjectId")Integer targetProjectId);
+                                              @Param("groupName")String groupName,@Param("taskType")Integer taskType,@Param("targetProjectId")Integer targetProjectId,
+                                              @Param("justWaitForMe")Integer justWaitForMe);
 
     List<ProjectWithStage> selectWithStage(Integer companyId, Integer startIndex, Integer endIndex, Integer projectId,String inchargerId,String startDate,String endDate);
 

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

@@ -116,7 +116,7 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg exportCustomerProjectInAndOut(HttpServletRequest request);
 
-    HttpRespMsg getGanttData(Integer type, String startDate, String endDate, String userId, Integer projectId, String groupName,Integer taskType, HttpServletRequest request);
+    HttpRespMsg getGanttData(Integer type, String startDate, String endDate, String userId, Integer projectId, String groupName,Integer taskType,Integer justWaitForMe, HttpServletRequest request);
 
     HttpRespMsg getProjectStagesCost(Integer pageIndex, Integer pageSize, Integer projectId, HttpServletRequest request,String stageNames,String startDate,String endDate);
 

+ 20 - 16
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/InformationServiceImpl.java

@@ -3,6 +3,7 @@ package com.management.platform.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.generator.config.IFileCreate;
 import com.management.platform.constant.Constant;
 import com.management.platform.entity.*;
 import com.management.platform.entity.vo.GanttDataItem;
@@ -90,24 +91,27 @@ public class InformationServiceImpl extends ServiceImpl<InformationMapper, Infor
                 }
                 if (Constant.MLD_COMPANY_ID==user.getCompanyId()&&info.getTaskId()!=null){
                     Task task = taskService.getById(info.getTaskId());
-                    GanttDataItem dataItem = new GanttDataItem();
-                    dataItem.setTaskStatus(task.getTaskStatus());
+                    if (task!=null){
+                        GanttDataItem dataItem = new GanttDataItem();
+                        dataItem.setTaskStatus(task.getTaskStatus());
 
-                    if(countLeader>0){
-                        dataItem.setLeaderOrManager(1);
-                    } else if (countFirstCheck > 0 || countSecondCheck > 0) {
-                        dataItem.setLeaderOrManager(2);
+                        if(countLeader>0){
+                            dataItem.setLeaderOrManager(1);
+                        } else if (countFirstCheck > 0 || countSecondCheck > 0) {
+                            dataItem.setLeaderOrManager(2);
+                        }
+                        dataItem.setCheckFirstId(task.getCheckFirstId());
+                        dataItem.setCheckSecondId(task.getCheckSecondId());
+                        dataItem.setObjType(2);
+                        dataItem.setIsTaskPlan(task.getIsTaskPlan());
+                        dataItem.setTaskPlan(task.getTaskPlan());
+
+                        DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                        dataItem.setEnd_date(task.getEndDate()!=null ? task.getEndDate().format(customFormatter) : null);
+                        dataItem.setStart_date(task.getStartDate()!=null ? task.getStartDate().format(customFormatter) : null);
+                        info.setGanttData(dataItem);
                     }
-                    dataItem.setCheckFirstId(task.getCheckFirstId());
-                    dataItem.setCheckSecondId(task.getCheckSecondId());
-                    dataItem.setObjType(2);
-                    dataItem.setIsTaskPlan(task.getIsTaskPlan());
-                    dataItem.setTaskPlan(task.getTaskPlan());
-
-                    DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                    dataItem.setEnd_date(task.getEndDate()!=null ? task.getEndDate().format(customFormatter) : null);
-                    dataItem.setStart_date(task.getStartDate()!=null ? task.getStartDate().format(customFormatter) : null);
-                    info.setGanttData(dataItem);
+
                 }
             }
             httpRespMsg.data = information;

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

@@ -4800,11 +4800,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg getGanttData(Integer type, String startDate, String endDate, String targetUserId, Integer targetProjectId, String groupName,Integer taskType, HttpServletRequest request) {
+    public HttpRespMsg getGanttData(Integer type, String startDate, String endDate, String targetUserId, Integer targetProjectId, String groupName,Integer taskType,Integer justWaitForMe, HttpServletRequest request) {
         //根据人员权限来获取,
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
-
+        List<ProjectLeader> projectLeaderList = projectLeaderService.list(new QueryWrapper<ProjectLeader>().eq("company_id", user.getCompanyId()));
         List<String> userIds = new ArrayList<>();
         List<String> userIdsExtra = new ArrayList<>();
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部项目");
@@ -4861,7 +4861,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 String lsLastItemId = null;
                 String btLastItemId = null;
                 //按人员获取
-                ganttData = projectMapper.getTaskPlanByMemb(userIds, startDate ,endDate, user.getCompanyId());
+                ganttData = projectMapper.getTaskPlanByMemb(userIds, startDate ,endDate, user.getCompanyId(),user.getId(),justWaitForMe);
                 System.out.println("renyuan==>"+ganttData.size());
                 if (user.getCompanyId()==Constant.MLD_COMPANY_ID){
                     List<ProjectLeader> leaderList = projectLeaderService.list(new QueryWrapper<ProjectLeader>().eq("leader_id", user.getId()).eq("company_id", user.getCompanyId()));
@@ -4873,7 +4873,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         List<String> userProjectIds = participations.stream().distinct().map(Participation::getUserId).collect(Collectors.toList());
                         userProjectIds.add("-1");
                         userIdsExtra.addAll(userProjectIds);
-                        List<Map> taskPlanByGeneralMemb = projectMapper.getTaskPlanByGeneralMemb(userProjectIds, startDate, endDate, user.getCompanyId(), user.getId(),targetUserId);
+                        List<Map> taskPlanByGeneralMemb = projectMapper.getTaskPlanByGeneralMemb(userProjectIds, startDate, endDate, user.getCompanyId(), user.getId(),targetUserId,justWaitForMe);
                         for (Map map : taskPlanByGeneralMemb) {
                             map.put("leaderOrManager",1);
                         }
@@ -4895,7 +4895,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         List<String> collectUserIdList = executorList.stream().distinct().map(TaskExecutor::getExecutorId).collect(Collectors.toList());
                         collectUserIdList.add("-1");
                         userIdsExtra.addAll(collectUserIdList);
-                        List<Map> getTaskPlanByProManager = projectMapper.getTaskPlanByProManager(collectUserIdList, startDate, endDate, user.getCompanyId(),user.getId(),targetUserId);
+                        List<Map> getTaskPlanByProManager = projectMapper.getTaskPlanByProManager(collectUserIdList, startDate, endDate, user.getCompanyId(),user.getId(),targetUserId,justWaitForMe);
                         for (Map map : getTaskPlanByProManager) {
                             map.put("leaderOrManager",2);
                         }
@@ -4911,7 +4911,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         List<String> collectUserIdList = executorList.stream().distinct().map(TaskExecutor::getExecutorId).collect(Collectors.toList());
                         collectUserIdList.add("-1");
                         userIdsExtra.addAll(collectUserIdList);
-                        List<Map> getTaskPlanByProManager = projectMapper.getTaskPlanByAreaManager(collectUserIdList, startDate, endDate, user.getCompanyId(),user.getId(),targetUserId);
+                        List<Map> getTaskPlanByProManager = projectMapper.getTaskPlanByAreaManager(collectUserIdList, startDate, endDate, user.getCompanyId(),user.getId(),targetUserId,justWaitForMe);
                         for (Map map : getTaskPlanByProManager) {
                             map.put("leaderOrManager",2);
                         }
@@ -5107,7 +5107,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                     }
                 }
-                ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId(),groupName,taskType);
+                ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId(),groupName,taskType,user.getId(),justWaitForMe);
                 System.out.println("ganttData1:"+ganttData.size());
                 if (user.getCompanyId()==Constant.MLD_COMPANY_ID){
                     List<ProjectLeader> leaderList = projectLeaderService.list(new QueryWrapper<ProjectLeader>().eq("leader_id", user.getId()).eq("company_id", user.getCompanyId()));
@@ -5115,7 +5115,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if (!leaderList.isEmpty()){
                         List<Integer> projectIdList = leaderList.stream().map(ProjectLeader::getProjectId).collect(Collectors.toList());
                         projectIdList.add(-1);
-                        List<Map> taskPlanByGeneralMemb = projectMapper.getTaskPlanByProjectGeneralMemb(projectIdList,startDate ,endDate, user.getCompanyId(),user.getId(),groupName,taskType,targetProjectId);
+                        List<Map> taskPlanByGeneralMemb = projectMapper.getTaskPlanByProjectGeneralMemb(projectIdList,startDate ,endDate, user.getCompanyId(),user.getId(),groupName,taskType,targetProjectId,justWaitForMe);
                         System.out.println("ganttData2:"+taskPlanByGeneralMemb.size());
                         ganttData.addAll(taskPlanByGeneralMemb);
                     }
@@ -5124,7 +5124,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if (!projectList.isEmpty()){
                         List<Integer> projectIdList = projectList.stream().map(Project::getId).collect(Collectors.toList());
                         projectIdList.add(-1);
-                        List<Map> taskPlanByProjectManager = projectMapper.getTaskPlanByProjectManager(projectIdList,startDate ,endDate, user.getCompanyId(),user.getId(),groupName,taskType,targetProjectId);
+                        List<Map> taskPlanByProjectManager = projectMapper.getTaskPlanByProjectManager(projectIdList,startDate ,endDate, user.getCompanyId(),user.getId(),groupName,taskType,targetProjectId,justWaitForMe);
                         System.out.println("ganttData2:"+taskPlanByProjectManager.size());
                         ganttData.addAll(taskPlanByProjectManager);
                     }
@@ -5136,7 +5136,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         List<TaskExecutor> executorList = taskExecutorService.list(new QueryWrapper<TaskExecutor>().in("task_id", taskIdList).isNotNull("executor_id"));
                         List<Integer> projectIdList = executorList.stream().distinct().map(TaskExecutor::getProjectId).collect(Collectors.toList());
                         projectIdList.add(-1);
-                        List<Map> taskPlanByProjectAreaManager = projectMapper.getTaskPlanByProjectAreaManager(projectIdList, startDate, endDate, user.getCompanyId(),user.getId(),groupName,taskType,targetProjectId);
+                        List<Map> taskPlanByProjectAreaManager = projectMapper.getTaskPlanByProjectAreaManager(projectIdList, startDate, endDate, user.getCompanyId(),user.getId(),groupName,taskType,targetProjectId,justWaitForMe);
                         System.out.println("ganttData2:"+taskPlanByProjectAreaManager.size());
                         ganttData.addAll(taskPlanByProjectAreaManager);
                     }
@@ -5251,6 +5251,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     curItem.setIsTaskPlan(map.get("isTaskPlan")==null?null:(Integer)map.get("isTaskPlan"));
                     curItem.setTaskStatus(map.get("taskStatus")==null?null:(Integer)map.get("taskStatus"));
                     curItem.setTaskId(map.get("taskId")==null?null:(Integer)map.get("taskId"));
+                    if (map.get("id")!=null){
+                        Integer projectIdSelect = (Integer) map.get("id");
+                        List<String> leaderIdcollect = projectLeaderList.stream().filter(p -> p.getProjectId().equals(projectIdSelect)).map(ProjectLeader::getLeaderId).collect(Collectors.toList());
+                        curItem.setLeaderIdList(leaderIdcollect);
+                    }
                     curItem.setLeaderOrManager(map.get("leaderOrManager")==null?null:(Integer)map.get("leaderOrManager"));
                     curItem.setTaskPlan(map.get("taskPlan")==null?null:(Integer)map.get("taskPlan"));
                     curItem.end_date = end_date;
@@ -5285,6 +5290,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     curItem.setCheckSecondId(map.get("checkSecondId")==null?null:(String) map.get("checkSecondId"));
                     curItem.setTaskStatus(map.get("taskStatus")==null?null:(Integer)map.get("taskStatus"));
                     curItem.setTaskId(map.get("taskId")==null?null:(Integer)map.get("taskId"));
+                    if (map.get("id")!=null){
+                        Integer projectIdSelect = (Integer) map.get("id");
+                        List<String> leaderIdcollect = projectLeaderList.stream().filter(p -> p.getProjectId().equals(projectIdSelect)).map(ProjectLeader::getLeaderId).collect(Collectors.toList());
+                        curItem.setLeaderIdList(leaderIdcollect);
+                    }
                     curItem.setLeaderOrManager(map.get("leaderOrManager")==null?null:(Integer)map.get("leaderOrManager"));
                     curItem.setTaskPlan(map.get("taskPlan")==null?null:(Integer)map.get("taskPlan"));
                     curItem.start_date = start_date;
@@ -12787,7 +12797,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 String lsLastItemId = null;
                 String btLastItemId = null;
                 //按人员获取
-                ganttData = projectMapper.getTaskPlanByMemb(userIds, startDate ,endDate, user.getCompanyId());
+                ganttData = projectMapper.getTaskPlanByMemb(userIds, startDate ,endDate, user.getCompanyId(),user.getId(),null);
                 QueryWrapper<LeaveSheet> lsQueryWrapper=new QueryWrapper();
                 lsQueryWrapper.in("owner_id", userIds);
                 if (startDate != null && endDate != null) {
@@ -12973,7 +12983,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                     }
                 }
-                ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId(),null,null);
+                ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId(),null,null,user.getId(),null);
                 QueryWrapper<BusinessTrip> btQueryWrapper =new QueryWrapper<>();
                 QueryWrapper<BustripProject> bpQueryWrapper =new QueryWrapper<>();
                 btQueryWrapper.in("owner_id", userIds);

+ 5 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -774,13 +774,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                                         .eq("check_second_id", userId)
                         )
         );
-        if(LeaderCount > 0){
+
+        if (LeaderCount>0&&firstCheckCount>0){
+            return 3;
+        }else if(LeaderCount > 0){
             return 1;
         } else if (firstCheckCount > 0) {
             return 2;
-        }else {
-            return 0;
-        }
+        }else return 0;
 
     }
 

+ 7 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectLeaderMapper.xml

@@ -14,4 +14,11 @@
         id, project_id, leader_id
     </sql>
 
+    <select id="selectCountIsLeader" resultType="java.lang.Integer">
+        select count(*) from task t
+                                 INNER JOIN project p on t.project_id=p.id
+                                 INNER JOIN project_leader pl  on pl.project_id=p.id
+        where t.id=#{taskId} and t.task_plan=1 and pl.leader_id=#{userId}
+    </select>
+
 </mapper>

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

@@ -749,6 +749,9 @@
         <foreach collection="userIds" close=")" open="(" separator="," index="" item="item">
             #{item}
         </foreach>
+        <if test="justWaitForMe !=null  ">
+            and (task.check_first_id=#{creatorId} or task.check_second_id=#{creatorId})  and (task.task_status=3 or task.task_status=4)
+        </if>
         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.is_task_plan =0
         AND project.`status` = 1
@@ -777,6 +780,9 @@
         <if test="taskType !=null  ">
             and task.task_type = #{taskType}
         </if>
+        <if test="justWaitForMe !=null  ">
+            and (task.check_first_id=#{creatorId} or task.check_second_id=#{creatorId})  and (task.task_status=3 or task.task_status=4)
+        </if>
         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 project.`status` = 1
@@ -2741,6 +2747,9 @@
         <if test="targetUserId !=null and targetUserId !='' ">
             and user.`id`=#{targetUserId}
         </if>
+        <if test="justWaitForMe !=null  ">
+            and (task.check_first_id=#{creatorId} or task.check_second_id=#{creatorId})  and (task.task_status=3 or task.task_status=4)
+        </if>
         AND project.`status` = 1 and task.task_plan=1
         ORDER BY user.id, task.start_date
     </select>
@@ -2774,11 +2783,14 @@
             #{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.is_task_plan=1 and task.task_status=3 and task.check_first_id=#{managerId}
-        AND project.`status` = 1 and task.task_plan=1
+        and task.end_date is not null and task.is_task_plan=1  and task.check_first_id=#{managerId}
+        AND project.`status` = 1 and task.task_plan=1 and task.task_status !=2
         <if test="targetUserId !=null and targetUserId !='' ">
             and user.`id`=#{targetUserId}
         </if>
+        <if test="justWaitForMe !=null">
+            and task.task_status=3
+        </if>
         ORDER BY user.id, task.start_date
     </select>
     <select id="getTaskPlanByAreaManager" resultType="java.util.Map">
@@ -2795,11 +2807,14 @@
             #{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.is_task_plan=1 and task.task_status=4 and task.check_second_id=#{managerId}
-        AND project.`status` = 1 and task.task_plan=1
+        and task.end_date is not null  and  task.check_second_id=#{managerId}
+        AND project.`status` = 1 and task.task_plan=1 and task.task_status !=2
         <if test="targetUserId !=null and targetUserId !='' ">
             and user.`id`=#{targetUserId}
         </if>
+        <if test="justWaitForMe !=null">
+            and task.task_status=4
+        </if>
         ORDER BY user.id, task.start_date
     </select>
     <select id="getTaskPlanByProjectGeneralMemb" resultType="java.util.Map">
@@ -2827,6 +2842,9 @@
         <if test="targetProjectId !=null  ">
             and project.`id` = #{targetProjectId}
         </if>
+        <if test="justWaitForMe !=null">
+            and (task.check_first_id=#{creatorId} or task.check_second_id=#{creatorId}) and (task.task_status=3 or task.task_status=4)
+        </if>
         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 project.`status` = 1
@@ -2857,8 +2875,11 @@
         <if test="targetProjectId !=null  ">
             and project.`id` = #{targetProjectId}
         </if>
+        <if test="justWaitForMe !=null">
+            and task.task_status=3
+        </if>
         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.is_task_plan=1 and task.task_status=3 and task.check_first_id=#{managerId}
+        and task.end_date is not null and task.is_task_plan=1  and task.check_first_id=#{managerId} and task.task_status !=2
         AND project.`status` = 1
         ORDER BY project.id, task.start_date
     </select>
@@ -2887,9 +2908,12 @@
         <if test="targetProjectId !=null  ">
             and project.`id` = #{targetProjectId}
         </if>
+        <if test="justWaitForMe !=null">
+            and task.task_status=4
+        </if>
         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.is_task_plan=1 and task.task_status=4 and task.check_second_id=#{managerId}
-        AND project.`status` = 1
+        and task.end_date is not null and task.task_plan=1 and  task.check_second_id=#{managerId}
+        AND project.`status` = 1 and task.task_status !=2
         ORDER BY project.id, task.start_date
     </select>
     <select id="getFTETaskPlanData" resultType="java.util.Map">