From a7763fbc2b5ead3da9c05dfda416a24580ebaa47 Mon Sep 17 00:00:00 2001 From: chen <2710907404@qq.com> Date: Thu, 17 Apr 2025 11:28:54 +0800 Subject: [PATCH] =?UTF-8?q?20250417=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entrustment/service/CaseEventService.java | 9 ++++ ...rustmentIdentificationMaterialService.java | 9 ++++ .../service/impl/CaseEventServiceImpl.java | 27 ++++++++++- ...mentIdentificationMaterialServiceImpl.java | 24 ++-------- .../service/impl/ExcelUploadServiceImpl.java | 46 ++++++++++++++----- 5 files changed, 82 insertions(+), 33 deletions(-) diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/CaseEventService.java b/src/main/java/digital/laboratory/platform/entrustment/service/CaseEventService.java index 7cdef81..c83f50e 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/CaseEventService.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/CaseEventService.java @@ -19,7 +19,16 @@ import java.util.Map; * @describe 案件事件服务类 */ public interface CaseEventService extends IService { + /** + * 校验案件信息是否合法 + * + * @param caseId + * @return + */ + CaseEvent validateCaseInfo(String caseId); + + /** * 按查询条件查询案件VO * @param fromDate * @param toDate diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/EntrustmentIdentificationMaterialService.java b/src/main/java/digital/laboratory/platform/entrustment/service/EntrustmentIdentificationMaterialService.java index 055cd4f..a0ffa21 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/EntrustmentIdentificationMaterialService.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/EntrustmentIdentificationMaterialService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.IService; import digital.laboratory.platform.common.mybatis.security.service.DLPUser; import digital.laboratory.platform.entrustment.dto.PrintDTO; +import digital.laboratory.platform.entrustment.entity.CaseEvent; import digital.laboratory.platform.entrustment.entity.CaseEvidence; import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial; import digital.laboratory.platform.entrustment.vo.EntrustmentIdentificationMaterialVO; @@ -113,6 +114,14 @@ public interface EntrustmentIdentificationMaterialService extends IService list); + /** + * 设置委托鉴定材料的鉴定编号 + * + * @param identificationMaterial 委托鉴定材料对象 + * @param cj 案件事件对象 + */ + void setMaterialIdentificationNo(EntrustmentIdentificationMaterial identificationMaterial, CaseEvent cj); + /** * 处理检材重量四舍五入 * 设置检材列表, 对检材的重量进行处理 小于100的保留两位小数,100以上保留一位小数 diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/impl/CaseEventServiceImpl.java b/src/main/java/digital/laboratory/platform/entrustment/service/impl/CaseEventServiceImpl.java index 0c52ed4..0925762 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/impl/CaseEventServiceImpl.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/impl/CaseEventServiceImpl.java @@ -46,17 +46,42 @@ import java.util.Map; @Service @RequiredArgsConstructor public class CaseEventServiceImpl extends ServiceImpl implements CaseEventService { + private final CaseEventMapper caseEventMapper; + private final RemoteOrgService remoteOrgService; + private final CaseEvidenceService caseEvidenceService; + @Resource private EntrustmentService entrustmentService; private final OssFile ossFile; - @Resource + @Resource private EntrustmentIdentificationMaterialService entrustmentIdentificationMaterialService; + /** + * 校验案件信息是否合法 + * + * @param caseId + * @return + */ + @Override + public CaseEvent validateCaseInfo(String caseId) { + if (StrUtil.isBlank(caseId)) { + throw new RuntimeException(String.format("检材必须与某个案件关联, 必须提供 caseId")); + } + CaseEvent cj = super.getById(caseId); + if (cj == null) { + throw new RuntimeException(String.format("不存在 id 为 %s 的案件", caseId)); + } + if (StrUtil.isBlank(cj.getCaseNo())) { + throw new RuntimeException(String.format("对应的案件资料不完整, 不存在案件编号。请先完善案件资料")); + } + return cj; + } + /** * 按查询条件查询案件VO * diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java index 44e524c..85c83fb 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java @@ -1222,7 +1222,7 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl drugLiteR = remoteCommDrugService.getByName("海洛因"); DrugLite heroin = drugLiteR.getData(); // 获取默认的海洛因数据 @@ -71,23 +80,38 @@ public class ExcelUploadServiceImpl implements ExcelUploadService { List entrustmentIdentificationMaterialList = new ArrayList<>(); // 读取excel数据 List> data = ExcelUtils.readExcel(file); + int orderNo = 1; for (Map 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); }