Ver código fonte

修改工作计划导出

yusm 3 dias atrás
pai
commit
ff5f90f41b

+ 54 - 66
fhKeeper/formulahousekeeper/management-platform-mld/src/main/java/com/management/platform/controller/TaskController.java

@@ -1703,39 +1703,23 @@ public class TaskController {
         List<Integer> projectIds = taskList.stream().map(Task::getProjectId).distinct().collect(Collectors.toList());
         projectIds.add(-1);
         List<Project> projectList = projectService.list(new LambdaQueryWrapper<Project>().in(Project::getId, projectIds));
-        List<String> inchargeIdList = projectList.stream().filter(p -> p.getInchargerId() != null).distinct().map(Project::getInchargerId).collect(Collectors.toList());
-        inchargeIdList.add("-1");
-        List<User> userList = userMapper.selectList(new QueryWrapper<User>().in("id", inchargeIdList));
-        List<Integer> taskGroupIdList = taskList.stream().filter(t -> t.getGroupId() != null).distinct().map(Task::getGroupId).collect(Collectors.toList());
-        taskGroupIdList.add(-1);
-        List<TaskGroup> taskGroupList = taskGroupService.list(new QueryWrapper<TaskGroup>().in("id", taskGroupIdList));
-        if (org.apache.commons.lang3.StringUtils.isEmpty(startDate)||org.apache.commons.lang3.StringUtils.isEmpty(endDate)) {
-            LocalDate now = LocalDate.now();
-            // 本月第一天
-            LocalDate firstDayOfMonth = now.withDayOfMonth(1);
-            startDate=firstDayOfMonth.format(df);
-
-            // 本月最后一天
-            LocalDate lastDayOfMonth = now.with(TemporalAdjusters.lastDayOfMonth());
-            endDate=lastDayOfMonth.format(df);
-        }
-        int days = WorkDayCalculateUtils.getWorkDaysListInRange(startDate, endDate, 0).size();
-        TimeType allDay = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", companyId));
-        Float monthTime = days * allDay.getAllday();
         List<List<String>> dataList=new ArrayList<>();
         List<String> titleList=new ArrayList<>();
         titleList.add("序号");
-        titleList.add("项目分类");
-        titleList.add("项目经理");
-        titleList.add("研究中心");
-        titleList.add("任务分组");
-        titleList.add("投入阶段");
-        titleList.add("工作内容");
+        titleList.add("项目名称");
+        titleList.add("任务阶段");
+        titleList.add("优先级");
+        titleList.add("计划名称");
+        titleList.add("执行人");
         titleList.add("一级审核人");
         titleList.add("二级审核人");
-        titleList.add("计划工时(H)");
-        titleList.add("FTE(计划工时/当月计划工时基数)");
         titleList.add("审核状态");
+        titleList.add("开始时间");
+        titleList.add("截止时间");
+        boolean anyMatch = projectList.stream().anyMatch(p -> p.getDeptId() != null && !StringUtils.isEmpty(p.getDeptId()));
+        if(anyMatch){
+            titleList.add("所属部门");
+        }
         dataList.add(titleList);
         int no=0;
         for (TaskWithAuditor task : taskList) {
@@ -1744,50 +1728,33 @@ public class TaskController {
             item.add(no+"");
             Optional<Project> first = projectList.stream().filter(p -> p.getId().equals(task.getProjectId())).findFirst();
             if(first.isPresent()){
-                Project project = first.get();
-                item.add(org.apache.commons.lang3.StringUtils.isEmpty(project.getCategoryName())?"":first.get().getCategoryName());
-                if (org.apache.commons.lang3.StringUtils.isNotEmpty(project.getInchargerId())){
-                    Optional<User> userOptional = userList.stream().filter(u -> u.getId().equals(project.getInchargerId())).findFirst();
-                    if(userOptional.isPresent()){
-                        item.add(userOptional.get().getName());
-                    }else {
-                        item.add("");
-                    }
-                }else {
-                    item.add("");
-                }
-                item.add(org.apache.commons.lang3.StringUtils.isEmpty(project.getAssociateDegreeNames())?"":first.get().getAssociateDegreeNames());
-            }else {
-                item.add("");
-                item.add("");
-                item.add("");
-            }
-
-            Optional<TaskGroup> groupOptional = taskGroupList.stream().filter(g -> task.getGroupId() != null && g.getId().equals(task.getGroupId())).findFirst();
-            if (groupOptional.isPresent()){
-                TaskGroup group = groupOptional.get();
-                item.add(group.getName());
+                item.add(first.get().getProjectName());
             }else {
                 item.add("");
             }
-
             item.add(task.getStagesName());
+            switch (task.getTaskLevel()){
+                case 0:item.add("一般");
+                    break;
+                case 1:item.add("重要");
+                    break;
+                case 2:item.add("紧急");
+                    break;
+            }
             item.add(task.getName());
-            item.add(task.getFirstAuditorName());
-            item.add(task.getSecondAuditorName());
-            item.add(task.getPlanHours()==null?"": String.valueOf(new BigDecimal(task.getPlanHours().toString()).setScale(2,BigDecimal.ROUND_HALF_UP))==null?"": String.valueOf(new BigDecimal(task.getPlanHours().toString()).setScale(2,BigDecimal.ROUND_HALF_UP)));
-            item.add(
-                    task.getPlanHours() == null ? "" :
-                            new BigDecimal(task.getPlanHours().toString())
-                                    .divide(
-                                            BigDecimal.valueOf(monthTime),
-                                            2,                  // 保留2位小数
-                                            RoundingMode.HALF_UP // 四舍五入
-                                    )
-                                    .toString()
-            );
-
-
+            List<TaskExecutor> executorList = task.getExecutorList();
+            String executorString = executorList.stream().map(t->{
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    return "$userName="+t.getExecutorName()+"$";
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    return "$userName="+t.getExecutorName()+"$";
+                }else {
+                    return t.getExecutorName();
+                }
+            }).collect(Collectors.joining(","));
+            item.add(executorString);
+            item.add(StringUtils.isEmpty(task.getFirstAuditorName())?"":task.getFirstAuditorName());
+            item.add(StringUtils.isEmpty(task.getSecondAuditorName())?"":task.getSecondAuditorName());
             Integer taskStatus = task.getTaskStatus();
             if (taskStatus == null) {
                 item.add("");
@@ -1816,6 +1783,27 @@ public class TaskController {
                         break;
                 }
             }
+            item.add(task.getStartDate()==null?"":df.format(task.getStartDate()));
+            item.add(task.getEndDate()==null?"":df.format(task.getEndDate()));
+            if(anyMatch){
+                if(first.isPresent()){
+                    Project project = first.get();
+                    Optional<Department> department = departmentList.stream().filter(d -> d.getDepartmentId().equals(project.getDeptId())).findFirst();
+                    if(department.isPresent()){
+                        if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                            item.add("$departmentName="+department.get().getCorpwxDeptid()+"$");
+                        }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                            item.add("$departmentName="+department.get().getDdDeptid()+"$");
+                        } else {
+                            item.add(department.get().getDepartmentName());
+                        }
+                    }else {
+                        item.add("");
+                    }
+                }else {
+                    item.add("");
+                }
+            }
             dataList.add(item);
         }
         String fileName = "工作计划导出_"+System.currentTimeMillis();