Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -24,6 +24,7 @@ import java.util.List;
|
|||||||
public class IdentifyBookController {
|
public class IdentifyBookController {
|
||||||
@Resource
|
@Resource
|
||||||
private IdentifyBookDataService identifyBookDataService;
|
private IdentifyBookDataService identifyBookDataService;
|
||||||
|
|
||||||
//对文书系统提供获取实验数据
|
//对文书系统提供获取实验数据
|
||||||
@GetMapping("/getIdentifyBookDataByBusinessId")
|
@GetMapping("/getIdentifyBookDataByBusinessId")
|
||||||
@ApiOperation(value = "获取检验数据")
|
@ApiOperation(value = "获取检验数据")
|
||||||
@@ -31,10 +32,12 @@ public class IdentifyBookController {
|
|||||||
try {
|
try {
|
||||||
return R.ok(identifyBookDataService.getIdentifyBookDataByBusinessId(businessId), "构建数据成功");
|
return R.ok(identifyBookDataService.getIdentifyBookDataByBusinessId(businessId), "构建数据成功");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
return R.failed("获取检验数据失败!");
|
return R.failed("获取检验数据失败!");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/getTestFinishBusinessData")
|
@PostMapping("/getTestFinishBusinessData")
|
||||||
@ApiOperation(value = "获取待制作文书列表")
|
@ApiOperation(value = "获取待制作文书列表")
|
||||||
public R getTestFinishBusinessData(@RequestBody List<String> synedIdList) {
|
public R getTestFinishBusinessData(@RequestBody List<String> synedIdList) {
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ public class TestRecordController {
|
|||||||
@ApiOperation("生成检验记录-贵阳禁毒")
|
@ApiOperation("生成检验记录-贵阳禁毒")
|
||||||
@GetMapping("/inspectionRecord")
|
@GetMapping("/inspectionRecord")
|
||||||
public R inspectionRecord(String businessId, String materialType) throws Exception {
|
public R inspectionRecord(String businessId, String materialType) throws Exception {
|
||||||
return inspectRecordService.buildInspectionRecord(businessId, materialType);
|
return inspectRecordService.buildInspectionRecord(businessId, materialType, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("预览检验记录-贵阳禁毒")
|
@ApiOperation("预览检验记录-贵阳禁毒")
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public interface InspectRecordService {
|
|||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
R buildInspectionRecord(String businessId, String materialType) throws Exception;
|
R buildInspectionRecord(String businessId, String materialType,boolean isPreview) throws Exception;
|
||||||
|
|
||||||
void previewInspectionRecord(String businessId, String materialType, HttpServletResponse servletResponse) throws Exception;
|
void previewInspectionRecord(String businessId, String materialType, HttpServletResponse servletResponse) throws Exception;
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -45,6 +46,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取完成实验的数据/获取符合制作文书的数据
|
* 获取完成实验的数据/获取符合制作文书的数据
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@@ -69,8 +71,10 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
}
|
}
|
||||||
return R.ok(entrustInfoList, "获取数据成功");
|
return R.ok(entrustInfoList, "获取数据成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取文书的数据
|
* 获取文书的数据
|
||||||
|
*
|
||||||
* @param businessId
|
* @param businessId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -85,6 +89,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//构建文书数据
|
//构建文书数据
|
||||||
private IdentificationBookDTO buildBookDataDetail(String businessId) {
|
private IdentificationBookDTO buildBookDataDetail(String businessId) {
|
||||||
IdentificationBookDTO bookData = new IdentificationBookDTO();
|
IdentificationBookDTO bookData = new IdentificationBookDTO();
|
||||||
@@ -97,12 +102,16 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
bookData.setSampleInfoList(sampleList);
|
bookData.setSampleInfoList(sampleList);
|
||||||
|
|
||||||
//设置检验结果
|
//设置检验结果
|
||||||
List<TestRecordSampleSolution> testRecordSampleSolutionList = getTestRecordSampleSolution(sampleList);//样本溶液
|
|
||||||
List<TestRecordSampleData> testRecordSampleDataList = getTestRecordSampleData(sampleList);//样本溶液对应的数据
|
List<TestRecordSampleData> testRecordSampleDataList = getTestRecordSampleData(sampleList);//样本溶液对应的数据
|
||||||
List<TestResult> testResultsList = buildTestResult(testRecordSampleDataList, testRecordSampleSolutionList, sampleList);//构建检验结果
|
if (CollUtil.isEmpty(testRecordSampleDataList)) {
|
||||||
TestRecord testRecordInfo = getTestRecordInfo(testRecordSampleSolutionList);
|
return null;
|
||||||
|
}
|
||||||
|
List<TestResult> testResultsList = buildTestResult(testRecordSampleDataList, sampleList);//构建检验结果
|
||||||
|
TestRecord testRecordInfo = testRecordService.lambdaQuery()
|
||||||
|
.eq(TestRecord::getBusinessId, businessId)
|
||||||
|
.one();
|
||||||
//实验信息
|
//实验信息
|
||||||
bookData.setTestMethod(getTestMethods(testRecordSampleSolutionList));//设置用到的实验方法
|
bookData.setTestMethod(getTestMethods(testRecordInfo));//设置用到的实验方法
|
||||||
//设置检验过程
|
//设置检验过程
|
||||||
bookData.setTestProcessDes(testRecordInfo.getTestProcessDes());//设置检验过程
|
bookData.setTestProcessDes(testRecordInfo.getTestProcessDes());//设置检验过程
|
||||||
bookData.setTestResult(testRecordSampleDataService.generateQualitativeResults(businessId));
|
bookData.setTestResult(testRecordSampleDataService.generateQualitativeResults(businessId));
|
||||||
@@ -115,6 +124,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
bookData.setTestFinishDate(sdf.format(testRecordInfo.getUpdateTime()));
|
bookData.setTestFinishDate(sdf.format(testRecordInfo.getUpdateTime()));
|
||||||
return bookData;
|
return bookData;
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取业务的实验对象
|
//获取业务的实验对象
|
||||||
private TestRecord getTestRecordInfo(List<TestRecordSampleSolution> testRecordSampleSolutionList) {
|
private TestRecord getTestRecordInfo(List<TestRecordSampleSolution> testRecordSampleSolutionList) {
|
||||||
List<String> testIdList = testRecordSampleSolutionList.stream().map(s -> s.getTestId()).collect(Collectors.toList());
|
List<String> testIdList = testRecordSampleSolutionList.stream().map(s -> s.getTestId()).collect(Collectors.toList());
|
||||||
@@ -126,10 +136,13 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
TestRecord testRecord = testRecordService.getById(testId);
|
TestRecord testRecord = testRecordService.getById(testId);
|
||||||
return testRecord;
|
return testRecord;
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取实验方法
|
//获取实验方法
|
||||||
private String getTestMethods(List<TestRecordSampleSolution> testRecordSampleSolutionList){
|
private String getTestMethods(TestRecord testRecordInfo) {
|
||||||
TestRecord testRecordInfo= getTestRecordInfo(testRecordSampleSolutionList);
|
|
||||||
List<String> testMethodList = testRecordInfo.getTestMethodList();
|
List<String> testMethodList = testRecordInfo.getTestMethodList();
|
||||||
|
if (CollUtil.isEmpty(testMethodList)) {
|
||||||
|
return "暂未找到实验过程中的方法数据!";
|
||||||
|
}
|
||||||
List<TestRecordMethod> methodsList = testRecordMethodService.list(Wrappers.<TestRecordMethod>lambdaQuery()
|
List<TestRecordMethod> methodsList = testRecordMethodService.list(Wrappers.<TestRecordMethod>lambdaQuery()
|
||||||
.in(TestRecordMethod::getId, testMethodList));
|
.in(TestRecordMethod::getId, testMethodList));
|
||||||
List<String> methodsName = methodsList.stream().map(s -> s.getMethodName()).collect(Collectors.toList());
|
List<String> methodsName = methodsList.stream().map(s -> s.getMethodName()).collect(Collectors.toList());
|
||||||
@@ -140,11 +153,11 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
sbMethodNameStr.delete(sbMethodNameStr.length() - 1, sbMethodNameStr.length());
|
sbMethodNameStr.delete(sbMethodNameStr.length() - 1, sbMethodNameStr.length());
|
||||||
return sbMethodNameStr.toString();
|
return sbMethodNameStr.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取sampleData
|
//获取sampleData
|
||||||
private List<TestRecordSampleData> getTestRecordSampleData(List<SampleInfo> sampleInfoList) {
|
private List<TestRecordSampleData> getTestRecordSampleData(List<SampleInfo> sampleInfoList) {
|
||||||
List<TestRecordSampleSolution> testRecordSampleSolution = getTestRecordSampleSolution(sampleInfoList);
|
if (CollUtil.isNotEmpty(sampleInfoList)) {
|
||||||
if (CollUtil.isNotEmpty(testRecordSampleSolution)) {
|
List<String> sampleNoList = sampleInfoList.stream().map(m -> m.getAcceptNo()).collect(Collectors.toList());//得到样本溶液编号
|
||||||
List<String> sampleNoList= testRecordSampleSolution.stream().map(m -> m.getSampleNo()).collect(Collectors.toList());//得到样本溶液编号
|
|
||||||
//根据样本溶液编号查出对应的样本溶液检验数据
|
//根据样本溶液编号查出对应的样本溶液检验数据
|
||||||
List<TestRecordSampleData> sampleTestDataList = getTestRecordData(sampleNoList);
|
List<TestRecordSampleData> sampleTestDataList = getTestRecordData(sampleNoList);
|
||||||
return sampleTestDataList;
|
return sampleTestDataList;
|
||||||
@@ -152,6 +165,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取样本溶液
|
//获取样本溶液
|
||||||
private List<TestRecordSampleSolution> getTestRecordSampleSolution(List<SampleInfo> sampleInfoList) {
|
private List<TestRecordSampleSolution> getTestRecordSampleSolution(List<SampleInfo> sampleInfoList) {
|
||||||
List<String> materialIdList = sampleInfoList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
List<String> materialIdList = sampleInfoList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
@@ -164,25 +178,21 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
.in(TestRecordSampleSolution::getMaterialId, materialIdList));
|
.in(TestRecordSampleSolution::getMaterialId, materialIdList));
|
||||||
return sampleSolutionList;
|
return sampleSolutionList;
|
||||||
}
|
}
|
||||||
|
|
||||||
//构建TestResult
|
//构建TestResult
|
||||||
private List<TestResult> buildTestResult(List<TestRecordSampleData> testRecordSampleDataList,
|
private List<TestResult> buildTestResult(List<TestRecordSampleData> testRecordSampleDataList,
|
||||||
List<TestRecordSampleSolution> testRecordSampleSolutionList,List<SampleInfo> sampleInfoList){
|
List<SampleInfo> sampleInfoList) {
|
||||||
//结果:应该是加入实验的检材的结果,目前暂定受理的检材我们按照受理顺序,全部定义为 1号检材,2号检材,3号检材等
|
//结果:应该是加入实验的检材的结果,目前暂定受理的检材我们按照受理顺序,全部定义为 1号检材,2号检材,3号检材等
|
||||||
//拿出实验数据中的所有实验样本编号,就是数据文件中的sampleId,也是溶液编号中的溶液编号,
|
//拿出实验数据中的所有实验样本编号,就是数据文件中的sampleId,也是溶液编号中的溶液编号,
|
||||||
List<String> sampleNoList = testRecordSampleDataList.stream().map(s -> s.getSampleNo()).collect(Collectors.toList());
|
List<String> sampleNoList = testRecordSampleDataList.stream().map(s -> s.getSampleNo()).collect(Collectors.toList());
|
||||||
//取出检材ID
|
|
||||||
List<String> okTestRecordSampleSolutionIdList=new ArrayList<>();
|
|
||||||
testRecordSampleSolutionList.forEach(item->{
|
|
||||||
//如果溶液在提供的溶液编号中,则取出来
|
|
||||||
if(sampleNoList.contains(item.getSampleNo())){
|
|
||||||
okTestRecordSampleSolutionIdList.add(item.getMaterialId());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
List<TestResult> retTestResult = new ArrayList<>();
|
List<TestResult> retTestResult = new ArrayList<>();
|
||||||
|
Map<String, SampleInfo> sampleInfoMap = sampleInfoList
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.toMap(SampleInfo::getAcceptNo, Function.identity()));
|
||||||
for (TestRecordSampleData testRecordSampleData : testRecordSampleDataList) {
|
for (TestRecordSampleData testRecordSampleData : testRecordSampleDataList) {
|
||||||
TestResult eg = new TestResult();
|
TestResult eg = new TestResult();
|
||||||
SampleInfo sampleInfo=getSampleInfoBySampleId(testRecordSampleSolutionList,
|
SampleInfo sampleInfo = sampleInfoMap.get(testRecordSampleData.getSampleNo());
|
||||||
sampleInfoList,testRecordSampleData.getSampleNo());
|
|
||||||
eg.setCompoundName(testRecordSampleData.getCompoundName());
|
eg.setCompoundName(testRecordSampleData.getCompoundName());
|
||||||
eg.setMaterialNo(sampleInfo.getOrderNo() + "号");
|
eg.setMaterialNo(sampleInfo.getOrderNo() + "号");
|
||||||
eg.setOrderNo(sampleInfo.getOrderNo());
|
eg.setOrderNo(sampleInfo.getOrderNo());
|
||||||
@@ -192,6 +202,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
}
|
}
|
||||||
return retTestResult;
|
return retTestResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
//根据sampleID获取对应的检材信息
|
//根据sampleID获取对应的检材信息
|
||||||
private SampleInfo getSampleInfoBySampleId(List<TestRecordSampleSolution> testRecordSampleSolutionList,
|
private SampleInfo getSampleInfoBySampleId(List<TestRecordSampleSolution> testRecordSampleSolutionList,
|
||||||
List<SampleInfo> sampleInfoList, String sampleId) {
|
List<SampleInfo> sampleInfoList, String sampleId) {
|
||||||
@@ -223,6 +234,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
return retObj.get(0);
|
return retObj.get(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//构建实验结果
|
//构建实验结果
|
||||||
private List<String> buildTestResultDes(List<TestResult> resultList) {
|
private List<String> buildTestResultDes(List<TestResult> resultList) {
|
||||||
//按照检材编号先分组,这样的话,如果有n个检材,m个化合物,那么就会分成n组,每组中就m条数据
|
//按照检材编号先分组,这样的话,如果有n个检材,m个化合物,那么就会分成n组,每组中就m条数据
|
||||||
@@ -248,6 +260,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
List<String> testResultDes = testResultSorted(temp2);
|
List<String> testResultDes = testResultSorted(temp2);
|
||||||
return testResultDes;
|
return testResultDes;
|
||||||
}
|
}
|
||||||
|
|
||||||
//对第一个结果进行排序
|
//对第一个结果进行排序
|
||||||
private List<String> testResultSorted(Map<String, List<TestResultDetail>> tmpMap) {
|
private List<String> testResultSorted(Map<String, List<TestResultDetail>> tmpMap) {
|
||||||
List<Map.Entry<String, List<TestResultDetail>>> targetList = new ArrayList<Map.Entry<String, List<TestResultDetail>>>(tmpMap.entrySet());
|
List<Map.Entry<String, List<TestResultDetail>>> targetList = new ArrayList<Map.Entry<String, List<TestResultDetail>>>(tmpMap.entrySet());
|
||||||
@@ -272,8 +285,10 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
});
|
});
|
||||||
return testResultDes;
|
return testResultDes;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造出一个检材一共检出了多少个化合物和未检出多少化合物
|
* 构造出一个检材一共检出了多少个化合物和未检出多少化合物
|
||||||
|
*
|
||||||
* @param mapCompound
|
* @param mapCompound
|
||||||
* @param materialNo
|
* @param materialNo
|
||||||
* @return
|
* @return
|
||||||
@@ -323,6 +338,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据编号获取排序值
|
* 根据编号获取排序值
|
||||||
|
*
|
||||||
* @param materialNo
|
* @param materialNo
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -334,8 +350,10 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
|||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据溶液编号(sampleNo)获取仪器检测数据
|
* 根据溶液编号(sampleNo)获取仪器检测数据
|
||||||
|
*
|
||||||
* @param sampleNoList
|
* @param sampleNoList
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -93,41 +93,88 @@ public class InspectRecordServiceImpl implements InspectRecordService {
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R buildInspectionRecord(String businessId, String materialType) throws Exception {
|
/**
|
||||||
|
* 构建检验记录
|
||||||
|
*
|
||||||
|
* @param businessId 业务ID,用于查询委托信息和检验记录
|
||||||
|
* @param materialType 材料类型,用于生成特定类型的检验记录
|
||||||
|
* @return 返回封装的响应对象,如果已存在 `.docx` 文件,则直接返回其路径,否则根据业务类型生成新的检验记录
|
||||||
|
* @throws Exception 可能抛出的异常
|
||||||
|
*/
|
||||||
|
public R buildInspectionRecord(String businessId, String materialType, boolean isPreview) throws Exception {
|
||||||
|
// 根据业务ID查询委托信息
|
||||||
EntrustInfo entrustInfo = entrustInfoService.getById(businessId);
|
EntrustInfo entrustInfo = entrustInfoService.getById(businessId);
|
||||||
if (entrustInfo == null) {
|
if (entrustInfo == null) {
|
||||||
return R.ok(false, "委托信息不存在!");
|
return R.ok(false, "委托信息不存在!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询该业务ID对应的检验记录
|
||||||
|
TestRecord testRecord = testRecordService.lambdaQuery()
|
||||||
|
.eq(TestRecord::getBusinessId, businessId)
|
||||||
|
.one();
|
||||||
|
|
||||||
|
// 判断是否是预览,如果是预览,则每次都要重新生成,如果不是预览,那就是已经结束实验后生成的检验记录,就去判断是否生成过了,如果生成过就不再生成了
|
||||||
|
if (!isPreview) {
|
||||||
|
// 获取OSS存储中的检验记录目录下的文件列表
|
||||||
|
List<String> list = ossFile.fileList(TestRecordFileUrl.TEST_RECORD_CATALOGUE.getFileUrl() + "/" + businessId + "/");
|
||||||
|
|
||||||
|
// 如果该目录下存在文件,则遍历查找是否有 .docx 结尾的文件
|
||||||
|
if (CollUtil.isNotEmpty(list)) {
|
||||||
|
for (String fileName : list) {
|
||||||
|
// 提取文件后缀名
|
||||||
|
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
|
||||||
|
// 如果找到 .docx 文件,则直接返回文件路径
|
||||||
|
if (suffix.equals("docx")) {
|
||||||
|
return R.ok(TestRecordFileUrl.TEST_RECORD_CATALOGUE.getFileUrl() + "/" + businessId + "/" + fileName, "生成成功!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 如果业务类型为 "BOINT_CASE",生成体内检验记录
|
||||||
if (entrustInfo.getBusinessType().equals(BusinessType.BOINT_CASE.getBusinessType())) {
|
if (entrustInfo.getBusinessType().equals(BusinessType.BOINT_CASE.getBusinessType())) {
|
||||||
return R.ok(this.buildInVivoDocFile(entrustInfo, materialType), "生成成功!");
|
return R.ok(this.buildInVivoDocFile(entrustInfo, materialType), "生成成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 默认情况,生成通用的药品检验记录
|
||||||
return R.ok(this.generateCommonDrugInpectRecord(businessId));
|
return R.ok(this.generateCommonDrugInpectRecord(businessId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void previewInspectionRecord(String businessId, String materialType, HttpServletResponse servletResponse) throws Exception {
|
public void previewInspectionRecord(String businessId, String materialType, HttpServletResponse servletResponse) throws Exception {
|
||||||
String path = "";
|
String path = "";
|
||||||
path = (String) this.buildInspectionRecord(businessId, materialType).getData();
|
path = (String) this.buildInspectionRecord(businessId, materialType, true).getData();
|
||||||
|
|
||||||
java.io.ByteArrayOutputStream fosWord = new java.io.ByteArrayOutputStream();
|
java.io.ByteArrayOutputStream fosWord = new java.io.ByteArrayOutputStream();
|
||||||
ossFile.fileGet(path, fosWord);
|
ossFile.fileGet(path, fosWord);
|
||||||
ByteArrayInputStream fisWord = new ByteArrayInputStream(fosWord.toByteArray());
|
ByteArrayInputStream fisWord = new ByteArrayInputStream(fosWord.toByteArray());
|
||||||
fosWord.close();
|
fosWord.close();
|
||||||
// 转换临时目录中的 word 文档为 PDF
|
|
||||||
MockMultipartFile mockMultipartFile = new MockMultipartFile("file", "检验记录" + ".docx", "image/jpg", fisWord);
|
// 转换 Word 文档为 PDF
|
||||||
|
MockMultipartFile mockMultipartFile = new MockMultipartFile("file", "检验记录" + ".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", fisWord);
|
||||||
String pdfFilePath = path.substring(0, path.lastIndexOf(".")) + ".pdf";
|
String pdfFilePath = path.substring(0, path.lastIndexOf(".")) + ".pdf";
|
||||||
Response response = remoteWord2PDFService.word2pdf(mockMultipartFile);
|
Response response = remoteWord2PDFService.word2pdf(mockMultipartFile);
|
||||||
fisWord.close();
|
fisWord.close();
|
||||||
|
|
||||||
org.apache.commons.io.output.ByteArrayOutputStream outPDF = new org.apache.commons.io.output.ByteArrayOutputStream();
|
org.apache.commons.io.output.ByteArrayOutputStream outPDF = new org.apache.commons.io.output.ByteArrayOutputStream();
|
||||||
IoUtil.copy(response.body().asInputStream(), outPDF, IoUtil.DEFAULT_MIDDLE_BUFFER_SIZE);
|
IoUtil.copy(response.body().asInputStream(), outPDF, IoUtil.DEFAULT_MIDDLE_BUFFER_SIZE);
|
||||||
ByteArrayInputStream isPDF = new ByteArrayInputStream(outPDF.toByteArray());
|
ByteArrayInputStream isPDF = new ByteArrayInputStream(outPDF.toByteArray());
|
||||||
outPDF.close();
|
outPDF.close();
|
||||||
|
|
||||||
|
// 保存 PDF 文件
|
||||||
ossFile.fileSave(pdfFilePath, isPDF);
|
ossFile.fileSave(pdfFilePath, isPDF);
|
||||||
isPDF.close();
|
isPDF.close();
|
||||||
|
|
||||||
|
// 删除原 Word 文件
|
||||||
|
ossFile.fileDelete(path);
|
||||||
|
System.out.println(String.format("已删除 Word 文件: %s", path));
|
||||||
|
|
||||||
|
// 发送 PDF 文件到响应流
|
||||||
ossFile.fileGet(pdfFilePath, servletResponse.getOutputStream());
|
ossFile.fileGet(pdfFilePath, servletResponse.getOutputStream());
|
||||||
System.out.println(String.format("转换为 PDF 结束"));
|
System.out.println(String.format("转换为 PDF 结束"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建体内检验记录数据
|
* 构建体内检验记录数据
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user