From d1bb20f04dd7208840b2316d6f5e77503e6619d9 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 26 十一月 2025 14:28:16 +0800
Subject: [PATCH] 模板提交
---
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/freemark/TemplateCreateController.java | 126 +++++++++++++++++++++++++----------------
1 files changed, 76 insertions(+), 50 deletions(-)
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/freemark/TemplateCreateController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/freemark/TemplateCreateController.java
index 5c1fe88..c899595 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/freemark/TemplateCreateController.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/freemark/TemplateCreateController.java
@@ -2,14 +2,11 @@
import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO;
import cn.lihu.jh.module.ecg.service.appointment.AppointmentService;
-import cn.lihu.jh.module.infra.dal.dataobject.config.ConfigDO;
import cn.lihu.jh.module.infra.service.config.ConfigService;
-import com.thoughtworks.xstream.core.BaseException;
import freemarker.template.Configuration;
import freemarker.template.Template;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
@@ -18,12 +15,12 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import java.io.*;
-import java.net.URLEncoder;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.StringWriter;
+import java.io.Writer;
import java.time.LocalDate;
import java.time.Period;
-import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
@@ -46,79 +43,108 @@
configuration.setDefaultEncoding("utf-8");
}
+
@Operation(summary = "鐭ユ儏鍚屾剰杩愬姩璇曢獙")
@GetMapping(value = "/download/{id}")
- public Map downloadInfo(@PathVariable("id") Long id) {
+ public Map<String, Object> downloadInfo(@PathVariable("id") Long id) {
log.info("鐭ユ儏鍚屾剰杩愬姩璇曢獙锛歿}", id);
+
try {
- Map dataMap = new HashMap();
+ Map<String, Object> dataMap = new HashMap<>();
AppointmentDO appointment = appointmentService.getAppointment(id);
getData(dataMap, appointment);
+
String filePath = getClass().getResource("/template/").getPath();
- System.out.println(filePath);
- //璁剧疆妯℃湰瑁呯疆鏂规硶鍜岃矾寰�,FreeMarker鏀寔澶氱妯℃澘瑁呰浇鏂规硶銆傚彲浠ラ噸servlet锛宑lasspath锛屾暟鎹簱鏁欑▼瑁呰浇锛�
configuration.setDirectoryForTemplateLoading(new File(filePath));
- Template t = null;
- //鎹愮尞琛�.ftl涓鸿瑁呰浇鐨勬ā鏉�
- t = configuration.getTemplate("鐭ユ儏鍚屾剰杩愬姩璇曢獙.ftl");
+
+ // 纭繚妯℃澘鏄疻ord XML鏍煎紡
+ Template t = configuration.getTemplate("鐭ユ儏鍚屾剰杩愬姩璇曢獙.ftl");
String time = String.valueOf(System.currentTimeMillis());
- String name = "骞虫澘杩愬姩蹇冪數鍥剧煡鎯呭悓鎰忎功-" + appointment.getPatName() + "-" + time;
+ String fileName = "骞虫澘杩愬姩蹇冪數鍥剧煡鎯呭悓鎰忎功-" + appointment.getPatName() + "-" + time + ".doc";
- //杈撳嚭鏂囨。璺緞鍙婂悕绉�
- ConfigDO configByKey = configService.getConfigByKey("file.upload.path");
- createPath(configByKey.getValue());
- File outFile = new File(configByKey.getValue() + name + ".doc");
- Writer out = null;
- out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"));
- t.process(dataMap, out);
+ // 灏嗘ā鏉挎覆鏌撶粨鏋滃啓鍏tringWriter
+ StringWriter stringWriter = new StringWriter();
+ try (Writer out = new BufferedWriter(stringWriter)) {
+ t.process(dataMap, out);
+ }
- Map<String, Object> map = new HashMap<>();
- map.put("downloadUrl", "profile/" + name + ".doc");
- map.put("downloadName", name + ".doc");
- return map;
+ String xmlContent = stringWriter.toString();
+
+ // 杩斿洖缁撴灉
+ Map<String, Object> result = new HashMap<>();
+ Map<String, Object> result1 = new HashMap<>();
+ result.put("success", true);
+ result.put("fileName", fileName);
+ result.put("fileContent", xmlContent);
+ result.put("fileType", "application/msword");
+ result1.put("code", 200);
+ result1.put("data", result);
+ result1.put("msg", "success");
+
+ log.info("Word XML鍐呭鐢熸垚鎴愬姛");
+ return result1;
+
} catch (Exception e) {
- e.printStackTrace();
+ log.error("鐢熸垚骞虫澘杩愬姩蹇冪數鍥剧煡鎯呭悓鎰忎功澶辫触", e);
+ Map<String, Object> result = new HashMap<>();
+ result.put("code", 500);
+ result.put("data", null);
+ result.put("msg", "鏂囨。鐢熸垚澶辫触: " + e.getMessage());
+ return result;
}
- return null;
}
-
@Operation(summary = "椋熺蹇冭剰鐢电敓鐞嗙煡鎯呭悓鎰忎功")
@GetMapping(value = "/downloadesophagus/{id}")
- public Map downloadEsophagusInfo(@PathVariable("id") Long id) {
+ public Map<String, Object> downloadEsophagusInfo(@PathVariable("id") Long id) {
log.info("椋熺蹇冭剰鐢电敓鐞嗙煡鎯呭悓鎰忎功锛歿}", id);
+
try {
- Map dataMap = new HashMap();
+ Map<String, Object> dataMap = new HashMap<>();
AppointmentDO appointment = appointmentService.getAppointment(id);
getData(dataMap, appointment);
+
String filePath = getClass().getResource("/template/").getPath();
- System.out.println(filePath);
- //璁剧疆妯℃湰瑁呯疆鏂规硶鍜岃矾寰�,FreeMarker鏀寔澶氱妯℃澘瑁呰浇鏂规硶銆傚彲浠ラ噸servlet锛宑lasspath锛屾暟鎹簱鏁欑▼瑁呰浇锛�
configuration.setDirectoryForTemplateLoading(new File(filePath));
- Template t = null;
- //鎹愮尞琛�.ftl涓鸿瑁呰浇鐨勬ā鏉�
- t = configuration.getTemplate("椋熺蹇冭剰鐢电敓鐞嗙煡鎯呭悓鎰忎功.ftl");
+
+ // 纭繚妯℃澘鏄疻ord XML鏍煎紡
+ Template t = configuration.getTemplate("椋熺蹇冭剰鐢电敓鐞嗙煡鎯呭悓鎰忎功.ftl");
String time = String.valueOf(System.currentTimeMillis());
- String name = "椋熺蹇冭剰鐢电敓鐞嗙煡鎯呭悓鎰忎功-" + appointment.getPatName() + "-" + time;
+ String fileName = "椋熺蹇冭剰鐢电敓鐞嗙煡鎯呭悓鎰忎功-" + appointment.getPatName() + "-" + time + ".doc";
- //杈撳嚭鏂囨。璺緞鍙婂悕绉�
- ConfigDO configByKey = configService.getConfigByKey("file.upload.path");
- createPath(configByKey.getValue());
- File outFile = new File(configByKey.getValue() + name + ".doc");
- Writer out = null;
- out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"));
- t.process(dataMap, out);
+ // 灏嗘ā鏉挎覆鏌撶粨鏋滃啓鍏tringWriter
+ StringWriter stringWriter = new StringWriter();
+ try (Writer out = new BufferedWriter(stringWriter)) {
+ t.process(dataMap, out);
+ }
- Map<String, Object> map = new HashMap<>();
- map.put("downloadUrl", "profile/" + name + ".doc");
- map.put("downloadName", name + ".doc");
- return map;
+ String xmlContent = stringWriter.toString();
+
+ // 杩斿洖缁撴灉
+ Map<String, Object> result1 = new HashMap<>();
+ Map<String, Object> result = new HashMap<>();
+ result.put("success", true);
+ result.put("fileName", fileName);
+ result.put("fileContent", xmlContent);
+ result.put("fileType", "application/msword");
+
+ result1.put("code", 200);
+ result1.put("data", result);
+ result1.put("msg", "success");
+
+ log.info("椋熺蹇冭剰鐢电敓鐞嗙煡鎯呭悓鎰忎功Word XML鍐呭鐢熸垚鎴愬姛");
+ return result1;
+
} catch (Exception e) {
- e.printStackTrace();
+ log.error("鐢熸垚椋熺蹇冭剰鐢电敓鐞嗙煡鎯呭悓鎰忎功澶辫触", e);
+ Map<String, Object> result = new HashMap<>();
+ result.put("code", 500);
+ result.put("data", null);
+ result.put("msg", "鏂囨。鐢熸垚澶辫触: " + e.getMessage());
+ return result;
}
- return null;
}
private void getData(Map dataMap, AppointmentDO appointment) {
--
Gitblit v1.9.3