Ver código fonte

工作计划需求测试修改2

yusm 1 mês atrás
pai
commit
05ae54cb4a

+ 18 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -14,7 +14,6 @@ import com.management.platform.service.*;
 import com.management.platform.service.impl.WxCorpInfoServiceImpl;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
-import com.sun.org.apache.xpath.internal.operations.Bool;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.poi.hssf.usermodel.*;
@@ -203,9 +202,22 @@ public class TaskController {
             task.setCreatorColor(user.getColor());
             task.setCompanyId(user.getCompanyId());
 
+            if (user.getCompanyId()==Constant.MLD_COMPANY_ID&&task.getIsTaskPlan()==0&&task.getCheckFirstId()==null){
+                if (task.getProjectId()!=null){
+                    Project project = projectMapper.selectById(task.getProjectId());
+                    task.setCheckFirstId(project.getInchargerId());
+                }
+            }
+
             if (user.getCompanyId()==Constant.MLD_COMPANY_ID&&task.getIsTaskPlan()==1){
                 task.setTaskPlan(1);
                 task.setTaskStatus(3);
+                //状态是请假 直接变成任务
+                if (task.getTaskPlanType()==3){
+                    task.setIsTaskPlan(0);
+                    task.setTaskStatus(0);
+                    task.setTaskPlan(1);
+                }
             }
 //            TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
 //            Integer taskFileCharge = timeType.getTaskFileCharge();
@@ -317,7 +329,9 @@ public class TaskController {
                         Participation participation=new Participation();
                         participation.setUserId(executor.getExecutorId());
                         participation.setProjectId(task.getProjectId());
-                        participationMapper.insert(participation);
+                        if (participation.getProjectId()!=null) {
+                            participationMapper.insert(participation);
+                        }
                     }
                 }
             }
@@ -355,7 +369,7 @@ public class TaskController {
             if (task.getExecutorId() != null) {
                 msgRecepientList = task.getExecutorList().stream().filter(exe->!StringUtils.isEmpty(exe.getExecutorId())).map(TaskExecutor::getExecutorId).collect(Collectors.toList());
             }
-            if (task.getTaskType() == 1) {
+            if (task.getTaskType()!=null&&task.getTaskType() == 1) {
                 needRecalculateProgress = true;
             }
         } else {
@@ -857,6 +871,7 @@ public class TaskController {
             //已超期的任务,未完成的任务
             queryWrapper.lt("end_date", LocalDate.now()).eq("task_status", 0);
         }
+        queryWrapper.eq("is_task_plan",0);
         List<Task> list = taskService.simpleList(queryWrapper,start,size);
         int total = taskMapper.selectCount(queryWrapper);
         //没有权限只能看到自己创建的,负责的和待分配的任务

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java

@@ -73,6 +73,8 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     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);
+    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);

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

@@ -4838,7 +4838,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         for (Map map : taskPlanByGeneralMemb) {
                             map.put("leaderOrManager",1);
                         }
+                        List<Map> taskPlanWithLeave = projectMapper.getTaskPlanWithLeave(null, startDate, endDate, user.getCompanyId(), user.getId(), targetUserId);
+                        for (Map map : taskPlanWithLeave) {
+                            map.put("leaderOrManager",1);
+                        }
                         ganttData.addAll(taskPlanByGeneralMemb);
+                        ganttData.addAll(taskPlanWithLeave);
                     }
                     //找到自己担任项目经理的项目,: is_task_plan==1 ,checkFirstId=自己的id 并且 task_status=3
                     List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("incharger_id", user.getId()));
@@ -5190,13 +5195,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
                     curItem.id = exeId;
                     curItem.userId = (String) map.get("user_id");
-                    curItem.text = (String) map.get("project_name")+"/"+(String)map.get("task_name");
+                    if (map.get("taskPlanType")!=null&&(Integer)map.get("taskPlanType")==3){
+                        curItem.text ="请假";
+                    }else {
+                        curItem.text = (String) map.get("project_name")+"/"+(String)map.get("task_name");
+                        curItem.setCheckFirstId(map.get("checkFirstId")==null?null:(String) map.get("checkFirstId"));
+                        curItem.setCheckSecondId(map.get("checkSecondId")==null?null:(String) map.get("checkSecondId"));
+                    }
                     curItem.start_date = start_date;
 
                     curItem.setTaskPlanType(map.get("taskPlanType")==null?null:(Integer)map.get("taskPlanType"));
                     curItem.setIsTaskPlan(map.get("isTaskPlan")==null?null:(Integer)map.get("isTaskPlan"));
-                    curItem.setCheckFirstId(map.get("checkFirstId")==null?null:(String) map.get("checkFirstId"));
-                    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"));
                     curItem.setLeaderOrManager(map.get("leaderOrManager")==null?null:(Integer)map.get("leaderOrManager"));

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

@@ -2742,6 +2742,22 @@
         AND project.`status` = 1
         ORDER BY user.id, task.start_date
     </select>
+    <select id="getTaskPlanWithLeave" resultType="java.util.Map">
+        SELECT user.`id` as user_id, user.`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_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
+        WHERE
+        ((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_type=3 and task.task_plan=1
+        <if test="targetUserId !=null and targetUserId !='' ">
+            and user.`id`=#{targetUserId}
+        </if>
+        ORDER BY user.id, task.start_date
+    </select>
     <select id="getTaskPlanByProManager" resultType="java.util.Map">
         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 ,
@@ -2870,7 +2886,7 @@
           left join project p on t.project_id=p.id
           LEFT JOIN task_executor te on t.id=te.task_id
           INNER JOIN user u on u.id=te.executor_id
-        WHERE u.company_id=#{companyId} and t.task_plan=1
+        WHERE u.company_id=#{companyId} and t.task_plan=1 and t.task_status &lt;3 and t.task_plan_type !=3
         <if test="area!=null and area != '' ">
             and u.plate1 = #{area}
         </if>