Merge remote-tracking branch 'origin/master'

This commit is contained in:
sxu 2024-12-16 18:13:05 +08:00
commit 3d24f77a66
3 changed files with 26 additions and 17 deletions

View File

@ -23,6 +23,10 @@
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>${jasypt-spring-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>

View File

@ -15,6 +15,8 @@ import com.bonus.material.order.domain.OrderDetailDto;
import com.bonus.material.order.domain.OrderInfoDto;
import com.bonus.material.order.mapper.OrderMapper;
import com.bonus.material.order.service.OrderService;
import com.bonus.system.api.RemoteFileService;
import com.bonus.system.api.domain.SysFile;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
@ -23,6 +25,7 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
@ -36,7 +39,11 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
/**
@ -58,6 +65,9 @@ public class OrderController extends BaseController {
@Resource
private BmContractService bmContractService;
@Resource
private RemoteFileService sysFileService;
/**
* 提交预约车到订单
*/
@ -165,7 +175,7 @@ public class OrderController extends BaseController {
@ApiOperation(value = "租赁协议(查看)")
@GetMapping("/leaseAgreement")
public ResponseEntity<byte[]> getleaseAgreement(String orderId, Map<String, String> replacements) throws IOException {
public AjaxResult getleaseAgreement(String orderId, Map<String, String> replacements) throws IOException, ParseException {
OrderInfoDto orderInfoDto = orderService.getAgreementByOrderId(orderId);
BmContract bmContract = new BmContract();
bmContract.setStatus(1);
@ -174,8 +184,14 @@ public class OrderController extends BaseController {
InputStream inputStream = new URL(wordUrl).openStream();
XWPFDocument document = new XWPFDocument(inputStream);
String dateStr = orderInfoDto.getOrderTime().toString();
SimpleDateFormat inputFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = inputFormat.parse(dateStr);
String formattedDate = outputFormat.format(date);
//订单日期
replacements.put("${orderTime}", orderInfoDto.getOrderTime().toString());
replacements.put("${orderTime}", formattedDate);
//装备所属公司
replacements.put("${czcompanyName}", orderInfoDto.getCzcompanyName());
//承租方所属公司
@ -202,20 +218,7 @@ public class OrderController extends BaseController {
document.write(outputStream);
byte[] wordBytes = outputStream.toByteArray();
// Convert Word to Image (simple example using BufferedImage)
/* BufferedImage image = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
graphics.setPaint(Color.white);
graphics.fillRect(0, 0, image.getWidth(), image.getHeight());
graphics.setPaint(Color.black);
graphics.drawString(new String(wordBytes), 10, 20);
graphics.dispose();*/
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", "contract.docx");
return ResponseEntity.ok()
.headers(headers)
.body(wordBytes);
MultipartFile file = new MockMultipartFile("contract", "contract.docx", MediaType.APPLICATION_OCTET_STREAM_VALUE, wordBytes);
return sysFileService.upload(file);
}
}

View File

@ -1,5 +1,6 @@
package com.bonus.material.order.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -35,6 +36,7 @@ public class OrderInfoDto {
@ApiModelProperty(value = "订单日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date orderTime;
@ApiModelProperty(value = "开始日期")