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> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<!-- <dependency>-->
<!-- <groupId>cn.idev.excel</groupId>-->
<!-- <artifactId>fastexcel</artifactId>-->
<!-- <version>1.3.0</version>-->
<!-- </dependency>-->
<dependency> <dependency>
<groupId>cn.idev.excel</groupId> <groupId>com.alibaba</groupId>
<artifactId>fastexcel</artifactId> <artifactId>easyexcel</artifactId>
<version>1.3.0</version> <version>3.3.4</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.retry</groupId> <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.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil; import cn.hutool.crypto.digest.DigestUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.idev.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import cn.idev.excel.enums.CellDataTypeEnum; import com.alibaba.excel.ExcelWriter;
import cn.idev.excel.metadata.data.ImageData; import com.alibaba.excel.context.WriteContext;
import cn.idev.excel.metadata.data.WriteCellData; import com.alibaba.excel.enums.CellDataTypeEnum;
import cn.idev.excel.write.metadata.WriteSheet; import com.alibaba.excel.enums.WriteTypeEnum;
import cn.idev.excel.write.metadata.fill.FillConfig; 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.document.PackageMaterialScanRecord;
import com.nflg.wms.admin.pojo.dto.PdfPageDTO; import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO; import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO;
@ -685,10 +688,10 @@ public class StructuralPackageOrderController extends BaseController {
ImageData imageData = new ImageData(); ImageData imageData = new ImageData();
imageData.setImageType(ImageData.ImageType.PICTURE_TYPE_PNG); imageData.setImageType(ImageData.ImageType.PICTURE_TYPE_PNG);
imageData.setImage(QRCodeUtil.generateQRCode(deliverOrder.getNo(), 100, 100)); imageData.setImage(QRCodeUtil.generateQRCode(deliverOrder.getNo(), 100, 100));
imageData.setTop(5); imageData.setTop(0);
imageData.setRight(5); imageData.setRight(0);
imageData.setBottom(5); imageData.setBottom(0);
imageData.setLeft(5); imageData.setLeft(0);
imageData.setRelativeFirstRowIndex(0); imageData.setRelativeFirstRowIndex(0);
imageData.setRelativeFirstColumnIndex(0); imageData.setRelativeFirstColumnIndex(0);
imageData.setRelativeLastRowIndex(2); imageData.setRelativeLastRowIndex(2);
@ -699,7 +702,7 @@ public class StructuralPackageOrderController extends BaseController {
VUtil.trueThrowBusinessError(Objects.isNull(supplier)).throwMessage("供应商不存在"); VUtil.trueThrowBusinessError(Objects.isNull(supplier)).throwMessage("供应商不存在");
info.put("supplierName", supplier.getSupplierName()); info.put("supplierName", supplier.getSupplierName());
info.put("abbreviation", supplier.getAbbreviation()); 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()); List<DeliverStructuralPackageOrderForPackageItemVO> datas = deliverStructuralPackageOrderService.getInfoByDeliverOrderNo(deliverOrder.getNo());
datas.forEach(it -> { datas.forEach(it -> {
it.setTrayNum(Math.toIntExact(deliverStructuralPackageOrderTrayService.lambdaQuery() it.setTrayNum(Math.toIntExact(deliverStructuralPackageOrderTrayService.lambdaQuery()
@ -708,11 +711,13 @@ public class StructuralPackageOrderController extends BaseController {
}); });
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(deliverOrder.getNo() + "送货单.xlsx", StandardCharsets.UTF_8)); 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(); WriteSheet writeSheet = EasyExcel.writerSheet().build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
excelWriter.fill(datas, fillConfig, writeSheet); excelWriter.fill(datas, fillConfig, writeSheet);
excelWriter.fill(info, writeSheet); excelWriter.fill(info, writeSheet);
WriteContext context = excelWriter.writeContext();
context.currentSheet(writeSheet, WriteTypeEnum.FILL);
} }
} }