单样分析结果查询等

This commit is contained in:
2025-11-11 20:57:56 +08:00
parent 0c13b35433
commit 6e39ca51c5
10 changed files with 271 additions and 2 deletions

View File

@@ -93,6 +93,14 @@ public class BusinessAssayTaskController implements BusinessControllerMarker {
return success(pageResult);
}
@GetMapping("/list")
@Operation(summary = "获得检测任务分配业务分页")
//@PreAuthorize("@ss.hasPermission('qms:business-assay-task:query')")
public CommonResult<List<BusinessAssayTaskExtendRespVO>> getBusinessAssayTaskList(@Valid BusinessAssayTaskPageReqVO reqVO) {
List<BusinessAssayTaskExtendRespVO> listResult = businessAssayTaskService.getBusinessAssayTaskList(reqVO);
return success(listResult);
}
@GetMapping("/export-excel")
@Operation(summary = "导出检测任务分配业务 Excel")
//@PreAuthorize("@ss.hasPermission('qms:business-assay-task:export')")

View File

@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson2.JSONObject;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.service.SampleAnalysisService;
@@ -58,4 +59,10 @@ public class SampleAnalysisController {
return success("成功");
}
@GetMapping("/getSampleAnalysisDataByTaskDataId")
public CommonResult<?> getSampleAnalysisDataByTaskDataId(Long businessAssayTaskDataId) {
JSONObject json = sampleAnalysisService.getSampleAnalysisDataByTaskDataId(businessAssayTaskDataId);
return success(json);
}
}

View File

@@ -0,0 +1,119 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 检测任务分配业务分页 Request VO")
@Data
public class BusinessAssayTaskReqVO {
@Schema(description = "指派编号")
private String taskNo;
@Schema(description = "指派单名称", example = "张三")
private String taskName;
@Schema(description = "检测方法配置ID", example = "13609")
private Long configAssayMethodId;
@Schema(description = "任务单模板ID", example = "4389")
private Long configReportTemplateId;
@Schema(description = "任务单模板key")
private String configReportTemplateKey;
@Schema(description = "任务单来源,分配-task_assign、领取-task_claim", example = "1")
private String taskSourceType;
@Schema(description = "任务单分配人")
private String taskAssignOperator;
@Schema(description = "任务单分配时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] taskAssignTime;
@Schema(description = "任务单分配状态,进行中-in_progress、已提交-submitted、作废-void", example = "2")
private String taskAssignStatus;
@Schema(description = "任务单分配提交时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] taskAssignSubmitTime;
@Schema(description = "分析人")
private String assayOperator;
@Schema(description = "分析时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assayTime;
@Schema(description = "分析提交时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] assaySubmitTime;
@Schema(description = "任务单分析状态,未开始-not_start、已保存- saved、 已提交-submitted", example = "1")
private String taskAssayStatus;
@Schema(description = "分析状态列表")
private List<String> taskAssayStatusList;
@Schema(description = "上报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;
@Schema(description = "上报人")
private String reportOperator;
@Schema(description = "任务单完成时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] taskFinishTime;
@Schema(description = "标样业务ID", example = "27168")
private Long standardSampleId;
@Schema(description = "标样编号")
private String standardSampleCode;
@Schema(description = "标准样类型ID", example = "11282")
private Long standardSampleTypeId;
@Schema(description = "质控样编号")
private String qualitySampleCode;
@Schema(description = "质控样分析时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] qualitySampleAssayTime;
@Schema(description = "流程实例id", example = "19026")
private Long flowInstanceId;
@Schema(description = "顶部字段数据集ID,T_DAT_COLT_FLD", example = "9742")
private Long formDataCollectionId;
@Schema(description = "顶部字段值")
private String formValue;
@Schema(description = "签名信息")
private String documentSignature;
@Schema(description = "完成状态,未开始-not_start、审核中-running、已退回-returned、已通过-approved", example = "2")
private String finishStatus;
@Schema(description = "流程状态,未开始-not_start、审核中-running、已退回-returned、已通过-approved", example = "1")
private String flowStatus;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "备注")
private String remark;
}

View File

@@ -108,6 +108,17 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
.orderByDesc(BusinessAssayTaskDataDO::getId));
}
default BusinessAssayTaskDataExtendRespVO selectExtendRespById(Long businessAssayTaskDataId) {
return selectJoinOne(BusinessAssayTaskDataExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayTaskDataDO>()
.leftJoin(BusinessSubSampleDO.class, BusinessSubSampleDO::getId, BusinessAssayTaskDataDO::getBusinessSubSampleId)
.selectAll(BusinessAssayTaskDataDO.class)
.selectAs(BusinessSubSampleDO::getSampleName, BusinessAssayTaskDataExtendRespVO::getSampleName)
.selectAs(BusinessSubSampleDO::getSampleCode, BusinessAssayTaskDataExtendRespVO::getSampleCode)
.selectAs(BusinessSubSampleDO::getSampleAssayCode, BusinessAssayTaskDataExtendRespVO::getSampleAssayCode)
.eq(BusinessAssayTaskDataDO::getId, businessAssayTaskDataId));
}
default List<BusinessAssayTaskDataExtendRespVO> selectResultAssessmentList(BusinessAssayTaskDataReqVO reqVO) {
MPJLambdaWrapper<BusinessAssayTaskDataDO> mpjLambdaWrapper = new MPJLambdaWrapper<BusinessAssayTaskDataDO>()
.leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessAssayTaskDataDO::getConfigAssayMethodId)
@@ -308,4 +319,5 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
* @return
*/
List<UnAssignTaskedSubSampleRespVO> selectUnAssignTaskedSubSample();
}

View File

@@ -8,7 +8,13 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import jakarta.validation.Valid;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -61,6 +67,48 @@ public interface BusinessAssayTaskMapper extends BaseMapperX<BusinessAssayTaskDO
}
default List<BusinessAssayTaskExtendRespVO> selectList(BusinessAssayTaskPageReqVO reqVO) {
return selectJoinList(BusinessAssayTaskExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayTaskDO>()
.selectSub(BusinessAssayTaskDetailDO.class, s -> s.selectCount(BusinessAssayTaskDetailDO::getId).eq(BusinessAssayTaskDetailDO::getBusinessAssayTaskId, BusinessAssayTaskDO::getId), BusinessAssayTaskExtendRespVO::getAssayTaskCount)
.leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessAssayTaskDO::getConfigAssayMethodId)
.selectAll(BusinessAssayTaskDO.class)
.selectAs(ConfigAssayMethodDO::getName, BusinessAssayTaskExtendRespVO::getConfigAssayMethodName)
.eqIfPresent(BusinessAssayTaskDO::getTaskNo, reqVO.getTaskNo())
.likeIfPresent(BusinessAssayTaskDO::getTaskName, reqVO.getTaskName())
.eqIfPresent(BusinessAssayTaskDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())
.eqIfPresent(BusinessAssayTaskDO::getConfigReportTemplateId, reqVO.getConfigReportTemplateId())
.eqIfPresent(BusinessAssayTaskDO::getConfigReportTemplateKey, reqVO.getConfigReportTemplateKey())
.eqIfPresent(BusinessAssayTaskDO::getTaskSourceType, reqVO.getTaskSourceType())
.eqIfPresent(BusinessAssayTaskDO::getTaskAssignOperator, reqVO.getTaskAssignOperator())
.betweenIfPresent(BusinessAssayTaskDO::getTaskAssignTime, reqVO.getTaskAssignTime())
.eqIfPresent(BusinessAssayTaskDO::getTaskAssignStatus, reqVO.getTaskAssignStatus())
.betweenIfPresent(BusinessAssayTaskDO::getTaskAssignSubmitTime, reqVO.getTaskAssignSubmitTime())
.eqIfPresent(BusinessAssayTaskDO::getAssayOperator, reqVO.getAssayOperator())
.betweenIfPresent(BusinessAssayTaskDO::getAssayTime, reqVO.getAssayTime())
.betweenIfPresent(BusinessAssayTaskDO::getAssaySubmitTime, reqVO.getAssaySubmitTime())
.eqIfPresent(BusinessAssayTaskDO::getTaskAssayStatus, reqVO.getTaskAssayStatus())
.inIfPresent(BusinessAssayTaskDO::getTaskAssayStatus, reqVO.getTaskAssayStatusList())
.betweenIfPresent(BusinessAssayTaskDO::getReportTime, reqVO.getReportTime())
.eqIfPresent(BusinessAssayTaskDO::getReportOperator, reqVO.getReportOperator())
.betweenIfPresent(BusinessAssayTaskDO::getTaskFinishTime, reqVO.getTaskFinishTime())
.eqIfPresent(BusinessAssayTaskDO::getStandardSampleId, reqVO.getStandardSampleId())
.eqIfPresent(BusinessAssayTaskDO::getStandardSampleCode, reqVO.getStandardSampleCode())
.eqIfPresent(BusinessAssayTaskDO::getStandardSampleTypeId, reqVO.getStandardSampleTypeId())
.eqIfPresent(BusinessAssayTaskDO::getQualitySampleCode, reqVO.getQualitySampleCode())
.betweenIfPresent(BusinessAssayTaskDO::getQualitySampleAssayTime, reqVO.getQualitySampleAssayTime())
.eqIfPresent(BusinessAssayTaskDO::getFlowInstanceId, reqVO.getFlowInstanceId())
.eqIfPresent(BusinessAssayTaskDO::getFormDataCollectionId, reqVO.getFormDataCollectionId())
.eqIfPresent(BusinessAssayTaskDO::getFormValue, reqVO.getFormValue())
.eqIfPresent(BusinessAssayTaskDO::getDocumentSignature, reqVO.getDocumentSignature())
.eqIfPresent(BusinessAssayTaskDO::getFinishStatus, reqVO.getFinishStatus())
.eqIfPresent(BusinessAssayTaskDO::getFlowStatus, reqVO.getFlowStatus())
.eqIfPresent(BusinessAssayTaskDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
.betweenIfPresent(BusinessAssayTaskDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(BusinessAssayTaskDO::getRemark, reqVO.getRemark())
.orderByDesc(BusinessAssayTaskDO::getId));
}
/**
* 根据分析方法、 分析人和分配人 查询进行中的任务分配单。
* @param configAssayMethodId 分析方法

View File

@@ -64,4 +64,12 @@ public interface BusinessAssayTaskService {
*/
PageResult<BusinessAssayTaskExtendRespVO> getBusinessAssayTaskPage(BusinessAssayTaskPageReqVO pageReqVO);
/**
* 获得检测任务分配业务列表
*
* @param reqVO 查询
* @return 检测任务分配业务列表
*/
List<BusinessAssayTaskExtendRespVO> getBusinessAssayTaskList(BusinessAssayTaskPageReqVO reqVO);
}

View File

@@ -7,6 +7,8 @@ import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskRespVO
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskSaveReqVO;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.validation.annotation.Validated;
import java.util.*;
@@ -105,4 +107,9 @@ public class BusinessAssayTaskServiceImpl implements BusinessAssayTaskService {
return businessAssayTaskMapper.selectPage(pageReqVO);
}
@Override
public List<BusinessAssayTaskExtendRespVO> getBusinessAssayTaskList(BusinessAssayTaskPageReqVO reqVO) {
return businessAssayTaskMapper.selectList(reqVO);
}
}

View File

@@ -14,7 +14,9 @@ import com.zt.plat.framework.common.pojo.PageParam;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleAnalysisGroupMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper;
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
@@ -33,6 +35,9 @@ public class BusinessSubSampleServiceImpl implements BusinessSubSampleService {
@Resource
private BusinessSubSampleMapper businessSubSampleMapper;
@Resource
private BusinessSubSampleAnalysisGroupMapper businessSubSampleAnalysisGroupMapper;
@Override
public BusinessSubSampleRespVO createBusinessSubSample(BusinessSubSampleSaveReqVO createReqVO) {
// 插入
@@ -87,7 +92,11 @@ public class BusinessSubSampleServiceImpl implements BusinessSubSampleService {
@Override
public PageResult<BusinessSubSampleExtendRespVO> getBusinessSubSamplePage(BusinessSubSamplePageReqVO pageReqVO) {
return businessSubSampleMapper.selectPage(pageReqVO);
PageResult<BusinessSubSampleExtendRespVO> page = businessSubSampleMapper.selectPage(pageReqVO);
if (QmsCommonConstant.FLOW_NODE_TEAM_RECEIVE.equals(pageReqVO.getSampleFlowNodeKey())) {//如果是班组收样
}
return page;
}
@Override

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.qms.business.bus.service;
import com.alibaba.fastjson2.JSONObject;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
/**
@@ -48,4 +49,11 @@ public interface SampleAnalysisService {
*/
void saveBatchSmpleAndQcAnalysis(BusinessAssayTaskAnalysisSampleAndQcProjectRespVO vo);
/**
* 根据子样任务id查询分析数据
* @param businessAssayTaskDataId
* @return
*/
JSONObject getSampleAnalysisDataByTaskDataId(Long businessAssayTaskDataId);
}

View File

@@ -4,6 +4,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -14,7 +15,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.zt.plat.framework.common.exception.ServiceException;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -25,6 +26,7 @@ import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayProjectAnd
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.BusinessAssayTaskDataExtendRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessQCCoefficientParameterDataReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessQCManagementParameterDataReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessQCManagementProjectDataReqVO;
@@ -861,4 +863,45 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
businessAssayTaskMapper.updateById(businessAssayTaskDO);
}
@Override
public JSONObject getSampleAnalysisDataByTaskDataId(Long businessAssayTaskDataId) {
JSONObject resultJsonObject = new JSONObject();
BusinessAssayTaskDataExtendRespVO businessAssayTaskData = businessAssayTaskDataMapper.selectExtendRespById(businessAssayTaskDataId);
resultJsonObject = (JSONObject) JSON.toJSON(businessAssayTaskData);
List<Map<String, Object>> columns = new ArrayList<>();
BusinessAssayProjectDataReqVO projectDataSearch = new BusinessAssayProjectDataReqVO();
projectDataSearch.setBusinessAssayTaskDataId(businessAssayTaskDataId);
List<BusinessAssayProjectAndParameterRespVO> projectAndParameterList = businessAssayProjectDataMapper.selectProjectAndParameterBy(projectDataSearch);
for (BusinessAssayProjectAndParameterRespVO ep : projectAndParameterList) {
final String eTitle = ep.getShowName() + (StringUtils.isBlank(ep.getUnit()) ? "" : "(" + ep.getUnit() + ")");
columns.add(new HashMap<>() {
private static final long serialVersionUID = 1L;
{
put("title", eTitle);
put("value", ep.getValue());
}});
if (StringUtils.isNotEmpty(ep.getFormula())) {
BusinessAssayParameterDataReqVO parameterDataSearch = new BusinessAssayParameterDataReqVO();
parameterDataSearch.setBusinessAssayProjectDataId(ep.getId());
List<BusinessAssayProjectAndParameterRespVO> plist = businessAssayParameterDataMapper.selectProjectAndParameterBy(parameterDataSearch);
for (BusinessAssayProjectAndParameterRespVO p : plist) {
final String pTitle = p.getShowName() + (StringUtils.isBlank(p.getUnit()) ? "" : "(" + p.getUnit() + ")");
columns.add(new HashMap<>() {
private static final long serialVersionUID = 8422574140192155301L;
{
put("title", pTitle);
put("value", p.getValue());
}});
}
}
}
resultJsonObject.put("columns", columns);
return resultJsonObject;
}
}