123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.persagy.dmp.rwd.digital.dao.ObjectDigitalMapper">
- <resultMap id="BaseResultMap" type="com.persagy.dmp.digital.entity.ObjectDigital">
- <id property="id" column="id" jdbcType="VARCHAR"/>
- <result property="name" column="name" jdbcType="VARCHAR"/>
- <result property="localId" column="local_id" jdbcType="VARCHAR"/>
- <result property="localName" column="local_name" jdbcType="VARCHAR"/>
- <result property="groupCode" column="group_code" jdbcType="VARCHAR"/>
- <result property="projectId" column="project_id" jdbcType="VARCHAR"/>
- <result property="objType" column="obj_type" jdbcType="VARCHAR"/>
- <result property="classCode" column="class_code" jdbcType="VARCHAR"/>
- <result property="grouping" column="grouping" jdbcType="INTEGER"/>
- <result property="infos" column="infos" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
- <result property="virtualCodes" column="virtual_codes" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
- <result property="createApp" column="create_app" jdbcType="VARCHAR"/>
- <result property="updateApp" column="update_app" jdbcType="VARCHAR"/>
- <result property="creator" column="creator" jdbcType="VARCHAR"/>
- <result property="creationTime" column="creation_time" jdbcType="CHAR"/>
- <result property="modifier" column="modifier" jdbcType="VARCHAR"/>
- <result property="modifiedTime" column="modified_time" jdbcType="CHAR"/>
- <result property="valid" column="valid" jdbcType="TINYINT"/>
- <result property="ts" column="ts" jdbcType="TIMESTAMP"/>
- <result property="objFromIds" column="objFromIds" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
- <result property="objToIds" column="objToIds" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
- </resultMap>
- <resultMap id="count" type="com.persagy.dmp.digital.entity.ObjectDigital">
- <result property="totalCount" column="totalCount" jdbcType="INTEGER"/>
- </resultMap>
- <sql id="Base_Column_List">
- id,`name`,local_id,
- local_name,group_code,project_id,
- obj_type,class_code,grouping,
- infos,virtual_codes,create_app,
- update_app,creator,creation_time,
- modifier,modified_time,valid,
- ts
- </sql>
- <sql id="commonJoinQueryParam">
- <if test="param.projectId!=null and param.projectId.length>0">
- AND dto.project_id=#{param.projectId}
- </if>
- <if test="param.objTypes!=null and param.objTypes.size()>0">
- <foreach collection="param.objTypes" open="AND dto.obj_type IN(" close=")" separator="," item="objType">
- #{objType}
- </foreach>
- </if>
- <if test="param.classCodes!=null and param.classCodes.size()>0">
- <foreach collection="param.classCodes" open="AND ( " close=")" separator=" OR " item="classCode">
- dto.class_code LIKE CONCAT(#{classCode},'%')
- </foreach>
- </if>
- <if test="param.keyword!=null and param.keyword.length>0">
- AND dto.local_name LIKE CONCAT('%',#{param.keyword},'%')
- </if>
- <choose>
- <when test="param.validSet!=null and param.validSet.size()>0">
- <foreach collection="param.validSet" open="AND dto.valid IN(" close=")" separator="," item="valid">
- #{valid}
- </foreach>
- </when>
- <otherwise>
- AND dto.valid = TRUE
- </otherwise>
- </choose>
- <choose>
- <when test="param.createTimeScope!=null">
- <if test="param.createTimeScope.startEq!=null and param.createTimeScope.startEq.length>0">
- AND dto.creation_time>=#{param.createTimeScope.startEq}
- </if>
- <if test="param.createTimeScope.endEq!=null and param.createTimeScope.endEq.length>0">
- AND dto.creation_time<=#{param.createTimeScope.endEq}
- </if>
- </when>
- </choose>
- </sql>
- <sql id="queryObjByRel">
- (
- <include refid="commonQueryObjByRel">
- <property name="param" value="#{param}"/>
- </include>
- )
- <include refid="queryObjDataUnionEcData">
- <property name="param" value="#{param}"/>
- </include>
- </sql>
- <sql id="commonQueryObjByRel">
- <include refid="commonQueryObjByRelSub">
- <property name="param" value="#{param}"/>
- </include>
- <if test="param.relCodes!=null and param.relCodes.size()>0">
- <foreach collection="param.relCodes" open="AND dtr.rel_code IN (" close=")" separator="," item="relCode">
- #{relCode}
- </foreach>
- </if>
- GROUP BY dto.id
- </sql>
- <sql id="commonQueryObjByRelSub">
- SELECT DISTINCT
- dto.*,JSON_ARRAYAGG(dtr.obj_from) AS objFromIds,JSON_ARRAYAGG(dtr.obj_to) AS objToIds
- FROM dt_relation AS dtr
- LEFT JOIN dt_object AS dto ON (dtr.obj_from=dto.id OR dtr.obj_to=dto.id)
- WHERE 1=1
- <include refid="commonJoinQueryParam">
- <property name="param" value="#{param}"/>
- </include>
- </sql>
- <sql id="queryObjDataUnionEcData">
- <if test="param.queryEcFlag!=null and param.queryEcFlag='true'">
- UNION
- (<include refid="commonQueryObjByRelSub">
- <property name="param" value="#{param}"/>
- </include>
- <if test="param.ecRelCodes!=null and param.ecRelCodes.size()>0">
- <foreach collection="param.ecRelCodes" open="AND dtr.rel_code IN (" close=")" separator="," item="relCode">
- #{relCode}
- </foreach>
- </if>
- AND dtr.obj_from IN(
- SELECT DISTINCT
- dto.id
- FROM dt_relation AS dtr
- LEFT JOIN dt_object AS dto ON (dtr.obj_from=dto.id OR dtr.obj_to=dto.id)
- WHERE 1=1
- <include refid="commonJoinQueryParam">
- <property name="param" value="#{param}"/>
- </include>
- AND dto.obj_type='equipment'
- ) GROUP BY dto.id)
- </if>
- </sql>
- <sql id="pageSet">
- <if test="param.skip!=null and param.skip!=null and param.size!=0">
- limit #{param.skip},#{param.size}
- </if>
- </sql>
- <select id="queryObjectDigitalsByProjectId" resultMap="BaseResultMap,count">
- SELECT DISTINCT SQL_CALC_FOUND_ROWS
- *
- FROM dt_object dto
- WHERE 1=1
- <include refid="commonJoinQueryParam">
- <property name="param" value="#{param}"/>
- </include>
- <include refid="pageSet">
- <property name="param" value="#{param}"/>
- </include>
- ;
- SELECT FOUND_ROWS() AS totalCount;
- </select>
- <select id="queryObjectListBySuperiorId" resultMap="BaseResultMap,count">
- SELECT DISTINCT SQL_CALC_FOUND_ROWS
- dto.*
- FROM
- (
- <include refid="queryObjByRel">
- <property name="param" value="#{param}"/>
- </include>
- ) AS dto
- <include refid="pageSet">
- <property name="param" value="#{param}"/>
- </include>
- ;
- SELECT FOUND_ROWS() AS totalCount;
- </select>
- </mapper>
|