|
|
|
@ -1,5 +1,6 @@ |
|
|
|
|
package digital.laboratory.platform.inspection.service.impl; |
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
|
import cn.hutool.core.date.LocalDateTimeUtil; |
|
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
@ -23,6 +24,7 @@ import digital.laboratory.platform.inspection.constant.TestRecordSampleDataConst |
|
|
|
|
import digital.laboratory.platform.inspection.dto.*; |
|
|
|
|
import digital.laboratory.platform.inspection.entity.*; |
|
|
|
|
import digital.laboratory.platform.inspection.mapper.TestRecordMapper; |
|
|
|
|
import digital.laboratory.platform.inspection.mapper.TestRecordSampleDataExpandMapper; |
|
|
|
|
import digital.laboratory.platform.inspection.mapper.TestRecordSampleDataMapper; |
|
|
|
|
import digital.laboratory.platform.inspection.mapper.TestTemplateMapper; |
|
|
|
|
import digital.laboratory.platform.inspection.service.*; |
|
|
|
@ -37,6 +39,7 @@ import digital.laboratory.platform.inspetion.api.vo.TestRecordVo; |
|
|
|
|
import org.apache.commons.io.output.ByteArrayOutputStream; |
|
|
|
|
import org.apache.poi.xwpf.usermodel.*; |
|
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
@ -91,6 +94,8 @@ public class TestRecordServiceImpl extends ServiceImpl<TestRecordMapper, TestRec |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private TestRecordSampleDataMapper testRecordSampleDataMapper; |
|
|
|
|
@Autowired |
|
|
|
|
private TestRecordSampleDataExpandMapper testRecordSampleDataExpandMapper; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 根据业务id获取实验检验记录 |
|
|
|
@ -280,14 +285,25 @@ public class TestRecordServiceImpl extends ServiceImpl<TestRecordMapper, TestRec |
|
|
|
|
} |
|
|
|
|
//复制试剂耗材
|
|
|
|
|
if (testTemplateVo.getReagentConsumables() != null && testTemplateVo.getReagentConsumables().size() > 0) { |
|
|
|
|
|
|
|
|
|
List<TestRecordReagent> reagents = testRecordReagentService.lambdaQuery() |
|
|
|
|
.in(TestRecordReagent::getId, testTemplateVo.getReagentConsumables()) |
|
|
|
|
.eq(TestRecordReagent::getCategory, "标准物质") |
|
|
|
|
.list(); |
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(reagents)) { |
|
|
|
|
reagents.forEach(reagent -> { |
|
|
|
|
testRecordSampleDataService.autoCreateData(testRecord.getId(), reagent.getId()); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
testRecord.setReagentConsumablesList(testTemplateVo.getReagentConsumables()); |
|
|
|
|
} |
|
|
|
|
//复制仪器条件Word
|
|
|
|
|
ByteArrayOutputStream bos = new ByteArrayOutputStream(); |
|
|
|
|
ossFile.fileGet(TestRecordFileUrl.TEST_TEMPLATE_CATALOGUE.getFileUrl() + "/" + templateId + "/" + "仪器条件.docx", bos); |
|
|
|
|
byte[] templateArray = bos.toByteArray(); |
|
|
|
|
ByteArrayInputStream bis = new ByteArrayInputStream(templateArray); |
|
|
|
|
ossFile.fileSave(TestRecordFileUrl.TEST_RECORD_CATALOGUE.getFileUrl() + "/" + testRecord.getId() + "/" + "仪器条件.docx", bis); |
|
|
|
|
// //复制仪器条件Word
|
|
|
|
|
// ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
|
|
|
// ossFile.fileGet(TestRecordFileUrl.TEST_TEMPLATE_CATALOGUE.getFileUrl() + "/" + templateId + "/" + "仪器条件.docx", bos);
|
|
|
|
|
// byte[] templateArray = bos.toByteArray();
|
|
|
|
|
// ByteArrayInputStream bis = new ByteArrayInputStream(templateArray);
|
|
|
|
|
// ossFile.fileSave(TestRecordFileUrl.TEST_RECORD_CATALOGUE.getFileUrl() + "/" + testRecord.getId() + "/" + "仪器条件.docx", bis);
|
|
|
|
|
testRecord.setTemplateName(testTemplateVo.getName()); |
|
|
|
|
testTemplateMapper.updateById(testTemplateVo); |
|
|
|
|
this.updateById(testRecord); |
|
|
|
@ -576,6 +592,16 @@ public class TestRecordServiceImpl extends ServiceImpl<TestRecordMapper, TestRec |
|
|
|
|
@Override |
|
|
|
|
public TestRecord useTemplate(String testId, String templateId) throws Exception { |
|
|
|
|
TestRecord testRecord = this.getById(testId); |
|
|
|
|
List<TestRecordSampleData> dataList = testRecordSampleDataService.lambdaQuery() |
|
|
|
|
.eq(TestRecordSampleData::getTestId, testId) |
|
|
|
|
.list(); |
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(dataList)) { |
|
|
|
|
testRecordSampleDataExpandMapper.delete(Wrappers.<TestRecordSampleDataExpand>lambdaQuery() |
|
|
|
|
.in(TestRecordSampleDataExpand::getTestDataId, dataList.stream().map(TestRecordSampleData::getId).collect(Collectors.toList()))); |
|
|
|
|
|
|
|
|
|
testRecordSampleDataService.removeBatchByIds(dataList); |
|
|
|
|
} |
|
|
|
|
this.copyFromTemplate(testRecord, templateId); |
|
|
|
|
return testRecord; |
|
|
|
|
} |
|
|
|
|