@@ -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 + + ;
}
}