diff --git a/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/TestRecordSampleDataServiceImpl.java b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/TestRecordSampleDataServiceImpl.java index b731e8b..8e1d39b 100644 --- a/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/TestRecordSampleDataServiceImpl.java +++ b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/TestRecordSampleDataServiceImpl.java @@ -9,7 +9,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; -import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -20,13 +19,13 @@ import digital.laboratory.platform.common.core.util.R; import digital.laboratory.platform.common.mybatis.security.service.DLPUser; import digital.laboratory.platform.comservice.entity.DlpDictData; import digital.laboratory.platform.comservice.feign.RemoteDictDataService; +import digital.laboratory.platform.inspection.constant.TestRecordSampleDataConstant; import digital.laboratory.platform.inspection.convert.TestRecordSampleDataConverter; +import digital.laboratory.platform.inspection.dto.*; +import digital.laboratory.platform.inspection.entity.*; import digital.laboratory.platform.inspection.enums.BusinessType; import digital.laboratory.platform.inspection.enums.StdSolutionNum; import digital.laboratory.platform.inspection.enums.TaskTestDataStatus; -import digital.laboratory.platform.inspection.constant.TestRecordSampleDataConstant; -import digital.laboratory.platform.inspection.dto.*; -import digital.laboratory.platform.inspection.entity.*; import digital.laboratory.platform.inspection.event.AuditDataExecutionEvent; import digital.laboratory.platform.inspection.event.FinishTestExecutionEvent; import digital.laboratory.platform.inspection.mapper.SampleInjectorMapper; @@ -43,7 +42,6 @@ import digital.laboratory.platform.inspetion.api.entity.SampleInfo; import digital.laboratory.platform.inspetion.api.entity.TestRecord; import digital.laboratory.platform.sys.entity.Drug; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -56,7 +54,6 @@ import java.text.DecimalFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; diff --git a/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/TestRecordSampledataExpandServiceImpl.java b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/TestRecordSampledataExpandServiceImpl.java index ddf393f..2767be0 100644 --- a/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/TestRecordSampledataExpandServiceImpl.java +++ b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/TestRecordSampledataExpandServiceImpl.java @@ -5,14 +5,14 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import digital.laboratory.platform.inspection.convert.TestSampleDataExpandConverter; -import digital.laboratory.platform.inspection.dto.TestSampleDataExpandDTO; -import digital.laboratory.platform.inspection.entity.TestRecordSampleData; -import digital.laboratory.platform.inspection.enums.BusinessType; import digital.laboratory.platform.inspection.constant.TestRecordSampleDataConstant; +import digital.laboratory.platform.inspection.convert.TestSampleDataExpandConverter; import digital.laboratory.platform.inspection.dto.HairSewageDataDto; import digital.laboratory.platform.inspection.dto.NPSCaseTestDataDto; +import digital.laboratory.platform.inspection.dto.TestSampleDataExpandDTO; +import digital.laboratory.platform.inspection.entity.TestRecordSampleData; import digital.laboratory.platform.inspection.entity.TestRecordSampleDataExpand; +import digital.laboratory.platform.inspection.enums.BusinessType; import digital.laboratory.platform.inspection.mapper.TestRecordSampleDataExpandMapper; import digital.laboratory.platform.inspection.service.ProcessInspectDataService; import digital.laboratory.platform.inspection.service.TestRecordSampleDataService; @@ -27,7 +27,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; /** @@ -259,13 +258,20 @@ public class TestRecordSampledataExpandServiceImpl extends ServiceImpl { - if (stdDataExpand.getMassToChargeRatio().equals(sampleDataExpand.getMassToChargeRatio())) { + boolean matched = false; // 匹配对应的标准物质数据 + boolean isNPSCase = testRecord.getBusinessType().equals(BusinessType.NPS_CASE.getBusinessType()); // 是否是常规毒品案件 + if (isNPSCase) { + matched = stdDataExpand.getMassToChargeRatio().equals(sampleDataExpand.getMassToChargeRatio()); + } else { + matched = stdDataExpand.getQualitativeIonPair().equals(sampleDataExpand.getQualitativeIonPair()); + } + if (matched) { BigDecimal ionAbundanceRatioError = sampleDataExpand.getIonAbundanceRatio() .subtract(stdDataExpand.getIonAbundanceRatio()) .divide(stdDataExpand.getIonAbundanceRatio(), 5, BigDecimal.ROUND_HALF_UP) .multiply(BigDecimal.valueOf(100)); sampleDataExpand.setIonAbundanceRatioError(ionAbundanceRatioError); - if (testRecord.getBusinessType().equals(BusinessType.NPS_CASE.getBusinessType())) { + if (isNPSCase) { sampleDataExpand.setIonAbundanceRatioWithinError(processInspectDataService.getWithinErrorText(ionAbundanceRatioError, processInspectDataService.getErrorRange(sampleDataExpand.getIonAbundanceRatio()))); } else { sampleDataExpand.setIonAbundanceRatioWithinError(processInspectDataService.calculateHairCaseIonAbundanceRatioWithinError(ionAbundanceRatioError.doubleValue(), stdDataExpand.getIonAbundanceRatio().doubleValue())); diff --git a/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/vo/TestRecordSampleDataVO.java b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/vo/TestRecordSampleDataVO.java index 5c88d0e..d04ea21 100644 --- a/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/vo/TestRecordSampleDataVO.java +++ b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/vo/TestRecordSampleDataVO.java @@ -1,7 +1,6 @@ package digital.laboratory.platform.inspection.vo; import digital.laboratory.platform.inspection.constant.TestRecordSampleDataConstant; -import digital.laboratory.platform.inspection.entity.TestRecordSampleDataExpand; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -93,4 +92,29 @@ public class TestRecordSampleDataVO { public BigDecimal getRtTimeError() { return rtTimeError != null ? rtTimeError.setScale(3, RoundingMode.HALF_UP) : null; } + + /** + * 该getter方法因为生物样本的丰度比只有一个,为前端显示而添加 + * + * @return + */ + public BigDecimal getIonAbundanceRatioError() { + return expandList.get(1).getIonAbundanceRatioError(); + } + + /** + * 该getter方法因为生物样本的丰度比只有一个,为前端显示而添加 + * + * @return + */ + public BigDecimal getIonAbundanceRatio() { + return expandList.get(1).getIonAbundanceRatio(); + } + + /** + * 离子丰度比偏差是否在误差范围内 + */ + public String getIonAbundanceRatioWithinError() { + return expandList.get(1).getIonAbundanceRatioWithinError(); + } }