Compare commits

...

2 Commits

Author SHA1 Message Date
wxr
5ca2253522 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2025-12-24 18:03:32 +08:00
wxr
76b44686fb 复测及原始记录修改 2025-12-24 18:03:22 +08:00
7 changed files with 86 additions and 23 deletions

View File

@@ -15,6 +15,9 @@ public class BusinessSubParentSampleAssessmentProjectPageReqVO extends PageParam
@Schema(description = "样品分样ID", example = "23188")
private Long businessSubParentSampleId;
@Schema(description = "班组判定数据业务ID")
private Long businessSubParentSampleAssessmentId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", example = "17642")
private Long dictionaryProjectId;

View File

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

View File

@@ -28,6 +28,7 @@ public interface BusinessSubParentSampleAssessmentProjectMapper extends BaseMapp
default PageResult<BusinessSubParentSampleAssessmentProjectDO> selectPage(BusinessSubParentSampleAssessmentProjectPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessSubParentSampleAssessmentProjectDO>()
.eqIfPresent(BusinessSubParentSampleAssessmentProjectDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId())
.eqIfPresent(BusinessSubParentSampleAssessmentProjectDO::getBusinessSubParentSampleAssessmentId, reqVO.getBusinessSubParentSampleAssessmentId())
.eqIfPresent(BusinessSubParentSampleAssessmentProjectDO::getDictionaryProjectId, reqVO.getDictionaryProjectId())
.eqIfPresent(BusinessSubParentSampleAssessmentProjectDO::getConfigAssayMethodProjectId, reqVO.getConfigAssayMethodProjectId())
.eqIfPresent(BusinessSubParentSampleAssessmentProjectDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())
@@ -69,9 +70,16 @@ public interface BusinessSubParentSampleAssessmentProjectMapper extends BaseMapp
.eq(BusinessSubParentSampleAssessmentProjectDO::getConfigAssayMethodId, configAssayMethodId));
}
default List<BusinessSubParentSampleAssessmentProjectDO> selectByBusinessSubParentSampleAssessmentIdAndDictionaryProjectIds(Long businessSubParentSampleAssessmentId, List<Long> recheckDictionaryProjectIdList) {
return selectList(new LambdaQueryWrapper<BusinessSubParentSampleAssessmentProjectDO>()
.eq(BusinessSubParentSampleAssessmentProjectDO::getBusinessSubParentSampleAssessmentId, businessSubParentSampleAssessmentId)
.in(BusinessSubParentSampleAssessmentProjectDO::getDictionaryProjectId, recheckDictionaryProjectIdList));
}
List<NoReportSubParentSampleAssessmentRespVO> selectNoReportSubParentSampleAssessment(@Param("reqVO") BusinessSubParentSampleAssessmentGroupReqVO reqVO);
List<RecheckSubSampleParentMethodRespVO> getRecheckAssayMethodList(@Param("baseSampleId") Long baseSampleId, @Param("businessSubParentSampleId") Long businessSubParentSampleId, @Param("configAssayMethodId") Long configAssayMethodId);
List<RecheckSubSampleParentMethodRespVO> getRecheckAssayMethodList(@Param("baseSampleId") Long baseSampleId, @Param("businessSubParentSampleId") Long businessSubParentSampleId, @Param("configAssayMethodId") Long configAssayMethodId, @Param("assayDepartmentId") Long assayDepartmentId);
}

View File

@@ -28,7 +28,6 @@ import com.alibaba.qlexpress4.QLResult;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.zt.plat.framework.common.exception.ServiceException;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
@@ -37,7 +36,6 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDa
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskParameterDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessBaseSampleDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO;
@@ -71,7 +69,6 @@ import com.zt.plat.module.qms.business.config.controller.vo.*;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectAssessmentDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigRuleDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigSubSampleDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigSubSampleMethodDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigSubSampleParentMethodDO;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectAssessmentMapper;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectMapper;
@@ -479,10 +476,15 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
List<BusinessAssayProjectAndParameterRespVO> projectAndParameterList2 = businessAssayProjectDataMapper.selectProjectAndParameterBy(projectDataSearch2);
for (BusinessAssayProjectAndParameterRespVO ep : projectAndParameterList2) {
HashedMap<String, Object> newMap = SerializationUtils.clone(map);
String projectSymbol = "";
if (StringUtils.isNotBlank(ep.getSymbol()) && !"=".equals(ep.getSymbol())) {
projectSymbol = ep.getSymbol();
}
// newMap.put(ep.getName(), ep.getValue());
newMap.put("projectName", ep.getName());
newMap.put("projectValue", ep.getValue());
newMap.put("projectSymbol", ep.getSymbol());
newMap.put("projectSymbol", projectSymbol);
newMap.put("projectUnit", ep.getUnit());
if (StringUtils.isNotEmpty(ep.getFormula())) {
BusinessAssayParameterDataReqVO parameterDataSearch = new BusinessAssayParameterDataReqVO();
parameterDataSearch.setBusinessAssayProjectDataId(ep.getId());
@@ -529,10 +531,15 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
List<BusinessAssayProjectAndParameterRespVO> projectAndParameterList2 = businessQCManagementProjectDataMapper.selectProjectAndParameterBy(projectDataSearch2);
for (BusinessAssayProjectAndParameterRespVO ep : projectAndParameterList2) {
HashedMap<String, Object> newMap = SerializationUtils.clone(map);
String projectSymbol = "";
if (StringUtils.isNotBlank(ep.getSymbol()) && !"=".equals(ep.getSymbol())) {
projectSymbol = ep.getSymbol();
}
// newMap.put(ep.getName(), ep.getValue());
newMap.put("projectName", ep.getName());
newMap.put("projectValue", ep.getValue());
newMap.put("projectSymbol", ep.getSymbol());
newMap.put("projectSymbol", projectSymbol);
newMap.put("projectUnit", ep.getUnit());
if (StringUtils.isNotEmpty(ep.getFormula())) {
BusinessQCManagementParameterDataReqVO parameterDataSearch = new BusinessQCManagementParameterDataReqVO();
parameterDataSearch.setBusinessQCManagementProjectDataId(ep.getId());
@@ -567,11 +574,16 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
parameterDataSearch2.setBusinessQCCoefficientDataId(businessQCCoefficientData.getId());
List<BusinessAssayProjectAndParameterRespVO> plist2 = businessQCCoefficientParameterDataMapper.selectProjectAndParameterBy(parameterDataSearch2);
for (BusinessAssayProjectAndParameterRespVO p : plist2) {
String projectSymbol = "";
if (StringUtils.isNotBlank(p.getSymbol()) && !"=".equals(p.getSymbol())) {
projectSymbol = p.getSymbol();
}
//map.put(p.getName(), p.getValue());
HashedMap<String, Object> newMap = SerializationUtils.clone(map);
newMap.put("projectName", p.getName());
newMap.put("projectValue", p.getValue());
newMap.put("projectSymbol", p.getSymbol());
newMap.put("projectSymbol", projectSymbol);
newMap.put("projectUnit", p.getUnit());
datas.add(map);
}
}

View File

@@ -725,7 +725,14 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
}
}
//处理已查询的数据
BusinessAssayProjectAndParameterRespVO businessAssayProjectAndParameterRespVO = businessAssayParameterDataList.stream().filter(f -> f.getBizId().equals(businessAssayParameterDataDO.getId())).findFirst().orElse(null);
if (businessAssayProjectAndParameterRespVO != null) {
businessAssayProjectAndParameterRespVO.setValue(businessAssayParameterDataDO.getValue());
}
//更新
businessAssayParameterDataMapper.updateById(businessAssayParameterDataDO);
}
}

View File

@@ -22,7 +22,9 @@ import com.alibaba.qlexpress4.QLOptions;
import com.alibaba.qlexpress4.QLResult;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.zt.plat.framework.common.exception.ServiceException;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.security.core.LoginUser;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
import com.zt.plat.module.qms.business.bus.controller.vo.BatchResultDataReportingReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubParentSampleAssessmentProjectExtendRespVO;
@@ -262,8 +264,9 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
@Override
public List<RecheckSubSampleParentMethodRespVO> getRecheckAssayMethodList(Long baseSampleId, Long businessSubParentSampleId, Long configAssayMethodId) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
//查询检查项目
List<RecheckSubSampleParentMethodRespVO> list = businessSubParentSampleAssessmentProjectMapper.getRecheckAssayMethodList(baseSampleId, businessSubParentSampleId, configAssayMethodId);
List<RecheckSubSampleParentMethodRespVO> list = businessSubParentSampleAssessmentProjectMapper.getRecheckAssayMethodList(baseSampleId, businessSubParentSampleId, configAssayMethodId, loginUser.getVisitDeptId());
//过滤默认的
List<RecheckSubSampleParentMethodRespVO> resultList = list.stream().filter(f -> f.getIsRecheckDefault() != null && f.getIsRecheckDefault().equals(QmsCommonConstant.YES)).collect(Collectors.toList());
for (RecheckSubSampleParentMethodRespVO recheckSubSampleParentMethodRespVO : resultList) {
@@ -314,6 +317,22 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
List<BusinessAssayParameterDataDO> newBusinessAssayParameterDataDOList = new ArrayList<>();
List<BusinessSubSampleParentRecheckDO> newBusinessSubSampleParentRecheckDOList = new ArrayList<>();
//查询分样主样判定
BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = businessSubParentSampleAssessmentMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodId(reqVO.getBusinessSubParentSampleId(), reqVO.getConfigAssayMethodId());
if (businessSubParentSampleAssessmentDO == null) {
throw new ServiceException(1_032_050_000, "结果报送数据未找到");
}
//复检的检测项目
List<RecheckSubSampleParentMethodRespVO> recheckProjectList = reqVO.getRecheckProjectList();
List<Long> recheckDictionaryProjectIdList = recheckProjectList.stream().map(m -> m.getDictionaryProjectId()).collect(Collectors.toList());
List<BusinessSubParentSampleAssessmentProjectDO> businessSubParentSampleAssessmentProjectDOList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleAssessmentIdAndDictionaryProjectIds(businessSubParentSampleAssessmentDO.getId(), recheckDictionaryProjectIdList);
for (BusinessSubParentSampleAssessmentProjectDO businessSubParentSampleAssessmentProjectDO : businessSubParentSampleAssessmentProjectDOList) {
businessSubParentSampleAssessmentProjectDO.setIsReported(QmsCommonConstant.NO);
businessSubParentSampleAssessmentProjectDO.setAssessmentStatus(QmsCommonConstant.IN_PROGRESS);
businessSubParentSampleAssessmentProjectDO.setAssessmentValue(null);
}
//获取分析任务数
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodId(reqVO.getBusinessSubParentSampleId(), reqVO.getConfigAssayMethodId());
List<Long> businessSubSampleIds = businessAssayTaskDataDOList.stream().map(m -> m.getBusinessSubSampleId()).distinct().collect(Collectors.toList());
@@ -323,8 +342,6 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
for (BusinessSubSampleDO businessSubSampleDO : businessSubSampleDOList) {
//复检的检测项目
List<RecheckSubSampleParentMethodRespVO> recheckProjectList = reqVO.getRecheckProjectList();
//根据方法分组
Map<Long, List<RecheckSubSampleParentMethodRespVO>> recheckProjectMap = recheckProjectList.stream().collect(Collectors.groupingBy(RecheckSubSampleParentMethodRespVO::getConfigAssayMethodId));
@@ -391,7 +408,7 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
newBusinessAssayProjectDataDOList.add(businessAssayProjectDataDO);
List<ConfigAssayMethodProjectParameterDO> configAssayMethodProjectParameterDOList = configAssayMethodProjectParameterMapper.selectByConfigAssayMethodProjectId(configAssayMethodId);
List<ConfigAssayMethodProjectParameterDO> configAssayMethodProjectParameterDOList = configAssayMethodProjectParameterMapper.selectByConfigAssayMethodProjectId(configAssayMethodProjectDO.getId());
for (ConfigAssayMethodProjectParameterDO configAssayMethodProjectParameterDO : configAssayMethodProjectParameterDOList) {
BusinessAssayParameterDataDO businessAssayParameterDataDO = new BusinessAssayParameterDataDO();
businessAssayParameterDataDO.setId(IdWorker.getId());
@@ -413,6 +430,10 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
}
}
if (CollUtil.isNotEmpty(businessSubParentSampleAssessmentProjectDOList)) {
businessSubParentSampleAssessmentProjectMapper.updateBatch(businessSubParentSampleAssessmentProjectDOList);
}
if (CollUtil.isNotEmpty(newBusinessAssayTaskDataDOList)) {
businessAssayTaskDataMapper.insertBatch(newBusinessAssayTaskDataDOList);
}
@@ -519,7 +540,7 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
assayDataJson = JSON.parseObject(assayData);
}
//循环判定值
List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentList = businessSubParentSampleAssessmentExtendList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubParentSampleDO.getId())).collect(Collectors.toList());
List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentList = businessSubParentSampleAssessmentExtendList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubParentSampleDO.getId()) && "normal".equals(f.getAssessmentStatus())).collect(Collectors.toList());
for (BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessment : businessSubParentSampleAssessmentList) {
Long configAssayMethodProjectId = businessSubParentSampleAssessment.getConfigAssayMethodProjectId();
List<ConfigProjectExtendRespVO> configProjectFeildList = configProjectList.stream().filter(f -> f.getConfigAssayMethodProjectId() != null && f.getConfigAssayMethodProjectId().equals(configAssayMethodProjectId)).collect(Collectors.toList());
@@ -681,7 +702,15 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
businessSubSampleAnalysisGroupMapper.updateBatch(updateBusinessSubSampleAnalysisGroupDOList);
}
List<Long> businessSubParentSampleAssessmentIdList = businessSubParentSampleAssessmentExtendList.stream().map(m -> m.getId()).collect(Collectors.toList());
//查询正常上报的
List<Long> businessSubParentSampleAssessmentIdList = businessSubParentSampleAssessmentExtendList.stream().filter(f -> "normal".equals(f.getAssessmentStatus())).map(m -> m.getId()).collect(Collectors.toList());
//查询未上报的分样主id
List<Long> noAllReportBusinessSubParentSampleIdList = businessSubParentSampleAssessmentExtendList.stream().filter(f -> "in_progress".equals(f.getAssessmentStatus())).map(m -> m.getBusinessSubParentSampleId()).distinct().collect(Collectors.toList());
//全部上报的
List<Long> allReportBusinessSubParentSampleIdList = new ArrayList<>();
if (noAllReportBusinessSubParentSampleIdList.size() > 0) {
reqVO.getBusinessSubParentSampleIds().stream().filter(item -> noAllReportBusinessSubParentSampleIdList.contains(item)).collect(Collectors.toList());
}
businessSubParentSampleAssessmentProjectMapper.update(new LambdaUpdateWrapper<BusinessSubParentSampleAssessmentProjectDO>()
.set(BusinessSubParentSampleAssessmentProjectDO::getIsReported, QmsCommonConstant.YES)
@@ -689,19 +718,20 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
.set(BusinessSubParentSampleAssessmentProjectDO::getReportTime, LocalDateTime.now())
.in(BusinessSubParentSampleAssessmentProjectDO::getId, businessSubParentSampleAssessmentIdList));
businessSubParentSampleAssessmentMapper.update(new LambdaUpdateWrapper<BusinessSubParentSampleAssessmentDO>()
.set(BusinessSubParentSampleAssessmentDO::getIsReported, QmsCommonConstant.YES)
.set(BusinessSubParentSampleAssessmentDO::getReporter, nickName)
.set(BusinessSubParentSampleAssessmentDO::getReportTime, LocalDateTime.now())
.in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleIds())
.eq(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId()));
if (allReportBusinessSubParentSampleIdList.size() > 0) {
businessSubParentSampleAssessmentMapper.update(new LambdaUpdateWrapper<BusinessSubParentSampleAssessmentDO>()
.set(BusinessSubParentSampleAssessmentDO::getIsReported, QmsCommonConstant.YES)
.set(BusinessSubParentSampleAssessmentDO::getReporter, nickName)
.set(BusinessSubParentSampleAssessmentDO::getReportTime, LocalDateTime.now())
.in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, allReportBusinessSubParentSampleIdList)
.eq(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId()));
}
if (updatebBusinessSampleEntrustRegistrationDOList.size() > 0) {
businessSampleEntrustRegistrationMapper.updateBatch(updatebBusinessSampleEntrustRegistrationDOList);
}
if (updateBusinessSubSampleDOList.size() > 0) {
SampleFlowParam sampleFlowParam = new SampleFlowParam();
sampleFlowParam.setCurrentSampleFlowKey(QmsCommonConstant.FLOW_NODE_ANALYSIS);
sampleFlowParam.setSampleSourceType(2);

View File

@@ -157,13 +157,16 @@
WHERE
tmasm.DELETED = 0
AND tmas.BSE_SMP_ID = #{baseSampleId}
AND tcam.ASY_DEPT_ID = #{assayDepartmentId}
AND tmasd.DIC_PRJ_ID IN (
SELECT
tbspsap.DIC_PRJ_ID
FROM
T_BSN_SB_PRN_SMP_ASMT_PRJ tbspsap
WHERE
tbspsap.BSN_SB_PRN_SMP_ID = #{businessSubParentSampleId}
tbspsap.DELETED = 0
AND tbspsap.ASMT_STS = 'normal'
AND tbspsap.BSN_SB_PRN_SMP_ID = #{businessSubParentSampleId}
AND tbspsap.CFG_ASY_MTHD_ID = #{configAssayMethodId}
)