carvendy 6 meses atrás
pai
commit
bef28553b5
11 arquivos alterados com 53 adições e 6 exclusões
  1. 2 2
      tz-module-grape-city/tz-module-grape-city-api/src/main/java/cn/start/tz/module/grape/city/api/GrapeCityApi.java
  2. 16 0
      tz-module-grape-city/tz-module-grape-city-api/src/main/java/cn/start/tz/module/grape/city/api/vo/GrapeCityLaboratoryReportReqDTO.java
  3. 3 0
      tz-module-grape-city/tz-module-grape-city-api/src/main/java/cn/start/tz/module/grape/city/enums/ApiConstants.java
  4. BIN
      tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/GrapeCityApi.class
  5. BIN
      tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/vo/GenerateIssueSubReportDTO.class
  6. BIN
      tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/vo/GrapeCityBusinessReqDTO.class
  7. BIN
      tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/vo/GrapeCityLaboratoryReportReqDTO.class
  8. BIN
      tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/vo/GrapeCityLaboratorySubReportReqDTO.class
  9. BIN
      tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/vo/GrapeCityReqDTO.class
  10. BIN
      tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/enums/ApiConstants.class
  11. 32 4
      tz-module-grape-city/tz-module-grape-city-biz/src/main/java/cn/start/tz/module/grape/city/api/GrapeCityApiImpl.java

+ 2 - 2
tz-module-grape-city/tz-module-grape-city-api/src/main/java/cn/start/tz/module/grape/city/api/GrapeCityApi.java

@@ -26,11 +26,11 @@ public interface GrapeCityApi {
 
     @PostMapping(PREFIX + "/getPdfByte")
     @Operation(summary = "通过文件byte[]获取文件pdf")
-    CommonResult<byte[]> getPdfByte(@RequestBody  byte[] bytes) throws Exception;
+    CommonResult<byte[]> getPdfByte(@RequestBody byte[] bytes) throws Exception;
 
     @PostMapping(PREFIX + "/getExcelByte")
     @Operation(summary = "通过文件byte[]获取文件excel")
-    CommonResult<byte[]> getExcelByte(@RequestBody  byte[] bytes) throws Exception;
+    CommonResult<byte[]> getExcelByte(@RequestBody byte[] bytes) throws Exception;
 
 
     @PostMapping(PREFIX + "/getLaboratoryReportByte")

+ 16 - 0
tz-module-grape-city/tz-module-grape-city-api/src/main/java/cn/start/tz/module/grape/city/api/vo/GrapeCityLaboratoryReportReqDTO.java

@@ -17,6 +17,22 @@ public class GrapeCityLaboratoryReportReqDTO {
      */
     private String reportJson;
 
+    /**
+     * 报告编制人签名图片
+     */
+    private byte[] preparedByImg;
+
+    /**
+     * 报告审核人签名图片
+     */
+    private byte[] reportApprovalByImg;
+
+    /**
+     * 报告审批人签名图片
+     */
+    private byte[] reportRatifyByImg;
+
+
     /**
      * 附件流
      */

+ 3 - 0
tz-module-grape-city/tz-module-grape-city-api/src/main/java/cn/start/tz/module/grape/city/enums/ApiConstants.java

@@ -38,4 +38,7 @@ public interface ApiConstants {
 
     // 实验室-金属材料检验检测报告
     String QC47015202400 = "qc47015202400";
+
+    // 实验室-气体燃料检测报告
+    String QC46024202400 = "qc46024202400";
 }

BIN
tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/GrapeCityApi.class


BIN
tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/vo/GenerateIssueSubReportDTO.class


BIN
tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/vo/GrapeCityBusinessReqDTO.class


BIN
tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/vo/GrapeCityLaboratoryReportReqDTO.class


BIN
tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/vo/GrapeCityLaboratorySubReportReqDTO.class


BIN
tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/api/vo/GrapeCityReqDTO.class


BIN
tz-module-grape-city/tz-module-grape-city-api/target/classes/cn/start/tz/module/grape/city/enums/ApiConstants.class


+ 32 - 4
tz-module-grape-city/tz-module-grape-city-biz/src/main/java/cn/start/tz/module/grape/city/api/GrapeCityApiImpl.java

@@ -13,6 +13,7 @@ import cn.start.tz.module.system.api.standard.dto.StandardProductRespDTO;
 import cn.start.tz.module.system.api.standard.dto.StandardTemplateRespDTO;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.grapecity.documents.excel.*;
+import com.grapecity.documents.excel.drawing.ImageType;
 import com.grapecity.documents.excel.template.DataSource.JsonDataSource;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
@@ -102,6 +103,37 @@ public class GrapeCityApiImpl implements GrapeCityApi {
         workbook.open(mainInputStream, OpenFileFormat.Sjs);
         for (IWorksheet worksheet : workbook.getWorksheets()) {
             worksheet.setDataSource(new JsonDataSource(reqDTO.getReportJson()));
+            if (reqDTO.getPreparedByImg() != null
+                    || reqDTO.getReportRatifyByImg() != null
+                    || reqDTO.getReportApprovalByImg() != null) {
+                IRange usedRange = worksheet.getUsedRange();
+                if (usedRange != null) {
+                    for (int row = 0; row < worksheet.getUsedRange().getRowCount(); row++) {
+                        for (int col = 0; col < worksheet.getUsedRange().getColumnCount(); col++) {
+                            IRange cell = worksheet.getRange(-1, -1, -1, -1).get(row, col);
+                            String bindingPath = cell.getBindingPath();
+                            if ("preparedByName".equals(bindingPath) && reqDTO.getPreparedByImg() != null) {
+                                try (InputStream tempIn0 = new ByteArrayInputStream(reqDTO.getPreparedByImg())) {
+                                    Rectangle rect = CellInfo.GetRangeBoundary(worksheet.getRange(cell.getAddress()));
+                                    worksheet.getShapes().addPictureInPixel(tempIn0, ImageType.JPG, rect.getX(), rect.getY(), rect.getWidth() * 8, rect.getHeight());
+                                }
+                            }
+                            if ("reportApprovalByName".equals(bindingPath) && reqDTO.getReportApprovalByImg() != null) {
+                                try (InputStream tempIn1 = new ByteArrayInputStream(reqDTO.getReportApprovalByImg())) {
+                                    Rectangle rect = CellInfo.GetRangeBoundary(worksheet.getRange(cell.getAddress()));
+                                    worksheet.getShapes().addPictureInPixel(tempIn1, ImageType.JPG, rect.getX(), rect.getY(), rect.getWidth() * 8, rect.getHeight());
+                                }
+                            }
+                            if ("reportRatifyByName".equals(bindingPath) && reqDTO.getReportRatifyByImg() != null) {
+                                try (InputStream tempIn4 = new ByteArrayInputStream(reqDTO.getReportRatifyByImg())) {
+                                    Rectangle rect = CellInfo.GetRangeBoundary(worksheet.getRange(cell.getAddress()));
+                                    worksheet.getShapes().addPictureInPixel(tempIn4, ImageType.JPG, rect.getX(), rect.getY(), rect.getWidth() * 8, rect.getHeight());
+                                }
+                            }
+                        }
+                    }
+                }
+            }
         }
         // 子报告
         if (CollUtil.isNotEmpty(reqDTO.getSubReportList())) {
@@ -148,10 +180,6 @@ public class GrapeCityApiImpl implements GrapeCityApi {
 
         }
         Workbook.FontsFolderPath = fontsFolderPath;
-//        PrintManager printManager = new PrintManager();
-//
-//        List<PageInfo> pages = printManager.paginate(reportWorkbook);
-//        printManager.savePageInfosToPDF(response.getOutputStream(), pages);
         // 设置PdfSaveOptions以将工作簿导出为PDF文件。
         PdfSaveOptions pdfOptions = new PdfSaveOptions();
         pdfOptions.setIncludeAutoMergedCells(true);