feat: 修复钢构件送货单excel在低版本wps中无法显示二维码的问题

This commit is contained in:
曹鹏飞 2025-11-04 17:22:26 +08:00
parent 6c060fbc17
commit 5884572ac6
3 changed files with 25 additions and 15 deletions

View File

@ -119,10 +119,15 @@
</exclusion>
</exclusions>
</dependency>
<!-- <dependency>-->
<!-- <groupId>cn.idev.excel</groupId>-->
<!-- <artifactId>fastexcel</artifactId>-->
<!-- <version>1.3.0</version>-->
<!-- </dependency>-->
<dependency>
<groupId>cn.idev.excel</groupId>
<artifactId>fastexcel</artifactId>
<version>1.3.0</version>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.3.4</version>
</dependency>
<dependency>
<groupId>org.springframework.retry</groupId>

View File

@ -8,12 +8,15 @@ import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
import cn.hutool.json.JSONUtil;
import cn.idev.excel.EasyExcel;
import cn.idev.excel.enums.CellDataTypeEnum;
import cn.idev.excel.metadata.data.ImageData;
import cn.idev.excel.metadata.data.WriteCellData;
import cn.idev.excel.write.metadata.WriteSheet;
import cn.idev.excel.write.metadata.fill.FillConfig;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.context.WriteContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.enums.WriteTypeEnum;
import com.alibaba.excel.metadata.data.ImageData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import com.nflg.wms.admin.pojo.document.PackageMaterialScanRecord;
import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO;
@ -685,10 +688,10 @@ public class StructuralPackageOrderController extends BaseController {
ImageData imageData = new ImageData();
imageData.setImageType(ImageData.ImageType.PICTURE_TYPE_PNG);
imageData.setImage(QRCodeUtil.generateQRCode(deliverOrder.getNo(), 100, 100));
imageData.setTop(5);
imageData.setRight(5);
imageData.setBottom(5);
imageData.setLeft(5);
imageData.setTop(0);
imageData.setRight(0);
imageData.setBottom(0);
imageData.setLeft(0);
imageData.setRelativeFirstRowIndex(0);
imageData.setRelativeFirstColumnIndex(0);
imageData.setRelativeLastRowIndex(2);
@ -699,7 +702,7 @@ public class StructuralPackageOrderController extends BaseController {
VUtil.trueThrowBusinessError(Objects.isNull(supplier)).throwMessage("供应商不存在");
info.put("supplierName", supplier.getSupplierName());
info.put("abbreviation", supplier.getAbbreviation());
info.put("today", DateTimeUtil.format(LocalDate.now(), "yyyy-MM-dd"));
info.put("today", DateTimeUtil.format(LocalDate.now()));
List<DeliverStructuralPackageOrderForPackageItemVO> datas = deliverStructuralPackageOrderService.getInfoByDeliverOrderNo(deliverOrder.getNo());
datas.forEach(it -> {
it.setTrayNum(Math.toIntExact(deliverStructuralPackageOrderTrayService.lambdaQuery()
@ -708,11 +711,13 @@ public class StructuralPackageOrderController extends BaseController {
});
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(deliverOrder.getNo() + "送货单.xlsx", StandardCharsets.UTF_8));
try (cn.idev.excel.ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(new ClassPathResource("template/钢构包送货单模版.xlsx").getInputStream()).build()) {
try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(new ClassPathResource("template/钢构包送货单模版.xlsx").getInputStream()).build()) {
WriteSheet writeSheet = EasyExcel.writerSheet().build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
excelWriter.fill(datas, fillConfig, writeSheet);
excelWriter.fill(info, writeSheet);
WriteContext context = excelWriter.writeContext();
context.currentSheet(writeSheet, WriteTypeEnum.FILL);
}
}