diff --git a/dl-module-repair/pom.xml b/dl-module-repair/pom.xml
index a6ee9701..c28df541 100644
--- a/dl-module-repair/pom.xml
+++ b/dl-module-repair/pom.xml
@@ -29,30 +29,8 @@
com.deepoove
poi-tl
- 1.12.2
+ 1.10.0
-
- io.minio
- minio
- 8.4.0
-
-
- cn.iocoder.boot
- dl-module-knowledge
- 2.1.0-jdk8-snapshot
- compile
-
-
- cn.iocoder.boot
- yudao-module-infra-biz
- 2.1.0-jdk8-snapshot
- compile
-
-
- org.springframework
- spring-test
-
-
8
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java
index c3fae8bf..553e4a73 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java
@@ -1,41 +1,27 @@
package cn.iocoder.yudao.module.tickets.controller.admin;
-import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.lang.Assert;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;
-import cn.iocoder.yudao.module.infra.framework.file.core.client.FileClient;
-import cn.iocoder.yudao.module.infra.service.file.FileConfigService;
-import cn.iocoder.yudao.module.infra.service.file.FileService;
-import cn.iocoder.yudao.module.knowledge.constants.Result;
-import cn.iocoder.yudao.module.knowledge.controller.requestdto.TOperationDocRequest;
import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets;
import cn.iocoder.yudao.module.tickets.service.DlRepairTicketsService;
-import cn.iocoder.yudao.module.tickets.tools.TOperaDocRequestUtil;
import cn.iocoder.yudao.module.tickets.vo.CustomerAndCarVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.tencentcloudapi.ess.v20201111.models.FileInfo;
import io.swagger.v3.oas.annotations.Operation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
-
-import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
/**
* 维修工单表(DlRepairTickets)表控制层
+ *
* @author 小李
* @date 18:21 2024/9/13
-**/
+ **/
@RestController
@RequestMapping("/repair/tickets")
public class DlRepairTicketsController {
@@ -44,26 +30,19 @@ public class DlRepairTicketsController {
*/
@Resource
private DlRepairTicketsService dlRepairTicketsService;
- @Autowired
- private TOperaDocRequestUtil tOperaDocRequestUtil;
- @Autowired
- private FileService fileService;
- @Resource
- private FileConfigService fileConfigService;
-
/**
* 维修工单表 新增
*
+ * @param ticketsRespVO 新增对象
* @author 小李
* @date 11:33 2024/9/20
- * @param ticketsRespVO 新增对象
- **/
+ **/
@PostMapping("/create")
@Operation(summary = "维修工单表 新增")
- public CommonResult> createTicket(@RequestBody DlRepairTicketsRespVO ticketsRespVO){
+ public CommonResult> createTicket(@RequestBody DlRepairTicketsRespVO ticketsRespVO) {
dlRepairTicketsService.createTickets(ticketsRespVO);
return CommonResult.ok();
}
@@ -71,17 +50,17 @@ public class DlRepairTicketsController {
/**
* 维修工单表 分页
*
+ * @param repairTicketsReqVO 查询对象
+ * @param pageNo 页码
+ * @param pageSize 条数
* @author 小李
* @date 20:51 2024/9/20
- * @param repairTicketsReqVO 查询对象
- * @param pageNo 页码
- * @param pageSize 条数
- **/
+ **/
@GetMapping("/page")
@Operation(summary = "维修工单表 分页")
public CommonResult> getTicketsPage(DlRepairTicketsReqVO repairTicketsReqVO,
- @RequestParam(value = "pageNo", defaultValue = "1")Integer pageNo,
- @RequestParam(value = "pageSize", defaultValue = "10")Integer pageSize){
+ @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
Page page = new Page<>(pageNo, pageSize);
return success(dlRepairTicketsService.getTicketsPage(repairTicketsReqVO, page));
}
@@ -89,26 +68,26 @@ public class DlRepairTicketsController {
/**
* 获得一个工单的详细信息
*
+ * @param id 工单ID
* @author 小李
* @date 16:05 2024/9/21
- * @param id 工单ID
- **/
+ **/
@GetMapping("/get")
@Operation(summary = "查看一个工单的详细信息")
- public CommonResult> getTicketsById(@RequestParam("id") String id){
+ public CommonResult> getTicketsById(@RequestParam("id") String id) {
return success(dlRepairTicketsService.getTicketsById(id));
}
/**
* 维修工单表 作废
*
+ * @param repairTicketsReqVO 工单对象
* @author 小李
* @date 19:46 2024/9/22
- * @param repairTicketsReqVO 工单对象
- **/
+ **/
@PostMapping("/void")
@Operation(summary = "维修工单表 作废")
- public CommonResult> setTicketsVoid(@RequestBody DlRepairTicketsReqVO repairTicketsReqVO){
+ public CommonResult> setTicketsVoid(@RequestBody DlRepairTicketsReqVO repairTicketsReqVO) {
dlRepairTicketsService.setTicketsVoid(repairTicketsReqVO);
return CommonResult.ok();
}
@@ -116,49 +95,63 @@ public class DlRepairTicketsController {
/**
* 维修工单表 结算
*
+ * @param repairTicketsRespVO 工单
* @author 小李
* @date 8:50 2024/9/23
- * @param repairTicketsRespVO 工单
- **/
+ **/
@PostMapping("/paid")
@Operation(summary = "维修工单表 结算")
- public CommonResult> setTicketsPaid(@RequestBody DlRepairTicketsRespVO repairTicketsRespVO){
+ public CommonResult> setTicketsPaid(@RequestBody DlRepairTicketsRespVO repairTicketsRespVO) {
dlRepairTicketsService.setTicketsPaid(repairTicketsRespVO);
return CommonResult.ok();
}
- /**
- * 维修工单表 导出
- *
- * @author lzt
- * @date 2024年10月11日
- * @param file 导出文件
- */
- @PostMapping("/print")
- @Operation(summary = "维修工单表 导出")
- public ResponseEntity> printDocument(@RequestParam("file") MultipartFile file) {
- if (file.isEmpty()) {
- return ResponseEntity.badRequest().body(new Result<>(null, "文件不能为空"));
- }
+// /**
+// * 维修工单表 导出
+// *
+// * @param file 导出文件
+// * @author lzt
+// * @date 2024年10月11日
+// */
+// @PostMapping("/print")
+// @Operation(summary = "维修工单表 导出")
+// public ResponseEntity> printDocument(@RequestParam("file") MultipartFile file) {
+// if (file.isEmpty()) {
+// return ResponseEntity.badRequest().body(new Result<>(null, "文件不能为空"));
+// }
+//
+// try {
+// FileDO fileInfo = fileService.createFileDetail(file.getOriginalFilename(), "/ticket", IoUtil.readBytes(file.getInputStream()));
+// return ResponseEntity.ok(new Result<>(fileInfo, "文件上传成功"));
+// } catch (Exception e) {
+// return ResponseEntity.status(500).body(new Result<>(null, "文件上传失败: " + e.getMessage()));
+// }
+// }
- try {
- FileDO fileInfo = fileService.createFileDetail(file.getOriginalFilename(), "/ticket", IoUtil.readBytes(file.getInputStream()));
- return ResponseEntity.ok(new Result<>(fileInfo, "文件上传成功"));
- } catch (Exception e) {
- return ResponseEntity.status(500).body(new Result<>(null, "文件上传失败: " + e.getMessage()));
- }
+ /**
+ * 维修工单打印
+ *
+ * @param response HttpServletResponse
+ * @param id 维修工单id
+ * @author PQZ
+ * @date 13:48 2024/10/12
+ **/
+ @GetMapping("/print/{id}")
+ @Operation(summary = "维修工单打印")
+ public void printDocument(HttpServletResponse response, @PathVariable String id) {
+ dlRepairTicketsService.print(response,id);
}
/**
* 客户信息和车辆信息 新增、修改
*
+ * @param customerAndCarVO 用户信息和车辆信息
* @author 小李
* @date 9:25 2024/10/8
- * @param customerAndCarVO 用户信息和车辆信息
- **/
+ **/
@PostMapping("/updateUserAndCar")
@Operation(summary = "客户信息和车辆信息 新增、修改")
- public CommonResult> updateCustomerAndCar(@RequestBody CustomerAndCarVO customerAndCarVO){
+ public CommonResult> updateCustomerAndCar(@RequestBody CustomerAndCarVO customerAndCarVO) {
dlRepairTicketsService.updateCustomerAndCar(customerAndCarVO);
return CommonResult.ok();
}
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java
index e1fd55fd..80bcefba 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java
@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import javax.servlet.http.HttpServletResponse;
+
/**
* 针对表【dl_repair_tickets(维修工单表)】的数据库操作Service
*
@@ -19,54 +21,64 @@ public interface DlRepairTicketsService extends IService {
/**
* 维修工单表 新增
*
+ * @param ticketsRespVO 新增对象
* @author 小李
* @date 11:33 2024/9/20
- * @param ticketsRespVO 新增对象
**/
void createTickets(DlRepairTicketsRespVO ticketsRespVO);
/**
* 维修工单表 分页
*
+ * @param repairTicketsReqVO 查询对象
* @author 小李
* @date 20:51 2024/9/20
- * @param repairTicketsReqVO 查询对象
**/
IPage getTicketsPage(DlRepairTicketsReqVO repairTicketsReqVO, Page page);
/**
* 获得一个工单的详细信息
*
+ * @param id 工单ID
* @author 小李
* @date 16:05 2024/9/21
- * @param id 工单ID
**/
DlRepairTicketsRespVO getTicketsById(String id);
/**
* 维修工单表 作废
*
+ * @param repairTicketsReqVO 工单对象
* @author 小李
* @date 19:46 2024/9/22
- * @param repairTicketsReqVO 工单对象
**/
void setTicketsVoid(DlRepairTicketsReqVO repairTicketsReqVO);
/**
* 维修工单表 结算
*
+ * @param repairTicketsRespVO 工单
* @author 小李
* @date 8:50 2024/9/23
- * @param repairTicketsRespVO 工单
**/
void setTicketsPaid(DlRepairTicketsRespVO repairTicketsRespVO);
/**
* 客户信息和车辆信息 新增、修改
*
+ * @param customerAndCarVO 用户信息和车辆信息
* @author 小李
* @date 9:25 2024/10/8
- * @param customerAndCarVO 用户信息和车辆信息
**/
void updateCustomerAndCar(CustomerAndCarVO customerAndCarVO);
+
+ /**
+ * 打印工单
+ *
+ * @param response HttpServletResponse
+ * @param id String
+ * @author PQZ
+ * @date 14:00 2024/10/12
+ **/
+ void print(HttpServletResponse response, String id);
}
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java
index 5bdc8694..d909d286 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java
@@ -32,6 +32,7 @@ import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem;
import cn.iocoder.yudao.module.tickets.mapper.DlRepairTicketsMapper;
import cn.iocoder.yudao.module.tickets.service.DlRepairTicketsService;
import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService;
+import cn.iocoder.yudao.module.tickets.tools.WordUtil;
import cn.iocoder.yudao.module.tickets.vo.CustomerAndCarVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO;
@@ -41,13 +42,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.FileOutputStream;
+import java.io.InputStream;
import java.math.BigDecimal;
+import java.util.HashMap;
import java.util.List;
-import java.util.Optional;
+import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@@ -325,6 +331,34 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl params = new HashMap<>();
+ params.put("jobNumber","123456789");
+ String fileName = "结算单.docx";
+ String tmpPath = "D:\\"+fileName;
+ try{
+ InputStream inputStream = XWPFTemplate.class.getResourceAsStream("/templates/gdmb.docx");
+ XWPFTemplate template = XWPFTemplate.compile(inputStream);
+ template.render(params);
+ FileOutputStream fos = new FileOutputStream(tmpPath);
+ template.write(fos);
+ fos.flush();
+ template.close();
+ WordUtil.down(response,tmpPath,fileName);
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
}
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/TOperaDocRequestUtil.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/TOperaDocRequestUtil.java
index cd7581c6..dbcda8fd 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/TOperaDocRequestUtil.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/TOperaDocRequestUtil.java
@@ -1,96 +1,94 @@
-package cn.iocoder.yudao.module.tickets.tools;
-
-import cn.iocoder.yudao.module.infra.service.file.FileService;
-import cn.iocoder.yudao.module.knowledge.constants.Result;
-import cn.iocoder.yudao.module.tickets.controller.admin.DlRepairTicketsController;
-import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO;
-import com.deepoove.poi.XWPFTemplate;
-import com.deepoove.poi.config.Configure;
-import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
-import com.tencentcloudapi.ess.v20201111.models.FileInfo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.ResponseEntity;
-import org.springframework.mock.web.MockMultipartFile;
-import org.springframework.stereotype.Component;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.HashMap;
-
-import static com.fhs.core.trans.util.ConvertUtil.convert;
-
-
-/**
- * 工单导出工具类
- * @author lzt
- * @date 9:27 2024年10月11日
- */
-@Component(value = "TOperaDocRequestUtil" )
-public class TOperaDocRequestUtil {
-
- @Resource
- private FileService fileService;
- @Value("${minio.bucketName:dev}")
- private String bucketName;
-
- public TOperaDocRequestUtil() throws FileNotFoundException {
- }
-
-
- private static String TEMPLATE_PATH = "/templates/gdmb.docx";
-
- @Autowired
- private DlRepairTicketsController dlRepairTicketsController;
-
- public FileInfo export(DlRepairTicketsReqVO request) throws IOException {
- String fileStr = TEMPLATE_PATH;
-
- if (fileStr != null) {
- byte[] inputStream = fileService.downloadFile(bucketName, fileStr);
-
- // 数据循环填充
- LoopRowTableRenderPolicy loopRowTableRenderPolicy = new LoopRowTableRenderPolicy();
- Configure configure = Configure.builder().bind("czTable", loopRowTableRenderPolicy).build();
-
- // word导出到本地
- MultipartFile convert = null;
- if (fileStr.contains("gdmb.docx")) {
- // 操作模板文件-数据填充
- XWPFTemplate template = XWPFTemplate.compile(String.valueOf(inputStream), configure).render(
- new HashMap() {{
- // 填充数据 TODO
- //put("requestData", request);
-
- }}
- );
- ByteArrayOutputStream outputStreamWord = new ByteArrayOutputStream();;
- template.writeAndClose(outputStreamWord);
- //IConverter converter = LocalConverter.builder().build();
- byte[] bytes = outputStreamWord.toByteArray();
- ByteArrayInputStream inputStreamWord = new ByteArrayInputStream(bytes);
-
- ByteArrayOutputStream outputStreamPdf = new ByteArrayOutputStream();
-
- //converter.convert(inputStreamWord).as(DocumentType.DOCX).to(outputStreamPdf).as(DocumentType.PDF).execute();
- byte[] bytesPdf = outputStreamPdf.toByteArray();
- ByteArrayInputStream inputStreamPdf = new ByteArrayInputStream(bytesPdf);
-
- // convert = new MultipartFile(fileStr.replace(".docx", ".pdf"), "application/pdf", inputStreamPdf.readAllBytes());
- convert = new MockMultipartFile("gdmb.pdf", bytes);
- }
- ResponseEntity> responseEntity = dlRepairTicketsController.printDocument(convert);
-
-// 获取 Result 对象
- Result fileupload = responseEntity.getBody();
- if (fileupload != null) {
- return fileupload.getData();
- }
- }
- return null;
- }
-}
+//package cn.iocoder.yudao.module.tickets.tools;
+//
+//import cn.iocoder.yudao.module.infra.service.file.FileService;
+//import cn.iocoder.yudao.module.knowledge.constants.Result;
+//import cn.iocoder.yudao.module.tickets.controller.admin.DlRepairTicketsController;
+//import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO;
+//import com.deepoove.poi.XWPFTemplate;
+//import com.deepoove.poi.config.Configure;
+//import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
+//import com.tencentcloudapi.ess.v20201111.models.FileInfo;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.http.ResponseEntity;
+//import org.springframework.mock.web.MockMultipartFile;
+//import org.springframework.stereotype.Component;
+//import org.springframework.web.multipart.MultipartFile;
+//
+//import javax.annotation.Resource;
+//import java.io.ByteArrayInputStream;
+//import java.io.ByteArrayOutputStream;
+//import java.io.FileNotFoundException;
+//import java.io.IOException;
+//import java.util.HashMap;
+//
+//
+///**
+// * 工单导出工具类
+// * @author lzt
+// * @date 9:27 2024年10月11日
+// */
+//@Component(value = "TOperaDocRequestUtil" )
+//public class TOperaDocRequestUtil {
+//
+// @Resource
+// private FileService fileService;
+// @Value("${minio.bucketName:dev}")
+// private String bucketName;
+//
+// public TOperaDocRequestUtil() throws FileNotFoundException {
+// }
+//
+//
+// private static String TEMPLATE_PATH = "/templates/gdmb.docx";
+//
+// @Autowired
+// private DlRepairTicketsController dlRepairTicketsController;
+//
+// public FileInfo export(DlRepairTicketsReqVO request) throws IOException {
+// String fileStr = TEMPLATE_PATH;
+//
+// if (fileStr != null) {
+// byte[] inputStream = fileService.downloadFile(bucketName, fileStr);
+//
+// // 数据循环填充
+// LoopRowTableRenderPolicy loopRowTableRenderPolicy = new LoopRowTableRenderPolicy();
+// Configure configure = Configure.builder().bind("czTable", loopRowTableRenderPolicy).build();
+//
+// // word导出到本地
+// MultipartFile convert = null;
+// if (fileStr.contains("gdmb.docx")) {
+// // 操作模板文件-数据填充
+// XWPFTemplate template = XWPFTemplate.compile(String.valueOf(inputStream), configure).render(
+// new HashMap() {{
+// // 填充数据 TODO
+// //put("requestData", request);
+//
+// }}
+// );
+// ByteArrayOutputStream outputStreamWord = new ByteArrayOutputStream();;
+// template.writeAndClose(outputStreamWord);
+// //IConverter converter = LocalConverter.builder().build();
+// byte[] bytes = outputStreamWord.toByteArray();
+// ByteArrayInputStream inputStreamWord = new ByteArrayInputStream(bytes);
+//
+// ByteArrayOutputStream outputStreamPdf = new ByteArrayOutputStream();
+//
+// //converter.convert(inputStreamWord).as(DocumentType.DOCX).to(outputStreamPdf).as(DocumentType.PDF).execute();
+// byte[] bytesPdf = outputStreamPdf.toByteArray();
+// ByteArrayInputStream inputStreamPdf = new ByteArrayInputStream(bytesPdf);
+//
+// // convert = new MultipartFile(fileStr.replace(".docx", ".pdf"), "application/pdf", inputStreamPdf.readAllBytes());
+// convert = new MockMultipartFile("gdmb.pdf", bytes);
+// }
+// ResponseEntity> responseEntity = dlRepairTicketsController.printDocument(convert);
+//
+// // 获取 Result 对象
+// Result fileupload = responseEntity.getBody();
+// if (fileupload != null) {
+// return fileupload.getData();
+// }
+// }
+// return null;
+// }
+//}
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/WordUtil.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/WordUtil.java
new file mode 100644
index 00000000..5bb579db
--- /dev/null
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/WordUtil.java
@@ -0,0 +1,50 @@
+package cn.iocoder.yudao.module.tickets.tools;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.FileInputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+/**
+ * POI-TL工具类
+ * @author PQZ
+ * @date 13:49 2024/10/12
+**/
+public class WordUtil {
+ /**模版路径*/
+ public static String TEMPLATE_PATH = "/templates/gdmb.docx";
+
+ public static void down(HttpServletResponse response, String filePath, String fileName) {
+ String encodeName = null;
+ try {
+ encodeName = encodeStr(fileName);
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ response.addHeader("Access-Control-Allow-Origin", "*");
+ response.addHeader("Access-Control-Expose-Headers", "Content-Disposition,download-filename");
+ response.setHeader("Content-disposition", "attachment; filename=" + encodeName + ";" + "filename*=" + "utf-8''" + encodeName);
+ response.setHeader("download-filename", encodeName);
+ try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filePath));
+ // 输出流
+ BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());) {
+ byte[] buff = new byte[1024];
+ int len = 0;
+ while ((len = bis.read(buff)) > 0) {
+ bos.write(buff, 0, len);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 编码工具方法
+ */
+ public static String encodeStr(String fileName) throws UnsupportedEncodingException {
+ return URLEncoder.encode(fileName,"UTF-8");
+ }
+
+}
diff --git a/yudao-module-infra/yudao-module-infra-biz/pom.xml b/yudao-module-infra/yudao-module-infra-biz/pom.xml
index ada189a0..a12f078a 100644
--- a/yudao-module-infra/yudao-module-infra-biz/pom.xml
+++ b/yudao-module-infra/yudao-module-infra-biz/pom.xml
@@ -124,12 +124,6 @@
org.apache.tika
tika-core
-
- com.aliyun.oss
- aliyun-sdk-oss
- 3.11.2
- compile
-
diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileService.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileService.java
index 98bcaaa0..cf40e74e 100644
--- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileService.java
+++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileService.java
@@ -5,10 +5,6 @@ import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileCreateReq
import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO;
import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePresignedUrlRespVO;
import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;
-import org.apache.tomcat.jni.FileInfo;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.xml.ws.Response;
/**
* 文件 Service 接口
@@ -67,16 +63,4 @@ public interface FileService {
*/
FilePresignedUrlRespVO getFilePresignedUrl(String path) throws Exception;
- /**
- * 下载文件
- *
- * @author lzt
- * @date 2024年10月11日
- * @param bucketName 存储桶名称
- * @param fileName 文件名称
- * @return 文件下载响应
- */
- byte[] downloadFile(String bucketName, String fileName);
-
-// FileInfo uploadFile(MultipartFile file);
}
diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java
index a1d8d38e..54cf38ca 100644
--- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java
+++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java
@@ -144,44 +144,4 @@ public class FileServiceImpl implements FileService {
return BeanUtils.toBean(presignedObjectUrl, FilePresignedUrlRespVO.class,
object -> object.setConfigId(fileClient.getId()));
}
-
- @Override
- @SneakyThrows
- public byte[] downloadFile(String bucketName, String fileStr) {
- // 获取文件存储客户端
- FileClient client = fileConfigService.getFileClient(Long.valueOf(bucketName));
- Assert.notNull(client, "客户端({}) 不能为空", bucketName);
-
- // 获取文件内容
- return client.getContent(fileStr);
- }
-
-// @Override
-// public FileInfo uploadFile(MultipartFile file) {
-// String bucketName = "xxxxx"; // 存储桶名称
-// String fileName = file.getOriginalFilename();
-//
-// try {
-// // 上传文件到 OSS
-// PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileName, file.getInputStream());
-// ossClient.putObject(putObjectRequest);
-//
-// // 创建并返回 FileInfo 对象
-// FileInfo fileInfo = new FileInfo();
-// fileInfo.setFileName(fileName);
-// fileInfo.setBucketName(bucketName);
-// return fileInfo;
-//
-// } catch (IOException e) {
-// e.printStackTrace();
-// throw new RuntimeException("文件上传到 OSS 失败: " + e.getMessage());
-// } finally {
-// // 关闭 OSS 客户端
-// ossClient.shutdown();
-// }
-// }
-
-
-
-
}
diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml
index 444015e0..ed551dd6 100644
--- a/yudao-server/src/main/resources/application.yaml
+++ b/yudao-server/src/main/resources/application.yaml
@@ -237,6 +237,8 @@ yudao:
- /admin-api/rescue/driverLogin
- /admin-api/rescuePayApi/payNotify
- /admin-api/payApi/payNotify
+ - /repair/tickets/print/**
+ - /admin-api/repair/tickets/print/**
websocket:
enable: true # websocket的开关
path: /infra/ws # 路径
@@ -298,6 +300,8 @@ yudao:
- /admin-api/payApi/payNotify
- /admin-api/base/notice/**
- /app-api/** #小程序端接口,不区分租户
+ - /repair/tickets/print/**
+ - /admin-api/repair/tickets/print/**
ignore-tables:
- system_tenant
- system_tenant_package
diff --git a/yudao-server/src/main/resources/templates/gdmb.docx b/yudao-server/src/main/resources/templates/gdmb.docx
new file mode 100644
index 00000000..6d061efa
Binary files /dev/null and b/yudao-server/src/main/resources/templates/gdmb.docx differ