质控空白样

This commit is contained in:
2025-12-18 13:55:32 +08:00
parent 8977be538d
commit ae90142aad
7 changed files with 190 additions and 262 deletions

View File

@@ -56,14 +56,6 @@ public class SampleTaskAssignController implements BusinessControllerMarker {
return success(list);
}
/**
@GetMapping("/getAssayMethodList")
public CommonResult<?> getAssayMethodList(Long businessSubSampleId, Long configAssayMethodId) {
List<Object> list = sampleTaskAssignService.getAssayMethodList(businessSubSampleId, configAssayMethodId);
return success(list);
}
**/
@GetMapping("/getAssayMethodProjectList")
public CommonResult<?> getAssayMethodProjectList(String businessSubSampleIds, Long configAssayMethodId) {
List<Long> businessSubSampleIdList = Arrays.asList(businessSubSampleIds.split(",")).stream().map(Long::parseLong).toList();

View File

@@ -11,11 +11,17 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataD
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientParameterDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementParameterDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementProjectDataDO;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDetailMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCCoefficientDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCCoefficientParameterDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementParameterDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementProjectDataMapper;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
import jakarta.annotation.Resource;
@@ -36,6 +42,15 @@ public class SampleTaskAssignDataSaveOrUpdateCmp extends NodeComponent {
@Resource
private BusinessQCCoefficientParameterDataMapper businessQCCoefficientParameterDataMapper;
@Resource
private BusinessQCManagementDataMapper businessQCManagementDataMapper;
@Resource
private BusinessQCManagementProjectDataMapper businessQCManagementProjectDataMapper;
@Resource
private BusinessQCManagementParameterDataMapper businessQCManagementParameterDataMapper;
@Override
public void process() throws Exception {
@@ -53,6 +68,12 @@ public class SampleTaskAssignDataSaveOrUpdateCmp extends NodeComponent {
List<BusinessQCCoefficientParameterDataDO> businessQCCoefficientParameterDataList = sampleTaskAssignContext.getBusinessQCCoefficientParameterDataList();
List<BusinessQCManagementDataDO> businessQCManagementDataDOList = sampleTaskAssignContext.getBusinessQCManagementDataDOList();
List<BusinessQCManagementProjectDataDO> businessQCManagementProjectDataDOList = sampleTaskAssignContext.getBusinessQCManagementProjectDataDOList();
List<BusinessQCManagementParameterDataDO> businessQCManagementParameterDataDOList = sampleTaskAssignContext.getBusinessQCManagementParameterDataDOList();
if (CollUtil.isNotEmpty(savebusinessAssayTaskList)) {
this.businessAssayTaskMapper.insertBatch(savebusinessAssayTaskList);
}
@@ -76,6 +97,18 @@ public class SampleTaskAssignDataSaveOrUpdateCmp extends NodeComponent {
if (CollUtil.isNotEmpty(businessQCCoefficientParameterDataList)) {
this.businessQCCoefficientParameterDataMapper.insertBatch(businessQCCoefficientParameterDataList);
}
if (CollUtil.isNotEmpty(businessQCManagementDataDOList)) {
this.businessQCManagementDataMapper.insertBatch(businessQCManagementDataDOList);
}
if (CollUtil.isNotEmpty(businessQCManagementProjectDataDOList)) {
this.businessQCManagementProjectDataMapper.insertBatch(businessQCManagementProjectDataDOList);
}
if (CollUtil.isNotEmpty(businessQCManagementParameterDataDOList)) {
this.businessQCManagementParameterDataMapper.insertBatch(businessQCManagementParameterDataDOList);
}
}
}

View File

@@ -11,12 +11,20 @@ import com.yomahub.liteflow.core.NodeComponent;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientParameterDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementParameterDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementProjectDataDO;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCCoefficientDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCCoefficientParameterDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementParameterDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementProjectDataMapper;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectExtendRespVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigQCSampleMethodExtendRespVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigQCSampleMethodParameterExtendRespVO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectParameterDO;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodMapper;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectMapper;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectParameterMapper;
@@ -55,6 +63,15 @@ public class SampleTaskAssignQCSampleCmp extends NodeComponent {
@Resource
private BusinessQCCoefficientParameterDataMapper businessQCCoefficientParameterDataMapper;
@Resource
private BusinessQCManagementDataMapper businessQCManagementDataMapper;
@Resource
private BusinessQCManagementProjectDataMapper businessQCManagementProjectDataMapper;
@Resource
private BusinessQCManagementParameterDataMapper businessQCManagementParameterDataMapper;
@Override
public void process() throws Exception {
SampleTaskAssignContext sampleTaskAssignContext = this.getContextBean(SampleTaskAssignContext.class);
@@ -62,6 +79,11 @@ public class SampleTaskAssignQCSampleCmp extends NodeComponent {
List<BusinessQCCoefficientDataDO> businessQCCoefficientDataDOList = new ArrayList<>();
List<BusinessQCCoefficientParameterDataDO> businessQCCoefficientParameterDataDOList = new ArrayList<>();
List<BusinessQCManagementDataDO> businessQCManagementDataDOList = new ArrayList<>();
List<BusinessQCManagementProjectDataDO> businessQCManagementProjectDataDOList = new ArrayList<>();
List<BusinessQCManagementParameterDataDO> businessQCManagementParameterDataDOList = new ArrayList<>();
//分配任务
List<BusinessAssayTaskDO> businessAssayTaskList = new ArrayList<>();
//获取需要保存的分配任务
@@ -86,63 +108,140 @@ public class SampleTaskAssignQCSampleCmp extends NodeComponent {
//循环分配任务
for (BusinessAssayTaskDO businessAssayTaskDO : businessAssayTaskList) {
ConfigQCSampleMethodExtendRespVO configQCSampleMethodExtendRespVO = configQCSampleMethodList.stream().filter(f -> f.getConfigAssayMethodId().equals(businessAssayTaskDO.getConfigAssayMethodId()) && "kby".equals(f.getDictionaryBusinessKey())).findFirst().orElse(null);
ConfigQCSampleMethodExtendRespVO configQCSampleMethodExtendRespVO = configQCSampleMethodList.stream().filter(f -> f.getConfigAssayMethodId().equals(businessAssayTaskDO.getConfigAssayMethodId()) && ("kby".equals(f.getDictionaryBusinessKey()) || "zkkby".equals(f.getDictionaryBusinessKey()))).findFirst().orElse(null);
//不存在空白样,直接跳出
if (configQCSampleMethodExtendRespVO == null) {
break;
continue;
}
ConfigAssayMethodDO configAssayMethodDO = configAssayMethodMapper.selectById(businessAssayTaskDO.getConfigAssayMethodId());
//查询下质控数据,如果存在则跳出循环
List<BusinessQCCoefficientDataDO> businessQCCoefficientDataList = businessQCCoefficientDataMapper.selectByBusinessAssayTaskId(businessAssayTaskDO.getId());
//如果存在则跳出循环
if (CollUtil.isNotEmpty(businessQCCoefficientDataList)) {
break;
if ("kby".equals(configQCSampleMethodExtendRespVO.getDictionaryBusinessKey())) { //普通空白样
//查询下质控数据,如果存在则跳出循环
List<BusinessQCCoefficientDataDO> businessQCCoefficientDataList = businessQCCoefficientDataMapper.selectByBusinessAssayTaskId(businessAssayTaskDO.getId());
//如果存在则跳出循环
if (CollUtil.isNotEmpty(businessQCCoefficientDataList)) {
continue;
}
//根据默认配置的个数生成空白样
for (int i = 0; i < configQCSampleMethodExtendRespVO.getDefaultCount(); i++) {
BusinessQCCoefficientDataDO businessQCCoefficientDataDO = new BusinessQCCoefficientDataDO();
businessQCCoefficientDataDO.setId(IdWorker.getId());
businessQCCoefficientDataDO.setBusinessAssayTaskId(businessAssayTaskDO.getId());
businessQCCoefficientDataDO.setConfigAssayMethodId(configQCSampleMethodExtendRespVO.getConfigAssayMethodId());
businessQCCoefficientDataDO.setSampleName(configQCSampleMethodExtendRespVO.getDictionaryBusinessName());
if (StringUtils.isNotBlank(configQCSampleMethodExtendRespVO.getCodeRule())) {
String codeSample = sequenceUtil.genCode(configQCSampleMethodExtendRespVO.getCodeRule());
businessQCCoefficientDataDO.setSampleCode(codeSample);
}
businessQCCoefficientDataDO.setDictionaryBusinessId(configQCSampleMethodExtendRespVO.getDictionaryBusinessId());
businessQCCoefficientDataDO.setDictionaryBusinessKey(configQCSampleMethodExtendRespVO.getDictionaryBusinessKey());
businessQCCoefficientDataDO.setAssayDepartmentId(configAssayMethodDO.getAssayDepartmentId());
businessQCCoefficientDataDO.setAssayDepartmentName(configAssayMethodDO.getAssayDepartmentName());
businessQCCoefficientDataDO.setAssayOperator(businessAssayTaskDO.getAssayOperator());
businessQCCoefficientDataDO.setAssayOperatorId(businessAssayTaskDO.getAssayOperatorId());
businessQCCoefficientDataDO.setAssayProject("");
businessQCCoefficientDataDO.setAssignTaskTime(businessAssayTaskDO.getTaskAssignTime());
businessQCCoefficientDataDO.setIsAssignTasked(QmsCommonConstant.YES);
businessQCCoefficientDataDO.setIsReported(QmsCommonConstant.NO);
businessQCCoefficientDataDOList.add(businessQCCoefficientDataDO);
List<ConfigQCSampleMethodParameterExtendRespVO> configQCSampleMethodParameterExtendRespVOs = configQcSampleMethodParameterList.stream().filter(f -> f.getConfigQCSampleMethodId().equals(configQCSampleMethodExtendRespVO.getId())).collect(Collectors.toList());
for (ConfigQCSampleMethodParameterExtendRespVO configQCSampleMethodParameterExtendRespVO : configQCSampleMethodParameterExtendRespVOs) {
BusinessQCCoefficientParameterDataDO businessQCCoefficientParameterDataDO = new BusinessQCCoefficientParameterDataDO();
businessQCCoefficientParameterDataDO.setBusinessQCCoefficientDataId(businessQCCoefficientDataDO.getId());
businessQCCoefficientParameterDataDO.setConfigQCSampleMethodParameterId(configQCSampleMethodParameterExtendRespVO.getId());
businessQCCoefficientParameterDataDO.setDictionaryParameterId(configQCSampleMethodParameterExtendRespVO.getDictionaryParameterId());
businessQCCoefficientParameterDataDO.setDataType(configQCSampleMethodParameterExtendRespVO.getDataType());
businessQCCoefficientParameterDataDO.setDecimalPosition(configQCSampleMethodParameterExtendRespVO.getDecimalPosition());
businessQCCoefficientParameterDataDO.setValue(configQCSampleMethodParameterExtendRespVO.getDefaultValue());
businessQCCoefficientParameterDataDOList.add(businessQCCoefficientParameterDataDO);
}
}
} else if ("zkkby".equals(configQCSampleMethodExtendRespVO.getDictionaryBusinessKey())) {//质控空白样
//查询质控数据,如果存在则跳出循环
List<BusinessQCManagementDataDO> businessQCManagementDataList = businessQCManagementDataMapper.selectByBusinessAssayTaskId(businessAssayTaskDO.getId());
if (CollUtil.isNotEmpty(businessQCManagementDataList)) {
continue;
}
//分析项目
List<ConfigAssayMethodProjectExtendRespVO> configAssayMethodProjectExtendRespList = configAssayMethodProjectMapper.selectByConfigAssayMethodId(businessAssayTaskDO.getConfigAssayMethodId());
List<Long> configAssayMethodProjectIds = configAssayMethodProjectExtendRespList.stream().map(m -> m.getId()).collect(Collectors.toList());
//分析项目参数
List<ConfigAssayMethodProjectParameterDO> configAssayMethodProjectParameterList = configAssayMethodProjectParameterMapper.selectByConfigAssayMethodProjectIds(configAssayMethodProjectIds);
//分析项目
String assayProject = configAssayMethodProjectExtendRespList.stream().map(m -> m.getShowName()).collect(Collectors.joining(","));
for (int i = 0; i < configQCSampleMethodExtendRespVO.getDefaultCount(); i++) {
BusinessQCManagementDataDO businessQCManagementDataDO = new BusinessQCManagementDataDO();
businessQCManagementDataDO.setId(IdWorker.getId());
businessQCManagementDataDO.setBusinessAssayTaskId(businessAssayTaskDO.getId());
businessQCManagementDataDO.setConfigAssayMethodId(businessAssayTaskDO.getConfigAssayMethodId());
businessQCManagementDataDO.setSampleName(configQCSampleMethodExtendRespVO.getDictionaryBusinessName());
if (StringUtils.isNotBlank(configQCSampleMethodExtendRespVO.getCodeRule())) {
String codeSample = sequenceUtil.genCode(configQCSampleMethodExtendRespVO.getCodeRule());
businessQCManagementDataDO.setSampleCode(codeSample);
}
businessQCManagementDataDO.setBusinessStandardSampleId(null);//特殊空白样无定值样
businessQCManagementDataDO.setDictionaryBusinessId(configQCSampleMethodExtendRespVO.getDictionaryBusinessId());
businessQCManagementDataDO.setDictionaryBusinessKey(configQCSampleMethodExtendRespVO.getDictionaryBusinessKey());
businessQCManagementDataDO.setAssayDepartmentId(configAssayMethodDO.getAssayDepartmentId());
businessQCManagementDataDO.setAssayDepartmentName(configAssayMethodDO.getAssayDepartmentName());
businessQCManagementDataDO.setAssayOperator(businessAssayTaskDO.getAssayOperator());
businessQCManagementDataDO.setAssayOperatorId(businessAssayTaskDO.getAssayOperatorId());
businessQCManagementDataDO.setAssayProject(assayProject);
businessQCManagementDataDO.setAssignTaskTime(businessAssayTaskDO.getTaskAssignTime());
businessQCManagementDataDO.setIsAssignTasked(QmsCommonConstant.YES);
businessQCManagementDataDO.setIsReported(QmsCommonConstant.NO);
businessQCManagementDataDOList.add(businessQCManagementDataDO);
for (ConfigAssayMethodProjectExtendRespVO configAssayMethodProjectExtendRespVO : configAssayMethodProjectExtendRespList) {
BusinessQCManagementProjectDataDO businessQCManagementProjectDataDO = new BusinessQCManagementProjectDataDO();
businessQCManagementProjectDataDO.setId(IdWorker.getId());
businessQCManagementProjectDataDO.setBusinessQCManagementDataId(businessQCManagementDataDO.getId());
businessQCManagementProjectDataDO.setConfigAssayMethodProjectId(configAssayMethodProjectExtendRespVO.getId());
businessQCManagementProjectDataDO.setDictionaryProjectId(configAssayMethodProjectExtendRespVO.getDictionaryProjectId());
businessQCManagementProjectDataDO.setUsage(QmsCommonConstant.ASSAY_PROJECT_USAGE_QUALITY_CONTROL);
businessQCManagementProjectDataDO.setSymbol("=");
businessQCManagementProjectDataDO.setDataType(configAssayMethodProjectExtendRespVO.getDataType());
businessQCManagementProjectDataDO.setDecimalPosition(configAssayMethodProjectExtendRespVO.getDecimalPosition());
businessQCManagementProjectDataDO.setIsEnabled(configAssayMethodProjectExtendRespVO.getIsDefaultEnabled());
businessQCManagementProjectDataDOList.add(businessQCManagementProjectDataDO);
List<ConfigAssayMethodProjectParameterDO> configAssayMethodProjectParameterDoList = configAssayMethodProjectParameterList.stream().filter(f -> f.getConfigAssayMethodProjectId().equals(configAssayMethodProjectExtendRespVO.getId())).collect(Collectors.toList());
for (ConfigAssayMethodProjectParameterDO configAssayMethodProjectParameterDO : configAssayMethodProjectParameterDoList) {
BusinessQCManagementParameterDataDO businessQCManagementParameterDataDO = new BusinessQCManagementParameterDataDO();
businessQCManagementParameterDataDO.setBusinessQCManagementProjectDataId(businessQCManagementProjectDataDO.getId());
businessQCManagementParameterDataDO.setConfigAssayMethodProjectParameterId(configAssayMethodProjectParameterDO.getId());
businessQCManagementParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId());
businessQCManagementParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType());
businessQCManagementParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition());
businessQCManagementParameterDataDOList.add(businessQCManagementParameterDataDO);
}
}
}
}
//根据默认配置的个数生成空白样
for (int i = 0; i < configQCSampleMethodExtendRespVO.getDefaultCount(); i++) {
BusinessQCCoefficientDataDO businessQCCoefficientDataDO = new BusinessQCCoefficientDataDO();
businessQCCoefficientDataDO.setId(IdWorker.getId());
businessQCCoefficientDataDO.setBusinessAssayTaskId(businessAssayTaskDO.getId());
businessQCCoefficientDataDO.setConfigAssayMethodId(configQCSampleMethodExtendRespVO.getConfigAssayMethodId());
businessQCCoefficientDataDO.setSampleName(configQCSampleMethodExtendRespVO.getDictionaryBusinessName());
if (StringUtils.isNotBlank(configQCSampleMethodExtendRespVO.getCodeRule())) {
String codeSample = sequenceUtil.genCode(configQCSampleMethodExtendRespVO.getCodeRule());
businessQCCoefficientDataDO.setSampleCode(codeSample);
}
businessQCCoefficientDataDO.setDictionaryBusinessId(configQCSampleMethodExtendRespVO.getDictionaryBusinessId());
businessQCCoefficientDataDO.setDictionaryBusinessKey(configQCSampleMethodExtendRespVO.getDictionaryBusinessKey());
businessQCCoefficientDataDO.setAssayDepartmentId(configAssayMethodDO.getAssayDepartmentId());
businessQCCoefficientDataDO.setAssayDepartmentName(configAssayMethodDO.getAssayDepartmentName());
businessQCCoefficientDataDO.setAssayOperator(businessAssayTaskDO.getAssayOperator());
businessQCCoefficientDataDO.setAssayOperatorId(businessAssayTaskDO.getAssayOperatorId());
businessQCCoefficientDataDO.setAssayProject("");
businessQCCoefficientDataDO.setAssignTaskTime(businessAssayTaskDO.getTaskAssignTime());
businessQCCoefficientDataDO.setIsAssignTasked(QmsCommonConstant.YES);
businessQCCoefficientDataDO.setIsReported(QmsCommonConstant.NO);
businessQCCoefficientDataDOList.add(businessQCCoefficientDataDO);
List<ConfigQCSampleMethodParameterExtendRespVO> configQCSampleMethodParameterExtendRespVOs = configQcSampleMethodParameterList.stream().filter(f -> f.getConfigQCSampleMethodId().equals(configQCSampleMethodExtendRespVO.getId())).collect(Collectors.toList());
for (ConfigQCSampleMethodParameterExtendRespVO configQCSampleMethodParameterExtendRespVO : configQCSampleMethodParameterExtendRespVOs) {
BusinessQCCoefficientParameterDataDO businessQCCoefficientParameterDataDO = new BusinessQCCoefficientParameterDataDO();
businessQCCoefficientParameterDataDO.setBusinessQCCoefficientDataId(businessQCCoefficientDataDO.getId());
businessQCCoefficientParameterDataDO.setConfigQCSampleMethodParameterId(configQCSampleMethodParameterExtendRespVO.getId());
businessQCCoefficientParameterDataDO.setDictionaryParameterId(configQCSampleMethodParameterExtendRespVO.getDictionaryParameterId());
businessQCCoefficientParameterDataDO.setDataType(configQCSampleMethodParameterExtendRespVO.getDataType());
businessQCCoefficientParameterDataDO.setDecimalPosition(configQCSampleMethodParameterExtendRespVO.getDecimalPosition());
businessQCCoefficientParameterDataDO.setValue(configQCSampleMethodParameterExtendRespVO.getDefaultValue());
businessQCCoefficientParameterDataDOList.add(businessQCCoefficientParameterDataDO);
}
}
}
sampleTaskAssignContext.setBusinessQCCoefficientDataList(businessQCCoefficientDataDOList);
sampleTaskAssignContext.setBusinessQCCoefficientParameterDataList(businessQCCoefficientParameterDataDOList);
sampleTaskAssignContext.setBusinessQCManagementDataDOList(businessQCManagementDataDOList);
sampleTaskAssignContext.setBusinessQCManagementProjectDataDOList(businessQCManagementProjectDataDOList);
sampleTaskAssignContext.setBusinessQCManagementParameterDataDOList(businessQCManagementParameterDataDOList);
}
}

View File

@@ -10,6 +10,9 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataD
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientParameterDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementParameterDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementProjectDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
import com.zt.plat.module.qms.business.bus.liteflow.param.AssignAssayUser;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
@@ -89,5 +92,14 @@ public class SampleTaskAssignContext {
/** 质控样-(空白、标准)检测参数数据 **/
private List<BusinessQCCoefficientParameterDataDO> businessQCCoefficientParameterDataList;
/** 质控样-(质控空白) **/
private List<BusinessQCManagementDataDO> businessQCManagementDataDOList;
/** 质控样-(质控空白)检测项目 **/
private List<BusinessQCManagementProjectDataDO> businessQCManagementProjectDataDOList;
/** 质控样-(质控空白)检测项目参数 **/
private List<BusinessQCManagementParameterDataDO> businessQCManagementParameterDataDOList;
}

View File

@@ -947,7 +947,7 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
businessAssayParameterDataMapper.updateBatch(businessAssayParameterDataList);
}
} else if ("zky".equals(businessAssayTaskAnalysisDataRespVO.getAnalysisType())) {
} else if ("zky".equals(businessAssayTaskAnalysisDataRespVO.getAnalysisType()) || "zkkby".equals(businessAssayTaskAnalysisDataRespVO.getAnalysisType())) {
List<BusinessQCManagementDataDO> BusinessQCManagementDataList = businessQCManagementDataMapper.selectByBusinessAssayTaskId(businessAssayTaskDO.getId());
List<Long> businessQCManagementDataIdList = BusinessQCManagementDataList.stream().map(m -> m.getId()).collect(Collectors.toList());

View File

@@ -31,14 +31,6 @@ public interface SampleTaskAssignService {
*/
List<UnAssignTaskedSubSampleRespVO> getAssaySampleList(BusinessAssayTaskDataReqVO reqVO);
/**
* 根据子样id查询分析方法
* @param businessSubSampleId
* @param configAssayMethodId
* @return
*/
// List<Object> getAssayMethodList(Long businessSubSampleId, Long configAssayMethodId);
/**
* 根据子样id列表查询分析方法项目
* @param businessSubSampleIdList 子样id列表

View File

@@ -187,65 +187,6 @@ public class SampleTaskAssignServiceImpl implements SampleTaskAssignService {
List<UnAssignTaskedSubSampleRespVO> list = businessAssayTaskDataMapper.selectUnAssignTaskedSubSample(reqVO);
return list;
}
/**
@Override
public List<Object> getAssayMethodList(Long businessSubSampleId, Long configAssayMethodId) {
List<Object> resutList = new ArrayList<>();
//当前登录用户
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
Long visitDeptId = loginUser.getVisitDeptId();
//子样
BusinessSubSampleDO businessSubSampleDO = businessSubSampleMapper.selectById(businessSubSampleId);
//原检测项目
List<ConfigAssayMethodProjectExtendRespVO> oldConfigAssayMethodProjectList = configAssayMethodProjectMapper.selectByConfigAssayMethodId(configAssayMethodId);
//原检测项目字典id列表
List<Long> oldDictionaryProjectIdList = oldConfigAssayMethodProjectList.stream().map(m -> m.getDictionaryProjectId()).collect(Collectors.toList());
//子样对应的检测任务
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessSubSampleId(businessSubSampleId);
//查询子样配置的方法
List<ConfigSubSampleMethodExtendRespVO> configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdAndAssayDepartmentId(businessSubSampleDO.getConfigSubSampleId(), visitDeptId);
JSONObject jsonObject = null;
for (ConfigSubSampleMethodExtendRespVO configSubSampleMethod : configSubSampleMethodList) {
jsonObject = new JSONObject();
jsonObject.put("configAssayMethodId", configSubSampleMethod.getConfigAssayMethodId());
jsonObject.put("configAssayMethodName", configSubSampleMethod.getConfigAssayMethodName());
jsonObject.put("configAssayMethodNameAndCategory", configSubSampleMethod.getConfigAssayMethodNameAndCategory());
jsonObject.put("configAssayMethodCode", configSubSampleMethod.getConfigAssayMethodCode());
StringBuilder assayProjectBuilder = new StringBuilder();
List<ConfigAssayMethodProjectExtendRespVO> configAssayMethodProjectList = configAssayMethodProjectMapper.selectByConfigAssayMethodId(configSubSampleMethod.getConfigAssayMethodId());
//判定是否存在原检测项目
boolean isExistProject = configAssayMethodProjectList.stream().anyMatch(m -> oldDictionaryProjectIdList.contains(m.getDictionaryProjectId()));
if (!isExistProject) {//如果不存在,则跳出循环
continue;
}
for (ConfigAssayMethodProjectExtendRespVO configAssayMethodProject : configAssayMethodProjectList) {
assayProjectBuilder.append(configAssayMethodProject.getShowName()).append(",");
}
assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length());
jsonObject.put("assayProject", assayProjectBuilder.toString());
boolean checked = businessAssayTaskDataDOList.stream().anyMatch(m -> m.getConfigAssayMethodId().equals(configSubSampleMethod.getConfigAssayMethodId()));
boolean disabled = businessAssayTaskDataDOList.stream().anyMatch(m -> m.getConfigAssayMethodId().equals(configSubSampleMethod.getConfigAssayMethodId()) && m.getIsAssignTasked().equals(QmsCommonConstant.YES));
jsonObject.put("checked", checked);
jsonObject.put("disabled", disabled);
resutList.add(jsonObject);
}
return resutList;
}
**/
@Override
public List<AssayMethodProjectRespVO> getAssayMethodProjectList(List<Long> businessSubSampleIdList, Long configAssayMethodId) {
@@ -709,147 +650,6 @@ public class SampleTaskAssignServiceImpl implements SampleTaskAssignService {
}
/**
@Override
@Transactional(rollbackFor = Exception.class)
public void changeMethod(ChangeAssayMethodReqVO req) {
List<BusinessAssayReportDataDO> updateBusinessAssayReportDataDOList = new ArrayList<>();
List<BusinessAssayTaskDataDO> saveBusinessAssayTaskDataDOList = new ArrayList<>();
List<BusinessAssayProjectDataDO> saveBusinessAssayProjectDataDOList = new ArrayList<>();
List<BusinessAssayParameterDataDO> saveBusinessAssayParameterDataDOList = new ArrayList<>();
List<Long> removeProjectIdList = new ArrayList<>();
List<Long> removeParameterIdList = new ArrayList<>();
//子样
BusinessSubSampleDO businessSubSampleDO = businessSubSampleMapper.selectById(req.getBusinessSubSampleId());
//查询检测任务
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodId(businessSubSampleDO.getBusinessSubParentSampleId(), req.getConfigAssayMethodId());
boolean disabled = businessAssayTaskDataDOList.stream().anyMatch(m -> m.getIsAssignTasked().equals(QmsCommonConstant.YES));
if (disabled) {
throw new ServiceException(10010, "当前样品存在已分配任务,不允许修改分析方法");
}
//查询报表数据
List<BusinessAssayReportDataDO> businessAssayReportDataDOList = businessAssayReportDataMapper.selectBytBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId());
for (BusinessAssayReportDataDO businessAssayReportDataDO : businessAssayReportDataDOList) {
String dataSource = businessAssayReportDataDO.getDataSource();
if (dataSource.contains(req.getConfigAssayMethodId().toString())) {//判定是否存在
List<Long> dataSourceList = new ArrayList<>();
String[] dataSourceSplit = dataSource.split(",");
for (int i = 0; i < dataSourceSplit.length; i++) {
dataSourceList.add(Long.parseLong(dataSourceSplit[i]));
}
//移除当前的
dataSourceList.remove(req.getConfigAssayMethodId());
//添加新的
dataSourceList.addAll(req.getChangeConfigAssayMethodIdList());
//重新赋值
businessAssayReportDataDO.setDataSource(CollUtil.join(dataSourceList, ","));
//添加到更新列表
updateBusinessAssayReportDataDOList.add(businessAssayReportDataDO);
}
}
for (BusinessAssayTaskDataDO businessAssayTaskDataDO : businessAssayTaskDataDOList) {
//查询旧的
List<BusinessAssayProjectDataExtendRespVO> businessAssayProjectDataExtendRespVOs = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataId(businessAssayTaskDataDO.getId());
List<Long> businessAssayProjectDataIdList = businessAssayProjectDataExtendRespVOs.stream().map(m -> m.getId()).collect(Collectors.toList());
removeProjectIdList.addAll(businessAssayProjectDataIdList);
List<BusinessAssayParameterDataDO> businessAssayParameterDataDOList = businessAssayParameterDataMapper.selectByBusinessAssayProjectDataIds(businessAssayProjectDataIdList);
List<Long> businessAssayParameterDataDOIdList = businessAssayParameterDataDOList.stream().map(m -> m.getId()).collect(Collectors.toList());
removeParameterIdList.addAll(businessAssayParameterDataDOIdList);
int i = 0;
for (Long configAssayMethodId : req.getChangeConfigAssayMethodIdList()) {
Long businessAssayTaskDataId = null;
if (i == 0) {
businessAssayTaskDataId = businessAssayTaskDataDO.getId();
businessAssayTaskDataDO.setConfigAssayMethodId(configAssayMethodId);
} else {
businessAssayTaskDataId = IdWorker.getId();
BusinessAssayTaskDataDO newBusinessAssayTaskDataDO = new BusinessAssayTaskDataDO();
newBusinessAssayTaskDataDO.setId(businessAssayTaskDataId);
newBusinessAssayTaskDataDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId());
newBusinessAssayTaskDataDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId());
newBusinessAssayTaskDataDO.setBusinessSubSampleId(businessSubSampleDO.getId());
newBusinessAssayTaskDataDO.setConfigAssayMethodId(configAssayMethodId);
newBusinessAssayTaskDataDO.setAssayType(businessAssayTaskDataDO.getAssayType());
newBusinessAssayTaskDataDO.setTaskType(businessAssayTaskDataDO.getTaskType());
newBusinessAssayTaskDataDO.setConfigSampleFlowId(businessAssayTaskDataDO.getConfigSampleFlowId());
newBusinessAssayTaskDataDO.setSampleFlowNodeKey(businessAssayTaskDataDO.getSampleFlowNodeKey());
newBusinessAssayTaskDataDO.setSampleFlowNodeTime(businessAssayTaskDataDO.getSampleFlowNodeTime());
newBusinessAssayTaskDataDO.setAssayDepartmentId(businessAssayTaskDataDO.getAssayDepartmentId());
newBusinessAssayTaskDataDO.setAssayDepartmentName(businessAssayTaskDataDO.getAssayDepartmentName());
saveBusinessAssayTaskDataDOList.add(newBusinessAssayTaskDataDO);
}
//查询新的检测项目
List<ConfigAssayMethodProjectExtendRespVO> configAssayMethodProjectDOList = configAssayMethodProjectMapper.selectByConfigAssayMethodId(businessAssayTaskDataDO.getConfigAssayMethodId());
StringBuilder assayProjectBuilder = new StringBuilder();
for (ConfigAssayMethodProjectExtendRespVO configAssayMethodProjectDO : configAssayMethodProjectDOList) {
assayProjectBuilder.append(configAssayMethodProjectDO.getShowName()).append(",");
//检测项目
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.setIsEnabled(1);
businessAssayProjectDataDO.setIsNotAssessment(0);
saveBusinessAssayProjectDataDOList.add(businessAssayProjectDataDO);
List<ConfigAssayMethodProjectParameterDO> configAssayMethodProjectParameterDOList = configAssayMethodProjectParameterMapper.selectByConfigAssayMethodProjectId(configAssayMethodProjectDO.getId());
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());
saveBusinessAssayParameterDataDOList.add(businessAssayParameterDataDO);
}
}
i++;
}
}
businessAssayTaskDataMapper.updateBatch(businessAssayTaskDataDOList);
businessAssayProjectDataMapper.deleteByIds(removeProjectIdList);
businessAssayParameterDataMapper.deleteByIds(removeParameterIdList);
//更新报表数据来源
if (updateBusinessAssayReportDataDOList.size() > 0) {
businessAssayReportDataMapper.updateBatch(updateBusinessAssayReportDataDOList);
}
if (saveBusinessAssayTaskDataDOList.size() > 0) {
businessAssayTaskDataMapper.insertBatch(saveBusinessAssayTaskDataDOList);
}
if (saveBusinessAssayProjectDataDOList.size() > 0) {
businessAssayProjectDataMapper.insertBatch(saveBusinessAssayProjectDataDOList);
}
if (saveBusinessAssayParameterDataDOList.size() > 0) {
businessAssayParameterDataMapper.insertBatch(saveBusinessAssayParameterDataDOList);
}
}
**/
@Override
@Transactional(rollbackFor = Exception.class)
public LiteflowResponse methodAssign(SampleTaskAssignMethodParam param) {