处理样品数量及检测项目

This commit is contained in:
2026-03-30 13:48:04 +08:00
parent bff37a43d4
commit 5559145b7f
5 changed files with 39 additions and 7 deletions

View File

@@ -12,6 +12,8 @@ import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeComponent; import com.yomahub.liteflow.core.NodeComponent;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.zt.plat.framework.common.exception.ServiceException; import com.zt.plat.framework.common.exception.ServiceException;
import com.zt.plat.framework.security.core.LoginUser; import com.zt.plat.framework.security.core.LoginUser;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
@@ -23,6 +25,7 @@ import com.zt.plat.module.qms.business.bus.liteflow.param.SampleEntrustDetail;
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleEntrustDetailProject; import com.zt.plat.module.qms.business.bus.liteflow.param.SampleEntrustDetailProject;
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleEntrustParam; import com.zt.plat.module.qms.business.bus.liteflow.param.SampleEntrustParam;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext; import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext;
import com.zt.plat.module.qms.business.config.controller.vo.MaterialAssayStandardDetailRespVO;
import com.zt.plat.module.qms.business.config.dal.dataobject.BaseSampleDO; import com.zt.plat.module.qms.business.config.dal.dataobject.BaseSampleDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDO; import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDO;
@@ -106,11 +109,11 @@ public class SampleEntrustContextInitCmp extends NodeComponent {
//物料检验标准项 //物料检验标准项
// List<MaterialAssayStandardDetailDO> materialAssayStandardDetailList = materialAssayStandardDetailMapper.selectList(); // List<MaterialAssayStandardDetailDO> materialAssayStandardDetailList = materialAssayStandardDetailMapper.selectList();
List<MaterialAssayStandardDetailDO> materialAssayStandardDetailList = materialAssayStandardDetailMapper.selectByIds(materialAssayStandardDetailIdList); List<MaterialAssayStandardDetailRespVO> materialAssayStandardDetailList = materialAssayStandardDetailMapper.selectExtendByIds(materialAssayStandardDetailIdList);
sampleEntrustContext.setMaterialAssayStandardDetailList(materialAssayStandardDetailList); sampleEntrustContext.setMaterialAssayStandardDetailList(materialAssayStandardDetailList);
List<Long> materialAssayStandardIdList = materialAssayStandardDetailList.stream().map(m -> m.getMaterialAssayStandardId()).distinct().collect(Collectors.toList()); List<Long> materialAssayStandardIdList = materialAssayStandardDetailList.stream().map(m -> m.getMaterialAssayStandardId()).distinct().collect(Collectors.toList());
//物料检验标准 //物料检验标准
// List<MaterialAssayStandardDO> materialAssayStandardList = materialAssayStandardMapper.selectList(); // List<MaterialAssayStandardDO> materialAssayStandardList = materialAssayStandardMapper.selectList();
List<MaterialAssayStandardDO> materialAssayStandardList = materialAssayStandardMapper.selectByIds(materialAssayStandardIdList); List<MaterialAssayStandardDO> materialAssayStandardList = materialAssayStandardMapper.selectByIds(materialAssayStandardIdList);
@@ -124,6 +127,10 @@ public class SampleEntrustContextInitCmp extends NodeComponent {
//委托登记 //委托登记
BusinessSampleEntrustRegistrationDO sampleEntrustRegistration = BeanUtil.copyProperties(sampleEntrustParam, BusinessSampleEntrustRegistrationDO.class); BusinessSampleEntrustRegistrationDO sampleEntrustRegistration = BeanUtil.copyProperties(sampleEntrustParam, BusinessSampleEntrustRegistrationDO.class);
if (sampleEntrustRegistration.getSampleQuantity() == null) {
sampleEntrustRegistration.setSampleQuantity(detailList.size());
}
//委托来源id为空并且委托来源key也为空 //委托来源id为空并且委托来源key也为空
if (sampleEntrustParam.getConfigEntrustSourceId() == null && StringUtils.isBlank(sampleEntrustParam.getConfigEntrustSourceKey())) { if (sampleEntrustParam.getConfigEntrustSourceId() == null && StringUtils.isBlank(sampleEntrustParam.getConfigEntrustSourceKey())) {
throw new ServiceException(1_032_100_000, "委托来源id或委托来源key为空"); throw new ServiceException(1_032_100_000, "委托来源id或委托来源key为空");
@@ -162,12 +169,21 @@ public class SampleEntrustContextInitCmp extends NodeComponent {
sampleEntrustDetail.setSort(sort); sampleEntrustDetail.setSort(sort);
sort++; sort++;
} }
if (StringUtils.isBlank(sampleEntrustDetail.getSampleName())) {
sampleEntrustDetail.setSampleName(sampleEntrustDetail.getEntrustSampleName());
}
List<String> assayProjectList = new ArrayList<>();
List<SampleEntrustDetailProject> projectList = sampleEntrustDetail.getSampleEntrustDetailProjectList(); List<SampleEntrustDetailProject> projectList = sampleEntrustDetail.getSampleEntrustDetailProjectList();
for (SampleEntrustDetailProject sampleEntrustDetailProject : projectList) { for (SampleEntrustDetailProject sampleEntrustDetailProject : projectList) {
MaterialAssayStandardDetailRespVO materialAssayStandardDetail = materialAssayStandardDetailList.stream().filter(f -> sampleEntrustDetailProject.getMaterialAssayStandardDetailId().equals(f.getId())).findFirst().orElse(null);
assayProjectList.add(materialAssayStandardDetail.getDictionaryProjectShowName());
if (sampleEntrustDetailProject.getBusinessSampleEntrustDetailId() == null) { if (sampleEntrustDetailProject.getBusinessSampleEntrustDetailId() == null) {
sampleEntrustDetailProject.setBusinessSampleEntrustDetailId(sampleEntrustDetail.getId()); sampleEntrustDetailProject.setBusinessSampleEntrustDetailId(sampleEntrustDetail.getId());
} }
} }
if (StringUtils.isBlank(sampleEntrustDetail.getAssayProject())) {
sampleEntrustDetail.setAssayProject(CollUtil.join(assayProjectList, ","));
}
sampleEntrustProjectList.addAll(BeanUtil.copyToList(projectList, BusinessSampleEntrustProjectDO.class)); sampleEntrustProjectList.addAll(BeanUtil.copyToList(projectList, BusinessSampleEntrustProjectDO.class));
} }
sampleEntrustContext.setSampleEntrustProjectList(sampleEntrustProjectList); sampleEntrustContext.setSampleEntrustProjectList(sampleEntrustProjectList);

View File

@@ -26,6 +26,7 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustFileM
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustProjectMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustProjectMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustRegistrationMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustRegistrationMapper;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext; import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext;
import com.zt.plat.module.qms.business.config.controller.vo.MaterialAssayStandardDetailRespVO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigReportTemplateDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigReportTemplateDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDetailDO; import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDetailDO;
@@ -152,7 +153,7 @@ public class SampleEntrustCreateDataCmp extends NodeComponent {
List<BusinessSampleEntrustProjectDO> sampleEntrustProjectList = sampleEntrustContext.getSampleEntrustProjectList(); List<BusinessSampleEntrustProjectDO> sampleEntrustProjectList = sampleEntrustContext.getSampleEntrustProjectList();
for (BusinessSampleEntrustProjectDO businessSampleEntrustProject : sampleEntrustProjectList) { for (BusinessSampleEntrustProjectDO businessSampleEntrustProject : sampleEntrustProjectList) {
MaterialAssayStandardDetailDO materialAssayStandardDetail = sampleEntrustContext.getMaterialAssayStandardDetailById(businessSampleEntrustProject.getMaterialAssayStandardDetailId()); MaterialAssayStandardDetailRespVO materialAssayStandardDetail = sampleEntrustContext.getMaterialAssayStandardDetailById(businessSampleEntrustProject.getMaterialAssayStandardDetailId());
businessSampleEntrustProject.setDictionaryProjectId(materialAssayStandardDetail.getDictionaryProjectId()); businessSampleEntrustProject.setDictionaryProjectId(materialAssayStandardDetail.getDictionaryProjectId());
} }

View File

@@ -27,6 +27,7 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustFileM
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustProjectMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustProjectMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustRegistrationMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustRegistrationMapper;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext; import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext;
import com.zt.plat.module.qms.business.config.controller.vo.MaterialAssayStandardDetailRespVO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDetailDO; import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDetailDO;
import com.zt.plat.module.qms.enums.QmsCommonConstant; import com.zt.plat.module.qms.enums.QmsCommonConstant;
@@ -156,7 +157,7 @@ public class SampleEntrustUpdateDataCmp extends NodeComponent {
List<BusinessSampleEntrustProjectDO> sampleEntrustProjectList = sampleEntrustContext.getSampleEntrustProjectList(); List<BusinessSampleEntrustProjectDO> sampleEntrustProjectList = sampleEntrustContext.getSampleEntrustProjectList();
for (BusinessSampleEntrustProjectDO businessSampleEntrustProject : sampleEntrustProjectList) { for (BusinessSampleEntrustProjectDO businessSampleEntrustProject : sampleEntrustProjectList) {
MaterialAssayStandardDetailDO materialAssayStandardDetail = sampleEntrustContext.getMaterialAssayStandardDetailById(businessSampleEntrustProject.getMaterialAssayStandardDetailId()); MaterialAssayStandardDetailRespVO materialAssayStandardDetail = sampleEntrustContext.getMaterialAssayStandardDetailById(businessSampleEntrustProject.getMaterialAssayStandardDetailId());
businessSampleEntrustProject.setDictionaryProjectId(materialAssayStandardDetail.getDictionaryProjectId()); businessSampleEntrustProject.setDictionaryProjectId(materialAssayStandardDetail.getDictionaryProjectId());
} }

View File

@@ -11,6 +11,7 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustD
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustProjectDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustProjectDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustRegistrationDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustRegistrationDO;
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowInfo; import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowInfo;
import com.zt.plat.module.qms.business.config.controller.vo.MaterialAssayStandardDetailRespVO;
import com.zt.plat.module.qms.business.config.dal.dataobject.BaseSampleDO; import com.zt.plat.module.qms.business.config.dal.dataobject.BaseSampleDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDO; import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDO;
@@ -72,10 +73,10 @@ public class SampleEntrustContext {
private List<MaterialAssayStandardDO> materialAssayStandardList; private List<MaterialAssayStandardDO> materialAssayStandardList;
/** 物料检测标准检测项目列表 **/ /** 物料检测标准检测项目列表 **/
private List<MaterialAssayStandardDetailDO> materialAssayStandardDetailList; private List<MaterialAssayStandardDetailRespVO> materialAssayStandardDetailList;
public MaterialAssayStandardDetailDO getMaterialAssayStandardDetailById(Long id) { public MaterialAssayStandardDetailRespVO getMaterialAssayStandardDetailById(Long id) {
MaterialAssayStandardDetailDO materialAssayStandardDetail = null; MaterialAssayStandardDetailRespVO materialAssayStandardDetail = null;
if (CollUtil.isNotEmpty(this.materialAssayStandardDetailList)) { if (CollUtil.isNotEmpty(this.materialAssayStandardDetailList)) {
materialAssayStandardDetail = this.materialAssayStandardDetailList.stream().filter(f -> id.equals(f.getId())).findFirst().orElse(null); materialAssayStandardDetail = this.materialAssayStandardDetailList.stream().filter(f -> id.equals(f.getId())).findFirst().orElse(null);
} }

View File

@@ -56,5 +56,18 @@ public interface MaterialAssayStandardDetailMapper extends BaseMapperX<MaterialA
.in(MaterialAssayStandardDO::getBaseSampleId, baseSampleIdList) .in(MaterialAssayStandardDO::getBaseSampleId, baseSampleIdList)
); );
} }
default List<MaterialAssayStandardDetailRespVO> selectExtendByIds(List<Long> idList) {
return selectJoinList(MaterialAssayStandardDetailRespVO.class, new MPJLambdaWrapperX<MaterialAssayStandardDetailDO>()
.leftJoin(MaterialAssayStandardDO.class, MaterialAssayStandardDO::getId, MaterialAssayStandardDetailDO::getMaterialAssayStandardId)
.leftJoin(DictionaryProjectDO.class, DictionaryProjectDO::getId, MaterialAssayStandardDetailDO::getDictionaryProjectId)
.selectAll(MaterialAssayStandardDetailDO.class)
.selectAs(MaterialAssayStandardDO::getBaseSampleId, MaterialAssayStandardDetailRespVO::getBaseSampleId)
.selectAs(DictionaryProjectDO::getName, MaterialAssayStandardDetailRespVO::getDictionaryProjectName)
.selectAs(DictionaryProjectDO::getSimpleName, MaterialAssayStandardDetailRespVO::getDictionaryProjectSimpleName)
.selectAs(DictionaryProjectDO::getShowName, MaterialAssayStandardDetailRespVO::getDictionaryProjectShowName)
.selectAs(DictionaryProjectDO::getCode, MaterialAssayStandardDetailRespVO::getDictionaryProjectCode)
.in(MaterialAssayStandardDetailDO::getId, idList));
}
} }