From 727c7c414c03c1042e0b0cd66468fe4295be7f41 Mon Sep 17 00:00:00 2001 From: Mac Date: Sat, 9 Nov 2024 17:40:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=BC=E5=85=A5Project?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/controller/ProPlanController.java | 37 +++++++++++++++++-- .../src/views/manage/plan/index.vue | 2 +- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProPlanController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProPlanController.java index 45832e94..726bc40d 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProPlanController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProPlanController.java @@ -67,13 +67,42 @@ public class ProPlanController extends BaseController @RequiresPermissions("manage:plan:export") @Log(title = "计划管理", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, ProPlan proPlan) - { + public void export(HttpServletResponse response, ProPlan proPlan) throws IOException { List list = proPlanService.selectProPlanList(proPlan); - ExcelUtil util = new ExcelUtil(ProPlan.class); - util.exportExcel(response, list, "计划管理数据"); + Project prj=new Project(); + + //ExcelUtil util = new ExcelUtil(ProPlan.class); + //util.exportExcel(response, list, "计划管理数据"); + + Task task=prj.getRootTask(); + writeTask(task,list,0); + response.setContentType("application/vnd.ms-project"); + response.setCharacterEncoding("utf-8"); + prj.save(response.getOutputStream(),1); } + private void writeTask(Task task, List list, long pid) { + + for (ProPlan proPlan : list) { + if(proPlan.getParentId().equals(pid)){ + Task subTask= task.getChildren().add(proPlan.getTaskName()); + addSubTaskInfo(subTask,proPlan); + writeTask(subTask,list,proPlan.getTaskId()); + } + } + + } + + private void addSubTaskInfo(Task subTask, ProPlan proPlan) { + subTask.setId(proPlan.getTaskId().intValue()); + subTask.setOutlineLevel(proPlan.getTaskOutlineLevel().intValue()); + subTask.setGuid(proPlan.getTaskUniqueId()); + subTask.setStart(proPlan.getStartDate()); + subTask.setFinish(proPlan.getFinishDate()); + + } + + @RequiresPermissions("manage:plan:import") @Log(title = "计划管理", businessType = BusinessType.IMPORT) @PostMapping("/importData") diff --git a/yanzhu-ui-vue3/src/views/manage/plan/index.vue b/yanzhu-ui-vue3/src/views/manage/plan/index.vue index edab74fc..d4487ee5 100644 --- a/yanzhu-ui-vue3/src/views/manage/plan/index.vue +++ b/yanzhu-ui-vue3/src/views/manage/plan/index.vue @@ -293,7 +293,7 @@ function handleDelete(row) { function handleExport() { proxy.download('manage/plan/export', { ...queryParams.value - }, `plan_${new Date().getTime()}.xlsx`) + }, `plan_${new Date().getTime()}.mpp`) } data.projectId=userStore.currentProId; data.compId=userStore.currentComId;