样品类别及样品流转等

This commit is contained in:
2026-02-27 16:12:01 +08:00
parent d4b45ee174
commit 0a3ef87d4d
10 changed files with 72 additions and 13 deletions

View File

@@ -4,7 +4,6 @@ import com.zt.plat.module.qms.business.bus.controller.vo.*;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@@ -26,7 +25,6 @@ import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIg
import static com.zt.plat.framework.common.pojo.CommonResult.success; import static com.zt.plat.framework.common.pojo.CommonResult.success;
import com.zt.plat.framework.excel.core.util.ExcelUtils; import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustDetailDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustDetailDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSampleEntrustDetailService; import com.zt.plat.module.qms.business.bus.service.BusinessSampleEntrustDetailService;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;

View File

@@ -3,12 +3,13 @@ package com.zt.plat.module.qms.business.bus.controller.vo;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
@@ -17,6 +18,35 @@ import lombok.Data;
@Data @Data
public class BusinessSampleEntrustDetailExtendRespVO extends BusinessSampleEntrustDetailRespVO { public class BusinessSampleEntrustDetailExtendRespVO extends BusinessSampleEntrustDetailRespVO {
/**
* 委托单号
*/
private String entrustNumber;
/**
* 委托单位
*/
private String entrustUnit;
/**
* 委托扩展信息
*/
private String externalInfomation;
/**
* 样品类别: 装港样/卸港样
*/
private String sampleCategory;
public String getSampleCategory() {
this.sampleCategory = null;
if (StringUtils.isNotBlank(this.externalInfomation)) {
JSONObject extInfJsonObject = JSON.parseObject(this.externalInfomation);
this.sampleCategory = extInfJsonObject.getString("sampleCategory");
}
return this.sampleCategory;
}
/** /**
* 样品类型key * 样品类型key
*/ */
@@ -34,7 +64,7 @@ public class BusinessSampleEntrustDetailExtendRespVO extends BusinessSampleEntru
@JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化(响应) @JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化(响应)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(description = "任务结束时间(yyyy-MM-dd HH:mm:ss)") @Schema(description = "创建时间(yyyy-MM-dd HH:mm:ss)")
private LocalDateTime createTime; private LocalDateTime createTime;
private List<BusinessSampleEntrustProjectExtendRespVO> sampleEntrustDetailProjectList; private List<BusinessSampleEntrustProjectExtendRespVO> sampleEntrustDetailProjectList;

View File

@@ -49,6 +49,9 @@ public class BusinessSampleEntrustDetailPageReqVO extends PageParam {
@Schema(description = "是否称重,1-启用0-不启用") @Schema(description = "是否称重,1-启用0-不启用")
private Integer isWeighing; private Integer isWeighing;
@Schema(description = "样品流转信息")
private String sampleFlowInfomation;
@Schema(description = "所属部门") @Schema(description = "所属部门")
private String systemDepartmentCode; private String systemDepartmentCode;

View File

@@ -47,6 +47,9 @@ public class BusinessSampleEntrustDetailReqVO {
@Schema(description = "是否称重,1-启用0-不启用") @Schema(description = "是否称重,1-启用0-不启用")
private Integer isWeighing; private Integer isWeighing;
@Schema(description = "样品流转信息")
private String sampleFlowInfomation;
@Schema(description = "所属部门") @Schema(description = "所属部门")
private String systemDepartmentCode; private String systemDepartmentCode;

View File

@@ -64,6 +64,9 @@ public class BusinessSampleEntrustDetailRespVO {
@ExcelProperty("是否称重,1-启用0-不启用") @ExcelProperty("是否称重,1-启用0-不启用")
private Integer isWeighing; private Integer isWeighing;
@Schema(description = "样品流转信息")
private String sampleFlowInfomation;
@Schema(description = "所属部门") @Schema(description = "所属部门")
@ExcelProperty("所属部门") @ExcelProperty("所属部门")
private String systemDepartmentCode; private String systemDepartmentCode;

View File

@@ -54,9 +54,11 @@ public class BusinessSampleEntrustDetailSaveReqVO {
private Integer sort; private Integer sort;
@Schema(description = "是否称重,1-启用0-不启用", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "是否称重,1-启用0-不启用", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否称重,1-启用0-不启用不能为空")
private Integer isWeighing; private Integer isWeighing;
@Schema(description = "样品流转信息")
private String sampleFlowInfomation;
@Schema(description = "所属部门") @Schema(description = "所属部门")
private String systemDepartmentCode; private String systemDepartmentCode;

View File

@@ -92,6 +92,11 @@ public class BusinessSampleEntrustDetailDO extends BusinessBaseDO {
@TableField("IS_WG") @TableField("IS_WG")
private Integer isWeighing; private Integer isWeighing;
/** /**
* 样品流转信息
*/
@TableField("SMP_FLW_INF")
private String sampleFlowInfomation;
/**
* 所属部门 * 所属部门
*/ */
@TableField("SYS_DEPT_CD") @TableField("SYS_DEPT_CD")

View File

@@ -8,6 +8,7 @@ import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX;
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.dal.dataobject.BusinessBaseSampleDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessBaseSampleDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustDetailDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustDetailDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustRegistrationDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.BaseSampleDO; import com.zt.plat.module.qms.business.config.dal.dataobject.BaseSampleDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigBaseSampleDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigBaseSampleDO;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
@@ -25,11 +26,15 @@ public interface BusinessSampleEntrustDetailMapper extends BaseMapperX<BusinessS
default List<BusinessSampleEntrustDetailExtendRespVO> selectList(BusinessSampleEntrustDetailReqVO reqVO) { default List<BusinessSampleEntrustDetailExtendRespVO> selectList(BusinessSampleEntrustDetailReqVO reqVO) {
return selectJoinList(BusinessSampleEntrustDetailExtendRespVO.class, new MPJLambdaWrapperX<BusinessSampleEntrustDetailDO>() return selectJoinList(BusinessSampleEntrustDetailExtendRespVO.class, new MPJLambdaWrapperX<BusinessSampleEntrustDetailDO>()
.leftJoin(BusinessSampleEntrustRegistrationDO.class, BusinessSampleEntrustRegistrationDO::getId, BusinessSampleEntrustDetailDO::getBusinessSampleEntrustRegistrationId)
.leftJoin(BaseSampleDO.class, BaseSampleDO::getId, BusinessSampleEntrustDetailDO::getBaseSampleId) .leftJoin(BaseSampleDO.class, BaseSampleDO::getId, BusinessSampleEntrustDetailDO::getBaseSampleId)
.leftJoin(BusinessBaseSampleDO.class, BusinessBaseSampleDO::getId, BusinessSampleEntrustDetailDO::getBusinessBaseSampleId) .leftJoin(BusinessBaseSampleDO.class, BusinessBaseSampleDO::getId, BusinessSampleEntrustDetailDO::getBusinessBaseSampleId)
.leftJoin(ConfigBaseSampleDO.class, ConfigBaseSampleDO::getId, BusinessBaseSampleDO::getConfigBaseSampleId) .leftJoin(ConfigBaseSampleDO.class, ConfigBaseSampleDO::getId, BusinessBaseSampleDO::getConfigBaseSampleId)
.selectAll(BusinessSampleEntrustDetailDO.class) .selectAll(BusinessSampleEntrustDetailDO.class)
.selectAs(BaseSampleDO::getName, BusinessSampleEntrustDetailExtendRespVO::getBaseSampleName) .selectAs(BaseSampleDO::getName, BusinessSampleEntrustDetailExtendRespVO::getBaseSampleName)
.selectAs(BusinessSampleEntrustRegistrationDO::getEntrustNumber, BusinessSampleEntrustDetailExtendRespVO::getEntrustNumber)
.selectAs(BusinessSampleEntrustRegistrationDO::getEntrustUnit, BusinessSampleEntrustDetailExtendRespVO::getEntrustUnit)
.selectAs(BusinessSampleEntrustRegistrationDO::getExternalInfomation, BusinessSampleEntrustDetailExtendRespVO::getExternalInfomation)
.selectAs(BusinessBaseSampleDO::getConfigBaseSampleId, BusinessSampleEntrustDetailExtendRespVO::getConfigBaseSampleId) .selectAs(BusinessBaseSampleDO::getConfigBaseSampleId, BusinessSampleEntrustDetailExtendRespVO::getConfigBaseSampleId)
.selectAs(ConfigBaseSampleDO::getPrintTemplate, BusinessSampleEntrustDetailExtendRespVO::getPrintTemplate) .selectAs(ConfigBaseSampleDO::getPrintTemplate, BusinessSampleEntrustDetailExtendRespVO::getPrintTemplate)
.eqIfPresent(BusinessSampleEntrustDetailDO::getBusinessSampleEntrustRegistrationId, reqVO.getBusinessSampleEntrustRegistrationId()) .eqIfPresent(BusinessSampleEntrustDetailDO::getBusinessSampleEntrustRegistrationId, reqVO.getBusinessSampleEntrustRegistrationId())
@@ -44,6 +49,7 @@ public interface BusinessSampleEntrustDetailMapper extends BaseMapperX<BusinessS
.eqIfPresent(BusinessSampleEntrustDetailDO::getAssayProject, reqVO.getAssayProject()) .eqIfPresent(BusinessSampleEntrustDetailDO::getAssayProject, reqVO.getAssayProject())
.eqIfPresent(BusinessSampleEntrustDetailDO::getForecastResult, reqVO.getForecastResult()) .eqIfPresent(BusinessSampleEntrustDetailDO::getForecastResult, reqVO.getForecastResult())
.eqIfPresent(BusinessSampleEntrustDetailDO::getIsWeighing, reqVO.getIsWeighing()) .eqIfPresent(BusinessSampleEntrustDetailDO::getIsWeighing, reqVO.getIsWeighing())
.eqIfPresent(BusinessSampleEntrustDetailDO::getSampleFlowInfomation, reqVO.getSampleFlowInfomation())
.eqIfPresent(BusinessSampleEntrustDetailDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) .eqIfPresent(BusinessSampleEntrustDetailDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
.betweenIfPresent(BusinessSampleEntrustDetailDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(BusinessSampleEntrustDetailDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(BusinessSampleEntrustDetailDO::getUpdateCount, reqVO.getUpdateCount()) .eqIfPresent(BusinessSampleEntrustDetailDO::getUpdateCount, reqVO.getUpdateCount())
@@ -72,6 +78,7 @@ public interface BusinessSampleEntrustDetailMapper extends BaseMapperX<BusinessS
.eqIfPresent(BusinessSampleEntrustDetailDO::getAssayProject, reqVO.getAssayProject()) .eqIfPresent(BusinessSampleEntrustDetailDO::getAssayProject, reqVO.getAssayProject())
.eqIfPresent(BusinessSampleEntrustDetailDO::getForecastResult, reqVO.getForecastResult()) .eqIfPresent(BusinessSampleEntrustDetailDO::getForecastResult, reqVO.getForecastResult())
.eqIfPresent(BusinessSampleEntrustDetailDO::getIsWeighing, reqVO.getIsWeighing()) .eqIfPresent(BusinessSampleEntrustDetailDO::getIsWeighing, reqVO.getIsWeighing())
.eqIfPresent(BusinessSampleEntrustDetailDO::getSampleFlowInfomation, reqVO.getSampleFlowInfomation())
.eqIfPresent(BusinessSampleEntrustDetailDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) .eqIfPresent(BusinessSampleEntrustDetailDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
.betweenIfPresent(BusinessSampleEntrustDetailDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(BusinessSampleEntrustDetailDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(BusinessSampleEntrustDetailDO::getUpdateCount, reqVO.getUpdateCount()) .eqIfPresent(BusinessSampleEntrustDetailDO::getUpdateCount, reqVO.getUpdateCount())

View File

@@ -48,6 +48,9 @@ public class SampleEntrustDetail {
/** 是否称重 **/ /** 是否称重 **/
private Integer isWeighing; private Integer isWeighing;
/** 样品流转信息 **/
private String sampleFlowInfomation;
/** 备注 **/ /** 备注 **/
private String remark; private String remark;

View File

@@ -109,7 +109,7 @@ public class AutoIngredientsServiceImpl implements AutoIngredientsService {
@Override @Override
public List<AutoIngredientsTaskDetailRespVO> taskDetailList(Long taskId) { public List<AutoIngredientsTaskDetailRespVO> taskDetailList(Long taskId) {
//查询任务分配信息 //查询任务分配信息
BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectById(taskId); // BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectById(taskId);
//查询子样检测任务 //查询子样检测任务
BusinessAssayTaskDataReqVO search = new BusinessAssayTaskDataReqVO(); BusinessAssayTaskDataReqVO search = new BusinessAssayTaskDataReqVO();
search.setBusinessAssayTaskId(taskId); search.setBusinessAssayTaskId(taskId);
@@ -121,8 +121,11 @@ public class AutoIngredientsServiceImpl implements AutoIngredientsService {
//子样配置id列表 //子样配置id列表
List<Long> configSubSampleIdList = list.stream().map(m -> m.getConfigSubSampleId()).distinct().collect(Collectors.toList()); List<Long> configSubSampleIdList = list.stream().map(m -> m.getConfigSubSampleId()).distinct().collect(Collectors.toList());
//方法id列表
List<Long> configAssayMethodIdList = list.stream().map(m -> m.getConfigAssayMethodId()).distinct().collect(Collectors.toList());
//子样配置方法 //子样配置方法
List<ConfigSubSampleMethodExtendRespVO> configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodId(configSubSampleIdList, businessAssayTaskDO.getConfigAssayMethodId()); List<ConfigSubSampleMethodExtendRespVO> configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodIds(configSubSampleIdList, configAssayMethodIdList);
//分析任务id列表 //分析任务id列表
List<Long> businessAssayTaskDataIdList = list.stream().map(m -> m.getId()).collect(Collectors.toList()); List<Long> businessAssayTaskDataIdList = list.stream().map(m -> m.getId()).collect(Collectors.toList());
@@ -145,7 +148,7 @@ public class AutoIngredientsServiceImpl implements AutoIngredientsService {
//分析人员信息 //分析人员信息
AdminUserRespDTO user = userList.stream().filter(f -> f.getId().equals(m.getAssayOperatorId())).findFirst().orElse(null); AdminUserRespDTO user = userList.stream().filter(f -> f.getId().equals(m.getAssayOperatorId())).findFirst().orElse(null);
//子样配置信息 //子样配置信息
ConfigSubSampleMethodExtendRespVO configSubSampleMethodDO = configSubSampleMethodList.stream().filter(f -> f.getConfigSubSampleId().equals(m.getConfigSubSampleId())).findFirst().orElse(null); ConfigSubSampleMethodExtendRespVO configSubSampleMethodDO = configSubSampleMethodList.stream().filter(f -> f.getConfigSubSampleId().equals(m.getConfigSubSampleId()) && f.getConfigAssayMethodId().equals(m.getConfigAssayMethodId())).findFirst().orElse(null);
String configInfomation = configSubSampleMethodDO.getConfigInfomation(); String configInfomation = configSubSampleMethodDO.getConfigInfomation();
//当前检测项目列表 //当前检测项目列表
List<BusinessAssayProjectDataExtendRespVO> currentBusinessAssayProjectDataList = businessAssayProjectDataList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(m.getId())).collect(Collectors.toList()); List<BusinessAssayProjectDataExtendRespVO> currentBusinessAssayProjectDataList = businessAssayProjectDataList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(m.getId())).collect(Collectors.toList());
@@ -230,8 +233,10 @@ public class AutoIngredientsServiceImpl implements AutoIngredientsService {
List<BusinessSubSampleDO> businessSubSampleDOList = businessSubSampleMapper.selectByIds(businessSubSampleIdList); List<BusinessSubSampleDO> businessSubSampleDOList = businessSubSampleMapper.selectByIds(businessSubSampleIdList);
//子样配置id列表 //子样配置id列表
List<Long> configSubSampleIdList = businessSubSampleDOList.stream().map(m -> m.getConfigSubSampleId()).distinct().collect(Collectors.toList()); List<Long> configSubSampleIdList = businessSubSampleDOList.stream().map(m -> m.getConfigSubSampleId()).distinct().collect(Collectors.toList());
//方法id列表
List<Long> configAssayMethodIdList = businessAssayTaskDataDOList.stream().map(m -> m.getConfigAssayMethodId()).distinct().collect(Collectors.toList());
//子样配置方法 //子样配置方法
List<ConfigSubSampleMethodExtendRespVO> configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodId(configSubSampleIdList, businessAssayTaskDO.getConfigAssayMethodId()); List<ConfigSubSampleMethodExtendRespVO> configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodIds(configSubSampleIdList, configAssayMethodIdList);
//查询分析任务属性 //查询分析任务属性
List<BusinessAssayTaskParameterDataExtendRespVO> businessAssayTaskParameterDataList = businessAssayTaskParameterDataMapper.selectExtendByBusinessAssayTaskDataIds(businessAssayTaskDataIdList); List<BusinessAssayTaskParameterDataExtendRespVO> businessAssayTaskParameterDataList = businessAssayTaskParameterDataMapper.selectExtendByBusinessAssayTaskDataIds(businessAssayTaskDataIdList);
@@ -249,7 +254,7 @@ public class AutoIngredientsServiceImpl implements AutoIngredientsService {
BusinessSubSampleDO businessSubSampleDO = businessSubSampleDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleId())).findFirst().orElse(null); BusinessSubSampleDO businessSubSampleDO = businessSubSampleDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleId())).findFirst().orElse(null);
//子样配置信息 //子样配置信息
ConfigSubSampleMethodExtendRespVO configSubSampleMethodDO = configSubSampleMethodList.stream().filter(f -> f.getConfigSubSampleId().equals(businessSubSampleDO.getConfigSubSampleId())).findFirst().orElse(null); ConfigSubSampleMethodExtendRespVO configSubSampleMethodDO = configSubSampleMethodList.stream().filter(f -> f.getConfigSubSampleId().equals(businessSubSampleDO.getConfigSubSampleId()) && f.getConfigAssayMethodId().equals(businessAssayTaskDataDO.getConfigAssayMethodId())).findFirst().orElse(null);
String configInfomation = configSubSampleMethodDO.getConfigInfomation(); String configInfomation = configSubSampleMethodDO.getConfigInfomation();
if (StringUtils.isNotBlank(configInfomation)) { if (StringUtils.isNotBlank(configInfomation)) {
ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class); ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class);