feat:工段报告生成接口
This commit is contained in:
@@ -13,6 +13,7 @@ import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
||||
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO;
|
||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentDataPageReqVO;
|
||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentDataRespVO;
|
||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentDataSaveReqVO;
|
||||
@@ -60,6 +61,17 @@ public class ReportDocumentDataController extends AbstractFileUploadController i
|
||||
@Resource private ReportDocumentMainService reportDocumentMainService;
|
||||
@Resource private ReportDocumentTypeService reportDocumentTypeService;
|
||||
|
||||
|
||||
@PostMapping("/assembleByReportData")
|
||||
@Operation(summary = "创建检测报告明细")
|
||||
//@PreAuthorize("@ss.hasPermission('qms:report-document-data:create')")
|
||||
public CommonResult<JSONArray> assembleByReportData(@RequestBody JSONObject jsonObject) {
|
||||
// Long mainId = jsonObject.getLong("mainId");
|
||||
List<BusinessAssayReportDataDO> assayReportDataList = jsonObject.getJSONArray("assayReportDataList").toJavaList(BusinessAssayReportDataDO.class);
|
||||
List<String> itemNameList = jsonObject.getJSONArray("itemNameList").toJavaList(String.class);
|
||||
return reportDocumentDataService.assembleByReportData(assayReportDataList, itemNameList);
|
||||
}
|
||||
|
||||
/*
|
||||
* 查询报告明细数据,返回结果包含表头、数据、检出限等。会按报告配置进行“换行”处理。*/
|
||||
@GetMapping("/queryReportDetail")
|
||||
|
||||
@@ -28,7 +28,7 @@ import com.zt.plat.module.system.api.iwork.dto.IWorkOperationRespDTO;
|
||||
import com.zt.plat.module.system.api.iwork.dto.IWorkWorkflowCreateReqDTO;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.compress.utils.IOUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -124,6 +124,27 @@ public class ReportDocumentAssistService {
|
||||
return iWorkIntegrationApi.createWorkflow(dto);
|
||||
}
|
||||
|
||||
/*
|
||||
* 通过处理后的数据和模板id,生成pdf
|
||||
* */
|
||||
public byte[] generateReportPDF(JSONArray data, Long templateId) throws IOException {
|
||||
DataTemplateDO templateDO = dataTemplateService.getDataTemplate(templateId);
|
||||
String templateContent = templateDO.getFormContent();
|
||||
JSONObject bodyJson = new JSONObject();
|
||||
bodyJson.put("Template", templateContent);
|
||||
bodyJson.put("Data", data.toJSONString());
|
||||
String bodyStr = bodyJson.toJSONString();
|
||||
// log.info("html2pdf body: " + bodyStr);
|
||||
log.info("html2pdf--start at {}", LocalDateTime.now());
|
||||
HttpResponse response = HttpUtil.createPost(html2pdfAddr)
|
||||
.body(bodyStr)
|
||||
.timeout(15000)
|
||||
.execute();
|
||||
log.info("html2pdf--end at {}", LocalDateTime.now());
|
||||
InputStream inputStream = response.bodyStream();
|
||||
return IOUtils.toByteArray(inputStream);
|
||||
}
|
||||
|
||||
/*
|
||||
* 生成新版pdf文件
|
||||
* 在reportDocumentFile创建新pdf文件
|
||||
@@ -133,22 +154,11 @@ public class ReportDocumentAssistService {
|
||||
String pageFlag = "1"; //分页处理
|
||||
Long typeId = mainDO.getReportDocumentTypeId();
|
||||
ReportDocumentTypeDO typeDO = reportDocumentTypeService.getReportDocumentType(typeId);
|
||||
DataTemplateDO templateDO = dataTemplateService.getDataTemplate(mainDO.getDataTemplateId());
|
||||
Long templateId = mainDO.getDataTemplateId();
|
||||
|
||||
CommonResult<JSONArray> result = reportDocumentDataService.assembleDynamicData(mainDO, typeDO, pageFlag);
|
||||
JSONArray data = result.getData();
|
||||
String templateContent = templateDO.getFormContent();
|
||||
JSONObject bodyJson = new JSONObject();
|
||||
bodyJson.put("Template", templateContent);
|
||||
bodyJson.put("Data", data.toJSONString());
|
||||
String bodyStr = bodyJson.toJSONString();
|
||||
log.info("html2pdf body: " + bodyStr);
|
||||
log.info("html2pdf--start at {}", LocalDateTime.now());
|
||||
HttpResponse response = HttpUtil.createPost(html2pdfAddr)
|
||||
.body(bodyStr)
|
||||
.timeout(15000)
|
||||
.execute();
|
||||
log.info("html2pdf--end at {}", LocalDateTime.now());
|
||||
InputStream inputStream = response.bodyStream(); // 关键:返回原始 InputStream
|
||||
byte[] fileBytes = generateReportPDF(data, templateId);
|
||||
String formDataStr = mainDO.getFormData();
|
||||
JSONObject formData = JSONObject.parseObject(formDataStr);
|
||||
String entrustCode = "";
|
||||
@@ -163,8 +173,6 @@ public class ReportDocumentAssistService {
|
||||
filename = filename + "(" + sampleCategory + ")";
|
||||
}
|
||||
filename += ".pdf";
|
||||
byte[] fileBytes = IOUtils.toByteArray(inputStream);
|
||||
|
||||
//上传到文件服务
|
||||
FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO();
|
||||
fileCreateReqDTO.setName(filename);
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO;
|
||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO;
|
||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
|
||||
@@ -21,6 +22,8 @@ public interface ReportDocumentDataService {
|
||||
|
||||
CommonResult<JSONArray> assembleDynamicData(ReportDocumentMainDO mainData, ReportDocumentTypeDO reportConfig, String pageFlag);
|
||||
|
||||
CommonResult<JSONArray> assembleByReportData(List<BusinessAssayReportDataDO> assayReportDataList, List<String> itemNameList);
|
||||
|
||||
CommonResult<List<ReportDocumentDataDO>> listByMainDataId(Long mainDataId);
|
||||
CommonResult<Long> countMainDataId(Long mainDataId);
|
||||
CommonResult<String> removeByMainIdAndDetailIds(Long mainDataId, List<Long> detailIds);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user