This commit is contained in:
2025-11-05 16:53:15 +08:00
parent a4105aef49
commit fb8706441b
7 changed files with 181 additions and 2 deletions

View File

@@ -8,7 +8,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskAnalysisSampleProjectRespVO; import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.service.SampleAnalysisService; import com.zt.plat.module.qms.business.bus.service.SampleAnalysisService;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@@ -39,6 +39,12 @@ public class SampleAnalysisController {
return success("成功"); return success("成功");
} }
@GetMapping("/batchSampleAndQcAnalysisByTaskId")
public CommonResult<?> batchSampleAndQcAnalysisByTaskId(Long businessAssayTaskId) {
BusinessAssayTaskAnalysisSampleAndQcProjectRespVO businessAssayTaskAnalysisSampleAndQcProject = sampleAnalysisService.batchSampleAndQcAnalysisByTaskId(businessAssayTaskId);
return success(businessAssayTaskAnalysisSampleAndQcProject);
}
@PostMapping("/submitSampleAnalysisByTaskId") @PostMapping("/submitSampleAnalysisByTaskId")
public CommonResult<?> submitSampleAnalysisByTaskId(Long businessAssayTaskId) { public CommonResult<?> submitSampleAnalysisByTaskId(Long businessAssayTaskId) {

View File

@@ -0,0 +1,56 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import java.time.LocalDateTime;
import java.util.List;
import com.zt.plat.module.qms.business.config.controller.vo.*;
import lombok.Data;
/**
* 分配任务单 分析样品及质控样品检测项目
*/
@Data
public class BusinessAssayTaskAnalysisSampleAndQcProjectRespVO {
/** 分配任务单id **/
private Long businessAssayTaskId;
/** 任务分配单编号 **/
private String businessAssayTasNo;
/** 任务分配单名称 **/
private String businessAssayTasName;
/** 分析人员 **/
private String assayOperator;
/** 分析时间 **/
private LocalDateTime assayTime;
/** 检测方法id **/
private Long configAssayMethodId;
/** 检测方法名称 **/
private String configAssayMethodName;
/** 数据集key **/
private String dataCollectionKey;
/** 数据集id **/
private Long dataCollectionId;
/** 动态表单值 **/
private String formValue;
/** 分配任务的分析数据 **/
private List<BusinessAssayTaskAnalysisDataRespVO> assayTaskAnalysisDataList;
/** 检测方法分析项目补正系数 **/
private List<ConfigAssayMethodProjectCoefficientRespVO> configAssayMethodProjectCoefficientList;
/** 检测方法范围 **/
private List<ConfigAssayMethodProjectRangeRespVO> configAssayMethodProjectRangeList;
}

View File

@@ -4,6 +4,7 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectCoefficientRespVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectRangeRespVO; import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectRangeRespVO;
import lombok.Data; import lombok.Data;
@@ -48,6 +49,9 @@ public class BusinessAssayTaskAnalysisSampleProjectRespVO {
/** 分析的数据 **/ /** 分析的数据 **/
private List<Map<String, Object>> datas; private List<Map<String, Object>> datas;
/** 检测方法分析项目补正系数 **/
private List<ConfigAssayMethodProjectCoefficientRespVO> configAssayMethodProjectCoefficientList;
/** 检测方法范围 **/ /** 检测方法范围 **/
private List<ConfigAssayMethodProjectRangeRespVO> configAssayMethodProjectRangeList; private List<ConfigAssayMethodProjectRangeRespVO> configAssayMethodProjectRangeList;

View File

@@ -35,5 +35,10 @@ public interface BusinessQCProjectDataMapper extends BaseMapperX<BusinessQCProje
.eqIfPresent(BusinessQCProjectDataDO::getRemark, reqVO.getRemark()) .eqIfPresent(BusinessQCProjectDataDO::getRemark, reqVO.getRemark())
.orderByDesc(BusinessQCProjectDataDO::getId)); .orderByDesc(BusinessQCProjectDataDO::getId));
} }
default List<BusinessQCProjectDataDO> selectByBusinessQCDataIds(List<Long> businessQCDataIds) {
return selectList(new LambdaQueryWrapperX<BusinessQCProjectDataDO>()
.in(BusinessQCProjectDataDO::getBusinessQCDataId, businessQCDataIds));
}
} }

View File

@@ -1,7 +1,6 @@
package com.zt.plat.module.qms.business.bus.service; package com.zt.plat.module.qms.business.bus.service;
import com.zt.plat.module.qms.business.bus.controller.vo.*; import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskAnalysisSampleProjectRespVO;
/** /**
* <b>SampleAnalysisService</b> * <b>SampleAnalysisService</b>
@@ -30,6 +29,13 @@ public interface SampleAnalysisService {
*/ */
void saveBatchSampleAnalysis(BusinessAssayTaskAnalysisSampleProjectRespVO vo); void saveBatchSampleAnalysis(BusinessAssayTaskAnalysisSampleProjectRespVO vo);
/**
* 根据分配任务id 获取任务分配单 分析样品项目及品控样品项目
* @param businessAssayTaskId
* @return
*/
BusinessAssayTaskAnalysisSampleAndQcProjectRespVO batchSampleAndQcAnalysisByTaskId(Long businessAssayTaskId);
/** /**
* 根据任务单id提交分析数据 * 根据任务单id提交分析数据
* @param businessAssayTaskId 任务单id * @param businessAssayTaskId 任务单id

View File

@@ -23,22 +23,33 @@ import com.zt.plat.module.qms.business.bus.controller.vo.BatchSampleAnalysisColu
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayParameterDataReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayParameterDataReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayProjectAndParameterRespVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayProjectAndParameterRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayProjectDataReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayProjectDataReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskAnalysisSampleAndQcProjectRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskAnalysisSampleProjectRespVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskAnalysisSampleProjectRespVO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayParameterDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayParameterDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCDataDO;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayParameterDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayParameterDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayProjectDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayProjectDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper; 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.BusinessAssayTaskDetailMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCParameterDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCProjectDataMapper;
import com.zt.plat.module.qms.business.config.controller.vo.BusinessAssayTaskAnalysisDataRespVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectCoefficientRespVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectRangeRespVO; import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectRangeRespVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigQCSampleMethodExtendRespVO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectCoefficientDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectRangeDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectRangeDO;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodMapper;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectCoefficientMapper;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectRangeMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectRangeMapper;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigQCSampleMethodMapper;
import com.zt.plat.module.qms.common.data.dal.dataobject.DataCollectionDO; import com.zt.plat.module.qms.common.data.dal.dataobject.DataCollectionDO;
import com.zt.plat.module.qms.common.data.service.DataCollectionService; import com.zt.plat.module.qms.common.data.service.DataCollectionService;
import com.zt.plat.module.qms.enums.QmsCommonConstant; import com.zt.plat.module.qms.enums.QmsCommonConstant;
@@ -67,6 +78,9 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
@Resource @Resource
private ConfigAssayMethodProjectRangeMapper configAssayMethodProjectRangeMapper; private ConfigAssayMethodProjectRangeMapper configAssayMethodProjectRangeMapper;
@Resource
private ConfigAssayMethodProjectCoefficientMapper configAssayMethodProjectCoefficientMapper;
@Resource @Resource
private BusinessAssayTaskMapper businessAssayTaskMapper; private BusinessAssayTaskMapper businessAssayTaskMapper;
@@ -82,6 +96,18 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
@Resource @Resource
private BusinessAssayParameterDataMapper businessAssayParameterDataMapper; private BusinessAssayParameterDataMapper businessAssayParameterDataMapper;
@Resource
private ConfigQCSampleMethodMapper configQCSampleMethodMapper;
@Resource
private BusinessQCDataMapper businessQCDataMapper;
@Resource
private BusinessQCProjectDataMapper businessQCProjectDataMapper;
@Resource
private BusinessQCParameterDataMapper businessQCParameterDataMapper;
@Resource @Resource
private DataCollectionService dataCollectionService; private DataCollectionService dataCollectionService;
@@ -180,6 +206,10 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
List<ConfigAssayMethodProjectRangeDO> configAssayMethodProjectRangeDOList = configAssayMethodProjectRangeMapper.selectList(new LambdaQueryWrapperX<ConfigAssayMethodProjectRangeDO>().eq(ConfigAssayMethodProjectRangeDO::getConfigAssayMethodId, businessAssayTaskDO.getConfigAssayMethodId())); List<ConfigAssayMethodProjectRangeDO> configAssayMethodProjectRangeDOList = configAssayMethodProjectRangeMapper.selectList(new LambdaQueryWrapperX<ConfigAssayMethodProjectRangeDO>().eq(ConfigAssayMethodProjectRangeDO::getConfigAssayMethodId, businessAssayTaskDO.getConfigAssayMethodId()));
businessAssayTaskAnalysisSampleProjectRespVO.setConfigAssayMethodProjectRangeList(BeanUtils.toBean(configAssayMethodProjectRangeDOList, ConfigAssayMethodProjectRangeRespVO.class)); businessAssayTaskAnalysisSampleProjectRespVO.setConfigAssayMethodProjectRangeList(BeanUtils.toBean(configAssayMethodProjectRangeDOList, ConfigAssayMethodProjectRangeRespVO.class));
//查询补正系数
List<ConfigAssayMethodProjectCoefficientDO> configAssayMethodProjectCoefficientDOList = configAssayMethodProjectCoefficientMapper.selectList(new LambdaQueryWrapperX<ConfigAssayMethodProjectCoefficientDO>().eq(ConfigAssayMethodProjectCoefficientDO::getConfigAssayMethodId, businessAssayTaskDO.getConfigAssayMethodId()));
businessAssayTaskAnalysisSampleProjectRespVO.setConfigAssayMethodProjectCoefficientList(BeanUtils.toBean(configAssayMethodProjectCoefficientDOList, ConfigAssayMethodProjectCoefficientRespVO.class));
return businessAssayTaskAnalysisSampleProjectRespVO; return businessAssayTaskAnalysisSampleProjectRespVO;
} }
@@ -304,6 +334,50 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
} }
} }
@Override
public BusinessAssayTaskAnalysisSampleAndQcProjectRespVO batchSampleAndQcAnalysisByTaskId(Long businessAssayTaskId) {
BusinessAssayTaskAnalysisSampleAndQcProjectRespVO businessAssayTaskAnalysisSampleAndQcProjectRespVO = new BusinessAssayTaskAnalysisSampleAndQcProjectRespVO();
BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectById(businessAssayTaskId);
if (businessAssayTaskDO == null) {
throw new ServiceException(1_032_100_000, "未找到任务分配单");
}
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setBusinessAssayTaskId(businessAssayTaskId);
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setBusinessAssayTasNo(businessAssayTaskDO.getTaskNo());
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setBusinessAssayTasName(businessAssayTaskDO.getTaskName());
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setAssayOperator(businessAssayTaskDO.getAssayOperator());
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setAssayTime(businessAssayTaskDO.getAssayTime());
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setConfigAssayMethodId(businessAssayTaskDO.getConfigAssayMethodId());
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setDataCollectionId(businessAssayTaskDO.getFormDataCollectionId());
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setFormValue(businessAssayTaskDO.getFormValue());
ConfigAssayMethodDO configAssayMethodDO = configAssayMethodMapper.selectById(businessAssayTaskDO.getConfigAssayMethodId());
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setConfigAssayMethodName(configAssayMethodDO.getName());
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setDataCollectionKey(configAssayMethodDO.getDataCollectionKey());
//查询区间范围
List<ConfigAssayMethodProjectRangeDO> configAssayMethodProjectRangeDOList = configAssayMethodProjectRangeMapper.selectList(new LambdaQueryWrapperX<ConfigAssayMethodProjectRangeDO>().eq(ConfigAssayMethodProjectRangeDO::getConfigAssayMethodId, businessAssayTaskDO.getConfigAssayMethodId()));
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setConfigAssayMethodProjectRangeList(BeanUtils.toBean(configAssayMethodProjectRangeDOList, ConfigAssayMethodProjectRangeRespVO.class));
//查询补正系数
List<ConfigAssayMethodProjectCoefficientDO> configAssayMethodProjectCoefficientDOList = configAssayMethodProjectCoefficientMapper.selectList(new LambdaQueryWrapperX<ConfigAssayMethodProjectCoefficientDO>().eq(ConfigAssayMethodProjectCoefficientDO::getConfigAssayMethodId, businessAssayTaskDO.getConfigAssayMethodId()));
businessAssayTaskAnalysisSampleAndQcProjectRespVO.setConfigAssayMethodProjectCoefficientList(BeanUtils.toBean(configAssayMethodProjectCoefficientDOList, ConfigAssayMethodProjectCoefficientRespVO.class));
return businessAssayTaskAnalysisSampleAndQcProjectRespVO;
}
private List<BusinessAssayTaskAnalysisDataRespVO> getQcAnalysis(BusinessAssayTaskDO businessAssayTaskDO) {
List<BusinessAssayTaskAnalysisDataRespVO> list = new ArrayList<>();
List<ConfigQCSampleMethodExtendRespVO> configQCSampleMethodList = configQCSampleMethodMapper.selectByConfigAssayMethodId(businessAssayTaskDO.getConfigAssayMethodId());
List<BusinessQCDataDO> businessQCDataDOList = businessQCDataMapper.selectByBusinessAssayTaskId(businessAssayTaskDO.getConfigAssayMethodId());
//businessQCProjectDataMapper.selectby
return list;
}
@Override @Override
public void submitSampleAnalysisByTaskId(Long businessAssayTaskId) { public void submitSampleAnalysisByTaskId(Long businessAssayTaskId) {
String loginUserNickname = SecurityFrameworkUtils.getLoginUserNickname(); String loginUserNickname = SecurityFrameworkUtils.getLoginUserNickname();

View File

@@ -0,0 +1,28 @@
package com.zt.plat.module.qms.business.config.controller.vo;
import java.util.List;
import java.util.Map;
import com.zt.plat.module.qms.business.bus.controller.vo.BatchSampleAnalysisColumnRespVO;
import lombok.Data;
/**
* 分析数据
*/
@Data
public class BusinessAssayTaskAnalysisDataRespVO {
/** 分析类型 **/
private String analysisType;
/** 排序号 **/
private Integer sortNo;
/** 分析的列 **/
private List<BatchSampleAnalysisColumnRespVO> columns;
/** 分析的数据 **/
private List<Map<String, Object>> datas;
}