|
|
|
@ -1,9 +1,11 @@ |
|
|
|
|
package digital.laboratory.platform.entrustment.service.impl; |
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
|
|
|
|
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.EntrustMaterialCheckoutResult; |
|
|
|
|
import digital.laboratory.platform.entrustment.entity.Entrustment; |
|
|
|
|
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial; |
|
|
|
|
import digital.laboratory.platform.entrustment.enums.AnalysisOptionEnums; |
|
|
|
@ -15,7 +17,6 @@ import digital.laboratory.platform.sys.enums.entrust.EntrustBiologyType; |
|
|
|
|
import digital.laboratory.platform.sys.feign.RemoteCommDrugService; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
import java.math.BigDecimal; |
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
@ -49,6 +50,9 @@ public class ExcelUploadServiceImpl implements ExcelUploadService { |
|
|
|
|
@Resource |
|
|
|
|
private RemoteCommDrugService remoteCommDrugService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private EntrustMaterialCheckoutResultService entrustMaterialCheckoutResultService; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 上传两社人员名单excel文件 |
|
|
|
|
* |
|
|
|
@ -68,6 +72,7 @@ public class ExcelUploadServiceImpl implements ExcelUploadService { |
|
|
|
|
throw new CheckedException("当前不支持两社人员之外的委托信息进行导入!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 校验案件信息是否合法
|
|
|
|
|
CaseEvent cj = caseEventService.validateCaseInfo(entrustment.getCaseId()); |
|
|
|
|
// 默认取海洛因的毒品信息
|
|
|
|
@ -76,11 +81,17 @@ public class ExcelUploadServiceImpl implements ExcelUploadService { |
|
|
|
|
R<List<DrugLite>> innerGetAllR = remoteCommDrugService.innerGetAll(); // 获取所有的毒品信息
|
|
|
|
|
List<DrugLite> drugLiteList = innerGetAllR.getData(); |
|
|
|
|
Map<String, DrugLite> drugLiteMap = drugLiteList.stream().collect(Collectors.toMap(DrugLite::getName, Function.identity())); |
|
|
|
|
// 防止检材列表
|
|
|
|
|
// 防止检材列表d
|
|
|
|
|
List<EntrustmentIdentificationMaterial> entrustmentIdentificationMaterialList = new ArrayList<>(); |
|
|
|
|
// 读取excel数据
|
|
|
|
|
List<Map<String, String>> data = ExcelUtils.readExcel(file); |
|
|
|
|
int orderNo = 1; |
|
|
|
|
// 表头从第一行后开始读取
|
|
|
|
|
int headIndex = 1; |
|
|
|
|
List<Map<String, String>> data = ExcelUtils.readExcel(file, headIndex); |
|
|
|
|
int orderNo = entrustmentIdentificationMaterialService.lambdaQuery() |
|
|
|
|
.eq(EntrustmentIdentificationMaterial::getEntrustmentId, entrustId) |
|
|
|
|
.list() |
|
|
|
|
.size() + 1; |
|
|
|
|
List<EntrustMaterialCheckoutResult> results = new ArrayList<>(); |
|
|
|
|
for (Map<String, String> datum : data) { |
|
|
|
|
EntrustmentIdentificationMaterial entrustmentIdentificationMaterial = new EntrustmentIdentificationMaterial(); |
|
|
|
|
entrustmentIdentificationMaterial.setEntrustmentId(entrustment.getId()); |
|
|
|
@ -91,7 +102,17 @@ public class ExcelUploadServiceImpl implements ExcelUploadService { |
|
|
|
|
entrustmentIdentificationMaterial.setMaterialAge(Integer.valueOf(datum.get("年龄"))); |
|
|
|
|
entrustmentIdentificationMaterial.setRemark(datum.get("身份证号")); |
|
|
|
|
entrustmentIdentificationMaterial.setDrawPlace(datum.get("采样单位")); |
|
|
|
|
entrustmentIdentificationMaterial.setCandidateDrugs(CollUtil.newArrayList(drugLiteMap.containsKey(datum.get("曾吸毒种类")) ? drugLiteMap.get(datum.get("曾吸毒种类")) : heroin)); |
|
|
|
|
entrustmentIdentificationMaterial.setCandidateDrugs(CollUtil.newArrayList(drugLiteMap.containsKey(datum.get("检测结果")) ? drugLiteMap.get(datum.get("检测结果")) : heroin)); |
|
|
|
|
entrustmentIdentificationMaterial.setId(IdWorker.get32UUID().toUpperCase()); |
|
|
|
|
|
|
|
|
|
List<DrugLite> candidateDrugs = entrustmentIdentificationMaterial.getCandidateDrugs(); |
|
|
|
|
if (candidateDrugs.size() > 0) { |
|
|
|
|
EntrustMaterialCheckoutResult result = new EntrustMaterialCheckoutResult(); |
|
|
|
|
result.setId(entrustmentIdentificationMaterial.getId()); |
|
|
|
|
result.setQualitativeResult(JSON.toJSONString(candidateDrugs)); |
|
|
|
|
result.setEntrustId(entrustId); |
|
|
|
|
results.add(result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 设置默认值
|
|
|
|
|
entrustmentIdentificationMaterial.setBiologyType(EntrustBiologyType.HAIR.getDesc()); // 生物样本检材类型
|
|
|
|
@ -114,7 +135,6 @@ public class ExcelUploadServiceImpl implements ExcelUploadService { |
|
|
|
|
entrustmentIdentificationMaterial.setSample1No(sampleService.getNewSampleNo(entrustmentIdentificationMaterial.getImNo(), 1)); |
|
|
|
|
entrustmentIdentificationMaterialList.add(entrustmentIdentificationMaterial); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return entrustmentIdentificationMaterialService.saveBatch(entrustmentIdentificationMaterialList); |
|
|
|
|
return entrustmentIdentificationMaterialService.saveBatch(entrustmentIdentificationMaterialList) && entrustMaterialCheckoutResultService.saveBatch(results); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|