结果判定

This commit is contained in:
2025-10-16 14:52:02 +08:00
parent 7fd6bb5e29
commit 0dd61c6867
5 changed files with 55 additions and 18 deletions

View File

@@ -37,9 +37,9 @@ public class SampleAnalysisAuditController {
} }
@GetMapping("/getSampleResultAssessmentList") @GetMapping("/getSampleResultAssessmentList")
public CommonResult<JSONObject> getSampleResultAssessmentList(Long configAssayMethodId) { public CommonResult<JSONObject> getSampleResultAssessmentList(Long configAssayMethodId, String assessmentStatus) {
JSONObject result = sampleAnalysisAuditService.getSampleResultAssessmentList(configAssayMethodId); JSONObject result = sampleAnalysisAuditService.getSampleResultAssessmentList(configAssayMethodId, assessmentStatus);
return success(result); return success(result);
} }

View File

@@ -75,7 +75,7 @@ public class BusinessSubSampleAssessmentDO extends BusinessBaseDO {
/** /**
* 判定值 * 判定值
*/ */
@TableField("ASMT_VAL") @TableField(value = "ASMT_VAL", updateStrategy = FieldStrategy.ALWAYS)
private String assessmentValue; private String assessmentValue;
/** /**
* 判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差 * 判定状态in_progress-进行中 normal-正常exceeds_tolerance-超差

View File

@@ -54,8 +54,14 @@ public interface BusinessSubSampleAssessmentMapper extends BaseMapperX<BusinessS
.selectAs(DictionaryProjectDO::getSimpleName, BusinessSubSampleAssessmentExtendRespVO::getSimpleName) .selectAs(DictionaryProjectDO::getSimpleName, BusinessSubSampleAssessmentExtendRespVO::getSimpleName)
.selectAs(DictionaryProjectDO::getShowName, BusinessSubSampleAssessmentExtendRespVO::getShowName) .selectAs(DictionaryProjectDO::getShowName, BusinessSubSampleAssessmentExtendRespVO::getShowName)
.eq(BusinessSubSampleAssessmentDO::getBusinessSubSampleId, businessSubSampleId) .eq(BusinessSubSampleAssessmentDO::getBusinessSubSampleId, businessSubSampleId)
.eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId) .eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId));
); }
default BusinessSubSampleAssessmentDO selectByBusinessSubSampleIdAndConfigAssayMethodIdAndConfigAssayMethodProjectId(Long businessSubSampleId, Long configAssayMethodId, Long configAssayMethodProjectId) {
return selectOne(new LambdaQueryWrapperX<BusinessSubSampleAssessmentDO>()
.eq(BusinessSubSampleAssessmentDO::getBusinessSubSampleId, businessSubSampleId)
.eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId)
.eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodProjectId, configAssayMethodProjectId));
} }
} }

View File

@@ -18,7 +18,7 @@ public interface SampleAnalysisAuditService {
void crossAuditByByTaskId(Long businessAssayTaskId, String auditStatus); void crossAuditByByTaskId(Long businessAssayTaskId, String auditStatus);
JSONObject getSampleResultAssessmentList(Long configAssayMethodId); JSONObject getSampleResultAssessmentList(Long configAssayMethodId, String assessmentStatus);
JSONObject getParallelResultAssessment(Long businessSubSampleId, Long configAssayMethodId); JSONObject getParallelResultAssessment(Long businessSubSampleId, Long configAssayMethodId);

View File

@@ -106,7 +106,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
private ConfigAssayMethodProjectMapper configAssayMethodProjectMapper; private ConfigAssayMethodProjectMapper configAssayMethodProjectMapper;
@Override @Override
public JSONObject getSampleResultAssessmentList(Long configAssayMethodId) { public JSONObject getSampleResultAssessmentList(Long configAssayMethodId, String assessmentStatus) {
List<ConfigAssayMethodProjectExtendRespVO> configAssayMethodProjectDOList = configAssayMethodProjectMapper.selectByConfigAssayMethodId(configAssayMethodId); List<ConfigAssayMethodProjectExtendRespVO> configAssayMethodProjectDOList = configAssayMethodProjectMapper.selectByConfigAssayMethodId(configAssayMethodId);
List<Map<String, Object>> columnList = new ArrayList<>(); List<Map<String, Object>> columnList = new ArrayList<>();
// columnList.add(new HashMap<String, Object>() {{ // columnList.add(new HashMap<String, Object>() {{
@@ -163,14 +163,16 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
Map<String,Object> businessAssayTaskDataAssessmentMap = BeanUtil.copyProperties(businessAssayTaskDataMap, Map.class); Map<String,Object> businessAssayTaskDataAssessmentMap = BeanUtil.copyProperties(businessAssayTaskDataMap, Map.class);
businessAssayTaskDataAssessmentMap.put("assayOperator", "判定结果"); businessAssayTaskDataAssessmentMap.put("assayOperator", "判定结果");
businessAssayTaskDataAssessmentMap.put("reportTime", null); businessAssayTaskDataAssessmentMap.put("reportTime", null);
businessAssayTaskDataAssessmentMap.put("assessmentStatus", QmsCommonConstant.IN_PROGRESS);
boolean isExis = dataList.stream().anyMatch(f -> //查询是否已添加过判定记录
Map<String,Object> assessmentMap = dataList.stream().filter(f ->
Objects.equals(businessAssayTaskDataExtendRespVO.getBusinessSubSampleId(), f.get("businessSubSampleId")) && Objects.equals(businessAssayTaskDataExtendRespVO.getBusinessSubSampleId(), f.get("businessSubSampleId")) &&
Objects.equals(businessAssayTaskDataExtendRespVO.getConfigAssayMethodId(), f.get("configAssayMethodId")) && Objects.equals(businessAssayTaskDataExtendRespVO.getConfigAssayMethodId(), f.get("configAssayMethodId")) &&
"判定结果".equals(f.get("assayOperator")) "判定结果".equals(f.get("assayOperator"))
); ).findFirst().orElse(null);
if (!isExis) { //为空则未添加过判定记录
if (assessmentMap == null) {
if ("平行".equals(businessAssayTaskDataExtendRespVO.getAssayType())) { if ("平行".equals(businessAssayTaskDataExtendRespVO.getAssayType())) {
List<BusinessSubSampleAssessmentExtendRespVO> businessSubSampleAssessmentList = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdAndConfigAssayMethodId(businessAssayTaskDataExtendRespVO.getBusinessSubSampleId(), configAssayMethodId); List<BusinessSubSampleAssessmentExtendRespVO> businessSubSampleAssessmentList = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdAndConfigAssayMethodId(businessAssayTaskDataExtendRespVO.getBusinessSubSampleId(), configAssayMethodId);
for (BusinessSubSampleAssessmentExtendRespVO businessSubSampleAssessment : businessSubSampleAssessmentList) { for (BusinessSubSampleAssessmentExtendRespVO businessSubSampleAssessment : businessSubSampleAssessmentList) {
@@ -183,17 +185,25 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
//businessTeamAssessmentMapper.selectBy //businessTeamAssessmentMapper.selectBy
} }
dataList.add(businessAssayTaskDataAssessmentMap); dataList.add(businessAssayTaskDataAssessmentMap);
//赋值
assessmentMap = businessAssayTaskDataAssessmentMap;
} }
List<BusinessAssayProjectDataExtendRespVO> businessAssayProjectDataList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataId(businessAssayTaskDataExtendRespVO.getId()); List<BusinessAssayProjectDataExtendRespVO> businessAssayProjectDataList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataId(businessAssayTaskDataExtendRespVO.getId());
for (BusinessAssayProjectDataExtendRespVO businessAssayProjectData : businessAssayProjectDataList) { for (BusinessAssayProjectDataExtendRespVO businessAssayProjectData : businessAssayProjectDataList) {
businessAssayTaskDataMap.put(businessAssayProjectData.getSimpleName(), businessAssayProjectData.getValue()); businessAssayTaskDataMap.put(businessAssayProjectData.getSimpleName(), businessAssayProjectData.getValue());
//添加判定状态
businessAssayTaskDataMap.put("assessmentStatus", assessmentMap.get("assessmentStatus"));
} }
dataList.add(businessAssayTaskDataMap); dataList.add(businessAssayTaskDataMap);
} }
if (StringUtils.isNotBlank(assessmentStatus)) {
dataList = dataList.stream().filter(f -> assessmentStatus.equals(f.get("assessmentStatus"))).collect(Collectors.toList());
}
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put("columns", columnList); json.put("columns", columnList);
@@ -268,7 +278,8 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
List<BusinessTeamAssessmentDO> businessTeamAssessmentDOList = new ArrayList<>(); List<BusinessTeamAssessmentDO> businessTeamAssessmentDOList = new ArrayList<>();
//平行样判定记录 //平行样判定记录
List<BusinessSubSampleAssessmentDO> businessSubSampleAssessmentDOList = new ArrayList<>(); List<BusinessSubSampleAssessmentDO> saveBusinessSubSampleAssessmentDOList = new ArrayList<>();
List<BusinessSubSampleAssessmentDO> updateBusinessSubSampleAssessmentDOList = new ArrayList<>();
BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectById(businessAssayTaskId); BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectById(businessAssayTaskId);
if (QmsCommonConstant.APPROVE.equals(auditStatus)) { if (QmsCommonConstant.APPROVE.equals(auditStatus)) {
@@ -310,9 +321,17 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
List<BusinessAssayProjectDataDO> val1 = businessAssayProjectDataDOEntry.getValue(); List<BusinessAssayProjectDataDO> val1 = businessAssayProjectDataDOEntry.getValue();
BusinessAssayProjectDataDO businessAssayProjectDataDO = val1.get(0); BusinessAssayProjectDataDO businessAssayProjectDataDO = val1.get(0);
List<ConfigAssayMethodProjectAssessmentDO> configAssayMethodProjectAssessmentDOList = configAssayMethodProjectAssessmentMapper.selectList(new LambdaQueryWrapperX<ConfigAssayMethodProjectAssessmentDO>().eq(ConfigAssayMethodProjectAssessmentDO::getConfigAssayMethodId, businessAssayTaskDataDO.getConfigAssayMethodId()).eq(ConfigAssayMethodProjectAssessmentDO::getConfigAssayMethodProjectId, businessAssayProjectDataDO.getConfigAssayMethodProjectId())); List<ConfigAssayMethodProjectAssessmentDO> configAssayMethodProjectAssessmentDOList = configAssayMethodProjectAssessmentMapper.selectList(new LambdaQueryWrapperX<ConfigAssayMethodProjectAssessmentDO>().eq(ConfigAssayMethodProjectAssessmentDO::getConfigAssayMethodId, businessAssayTaskDataDO.getConfigAssayMethodId()).eq(ConfigAssayMethodProjectAssessmentDO::getConfigAssayMethodProjectId, businessAssayProjectDataDO.getConfigAssayMethodProjectId()));
//查询判定结果数据
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdAndConfigAssayMethodIdAndConfigAssayMethodProjectId(businessSubSampleId, businessAssayTaskDataDO.getConfigAssayMethodId(), businessAssayProjectDataDO.getConfigAssayMethodProjectId());
if (businessSubSampleAssessmentDO == null) {
businessSubSampleAssessmentDO = new BusinessSubSampleAssessmentDO();
saveBusinessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO);
} else {
updateBusinessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO);
}
//判定结果数据
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = new BusinessSubSampleAssessmentDO();
businessSubSampleAssessmentDO.setBusinessSubSampleId(businessSubSampleId); businessSubSampleAssessmentDO.setBusinessSubSampleId(businessSubSampleId);
businessSubSampleAssessmentDO.setConfigAssayMethodId(businessAssayTaskDataDO.getConfigAssayMethodId()); businessSubSampleAssessmentDO.setConfigAssayMethodId(businessAssayTaskDataDO.getConfigAssayMethodId());
businessSubSampleAssessmentDO.setConfigAssayMethodProjectId(businessAssayProjectDataDO.getConfigAssayMethodProjectId()); businessSubSampleAssessmentDO.setConfigAssayMethodProjectId(businessAssayProjectDataDO.getConfigAssayMethodProjectId());
@@ -359,10 +378,10 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
BigDecimal diff = sortedValues.get(i + 1).subtract(sortedValues.get(i)).abs(); BigDecimal diff = sortedValues.get(i + 1).subtract(sortedValues.get(i)).abs();
if (diff.compareTo(allowValue) > 0) { if (diff.compareTo(allowValue) > 0) {
businessSubSampleAssessmentDO.setAssessmentStatus(QmsCommonConstant.EXCEEDS_TOLERANCE); businessSubSampleAssessmentDO.setAssessmentStatus(QmsCommonConstant.EXCEEDS_TOLERANCE);
break;
} }
} }
businessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO);
} }
@@ -406,8 +425,8 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
businessAssayTaskMapper.updateById(businessAssayTaskDO); businessAssayTaskMapper.updateById(businessAssayTaskDO);
//插入平行判定记录 //插入平行判定记录
if (businessSubSampleAssessmentDOList.size() > 0) { if (saveBusinessSubSampleAssessmentDOList.size() > 0) {
businessSubSampleAssessmentMapper.insertBatch(businessSubSampleAssessmentDOList); businessSubSampleAssessmentMapper.insertBatch(saveBusinessSubSampleAssessmentDOList);
} }
//插入双杯判定记录 //插入双杯判定记录
@@ -654,6 +673,15 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
newBusinessAssayTaskDataDOList.add(newBusinessAssayTaskDataDO); newBusinessAssayTaskDataDOList.add(newBusinessAssayTaskDataDO);
} }
//修改判定状态
//查询判定值
List<BusinessSubSampleAssessmentExtendRespVO> businessSubSampleAssessmentList = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdAndConfigAssayMethodId(businessSubSampleId, configAssayMethodId);
for (BusinessSubSampleAssessmentExtendRespVO businessSubSampleAssessmentExtendRespVO : businessSubSampleAssessmentList) {
businessSubSampleAssessmentExtendRespVO.setAssessmentValue(null);
businessSubSampleAssessmentExtendRespVO.setAssessmentStatus(QmsCommonConstant.IN_PROGRESS);
}
if (newBusinessAssayTaskDataDOList.size() > 0) { if (newBusinessAssayTaskDataDOList.size() > 0) {
businessAssayTaskDataMapper.insertBatch(newBusinessAssayTaskDataDOList); businessAssayTaskDataMapper.insertBatch(newBusinessAssayTaskDataDOList);
} }
@@ -663,7 +691,10 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
if (newBusinessAssayParameterDataDOList.size() > 0) { if (newBusinessAssayParameterDataDOList.size() > 0) {
businessAssayParameterDataMapper.insertBatch(newBusinessAssayParameterDataDOList); businessAssayParameterDataMapper.insertBatch(newBusinessAssayParameterDataDOList);
} }
if (businessSubSampleAssessmentList.size() > 0) {
List<BusinessSubSampleAssessmentDO> businessSubSampleAssessmentDOList = BeanUtil.copyToList(businessSubSampleAssessmentList, BusinessSubSampleAssessmentDO.class);
businessSubSampleAssessmentMapper.updateBatch(businessSubSampleAssessmentDOList);
}
} }