Pārlūkot izejas kodu

工作计划需求测试修改

yusm 1 mēnesi atpakaļ
vecāks
revīzija
e613583437

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

@@ -1615,12 +1615,10 @@ public class ProjectController {
 
     /**
      * 添加任务计划的时候 项目是小组长参与的项目
-     * @param request
-     * @return
      */
     @RequestMapping("/getProjectByLeader")
-    public HttpRespMsg getProjectByLeader(HttpServletRequest request){
-        return projectService.getProjectByLeader(request);
+    public HttpRespMsg getProjectByLeader(Integer projectId, HttpServletRequest request){
+        return projectService.getProjectByLeader(projectId,request);
     }
 
 

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

@@ -32,4 +32,5 @@ public class GanttDataItem {
     private Integer taskStatus;
     private Integer taskId;
     private Integer leaderOrManager;
+    private Integer taskPlan;
 }

+ 7 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java

@@ -72,7 +72,7 @@ public interface ProjectMapper extends BaseMapper<Project> {
                                     @Param("endDate") String endDate, @Param("companyId") Integer companyId);
 
     List<Map> getTaskPlanByProject(@Param("projectIds") List<Integer> projectIds, @Param("startDate") String startDate,
-                                @Param("endDate") String endDate, @Param("companyId") Integer companyId);
+                                @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("groupName")String groupName,@Param("taskType")Integer taskType);
 
     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);
@@ -83,12 +83,15 @@ public interface ProjectMapper extends BaseMapper<Project> {
                                       @Param("endDate") String endDate, @Param("companyId") Integer companyId,@Param("managerId") String managerId,@Param("targetUserId") String targetUserId);
 
     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("endDate") String endDate, @Param("companyId") Integer companyId,@Param("creatorId") String creatorId,
+                                              @Param("groupName")String groupName,@Param("taskType")Integer taskType);
 
     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("endDate") String endDate, @Param("companyId") Integer companyId,@Param("managerId") String managerId,
+                                          @Param("groupName")String groupName,@Param("taskType")Integer taskType);
     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("endDate") String endDate, @Param("companyId") Integer companyId,@Param("managerId") String managerId,
+                                              @Param("groupName")String groupName,@Param("taskType")Integer taskType);
 
     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

@@ -325,7 +325,7 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg transferProjectReviwer(String userId, String targetAuditorId);
 
-    HttpRespMsg getProjectByLeader(HttpServletRequest request);
+    HttpRespMsg getProjectByLeader(Integer projectId, HttpServletRequest request);
 
     HttpRespMsg getProjectTaskPlanFTEData(Integer pageIndex, Integer pageSize, String monthStart, String monthEnd, String area, String userId, String sortProp, Integer sortOrder, Integer departmentId, HttpServletRequest request);
 

+ 18 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -1237,7 +1237,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg getProjectByLeader(HttpServletRequest request) {
+    public HttpRespMsg getProjectByLeader(Integer projectId, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
@@ -1246,6 +1246,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         if(leaderList!=null&& !leaderList.isEmpty()){
             List<Integer> projectIds = leaderList.stream().map(ProjectLeader::getProjectId).distinct().collect(Collectors.toList());
             projectIds.add(-1);
+            if (projectId!=null) {
+                boolean b = projectIds.stream().anyMatch(p -> p.equals(projectId));
+                if (!b) {
+                    projectIds.add(projectId);
+                }
+            }
             List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>()
                     .in("id", projectIds).eq("status",1));
             httpRespMsg.setData(projectList);
@@ -5053,14 +5059,16 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                     }
                 }
-                ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId());
+                ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId(),groupName,taskType);
+                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()));
                     //是小组长
                     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());
+                        List<Map> taskPlanByGeneralMemb = projectMapper.getTaskPlanByProjectGeneralMemb(projectIdList,startDate ,endDate, user.getCompanyId(),user.getId(),groupName,taskType);
+                        System.out.println("ganttData2:"+taskPlanByGeneralMemb.size());
                         ganttData.addAll(taskPlanByGeneralMemb);
                     }
                     //找到自己担任项目经理的项目,: is_task_plan==1 ,checkFirstId=自己的id 并且 task_status=3
@@ -5068,7 +5076,8 @@ 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());
+                        List<Map> taskPlanByProjectManager = projectMapper.getTaskPlanByProjectManager(projectIdList,startDate ,endDate, user.getCompanyId(),user.getId(),groupName,taskType);
+                        System.out.println("ganttData2:"+taskPlanByProjectManager.size());
                         ganttData.addAll(taskPlanByProjectManager);
                     }
 
@@ -5079,7 +5088,8 @@ 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());
+                        List<Map> taskPlanByProjectAreaManager = projectMapper.getTaskPlanByProjectAreaManager(projectIdList, startDate, endDate, user.getCompanyId(),user.getId(),groupName,taskType);
+                        System.out.println("ganttData2:"+taskPlanByProjectAreaManager.size());
                         ganttData.addAll(taskPlanByProjectAreaManager);
                     }
                 }
@@ -5190,6 +5200,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     curItem.setTaskStatus(map.get("taskStatus")==null?null:(Integer)map.get("taskStatus"));
                     curItem.setTaskId(map.get("taskId")==null?null:(Integer)map.get("taskId"));
                     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;
                     curItem.time = (Integer)map.get("duration");
                     curItem.parent = lastItemId;
@@ -5223,6 +5234,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     curItem.setTaskStatus(map.get("taskStatus")==null?null:(Integer)map.get("taskStatus"));
                     curItem.setTaskId(map.get("taskId")==null?null:(Integer)map.get("taskId"));
                     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;
                     curItem.end_date = end_date;
                     curItem.time = (Integer)map.get("duration");
@@ -12901,7 +12913,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                     }
                 }
-                ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId());
+                ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId(),null,null);
                 QueryWrapper<BusinessTrip> btQueryWrapper =new QueryWrapper<>();
                 QueryWrapper<BustripProject> bpQueryWrapper =new QueryWrapper<>();
                 btQueryWrapper.in("owner_id", userIds);

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

@@ -733,7 +733,7 @@
         SELECT user.`id` as user_id, user.`name`,project.id, project.`project_name`,task.id as task_id, task.name as task_name,task_executor.id as exe_id,
         IFNULL(task.`start_date`, task.end_date) as start_date, task.`end_date`, task_executor.plan_hours as duration, task.task_level as level ,
         task.task_plan_type as taskPlanType,task.is_task_plan as isTaskPlan,task.check_first_id as checkFirstId,task.check_second_id as checkSecondId,
-        task.task_status as taskStatus,task.id as taskId
+        task.task_status as taskStatus,task.id as taskId,task.task_plan taskPlan
         FROM user
         LEFT JOIN task_executor ON user.id = task_executor.`executor_id`
         left join task on task.id = task_executor.task_id
@@ -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.end_date is not null and task.task_plan =0
         AND project.`status` = 1
         ORDER BY user.id, task.start_date
     </select>
@@ -751,9 +751,12 @@
     <select id="getTaskPlanByProject" resultType="java.util.Map">
         SELECT task.executor_id as user_id, task.executor_name as `name`,project.id, project.`project_name`,task.id as task_id, task.name as task_name,
         task.task_plan_type as taskPlanType,task.is_task_plan as isTaskPlan,task.check_first_id as checkFirstId,task.check_second_id as checkSecondId
-        ,task.task_status as taskStatus,task.id as taskId,
+        ,task.task_status as taskStatus,task.id as taskId,task.task_plan taskPlan,
         IFNULL(task.`start_date`, task.end_date) as start_date, task.`end_date`, task.plan_hours as duration FROM project
         LEFT JOIN task ON task.project_id = project.id
+        <if test="groupName !=null and groupName !='' ">
+            LEFT JOIN task_group tg ON tg.project_id = project.id
+        </if>
         WHERE project.company_id = #{companyId}
         <if test="projectIds != null">
             and project.`id` IN
@@ -761,8 +764,14 @@
                 #{item}
             </foreach>
         </if>
+        <if test="groupName !=null and groupName !='' ">
+            and tg.name = #{groupName} and task.group_id=tg.id
+        </if>
+        <if test="taskType !=null  ">
+            and task.task_type = #{taskType}
+        </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.end_date is not null and task.task_plan =0
         AND project.`status` = 1
         ORDER BY project.id, task.start_date
     </select>
@@ -2716,7 +2725,7 @@
         SELECT user.`id` as user_id, user.`name`,project.id, project.`project_name`,task.id as task_id, task.name as task_name,task_executor.id as exe_id,
         IFNULL(task.`start_date`, task.end_date) as start_date, task.`end_date`, task_executor.plan_hours as duration, task.task_level as level ,
         task.task_plan_type as taskPlanType,task.is_task_plan as isTaskPlan,task.check_first_id as checkFirstId,task.check_second_id as checkSecondId,
-        task.task_status as taskStatus,task.id as taskId
+        task.task_status as taskStatus,task.id as taskId,task.task_plan taskPlan
         FROM user
         LEFT JOIN task_executor ON user.id = task_executor.`executor_id`
         left join task on task.id = task_executor.task_id
@@ -2737,7 +2746,7 @@
         SELECT user.`id` as user_id, user.`name`,project.id, project.`project_name`,task.id as task_id, task.name as task_name,task_executor.id as exe_id,
         IFNULL(task.`start_date`, task.end_date) as start_date, task.`end_date`, task_executor.plan_hours as duration, task.task_level as level ,
         task.task_plan_type as taskPlanType,task.is_task_plan as isTaskPlan,task.check_first_id as checkFirstId,task.check_second_id as checkSecondId,
-        task.task_status as taskStatus,task.id as taskId
+        task.task_status as taskStatus,task.id as taskId,task.task_plan taskPlan
         FROM user
         LEFT JOIN task_executor ON user.id = task_executor.`executor_id`
         left join task on task.id = task_executor.task_id
@@ -2758,7 +2767,7 @@
         SELECT user.`id` as user_id, user.`name`,project.id, project.`project_name`,task.id as task_id, task.name as task_name,task_executor.id as exe_id,
         IFNULL(task.`start_date`, task.end_date) as start_date, task.`end_date`, task_executor.plan_hours as duration, task.task_level as level ,
         task.task_plan_type as taskPlanType,task.is_task_plan as isTaskPlan,task.check_first_id as checkFirstId,task.check_second_id as checkSecondId,
-        task.task_status as taskStatus,task.id as taskId
+        task.task_status as taskStatus,task.id as taskId,task.task_plan taskPlan
         FROM user
         LEFT JOIN task_executor ON user.id = task_executor.`executor_id`
         left join task on task.id = task_executor.task_id
@@ -2778,9 +2787,12 @@
     <select id="getTaskPlanByProjectGeneralMemb" resultType="java.util.Map">
         SELECT task.executor_id as user_id, task.executor_name as `name`,project.id, project.`project_name`,task.id as task_id, task.name as task_name,
         task.task_plan_type as taskPlanType,task.is_task_plan as isTaskPlan,task.check_first_id as checkFirstId,task.check_second_id as checkSecondId
-        ,task.task_status as taskStatus,task.id as taskId,
+        ,task.task_status as taskStatus,task.id as taskId,task.task_plan taskPlan,
         IFNULL(task.`start_date`, task.end_date) as start_date, task.`end_date`, task.plan_hours as duration FROM project
         LEFT JOIN task ON task.project_id = project.id
+        <if test="groupName !=null and groupName !='' ">
+            LEFT JOIN task_group tg ON tg.project_id = project.id
+        </if>
         WHERE project.company_id = #{companyId}
         <if test="projectIds != null">
             and project.`id` IN
@@ -2788,6 +2800,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="groupName !=null and groupName !='' ">
+            and tg.name = #{groupName} and task.group_id=tg.id
+        </if>
+        <if test="taskType !=null  ">
+            and task.task_type = #{taskType}
+        </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
@@ -2796,9 +2814,12 @@
     <select id="getTaskPlanByProjectManager" resultType="java.util.Map">
         SELECT task.executor_id as user_id, task.executor_name as `name`,project.id, project.`project_name`,task.id as task_id, task.name as task_name,
         task.task_plan_type as taskPlanType,task.is_task_plan as isTaskPlan,task.check_first_id as checkFirstId,task.check_second_id as checkSecondId
-        ,task.task_status as taskStatus,task.id as taskId,
+        ,task.task_status as taskStatus,task.id as taskId,task.task_plan taskPlan,
         IFNULL(task.`start_date`, task.end_date) as start_date, task.`end_date`, task.plan_hours as duration FROM project
         LEFT JOIN task ON task.project_id = project.id
+        <if test="groupName !=null and groupName !='' ">
+            LEFT JOIN task_group tg ON tg.project_id = project.id
+        </if>
         WHERE project.company_id = #{companyId}
         <if test="projectIds != null">
             and project.`id` IN
@@ -2806,6 +2827,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="groupName !=null and groupName !='' ">
+            and tg.name = #{groupName} and task.group_id=tg.id
+        </if>
+        <if test="taskType !=null  ">
+            and task.task_type = #{taskType}
+        </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 project.`status` = 1
@@ -2814,9 +2841,12 @@
     <select id="getTaskPlanByProjectAreaManager" resultType="java.util.Map">
         SELECT task.executor_id as user_id, task.executor_name as `name`,project.id, project.`project_name`,task.id as task_id, task.name as task_name,
         task.task_plan_type as taskPlanType,task.is_task_plan as isTaskPlan,task.check_first_id as checkFirstId,task.check_second_id as checkSecondId
-        ,task.task_status as taskStatus,task.id as taskId,
+        ,task.task_status as taskStatus,task.id as taskId,task.task_plan taskPlan,
         IFNULL(task.`start_date`, task.end_date) as start_date, task.`end_date`, task.plan_hours as duration FROM project
         LEFT JOIN task ON task.project_id = project.id
+        <if test="groupName !=null and groupName !='' ">
+            LEFT JOIN task_group tg ON tg.project_id = project.id
+        </if>
         WHERE project.company_id = #{companyId}
         <if test="projectIds != null">
             and project.`id` IN
@@ -2824,6 +2854,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="groupName !=null and groupName !='' ">
+            and tg.name = #{groupName} and task.group_id=tg.id
+        </if>
+        <if test="taskType !=null  ">
+            and task.task_type = #{taskType}
+        </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