Przeglądaj źródła

修改任务文件相关接口,新需求:以里程碑完成度来算还是按任务工时完成度

zhouyy 5 miesięcy temu
rodzic
commit
00c5db0eed

+ 28 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -1366,7 +1366,7 @@ 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>().eq(TaskFiles::getNeedFileCharge,1).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));
@@ -1376,7 +1376,30 @@ public class TaskController {
         if(1 == timeType.getTaskFileCharge()){
             //根据该任务下的文件所处的状态判断
             for (Task task : list) {
-                List<TaskFiles> currentTaskFiles = taskFilesList.stream().filter(tmp -> tmp.getTaskId().equals(task.getId())).collect(Collectors.toList());
+                /**
+                 * 1、是否存在驳回文件
+                 *      过滤出上传人为当前登录人或审核人为当前登录人的任务文件
+                 *      若存在驳回文件,则显示存在驳回文件
+                 * 2、审核通过
+                 *      过滤出上传人为当前登录人或审核人为当前登录人的任务文件
+                 *      若都审核通过,则显示审核通过
+                 * 3、待审核
+                 *      过滤出上传人为当前登录人或审核人为当前登录人的任务文件
+                 *      若都是待审核或部分审核通过状态,则显示审核中
+                 **/
+                List<TaskFiles> currentTaskFiles = taskFilesList.stream().filter(tmp -> tmp.getTaskId().equals(task.getId()))
+                        .filter(t->{
+                            if(userId.equals(t.getCreatorId())){
+                                return true;
+                            } else if (userId.equals(t.getChargeOneId())) {
+                                return true;
+                            } else if (userId.equals(t.getChargeTwoId())) {
+                                return true;
+                            }else {
+                                return false;
+                            }
+                        })
+                        .collect(Collectors.toList());
                 if(CollectionUtils.isNotEmpty(currentTaskFiles)){
                     //是否存在驳回
                     long rejectCount = currentTaskFiles.stream().filter(tmp -> {
@@ -1390,10 +1413,13 @@ public class TaskController {
                     long allPassCount = currentTaskFiles.stream().filter(tmp -> 1 == tmp.getFinalChargeStatus()).count();
                     if(rejectCount > 0 ){
                         task.setFileChargeStatus(2);
+                        task.setFinalChargeStatusText("存在驳回文件");
                     } else if (allPassCount == currentTaskFiles.size()) {
                         task.setFileChargeStatus(3);
+                        task.setFinalChargeStatusText("审核通过");
                     }else {
                         task.setFileChargeStatus(1);
+                        task.setFinalChargeStatusText("审核中");
                     }
 
                 }

+ 128 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskFilesController.java

@@ -85,6 +85,131 @@ public class TaskFilesController {
     @Resource
     private TaskFilesService taskFilesService;
 
+    @PostMapping("/reUploadFile")
+    public HttpRespMsg reUploadFile(@RequestParam Integer projectId,
+                                    @RequestParam Integer taskId,
+                                    @RequestParam Integer taskFileId,
+                                    @RequestParam("file") MultipartFile file,
+                                    HttpServletRequest request) {
+        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(projectId);
+        TaskFiles oldTaskFile = taskFilesMapper.selectById(taskFileId);
+
+        if(!oldTaskFile.getCreatorId().equals(user.getId())){
+            msg.setError("您非文件上传人,无法重新上传");
+            return msg;
+        }
+        if (oldTaskFile.getDocumentId() == null) {
+            //仅当前任务上传的,需要把文件删掉
+            File dir = new File(uploadPath);
+            File targetFile = new File(dir, oldTaskFile.getServerName());
+            if (targetFile.exists()) {
+                targetFile.delete();
+            }
+        }
+
+//        StringBuilder fileNames = new StringBuilder();
+        TaskFiles record = new TaskFiles();
+        record.setId(taskFileId);
+        record.setCreatorId(user.getId());
+        record.setCreatorName(user.getName());
+        record.setDocumentName(file.getOriginalFilename());
+        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());
+            //根据老阶段重置任务状态
+            record.setFinalChargeStatus(0);
+            if(1 == oldTaskFile.getChargeStage()){
+                record.setChargeOneStatus(0);
+            }else if(2 == oldTaskFile.getChargeStage()){
+                record.setChargeTwoStatus(0);
+            } else if (3 == oldTaskFile.getChargeStage()) {
+                record.setChargeStage(1);
+                record.setChargeOneStatus(0);
+                record.setChargeTwoStatus(0);
+            }
+        }
+        if (file != null && !file.isEmpty()) {
+            //截取文件后缀
+            String fileSuffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
+            record.setDocumentType(DocumentTypeUtil.DocumentType(fileSuffix));
+            //处理文件
+            File dir = new File(uploadPath);
+            if (!dir.exists()) {
+                dir.mkdir();
+            }
+            String fileName= "";
+            if (file!=null && !file.isEmpty()) {
+                fileName = file.getOriginalFilename();
+
+                int pos = fileName.lastIndexOf(".");
+                String suffix = fileName.substring(pos).toLowerCase();
+                //用uuid替换原始的文件名
+                String purFName = UUID.randomUUID().toString().replaceAll("-", "");
+                fileName = purFName + suffix;
+                File saveFile = new File(dir, fileName);
+                try {
+                    saveFile.createNewFile();
+                    file.transferTo(saveFile);
+                    //异步上传到备份服务器
+                    sftpAsyncUploader.uploadFileAsync(saveFile);
+                    //计算文件大小
+                    long fileSize = saveFile.length();
+                    String fileLength = FileUtil.getReadableFileSize(fileSize);
+                    record.setServerName(uploadPath + fileName);
+                    record.setSize(fileLength);
+                    String pathPrefix = "/upload/";
+                    record.setUrl(pathPrefix + fileName);
+
+                    taskFilesMapper.updateById(record);
+                    //生成原文件名称与服务器文件名称对应
+                    msg.data = record;
+
+
+                    //添加动态消息
+                    Task task = taskMapper.selectById(taskId);
+                    String content = user.getName()+"在任务【"+task.getName()+"】中重新上传了文件【"+file.getOriginalFilename()+"】";
+                    TaskComment comment =  new TaskComment();
+                    comment.setTaskId(taskId);
+                    comment.setUserId(user.getId());
+                    comment.setContent(content);
+                    comment.setCreateTime(LocalDateTime.now());
+                    comment.setUserColor(user.getColor());
+                    comment.setUserName(user.getName());
+                    taskCommentMapper.insert(comment);
+                } catch (IOException e) {
+                    e.printStackTrace();
+                    fileName = null;
+                    msg.setError(e.getMessage()+", path="+dir.getAbsolutePath());
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    fileName = null;
+                    msg.setError(e.getMessage()+", path="+dir.getAbsolutePath());
+                }
+            } else {
+                //msg.setError("文件不存在");
+                msg.setError(MessageUtils.message("file.nonExistentError"));
+            }
+        }
+
+        return msg;
+
+    }
+
 
     @PostMapping("/approveFile")
     public HttpRespMsg approveFile(@RequestParam("taskFileIds")String taskFileIds
@@ -163,7 +288,7 @@ public class TaskFilesController {
 
         //添加动态消息
         Task task = taskMapper.selectById(taskId);
-        String content = user.getName()+"在任务:"+task.getName()+"中关联了文件:"+document.getDocumentName();
+        String content = user.getName()+"在任务【"+task.getName()+"】中关联了文件【"+document.getDocumentName()+"】";
         TaskComment comment =  new TaskComment();
         comment.setTaskId(taskId);
         comment.setUserId(user.getId());
@@ -308,7 +433,7 @@ public class TaskFilesController {
         //添加动态消息
         String resFileNames = fileNames.deleteCharAt(fileNames.length() - 1).toString();
         Task task = taskMapper.selectById(taskId);
-        String content = user.getName()+"在任务:"+task.getName()+"中上传了文件:"+resFileNames;
+        String content = user.getName()+"在任务【"+task.getName()+"】中上传了文件【"+resFileNames+"】";
         TaskComment comment =  new TaskComment();
         comment.setTaskId(taskId);
         comment.setUserId(user.getId());
@@ -357,7 +482,7 @@ public class TaskFilesController {
 
         //添加动态消息
         Task task = taskMapper.selectById(taskFiles.getTaskId());
-        String content = user.getName()+"删除了任务:"+task.getName()+"中的文件:"+taskFiles.getDocumentName();
+        String content = user.getName()+"删除了任务【"+task.getName()+"】中的文件【"+taskFiles.getDocumentName()+"】";
         TaskComment comment =  new TaskComment();
         comment.setTaskId(taskFiles.getTaskId());
         comment.setUserId(user.getId());

+ 9 - 10
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java

@@ -1,17 +1,9 @@
 package com.management.platform.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.management.platform.config.PropertyMsg;
@@ -21,6 +13,13 @@ import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 

+ 10 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -1,16 +1,16 @@
 package com.management.platform.entity;
 
-import java.math.BigDecimal;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import java.util.List;
-
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
 /**
  * <p>
  * 
@@ -632,6 +632,10 @@ public class TimeType extends Model<TimeType> {
     @TableField("task_plan_cost")
     private Integer taskPlanCost;
 
+    /**项目进度判断依据,0-默认字段,1-根据任务工时*/
+    @TableField("project_progress_check")
+    private Integer projectProgressCheck;
+
 
     @TableField(exist = false)
     private List<User> userList;

+ 14 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/ProjectTaskTimeCostVO.java

@@ -0,0 +1,14 @@
+package com.management.platform.entity.vo;
+
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class ProjectTaskTimeCostVO {
+    private Integer taskId;
+    private String executorId;
+    private Integer planHours;
+    private BigDecimal realHours;
+}

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

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.management.platform.entity.Task;
 import com.management.platform.entity.TimeTask;
 import com.management.platform.entity.bo.QueryTaskChargePage;
+import com.management.platform.entity.vo.ProjectTaskTimeCostVO;
 import com.management.platform.entity.vo.TaskChargePageVO;
 import com.management.platform.entity.vo.TaskFileChargePageVO;
 import org.apache.ibatis.annotations.Param;
@@ -80,4 +81,6 @@ public interface TaskMapper extends BaseMapper<Task> {
     List<TaskFileChargePageVO> getTaskFileChargePage(@Param("queryBO") QueryTaskChargePage queryBO, @Param("deptIds")List<Integer> branchDepartment);
 
     int getTaskFileChargePageTotal(@Param("queryBO") QueryTaskChargePage queryBO, @Param("deptIds")List<Integer> branchDepartment);
+
+    List<ProjectTaskTimeCostVO> getProjectAllTaskTimeCost(@Param("projectId") Integer projectId);
 }

+ 27 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -11,12 +11,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.ImmutableMap;
 import com.management.platform.entity.*;
-import com.management.platform.entity.Task;
 import com.management.platform.entity.vo.*;
 import com.management.platform.mapper.*;
 import com.management.platform.service.*;
 import com.management.platform.util.*;
-import com.management.platform.webservice.po.*;
+import com.management.platform.webservice.po.ProjectQueryResponse;
+import com.management.platform.webservice.po.ProjectTask;
+import com.management.platform.webservice.po.ServiceProduct;
+import com.management.platform.webservice.po.XmlResponseData;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.http.client.entity.UrlEncodedFormEntity;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpPost;
@@ -30,7 +33,6 @@ import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
-import org.apache.poi.ss.formula.functions.T;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.streaming.SXSSFCell;
@@ -55,7 +57,9 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.net.URLDecoder;
 import java.sql.Timestamp;
-import java.text.*;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.text.SimpleDateFormat;
 import java.time.*;
 import java.time.chrono.ChronoLocalDate;
 import java.time.format.DateTimeFormatter;
@@ -3258,6 +3262,25 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         Integer companyId = user.getCompanyId();
         TimeType timeType = timeTypeMapper.selectById(companyId);
         Project project = projectMapper.selectById(id);
+
+        //以里程碑完成度来算还是按任务工时完成度
+        if(1 == timeType.getProjectProgressCheck()){
+            List<ProjectTaskTimeCostVO> allTaskCosts = taskMapper.getProjectAllTaskTimeCost(id);
+            if(CollectionUtils.isNotEmpty(allTaskCosts)){
+                BigDecimal planHourSum = new BigDecimal(0);
+                BigDecimal realHourSum = new BigDecimal(0);
+                for (ProjectTaskTimeCostVO taskCost : allTaskCosts) {
+                    planHourSum = planHourSum.add(new BigDecimal(String.valueOf(taskCost.getPlanHours())));
+                    realHourSum = realHourSum.add(new BigDecimal(String.valueOf(taskCost.getRealHours())));
+                }
+                int percentRes = 0;
+                if(planHourSum.compareTo(new BigDecimal(0)) > 0){
+                    percentRes = realHourSum.divide(planHourSum,RoundingMode.HALF_UP).multiply(new BigDecimal(100)).intValue();
+                }
+                project.setProgress(percentRes);
+            }
+        }
+
         List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
         if (project.getInchargerId() != null) {
             User incharger = userMapper.selectById(project.getInchargerId());

+ 34 - 20
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskFilesServiceImpl.java

@@ -103,7 +103,7 @@ public class TaskFilesServiceImpl extends ServiceImpl<TaskFilesMapper, TaskFiles
                         .set(TaskFiles::getChargeTwoStatus,1)
                         .set(TaskFiles::getChargeTwoTime,new Date())
                         .set(TaskFiles::getFileRejectReason,null)
-                        .eq(TaskFiles::getId,stageTwoToUpdateList)
+                        .in(TaskFiles::getId,stageTwoToUpdateList)
                 );
             }
             if(CollectionUtils.isNotEmpty(commentList)){
@@ -123,7 +123,7 @@ public class TaskFilesServiceImpl extends ServiceImpl<TaskFilesMapper, TaskFiles
         if(0 != array.length){
             List<String> ids = Arrays.stream(array).collect(Collectors.toList());
             WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
-            CompanyDingding dingding = companyDingdingService.getOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+//            CompanyDingding dingding = companyDingdingService.getOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
             List<User> users = userMapper.selectList(new QueryWrapper<User>().eq("company_id",user.getCompanyId()));
             Map<String, User> companyUserMap = users.stream().collect(Collectors.toMap(User::getId, t -> t));
 
@@ -134,8 +134,9 @@ public class TaskFilesServiceImpl extends ServiceImpl<TaskFilesMapper, TaskFiles
             );
             List<Integer> stageOneToUpdateList = new ArrayList<>();
             List<Integer> stageTwoToUpdateList = new ArrayList<>();
-            StringBuilder userNames = new StringBuilder();
+//            StringBuilder userNames = new StringBuilder();
             Map<String,String> remindMap = new HashMap<>();
+            List<TaskComment> commentList = new ArrayList<>();
             for (TaskFiles taskFile : taskFiles) {
                 if(1 == taskFile.getChargeStage()){
                     //阶段一,更新阶段一状态
@@ -144,14 +145,23 @@ public class TaskFilesServiceImpl extends ServiceImpl<TaskFilesMapper, TaskFiles
                     stageTwoToUpdateList.add(taskFile.getId());
                 }
                 User tmpUser = companyUserMap.get(taskFile.getCreatorId());
-                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                    userNames.append("$userName=").append(tmpUser.getCorpwxRealUserid()).append("$,");
-                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
-                    userNames.append("$userName=").append(tmpUser.getDingdingUserid()).append("$,");
-                }else{
-                    userNames.append(tmpUser.getName()).append(",");
-                }
+//                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+//                    userNames.append("$userName=").append(tmpUser.getCorpwxRealUserid()).append("$,");
+//                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+//                    userNames.append("$userName=").append(tmpUser.getDingdingUserid()).append("$,");
+//                }else{
+//                    userNames.append(tmpUser.getName()).append(",");
+//                }
                 remindMap.put(tmpUser.getCorpwxUserid(),"任务文件【"+taskFile.getDocumentName()+"】因【"+reason+"】被驳回,请及时处理");
+                String content = user.getName()+"审核驳回了任务文件【"+taskFile.getDocumentName()+"】";
+                TaskComment comment =  new TaskComment();
+                comment.setTaskId(taskFile.getTaskId());
+                comment.setUserId(user.getId());
+                comment.setContent(content);
+                comment.setCreateTime(LocalDateTime.now());
+                comment.setUserColor(user.getColor());
+                comment.setUserName(user.getName());
+                commentList.add(comment);
             }
             if(CollectionUtils.isNotEmpty(stageOneToUpdateList)){
                 //阶段一,更新阶段一状态
@@ -171,16 +181,20 @@ public class TaskFilesServiceImpl extends ServiceImpl<TaskFilesMapper, TaskFiles
                 );
             }
 
-            String names = userNames.deleteCharAt(userNames.length() - 1).toString();
-            String content = user.getName()+"因【"+reason+"】驳回了【"+names+"】的任务文件";
-            TaskComment comment =  new TaskComment();
-            comment.setTaskId(taskFiles.get(0).getTaskId());
-            comment.setUserId(user.getId());
-            comment.setContent(content);
-            comment.setCreateTime(LocalDateTime.now());
-            comment.setUserColor(user.getColor());
-            comment.setUserName(user.getName());
-            taskCommentMapper.insert(comment);
+            if(CollectionUtils.isNotEmpty(commentList)){
+                taskCommentMapper.insertBatch(commentList);
+            }
+
+//            String names = userNames.deleteCharAt(userNames.length() - 1).toString();
+//            String content = user.getName()+"因【"+reason+"】驳回了【"+names+"】的任务文件";
+//            TaskComment comment =  new TaskComment();
+//            comment.setTaskId(taskFiles.get(0).getTaskId());
+//            comment.setUserId(user.getId());
+//            comment.setContent(content);
+//            comment.setCreateTime(LocalDateTime.now());
+//            comment.setUserColor(user.getColor());
+//            comment.setUserName(user.getName());
+//            taskCommentMapper.insert(comment);
 
             for (Map.Entry<String, String> entry : remindMap.entrySet()) {
                 wxCorpInfoService.sendWXCorpMsg(wxCorpInfo,entry.getKey(),entry.getValue(),null

+ 10 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java

@@ -882,7 +882,16 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                         .or().eq(TaskFiles::getChargeOneId, user.getId())
                         .or().eq(TaskFiles::getChargeTwoId, user.getId()))
         );
-        msg.setData(taskFiles);
+        List<TaskFiles> collect = taskFiles.stream().filter(t -> {
+            if (1 == t.getChargeStage()) {
+                return 2 == t.getChargeOneStatus();
+            } else if (2 == t.getChargeStage()) {
+                return 2 == t.getChargeTwoStatus();
+            }else {
+                return false;
+            }
+        }).collect(Collectors.toList());
+        msg.setData(collect);
 //        Task task = taskMapper.selectById(taskId);
 //        String reason = "";
 //        if(null != task){

+ 12 - 10
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml

@@ -32,15 +32,6 @@
         <result column="meeting_id" property="meetingId" />
         <result column="ahead_tid" property="aheadTid" />
         <result column="sap_task_code" property="sapTaskCode" />
-        <result column="charge_one_id" property="chargeOneId" />
-        <result column="charge_one_status" property="chargeOneStatus" />
-        <result column="charge_one_time" property="chargeOneTime" />
-        <result column="charge_two_id" property="chargeTwoId" />
-        <result column="charge_two_status" property="chargeTwoStatus" />
-        <result column="charge_two_time" property="chargeTwoTime" />
-        <result column="final_charge_status" property="finalChargeStatus" />
-        <result column="charge_stage" property="chargeStage" />
-        <result column="file_reject_reason" property="fileRejectReason" />
         <result column="plan_cost" property="planCost" />
     </resultMap>
     <resultMap id="timeResultMap" type="com.management.platform.entity.TimeTask" >
@@ -119,7 +110,7 @@
     </resultMap>
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, name, task_desc, creater_id, creater_name, creator_color, executor_id, executor_name, executor_color, task_level, task_status, create_date, end_date, project_id, stages_id, company_id, indate, parent_tid, group_id, seq, plan_hours, task_type, parent_tname, finish_date, start_date, meeting_id, ahead_tid, sap_task_code, charge_one_id, charge_one_status, charge_one_time, charge_two_id, charge_two_status, charge_two_time, final_charge_status, charge_stage, file_reject_reason, plan_cost
+        id, name, task_desc, creater_id, creater_name, creator_color, executor_id, executor_name, executor_color, task_level, task_status, create_date, end_date, project_id, stages_id, company_id, indate, parent_tid, group_id, seq, plan_hours, task_type, parent_tname, finish_date, start_date, meeting_id, ahead_tid, sap_task_code, plan_cost
     </sql>
     <select id="simpleList" resultMap="BaseResultMap">
         select id, name, creater_id, creater_name, creator_color, executor_id, executor_name, executor_color, task_level, task_status, create_date, end_date, project_id, stages_id, company_id, indate, parent_tid, group_id, seq, plan_hours, task_type, parent_tname, finish_date, start_date
@@ -715,4 +706,15 @@
                 group by tf.task_id
             )tmp1
     </select>
+    <select id="getProjectAllTaskTimeCost"
+            resultType="com.management.platform.entity.vo.ProjectTaskTimeCostVO">
+        SELECT task.id as taskId,ifnull(task.`plan_hours`,0) as planHours,
+        (SELECT IFNULL(SUM(working_time),0) FROM report WHERE report.`task_id` = task.id AND report.`state` = 1) AS realHours,
+        task_executor.executor_id as executorId
+        FROM task
+        LEFT JOIN project ON project.id = task.`project_id`
+        left join task_executor on task_executor.task_id=task.id
+        WHERE task.project_id = #{projectId}
+          and project.id = #{projectId}
+    </select>
 </mapper>