From 48269d19a8cdec7eb614c446205d650987f11bc3 Mon Sep 17 00:00:00 2001 From: "liang.chao" <1360241448@qq.com> Date: Fri, 13 Dec 2024 14:12:30 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=9F=E8=B5=81=E5=8D=8F=E8=AE=AE=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bonus-modules/bonus-material-mall/pom.xml | 8 +++ .../material/contract/domain/BmContract.java | 4 +- .../order/controller/OrderController.java | 67 ++++++++++++++++++- .../material/order/mapper/OrderMapper.java | 2 + .../material/order/service/OrderService.java | 2 + .../order/service/impl/OrderServiceImpl.java | 7 +- .../mapper/material/order/OrderInfoMapper.xml | 23 +++++++ 7 files changed, 106 insertions(+), 7 deletions(-) diff --git a/bonus-modules/bonus-material-mall/pom.xml b/bonus-modules/bonus-material-mall/pom.xml index 15c15e8..72546d3 100644 --- a/bonus-modules/bonus-material-mall/pom.xml +++ b/bonus-modules/bonus-material-mall/pom.xml @@ -106,6 +106,14 @@ test + + + + org.apache.poi + poi-ooxml + 5.2.3 + + diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/contract/domain/BmContract.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/contract/domain/BmContract.java index b84d748..d1bbd92 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/contract/domain/BmContract.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/contract/domain/BmContract.java @@ -27,11 +27,11 @@ public class BmContract { private Integer status; @ApiModelProperty(value = "创建时间") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; @ApiModelProperty(value = "修改时间") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; @ApiModelProperty(value = "用户id") diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/controller/OrderController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/controller/OrderController.java index f5de88a..5caa1bb 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/controller/OrderController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/controller/OrderController.java @@ -16,10 +16,21 @@ import com.bonus.material.order.service.OrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.xwpf.usermodel.IBodyElement; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.XWPFParagraph; +import org.apache.poi.xwpf.usermodel.XWPFRun; +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.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.util.List; +import java.util.Map; /** * @Author:liang.chao @@ -110,9 +121,9 @@ public class OrderController extends BaseController { if (dtos.size() > 0 && CollectionUtil.isNotEmpty(dtos)) { for (OrderDetailDto dto : dtos) { // if ("0".equals(dto.getManageType())) { - // 编码设备已取消的继续上架 - dto.setMaStatus(MaStatusEnum.LISTING.getCode().toString()); - orderMapper.updateDeviceStatus(dto); + // 编码设备已取消的继续上架 + dto.setMaStatus(MaStatusEnum.LISTING.getCode().toString()); + orderMapper.updateDeviceStatus(dto); /* } else { // 数量设备已退租的增加库存 orderMapper.updateAddDevCount(dto); @@ -141,4 +152,54 @@ public class OrderController extends BaseController { return error("发起减免失败"); } } + + @ApiOperation(value = "租赁协议(查看)") + @PostMapping("/leaseAgreement") + public ResponseEntity getleaseAgreement(@RequestParam("file") MultipartFile file, + @RequestParam("orderId") String orderId, + @RequestParam Map replacements) { + // 根据orderId获取订单信息 + OrderInfoDto orderInfoDto = orderService.getAgreementByOrderId(orderId); + try (XWPFDocument document = new XWPFDocument(file.getInputStream())) { + // 准备替换的占位符及其对应值 + //订单日期 + replacements.put("${orderTime}", orderInfoDto.getOrderTime().toString()); + //装备所属公司 + replacements.put("${czcompanyName}", orderInfoDto.getCzcompanyName()); + //承租方所属公司 + replacements.put("${companyName}", orderInfoDto.getCompanyName()); + //订单金额 + replacements.put("${cost}", orderInfoDto.getCost().toString()); + // 可根据需求添加更多占位符及替换值 + + // 遍历文档中的段落,进行占位符替换 + for (IBodyElement element : document.getBodyElements()) { + if (element instanceof XWPFParagraph) { + XWPFParagraph paragraph = (XWPFParagraph) element; + for (XWPFRun run : paragraph.getRuns()) { + String text = run.getText(0); + if (text != null) { + for (Map.Entry entry : replacements.entrySet()) { + text = text.replace(entry.getKey(), entry.getValue()); + } + run.setText(text, 0); + } + } + } + } + + // 将修改后的文档写入字节数组输出流 + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + document.write(byteArrayOutputStream); + + // 将字节数组转换为字符串(仅用于演示,实际应提供文件下载) + String content = byteArrayOutputStream.toString("UTF-8"); + // 注意:对于大文件,不建议将内容作为字符串返回。应提供下载链接或二进制文件响应。 + + return ResponseEntity.ok(content); + } catch (IOException e) { + e.printStackTrace(); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error processing file"); + } + } } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java index 3615ebf..e9dd9cd 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java @@ -43,4 +43,6 @@ public interface OrderMapper { int deleteCostReliefs(@Param("orderId") Integer orderId); int insertCostReliefs(@Param("list") List reliefList); + + OrderInfoDto getAgreementByOrderId(String orderId); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java index ba13eba..6778895 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java @@ -19,4 +19,6 @@ public interface OrderService { OrderInfoDto getOrderDetailsById(OrderDetailDto dto) throws Exception; Integer submitCostRelief(OrderInfoDto orderInfoDto); + + OrderInfoDto getAgreementByOrderId(String orderId); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java index 2fd6ca4..3c459ca 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java @@ -106,8 +106,6 @@ public class OrderServiceImpl implements OrderService { if (minOrderStatus.isPresent()) { dto.setOrderStatus(minOrderStatus.get().getOrderStatus()); } - dto.setStartTime(list.get(0).getRentBeginTime()); - dto.setEndTime(list.get(0).getRentEndTime()); //根据订单id去lease_repair_record表中查询是否已填写退租检修信息 int count = mapper.selectLeaseContent(String.valueOf(dto.getOrderId())); if (count > 0) { @@ -144,4 +142,9 @@ public class OrderServiceImpl implements OrderService { } return 0; } + + @Override + public OrderInfoDto getAgreementByOrderId(String orderId) { + return orderMapper.getAgreementByOrderId(orderId); + } } diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml index 02a8cbf..039ceef 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml @@ -271,6 +271,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE mt.del_flag = 0 and hh.order_id = #{orderId} + delete from ma_order_details_relief