Ver Fonte

修改任务文件相关接口

zhouyy há 6 meses atrás
pai
commit
e6d58ea55d

+ 111 - 113
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -12,7 +12,6 @@ import com.management.platform.mapper.*;
 import com.management.platform.service.*;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
-import org.apache.commons.collections.CollectionUtils;
 import org.apache.poi.hssf.usermodel.*;
 import org.assertj.core.util.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -145,23 +144,23 @@ public class TaskController {
     }
 
 
-    /***
-     * 文件审核
-     * @param taskId 任务id
-     * @param projectId 项目id
-     * @param auditStatus 审核状态 1通过 2驳回
-     * @param reason 驳回理由
-     * @param request
-     * @return
-     */
-    @PostMapping("/auditFile")
-    public HttpRespMsg auditFile(@RequestParam("taskId")Integer taskId
-            ,@RequestParam("projectId")String projectId
-            ,@RequestParam("auditStatus")Integer auditStatus
-            ,@RequestParam(value = "reason",required = false)String reason
-            ,HttpServletRequest request) {
-        return taskService.auditFile(taskId,projectId,auditStatus,reason,request);
-    }
+//    /***
+//     * 文件审核
+//     * @param taskId 任务id
+//     * @param projectId 项目id
+//     * @param auditStatus 审核状态 1通过 2驳回
+//     * @param reason 驳回理由
+//     * @param request
+//     * @return
+//     */
+//    @PostMapping("/auditFile")
+//    public HttpRespMsg auditFile(@RequestParam("taskId")Integer taskId
+//            ,@RequestParam("projectId")String projectId
+//            ,@RequestParam("auditStatus")Integer auditStatus
+//            ,@RequestParam(value = "reason",required = false)String reason
+//            ,HttpServletRequest request) {
+//        return taskService.auditFile(taskId,projectId,auditStatus,reason,request);
+//    }
 
     @RequestMapping("/save")
     @Transactional
@@ -180,24 +179,24 @@ public class TaskController {
             task.setCreaterName(user.getName());
             task.setCreatorColor(user.getColor());
             task.setCompanyId(user.getCompanyId());
-            TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
-            Integer taskFileCharge = timeType.getTaskFileCharge();
-            if(1 == taskFileCharge){
-                //主管: 员工所在部门[department]的manager_id 阶段一
-                //项目经理:project表的in_charge_id 阶段二
-                Department department = departmentMapper.selectById(user.getDepartmentId());
-                Project project = projectMapper.selectById(task.getProjectId());
-                if(org.apache.commons.lang3.StringUtils.isBlank(department.getManagerId())){
-                    msg.setError("员工所在部门无负责人,请重新设置");
-                    return msg;
-                }
-                if(org.apache.commons.lang3.StringUtils.isBlank(project.getInchargerId())){
-                    msg.setError("该项目未设置项目经理,请重新设置");
-                    return msg;
-                }
-                task.setChargeOneId(department.getManagerId());
-                task.setChargeTwoId(project.getInchargerId());
-            }
+//            TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
+//            Integer taskFileCharge = timeType.getTaskFileCharge();
+//            if(1 == taskFileCharge){
+//                //主管: 员工所在部门[department]的manager_id 阶段一
+//                //项目经理:project表的in_charge_id 阶段二
+//                Department department = departmentMapper.selectById(user.getDepartmentId());
+//                Project project = projectMapper.selectById(task.getProjectId());
+//                if(org.apache.commons.lang3.StringUtils.isBlank(department.getManagerId())){
+//                    msg.setError("员工所在部门无负责人,请重新设置");
+//                    return msg;
+//                }
+//                if(org.apache.commons.lang3.StringUtils.isBlank(project.getInchargerId())){
+//                    msg.setError("该项目未设置项目经理,请重新设置");
+//                    return msg;
+//                }
+//                task.setChargeOneId(department.getManagerId());
+//                task.setChargeTwoId(project.getInchargerId());
+//            }
         }
         if (!StringUtils.isEmpty(executorListStr)) {
             List<User> allUsers = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
@@ -332,15 +331,15 @@ public class TaskController {
                 needRecalculateProgress = true;
             }
         } else {
-            task.setChargeOneId(null);
-            task.setChargeStage(null);
-            task.setChargeOneStatus(null);
-            task.setChargeOneTime(null);
-            task.setChargeTwoId(null);
-            task.setChargeTwoStatus(null);
-            task.setChargeTwoTime(null);
-            task.setFinalChargeStatus(null);
-            task.setFileRejectReason(null);
+//            task.setChargeOneId(null);
+//            task.setChargeStage(null);
+//            task.setChargeOneStatus(null);
+//            task.setChargeOneTime(null);
+//            task.setChargeTwoId(null);
+//            task.setChargeTwoStatus(null);
+//            task.setChargeTwoTime(null);
+//            task.setFinalChargeStatus(null);
+//            task.setFileRejectReason(null);
             //更新的情况,需要对比是否修改了任务标题,更新子任务的parentTname
             Task oldTask = taskService.getById(task.getId());
             if (!oldTask.getName().equals(task.getName())) {
@@ -1368,77 +1367,76 @@ public class TaskController {
         List<Integer> collect = list.stream().map(l -> l.getId()).distinct().collect(Collectors.toList());
         collect.add(-1);
         List<TaskExecutor> taskExecutorList = taskExecutorMapper.selectList(new QueryWrapper<TaskExecutor>().in("task_id", collect));
-        List<TaskFiles> taskFilesList = taskFilesMapper.selectList(new LambdaQueryWrapper<TaskFiles>().in(TaskFiles::getTaskId, collect));
+//        List<TaskFiles> taskFilesList = taskFilesMapper.selectList(new LambdaQueryWrapper<TaskFiles>().in(TaskFiles::getTaskId, collect));
         List<Integer> pids = list.stream().map(Task::getProjectId).collect(Collectors.toList());
         pids.add(-1);
         List<Project> projectList = projectService.list(new QueryWrapper<Project>().in("id", pids));
-        TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
-        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id",user.getCompanyId()));
-        CompanyDingding dingding = companyDingdingService.getOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
-        if(1 == timeType.getTaskFileCharge()){
-            List<String> userIds = new ArrayList<>();
-            List<String> chargeOneIds = list.stream().filter(t-> org.apache.commons.lang3.StringUtils.isNotBlank(t.getChargeOneId()))
-                    .map(Task::getChargeOneId).collect(Collectors.toList());
-            List<String> chargeTwoIds = list.stream().filter(t-> org.apache.commons.lang3.StringUtils.isNotBlank(t.getChargeTwoId()))
-                    .map(Task::getChargeTwoId).collect(Collectors.toList());
-            userIds.addAll(chargeOneIds);
-            userIds.addAll(chargeTwoIds);
-
-            Map<String, User> userIdMap = new HashMap<>();
-            if(CollectionUtils.isNotEmpty(userIds)){
-                userIds = userIds.stream().distinct().collect(Collectors.toList());
-                List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>()
-                                .select(User::getId,User::getName)
-                        .in(User::getId, userIds)
-                );
-                userIdMap = users.stream().collect(Collectors.toMap(User::getId, t->t));
-            }
-            Map<Integer, List<TaskFiles>> taskFilesMap = new HashMap<>();
-            if(CollectionUtils.isNotEmpty(taskFilesList)){
-                taskFilesMap  = taskFilesList.stream().collect(Collectors.groupingBy(TaskFiles::getTaskId));
-            }
-            for (Task task : list) {
-                List<TaskFiles> tmp = taskFilesMap.get(task.getId());
-                if(CollectionUtils.isEmpty(tmp)){
-                    continue;
-                }
-                if(org.apache.commons.lang3.StringUtils.isBlank(task.getChargeOneId()) || org.apache.commons.lang3.StringUtils.isBlank(task.getChargeTwoId())){
-                    continue;
-                }
-                if(1 == task.getFinalChargeStatus()){
-                    task.setFinalChargeStatusText("审核通过");
-                    task.setFileChargeStatus(1);
-                } else if (0 == task.getFinalChargeStatus()) {
-                    String name = "";
-                    String statusText = "";
-                    String userWxId = "";
-                    String fileChargeStatusText = "";
-                    int finalStatus = 1==task.getChargeStage()?task.getChargeOneStatus():task.getChargeTwoStatus();
-                    String tmpUserId = 1==task.getChargeStage()?task.getChargeOneId():task.getChargeTwoId();
-                    User chargeUser = userIdMap.get(tmpUserId);
-                    if(null != chargeUser){
-                        if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                            userWxId = chargeUser.getCorpwxRealUserid();
-                        }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
-                            userWxId = chargeUser.getDingdingUserid();
-                        }
-                        name = chargeUser.getName();
-                    }
-                    switch (finalStatus)
-                    {
-                        case 0:  statusText = "待审核"; task.setFileChargeStatus(0);break;
-                        case 1:  statusText = "通过";break;
-                        case 2:  statusText = "驳回"; task.setFileChargeStatus(2);break;
-                    }
-                    if(org.apache.commons.lang3.StringUtils.isBlank(userWxId)){
-                        fileChargeStatusText = statusText+"("+name+")";
-                    }else{
-                        fileChargeStatusText = statusText+"("+("$userName=" + userWxId + "$")+")";
-                    }
-                    task.setFinalChargeStatusText(fileChargeStatusText);
-                }
-            }
-        }
+//        TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
+//        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id",user.getCompanyId()));
+//        CompanyDingding dingding = companyDingdingService.getOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+//        if(1 == timeType.getTaskFileCharge()){
+//            List<String> userIds = new ArrayList<>();
+//            List<String> chargeOneIds = list.stream().filter(t-> org.apache.commons.lang3.StringUtils.isNotBlank(t.getChargeOneId()))
+//                    .map(Task::getChargeOneId).collect(Collectors.toList());
+//            List<String> chargeTwoIds = list.stream().filter(t-> org.apache.commons.lang3.StringUtils.isNotBlank(t.getChargeTwoId()))
+//                    .map(Task::getChargeTwoId).collect(Collectors.toList());
+//            userIds.addAll(chargeOneIds);
+//            userIds.addAll(chargeTwoIds);
+//            Map<String, User> userIdMap = new HashMap<>();
+//            if(CollectionUtils.isNotEmpty(userIds)){
+//                userIds = userIds.stream().distinct().collect(Collectors.toList());
+//                List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>()
+//                                .select(User::getId,User::getName)
+//                        .in(User::getId, userIds)
+//                );
+//                userIdMap = users.stream().collect(Collectors.toMap(User::getId, t->t));
+//            }
+//            Map<Integer, List<TaskFiles>> taskFilesMap = new HashMap<>();
+//            if(CollectionUtils.isNotEmpty(taskFilesList)){
+//                taskFilesMap  = taskFilesList.stream().collect(Collectors.groupingBy(TaskFiles::getTaskId));
+//            }
+//            for (Task task : list) {
+//                List<TaskFiles> tmp = taskFilesMap.get(task.getId());
+//                if(CollectionUtils.isEmpty(tmp)){
+//                    continue;
+//                }
+//                if(org.apache.commons.lang3.StringUtils.isBlank(task.getChargeOneId()) || org.apache.commons.lang3.StringUtils.isBlank(task.getChargeTwoId())){
+//                    continue;
+//                }
+//                if(1 == task.getFinalChargeStatus()){
+//                    task.setFinalChargeStatusText("审核通过");
+//                    task.setFileChargeStatus(1);
+//                } else if (0 == task.getFinalChargeStatus()) {
+//                    String name = "";
+//                    String statusText = "";
+//                    String userWxId = "";
+//                    String fileChargeStatusText = "";
+//                    int finalStatus = 1==task.getChargeStage()?task.getChargeOneStatus():task.getChargeTwoStatus();
+//                    String tmpUserId = 1==task.getChargeStage()?task.getChargeOneId():task.getChargeTwoId();
+//                    User chargeUser = userIdMap.get(tmpUserId);
+//                    if(null != chargeUser){
+//                        if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+//                            userWxId = chargeUser.getCorpwxRealUserid();
+//                        }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+//                            userWxId = chargeUser.getDingdingUserid();
+//                        }
+//                        name = chargeUser.getName();
+//                    }
+//                    switch (finalStatus)
+//                    {
+//                        case 0:  statusText = "待审核"; task.setFileChargeStatus(0);break;
+//                        case 1:  statusText = "通过";break;
+//                        case 2:  statusText = "驳回"; task.setFileChargeStatus(2);break;
+//                    }
+//                    if(org.apache.commons.lang3.StringUtils.isBlank(userWxId)){
+//                        fileChargeStatusText = statusText+"("+name+")";
+//                    }else{
+//                        fileChargeStatusText = statusText+"("+("$userName=" + userWxId + "$")+")";
+//                    }
+//                    task.setFinalChargeStatusText(fileChargeStatusText);
+//                }
+//            }
+//        }
         list.forEach(l->{
             List<TaskExecutor> executorList = taskExecutorList.stream().filter(tl -> tl.getTaskId().equals(l.getId())&&tl.getExecutorId()!=null).collect(Collectors.toList());
             l.setExecutorList(executorList);

+ 72 - 15
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskFilesController.java

@@ -8,6 +8,7 @@ import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
 import com.management.platform.service.CompanyDingdingService;
 import com.management.platform.service.ProjectDocumentService;
+import com.management.platform.service.TaskFilesService;
 import com.management.platform.service.WxCorpInfoService;
 import com.management.platform.task.SFTPAsyncUploader;
 import com.management.platform.util.DocumentTypeUtil;
@@ -18,6 +19,7 @@ import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
@@ -75,6 +77,31 @@ public class TaskFilesController {
     @Resource
     private CompanyDingdingService companyDingdingService;
 
+    @Resource
+    private DepartmentMapper departmentMapper;
+
+    @Resource
+    private ProjectMapper projectMapper;
+
+    @Resource
+    private TaskFilesService taskFilesService;
+
+
+    @PostMapping("/approveFile")
+    public HttpRespMsg approveFile(@RequestParam("taskFileIds")String taskFileIds
+            ,HttpServletRequest request) {
+        return taskFilesService.approveFile(taskFileIds,request);
+    }
+
+//    @PostMapping("/rejectFile")
+//    public HttpRespMsg rejectFile(@RequestParam("taskFileId")Integer taskFileId
+//            ,@RequestParam("taskId")String taskId
+//            ,@RequestParam("projectId")String projectId
+//            ,@RequestParam(value = "reason",required = false)String reason
+//            ,HttpServletRequest request) {
+//        return taskFilesService.rejectFile(taskFileId,taskId,projectId,reason,request);
+//    }
+
     /**
      * 获取该项目下的所有有效的文件列表
      * @param keyword
@@ -114,13 +141,28 @@ public class TaskFilesController {
         record.setSize(document.getSize());
         record.setServerName(document.getServerName());
         record.setUrl(document.getUrl());
-        taskFilesMapper.insert(record);
-
-        //判断文件阶段做回退处理
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
         if(1 == timeType.getTaskFileCharge()){
-            this.resetTaskChargeStatus(taskId);
+            record.setNeedFileCharge(1);
+            Department department = departmentMapper.selectById(user.getDepartmentId());
+            Project project = projectMapper.selectById(taskId);
+            if(org.apache.commons.lang3.StringUtils.isBlank(department.getManagerId())){
+                msg.setError("员工所在部门无负责人,请重新设置");
+                return msg;
+            }
+            if(org.apache.commons.lang3.StringUtils.isBlank(project.getInchargerId())){
+                msg.setError("该项目未设置项目经理,请重新设置");
+                return msg;
+            }
+            record.setChargeOneId(department.getManagerId());
+            record.setChargeTwoId(project.getInchargerId());
         }
+        taskFilesMapper.insert(record);
+
+//        //判断文件阶段做回退处理[修改为对文件,废弃]
+//        if(1 == timeType.getTaskFileCharge()){
+//            this.resetTaskChargeStatus(taskId);
+//        }
 
         //添加动态消息
         Task task = taskMapper.selectById(taskId);
@@ -164,6 +206,9 @@ public class TaskFilesController {
             HttpServletResponse response) throws Exception {
         HttpRespMsg msg = new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("Token"));
+        TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
+        Department department = departmentMapper.selectById(user.getDepartmentId());
+        Project project = projectMapper.selectById(taskId);
         StringBuilder fileNames = new StringBuilder();
         for (MultipartFile file : files) {
             TaskFiles record = new TaskFiles();
@@ -173,6 +218,19 @@ public class TaskFilesController {
             fileNames.append(file.getOriginalFilename()).append(",");
             record.setTaskId(taskId);
             record.setProjectId(projectId);
+            if(1 == timeType.getTaskFileCharge()){
+                record.setNeedFileCharge(1);
+                if(org.apache.commons.lang3.StringUtils.isBlank(department.getManagerId())){
+                    msg.setError("员工所在部门无负责人,请重新设置");
+                    return msg;
+                }
+                if(org.apache.commons.lang3.StringUtils.isBlank(project.getInchargerId())){
+                    msg.setError("该项目未设置项目经理,请重新设置");
+                    return msg;
+                }
+                record.setChargeOneId(department.getManagerId());
+                record.setChargeTwoId(project.getInchargerId());
+            }
             if (file != null && !file.isEmpty()) {
                 //截取文件后缀
                 String fileSuffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
@@ -244,11 +302,11 @@ public class TaskFilesController {
             }
         }
 
-        //判断文件阶段做回退处理
-        TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
-        if(1 == timeType.getTaskFileCharge()){
-            this.resetTaskChargeStatus(taskId);
-        }
+        //判断文件阶段做回退处理[修改为对文件,废弃]
+//        TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
+//        if(1 == timeType.getTaskFileCharge()){
+//            this.resetTaskChargeStatus(taskId);
+//        }
 
         //添加动态消息
         String resFileNames = fileNames.deleteCharAt(fileNames.length() - 1).toString();
@@ -294,12 +352,11 @@ public class TaskFilesController {
         }
         taskFilesMapper.deleteById(id);
 
-        //判断文件阶段做回退处理
-
-        TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
-        if(1 == timeType.getTaskFileCharge()){
-            this.resetTaskChargeStatus(taskFiles.getTaskId());
-        }
+        //判断文件阶段做回退处理[修改为对文件,废弃]
+//        TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
+//        if(1 == timeType.getTaskFileCharge()){
+//            this.resetTaskChargeStatus(taskFiles.getTaskId());
+//        }
 
         //添加动态消息
         Task task = taskMapper.selectById(taskFiles.getTaskId());

+ 44 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TaskFiles.java

@@ -82,6 +82,50 @@ public class TaskFiles extends Model<TaskFiles> {
     @TableField(exist = false)
     private Integer fileChargeStatus;
 
+    /**创建文件时是否开启审核功能 0否1是*/
+    @TableField("need_file_charge")
+    private Integer needFileCharge;
+
+    /**文件审核人一[部门负责人]id*/
+    @TableField("charge_one_id")
+    private String chargeOneId;
+
+    /**部门主管的审核状态 0待审核 1通过 2驳回*/
+    @TableField("charge_one_status")
+    private Integer chargeOneStatus;
+
+    /**部门主管的审核时间*/
+    @TableField("charge_one_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date chargeOneTime;
+
+    /**文件审核人二[项目审核人]id*/
+    @TableField("charge_two_id")
+    private String chargeTwoId;
+
+    /**项目经理的审核状态 0待审核 1通过 2驳回*/
+    @TableField("charge_two_status")
+    private Integer chargeTwoStatus;
+
+    /**项目经理的审核时间*/
+    @TableField("charge_two_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date chargeTwoTime;
+
+    /**文件审核阶段 1审核人一 2审核人二/项目经理 3都审核通过*/
+    @TableField("charge_stage")
+    private Integer chargeStage;
+
+    /**文件最终审核状态  0未通过 1通过*/
+    @TableField("final_charge_status")
+    private Integer finalChargeStatus;
+
+    /**文件审核驳回原因*/
+    @TableField("file_reject_reason")
+    private String fileRejectReason;
+
 
     @Override
     protected Serializable pkVal() {

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

@@ -2,6 +2,9 @@ package com.management.platform.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.management.platform.entity.TaskFiles;
+import com.management.platform.util.HttpRespMsg;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.management.platform.entity.TaskFiles;
  */
 public interface TaskFilesService extends IService<TaskFiles> {
 
+    HttpRespMsg approveFile(String taskFileIds,HttpServletRequest request);
 }

+ 66 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskFilesServiceImpl.java

@@ -1,11 +1,24 @@
 package com.management.platform.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.entity.TaskFiles;
 import com.management.platform.mapper.TaskFilesMapper;
+import com.management.platform.mapper.WxCorpInfoMapper;
 import com.management.platform.service.TaskFilesService;
+import com.management.platform.util.HttpRespMsg;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +30,57 @@ import org.springframework.stereotype.Service;
 @Service
 public class TaskFilesServiceImpl extends ServiceImpl<TaskFilesMapper, TaskFiles> implements TaskFilesService {
 
+    @Resource
+    private TaskFilesMapper taskFilesMapper;
+
+    @Resource
+    private WxCorpInfoMapper wxCorpInfoMapper;
+
+
+    @Override
+    public HttpRespMsg approveFile(String taskFileIds,HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        String[] array = taskFileIds.split(",");
+        if(0 != array.length){
+            List<String> ids = Arrays.stream(array).collect(Collectors.toList());
+            //审核文件
+            List<TaskFiles> taskFilesList = taskFilesMapper.selectList(new LambdaQueryWrapper<TaskFiles>()
+                            .eq(TaskFiles::getFinalChargeStatus,0)
+                            .eq(TaskFiles::getNeedFileCharge,1)
+                    .in(TaskFiles::getId,ids));
+            //通过
+            List<Integer> stageOneToUpdateList = new ArrayList<>();
+            List<Integer> stageTwoToUpdateList = new ArrayList<>();
+            for (TaskFiles taskFiles : taskFilesList) {
+                //判断所处阶段
+                if(1 == taskFiles.getChargeStage()){
+                    stageOneToUpdateList.add(taskFiles.getId());
+                } else if (2 == taskFiles.getChargeStage()) {
+                    stageTwoToUpdateList.add(taskFiles.getId());
+                }
+            }
+            if(CollectionUtils.isNotEmpty(stageOneToUpdateList)){
+                taskFilesMapper.update(null,new LambdaUpdateWrapper<TaskFiles>()
+                        .set(TaskFiles::getChargeStage,2)
+                        .set(TaskFiles::getChargeOneStatus,1)
+                        .set(TaskFiles::getChargeOneTime,new Date())
+                        .set(TaskFiles::getFileRejectReason,null)
+                        .in(TaskFiles::getId,stageOneToUpdateList)
+                );
+            }
+            if(CollectionUtils.isNotEmpty(stageTwoToUpdateList)){
+                taskFilesMapper.update(null,new LambdaUpdateWrapper<TaskFiles>()
+                        .set(TaskFiles::getChargeStage,3)
+                        .set(TaskFiles::getFinalChargeStatus,1)
+                        .set(TaskFiles::getChargeTwoStatus,1)
+                        .set(TaskFiles::getChargeTwoTime,new Date())
+                        .set(TaskFiles::getFileRejectReason,null)
+                        .eq(TaskFiles::getId,stageTwoToUpdateList)
+                );
+            }
+
+        }
+
+        return httpRespMsg;
+    }
 }

+ 21 - 9
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java

@@ -874,16 +874,28 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
     @Override
     public HttpRespMsg getFileRejectReason(String taskId, HttpServletRequest request) {
         HttpRespMsg msg=new HttpRespMsg();
-        Task task = taskMapper.selectById(taskId);
-        String reason = "";
-        if(null != task){
-            reason = task.getFileRejectReason();
-        }
-//        switch (task.getChargeStage()){
-//            case 1 : reason = task.getChargeOneReason();break;
-//            case 2 : reason = task.getChargeTwoReason();break;
+        User user = userMapper.selectById(request.getHeader("Token"));
+        //文件创建人、审核人为自己
+        //文件开启审核功能、最终审核状态为未通过
+        List<TaskFiles> taskFiles = taskFilesMapper.selectList(new LambdaQueryWrapper<TaskFiles>()
+                .eq(TaskFiles::getTaskId, taskId)
+                .eq(TaskFiles::getNeedFileCharge, 1)
+                .eq(TaskFiles::getFinalChargeStatus, 0)
+                .and(wrapper -> wrapper.eq(TaskFiles::getCreatorId, user.getId())
+                        .or().eq(TaskFiles::getChargeOneId, user.getId())
+                        .or().eq(TaskFiles::getChargeTwoId, user.getId()))
+        );
+        msg.setData(taskFiles);
+//        Task task = taskMapper.selectById(taskId);
+//        String reason = "";
+//        if(null != task){
+//            reason = task.getFileRejectReason();
 //        }
-        msg.setData(reason);
+////        switch (task.getChargeStage()){
+////            case 1 : reason = task.getChargeOneReason();break;
+////            case 2 : reason = task.getChargeTwoReason();break;
+////        }
+//        msg.setData(reason);
         return msg;
     }