Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
FCL
2025-12-04 08:58:25 +08:00
10 changed files with 76 additions and 11 deletions

View File

@@ -73,4 +73,7 @@ public class BusinessHandoverRecordSubPageReqVO extends PageParam {
@Schema(description = "归库编号") @Schema(description = "归库编号")
private String sampleReturnCode; private String sampleReturnCode;
@Schema(description = "样品名称")
private String sampleName;
} }

View File

@@ -49,6 +49,7 @@ public interface BusinessHandoverRecordSubMapper extends BaseMapperX<BusinessHan
.eqIfPresent(BusinessHandoverRecordSubDO::getRemark, reqVO.getRemark()) .eqIfPresent(BusinessHandoverRecordSubDO::getRemark, reqVO.getRemark())
.eqIfPresent(BusinessSubSampleDO::getSampleAssayCode, reqVO.getSampleAssayCode()) .eqIfPresent(BusinessSubSampleDO::getSampleAssayCode, reqVO.getSampleAssayCode())
.eqIfPresent(BusinessSubSampleDO::getSampleReturnCode, reqVO.getSampleReturnCode()) .eqIfPresent(BusinessSubSampleDO::getSampleReturnCode, reqVO.getSampleReturnCode())
.likeIfPresent(BusinessSubSampleDO::getSampleName, reqVO.getSampleName())
.eqIfPresent(BusinessHandoverRecordSubDO::getDeptId, reqVO.getDeptId()) .eqIfPresent(BusinessHandoverRecordSubDO::getDeptId, reqVO.getDeptId())
.orderByDesc(BusinessHandoverRecordSubDO::getCreateTime)); .orderByDesc(BusinessHandoverRecordSubDO::getCreateTime));
} }

View File

@@ -83,10 +83,18 @@ public interface BusinessSampleEntrustDetailMapper extends BaseMapperX<BusinessS
return selectList(new LambdaQueryWrapperX<BusinessSampleEntrustDetailDO>().eq(BusinessSampleEntrustDetailDO::getBusinessSampleEntrustRegistrationId, businessSampleEntrustRegistrationId)); return selectList(new LambdaQueryWrapperX<BusinessSampleEntrustDetailDO>().eq(BusinessSampleEntrustDetailDO::getBusinessSampleEntrustRegistrationId, businessSampleEntrustRegistrationId));
} }
default List<BusinessSampleEntrustDetailDO> selectByBusinessSampleEntrustRegistrationIds(List<Long> businessSampleEntrustRegistrationIds) {
return selectList(new LambdaQueryWrapperX<BusinessSampleEntrustDetailDO>().in(BusinessSampleEntrustDetailDO::getBusinessSampleEntrustRegistrationId, businessSampleEntrustRegistrationIds));
}
default BusinessSampleEntrustDetailDO selectByBusinessBaseSampleId(Long businessBaseSampleId) { default BusinessSampleEntrustDetailDO selectByBusinessBaseSampleId(Long businessBaseSampleId) {
return selectOne(new LambdaQueryWrapperX<BusinessSampleEntrustDetailDO>().eq(BusinessSampleEntrustDetailDO::getBusinessBaseSampleId, businessBaseSampleId)); return selectOne(new LambdaQueryWrapperX<BusinessSampleEntrustDetailDO>().eq(BusinessSampleEntrustDetailDO::getBusinessBaseSampleId, businessBaseSampleId));
} }
default List<BusinessSampleEntrustDetailDO> selectByBusinessBaseSampleIds(List<Long> businessBaseSampleIds) {
return selectList(new LambdaQueryWrapperX<BusinessSampleEntrustDetailDO>().in(BusinessSampleEntrustDetailDO::getBusinessBaseSampleId, businessBaseSampleIds));
}
/** /**
* 查询当前批次的第一条数据 * 查询当前批次的第一条数据
* @param businessBaseSampleId 任意一条的主样id * @param businessBaseSampleId 任意一条的主样id

View File

@@ -37,6 +37,12 @@ public interface BusinessSubParentSampleAssessmentMapper extends BaseMapperX<Bus
.orderByDesc(BusinessSubParentSampleAssessmentDO::getId)); .orderByDesc(BusinessSubParentSampleAssessmentDO::getId));
} }
default List<BusinessSubParentSampleAssessmentDO> selectByBusinessSubParentSampleIds(List<Long> businessSubParentSampleIds) {
return selectJoinList(BusinessSubParentSampleAssessmentDO.class, new MPJLambdaWrapperX<BusinessSubParentSampleAssessmentDO>()
.leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId)
.in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, businessSubParentSampleIds));
}
default BusinessSubParentSampleAssessmentDO selectByBusinessSubParentSampleIdAndConfigAssayMethodId(Long businessSubParentSampleId, Long configAssayMethodId) { default BusinessSubParentSampleAssessmentDO selectByBusinessSubParentSampleIdAndConfigAssayMethodId(Long businessSubParentSampleId, Long configAssayMethodId) {
return selectOne(new LambdaQueryWrapperX<BusinessSubParentSampleAssessmentDO>() return selectOne(new LambdaQueryWrapperX<BusinessSubParentSampleAssessmentDO>()
.eq(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, businessSubParentSampleId) .eq(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, businessSubParentSampleId)

View File

@@ -46,4 +46,9 @@ public interface BusinessSubParentSampleMapper extends BaseMapperX<BusinessSubPa
.eq(BusinessSubParentSampleDO::getBusinessBaseSampleId, businessBaseSampleId)); .eq(BusinessSubParentSampleDO::getBusinessBaseSampleId, businessBaseSampleId));
} }
default List<BusinessSubParentSampleDO> selectByBusinessBaseSampleIds(List<Long> businessBaseSampleIds) {
return selectList(new LambdaQueryWrapperX<BusinessSubParentSampleDO>()
.in(BusinessSubParentSampleDO::getBusinessBaseSampleId, businessBaseSampleIds));
}
} }

View File

@@ -144,8 +144,7 @@ public interface BusinessSubSampleMapper extends BaseMapperX<BusinessSubSampleDO
.eqIfPresent(BusinessSubSampleAnalysisGroupDO::getAssayDepartmentId, reqVO.getAssayDepartmentId()) .eqIfPresent(BusinessSubSampleAnalysisGroupDO::getAssayDepartmentId, reqVO.getAssayDepartmentId())
.eqIfPresent(BusinessSubSampleAnalysisGroupDO::getAssayDepartmentName, reqVO.getAssayDepartmentName()) .eqIfPresent(BusinessSubSampleAnalysisGroupDO::getAssayDepartmentName, reqVO.getAssayDepartmentName())
.eqIfPresent(BusinessSubSampleAnalysisGroupDO::getSampleStatus, reqVO.getAssayDepartmentStatus()) .eqIfPresent(BusinessSubSampleAnalysisGroupDO::getSampleStatus, reqVO.getAssayDepartmentStatus())
.orderByDesc(BusinessSubSampleDO::getSampleFlowNodeTime).orderByAsc(BusinessSubSampleDO::getSampleCode) .orderByDesc(BusinessSubSampleDO::getSampleFlowNodeTime).orderByAsc(BusinessSubSampleDO::getSampleCode));
);
} }
default List<BusinessSubSampleExtendRespVO> selectList(@Valid BusinessSubSampleReqVO reqVO) { default List<BusinessSubSampleExtendRespVO> selectList(@Valid BusinessSubSampleReqVO reqVO) {

View File

@@ -579,7 +579,9 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
} }
assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); if (assayProjectBuilder.length() > 1) {
assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length());
}
businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString()); businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString());
businessAssayTaskDataDOList.add(businessAssayTaskDataDO); businessAssayTaskDataDOList.add(businessAssayTaskDataDO);
} }
@@ -590,6 +592,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
sampleEntrustRegistration.setRegistrationStatus(QmsCommonConstant.SUBMITTED); sampleEntrustRegistration.setRegistrationStatus(QmsCommonConstant.SUBMITTED);
sampleEntrustRegistration.setAssayStatus(QmsCommonConstant.UNCHECKED); sampleEntrustRegistration.setAssayStatus(QmsCommonConstant.UNCHECKED);
sampleEntrustRegistration.setDataStatus(QmsCommonConstant.UNRETURNED); sampleEntrustRegistration.setDataStatus(QmsCommonConstant.UNRETURNED);
sampleEntrustRegistration.setTaskQuantity(businessAssayTaskDataDOList.size());
sampleEntrustContext.setSampleFlowInfoList(sampleFlowInfoList); sampleEntrustContext.setSampleFlowInfoList(sampleFlowInfoList);
@@ -622,7 +625,6 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
businessSubSampleAssessmentMapper.insertBatch(businessSubSampleAssessmentDOList); businessSubSampleAssessmentMapper.insertBatch(businessSubSampleAssessmentDOList);
} }
if (CollUtil.isNotEmpty(businessAssayTaskDataDOList)) { if (CollUtil.isNotEmpty(businessAssayTaskDataDOList)) {
sampleEntrustRegistration.setTaskQuantity(businessAssayTaskDataDOList.size());
businessAssayTaskDataMapper.insertBatch(businessAssayTaskDataDOList); businessAssayTaskDataMapper.insertBatch(businessAssayTaskDataDOList);
} }
if (CollUtil.isNotEmpty(businessAssayProjectDataDOList)) { if (CollUtil.isNotEmpty(businessAssayProjectDataDOList)) {
@@ -758,8 +760,9 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
businessAssayParameterDataDOList.add(businessAssayParameterDataDO); businessAssayParameterDataDOList.add(businessAssayParameterDataDO);
} }
} }
if (assayProjectBuilder.length() > 1) {
assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length());
}
businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString()); businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString());
businessAssayTaskDataDOList.add(businessAssayTaskDataDO); businessAssayTaskDataDOList.add(businessAssayTaskDataDO);
} }

View File

@@ -92,7 +92,7 @@ public class SampleSubProcessUpdateCmp extends NodeComponent {
DefaultContext<String, Object> context = new DefaultContext<>(); DefaultContext<String, Object> context = new DefaultContext<>();
ConfigSubSampleDO configSubSample = sampleFlowContext.getConfigSubSampleById(businessSubSample.getConfigSubSampleId()); ConfigSubSampleDO configSubSample = sampleFlowContext.getConfigSubSampleById(businessSubSample.getConfigSubSampleId());
Boolean hasSubSimpleCodeRule = configSubSample != null && StringUtils.isNotBlank(configSubSample.getSimpleCodeRule()); Boolean hasSubSimpleCodeRule = configSubSample != null && StringUtils.isNotBlank(configSubSample.getSimpleCodeRule());
Boolean hasSubSampleEncrypt = businessHandoverRecordSubDOList.stream().anyMatch(m -> QmsCommonConstant.FlOW_NODE_SAMPLE_ENCRYPT.equals(m.getSampleFlowNodeKey())); Boolean hasSubSampleEncrypt = businessHandoverRecordSubDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSample.getId())).anyMatch(m -> QmsCommonConstant.FlOW_NODE_SAMPLE_ENCRYPT.equals(m.getSampleFlowNodeKey()));
if (CollUtil.isNotEmpty(businessSubSampleAnalysisGroupDOList)) { if (CollUtil.isNotEmpty(businessSubSampleAnalysisGroupDOList)) {
List<BusinessSubSampleAnalysisGroupDO> curSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSample.getId())).collect(Collectors.toList()); List<BusinessSubSampleAnalysisGroupDO> curSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSample.getId())).collect(Collectors.toList());

View File

@@ -250,6 +250,7 @@ public class SampleEntrustServiceImpl implements SampleEntrustService {
LiteflowResponse response = flowExecutor.execute2Resp("sampleEntrustSubmitChain" + tenantId, sampleEntrustParam, SampleEntrustContext.class); LiteflowResponse response = flowExecutor.execute2Resp("sampleEntrustSubmitChain" + tenantId, sampleEntrustParam, SampleEntrustContext.class);
if (!response.isSuccess()){ if (!response.isSuccess()){
log.error("提交委托登记失败", response.getCause()); log.error("提交委托登记失败", response.getCause());
response.getCause().printStackTrace();
throw new ServiceException(1_032_100_000, response.getCause().getMessage()); throw new ServiceException(1_032_100_000, response.getCause().getMessage());
} }
} }

View File

@@ -36,6 +36,8 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDa
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessBaseSampleDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessBaseSampleDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustDetailDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustRegistrationDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentProjectDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentProjectDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleDO;
@@ -48,6 +50,8 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayProjectDataMa
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayReportDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayReportDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessBaseSampleMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessBaseSampleMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustDetailMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustRegistrationMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleAssessmentMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleAssessmentMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleAssessmentProjectMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleAssessmentProjectMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleMapper;
@@ -423,6 +427,12 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
@Resource @Resource
private BusinessSubParentSampleAssessmentMapper businessSubParentSampleAssessmentMapper; private BusinessSubParentSampleAssessmentMapper businessSubParentSampleAssessmentMapper;
@Resource
private BusinessSampleEntrustRegistrationMapper businessSampleEntrustRegistrationMapper;
@Resource
private BusinessSampleEntrustDetailMapper businessSampleEntrustDetailMapper;
@Resource @Resource
private SampleFlowService sampleFlowService; private SampleFlowService sampleFlowService;
@@ -433,6 +443,7 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
//当前登录用户昵称 //当前登录用户昵称
String nickName = SecurityFrameworkUtils.getLoginUserNickname(); String nickName = SecurityFrameworkUtils.getLoginUserNickname();
List<BusinessSampleEntrustRegistrationDO> updatebBusinessSampleEntrustRegistrationDOList = new ArrayList<>();
List<BusinessSubSampleDO> updateBusinessSubSampleDOList = new ArrayList<>(); List<BusinessSubSampleDO> updateBusinessSubSampleDOList = new ArrayList<>();
List<BusinessSubSampleAnalysisGroupDO> updateBusinessSubSampleAnalysisGroupDOList = new ArrayList<>(); List<BusinessSubSampleAnalysisGroupDO> updateBusinessSubSampleAnalysisGroupDOList = new ArrayList<>();
@@ -584,6 +595,31 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
updateBusinessSubSampleDOList.add(businessSubSampleDO); updateBusinessSubSampleDOList.add(businessSubSampleDO);
} }
//处理委托登记信息
List<Long> businessBaseSampleIdList = businessSubParentSampleDOList.stream().map(m -> m.getBusinessBaseSampleId()).distinct().collect(Collectors.toList());
List<BusinessSampleEntrustDetailDO> businessSampleEntrustDetailDOList = businessSampleEntrustDetailMapper.selectByBusinessBaseSampleIds(businessBaseSampleIdList);
List<Long> businessSampleEntrustRegistrationIdList = businessSampleEntrustDetailDOList.stream().map(m -> m.getBusinessSampleEntrustRegistrationId()).distinct().collect(Collectors.toList());
List<BusinessSampleEntrustRegistrationDO> businessSampleEntrustRegistrationDOList = businessSampleEntrustRegistrationMapper.selectByIds(businessSampleEntrustRegistrationIdList);
List<BusinessSampleEntrustDetailDO> allBusinessSampleEntrustDetailDOList = businessSampleEntrustDetailMapper.selectByBusinessSampleEntrustRegistrationIds(businessSampleEntrustRegistrationIdList);
for (BusinessSampleEntrustRegistrationDO businessSampleEntrustRegistrationDO : businessSampleEntrustRegistrationDOList) {
List<Long> currentBusinessBaseSampleIdList = allBusinessSampleEntrustDetailDOList.stream().filter(f -> f.getBusinessSampleEntrustRegistrationId().equals(businessSampleEntrustRegistrationDO.getId())).map(m -> m.getBusinessBaseSampleId()).collect(Collectors.toList());
List<BusinessSubParentSampleDO> currentBusinessSubParentSampleDOList = businessSubParentSampleMapper.selectByBusinessBaseSampleIds(currentBusinessBaseSampleIdList);
List<Long> currentBusinessSubParentSampleIdList = currentBusinessSubParentSampleDOList.stream().map(m -> m.getId()).collect(Collectors.toList());
List<BusinessSubParentSampleAssessmentDO> currentBusinessSubParentSampleAssessmentDOList = businessSubParentSampleAssessmentMapper.selectByBusinessSubParentSampleIds(currentBusinessSubParentSampleIdList);
long count = currentBusinessSubParentSampleAssessmentDOList.stream().filter(f -> !reqVO.getBusinessSubParentSampleIds().contains(f.getBusinessSubParentSampleId()) && !f.getConfigAssayMethodId().equals(reqVO.getConfigAssayMethodId()) && f.getIsReported().equals(QmsCommonConstant.NO)).count();
if (count > 0) {//如果还存在未上报的数据,则继续
continue;
}
businessSampleEntrustRegistrationDO.setAssayStatus(QmsCommonConstant.CHECKED);
updatebBusinessSampleEntrustRegistrationDOList.add(businessSampleEntrustRegistrationDO);
}
if (saveBusinessAssayReportDataDOList.size() > 0) { if (saveBusinessAssayReportDataDOList.size() > 0) {
businessAssayReportDataMapper.insertBatch(saveBusinessAssayReportDataDOList); businessAssayReportDataMapper.insertBatch(saveBusinessAssayReportDataDOList);
@@ -612,6 +648,9 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
.in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleIds()) .in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleIds())
.eq(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())); .eq(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId()));
if (updatebBusinessSampleEntrustRegistrationDOList.size() > 0) {
businessSampleEntrustRegistrationMapper.updateBatch(updatebBusinessSampleEntrustRegistrationDOList);
}
if (updateBusinessSubSampleDOList.size() > 0) { if (updateBusinessSubSampleDOList.size() > 0) {