20250819 更新
1.处理导入两社人员的时候,未知毒品自动存入数据库中
This commit is contained in:
@@ -3,6 +3,7 @@ package digital.laboratory.platform.entrustment.service.impl;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import digital.laboratory.platform.common.core.constant.CommonConstants;
|
||||||
import digital.laboratory.platform.common.core.exception.CheckedException;
|
import digital.laboratory.platform.common.core.exception.CheckedException;
|
||||||
import digital.laboratory.platform.common.core.util.R;
|
import digital.laboratory.platform.common.core.util.R;
|
||||||
import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
|
import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
|
||||||
@@ -136,6 +137,26 @@ public class ExcelOperationServiceImpl implements ExcelOperationService {
|
|||||||
List<EntrustmentIdentificationMaterial> entrustmentIdentificationMaterialList = new ArrayList<>();
|
List<EntrustmentIdentificationMaterial> entrustmentIdentificationMaterialList = new ArrayList<>();
|
||||||
|
|
||||||
// 4. 遍历Excel数据行,构建检材与检测结果
|
// 4. 遍历Excel数据行,构建检材与检测结果
|
||||||
|
processExcelDataToMaterialEntity(data, entrustment, drugLiteMap, orderNo, cj, entrustmentIdentificationMaterialList);
|
||||||
|
// entrustMaterialCheckoutResultService.saveBatch(results);
|
||||||
|
boolean isSave = entrustmentIdentificationMaterialService.saveBatch(entrustmentIdentificationMaterialList);
|
||||||
|
String entrustReq = entrustmentService.buildEntrustReq(entrustmentIdentificationMaterialList);
|
||||||
|
entrustment.setEntrustRequirement(entrustReq);
|
||||||
|
entrustmentService.updateById(entrustment);
|
||||||
|
// 5. 批量保存检材信息和检测结果
|
||||||
|
return isSave;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理Excel数据,构建检材对象并设置相关属性
|
||||||
|
* @param data Excel数据列表
|
||||||
|
* @param entrustment 委托信息对象
|
||||||
|
* @param drugLiteMap 毒品名称映射表
|
||||||
|
* @param orderNo 检材序号起始值
|
||||||
|
* @param cj 案件信息对象
|
||||||
|
* @param entrustmentIdentificationMaterialList 检材列表对象集合
|
||||||
|
*/
|
||||||
|
private void processExcelDataToMaterialEntity(List<Map<String, String>> data, Entrustment entrustment, Map<String, DrugLite> drugLiteMap, int orderNo, CaseEvent cj, List<EntrustmentIdentificationMaterial> entrustmentIdentificationMaterialList) {
|
||||||
for (Map<String, String> datum : data) {
|
for (Map<String, String> datum : data) {
|
||||||
// 构建检材对象
|
// 构建检材对象
|
||||||
EntrustmentIdentificationMaterial material = new EntrustmentIdentificationMaterial();
|
EntrustmentIdentificationMaterial material = new EntrustmentIdentificationMaterial();
|
||||||
@@ -160,16 +181,23 @@ public class ExcelOperationServiceImpl implements ExcelOperationService {
|
|||||||
if (drugs.length == 0 || (drugs.length == 1 && drugs[0].trim().isEmpty())) {
|
if (drugs.length == 0 || (drugs.length == 1 && drugs[0].trim().isEmpty())) {
|
||||||
matchedDrugs.add(drugLiteMap.get("海洛因"));
|
matchedDrugs.add(drugLiteMap.get("海洛因"));
|
||||||
} else {
|
} else {
|
||||||
boolean matched = false;
|
|
||||||
for (String drugName : drugs) {
|
for (String drugName : drugs) {
|
||||||
if (drugLiteMap.containsKey(drugName)) {
|
if (drugLiteMap.containsKey(drugName)) {
|
||||||
matchedDrugs.add(drugLiteMap.get(drugName));
|
matchedDrugs.add(drugLiteMap.get(drugName));
|
||||||
matched = true;
|
} else {
|
||||||
|
// 未匹配到任何已知毒品,则调用接口保存
|
||||||
|
DrugLite newDrug = new DrugLite();
|
||||||
|
newDrug.setId(IdWorker.get32UUID().toUpperCase());
|
||||||
|
newDrug.setName(drugName);
|
||||||
|
R<Boolean> booleanR = remoteCommDrugService.innerSaveDrug(newDrug);
|
||||||
|
if (booleanR.getCode() == CommonConstants.FAIL) {
|
||||||
|
throw new CheckedException("新增未知毒品失败!");
|
||||||
|
}
|
||||||
|
// 更新缓存 Map,避免重复插入
|
||||||
|
drugLiteMap.put(drugName, newDrug);
|
||||||
|
matchedDrugs.add(newDrug);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!matched) {
|
|
||||||
matchedDrugs.add(drugLiteMap.get("海洛因"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
material.setCandidateDrugs(matchedDrugs);
|
material.setCandidateDrugs(matchedDrugs);
|
||||||
|
|
||||||
@@ -194,13 +222,6 @@ public class ExcelOperationServiceImpl implements ExcelOperationService {
|
|||||||
|
|
||||||
entrustmentIdentificationMaterialList.add(material);
|
entrustmentIdentificationMaterialList.add(material);
|
||||||
}
|
}
|
||||||
// entrustMaterialCheckoutResultService.saveBatch(results);
|
|
||||||
boolean isSave = entrustmentIdentificationMaterialService.saveBatch(entrustmentIdentificationMaterialList);
|
|
||||||
String entrustReq = entrustmentService.buildEntrustReq(entrustmentIdentificationMaterialList);
|
|
||||||
entrustment.setEntrustRequirement(entrustReq);
|
|
||||||
entrustmentService.updateById(entrustment);
|
|
||||||
// 5. 批量保存检材信息和检测结果
|
|
||||||
return isSave;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user