Ver código fonte

任务模块修改任务信息

yusm 1 ano atrás
pai
commit
08904ad720

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

@@ -62,5 +62,10 @@ public class TaskController {
         return taskService.pageTask(taskDto,request);
     }
 
+    @RequestMapping("updateTask")
+    public HttpRespMsg updateTask(@RequestBody TaskDto taskDto){
+        return taskService.updateTask(taskDto ,request);
+    }
+
 }
 

+ 9 - 3
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-08
+ * @since 2024-03-11
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -125,17 +125,23 @@ public class Task extends Model<Task> {
     private Integer repeatEndCount;
 
     /**
-     * 重复结束 在  ? 日期YYYY-MM-DD之后;保存为 x1,x2,x3,x4
+     * 重复结束 在  ? 日期YYYY-MM-DD之后
      */
     @TableField("repeat_end_date")
     private LocalDate repeatEndDate;
 
     /**
-     * 自定义周期: 每 ? 天一次
+     * 自定义周期: 每 ? 天一次,保存为 x1,x2,x3,x4
      */
     @TableField("repeat_design_day")
     private String repeatDesignDay;
 
+    /**
+     * 自定义周期:每? 天
+     */
+    @TableField("repeat_design_sameday")
+    private Integer repeatDesignSameday;
+
     /**
      * 任务描述
      */

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

@@ -60,4 +60,6 @@ public interface TaskMapper extends BaseMapper<Task> {
     List<TasKVo> getPageListTask(TaskDto taskDto);
 
     List<TasKVo> getPageListTotalTask(TaskDto taskDto);
+
+    void updateRepeatConfig(Task task);
 }

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

@@ -26,4 +26,5 @@ public interface TaskService extends IService<Task> {
 
     HttpRespMsg pageTask(TaskDto taskDto, HttpServletRequest request);
 
+    HttpRespMsg updateTask(TaskDto taskDto, HttpServletRequest request);
 }

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

@@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.additional.update.impl.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.util.StringUtil;
 import com.management.platform.entity.*;
@@ -156,5 +158,64 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
         return msg;
     }
 
+    @Override
+    @Transactional
+    public HttpRespMsg updateTask(TaskDto taskDto, HttpServletRequest request) {
+        HttpRespMsg msg=new HttpRespMsg();
+        String token = String.valueOf(request.getHeader("Token"));
+        User user = userMapper.selectById(token);
+        if (user==null){
+            msg.setError("无法获取创建人信息!");
+            return msg;
+        }
+        taskDto.setCompanyId(user.getCompanyId());
+        if (taskDto.getId()==null){
+           msg.setError("无任务的关键信息");
+           return msg;
+        }
+        if (StringUtils.isEmpty(taskDto.getTaskName())||taskDto.getPriority()==null){
+            msg.setError("缺少任务名称或任务优先级!");
+            return msg;
+        }
+        Task task = taskMapper.selectById(taskDto.getId());
+        updateTaskRepeatConfigure(task);//将任务中之前的关于重复日期相关的置空
+        taskMapper.updateRepeatConfig(task);
+        BeanUtils.copyProperties(taskDto,task);
+        taskMapper.updateById(task);
+
+        //删除之前的执行人
+        LambdaQueryWrapper<TaskExecutor> lwq = new LambdaQueryWrapper<>();
+        lwq.eq(TaskExecutor::getTaskId,taskDto.getId());
+        taskExecutorMapper.delete(lwq);
+
+        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());
+        taskLog.setContent("修改了任务");
+        taskLog.setUserId(user.getId());
+        taskLog.setUserName(user.getName());
+        taskLog.setModTime(LocalDateTime.now());
+        taskLogMapper.insert(taskLog);
+
+        return msg;
+    }
+
+    public void updateTaskRepeatConfigure(Task task){
+        task.setRepeatType(null).setRepeatEndNever(null).setRepeatEndCount(null)
+                .setRepeatEndDate(null).setRepeatDesignDay(null).setRepeatDesignSameday(null);
+    }
+
 
 }

+ 11 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/TaskMapper.xml

@@ -23,6 +23,7 @@
         <result column="repeat_end_count" property="repeatEndCount" />
         <result column="repeat_end_date" property="repeatEndDate" />
         <result column="repeat_design_day" property="repeatDesignDay" />
+        <result column="repeat_design_sameday" property="repeatDesignSameday" />
         <result column="task_desc" property="taskDesc" />
         <result column="creater_id" property="createrId" />
         <result column="creater_name" property="createrName" />
@@ -39,7 +40,7 @@
 
     <!-- 通用查询结果列 -->
     <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, 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
+        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, repeat_design_sameday, 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">
@@ -224,4 +225,13 @@
         </where>
     </select>
 
+    <update id="updateRepeatConfig">
+        update task
+        <set>
+            repeat_type=#{repeatType},repeat_end_never=#{repeatEndNever},repeat_end_count=#{repeatEndCount},
+            repeat_end_date=#{repeatEndDate},repeat_design_day=#{repeatDesignDay},repeat_design_sameday=#{repeatDesignSameday}
+        </set>
+        where id=#{id}
+    </update>
+
 </mapper>