委托登记添加委托来源查询条件

This commit is contained in:
2025-10-31 08:57:11 +08:00
parent 4c9a4959c8
commit 7221f6bf1b
4 changed files with 167 additions and 3 deletions

View File

@@ -151,4 +151,7 @@ public class BusinessSampleEntrustRegistrationPageReqVO extends PageParam {
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
//====================扩展字段======================
@Schema(description = "委托来源名称")
private String configEntrustSourceName;
} }

View File

@@ -72,6 +72,7 @@ public interface BusinessSampleEntrustRegistrationMapper extends BaseMapperX<Bus
.betweenIfPresent(BusinessSampleEntrustRegistrationDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(BusinessSampleEntrustRegistrationDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(BusinessSampleEntrustRegistrationDO::getUpdateCount, reqVO.getUpdateCount()) .eqIfPresent(BusinessSampleEntrustRegistrationDO::getUpdateCount, reqVO.getUpdateCount())
.eqIfPresent(BusinessSampleEntrustRegistrationDO::getRemark, reqVO.getRemark()) .eqIfPresent(BusinessSampleEntrustRegistrationDO::getRemark, reqVO.getRemark())
.eqIfPresent(ConfigEntrustSourceDO::getName, reqVO.getConfigEntrustSourceName())
.orderByDesc(BusinessSampleEntrustRegistrationDO::getId)); .orderByDesc(BusinessSampleEntrustRegistrationDO::getId));
} }

View File

@@ -60,6 +60,7 @@ import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSampleReportMappe
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleMapper;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleMethodMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleMethodMapper;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleParentMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleParentMapper;
import com.zt.plat.module.qms.business.config.dal.mapper.MaterialAssayStandardMethodMapper;
import com.zt.plat.module.qms.business.dic.dal.dataobject.DictionaryProjectDO; import com.zt.plat.module.qms.business.dic.dal.dataobject.DictionaryProjectDO;
import com.zt.plat.module.qms.business.dic.dal.mapper.DictionaryProjectMapper; import com.zt.plat.module.qms.business.dic.dal.mapper.DictionaryProjectMapper;
import com.zt.plat.module.qms.core.code.SequenceUtil; import com.zt.plat.module.qms.core.code.SequenceUtil;
@@ -142,6 +143,9 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
@Resource @Resource
private ConfigSampleReportMapper configSampleReportMapper; private ConfigSampleReportMapper configSampleReportMapper;
@Resource
private MaterialAssayStandardMethodMapper materialAssayStandardMethodMapper;
@Override @Override
public void process() throws Exception { public void process() throws Exception {
@@ -161,6 +165,25 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
//样品来样品位 //样品来样品位
List<BusinessSampleAssayResultDO> sampleAssayResultList = sampleEntrustContext.getSampleAssayResultList(); List<BusinessSampleAssayResultDO> sampleAssayResultList = sampleEntrustContext.getSampleAssayResultList();
//金银检测项目字典id列表
List<Long> auAgDictionaryProjectIdList = new ArrayList<>() {
private static final long serialVersionUID = 1L;
{
add(1000000000000000002L);
add(1000000000000000003L);
}};
//硫的检测项目字典id
Long sDictionaryProjectId = 1000000000000000004L;
//商检样品来源id
List<Long> sjEntrustSourceIdList = new ArrayList<>() {
private static final long serialVersionUID = 1L;
{
add(1000000000000000002L);//中铜国贸
}};
//样品大类列表 //样品大类列表
List<BaseSampleDO> baseSampleList = baseSampleMapper.selectList(); List<BaseSampleDO> baseSampleList = baseSampleMapper.selectList();
@@ -209,6 +232,13 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
//分析报表数据 //分析报表数据
List<BusinessAssayReportDataDO> businessAssayReportDataDOList = new ArrayList<>(); List<BusinessAssayReportDataDO> businessAssayReportDataDOList = new ArrayList<>();
//是否为商检委托
Boolean isSjEntrust = sjEntrustSourceIdList.contains(sampleEntrustRegistration.getConfigEntrustSourceId());
//是否分析金银
Boolean isAssayAuAg = sampleEntrustProjectList.stream().anyMatch(f -> auAgDictionaryProjectIdList.contains(f.getDictionaryProjectId()));
//是否分析硫
Boolean isAssayS = sampleEntrustProjectList.stream().anyMatch(f -> f.getDictionaryProjectId().equals(sDictionaryProjectId));
//子样流转信息列表 //子样流转信息列表
List<SampleFlowInfo> sampleFlowInfoList = new ArrayList<>(); List<SampleFlowInfo> sampleFlowInfoList = new ArrayList<>();
@@ -245,6 +275,29 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
if (entrustConfigSubSampleList.size() != 1) { if (entrustConfigSubSampleList.size() != 1) {
throw new ServiceException(1_032_100_000, "子样配置不正确"); throw new ServiceException(1_032_100_000, "子样配置不正确");
} }
//是否创建综合样S分析
Boolean isCreateZhy = false;
//综合样分析方法
ConfigAssayMethodDO configAssayMethodZhy = null;
//是商检样品,分析金银,第一个样品
if (isSjEntrust && isAssayAuAg && sort == 0) {
//是否分析硫
isAssayS = dictionaryProjectIdList.contains(sDictionaryProjectId);
if (isAssayS) {
isCreateZhy = false;
} else {
isCreateZhy = true;
MaterialAssayStandardMethodDO materialAssayStandardMethodDO = materialAssayStandardMethodMapper.selectByBaseSampleIdAndDictionaryProjectId(businessSampleEntrustDetailDO.getBaseSampleId(), sDictionaryProjectId);
configAssayMethodZhy = configAssayMethodMapper.selectById(materialAssayStandardMethodDO.getConfigAssayMethodId());
}
}
//获取到子样配置 //获取到子样配置
ConfigSubSampleDO configSubSample = entrustConfigSubSampleList.get(0); ConfigSubSampleDO configSubSample = entrustConfigSubSampleList.get(0);
Long configSubSampleParentId = configSubSample.getConfigSubSampleParentId(); Long configSubSampleParentId = configSubSample.getConfigSubSampleParentId();
@@ -359,7 +412,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
//子样对应的分析班组 //子样对应的分析班组
BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO = null; BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO = null;
for (Long configAssayMethodId : configAssayMethodIdList) { for (Long configAssayMethodId : configAssayMethodIdList) {
//查询分析方法 //查询分析方法
ConfigAssayMethodDO configAssayMethodDO = configAssayMethodList.stream().filter(f -> f.getId().equals(configAssayMethodId)).findFirst().orElse(null); ConfigAssayMethodDO configAssayMethodDO = configAssayMethodList.stream().filter(f -> f.getId().equals(configAssayMethodId)).findFirst().orElse(null);
@@ -427,6 +480,11 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
businessAssayProjectDataDO.setDictionaryProjectId(configAssayMethodProjectDO.getDictionaryProjectId()); businessAssayProjectDataDO.setDictionaryProjectId(configAssayMethodProjectDO.getDictionaryProjectId());
businessAssayProjectDataDO.setDataType(configAssayMethodProjectDO.getDataType()); businessAssayProjectDataDO.setDataType(configAssayMethodProjectDO.getDataType());
businessAssayProjectDataDO.setDecimalPosition(configAssayMethodProjectDO.getDecimalPosition()); businessAssayProjectDataDO.setDecimalPosition(configAssayMethodProjectDO.getDecimalPosition());
businessAssayProjectDataDO.setUsage(QmsCommonConstant.ASSAY_PROJECT_USAGE_REPORT);
if (isSjEntrust && isAssayAuAg && sort == 0 && !isCreateZhy && sDictionaryProjectId.equals(configAssayMethodProjectDO.getDictionaryProjectId())) {//是商检样品分析金银第一个样品不创建综合样并且是S值
businessAssayProjectDataDO.setUsage(QmsCommonConstant.ASSAY_PROJECT_USAGE_INGREDIENT_REPORT);
}
businessAssayProjectDataDO.setIsEnabled(1); businessAssayProjectDataDO.setIsEnabled(1);
businessAssayProjectDataDO.setIsNotAssessment(0); businessAssayProjectDataDO.setIsNotAssessment(0);
@@ -446,8 +504,6 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
businessAssayParameterDataDOList.add(businessAssayParameterDataDO); businessAssayParameterDataDOList.add(businessAssayParameterDataDO);
} }
} }
assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length());
@@ -456,6 +512,90 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
} }
} }
if (isSjEntrust && isAssayAuAg && sort == 0 && isCreateZhy && configAssayMethodZhy != null) {
Long configAssayMethodIdZhy = configAssayMethodZhy.getId();
Long assayDepartmentIdZhy = configAssayMethodZhy.getAssayDepartmentId();
//查询子样对应的分析方法
ConfigSubSampleMethodDO configSubSampleMethodDO = configSubSampleMethodList.stream().filter(f -> f.getIsDefaultUse().equals(QmsCommonConstant.YES) && f.getConfigAssayMethodId().equals(configAssayMethodIdZhy) && f.getConfigSubSampleId().equals(configSubSample.getId())).findFirst().orElse(null);
businessSubSampleAnalysisGroupDO = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSampleDO.getId()) && f.getAssayDepartmentId().equals(assayDepartmentIdZhy)).findFirst().orElse(null);
if (businessSubSampleAnalysisGroupDO == null) {
businessSubSampleAnalysisGroupDO = new BusinessSubSampleAnalysisGroupDO();
businessSubSampleAnalysisGroupDO.setId(IdWorker.getId());
businessSubSampleAnalysisGroupDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId());
businessSubSampleAnalysisGroupDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId());
businessSubSampleAnalysisGroupDO.setBusinessSubSampleId(businessSubSampleDO.getId());
businessSubSampleAnalysisGroupDO.setAssayDepartmentId(configAssayMethodZhy.getAssayDepartmentId());
businessSubSampleAnalysisGroupDO.setAssayDepartmentName(configAssayMethodZhy.getAssayDepartmentName());
businessSubSampleAnalysisGroupDO.setSampleStatus("待收样");
businessSubSampleAnalysisGroupDOList.add(businessSubSampleAnalysisGroupDO);
}
//根据检测方法循环
BusinessAssayTaskDataDO businessAssayTaskDataDO = null;
//根据任务数判断是平行还是
String assayType = configSubSampleMethodDO.getTaskCount() > 1 ? QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL : QmsCommonConstant.ASSAY_TYPE_SINGLE_CUP;
//根据任务数循环
for (int i = 0; i < configSubSampleMethodDO.getTaskCount(); i++) {
//子样检测任务
businessAssayTaskDataDO = new BusinessAssayTaskDataDO();
businessAssayTaskDataDO.setId(IdWorker.getId());
businessAssayTaskDataDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId());
businessAssayTaskDataDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId());
businessAssayTaskDataDO.setBusinessSubSampleId(businessSubSampleDO.getId());
businessAssayTaskDataDO.setConfigAssayMethodId(configAssayMethodZhy.getId());
businessAssayTaskDataDO.setAssayType(assayType);
businessAssayTaskDataDO.setTaskType("常规");
businessAssayTaskDataDO.setConfigSampleFlowId(configSampleFlowSub.getId());
businessAssayTaskDataDO.setSampleFlowNodeKey(sampleFlowNodeSub.getNodeKey());
businessAssayTaskDataDO.setSampleFlowNodeTime(currentDateTime);
businessAssayTaskDataDO.setAssayDepartmentId(configAssayMethodZhy.getAssayDepartmentId());
businessAssayTaskDataDO.setAssayDepartmentName(configAssayMethodZhy.getAssayDepartmentName());
//查询S检测项目
ConfigAssayMethodProjectDO configAssayMethodProjectDO = configAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodIdZhy) && f.getDictionaryProjectId().equals(sDictionaryProjectId)).findFirst().orElse(null);
//检测项目
BusinessAssayProjectDataDO businessAssayProjectDataDO = new BusinessAssayProjectDataDO();
businessAssayProjectDataDO.setId(IdWorker.getId());
businessAssayProjectDataDO.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId());
businessAssayProjectDataDO.setConfigAssayMethodProjectId(configAssayMethodProjectDO.getId());
businessAssayProjectDataDO.setDictionaryProjectId(configAssayMethodProjectDO.getDictionaryProjectId());
businessAssayProjectDataDO.setDataType(configAssayMethodProjectDO.getDataType());
businessAssayProjectDataDO.setDecimalPosition(configAssayMethodProjectDO.getDecimalPosition());
businessAssayProjectDataDO.setUsage(QmsCommonConstant.ASSAY_PROJECT_USAGE_INGREDIENT);
businessAssayProjectDataDO.setIsEnabled(1);
businessAssayProjectDataDO.setIsNotAssessment(0);
businessAssayProjectDataDOList.add(businessAssayProjectDataDO);
List<ConfigAssayMethodProjectParameterDO> configAssayMethodProjectParameterDOList = configAssayMethodProjectParameterList.stream().filter(f -> f.getConfigAssayMethodProjectId().equals(configAssayMethodProjectDO.getId())).collect(Collectors.toList());
for (ConfigAssayMethodProjectParameterDO configAssayMethodProjectParameterDO : configAssayMethodProjectParameterDOList) {
BusinessAssayParameterDataDO businessAssayParameterDataDO = new BusinessAssayParameterDataDO();
businessAssayParameterDataDO.setId(IdWorker.getId());
businessAssayParameterDataDO.setConfigAssayMethodProjectParameterId(configAssayMethodProjectParameterDO.getId());
businessAssayParameterDataDO.setBusinessAssayProjectDataId(businessAssayProjectDataDO.getId());
businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId());
businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType());
businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition());
businessAssayParameterDataDOList.add(businessAssayParameterDataDO);
}
businessAssayTaskDataDO.setAssayProject("S");
businessAssayTaskDataDOList.add(businessAssayTaskDataDO);
}
}
sort++; sort++;
} }

View File

@@ -2,9 +2,14 @@ package com.zt.plat.module.qms.business.config.dal.mapper;
import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import com.zt.plat.module.qms.business.config.controller.vo.MaterialAssayStandardMethodPageReqVO; import com.zt.plat.module.qms.business.config.controller.vo.MaterialAssayStandardMethodPageReqVO;
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDetailDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardMethodDO; import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardMethodDO;
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@@ -29,5 +34,20 @@ public interface MaterialAssayStandardMethodMapper extends BaseMapperX<MaterialA
.eqIfPresent(MaterialAssayStandardMethodDO::getRemark, reqVO.getRemark()) .eqIfPresent(MaterialAssayStandardMethodDO::getRemark, reqVO.getRemark())
.orderByDesc(MaterialAssayStandardMethodDO::getId)); .orderByDesc(MaterialAssayStandardMethodDO::getId));
} }
/**
* 根据样品大类id和检测项目id获取对应的默认检测方法
* @param baseSampleId 样品大类id
* @param dictionaryProjectId 检测项目id
* @return
*/
default MaterialAssayStandardMethodDO selectByBaseSampleIdAndDictionaryProjectId(Long baseSampleId, Long dictionaryProjectId) {
return selectJoinOne(MaterialAssayStandardMethodDO.class, new MPJLambdaWrapperX<MaterialAssayStandardMethodDO>()
.leftJoin(MaterialAssayStandardDetailDO.class, MaterialAssayStandardDetailDO::getId, MaterialAssayStandardMethodDO::getMaterialAssayStandardDetailId)
.leftJoin(MaterialAssayStandardDO.class, MaterialAssayStandardDO::getId, MaterialAssayStandardDetailDO::getMaterialAssayStandardId)
.eq(MaterialAssayStandardDO::getBaseSampleId, baseSampleId)
.eq(MaterialAssayStandardDetailDO::getDictionaryProjectId, dictionaryProjectId)
.eq(MaterialAssayStandardMethodDO::getIsDefault, QmsCommonConstant.YES));
}
} }