From 587623c8ac82cfd04ec4e87dafef196ae4185647 Mon Sep 17 00:00:00 2001 From: chen <2710907404@qq.com> Date: Tue, 19 Aug 2025 16:47:56 +0800 Subject: [PATCH] =?UTF-8?q?20250819=20=E6=9B=B4=E6=96=B0=201.=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=AF=BC=E5=85=A5=E4=B8=A4=E7=A4=BE=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C=E6=9C=AA=E7=9F=A5=E6=AF=92?= =?UTF-8?q?=E5=93=81=E8=87=AA=E5=8A=A8=E5=AD=98=E5=85=A5=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ExcelOperationServiceImpl.java | 45 ++++++++++++++----- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/impl/ExcelOperationServiceImpl.java b/src/main/java/digital/laboratory/platform/entrustment/service/impl/ExcelOperationServiceImpl.java index 2308b4d..bb35ead 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/impl/ExcelOperationServiceImpl.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/impl/ExcelOperationServiceImpl.java @@ -3,6 +3,7 @@ package digital.laboratory.platform.entrustment.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.IdWorker; 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.util.R; import digital.laboratory.platform.common.mybatis.security.service.DLPUser; @@ -136,6 +137,26 @@ public class ExcelOperationServiceImpl implements ExcelOperationService { List entrustmentIdentificationMaterialList = new ArrayList<>(); // 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> data, Entrustment entrustment, Map drugLiteMap, int orderNo, CaseEvent cj, List entrustmentIdentificationMaterialList) { for (Map datum : data) { // 构建检材对象 EntrustmentIdentificationMaterial material = new EntrustmentIdentificationMaterial(); @@ -160,16 +181,23 @@ public class ExcelOperationServiceImpl implements ExcelOperationService { if (drugs.length == 0 || (drugs.length == 1 && drugs[0].trim().isEmpty())) { matchedDrugs.add(drugLiteMap.get("海洛因")); } else { - boolean matched = false; for (String drugName : drugs) { if (drugLiteMap.containsKey(drugName)) { matchedDrugs.add(drugLiteMap.get(drugName)); - matched = true; + } else { + // 未匹配到任何已知毒品,则调用接口保存 + DrugLite newDrug = new DrugLite(); + newDrug.setId(IdWorker.get32UUID().toUpperCase()); + newDrug.setName(drugName); + R 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); @@ -194,13 +222,6 @@ public class ExcelOperationServiceImpl implements ExcelOperationService { 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; } /**