Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test
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.common.util.object.BeanUtils;
|
||||||
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
||||||
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
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.ReportDocumentDataPageReqVO;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentDataRespVO;
|
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentDataRespVO;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentDataSaveReqVO;
|
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 ReportDocumentMainService reportDocumentMainService;
|
||||||
@Resource private ReportDocumentTypeService reportDocumentTypeService;
|
@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")
|
@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 com.zt.plat.module.system.api.iwork.dto.IWorkWorkflowCreateReqDTO;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -124,6 +124,27 @@ public class ReportDocumentAssistService {
|
|||||||
return iWorkIntegrationApi.createWorkflow(dto);
|
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文件
|
* 生成新版pdf文件
|
||||||
* 在reportDocumentFile创建新pdf文件
|
* 在reportDocumentFile创建新pdf文件
|
||||||
@@ -133,22 +154,11 @@ public class ReportDocumentAssistService {
|
|||||||
String pageFlag = "1"; //分页处理
|
String pageFlag = "1"; //分页处理
|
||||||
Long typeId = mainDO.getReportDocumentTypeId();
|
Long typeId = mainDO.getReportDocumentTypeId();
|
||||||
ReportDocumentTypeDO typeDO = reportDocumentTypeService.getReportDocumentType(typeId);
|
ReportDocumentTypeDO typeDO = reportDocumentTypeService.getReportDocumentType(typeId);
|
||||||
DataTemplateDO templateDO = dataTemplateService.getDataTemplate(mainDO.getDataTemplateId());
|
Long templateId = mainDO.getDataTemplateId();
|
||||||
|
|
||||||
CommonResult<JSONArray> result = reportDocumentDataService.assembleDynamicData(mainDO, typeDO, pageFlag);
|
CommonResult<JSONArray> result = reportDocumentDataService.assembleDynamicData(mainDO, typeDO, pageFlag);
|
||||||
JSONArray data = result.getData();
|
JSONArray data = result.getData();
|
||||||
String templateContent = templateDO.getFormContent();
|
byte[] fileBytes = generateReportPDF(data, templateId);
|
||||||
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
|
|
||||||
String formDataStr = mainDO.getFormData();
|
String formDataStr = mainDO.getFormData();
|
||||||
JSONObject formData = JSONObject.parseObject(formDataStr);
|
JSONObject formData = JSONObject.parseObject(formDataStr);
|
||||||
String entrustCode = "";
|
String entrustCode = "";
|
||||||
@@ -163,8 +173,6 @@ public class ReportDocumentAssistService {
|
|||||||
filename = filename + "(" + sampleCategory + ")";
|
filename = filename + "(" + sampleCategory + ")";
|
||||||
}
|
}
|
||||||
filename += ".pdf";
|
filename += ".pdf";
|
||||||
byte[] fileBytes = IOUtils.toByteArray(inputStream);
|
|
||||||
|
|
||||||
//上传到文件服务
|
//上传到文件服务
|
||||||
FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO();
|
FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO();
|
||||||
fileCreateReqDTO.setName(filename);
|
fileCreateReqDTO.setName(filename);
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
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.controller.vo.*;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO;
|
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO;
|
||||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
|
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> assembleDynamicData(ReportDocumentMainDO mainData, ReportDocumentTypeDO reportConfig, String pageFlag);
|
||||||
|
|
||||||
|
CommonResult<JSONArray> assembleByReportData(List<BusinessAssayReportDataDO> assayReportDataList, List<String> itemNameList);
|
||||||
|
|
||||||
CommonResult<List<ReportDocumentDataDO>> listByMainDataId(Long mainDataId);
|
CommonResult<List<ReportDocumentDataDO>> listByMainDataId(Long mainDataId);
|
||||||
CommonResult<Long> countMainDataId(Long mainDataId);
|
CommonResult<Long> countMainDataId(Long mainDataId);
|
||||||
CommonResult<String> removeByMainIdAndDetailIds(Long mainDataId, List<Long> detailIds);
|
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