浏览代码

任务模块修改

yusm 1 年之前
父节点
当前提交
9e28046211

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

@@ -57,5 +57,15 @@ public class TaskController {
         return taskService.addTask(taskDto, request);
     }
 
+    @RequestMapping("pageTask")
+    public HttpRespMsg pageTask(@RequestBody TaskDto taskDto){
+        return taskService.pageTask(taskDto,request);
+    }
+
+    @RequestMapping("test")
+    public HttpRespMsg test(@RequestBody TaskDto taskDto){
+        return taskService.test(taskDto,request);
+    }
+
 }
 

+ 6 - 6
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/Task.java

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2024-03-07
+ * @since 2024-03-08
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -89,7 +89,7 @@ public class Task extends Model<Task> {
     private Integer productId;
 
     /**
-     * 状态 0-启动 1-进行中 2-完成 3-推迟
+     * 状态 0-未开始 1-进行中 2-完成 3-推迟
      */
     @TableField("status")
     private Integer status;
@@ -103,8 +103,8 @@ public class Task extends Model<Task> {
     /**
      * 是否重复 0-否 1-是
      */
-    @TableField("repeat")
-    private Integer repeat;
+    @TableField("is_repeat")
+    private Integer isRepeat;
 
     /**
      * 重复类型 :每天:0、每周:1、每月:2、自定义周期:3、自定义日期:4       五种
@@ -125,7 +125,7 @@ public class Task extends Model<Task> {
     private Integer repeatEndCount;
 
     /**
-     * 重复结束 在  ? 日期YYYY-MM-DD之后
+     * 重复结束 在  ? 日期YYYY-MM-DD之后;保存为 x1,x2,x3,x4
      */
     @TableField("repeat_end_date")
     private LocalDate repeatEndDate;
@@ -134,7 +134,7 @@ public class Task extends Model<Task> {
      * 自定义周期: 每 ? 天一次
      */
     @TableField("repeat_design_day")
-    private Integer repeatDesignDay;
+    private String repeatDesignDay;
 
     /**
      * 任务描述

+ 5 - 40
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/TaskExecutor.java

@@ -9,17 +9,13 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * <p>
  * 
  * </p>
  *
  * @author Seyason
- * @since 2023-12-13
+ * @since 2024-03-08
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -28,8 +24,8 @@ public class TaskExecutor extends Model<TaskExecutor> {
 
     private static final long serialVersionUID=1L;
 
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
+    @TableId(value = "task_executor_id", type = IdType.AUTO)
+    private Integer taskExecutorId;
 
     @TableField("task_id")
     private Integer taskId;
@@ -65,43 +61,12 @@ public class TaskExecutor extends Model<TaskExecutor> {
      * SAP项目服务ID
      */
     @TableField("service_id")
-    private Integer serviceId;
-
-    @TableField(exist = false)
-    private String serviceName;
-
-    @TableField(exist = false)
-    private String serviceCode;
+    private String serviceId;
 
 
     @Override
     protected Serializable pkVal() {
-        return this.id;
+        return this.taskExecutorId;
     }
 
-    public static List<TaskExecutor> fromTask(Task task) {
-//        String[] executorIdString = task.getExecutorId().split(",");
-//        String[] executorNameString = task.getExecutorName().split(",");
-//        String[] executorColorString = task.getExecutorColor().split(",");
-        List<TaskExecutor> executorList=new ArrayList<>();
-//        if(executorIdString.length>0){
-//            for (int i=0;i<executorIdString.length;i++) {
-//                TaskExecutor executor = new TaskExecutor();
-//                executor.setTaskId(task.getId());
-//                executor.setProjectId(task.getProjectId());
-//                executor.setPlanHours(task.getPlanHours());
-//                executor.setExecutorId(executorIdString[i]);
-//                executor.setExecutorName(executorNameString[i]);
-//                executor.setExecutorColor(executorColorString[i]);
-//                executorList.add(executor);
-//            }
-//        }
-        return executorList;
-    }
-
-    public static void fromTask(Task task, TaskExecutor executor) {
-//        executor.setExecutorId(task.getExecutorId());
-//        executor.setExecutorName(task.getExecutorName());
-//        executor.setExecutorColor(task.getExecutorColor());
-    }
 }

+ 15 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/dto/TaskDto.java

@@ -5,10 +5,24 @@ import com.management.platform.entity.TaskRepeatDesign;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.time.LocalDate;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
 @Accessors(chain = true)
 public class TaskDto extends Task {
-    private TaskRepeatDesign taskRepeatDesign;
+    private Integer pageIndex;
+    private Integer pageSize;
+
+    private String customName;
+    private String contactsName;
+    private String executorName;
+    private String businessName;
+    private String orderName;
+    private String clueName;
+    private String phone;
+
+
 }

+ 21 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/vo/TasKVo.java

@@ -0,0 +1,21 @@
+package com.management.platform.entity.vo;
+
+import com.management.platform.entity.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.ArrayList;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Accessors(chain = true)
+public class TasKVo extends Task {
+    private Custom custom;
+    private BusinessOpportunity businessOpportunity;
+    private Order order;
+    private Clue clue;
+    private Contacts contacts;
+    private ArrayList<TaskExecutor> taskExecutors;
+
+}

+ 7 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/TaskMapper.java

@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.management.platform.entity.Task;
 import com.management.platform.entity.TimeTask;
+import com.management.platform.entity.dto.TaskDto;
+import com.management.platform.entity.vo.TasKVo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Update;
 
@@ -53,4 +56,8 @@ public interface TaskMapper extends BaseMapper<Task> {
     void updateEndDate(Integer id);
     @Update("update task set finish_date =null where id=#{id}")
     void updateFinishDate(Integer id);
+
+    Page<TasKVo> pageTask(TaskDto taskDto);
+
+    Page<TasKVo> test(TaskDto taskDto);
 }

+ 4 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/TaskService.java

@@ -23,4 +23,8 @@ import java.util.List;
 public interface TaskService extends IService<Task> {
 
     HttpRespMsg addTask(TaskDto taskDto, HttpServletRequest request);
+
+    HttpRespMsg pageTask(TaskDto taskDto, HttpServletRequest request);
+
+    HttpRespMsg test(TaskDto taskDto, HttpServletRequest request);
 }

+ 1 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -831,7 +831,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         List<TaskExecutor> taskExecutors = taskExecutorMapper.selectList(new QueryWrapper<TaskExecutor>().eq("task_id", taskId).eq("executor_id", r.getCreatorId()));
                         List<Integer> serviceIds = new ArrayList<>();
                         for (TaskExecutor executor : taskExecutors) {
-                            Integer serviceId = executor.getServiceId();
+                            Integer serviceId = Integer.valueOf(executor.getServiceId());
                             if (serviceId != null) {
                                 serviceIds.add(serviceId);
                             }

+ 57 - 7
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java

@@ -3,10 +3,13 @@ package com.management.platform.service.impl;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.util.StringUtil;
 import com.management.platform.entity.*;
 import com.management.platform.entity.dto.TaskDto;
+import com.management.platform.entity.vo.ContactsVo;
+import com.management.platform.entity.vo.TasKVo;
 import com.management.platform.mapper.*;
 import com.management.platform.service.*;
 import com.management.platform.util.ExcelUtil;
@@ -53,6 +56,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
     private TaskMapper taskMapper;
     @Resource
     private TaskLogMapper taskLogMapper;
+    @Resource
+    private TaskExecutorMapper taskExecutorMapper;
 
     @Resource
     private TaskRepeatDesignMapper taskRepeatDesignMapper;
@@ -77,19 +82,39 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
         Task task = new Task();
         BeanUtils.copyProperties(taskDto,task);
         task.setCreateDate(LocalDate.now());//任务的创建时间
+        //根据任务的开始时间与当下时间判断任务的状态
+        if (taskDto.getStartDate()==null||taskDto.getStartDate().isAfter(LocalDate.now())){
+            task.setStatus(0);
+        }else {
+            task.setStatus(1);
+        }
         task.setCreaterName(user.getName());
+        task.setCreaterId(userId);
         task.setCompanyId(user.getCompanyId());
 
         taskMapper.insert(task);
 
-        //重复状态为 自定义日期:4
-        if (taskDto.getRepeatType()==4){
-            TaskRepeatDesign taskRepeatDesign = new TaskRepeatDesign();
-            taskRepeatDesign.setTaskId(task.getId());
-            taskRepeatDesign.setDayCount(taskDto.getTaskRepeatDesign().getDayCount());
-            taskRepeatDesign.setCreateTime(LocalDateTime.now());
-            taskRepeatDesignMapper.insert(taskRepeatDesign);
+//        //重复状态为 自定义日期:4
+//        if (taskDto.getRepeatType()==4){
+//            TaskRepeatDesign taskRepeatDesign = new TaskRepeatDesign();
+//            taskRepeatDesign.setTaskId(task.getId());
+//            taskRepeatDesign.setDayCount(taskDto.getTaskRepeatDesign().getDayCount());
+//            taskRepeatDesign.setCreateTime(LocalDateTime.now());
+//            taskRepeatDesignMapper.insert(taskRepeatDesign);
+//        }
+        //保存任务执行人 //一对多
+        if (StringUtils.isNotEmpty(taskDto.getExecutorId())){
+            String[] executorIds = taskDto.getExecutorId().split(",");
+            for (String executorId : executorIds) {
+                TaskExecutor taskExecutor = new TaskExecutor();
+                User selectedUser = userMapper.selectById(executorId);
+                taskExecutor.setExecutorId(executorId)
+                        .setTaskId(task.getId())
+                        .setExecutorName(selectedUser.getName());
+                taskExecutorMapper.insert(taskExecutor);
+            }
         }
+
         //添加任务编译记录
         TaskLog taskLog = new TaskLog();
         taskLog.setTaskId(task.getId());
@@ -99,6 +124,31 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
         taskLog.setModTime(LocalDateTime.now());
         taskLogMapper.insert(taskLog);
 
+
+
         return httpRespMsg;
     }
+
+    @Override
+    public HttpRespMsg pageTask(TaskDto taskDto, HttpServletRequest request) {
+        String token = String.valueOf(request.getHeader("Token"));
+        User user = userMapper.selectById(token);
+        taskDto.setCompanyId(user.getCompanyId());
+        Page<TasKVo> pageTaskVo =taskMapper.pageTask(taskDto);
+        List<TasKVo> tasKVoList = pageTaskVo.getRecords();
+        HttpRespMsg msg = new HttpRespMsg();
+        msg.setData(tasKVoList);
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg test(TaskDto taskDto, HttpServletRequest request) {
+        String token = String.valueOf(request.getHeader("Token"));
+        User user = userMapper.selectById(token);
+        taskDto.setCompanyId(user.getCompanyId());
+        Page<TasKVo> tasKVoPage= taskMapper.test(taskDto);
+        HttpRespMsg msg = new HttpRespMsg();
+        msg.setData(tasKVoPage.getRecords());
+        return msg;
+    }
 }

+ 2 - 2
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/TaskExecutorMapper.xml

@@ -4,7 +4,7 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.management.platform.entity.TaskExecutor">
-        <id column="id" property="id" />
+        <id column="task_executor_id" property="taskExecutorId" />
         <result column="task_id" property="taskId" />
         <result column="executor_id" property="executorId" />
         <result column="executor_name" property="executorName" />
@@ -16,7 +16,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, task_id, executor_id, executor_name, executor_color, plan_hours, project_id, service_id
+        task_executor_id, task_id, executor_id, executor_name, executor_color, plan_hours, project_id, service_id
     </sql>
 
 </mapper>

+ 128 - 2
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/TaskMapper.xml

@@ -17,7 +17,7 @@
         <result column="product_id" property="productId" />
         <result column="status" property="status" />
         <result column="priority" property="priority" />
-        <result column="repeat" property="repeat" />
+        <result column="is_repeat" property="isRepeat" />
         <result column="repeat_type" property="repeatType" />
         <result column="repeat_end_never" property="repeatEndNever" />
         <result column="repeat_end_count" property="repeatEndCount" />
@@ -39,7 +39,133 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, task_name, company_id, owner_id, contacts_id, executor_id, clue_id, custom_id, business_opportunity_id, order_id, product_id, status, priority, repeat, repeat_type, repeat_end_never, repeat_end_count, repeat_end_date, repeat_design_day, task_desc, creater_id, creater_name, create_date, end_date, start_date, finish_date, plate1, plate2, plate3, plate4, plate5
+        id, task_name, company_id, owner_id, contacts_id, executor_id, clue_id, custom_id, business_opportunity_id, order_id, product_id, status, priority, is_repeat, repeat_type, repeat_end_never, repeat_end_count, repeat_end_date, repeat_design_day, task_desc, creater_id, creater_name, create_date, end_date, start_date, finish_date, plate1, plate2, plate3, plate4, plate5
     </sql>
 
+    <resultMap id="TaskVoMap" type="com.management.platform.entity.vo.TasKVo">
+        <id column="id" property="id" />
+        <association property="custom" javaType="com.management.platform.entity.Custom">
+            <id column="custom_id" property="id"/>
+            <result column="custom_name" property="customName"/>
+        </association>
+        <association property="businessOpportunity" javaType="com.management.platform.entity.BusinessOpportunity">
+            <id column="business_opportunity_id" property="id"/>
+            <result column="businessName" property="name"/>
+        </association>
+        <association property="order" javaType="com.management.platform.entity.Order">
+            <id column="order_id" property="id"/>
+            <result column="order_name" property="orderName"/>
+        </association>
+        <association property="clue" javaType="com.management.platform.entity.Clue">
+            <id column="clue_id" property="id"/>
+            <result column="clue_name" property="clueName"/>
+        </association>
+        <association property="contacts" javaType="com.management.platform.entity.Contacts">
+            <id column="contacts_id" property="id"/>
+            <result column="contacts_name" property="name"/>
+        </association>
+        <collection property="taskExecutors"  ofType="com.management.platform.entity.TaskExecutor">
+            <id column="task_executor_id" property="taskExecutorId"/>
+            <result column="taskExecutor_executor_id" property="executorId"/>
+            <result column="executor_name" property="executorName"/>
+        </collection>
+
+    </resultMap>
+
+    <select id="pageTask" resultMap="TaskVoMap">
+        select task.* ,
+               custom.custom_name,
+               business_opportunity.name businessName,
+              `order`.order_name ,
+               clue.clue_name,
+               contacts.name contacts_name ,contacts.phone,
+               task_executor.task_executor_id, task_executor.executor_id taskExecutor_executor_id,task_executor.executor_name
+        from task
+            left join  custom on task.custom_id=custom.id
+            left join  business_opportunity on task.business_opportunity_id=business_opportunity.id
+            left join  `order` on task.order_id=`order`.id
+            left join  clue on task.clue_id=clue.id
+            left join  contacts on task.contacts_id=contacts.id
+            left join  task_executor on task.id=task_executor.task_id
+
+        <where>
+            <if test=" taskName!= null and taskName != ''">
+                AND task.task_name LIKE CONCAT('%', #{taskName}, '%')
+            </if>
+            <if test=" priority!= null ">
+                AND task.priority =#{priority}
+            </if>
+            <if test=" customName!= null and customName != ''">
+                AND custom.custom_name LIKE CONCAT('%', #{customName}, '%')
+            </if>
+            <if test=" businessName!= null and businessName != ''">
+                AND business_opportunity.name LIKE CONCAT('%', #{businessName}, '%')
+            </if>
+            <if test=" orderName!= null and orderName != ''">
+                AND `order`.order_name LIKE CONCAT('%', #{orderName}, '%')
+            </if>
+            <if test=" clueName!= null and clueName != ''">
+                AND clue.clue_name LIKE CONCAT('%', #{clueName}, '%')
+            </if>
+            <if test=" phone!= null and phone != ''">
+                AND contacts.phone LIKE CONCAT('%', #{phone}, '%')
+            </if>
+            <if test=" status!= null ">
+                AND task.status = #{status}
+            </if>
+            <if test=" executorName!= null and executorName != '' ">
+                AND task_executor.executor_name LIKE CONCAT('%', #{executorName}, '%')
+            </if>
+            <if test=" startDate!= null and startDate != '' ">
+                AND task.start_date &gt; #{startDate}
+            </if>
+            <if test=" endDate!= null and endDate != '' ">
+                AND task.end_date &lt; #{endDate}
+            </if>
+            <if test=" companyId!= null ">
+                AND task.company_id = #{companyId}
+            </if>
+
+        </where>
+        limit #{pageIndex},#{pageSize}
+
+    </select>
+
+   <resultMap id="testMap" type="com.management.platform.entity.vo.TasKVo">
+       <id column="id" property="id" />
+       <result column="task_name" property="taskName" />
+       <result column="company_id" property="companyId" />
+       <result column="owner_id" property="ownerId" />
+       <result column="contacts_id" property="contactsId" />
+       <result column="executor_id" property="executorId" />
+       <result column="clue_id" property="clueId" />
+       <result column="custom_id" property="customId" />
+       <result column="business_opportunity_id" property="businessOpportunityId" />
+       <result column="order_id" property="orderId" />
+       <result column="product_id" property="productId" />
+       <result column="status" property="status" />
+       <result column="priority" property="priority" />
+       <result column="is_repeat" property="isRepeat" />
+       <result column="repeat_type" property="repeatType" />
+       <result column="repeat_end_never" property="repeatEndNever" />
+       <result column="repeat_end_count" property="repeatEndCount" />
+       <result column="repeat_end_date" property="repeatEndDate" />
+       <result column="repeat_design_day" property="repeatDesignDay" />
+       <result column="task_desc" property="taskDesc" />
+       <result column="creater_id" property="createrId" />
+       <result column="creater_name" property="createrName" />
+       <result column="create_date" property="createDate" />
+       <result column="end_date" property="endDate" />
+       <result column="start_date" property="startDate" />
+       <result column="finish_date" property="finishDate" />
+       <collection property="taskExecutors" ofType="com.management.platform.entity.TaskExecutor">
+           <id column="task_executor_id" property="taskExecutorId"/>
+           <result column="executor_name" property="executorName"/>
+       </collection>
+
+   </resultMap>
+    <select id="test" resultMap="testMap">
+        select t.*,e.task_executor_id,e.executor_name from task t left join task_executor  e ON t.id = e.task_id limit #{pageIndex},#{pageSize}
+    </select>
+
 </mapper>