This commit is contained in:
杨海航
2025-03-26 17:38:51 +08:00
parent b8b988e5a9
commit 04ac241630
2 changed files with 69 additions and 1 deletions

View File

@@ -19,10 +19,13 @@ import digital.laboratory.platform.inspection.entity.TestRecordSampleDataExpand;
import digital.laboratory.platform.inspection.enums.BusinessType; import digital.laboratory.platform.inspection.enums.BusinessType;
import digital.laboratory.platform.inspection.enums.TestRecordFileUrl; import digital.laboratory.platform.inspection.enums.TestRecordFileUrl;
import digital.laboratory.platform.inspection.service.*; 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.EntrustInfo;
import digital.laboratory.platform.inspetion.api.entity.SampleInfo; import digital.laboratory.platform.inspetion.api.entity.SampleInfo;
import digital.laboratory.platform.inspetion.api.entity.TargetObject; import digital.laboratory.platform.inspetion.api.entity.TargetObject;
import digital.laboratory.platform.inspetion.api.entity.TestRecord; import digital.laboratory.platform.inspetion.api.entity.TestRecord;
import digital.laboratory.platform.sys.entity.Drug;
import digital.laboratory.platform.sys.enums.entrust.EntrustBiologyType; import digital.laboratory.platform.sys.enums.entrust.EntrustBiologyType;
import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.commons.io.output.ByteArrayOutputStream;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@@ -67,6 +70,8 @@ public class InspectRecordServiceImpl implements InspectRecordService {
@Resource @Resource
private TestRecordSampledataExpandService testRecordSampledataExpandService; private TestRecordSampledataExpandService testRecordSampledataExpandService;
@Resource
/** /**
* 生成检验记录-贵阳禁毒 * 生成检验记录-贵阳禁毒
* *
@@ -233,6 +238,13 @@ public class InspectRecordServiceImpl implements InspectRecordService {
for (int i = 0; i < dataDtos.size(); i++) { for (int i = 0; i < dataDtos.size(); i++) {
dataDtos.get(i).setIndexNum(String.valueOf(indexNum++)); 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("dataDtos", dataDtos);
data.put("sampleSize", dataDtos.size()); data.put("sampleSize", dataDtos.size());
@@ -240,6 +252,45 @@ public class InspectRecordServiceImpl implements InspectRecordService {
return data; 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"; String templatePath = "/template" + "/贵阳禁毒常规毒品检验记录模板.docx";
LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy(); LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
Configure config = Configure.builder(). Configure config = Configure.builder().
bind("dataDtos", policy).build(); bind("dataDtos", policy)
.bind("ionPairAndCEVOS", policy).build();
return buildDocFileAndUploadToOss(entrustId, templatePath, config, docMap); return buildDocFileAndUploadToOss(entrustId, templatePath, config, docMap);
} }

View File

@@ -0,0 +1,16 @@
package digital.laboratory.platform.inspection.vo;
import lombok.Data;
@Data
public class IonPairAndCEVO {
private String compoundName;
private String productIon;
private Integer declusteringPotential;
private Integer collisionEnergy;
}