diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java index 500e28d53e..2068008383 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java @@ -40,7 +40,7 @@ public class MemoConcernDTO implements Serializable { /** * 关怀对象电话 */ - private String phnoe; + private String phone; /** * 关怀对象地址 diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml index 88e598b596..8604647c05 100644 --- a/epmet-module/gov-project/gov-project-server/pom.xml +++ b/epmet-module/gov-project/gov-project-server/pom.xml @@ -148,6 +148,18 @@ true + + org.apache.maven.plugins + maven-resources-plugin + + + xls + xlsx + doc + docx + + + ${project.basedir}/src/main/java diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java index 39d1beb1d4..bf3df91094 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java @@ -1,7 +1,12 @@ package com.epmet.controller; +import cn.afterturn.easypoi.word.WordExportUtil; +import cn.hutool.core.bean.BeanUtil; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -9,10 +14,16 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoConcernDTO; +import com.epmet.dto.MemoWorkDiaryDTO; import com.epmet.service.MemoConcernService; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.net.URL; import java.util.Map; @@ -67,6 +78,56 @@ public class MemoConcernController { return new Result(); } + @PostMapping("/{id}/exportWord") + public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception { + URL resource = this.getClass().getClassLoader().getResource("templates/memo_concern_export_template.docx"); + + MemoConcernDTO data = memoConcernService.get(id); + + if (data == null) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未找到id为" + id + "的关怀项目", "未找到该关怀项目"); + } + + Map map = BeanUtil.beanToMap(data); + + // 创建时间 + if (data.getCreatedTime() != null) { + String createTimeStr = DateUtils.format(data.getCreatedTime(), "yyyy年MM月dd日 HH:mm"); + map.put("createTime", createTimeStr); + } else { + map.put("createTime", ""); + } + + // 预计关怀时间 + if (data.getScheduledTime() != null) { + String scheduledTimeStr = DateUtils.format(data.getScheduledTime(), "yyyy年MM月dd日 HH:mm"); + map.put("scheduledTime", scheduledTimeStr); + } else { + map.put("scheduledTime", ""); + } + + //状态 + map.put("statusName", "0".equals(data.getStatus()) ? "未完成" : "已完成"); + + XWPFDocument doc = WordExportUtil.exportWord07(resource.getFile(), map); + + String filePath = resource.getFile(); + String suffix = filePath.substring(filePath.lastIndexOf(".")); + + response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=人员关怀导入模板" + suffix); + + ServletOutputStream fos = null; + try { + fos = response.getOutputStream(); + doc.write(fos); + } finally { + if (fos != null) { + fos.close(); + } + } + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index c932841cf8..012059e342 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -1,7 +1,12 @@ package com.epmet.controller; +import cn.afterturn.easypoi.word.WordExportUtil; +import cn.hutool.core.bean.BeanUtil; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -9,10 +14,16 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoDifficultyDTO; +import com.epmet.dto.MemoWorkDiaryDTO; import com.epmet.service.MemoDifficultyService; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.net.URL; import java.util.Map; @@ -67,6 +78,43 @@ public class MemoDifficultyController { return new Result(); } + @PostMapping("/{id}/exportWord") + public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception { + URL resource = this.getClass().getClassLoader().getResource("templates/memo_difficulty_export_template.docx"); + + MemoDifficultyDTO data = memoDifficultyService.get(id); + + if (data == null) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未找到id为" + id + "的难点堵点项", "未找到该难点堵点项"); + } + + Map map = BeanUtil.beanToMap(data); + + String createTimeStr = DateUtils.format(data.getCreatedTime(), "yyyy年MM月dd日 HH:mm"); + map.put("createTime", createTimeStr); + + String scheduledTimeStr = DateUtils.format(data.getScheduledTime(), "yyyy年MM月dd日 HH:mm"); + map.put("scheduledTime", scheduledTimeStr); + + XWPFDocument doc = WordExportUtil.exportWord07(resource.getFile(), map); + + String filePath = resource.getFile(); + String suffix = filePath.substring(filePath.lastIndexOf(".")); + + response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=工作日志导入模板" + suffix); + + ServletOutputStream fos = null; + try { + fos = response.getOutputStream(); + doc.write(fos); + } finally { + if (fos != null) { + fos.close(); + } + } + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java index 43faecbcab..2692fdf195 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java @@ -1,7 +1,10 @@ package com.epmet.controller; +import cn.afterturn.easypoi.word.WordExportUtil; +import cn.hutool.core.bean.BeanUtil; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -10,10 +13,19 @@ import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoWorkDiaryDTO; import com.epmet.service.MemoWorkDiaryService; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.net.URL; +import java.util.HashMap; import java.util.Map; +import java.util.Optional; /** @@ -67,6 +79,33 @@ public class MemoWorkDiaryController { return new Result(); } + @PostMapping("/{id}/exportWord") + public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception { + URL resource = this.getClass().getClassLoader().getResource("templates/memo_work_diary_export_template.docx"); + MemoWorkDiaryDTO data = memoWorkDiaryService.get(id); + + Map map = BeanUtil.beanToMap(data); + String createTimeStr = DateUtils.format(data.getCreatedTime(), "yyyy年MM月dd日 HH:mm"); + map.put("createTime", createTimeStr); + + XWPFDocument doc = WordExportUtil.exportWord07(resource.getFile(), map); + String filePath = resource.getFile(); + String suffix = filePath.substring(filePath.lastIndexOf(".")); + + response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=工作日志导入模板" + suffix); + + ServletOutputStream fos = null; + try { + fos = response.getOutputStream(); + doc.write(fos); + } finally { + if (fos != null) { + fos.close(); + } + } + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java index f897debb03..59a2770876 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java @@ -38,7 +38,7 @@ public class MemoConcernEntity extends BaseEpmetEntity { /** * 关怀对象电话 */ - private String phnoe; + private String phone; /** * 关怀对象地址 diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_concern_export_template.docx b/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_concern_export_template.docx new file mode 100644 index 0000000000..07d3c0e1f9 Binary files /dev/null and b/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_concern_export_template.docx differ diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_difficulty_export_template.docx b/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_difficulty_export_template.docx new file mode 100644 index 0000000000..c1e75911d0 Binary files /dev/null and b/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_difficulty_export_template.docx differ diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_work_diary_export_template.docx b/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_work_diary_export_template.docx new file mode 100644 index 0000000000..2e58a313b6 Binary files /dev/null and b/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_work_diary_export_template.docx differ