package jnpf.elnMapper;
|
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import jnpf.elnEntity.template.ElnTemplateVersionEntity;
|
import jnpf.elnEntity.template.ElnTemplateVos;
|
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Select;
|
|
import java.util.List;
|
|
@Mapper
|
public interface ElnTemplateMapper extends BaseMapper<ElnTemplateVersionEntity> {
|
|
default ElnTemplateVersionEntity lockTemplateForUpdate(String tenantId, String templateId) {
|
return selectOne(Wrappers.<ElnTemplateVersionEntity>lambdaQuery()
|
.eq(ElnTemplateVersionEntity::getFTenantId, tenantId)
|
.eq(ElnTemplateVersionEntity::getId, templateId)
|
.and(query -> query.isNull(ElnTemplateVersionEntity::getFDeleteMark)
|
.or().eq(ElnTemplateVersionEntity::getFDeleteMark, 0))
|
.last("FOR UPDATE"));
|
}
|
|
@Select("SELECT m.muban_file "
|
+ "FROM eln_template_current_version c "
|
+ "JOIN eln_template m "
|
+ "ON m.f_tenant_id = c.f_tenant_id AND m.f_id = c.dangqian_muban_id "
|
+ "WHERE c.f_tenant_id = #{tenantId} "
|
+ "AND m.jianyan_xiangmu = #{jianyanXiangmu} "
|
+ "AND m.biz_status = 'PUBLISHED' "
|
+ "AND m.biz_enabled = 'enabled' "
|
+ "AND m.shengxiao_riqi <= CURRENT_TIMESTAMP "
|
+ "AND COALESCE(m.f_delete_mark, 0) = 0")
|
IPage<String> selectLatestTemplateFiles(IPage<String> page,
|
@Param("tenantId") String tenantId,
|
@Param("jianyanXiangmu") String jianyanXiangmu);
|
|
@Select("SELECT m.muban_file "
|
+ "FROM eln_template_current_version c "
|
+ "JOIN eln_template m "
|
+ "ON m.f_tenant_id = c.f_tenant_id AND m.f_id = c.dangqian_muban_id "
|
+ "WHERE c.f_tenant_id = #{tenantId} "
|
+ "AND m.jianyan_xiangmu_bianma = #{testDefinitionCode} "
|
+ "AND m.biz_status = 'PUBLISHED' "
|
+ "AND m.biz_enabled = 'enabled' "
|
+ "AND m.shengxiao_riqi <= CURRENT_TIMESTAMP "
|
+ "AND COALESCE(c.f_delete_mark, 0) = 0 "
|
+ "AND COALESCE(m.f_delete_mark, 0) = 0")
|
IPage<String> selectLatestTemplateFilesByTestDefinitionCode(
|
IPage<String> page,
|
@Param("tenantId") String tenantId,
|
@Param("testDefinitionCode") String testDefinitionCode);
|
|
@Select("SELECT m.f_id AS id, m.f_tenant_id AS fTenantId, "
|
+ "m.muban_bianhao AS mubanBianhao, m.muban_banben AS mubanBanben, "
|
+ "m.jianyan_xiangmu AS jianyanXiangmu, "
|
+ "m.jianyan_xiangmu_bianma AS jianyanXiangmuBianma, m.muban_file AS mubanFile, "
|
+ "m.biz_status AS bizStatus, m.biz_enabled AS bizEnabled, "
|
+ "m.shengxiao_riqi AS shengxiaoRiqi, m.f_delete_mark AS fDeleteMark "
|
+ "FROM eln_template_current_version c "
|
+ "JOIN eln_template m "
|
+ "ON m.f_tenant_id = c.f_tenant_id AND m.f_id = c.dangqian_muban_id "
|
+ "WHERE c.f_tenant_id = #{tenantId} "
|
+ "AND m.jianyan_xiangmu_bianma = #{testDefinitionCode} "
|
+ "AND m.biz_status = 'PUBLISHED' "
|
+ "AND m.biz_enabled = 'enabled' "
|
+ "AND m.shengxiao_riqi <= CURRENT_TIMESTAMP "
|
+ "AND COALESCE(c.f_delete_mark, 0) = 0 "
|
+ "AND COALESCE(m.f_delete_mark, 0) = 0")
|
List<ElnTemplateVersionEntity> selectCurrentPublishedByTestDefinition(
|
@Param("tenantId") String tenantId,
|
@Param("testDefinitionCode") String testDefinitionCode);
|
|
@Select({"<script>",
|
"SELECT m.muban_bianhao ",
|
"FROM eln_template m ",
|
"WHERE m.f_tenant_id = #{tenantId} ",
|
"AND COALESCE(m.f_delete_mark, 0) = 0 ",
|
"<if test='mubanFenlei != null'>",
|
"AND m.muban_fenlei = #{mubanFenlei} ",
|
"</if>",
|
"<if test='mubanBianhao != null'>",
|
"AND m.muban_bianhao = #{mubanBianhao} ",
|
"</if>",
|
"<if test='bizStatus != null'>",
|
"AND m.biz_status = #{bizStatus} ",
|
"</if>",
|
"<if test='bizEnabled != null'>",
|
"AND m.biz_enabled = #{bizEnabled} ",
|
"</if>",
|
"<if test='keywordPattern != null'>",
|
"AND (m.muban_bianhao LIKE #{keywordPattern} ",
|
"OR m.muban_banben LIKE #{keywordPattern} ",
|
"OR m.jianyan_xiangmu LIKE #{keywordPattern} ",
|
"OR m.jianyan_xiangmu_mingcheng LIKE #{keywordPattern}) ",
|
"</if>",
|
"GROUP BY m.muban_bianhao ",
|
"ORDER BY CASE WHEN MAX(COALESCE(m.chuangjian_shijian, m.f_creator_time)) ",
|
"IS NULL THEN 1 ELSE 0 END ASC, ",
|
"MAX(COALESCE(m.chuangjian_shijian, m.f_creator_time)) DESC, ",
|
"MAX(m.f_id) DESC",
|
"</script>"})
|
IPage<String> selectLatestTemplateCodes(
|
IPage<String> page,
|
@Param("tenantId") String tenantId,
|
@Param("mubanFenlei") String mubanFenlei,
|
@Param("mubanBianhao") String mubanBianhao,
|
@Param("bizStatus") String bizStatus,
|
@Param("bizEnabled") String bizEnabled,
|
@Param("keywordPattern") String keywordPattern);
|
|
@Select({"<script>",
|
"SELECT m.muban_bianhao AS mubanBianhao, ",
|
"COALESCE(e.jianyan_xiangmu, MAX(m.jianyan_xiangmu)) AS jianyanXiangmu, ",
|
"COALESCE(e.jianyan_xiangmu_bianma, MAX(m.jianyan_xiangmu_bianma)) AS jianyanXiangmuBianma, ",
|
"COALESCE(e.jianyan_xiangmu_mingcheng, MAX(m.jianyan_xiangmu_mingcheng)) AS jianyanXiangmuMingcheng, ",
|
"COALESCE(e.muban_fenlei, MAX(m.muban_fenlei)) AS mubanFenlei, ",
|
"COALESCE(e.muban_fenlei_mingcheng, MAX(m.muban_fenlei_mingcheng)) AS mubanFenleiMingcheng, ",
|
"e.f_id AS shengxiaoMubanId, ",
|
"e.muban_banben AS shengxiaoMubanBanben, ",
|
"e.biz_status AS bizStatus, e.biz_enabled AS bizEnabled, ",
|
"e.shengxiao_riqi AS shengxiaoRiqi, ",
|
"MAX(COALESCE(m.f_last_modify_time, m.f_creator_time)) AS gengxinShijian, ",
|
"MIN(COALESCE(m.chuangjian_shijian, m.f_creator_time)) AS chuangjianShijian ",
|
"FROM eln_template m ",
|
"LEFT JOIN eln_template_current_version c ON ",
|
"c.f_tenant_id = m.f_tenant_id ",
|
"AND c.muban_bianhao = m.muban_bianhao ",
|
"AND COALESCE(c.f_delete_mark, 0) = 0 ",
|
"LEFT JOIN eln_template e ON ",
|
"e.f_tenant_id = m.f_tenant_id ",
|
"AND e.f_id = c.dangqian_muban_id ",
|
"AND e.muban_bianhao = m.muban_bianhao ",
|
"AND COALESCE(e.f_delete_mark, 0) = 0 ",
|
"WHERE m.f_tenant_id = #{tenantId} ",
|
"AND COALESCE(m.f_delete_mark, 0) = 0 ",
|
"<if test='mubanFenlei != null'>",
|
"AND m.muban_fenlei = #{mubanFenlei} ",
|
"</if>",
|
"<if test='mubanBianhao != null'>",
|
"AND m.muban_bianhao = #{mubanBianhao} ",
|
"</if>",
|
"<if test='bizStatus != null'>",
|
"AND e.biz_status = #{bizStatus} ",
|
"</if>",
|
"<if test='bizEnabled != null'>",
|
"AND e.biz_enabled = #{bizEnabled} ",
|
"</if>",
|
"<if test='keywordPattern != null'>",
|
"AND (m.muban_bianhao LIKE #{keywordPattern} ",
|
"OR m.jianyan_xiangmu LIKE #{keywordPattern} ",
|
"OR m.jianyan_xiangmu_mingcheng LIKE #{keywordPattern} ",
|
"OR m.muban_fenlei_mingcheng LIKE #{keywordPattern}) ",
|
"</if>",
|
"GROUP BY m.muban_bianhao, e.f_id, e.muban_banben, ",
|
"e.jianyan_xiangmu, e.jianyan_xiangmu_bianma, e.jianyan_xiangmu_mingcheng, ",
|
"e.muban_fenlei, e.muban_fenlei_mingcheng, ",
|
"e.biz_status, e.biz_enabled, e.shengxiao_riqi ",
|
"ORDER BY MIN(COALESCE(m.chuangjian_shijian, m.f_creator_time)) DESC, ",
|
"m.muban_bianhao ASC",
|
"</script>"})
|
IPage<ElnTemplateVos.CatalogItem> selectTemplateDirectory(
|
IPage<ElnTemplateVos.CatalogItem> page,
|
@Param("tenantId") String tenantId,
|
@Param("mubanFenlei") String mubanFenlei,
|
@Param("mubanBianhao") String mubanBianhao,
|
@Param("bizStatus") String bizStatus,
|
@Param("bizEnabled") String bizEnabled,
|
@Param("keywordPattern") String keywordPattern);
|
|
@Select({"<script>",
|
"SELECT f_id AS id, fenlei_mingcheng AS name ",
|
"FROM eln_template_category ",
|
"WHERE f_tenant_id = #{tenantId} ",
|
"AND COALESCE(f_delete_mark, 0) = 0 ",
|
"AND f_id IN ",
|
"<foreach collection='templateCategoryIds' item='id' open='(' separator=',' close=')'>",
|
"#{id}",
|
"</foreach>",
|
"</script>"})
|
List<ElnTemplateVos.TemplateCategory> selectTemplateCategories(
|
@Param("tenantId") String tenantId,
|
@Param("templateCategoryIds") List<String> templateCategoryIds);
|
}
|