20250417 更新
This commit is contained in:
@@ -19,7 +19,16 @@ import java.util.Map;
|
||||
* @describe 案件事件服务类
|
||||
*/
|
||||
public interface CaseEventService extends IService<CaseEvent> {
|
||||
|
||||
/**
|
||||
* 校验案件信息是否合法
|
||||
*
|
||||
* @param caseId
|
||||
* @return
|
||||
*/
|
||||
CaseEvent validateCaseInfo(String caseId);
|
||||
|
||||
/**
|
||||
* 按查询条件查询案件VO
|
||||
* @param fromDate
|
||||
* @param toDate
|
||||
|
||||
@@ -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<Entru
|
||||
|
||||
void conformityDrugs(List<EntrustmentIdentificationMaterial> list);
|
||||
|
||||
/**
|
||||
* 设置委托鉴定材料的鉴定编号
|
||||
*
|
||||
* @param identificationMaterial 委托鉴定材料对象
|
||||
* @param cj 案件事件对象
|
||||
*/
|
||||
void setMaterialIdentificationNo(EntrustmentIdentificationMaterial identificationMaterial, CaseEvent cj);
|
||||
|
||||
/**
|
||||
* 处理检材重量四舍五入
|
||||
* 设置检材列表, 对检材的重量进行处理 小于100的保留两位小数,100以上保留一位小数
|
||||
|
||||
@@ -46,17 +46,42 @@ import java.util.Map;
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CaseEventServiceImpl extends ServiceImpl<CaseEventMapper, CaseEvent> 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
|
||||
*
|
||||
|
||||
@@ -1222,7 +1222,7 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl<En
|
||||
|
||||
String entrustmentId = identificationMaterial.getEntrustmentId();
|
||||
// 校验案件信息是否合法
|
||||
CaseEvent cj = validateCaseInfo(identificationMaterial);
|
||||
CaseEvent cj = caseEventService.validateCaseInfo(identificationMaterial.getCaseId());
|
||||
|
||||
////若提前创建好了物证,则关联通过物证编号关联检材编号即可;
|
||||
setMaterialIdentificationNo(identificationMaterial, cj);
|
||||
@@ -1601,7 +1601,8 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl<En
|
||||
* @param identificationMaterial 委托鉴定材料对象
|
||||
* @param cj 案件事件对象
|
||||
*/
|
||||
private void setMaterialIdentificationNo(EntrustmentIdentificationMaterial identificationMaterial, CaseEvent cj) {
|
||||
@Override
|
||||
public void setMaterialIdentificationNo(EntrustmentIdentificationMaterial identificationMaterial, CaseEvent cj) {
|
||||
if (StrUtil.isNotBlank(identificationMaterial.getEvidenceId())) {
|
||||
CaseEvidence caseEvidence = caseEvidenceService.getById(identificationMaterial.getEvidenceId());
|
||||
identificationMaterial.setImNo(this.getNewIdentificationMaterialNo(caseEvidence.getEvidenceNo()));
|
||||
@@ -1613,25 +1614,6 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl<En
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验案件信息是否合法
|
||||
*
|
||||
* @param identificationMaterial
|
||||
* @return
|
||||
*/
|
||||
private CaseEvent validateCaseInfo(EntrustmentIdentificationMaterial identificationMaterial) {
|
||||
if (StrUtil.isBlank(identificationMaterial.getCaseId())) {
|
||||
throw new RuntimeException(String.format("检材必须与某个案件关联, 必须提供 caseId"));
|
||||
}
|
||||
CaseEvent cj = caseEventService.getById(identificationMaterial.getCaseId());
|
||||
if (cj == null) {
|
||||
throw new RuntimeException(String.format("不存在 id 为 %s 的案件", identificationMaterial.getCaseId()));
|
||||
}
|
||||
if (StrUtil.isBlank(cj.getCaseNo())) {
|
||||
throw new RuntimeException(String.format("对应的案件资料不完整, 不存在案件编号。请先完善案件资料"));
|
||||
}
|
||||
return cj;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理检材重量四舍五入
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user