|
|
|
@ -19,10 +19,13 @@ import digital.laboratory.platform.inspection.entity.TestRecordSampleDataExpand; |
|
|
|
|
import digital.laboratory.platform.inspection.enums.BusinessType; |
|
|
|
|
import digital.laboratory.platform.inspection.enums.TestRecordFileUrl; |
|
|
|
|
import digital.laboratory.platform.inspection.service.*; |
|
|
|
|
import digital.laboratory.platform.inspection.vo.IonPairAndCEVO; |
|
|
|
|
import digital.laboratory.platform.inspection.vo.TestRecordReagentVO; |
|
|
|
|
import digital.laboratory.platform.inspetion.api.entity.EntrustInfo; |
|
|
|
|
import digital.laboratory.platform.inspetion.api.entity.SampleInfo; |
|
|
|
|
import digital.laboratory.platform.inspetion.api.entity.TargetObject; |
|
|
|
|
import digital.laboratory.platform.inspetion.api.entity.TestRecord; |
|
|
|
|
import digital.laboratory.platform.sys.entity.Drug; |
|
|
|
|
import digital.laboratory.platform.sys.enums.entrust.EntrustBiologyType; |
|
|
|
|
import org.apache.commons.io.output.ByteArrayOutputStream; |
|
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
@ -67,6 +70,8 @@ public class InspectRecordServiceImpl implements InspectRecordService { |
|
|
|
|
@Resource |
|
|
|
|
private TestRecordSampledataExpandService testRecordSampledataExpandService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 生成检验记录-贵阳禁毒 |
|
|
|
|
* |
|
|
|
@ -233,6 +238,13 @@ public class InspectRecordServiceImpl implements InspectRecordService { |
|
|
|
|
for (int i = 0; i < dataDtos.size(); i++) { |
|
|
|
|
dataDtos.get(i).setIndexNum(String.valueOf(indexNum++)); |
|
|
|
|
} |
|
|
|
|
this.buildIonPairAndCE(data, testRecordReagentService |
|
|
|
|
.list(Wrappers.<TestRecordReagent>lambdaQuery() |
|
|
|
|
.in(TestRecordReagent::getId, testRecord.getReagentConsumablesList()) |
|
|
|
|
.eq(TestRecordReagent::getCategory, "标准物质")) |
|
|
|
|
.stream() |
|
|
|
|
.map(item -> item.getId()) |
|
|
|
|
.collect(Collectors.toList())); |
|
|
|
|
// 返回处理后的数据
|
|
|
|
|
data.put("dataDtos", dataDtos); |
|
|
|
|
data.put("sampleSize", dataDtos.size()); |
|
|
|
@ -240,6 +252,45 @@ public class InspectRecordServiceImpl implements InspectRecordService { |
|
|
|
|
return data; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void buildIonPairAndCE(Map<String, Object> data, List<String> reagentIdList) { |
|
|
|
|
List<IonPairAndCEVO> ionPairAndCEVOS = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
// 遍历 reagentIdList
|
|
|
|
|
for (String id : reagentIdList) { |
|
|
|
|
TestRecordReagentVO vo = testRecordReagentService.getVOById(id); |
|
|
|
|
if (vo == null) { |
|
|
|
|
continue; // 如果 vo 为空,跳过当前循环
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Drug drug = vo.getDrug(); |
|
|
|
|
if (drug == null) { |
|
|
|
|
continue; // 如果 drug 为空,跳过当前循环
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 添加 ionPairAndCEVO1 和 ionPairAndCEVO2
|
|
|
|
|
ionPairAndCEVOS.add(createIonPairAndCEVO(drug.getName(), drug.getMainProductIon(), |
|
|
|
|
drug.getMainDeclusteringPotential(), drug.getMainCollisionEnergy())); |
|
|
|
|
ionPairAndCEVOS.add(createIonPairAndCEVO(drug.getName(), drug.getMinorProductIon(), |
|
|
|
|
drug.getMinorDeclusteringPotential(), drug.getMinorCollisionEnergy())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 将结果放入数据 map 中
|
|
|
|
|
data.put("ionPairAndCEVOS", ionPairAndCEVOS); |
|
|
|
|
data.put("ionPairAndCEVOSize", ionPairAndCEVOS.size() / 2); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 创建 IonPairAndCEVO 对象的辅助方法
|
|
|
|
|
private IonPairAndCEVO createIonPairAndCEVO(String compoundName, String productIon, |
|
|
|
|
Integer declusteringPotential, Integer collisionEnergy) { |
|
|
|
|
IonPairAndCEVO ionPairAndCEVO = new IonPairAndCEVO(); |
|
|
|
|
ionPairAndCEVO.setCompoundName(compoundName); |
|
|
|
|
ionPairAndCEVO.setProductIon(productIon); |
|
|
|
|
ionPairAndCEVO.setDeclusteringPotential(declusteringPotential); |
|
|
|
|
ionPairAndCEVO.setCollisionEnergy(collisionEnergy); |
|
|
|
|
return ionPairAndCEVO; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 根据委托信息和样本类型生成生物样本检验记录文件。 |
|
|
|
|
* |
|
|
|
@ -313,7 +364,8 @@ public class InspectRecordServiceImpl implements InspectRecordService { |
|
|
|
|
String templatePath = "/template" + "/贵阳禁毒常规毒品检验记录模板.docx"; |
|
|
|
|
LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy(); |
|
|
|
|
Configure config = Configure.builder(). |
|
|
|
|
bind("dataDtos", policy).build(); |
|
|
|
|
bind("dataDtos", policy) |
|
|
|
|
.bind("ionPairAndCEVOS", policy).build(); |
|
|
|
|
return buildDocFileAndUploadToOss(entrustId, templatePath, config, docMap); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|