Browse Source

八爪鱼增加对任务重启是否需要原因的控制
工时管家增加任务重启表
增加任务重启相关操作

yurk 2 years ago
parent
commit
7a87b48002
20 changed files with 628 additions and 11 deletions
  1. 27 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskCommentController.java
  2. 24 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java
  3. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskPersonLiableController.java
  4. 40 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskRestartController.java
  5. 8 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TaskComment.java
  6. 60 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TaskPersonLiable.java
  7. 67 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TaskRestart.java
  8. 7 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java
  9. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/TaskPersonLiableMapper.java
  10. 22 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/TaskRestartMapper.java
  11. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/TaskPersonLiableService.java
  12. 22 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/TaskRestartService.java
  13. 0 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  14. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskPersonLiableServiceImpl.java
  15. 177 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskRestartServiceImpl.java
  16. 19 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskPersonLiableMapper.xml
  17. 71 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskRestartMapper.xml
  18. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml
  19. 7 1
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/TimeType.java
  20. 2 1
      fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/TimeTypeMapper.xml

+ 27 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskCommentController.java

@@ -2,9 +2,9 @@ package com.management.platform.controller;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.TaskComment;
-import com.management.platform.entity.User;
-import com.management.platform.entity.WxCorpInfo;
+import com.management.platform.entity.*;
+import com.management.platform.mapper.TaskPersonLiableMapper;
+import com.management.platform.mapper.TaskRestartMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.mapper.WxCorpInfoMapper;
 import com.management.platform.service.TaskCommentService;
@@ -18,6 +18,8 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -40,6 +42,10 @@ public class TaskCommentController {
     private WxCorpInfoMapper wxCorpInfoMapper;
     @Resource
     private UserMapper userMapper;
+    @Resource
+    private TaskRestartMapper taskRestartMapper;
+    @Resource
+    private TaskPersonLiableMapper taskPersonLiableMapper;
     /**
      * 添加任务留言
      * @return
@@ -65,12 +71,16 @@ public class TaskCommentController {
     @RequestMapping("getList")
     public HttpRespMsg getList(Integer taskId) {
         List<TaskComment> taskComments = taskCommentService.list(new QueryWrapper<TaskComment>().eq("task_id", taskId));
+        List<TaskRestart> taskRestarts = taskRestartMapper.selectList(new QueryWrapper<TaskRestart>().eq("task_id", taskId));
+        List<TaskPersonLiable> taskPersonLiables = taskPersonLiableMapper.selectList(new QueryWrapper<TaskPersonLiable>().eq("task_id", taskId));
         String token = request.getHeader("token");
         User user = userMapper.selectById(token);
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id",user.getCompanyId()));
         List<User> users = userMapper.selectList(new QueryWrapper<User>().eq("company_id",user.getCompanyId()));
-        if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-            for (TaskComment taskComment : taskComments) {
+        for (TaskComment taskComment : taskComments) {
+            List<TaskRestart> taskRestartList = taskRestarts.stream().filter(tr -> tr.getTaskCommentId().equals(taskComment.getId())).collect(Collectors.toList());
+            List<TaskPersonLiable> taskPersonLiableList = taskPersonLiables.stream().filter(tp -> tp.getTaskCommentId().equals(taskComment.getId())).collect(Collectors.toList());
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
                 String userWxId = "";
                 String userName = taskComment.getUserName();
                 for (User item : users) {
@@ -83,6 +93,18 @@ public class TaskCommentController {
                 String newContent = content.replace(userName, "$userName=" + userWxId + "$");
                 taskComment.setContent(newContent);
             }
+            for (TaskPersonLiable taskPersonLiable : taskPersonLiableList) {
+                Optional<User> first = users.stream().filter(us -> us.getId().equals(taskPersonLiable.getPersonLiableId())).findFirst();
+                if(first.isPresent()){
+                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                        taskPersonLiable.setUserName(first.get().getCorpwxRealUserid());
+                    }else taskPersonLiable.setUserName(first.get().getName());
+                }
+            }
+            if(taskRestartList.size()>0){
+                taskComment.setReason(taskRestartList.get(0).getRestartReason());
+            }else taskComment.setReason("");
+            taskComment.setTaskPersonLiableList(taskPersonLiableList);
         }
         HttpRespMsg msg = new HttpRespMsg();
         msg.data = taskComments;

+ 24 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -88,6 +88,10 @@ public class TaskController {
     private TaskGroupService taskGroupService;
     @Resource
     private TaskAddCtrlMapper taskAddCtrlMapper;
+    @Resource
+    private TaskRestartMapper taskRestartMapper;
+    @Resource
+    private TaskPersonLiableMapper taskPersonLiableMapper;
 
     @RequestMapping("/save")
     @Transactional
@@ -308,7 +312,7 @@ public class TaskController {
     }
 
     @RequestMapping("/finish")
-    public HttpRespMsg finish(Task task) {
+    public HttpRespMsg finish(Task task,String personLiableIds,String reason) {
         HttpRespMsg msg = new HttpRespMsg();
         DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         String token = request.getHeader("TOKEN");
@@ -365,6 +369,25 @@ public class TaskController {
             taskComment.setCreateTime(LocalDateTime.now());
             taskComment.setType(4);
             taskCommentMapper.insert(taskComment);
+            TaskRestart taskRestart=new TaskRestart();
+            taskRestart.setOperatorId(user.getId());
+            taskRestart.setRestartDate(LocalDateTime.now());
+            taskRestart.setTaskId(task.getId());
+            taskRestart.setRestartReason(reason);
+            taskRestart.setTaskCommentId(taskComment.getId());
+            taskRestartMapper.insert(taskRestart);
+            if(personLiableIds!=null&&!personLiableIds.equals("")){
+                String[] split = personLiableIds.split(",");
+                List<String> list = Arrays.asList(split);
+                for (String s : list) {
+                    TaskPersonLiable taskPersonLiable=new TaskPersonLiable();
+                    taskPersonLiable.setPersonLiableId(s);
+                    taskPersonLiable.setTaskId(task.getId());
+                    taskPersonLiable.setTaskRestartId(taskRestart.getId());
+                    taskPersonLiable.setTaskCommentId(taskComment.getId());
+                    taskPersonLiableMapper.insert(taskPersonLiable);
+                }
+            }
         } else {
             //msg.setError("状态不对,无法操作");
             msg.setError(MessageUtils.message("other.stateError"));

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskPersonLiableController.java

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-01-17
+ */
+@RestController
+@RequestMapping("/task-person-liable")
+public class TaskPersonLiableController {
+
+}
+

+ 40 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskRestartController.java

@@ -0,0 +1,40 @@
+package com.management.platform.controller;
+
+
+import com.management.platform.service.TaskRestartService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-01-17
+ */
+@RestController
+@RequestMapping("/task-restart")
+public class TaskRestartController {
+
+    @Resource
+    private TaskRestartService taskRestartService;
+
+    @RequestMapping("/getTaskRestartList")
+    public HttpRespMsg getTaskRestartList(HttpServletRequest request,String startDate,String endDate,String personLiableId,String projectId,Integer pageIndex,Integer pageSize){
+        return taskRestartService.getTaskRestartList(request,startDate,endDate,personLiableId,projectId,pageIndex,pageSize);
+    }
+
+    @RequestMapping("/exportTaskRestartList")
+    public HttpRespMsg exportTaskRestartList(HttpServletRequest request,String startDate,String endDate,String personLiableId,String projectId){
+        return taskRestartService.exportTaskRestartList(request,startDate,endDate,personLiableId,projectId);
+    }
+
+
+}
+

+ 8 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TaskComment.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
+import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
@@ -74,6 +75,13 @@ public class TaskComment extends Model<TaskComment> {
      */
     @TableField("type")
     private Integer type;
+    
+    @TableField(exist = false)
+    private String reason;
+
+
+    @TableField(exist = false)
+    private List<TaskPersonLiable> taskPersonLiableList;
 
 
     @Override

+ 60 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TaskPersonLiable.java

@@ -0,0 +1,60 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-01-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class TaskPersonLiable extends Model<TaskPersonLiable> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 任务id
+     */
+    @TableField("task_id")
+    private Integer taskId;
+
+    @TableField("task_restart_id")
+    private Integer taskRestartId;
+
+    /**
+     * 责任人id
+     */
+    @TableField("person_liable_id")
+    private String personLiableId;
+
+    /**
+     * 绑定动态
+     */
+    @TableField("task_comment_id")
+    private Integer taskCommentId;
+
+    @TableField(exist = false)
+    private String userName;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 67 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TaskRestart.java

@@ -0,0 +1,67 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-01-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class TaskRestart extends Model<TaskRestart> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 任务id
+     */
+    @TableField("task_id")
+    private Integer taskId;
+
+    /**
+     * 操作人id
+     */
+    @TableField("operator_id")
+    private String operatorId;
+
+    /**
+     * 操作时间
+     */
+    @TableField("restart_date")
+    private LocalDateTime restartDate;
+
+    /**
+     * 重启原因
+     */
+    @TableField("restart_reason")
+    private String restartReason;
+
+    /**
+     * 绑定动态
+     */
+    @TableField("task_comment_id")
+    private Integer taskCommentId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 7 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -17,7 +17,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2022-12-07
+ * @since 2023-01-17
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -407,6 +407,12 @@ public class TimeType extends Model<TimeType> {
     @TableField("push_report_url")
     private String pushReportUrl;
 
+    /**
+     * 0-否 1-是
+     */
+    @TableField("restart_task_need_reason")
+    private Integer restartTaskNeedReason;
+
 
     @Override
     protected Serializable pkVal() {

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/TaskPersonLiableMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.TaskPersonLiable;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-01-17
+ */
+public interface TaskPersonLiableMapper extends BaseMapper<TaskPersonLiable> {
+
+}

+ 22 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/TaskRestartMapper.java

@@ -0,0 +1,22 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.TaskRestart;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-01-17
+ */
+public interface TaskRestartMapper extends BaseMapper<TaskRestart> {
+
+    List<Map<String, Object>> getTaskRestartList(Integer companyId, String startDate, String endDate, String inchargerId, String personLiableId, String projectId,Integer start,Integer size);
+
+    long getTaskRestartCount(Integer companyId, String startDate, String endDate, String inchargerId, String personLiableId, String projectId, Integer start, Integer size);
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/TaskPersonLiableService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.TaskPersonLiable;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-01-17
+ */
+public interface TaskPersonLiableService extends IService<TaskPersonLiable> {
+
+}

+ 22 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/TaskRestartService.java

@@ -0,0 +1,22 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.TaskRestart;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.util.HttpRespMsg;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-01-17
+ */
+public interface TaskRestartService extends IService<TaskRestart> {
+
+    HttpRespMsg getTaskRestartList(HttpServletRequest request, String startDate, String endDate, String personLiableId, String projectId,Integer pageIndex,Integer pageSize);
+
+    HttpRespMsg exportTaskRestartList(HttpServletRequest request, String startDate, String endDate, String personLiableId, String projectId);
+}

+ 0 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -2708,7 +2708,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                  allStageCostList = projectMapper.selectStageSum(null,null,user.getId(),startDate,endDate);
             }
         }
-
         //获取全部的列
         List<Integer> collect = record.stream().map(ProjectWithStage::getId).collect(Collectors.toList());
         final List<String> stageList = new ArrayList<>();

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskPersonLiableServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.TaskPersonLiable;
+import com.management.platform.mapper.TaskPersonLiableMapper;
+import com.management.platform.service.TaskPersonLiableService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-01-17
+ */
+@Service
+public class TaskPersonLiableServiceImpl extends ServiceImpl<TaskPersonLiableMapper, TaskPersonLiable> implements TaskPersonLiableService {
+
+}

+ 177 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskRestartServiceImpl.java

@@ -0,0 +1,177 @@
+package com.management.platform.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.management.platform.entity.TaskRestart;
+import com.management.platform.entity.User;
+import com.management.platform.entity.WxCorpInfo;
+import com.management.platform.entity.vo.ProjectWithStage;
+import com.management.platform.entity.vo.StageCost;
+import com.management.platform.entity.vo.SysRichFunction;
+import com.management.platform.mapper.SysFunctionMapper;
+import com.management.platform.mapper.TaskRestartMapper;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.mapper.WxCorpInfoMapper;
+import com.management.platform.service.ExcelExportService;
+import com.management.platform.service.TaskRestartService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.util.HttpRespMsg;
+import com.management.platform.util.MessageUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-01-17
+ */
+@Service
+public class TaskRestartServiceImpl extends ServiceImpl<TaskRestartMapper, TaskRestart> implements TaskRestartService {
+
+    String pathPrefix = "/upload/";
+
+    @Resource
+    private TaskRestartMapper taskRestartMapper;
+    @Resource
+    private UserMapper userMapper;
+    @Resource
+    private WxCorpInfoMapper wxCorpInfoMapper;
+    @Resource
+    private SysFunctionMapper sysFunctionMapper;
+    @Resource
+    private ExcelExportService excelExportService;
+
+    @Value(value = "${upload.path}")
+    private String path;
+
+    @Override
+    public HttpRespMsg getTaskRestartList(HttpServletRequest request, String startDate, String endDate, String personLiableId, String projectId,Integer pageIndex,Integer pageSize) {
+        String token = request.getHeader("TOKEN");
+        User user = userMapper.selectById(token);
+        Integer companyId = user.getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
+        List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
+        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        DateTimeFormatter df2=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        String needEndDate= LocalDate.parse(endDate, df).plusDays(1).format(df);
+        HttpRespMsg msg = new HttpRespMsg();
+        int startIndex = (pageIndex-1)*pageSize;
+        int endIndex = pageSize*pageIndex;
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务重启表");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务重启表");
+        //判断查看权限
+        List<Map<String,Object>> record = taskRestartMapper.getTaskRestartList(companyId,startDate,needEndDate,null,personLiableId,projectId,startIndex,endIndex);
+        long total=taskRestartMapper.getTaskRestartCount(companyId,startDate,needEndDate,null,personLiableId,projectId,startIndex,endIndex);
+        if(functionAllList.size()==0){
+            if(functionInchargeList.size()>0){
+                record = taskRestartMapper.getTaskRestartList(companyId,startDate,needEndDate,user.getId(),personLiableId,projectId,startIndex,endIndex);
+                total=taskRestartMapper.getTaskRestartCount(companyId,startDate,needEndDate,user.getId(),personLiableId,projectId,null,null);
+            }
+        }
+        for (Map<String, Object> map : record) {
+            String personLiableIds = String.valueOf(map.get("personLiableIds"));
+            String restartDateString = String.valueOf(map.get("restartDate"));
+            String restartDate = LocalDateTime.parse(restartDateString, df2).format(df2);
+            map.put("restartDate",restartDate);
+            String[] split = personLiableIds.split(",");
+            List<String> list = Arrays.asList(split);
+            StringBuilder personLiableNames=new StringBuilder();
+            for (String s : list) {
+                Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(s)).findFirst();
+                if(first.isPresent()){
+                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                        if(first.get().getCorpwxRealUserid()!=null){
+                            personLiableNames.append(first.get().getCorpwxUserid()+",");
+                        }
+                    }else {
+                        personLiableNames.append(first.get().getName()+",");
+                    }
+                }
+            }
+            map.put("personLiableNames",personLiableNames.length()>1?personLiableNames.toString().substring(0,personLiableNames.length()-1):"");
+        }
+        HashMap map=new HashMap();
+        map.put("record",record);
+        map.put("total",total);
+        msg.data=map;
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg exportTaskRestartList(HttpServletRequest request, String startDate, String endDate, String personLiableId, String projectId) {
+        String token = request.getHeader("TOKEN");
+        User user = userMapper.selectById(token);
+        Integer companyId = user.getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
+        List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
+        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        DateTimeFormatter df2=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        String needEndDate= LocalDate.parse(endDate, df).plusDays(1).format(df);
+        HttpRespMsg msg = new HttpRespMsg();
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务重启表");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务重启表");
+        //判断查看权限
+        List<Map<String,Object>> record = taskRestartMapper.getTaskRestartList(companyId,startDate,needEndDate,null,personLiableId,projectId,null,null);
+        if(functionAllList.size()==0){
+            if(functionInchargeList.size()>0){
+                record = taskRestartMapper.getTaskRestartList(companyId,startDate,needEndDate,user.getId(),personLiableId,projectId,null,null);
+            }
+        }
+        List<List<String>> dataList=new ArrayList<>();
+        List<String> titleList=new ArrayList<>();
+        titleList.add("项目编号");
+        titleList.add("项目名称");
+        titleList.add("任务名称");
+        titleList.add("重启原因");
+        titleList.add("责任人");
+        titleList.add("重启时间");
+        dataList.add(titleList);
+        for (Map<String, Object> map : record) {
+            List<String> item=new ArrayList<>();
+            item.add(String.valueOf(map.get("projectCode")==null?"":map.get("projectCode")));
+            item.add(String.valueOf(map.get("projectName")==null?"":map.get("projectName")));
+            item.add(String.valueOf(map.get("taskName")==null?"":map.get("taskName")));
+            item.add(String.valueOf(map.get("restartReason")==null?"":map.get("restartReason")));
+            String personLiableIds = String.valueOf(map.get("personLiableIds"));
+            String restartDateString = String.valueOf(map.get("restartDate"));
+            String restartDate = LocalDateTime.parse(restartDateString, df2).format(df2);
+            map.put("restartDate",restartDate);
+            String[] split = personLiableIds.split(",");
+            List<String> list = Arrays.asList(split);
+            StringBuilder personLiableNames=new StringBuilder();
+            for (String s : list) {
+                Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(s)).findFirst();
+                if(first.isPresent()){
+                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                        if(first.get().getCorpwxRealUserid()!=null){
+                            personLiableNames.append("$userName="+(first.get().getCorpwxUserid()==null?"":first.get().getCorpwxUserid())+"$"+",");
+                        }
+                    }else {
+                        personLiableNames.append(first.get().getName()+",");
+                    }
+                }
+            }
+            item.add(String.valueOf(personLiableNames.length()>1?personLiableNames.toString().substring(0,personLiableNames.length()-1):""));
+            item.add(String.valueOf(map.get("restartDate")));
+            dataList.add(item);
+        }
+        String fileName = "任务重启报表_"+System.currentTimeMillis();
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList2(wxCorpInfo,fileName, dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        msg.data =  pathPrefix + fileName+".xlsx";
+        return msg;
+    }
+}

+ 19 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskPersonLiableMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.TaskPersonLiableMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.TaskPersonLiable">
+        <id column="id" property="id" />
+        <result column="task_id" property="taskId" />
+        <result column="task_restart_id" property="taskRestartId" />
+        <result column="person_liable_id" property="personLiableId" />
+        <result column="task_comment_id" property="taskCommentId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, task_id, task_restart_id, person_liable_id, task_comment_id
+    </sql>
+
+</mapper>

+ 71 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskRestartMapper.xml

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.TaskRestartMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.TaskRestart">
+        <id column="id" property="id" />
+        <result column="task_id" property="taskId" />
+        <result column="operator_id" property="operatorId" />
+        <result column="restart_date" property="restartDate" />
+        <result column="restart_reason" property="restartReason" />
+        <result column="task_comment_id" property="taskCommentId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, task_id, operator_id, restart_date, restart_reason, task_comment_id
+    </sql>
+
+    <select id="getTaskRestartList" resultType="java.util.Map">
+        select c.project_name as projectName,c.project_code as projectCode,b.name as taskName,a.restart_reason as restartReason,date_format(a.restart_date,'%Y-%m-%d %H:%i:%s') as restartDate,GROUP_CONCAT(d.person_liable_id) as personLiableIds from task_restart a
+        left join task b on b.id=a.task_id
+        left join project c on c.id=b.project_id
+        left join task_person_liable d on d.task_id=a.task_id
+        <if test="personLiableId!=null and personLiableId!=''">
+            left join task_person_liable d2 on d2.task_id=a.task_id
+        </if>
+        where c.company_id=#{companyId}
+        <if test="startDate!=null and endDate!=null">
+            and a.restart_date between #{startDate} and #{endDate}
+        </if>
+        <if test="inchargerId!=null">
+            and c.incharger_id=#{inchargerId}
+        </if>
+        <if test="personLiableId!=null and personLiableId!=''">
+            and d2.person_liable_id=#{personLiableId}
+        </if>
+        <if test="projectId!=null and projectId!=''">
+            and c.id=#{projectId}
+        </if>
+        group by a.id
+        <if test="start!=null and size!=null">
+            limit #{start},#{size}
+        </if>
+    </select>
+
+    <select id="getTaskRestartCount" resultType="java.lang.Long">
+        select count(1) from (select c.project_name as projectName,c.project_code as projectCode,b.name as taskName,a.restart_reason as restartReason,date_format(a.restart_date,'%Y-%m-%d %H:%i:%s') as restartDate,GROUP_CONCAT(d.person_liable_id) as personLiableIds from task_restart a
+        left join task b on b.id=a.task_id
+        left join project c on c.id=b.project_id
+        left join task_person_liable d on d.task_id=a.task_id
+        <if test="personLiableId!=null and personLiableId!=''">
+            left join task_person_liable d2 on d2.task_id=a.task_id
+        </if>
+        where c.company_id=#{companyId}
+        <if test="startDate!=null and endDate!=null">
+            and a.restart_date between #{startDate} and #{endDate}
+        </if>
+        <if test="inchargerId!=null">
+            and c.incharger_id=#{inchargerId}
+        </if>
+        <if test="personLiableId!=null and personLiableId!=''">
+            and d2.person_liable_id=#{personLiableId}
+        </if>
+        <if test="projectId!=null and projectId!=''">
+            and c.id=#{projectId}
+        </if>
+        group by a.id) as total
+    </select>
+
+</mapper>

File diff suppressed because it is too large
+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml


+ 7 - 1
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -17,7 +17,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2023-01-03
+ * @since 2023-01-17
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -407,6 +407,12 @@ public class TimeType extends Model<TimeType> {
     @TableField("push_report_url")
     private String pushReportUrl;
 
+    /**
+     * 0-否 1-是
+     */
+    @TableField("restart_task_need_reason")
+    private Integer restartTaskNeedReason;
+
 
     @Override
     protected Serializable pkVal() {

File diff suppressed because it is too large
+ 2 - 1
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/TimeTypeMapper.xml