update
This commit is contained in:
@@ -24,6 +24,7 @@ import java.util.List;
|
||||
public class IdentifyBookController {
|
||||
@Resource
|
||||
private IdentifyBookDataService identifyBookDataService;
|
||||
|
||||
//对文书系统提供获取实验数据
|
||||
@GetMapping("/getIdentifyBookDataByBusinessId")
|
||||
@ApiOperation(value = "获取检验数据")
|
||||
@@ -31,10 +32,12 @@ public class IdentifyBookController {
|
||||
try {
|
||||
return R.ok(identifyBookDataService.getIdentifyBookDataByBusinessId(businessId), "构建数据成功");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return R.failed("获取检验数据失败!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getTestFinishBusinessData")
|
||||
@ApiOperation(value = "获取待制作文书列表")
|
||||
public R getTestFinishBusinessData(@RequestBody List<String> synedIdList) {
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -45,6 +46,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
|
||||
/**
|
||||
* 获取完成实验的数据/获取符合制作文书的数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@@ -69,8 +71,10 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
}
|
||||
return R.ok(entrustInfoList, "获取数据成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文书的数据
|
||||
*
|
||||
* @param businessId
|
||||
* @return
|
||||
*/
|
||||
@@ -85,6 +89,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
//构建文书数据
|
||||
private IdentificationBookDTO buildBookDataDetail(String businessId) {
|
||||
IdentificationBookDTO bookData = new IdentificationBookDTO();
|
||||
@@ -97,12 +102,16 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
bookData.setSampleInfoList(sampleList);
|
||||
|
||||
//设置检验结果
|
||||
List<TestRecordSampleSolution> testRecordSampleSolutionList = getTestRecordSampleSolution(sampleList);//样本溶液
|
||||
List<TestRecordSampleData> testRecordSampleDataList = getTestRecordSampleData(sampleList);//样本溶液对应的数据
|
||||
List<TestResult> testResultsList = buildTestResult(testRecordSampleDataList, testRecordSampleSolutionList, sampleList);//构建检验结果
|
||||
TestRecord testRecordInfo = getTestRecordInfo(testRecordSampleSolutionList);
|
||||
if (CollUtil.isEmpty(testRecordSampleDataList)) {
|
||||
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.setTestResult(testRecordSampleDataService.generateQualitativeResults(businessId));
|
||||
@@ -115,6 +124,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
bookData.setTestFinishDate(sdf.format(testRecordInfo.getUpdateTime()));
|
||||
return bookData;
|
||||
}
|
||||
|
||||
//获取业务的实验对象
|
||||
private TestRecord getTestRecordInfo(List<TestRecordSampleSolution> testRecordSampleSolutionList) {
|
||||
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);
|
||||
return testRecord;
|
||||
}
|
||||
|
||||
//获取实验方法
|
||||
private String getTestMethods(List<TestRecordSampleSolution> testRecordSampleSolutionList){
|
||||
TestRecord testRecordInfo= getTestRecordInfo(testRecordSampleSolutionList);
|
||||
private String getTestMethods(TestRecord testRecordInfo) {
|
||||
List<String> testMethodList = testRecordInfo.getTestMethodList();
|
||||
if (CollUtil.isEmpty(testMethodList)) {
|
||||
return "暂未找到实验过程中的方法数据!";
|
||||
}
|
||||
List<TestRecordMethod> methodsList = testRecordMethodService.list(Wrappers.<TestRecordMethod>lambdaQuery()
|
||||
.in(TestRecordMethod::getId, testMethodList));
|
||||
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());
|
||||
return sbMethodNameStr.toString();
|
||||
}
|
||||
|
||||
//获取sampleData
|
||||
private List<TestRecordSampleData> getTestRecordSampleData(List<SampleInfo> sampleInfoList) {
|
||||
List<TestRecordSampleSolution> testRecordSampleSolution = getTestRecordSampleSolution(sampleInfoList);
|
||||
if (CollUtil.isNotEmpty(testRecordSampleSolution)) {
|
||||
List<String> sampleNoList= testRecordSampleSolution.stream().map(m -> m.getSampleNo()).collect(Collectors.toList());//得到样本溶液编号
|
||||
if (CollUtil.isNotEmpty(sampleInfoList)) {
|
||||
List<String> sampleNoList = sampleInfoList.stream().map(m -> m.getAcceptNo()).collect(Collectors.toList());//得到样本溶液编号
|
||||
//根据样本溶液编号查出对应的样本溶液检验数据
|
||||
List<TestRecordSampleData> sampleTestDataList = getTestRecordData(sampleNoList);
|
||||
return sampleTestDataList;
|
||||
@@ -152,6 +165,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
//获取样本溶液
|
||||
private List<TestRecordSampleSolution> getTestRecordSampleSolution(List<SampleInfo> sampleInfoList) {
|
||||
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));
|
||||
return sampleSolutionList;
|
||||
}
|
||||
|
||||
//构建TestResult
|
||||
private List<TestResult> buildTestResult(List<TestRecordSampleData> testRecordSampleDataList,
|
||||
List<TestRecordSampleSolution> testRecordSampleSolutionList,List<SampleInfo> sampleInfoList){
|
||||
List<SampleInfo> sampleInfoList) {
|
||||
//结果:应该是加入实验的检材的结果,目前暂定受理的检材我们按照受理顺序,全部定义为 1号检材,2号检材,3号检材等
|
||||
//拿出实验数据中的所有实验样本编号,就是数据文件中的sampleId,也是溶液编号中的溶液编号,
|
||||
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<>();
|
||||
Map<String, SampleInfo> sampleInfoMap = sampleInfoList
|
||||
.stream()
|
||||
.collect(Collectors.toMap(SampleInfo::getAcceptNo, Function.identity()));
|
||||
for (TestRecordSampleData testRecordSampleData : testRecordSampleDataList) {
|
||||
TestResult eg = new TestResult();
|
||||
SampleInfo sampleInfo=getSampleInfoBySampleId(testRecordSampleSolutionList,
|
||||
sampleInfoList,testRecordSampleData.getSampleNo());
|
||||
SampleInfo sampleInfo = sampleInfoMap.get(testRecordSampleData.getSampleNo());
|
||||
eg.setCompoundName(testRecordSampleData.getCompoundName());
|
||||
eg.setMaterialNo(sampleInfo.getOrderNo() + "号");
|
||||
eg.setOrderNo(sampleInfo.getOrderNo());
|
||||
@@ -192,6 +202,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
}
|
||||
return retTestResult;
|
||||
}
|
||||
|
||||
//根据sampleID获取对应的检材信息
|
||||
private SampleInfo getSampleInfoBySampleId(List<TestRecordSampleSolution> testRecordSampleSolutionList,
|
||||
List<SampleInfo> sampleInfoList, String sampleId) {
|
||||
@@ -223,6 +234,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
return retObj.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
//构建实验结果
|
||||
private List<String> buildTestResultDes(List<TestResult> resultList) {
|
||||
//按照检材编号先分组,这样的话,如果有n个检材,m个化合物,那么就会分成n组,每组中就m条数据
|
||||
@@ -248,6 +260,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
List<String> testResultDes = testResultSorted(temp2);
|
||||
return testResultDes;
|
||||
}
|
||||
|
||||
//对第一个结果进行排序
|
||||
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());
|
||||
@@ -272,8 +285,10 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
});
|
||||
return testResultDes;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造出一个检材一共检出了多少个化合物和未检出多少化合物
|
||||
*
|
||||
* @param mapCompound
|
||||
* @param materialNo
|
||||
* @return
|
||||
@@ -323,6 +338,7 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
|
||||
/**
|
||||
* 根据编号获取排序值
|
||||
*
|
||||
* @param materialNo
|
||||
* @return
|
||||
*/
|
||||
@@ -334,8 +350,10 @@ public class IdentifyBookDataServiceImpl implements IdentifyBookDataService {
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据溶液编号(sampleNo)获取仪器检测数据
|
||||
*
|
||||
* @param sampleNoList
|
||||
* @return
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user