feat:报告接口开发

This commit is contained in:
FCL
2025-10-20 18:23:54 +08:00
parent a7c079436b
commit bf8aba849f
19 changed files with 228 additions and 8 deletions

View File

@@ -105,4 +105,13 @@ public class BusinessAssayReportDataController implements BusinessControllerMark
BeanUtils.toBean(list, BusinessAssayReportDataRespVO.class)); BeanUtils.toBean(list, BusinessAssayReportDataRespVO.class));
} }
@GetMapping("/queryWaitingToAddData")
@Operation(summary = "待编制报表数据查询")
@Parameter(name = "mainId", description = "报告id", required = true, example = "1024")
public CommonResult<PageResult<BusinessAssayReportDataRespVO>> queryWaitingToAddData(BusinessAssayReportDataPageReqVO pageReqVO) {
PageResult<BusinessAssayReportDataDO> page = businessAssayReportDataService.queryWaitingDataForReport(pageReqVO);
return success(BeanUtils.toBean(page, BusinessAssayReportDataRespVO.class));
}
} }

View File

@@ -56,4 +56,13 @@ public class BusinessAssayReportDataPageReqVO extends PageParam {
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
//==================扩展字段===========
@Schema(description = "样品名称")
private String sampleName;
@Schema(description = "主样创建时间范围")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] baseSampleCreateTime;
} }

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.qms.business.bus.controller.vo; package com.zt.plat.module.qms.business.bus.controller.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@@ -7,6 +8,8 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*; import com.alibaba.excel.annotation.*;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 检测报表数据业务 Response VO") @Schema(description = "管理后台 - 检测报表数据业务 Response VO")
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@@ -69,4 +72,13 @@ public class BusinessAssayReportDataRespVO {
@ExcelProperty("备注") @ExcelProperty("备注")
private String remark; private String remark;
//=====自定义字段
@Schema(description = "样品名称")
@ExcelProperty("样品名称")
private String sampleName;
@Schema(description = "样品创建时间")
@ExcelProperty("样品创建时间")
private LocalDateTime baseSampleCreateTime;
} }

View File

@@ -97,4 +97,12 @@ public class BusinessAssayReportDataDO extends BusinessBaseDO {
@TableField("RMK") @TableField("RMK")
private String remark; private String remark;
//==================扩展字段===========
//样品名称
@TableField(exist = false)
private String sampleName;
//样品创建时间
@TableField(exist = false)
private LocalDateTime baseSampleCreateTime;
} }

View File

@@ -1,5 +1,7 @@
package com.zt.plat.module.qms.business.bus.dal.mapper; package com.zt.plat.module.qms.business.bus.dal.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.module.qms.business.bus.controller.vo.*; import com.zt.plat.module.qms.business.bus.controller.vo.*;
@@ -10,6 +12,7 @@ import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/** /**
* 检测报表数据业务 Mapper * 检测报表数据业务 Mapper
@@ -43,4 +46,7 @@ public interface BusinessAssayReportDataMapper extends BaseMapperX<BusinessAssay
.eqIfPresent(BusinessAssayReportDataDO::getBusinessBaseSampleId, businessBaseSampleId)); .eqIfPresent(BusinessAssayReportDataDO::getBusinessBaseSampleId, businessBaseSampleId));
} }
//查询报告待编制数据
Page<BusinessAssayReportDataDO> queryWaitingDataForReport(IPage<?> page, @Param("param") BusinessAssayReportDataPageReqVO param);
} }

View File

@@ -66,4 +66,9 @@ public interface BusinessAssayReportDataService {
List<BusinessAssayReportDataDO> listByIds(List<Long> ids); List<BusinessAssayReportDataDO> listByIds(List<Long> ids);
/**
* 查询待编制报告数据
* */
PageResult<BusinessAssayReportDataDO> queryWaitingDataForReport(BusinessAssayReportDataPageReqVO pageReqVO);
} }

View File

@@ -1,6 +1,8 @@
package com.zt.plat.module.qms.business.bus.service; package com.zt.plat.module.qms.business.bus.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayReportDataPageReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayReportDataPageReqVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayReportDataRespVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayReportDataRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayReportDataSaveReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayReportDataSaveReqVO;
@@ -94,4 +96,13 @@ public class BusinessAssayReportDataServiceImpl implements BusinessAssayReportDa
public List<BusinessAssayReportDataDO> listByIds(List<Long> ids) { public List<BusinessAssayReportDataDO> listByIds(List<Long> ids) {
return businessAssayReportDataMapper.selectByIds(ids); return businessAssayReportDataMapper.selectByIds(ids);
} }
@Override
public PageResult<BusinessAssayReportDataDO> queryWaitingDataForReport(BusinessAssayReportDataPageReqVO pageReqVO) {
IPage<BusinessAssayReportDataDO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
Page<BusinessAssayReportDataDO> pageList = businessAssayReportDataMapper.queryWaitingDataForReport(page, pageReqVO);
PageResult<BusinessAssayReportDataDO> pageResult = new PageResult<>(pageList.getRecords(), pageList.getTotal());
return pageResult;
}
} }

View File

@@ -39,7 +39,7 @@ public interface ConfigReportFieldMapper extends BaseMapperX<ConfigReportFieldDO
.betweenIfPresent(ConfigReportFieldDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(ConfigReportFieldDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(ConfigReportFieldDO::getRemark, reqVO.getRemark()) .eqIfPresent(ConfigReportFieldDO::getRemark, reqVO.getRemark())
.eqIfPresent(ConfigReportFieldDO::getVersion, reqVO.getVersion()) .eqIfPresent(ConfigReportFieldDO::getVersion, reqVO.getVersion())
.orderByDesc(ConfigReportFieldDO::getId)); .orderByAsc(ConfigReportFieldDO::getNo));
} }
default List<ConfigReportFieldDO> selectList(ConfigReportFieldReqVO reqVO) { default List<ConfigReportFieldDO> selectList(ConfigReportFieldReqVO reqVO) {

View File

@@ -14,7 +14,11 @@ import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentDat
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentDataRespVO; import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentDataRespVO;
import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentDataSaveReqVO; import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentDataSaveReqVO;
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO; import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO;
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentTypeDO;
import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentDataService; import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentDataService;
import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentMainService;
import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentTypeService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@@ -26,7 +30,9 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static com.zt.plat.framework.common.pojo.CommonResult.success; import static com.zt.plat.framework.common.pojo.CommonResult.success;
@@ -45,15 +51,24 @@ public class ReportDocumentDataController extends AbstractFileUploadController i
} }
} }
@Resource @Resource private ReportDocumentDataService reportDocumentDataService;
private ReportDocumentDataService reportDocumentDataService; @Resource private ReportDocumentMainService reportDocumentMainService;
@Resource private ReportDocumentTypeService reportDocumentTypeService;
@GetMapping("/queryAddedData") @GetMapping("/queryAddedData")
@Operation(summary = "已编制报表数据查询") @Operation(summary = "已编制报表数据查询")
@Parameter(name = "mianId", description = "报告数据id", required = true, example = "1024") @Parameter(name = "mainId", description = "报告id", required = true, example = "1024")
public CommonResult<List<ReportDocumentDataRespVO>> queryAddedData(@RequestParam("mianId") Long mianId) { public CommonResult<List<ReportDocumentDataRespVO>> queryAddedData(@RequestParam("mainId") Long mainId) {
List<ReportDocumentDataDO> list = reportDocumentDataService.listByMainDataId(mianId).getData();
ReportDocumentMainDO mainDO = reportDocumentMainService.getReportDocumentMain(mainId);
Long typeId = mainDO.getReportDocumentTypeId();
ReportDocumentTypeDO typeDO = reportDocumentTypeService.getReportDocumentType(typeId);
Long confId = typeDO.getConfigReportTypeId();
Map<String, Object> param = new HashMap<>();
List<ReportDocumentDataDO> list = reportDocumentDataService.listByMainDataId(mainId).getData();
return success(BeanUtils.toBean(list, ReportDocumentDataRespVO.class)); return success(BeanUtils.toBean(list, ReportDocumentDataRespVO.class));
} }

View File

@@ -11,11 +11,16 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.excel.core.util.ExcelUtils; import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.framework.security.core.LoginUser;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*; import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO; import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO;
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentTypeDO; import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentTypeDO;
import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentMainService; import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentMainService;
import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentTypeService; import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentTypeService;
import com.zt.plat.module.qms.enums.ErrorCodeConstants;
import com.zt.plat.module.qms.enums.QmsCommonConstant; import com.zt.plat.module.qms.enums.QmsCommonConstant;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@@ -24,16 +29,23 @@ import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Map;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception0;
import static com.zt.plat.framework.common.pojo.CommonResult.error; import static com.zt.plat.framework.common.pojo.CommonResult.error;
import static com.zt.plat.framework.common.pojo.CommonResult.success; import static com.zt.plat.framework.common.pojo.CommonResult.success;
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.ERROR_CODE_MODULE_COMMON;
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_TYPE_NOT_EXISTS; import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_TYPE_NOT_EXISTS;
import static com.zt.plat.module.qms.enums.QmsBpmConstant.BPM_CALLBACK_BEAN_NAME;
@Tag(name = "管理后台 - 检测报告业务") @Tag(name = "管理后台 - 检测报告业务")
@RestController @RestController
@@ -72,12 +84,53 @@ public class ReportDocumentMainController extends AbstractFileUploadController i
} }
vo.setFlowKey(typeDO.getFlowKey()); vo.setFlowKey(typeDO.getFlowKey());
vo.setDocumentType(typeDO.getDocumentType()); vo.setDocumentType(typeDO.getDocumentType());
vo.setConfigReportTypeId(typeDO.getConfigReportTypeId());
vo.setDocumentConfig(JSONObject.toJSONString(typeDO)); vo.setDocumentConfig(JSONObject.toJSONString(typeDO));
vo.setFlowStatus(QmsCommonConstant.NOT_START); vo.setFlowStatus(QmsCommonConstant.NOT_START);
vo.setCancelFlag("-1"); vo.setCancelFlag("-1");
return success(reportDocumentMainService.createReportDocumentMain(vo)); return success(reportDocumentMainService.createReportDocumentMain(vo));
} }
@Resource private BpmProcessInstanceApi bpmProcessInstanceApi;
@Override
@Transactional(rollbackFor = Exception.class)
public CommonResult<ReportDocumentMainRespVO> createProcessInstance(ReportDocumentMainSaveReqVO entity) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
Long id = entity.getId();
DataFormDO dataForm = getDataForm(id);
Long dataCollectionId = dataForm.getDataCollectionId();
DataCollectionDO dataCollection = dataCollectionService.getDataCollection(dataCollectionId);
if(dataCollection == null)
throw exception(ErrorCodeConstants.DATA_FORM_EMPTY_COLLECTION_ID);
if(ObjectUtils.isEmpty(dataCollection.getFlowKey()))
throw exception(ErrorCodeConstants.DATA_COLLECTION_EMPTY_WF_KEY);
JSONObject formData = new JSONObject();
if(dataForm.getFormData() != null)
formData = JSONObject.parseObject(dataForm.getFormData());
formData.put("mainId", id);
formData.put("applyUser", dataForm.getApplyUser());
formData.put("applyUserId", dataForm.getApplyUserId());
formData.put("applyDepartment", dataForm.getApplyDepartment());
formData.put("applyDepartmentId", dataForm.getApplyDepartmentId());
formData.put("applyTime", dataForm.getApplyTime());
Map<String, Object> variables = formData.toJavaObject(Map.class);
variables.put(BPM_CALLBACK_BEAN_NAME, "dataFormService");
BpmProcessInstanceCreateReqDTO reqDTO = new BpmProcessInstanceCreateReqDTO();
reqDTO.setBusinessKey(String.valueOf(id));
reqDTO.setProcessDefinitionKey(dataCollection.getFlowKey());
reqDTO.setVariables(variables);
CommonResult<String> result = bpmProcessInstanceApi.createProcessInstance(loginUser.getId(), reqDTO);
if(!result.isSuccess()){
throw exception0(ERROR_CODE_MODULE_COMMON, result.getMsg());
}
String wfInsId = result.getData();
dataForm.setFlowInstanceId(wfInsId);
dataFormMapper.updateById(dataForm);
return BeanUtils.toBean(dataForm, DataFormRespVO.class);
}
@PostMapping("/execAddData") @PostMapping("/execAddData")
@Operation(summary = "增加数据") @Operation(summary = "增加数据")
public CommonResult<String> execAddData(@RequestBody ReportDocumentMainSaveReqVO vo) { public CommonResult<String> execAddData(@RequestBody ReportDocumentMainSaveReqVO vo) {

View File

@@ -40,4 +40,13 @@ public class ReportDocumentDataRespVO {
@ExcelProperty("备注") @ExcelProperty("备注")
private String remark; private String remark;
//==================扩展字段===========
@Schema(description = "样品名称")
@ExcelProperty("样品名称")
private String sampleName;
@Schema(description = "样品创建时间")
@ExcelProperty("样品创建时间")
private LocalDateTime baseSampleCreateTime;
} }

View File

@@ -83,4 +83,7 @@ public class ReportDocumentMainPageReqVO extends PageParam {
@Schema(description = "发布时间") @Schema(description = "发布时间")
private String publishTime; private String publishTime;
@Schema(description = "报表类型ID")
private Long configReportTypeId;
} }

View File

@@ -106,4 +106,8 @@ public class ReportDocumentMainRespVO {
@ExcelProperty("发布时间") @ExcelProperty("发布时间")
private String publishTime; private String publishTime;
@Schema(description = "报表类型ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15805")
@ExcelProperty("报表类型ID")
private Long configReportTypeId;
} }

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.qms.business.reportdoc.controller.vo; package com.zt.plat.module.qms.business.reportdoc.controller.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import lombok.Data; import lombok.Data;
@@ -76,6 +77,9 @@ public class ReportDocumentMainSaveReqVO {
@Schema(description = "发布时间") @Schema(description = "发布时间")
private String publishTime; private String publishTime;
@Schema(description = "报表类型ID")
private Long configReportTypeId;
@Schema(description = "报表数据ids") @Schema(description = "报表数据ids")
private String businessAssayReportDataIds; private String businessAssayReportDataIds;

View File

@@ -3,6 +3,9 @@ package com.zt.plat.module.qms.business.reportdoc.dal.dataobject;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
import lombok.*; import lombok.*;
import java.time.LocalDateTime;
/** /**
* 检测报告明细 DO * 检测报告明细 DO
* *
@@ -54,4 +57,12 @@ public class ReportDocumentDataDO extends BusinessBaseDO {
@TableField("RMK") @TableField("RMK")
private String remark; private String remark;
//==================扩展字段===========
//样品名称
@TableField(exist = false)
private String sampleName;
//样品创建时间
@TableField(exist = false)
private LocalDateTime baseSampleCreateTime;
} }

View File

@@ -132,4 +132,10 @@ public class ReportDocumentMainDO extends BusinessBaseDO {
//发布时间 //发布时间
@TableField("PUB_USER_TIME") @TableField("PUB_USER_TIME")
private String publishTime; private String publishTime;
/**
* 报表类型ID
*/
@TableField("CFG_RPT_TP_ID")
private Long configReportTypeId;
} }

View File

@@ -68,4 +68,7 @@ public interface ReportDocumentMainService {
*/ */
PageResult<ReportDocumentMainDO> getReportDocumentMainPage(ReportDocumentMainPageReqVO pageReqVO); PageResult<ReportDocumentMainDO> getReportDocumentMainPage(ReportDocumentMainPageReqVO pageReqVO);
//发起流程
CommonResult<ReportDocumentMainRespVO> createProcessInstance(ReportDocumentMainSaveReqVO entity);
} }

View File

@@ -171,4 +171,8 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService
return reportDocumentMainMapper.selectPage(pageReqVO); return reportDocumentMainMapper.selectPage(pageReqVO);
} }
} @Override
public CommonResult<ReportDocumentMainRespVO> createProcessInstance(ReportDocumentMainSaveReqVO entity) {
return null;
}
}

View File

@@ -9,4 +9,52 @@
文档可见https://www.iocoder.cn/MyBatis/x-plugins/ 文档可见https://www.iocoder.cn/MyBatis/x-plugins/
--> -->
</mapper> <select id="queryWaitingDataForReport" resultType="com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO">
-- SELECT d.*,
select
d.ID as id,
d.CFG_RPT_TP_ID as configReportTypeId,
d.CFG_SMP_RPT_ID as configSampleReportId,
d.BSN_BSE_SMP_ID as businessBaseSampleId,
d.SMP_CD as sampleCode,
d.ASY_DAT as assayData,
d.RPT_FLW_CD as reportFlowCode,
d.DOC_DAT_ID as documentDataId,
d.SYS_DEPT_CD as systemDepartmentCode,
d.UPD_CNT as updateCount,
d.RMK as remark,
d.CREATE_TIME as createTime,
d.CREATOR as creator,
d.UPDATER as updater,
d.UPDATE_TIME as updateTime,
d.CREATOR_NAME as creatorName,
d.DELETED as deleted,
s.CREATE_TIME as baseSampleCreateTime,
s.SMP_NAME as sampleName
FROM T_BSN_ASY_RPT_DAT d
inner join T_BSN_BSE_SMP s on d.BSN_BSE_SMP_ID = s.id
<where>
and d.CFG_RPT_TP_ID = #{param.configReportTypeId}
and NOT EXISTS (
SELECT 1
FROM T_RPT_DOC_DAT rd
LEFT JOIN T_RPT_DOC_MAIN m on rd.MAIN_ID = m.ID
WHERE rd.SRC_ID = d.id
and m.RPT_DOC_TP = #{param.configReportTypeId}
);
<if test="param.sampleCode != null and param.sampleCode != ''">
and d.SMP_CD like '%' || #{param.sampleCode} || '%'
</if>
<if test="param.sampleName != null and param.sampleName != ''">
and s.SMP_NAME like '%' || #{param.sampleName} || '%'
</if>
<if test="param.baseSampleCreateTime != null and param.baseSampleCreateTime.size > 0">
and s.CREATE_TIME between #{param.baseSampleCreateTime[0]} and #{param.baseSampleCreateTime[1]}
</if>
and d.deleted = 0
</where>
</select>
</mapper>