|
|
|
@ -97,6 +97,20 @@ public class TestRecordServiceImpl extends ServiceImpl<TestRecordMapper, TestRec |
|
|
|
|
@Resource |
|
|
|
|
private TestRecordSampleDataMapper testRecordSampleDataMapper; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 根据业务id获取实验检验记录 |
|
|
|
|
* @param businessId |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public TestRecord getTestRecordByBusinessId(String businessId) { |
|
|
|
|
List<DataSolutionSampleDTO> dataSolutionSampleDTOS = testRecordSampleDataMapper |
|
|
|
|
.queryDataSolutionSampleDTOList(Wrappers.<DataSolutionSampleDTO>query() |
|
|
|
|
.eq("si.business_id", businessId)); |
|
|
|
|
TestRecord testRecord = super.getById(dataSolutionSampleDTOS.get(0).getTestId()); |
|
|
|
|
return testRecord; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 创建一个实验 |
|
|
|
|
* |
|
|
|
@ -1527,6 +1541,12 @@ public class TestRecordServiceImpl extends ServiceImpl<TestRecordMapper, TestRec |
|
|
|
|
return R.ok(map); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 生成检验记录-贵阳禁毒 |
|
|
|
|
* @param entrustId 委托id |
|
|
|
|
* @return |
|
|
|
|
* @throws Exception |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public R inspectionRecord(String entrustId) throws Exception { |
|
|
|
|
EntrustInfo entrustInfo = entrustInfoService.getById(entrustId); |
|
|
|
@ -1545,30 +1565,16 @@ public class TestRecordServiceImpl extends ServiceImpl<TestRecordMapper, TestRec |
|
|
|
|
|
|
|
|
|
public Map<String, Object> invivoRecord(EntrustInfo entrustInfo) throws Exception { |
|
|
|
|
|
|
|
|
|
HashMap<String, Object> data = new HashMap<>(); |
|
|
|
|
// 这里因为检验记录实体并未关联业务id, 只能先查询实验数据,在通过实验数据获取到检验记录信息
|
|
|
|
|
TestRecord testRecord = getTestRecordByBusinessId(entrustInfo.getId()); |
|
|
|
|
|
|
|
|
|
data.put("entrustDepartment", entrustInfo.getEntrustDepartment()); |
|
|
|
|
data.put("deliver1Name", entrustInfo.getDeliver1Name()); |
|
|
|
|
data.put("deliver2Name", entrustInfo.getDeliver2Name()); |
|
|
|
|
data.put("year", entrustInfo.getAcceptDate().getYear()); |
|
|
|
|
data.put("month", entrustInfo.getAcceptDate().getMonthValue()); |
|
|
|
|
data.put("day", entrustInfo.getAcceptDate().getDayOfMonth()); |
|
|
|
|
HashMap<String, Object> data = buildCommonInspectRecordDocMap(entrustInfo, testRecord); |
|
|
|
|
|
|
|
|
|
List<String> sampleIdList = sampleInfoService.list(Wrappers.<SampleInfo>lambdaQuery() |
|
|
|
|
.eq(SampleInfo::getBusinessId, entrustInfo.getId())) |
|
|
|
|
.stream().map(SampleInfo::getId) |
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
TestRecord testRecord = new TestRecord(); |
|
|
|
|
|
|
|
|
|
for (String sampleId : sampleIdList) { |
|
|
|
|
TestRecord record = this.getOne(Wrappers.<TestRecord>lambdaQuery() |
|
|
|
|
.like(TestRecord::getSampleTestList, sampleId)); |
|
|
|
|
if (record != null) { |
|
|
|
|
testRecord = record; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
List<TestRecordInstrument> instruments = testRecordInstrumentService.list(Wrappers.<TestRecordInstrument>lambdaQuery() |
|
|
|
|
.in(TestRecordInstrument::getId, testRecord.getDeviceIdList())); |
|
|
|
|
|
|
|
|
@ -1583,36 +1589,6 @@ public class TestRecordServiceImpl extends ServiceImpl<TestRecordMapper, TestRec |
|
|
|
|
data.put("instrumentName", instrumentName); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<TestRecordReagent> references = testRecordReagentService.list(Wrappers.<TestRecordReagent>lambdaQuery() |
|
|
|
|
.in(TestRecordReagent::getId, testRecord.getReagentConsumablesList()) |
|
|
|
|
.eq(TestRecordReagent::getCategory, "标准物质")); |
|
|
|
|
|
|
|
|
|
if (references == null || references.size() == 0) { |
|
|
|
|
data.put("referenceMaterialName", "未找到试剂耗材数据!"); |
|
|
|
|
}else { |
|
|
|
|
|
|
|
|
|
String referenceMaterialName = references.stream() |
|
|
|
|
.map(reagent -> "\u2611" + " " + reagent.getReagentConsumableName()) |
|
|
|
|
.collect(Collectors.joining("\n")); |
|
|
|
|
|
|
|
|
|
data.put("referenceMaterialName", referenceMaterialName); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<TestRecordReagent> reagents = testRecordReagentService.list(Wrappers.<TestRecordReagent>lambdaQuery() |
|
|
|
|
.in(TestRecordReagent::getId, testRecord.getReagentConsumablesList()) |
|
|
|
|
.eq(TestRecordReagent::getCategory, "试剂")); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (reagents == null || reagents.size() == 0) { |
|
|
|
|
data.put("reagentConsumableName", "未找到试剂耗材数据!"); |
|
|
|
|
} else { |
|
|
|
|
String reagentConsumableName = reagents.stream() |
|
|
|
|
.map(TestRecordReagent::getReagentConsumableName) |
|
|
|
|
.collect(Collectors.joining("、")); |
|
|
|
|
data.put("reagentConsumableName", reagentConsumableName); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<HairSewageDataDto> hairDataDtos = (List<HairSewageDataDto>) testRecordSampleDataService.getSampleTestDataByBusiness(entrustInfo.getId()); |
|
|
|
|
|
|
|
|
@ -1759,4 +1735,82 @@ public class TestRecordServiceImpl extends ServiceImpl<TestRecordMapper, TestRec |
|
|
|
|
return comparator; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 生成常规毒品的检验记录(贵阳禁毒) |
|
|
|
|
*/ |
|
|
|
|
public void generateCommonDrugInpectRecord(String entrustId) { |
|
|
|
|
Map<String, Object> docMap = buildCommonDrugDocMap(entrustId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 构建常规毒品的检验记录数据 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
private Map<String, Object> buildCommonDrugDocMap(String entrustId) { |
|
|
|
|
EntrustInfo entrustInfo = entrustInfoService.getById(entrustId); |
|
|
|
|
|
|
|
|
|
// 这里因为检验记录实体并未关联业务id, 只能先查询实验数据,在通过实验数据获取到检验记录信息
|
|
|
|
|
TestRecord testRecord = getTestRecordByBusinessId(entrustInfo.getId()); |
|
|
|
|
|
|
|
|
|
// 封装数据到map中
|
|
|
|
|
Map<String, Object> docMap = buildCommonInspectRecordDocMap(entrustInfo, testRecord); |
|
|
|
|
|
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 构建通用的检验记录文档映射 |
|
|
|
|
* |
|
|
|
|
* @param entrustInfo 委托信息对象 |
|
|
|
|
* @return 包含委托信息和检验记录信息的HashMap对象 |
|
|
|
|
*/ |
|
|
|
|
private HashMap<String, Object> buildCommonInspectRecordDocMap(EntrustInfo entrustInfo, TestRecord testRecord) { |
|
|
|
|
HashMap<String, Object> data = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
data.put("entrustDepartment", entrustInfo.getEntrustDepartment()); |
|
|
|
|
data.put("deliver1Name", entrustInfo.getDeliver1Name()); |
|
|
|
|
data.put("deliver2Name", entrustInfo.getDeliver2Name()); |
|
|
|
|
// 受理日期
|
|
|
|
|
data.put("acceptYear", entrustInfo.getAcceptDate().getYear()); |
|
|
|
|
data.put("acceptMonth", entrustInfo.getAcceptDate().getMonthValue()); |
|
|
|
|
data.put("acceptDay", entrustInfo.getAcceptDate().getDayOfMonth()); |
|
|
|
|
|
|
|
|
|
// 检验日期
|
|
|
|
|
data.put("inspectYear", testRecord.getTestStartDate().getYear()); |
|
|
|
|
data.put("inspectMonth", testRecord.getTestStartDate().getMonthValue()); |
|
|
|
|
data.put("inspectDay", testRecord.getTestStartDate().getDayOfMonth()); |
|
|
|
|
|
|
|
|
|
// 设置使用的标准物质和试剂
|
|
|
|
|
List<TestRecordReagent> references = testRecordReagentService.list(Wrappers.<TestRecordReagent>lambdaQuery() |
|
|
|
|
.in(TestRecordReagent::getId, testRecord.getReagentConsumablesList()) |
|
|
|
|
.eq(TestRecordReagent::getCategory, "标准物质")); |
|
|
|
|
|
|
|
|
|
if (references == null || references.size() == 0) { |
|
|
|
|
data.put("referenceMaterialName", "未找到试剂耗材数据!"); |
|
|
|
|
}else { |
|
|
|
|
|
|
|
|
|
String referenceMaterialName = references.stream() |
|
|
|
|
.map(reagent -> "\u2611" + " " + reagent.getReagentConsumableName()) |
|
|
|
|
.collect(Collectors.joining("\n")); |
|
|
|
|
|
|
|
|
|
data.put("referenceMaterialName", referenceMaterialName); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<TestRecordReagent> reagents = testRecordReagentService.list(Wrappers.<TestRecordReagent>lambdaQuery() |
|
|
|
|
.in(TestRecordReagent::getId, testRecord.getReagentConsumablesList()) |
|
|
|
|
.eq(TestRecordReagent::getCategory, "试剂")); |
|
|
|
|
|
|
|
|
|
if (reagents == null || reagents.size() == 0) { |
|
|
|
|
data.put("reagentConsumableName", "未找到试剂耗材数据!"); |
|
|
|
|
} else { |
|
|
|
|
String reagentConsumableName = reagents.stream() |
|
|
|
|
.map(TestRecordReagent::getReagentConsumableName) |
|
|
|
|
.collect(Collectors.joining("、")); |
|
|
|
|
data.put("reagentConsumableName", reagentConsumableName); |
|
|
|
|
} |
|
|
|
|
return data; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|