diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessHandoverRecordSubPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessHandoverRecordSubPageReqVO.java index e335e60..b73c46e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessHandoverRecordSubPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessHandoverRecordSubPageReqVO.java @@ -73,4 +73,7 @@ public class BusinessHandoverRecordSubPageReqVO extends PageParam { @Schema(description = "归库编号") private String sampleReturnCode; + + @Schema(description = "样品名称") + private String sampleName; } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessHandoverRecordSubMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessHandoverRecordSubMapper.java index ccbcb51..c73c4f2 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessHandoverRecordSubMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessHandoverRecordSubMapper.java @@ -49,7 +49,8 @@ public interface BusinessHandoverRecordSubMapper extends BaseMapperX().eq(BusinessSampleEntrustDetailDO::getBusinessSampleEntrustRegistrationId, businessSampleEntrustRegistrationId)); } + default List selectByBusinessSampleEntrustRegistrationIds(List businessSampleEntrustRegistrationIds) { + return selectList(new LambdaQueryWrapperX().in(BusinessSampleEntrustDetailDO::getBusinessSampleEntrustRegistrationId, businessSampleEntrustRegistrationIds)); + } + default BusinessSampleEntrustDetailDO selectByBusinessBaseSampleId(Long businessBaseSampleId) { return selectOne(new LambdaQueryWrapperX().eq(BusinessSampleEntrustDetailDO::getBusinessBaseSampleId, businessBaseSampleId)); } + default List selectByBusinessBaseSampleIds(List businessBaseSampleIds) { + return selectList(new LambdaQueryWrapperX().in(BusinessSampleEntrustDetailDO::getBusinessBaseSampleId, businessBaseSampleIds)); + } + /** * 查询当前批次的第一条数据 * @param businessBaseSampleId 任意一条的主样id diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubParentSampleAssessmentMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubParentSampleAssessmentMapper.java index 506d086..80a6dd6 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubParentSampleAssessmentMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubParentSampleAssessmentMapper.java @@ -36,6 +36,12 @@ public interface BusinessSubParentSampleAssessmentMapper extends BaseMapperX selectByBusinessSubParentSampleIds(List businessSubParentSampleIds) { + return selectJoinList(BusinessSubParentSampleAssessmentDO.class, new MPJLambdaWrapperX() + .leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId) + .in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, businessSubParentSampleIds)); + } default BusinessSubParentSampleAssessmentDO selectByBusinessSubParentSampleIdAndConfigAssayMethodId(Long businessSubParentSampleId, Long configAssayMethodId) { return selectOne(new LambdaQueryWrapperX() diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubParentSampleMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubParentSampleMapper.java index f551f90..39b3e77 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubParentSampleMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubParentSampleMapper.java @@ -45,5 +45,10 @@ public interface BusinessSubParentSampleMapper extends BaseMapperX() .eq(BusinessSubParentSampleDO::getBusinessBaseSampleId, businessBaseSampleId)); } + + default List selectByBusinessBaseSampleIds(List businessBaseSampleIds) { + return selectList(new LambdaQueryWrapperX() + .in(BusinessSubParentSampleDO::getBusinessBaseSampleId, businessBaseSampleIds)); + } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleMapper.java index 68d7b18..b8b2a02 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleMapper.java @@ -144,8 +144,7 @@ public interface BusinessSubSampleMapper extends BaseMapperX selectList(@Valid BusinessSubSampleReqVO reqVO) { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java index 77eaa50..9380874 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java @@ -407,7 +407,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { //子样对应的分析班组 BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO = null; - + for (Long configAssayMethodId : materialAssayStandardConfigAssayMethodIdList) { //查询分析方法 ConfigAssayMethodDO configAssayMethodDO = configAssayMethodList.stream().filter(f -> f.getId().equals(configAssayMethodId)).findFirst().orElse(null); @@ -578,8 +578,10 @@ 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()); businessAssayTaskDataDOList.add(businessAssayTaskDataDO); } @@ -590,6 +592,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { sampleEntrustRegistration.setRegistrationStatus(QmsCommonConstant.SUBMITTED); sampleEntrustRegistration.setAssayStatus(QmsCommonConstant.UNCHECKED); sampleEntrustRegistration.setDataStatus(QmsCommonConstant.UNRETURNED); + sampleEntrustRegistration.setTaskQuantity(businessAssayTaskDataDOList.size()); sampleEntrustContext.setSampleFlowInfoList(sampleFlowInfoList); @@ -622,7 +625,6 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { businessSubSampleAssessmentMapper.insertBatch(businessSubSampleAssessmentDOList); } if (CollUtil.isNotEmpty(businessAssayTaskDataDOList)) { - sampleEntrustRegistration.setTaskQuantity(businessAssayTaskDataDOList.size()); businessAssayTaskDataMapper.insertBatch(businessAssayTaskDataDOList); } if (CollUtil.isNotEmpty(businessAssayProjectDataDOList)) { @@ -758,8 +760,9 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { businessAssayParameterDataDOList.add(businessAssayParameterDataDO); } } - - assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); + if (assayProjectBuilder.length() > 1) { + assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); + } businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString()); businessAssayTaskDataDOList.add(businessAssayTaskDataDO); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java index c578adf..ffc707a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java @@ -92,7 +92,7 @@ public class SampleSubProcessUpdateCmp extends NodeComponent { DefaultContext context = new DefaultContext<>(); ConfigSubSampleDO configSubSample = sampleFlowContext.getConfigSubSampleById(businessSubSample.getConfigSubSampleId()); 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)) { List curSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSample.getId())).collect(Collectors.toList()); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleEntrustServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleEntrustServiceImpl.java index de5792d..7b0b136 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleEntrustServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleEntrustServiceImpl.java @@ -250,6 +250,7 @@ public class SampleEntrustServiceImpl implements SampleEntrustService { LiteflowResponse response = flowExecutor.execute2Resp("sampleEntrustSubmitChain" + tenantId, sampleEntrustParam, SampleEntrustContext.class); if (!response.isSuccess()){ log.error("提交委托登记失败", response.getCause()); + response.getCause().printStackTrace(); throw new ServiceException(1_032_100_000, response.getCause().getMessage()); } } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java index 5ce2a83..bbfdbb5 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java @@ -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.BusinessAssayTaskDataDO; 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.BusinessSubParentSampleAssessmentProjectDO; 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.BusinessAssayTaskDataMapper; 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.BusinessSubParentSampleAssessmentProjectMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleMapper; @@ -422,6 +426,12 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe @Resource private BusinessSubParentSampleAssessmentMapper businessSubParentSampleAssessmentMapper; + + @Resource + private BusinessSampleEntrustRegistrationMapper businessSampleEntrustRegistrationMapper; + + @Resource + private BusinessSampleEntrustDetailMapper businessSampleEntrustDetailMapper; @Resource private SampleFlowService sampleFlowService; @@ -432,7 +442,8 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe //当前登录用户昵称 String nickName = SecurityFrameworkUtils.getLoginUserNickname(); - + + List updatebBusinessSampleEntrustRegistrationDOList = new ArrayList<>(); List updateBusinessSubSampleDOList = new ArrayList<>(); List updateBusinessSubSampleAnalysisGroupDOList = new ArrayList<>(); @@ -584,6 +595,31 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe updateBusinessSubSampleDOList.add(businessSubSampleDO); } + //处理委托登记信息 + List businessBaseSampleIdList = businessSubParentSampleDOList.stream().map(m -> m.getBusinessBaseSampleId()).distinct().collect(Collectors.toList()); + + List businessSampleEntrustDetailDOList = businessSampleEntrustDetailMapper.selectByBusinessBaseSampleIds(businessBaseSampleIdList); + List businessSampleEntrustRegistrationIdList = businessSampleEntrustDetailDOList.stream().map(m -> m.getBusinessSampleEntrustRegistrationId()).distinct().collect(Collectors.toList()); + + List businessSampleEntrustRegistrationDOList = businessSampleEntrustRegistrationMapper.selectByIds(businessSampleEntrustRegistrationIdList); + + List allBusinessSampleEntrustDetailDOList = businessSampleEntrustDetailMapper.selectByBusinessSampleEntrustRegistrationIds(businessSampleEntrustRegistrationIdList); + + for (BusinessSampleEntrustRegistrationDO businessSampleEntrustRegistrationDO : businessSampleEntrustRegistrationDOList) { + List currentBusinessBaseSampleIdList = allBusinessSampleEntrustDetailDOList.stream().filter(f -> f.getBusinessSampleEntrustRegistrationId().equals(businessSampleEntrustRegistrationDO.getId())).map(m -> m.getBusinessBaseSampleId()).collect(Collectors.toList()); + List currentBusinessSubParentSampleDOList = businessSubParentSampleMapper.selectByBusinessBaseSampleIds(currentBusinessBaseSampleIdList); + List currentBusinessSubParentSampleIdList = currentBusinessSubParentSampleDOList.stream().map(m -> m.getId()).collect(Collectors.toList()); + List 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) { businessAssayReportDataMapper.insertBatch(saveBusinessAssayReportDataDOList); @@ -612,6 +648,9 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe .in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleIds()) .eq(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())); + if (updatebBusinessSampleEntrustRegistrationDOList.size() > 0) { + businessSampleEntrustRegistrationMapper.updateBatch(updatebBusinessSampleEntrustRegistrationDOList); + } if (updateBusinessSubSampleDOList.size() > 0) {