|
|
|
@ -3,13 +3,12 @@ package digital.laboratory.platform.entrustment.service.impl; |
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
|
import digital.laboratory.platform.common.core.exception.CheckedException; |
|
|
|
|
import digital.laboratory.platform.common.core.util.R; |
|
|
|
|
import digital.laboratory.platform.entrustment.entity.CaseEvent; |
|
|
|
|
import digital.laboratory.platform.entrustment.entity.Entrustment; |
|
|
|
|
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial; |
|
|
|
|
import digital.laboratory.platform.entrustment.enums.AnalysisOptionEnums; |
|
|
|
|
import digital.laboratory.platform.entrustment.enums.EntrustIdentificationSituationType; |
|
|
|
|
import digital.laboratory.platform.entrustment.service.EntrustmentIdentificationMaterialService; |
|
|
|
|
import digital.laboratory.platform.entrustment.service.EntrustmentService; |
|
|
|
|
import digital.laboratory.platform.entrustment.service.ExcelUploadService; |
|
|
|
|
import digital.laboratory.platform.entrustment.service.*; |
|
|
|
|
import digital.laboratory.platform.entrustment.utils.ExcelUtils; |
|
|
|
|
import digital.laboratory.platform.sys.entity.DrugLite; |
|
|
|
|
import digital.laboratory.platform.sys.enums.entrust.EntrustBiologyType; |
|
|
|
@ -19,6 +18,7 @@ import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
import java.math.BigDecimal; |
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
@ -34,6 +34,12 @@ import java.util.stream.Collectors; |
|
|
|
|
@Service |
|
|
|
|
public class ExcelUploadServiceImpl implements ExcelUploadService { |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private SampleService sampleService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private CaseEventService caseEventService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private EntrustmentService entrustmentService; |
|
|
|
|
|
|
|
|
@ -61,6 +67,9 @@ public class ExcelUploadServiceImpl implements ExcelUploadService { |
|
|
|
|
if (!entrustment.getOldIdentificationResult().equals(EntrustIdentificationSituationType.TWO_AGENCY.getDesc())) { |
|
|
|
|
throw new CheckedException("当前不支持两社人员之外的委托信息进行导入!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 校验案件信息是否合法
|
|
|
|
|
CaseEvent cj = caseEventService.validateCaseInfo(entrustment.getCaseId()); |
|
|
|
|
// 默认取海洛因的毒品信息
|
|
|
|
|
R<DrugLite> drugLiteR = remoteCommDrugService.getByName("海洛因"); |
|
|
|
|
DrugLite heroin = drugLiteR.getData(); // 获取默认的海洛因数据
|
|
|
|
@ -71,23 +80,38 @@ public class ExcelUploadServiceImpl implements ExcelUploadService { |
|
|
|
|
List<EntrustmentIdentificationMaterial> entrustmentIdentificationMaterialList = new ArrayList<>(); |
|
|
|
|
// 读取excel数据
|
|
|
|
|
List<Map<String, String>> data = ExcelUtils.readExcel(file); |
|
|
|
|
int orderNo = 1; |
|
|
|
|
for (Map<String, String> datum : data) { |
|
|
|
|
EntrustmentIdentificationMaterial entrustmentIdentificationMaterial = new EntrustmentIdentificationMaterial(); |
|
|
|
|
entrustmentIdentificationMaterial.setEntrustmentId(entrustment.getId()); |
|
|
|
|
entrustmentIdentificationMaterial.setType("1"); |
|
|
|
|
entrustmentIdentificationMaterial.setTypeName("生物样本"); |
|
|
|
|
entrustmentIdentificationMaterial.setCaseId(entrustment.getCaseId()); |
|
|
|
|
// 读取excel的值到检材实体
|
|
|
|
|
entrustmentIdentificationMaterial.setName(datum.get("姓名") + "毛发"); |
|
|
|
|
entrustmentIdentificationMaterial.setBiologyGender(datum.get("性别")); |
|
|
|
|
entrustmentIdentificationMaterial.setBiologyType(EntrustBiologyType.HAIR.getDesc()); |
|
|
|
|
entrustmentIdentificationMaterial.setMaterialAge(Integer.valueOf(datum.get("年龄"))); |
|
|
|
|
entrustmentIdentificationMaterial.setRemark(datum.get("身份证号")); |
|
|
|
|
entrustmentIdentificationMaterial.setDrawPlace(datum.get("采样单位")); |
|
|
|
|
entrustmentIdentificationMaterial.setQuantity(new BigDecimal(50)); |
|
|
|
|
entrustmentIdentificationMaterial.setUnit("mg"); |
|
|
|
|
entrustmentIdentificationMaterial.setForm("黑色头发"); |
|
|
|
|
entrustmentIdentificationMaterial.setFormName("黑色头发"); |
|
|
|
|
entrustmentIdentificationMaterial.setAnalysisOption(AnalysisOptionEnums.QUALITATIVE.getCode()); // 默认设置定性
|
|
|
|
|
entrustmentIdentificationMaterial.setCandidateDrugs(CollUtil.newArrayList(drugLiteMap.containsKey(datum.get("曾吸毒种类")) ? drugLiteMap.get(datum.get("曾吸毒种类")) : heroin)); |
|
|
|
|
|
|
|
|
|
// 设置默认值
|
|
|
|
|
entrustmentIdentificationMaterial.setBiologyType(EntrustBiologyType.HAIR.getDesc()); // 生物样本检材类型
|
|
|
|
|
entrustmentIdentificationMaterial.setType("1"); |
|
|
|
|
entrustmentIdentificationMaterial.setTypeName("生物样本"); // 检材类型
|
|
|
|
|
entrustmentIdentificationMaterial.setQuantity(new BigDecimal(50)); // 检材重量
|
|
|
|
|
entrustmentIdentificationMaterial.setUnit("mg"); // 检材重量 单位
|
|
|
|
|
entrustmentIdentificationMaterial.setForm("黑色头发"); // 检材性状
|
|
|
|
|
entrustmentIdentificationMaterial.setFormName("黑色头发"); // 检材性状
|
|
|
|
|
entrustmentIdentificationMaterial.setOrderNo(orderNo); |
|
|
|
|
entrustmentIdentificationMaterial.setImEntrustNumber(String.valueOf(orderNo)); |
|
|
|
|
// 叠加
|
|
|
|
|
orderNo++; |
|
|
|
|
entrustmentIdentificationMaterial.setPackComplete(true); //
|
|
|
|
|
entrustmentIdentificationMaterial.setRtSampleQuantity(0); // 留存样个数 ->
|
|
|
|
|
entrustmentIdentificationMaterial.setDrawTime(LocalDateTime.now()); // 提取时间 -> 当前时间
|
|
|
|
|
entrustmentIdentificationMaterial.setAnalysisOption(AnalysisOptionEnums.QUALITATIVE.getCode()); // 默认设置检测项目 -> 定性
|
|
|
|
|
// 设置检材编号
|
|
|
|
|
entrustmentIdentificationMaterialService.setMaterialIdentificationNo(entrustmentIdentificationMaterial, cj); |
|
|
|
|
entrustmentIdentificationMaterial.setSample1No(sampleService.getNewSampleNo(entrustmentIdentificationMaterial.getImNo(), 1)); |
|
|
|
|
entrustmentIdentificationMaterialList.add(entrustmentIdentificationMaterial); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|