EventMapper.xml 11.2 KB
<?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.xiniunet.service.railway.dal.EventMapper">

    <resultMap id="eventPOMap" type="com.xiniunet.service.railway.po.EventUserPO">

        <id column="ID" jdbcType="NUMERIC" property="id"/>
        <result column="TENANT_ID" jdbcType="NUMERIC" property="tenantId"/>
        <result column="USER_ID" jdbcType="NUMERIC" property="userId"/>
        <result column="TYPE" jdbcType="VARCHAR" property="type"/>
        <result column="DESCRIPTION" jdbcType="VARCHAR" property="description"/>
        <result column="DATE_ID" jdbcType="VARCHAR" property="dateId"/>
        <result column="EVENT_TIME" jdbcType="TIMESTAMP" property="eventTime"/>
        <result column="EVENT_LOCATION" jdbcType="VARCHAR" property="eventLocation"/>
        <result column="STATION" jdbcType="VARCHAR" property="station"/>
        <result column="NEXT_STATION" jdbcType="VARCHAR" property="nextStation"/>
        <result column="IS_HANDLED" jdbcType="TINYINT" property="isHandled"/>
        <result column="HANDLE_SUGGESTION" jdbcType="VARCHAR" property="handleSuggestion"/>
        <result column="APP_EVENT_ID" jdbcType="VARCHAR" property="appEventId"/>
        <result column="LINE_ID" jdbcType="VARCHAR" property="lineId"/>
        <result column="LINE_NAME" jdbcType="VARCHAR" property="lineName"/>
        <result column="CARRIAGE_NUMBER" jdbcType="VARCHAR" property="carriageNumber"/>
        <result column="STATION_ID" jdbcType="VARCHAR" property="stationId"/>
        <result column="TITLE" jdbcType="VARCHAR" property="title"/>
        <result column="TYPE1_ID" jdbcType="VARCHAR" property="type1Id"/>
        <result column="TYPE2_ID" jdbcType="VARCHAR" property="type2Id"/>
        <result column="TYPE3_ID" jdbcType="VARCHAR" property="type3Id"/>
        <result column="TYPE1_NAME" jdbcType="VARCHAR" property="type1Name"/>
        <result column="TYPE2_NAME" jdbcType="VARCHAR" property="type2Name"/>
        <result column="TYPE3_NAME" jdbcType="VARCHAR" property="type3Name"/>
        <result column="GRADE_ID" jdbcType="VARCHAR" property="gradeId"/>
        <result column="GRADE_NAME" jdbcType="VARCHAR" property="gradeName"/>
        <result column="HAPPEN_TIME" jdbcType="VARCHAR" property="happenTime"/>
        <result column="COMMIT_TIME" jdbcType="VARCHAR" property="commitTime"/>
        <result column="NEXT_STATION_ID" jdbcType="VARCHAR" property="nextStationId"/>
        <result column="GA_FLAG" jdbcType="VARCHAR" property="gaFlag"/>
        <result column="APP_ATTACHEMENT_ADDRESS1" jdbcType="VARCHAR" property="appAttachementAddress1"/>
        <result column="APP_ATTACHEMENT_ADDRESS2" jdbcType="VARCHAR" property="appAttachementAddress2"/>
        <result column="APP_ATTACHEMENT_ADDRESS3" jdbcType="VARCHAR" property="appAttachementAddress3"/>
        <result column="ROW_VERSION" jdbcType="NUMERIC" property="rowVersion"/>
        <result column="IS_DELETED" jdbcType="TINYINT" property="isDeleted"/>
        <result column="CREATED_BY" jdbcType="NUMERIC" property="createdBy"/>
        <result column="CREATION_TIME" jdbcType="TIMESTAMP" property="creationTime"/>
        <result column="LAST_UPDATED_BY" jdbcType="NUMERIC" property="lastUpdatedBy"/>
        <result column="LAST_UPDATE_TIME" jdbcType="TIMESTAMP" property="lastUpdateTime"/>
        <result column="NICKNAME" jdbcType="VARCHAR" property="nickName" />
        <result column="USERNAME" jdbcType="VARCHAR" property="userName" />
    </resultMap>

    <sql id="eventColumnList">
        `ID`,`APP_EVENT_ID`,`LINE_ID`,`LINE_NAME`,`CARRIAGE_NUMBER`,`TENANT_ID`,a.`USER_ID`,`TYPE`,`TITLE`,`TYPE1_ID`,`TYPE2_ID`,`TYPE3_ID`,`TYPE1_NAME`,`TYPE2_NAME`,`TYPE3_NAME`,`GRADE_ID`,`GRADE_NAME`,`HAPPEN_TIME`,`COMMIT_TIME`,`DESCRIPTION`,`DATE_ID`,`EVENT_TIME`,`EVENT_LOCATION`,`STATION_ID`,`STATION`,`NEXT_STATION_ID`,`NEXT_STATION`,`GA_FLAG`, `IS_HANDLED`, `HANDLE_SUGGESTION`,`APP_ATTACHEMENT_ADDRESS1`,`APP_ATTACHEMENT_ADDRESS2`,`APP_ATTACHEMENT_ADDRESS3`,`ROW_VERSION`,`IS_DELETED`, `CREATED_BY`, `CREATION_TIME`,`LAST_UPDATED_BY`, `LAST_UPDATE_TIME`,`NICKNAME`,`USERNAME`
    </sql>

    <sql id="eventList">
    e.`ID`,e.`APP_EVENT_ID`,e.`LINE_ID`,e.`LINE_NAME`,e.`CARRIAGE_NUMBER`,e.`TENANT_ID`,e.`USER_ID`,e.`TYPE`,e.`TITLE`,e.`GRADE_ID`,e.`GRADE_NAME`,e.`HAPPEN_TIME`,e.`COMMIT_TIME`,e.`DESCRIPTION`,e.`DATE_ID`,e.`EVENT_TIME`,e.`EVENT_LOCATION`,e.`STATION_ID`,e.`STATION`,e.`NEXT_STATION_ID`,e.`NEXT_STATION`,e.`GA_FLAG`,e.`IS_HANDLED`,e.`HANDLE_SUGGESTION`,s.ACCOUNT AS USERNAME,s.NICK_NAME
    </sql>

    <sql id="whereForFindList">
    </sql>

    <sql id="whereForSearchList">
        AND
        (
            1=0
        )
    </sql>

    <select id="find" resultMap="eventPO">
        SELECT
            <include refid="entityColumnList"/>
        FROM
            `RW_EVENT`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            <include refid="whereForFindList" />
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="findCount" resultType="java.lang.Long">
        SELECT
            COUNT(*)
        FROM
            `RW_EVENT`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            <include refid="whereForFindList" />
    </select>

    <select id="search" resultMap="eventPO">
        SELECT
            <include refid="entityColumnList"/>
        FROM
            `RW_EVENT`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            <if test="request.keyword !=null">
                <include refid="whereForSearchList" />
            </if>
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="searchCount" resultType="java.lang.Long">
        SELECT
            COUNT(*)
        FROM
            `RW_EVENT`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            <if test="request.keyword !=null">
                <include refid="whereForSearchList" />
            </if>
    </select>

    <select id="existByCode" resultType="java.lang.Long">
        SELECT
            COUNT(*)
        FROM
            `RW_EVENT`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `ID` != #{id}
            AND `CODE` = #{code}
    </select>

    <update id="update">
        UPDATE
            `RW_EVENT`
        SET
       <if test="request.userId!=null">
            `USER_ID`=#{ request.userId },
        </if>
        <if test="request.type!=null">
            `TYPE`=#{ request.type },
        </if>
        <if test="request.description!=null and request.description!=''">
            `DESCRIPTION`=#{ request.description },
        </if>
        <if test="request.dateId!=null">
            `DATE_ID`=#{ request.dateId },
        </if>
        <if test="request.eventTime!=null">
            `EVENT_TIME`=#{ request.eventTime },
        </if>
        <if test="request.eventLocation!=null and request.eventLocation!=''">
            `EVENT_LOCATION`=#{ request.eventLocation },
        </if>
        <if test="request.station!=null and request.station!=''">
            `STATION`=#{ request.station },
        </if>
        <if test="request.nextStation!=null and request.nextStation!=''">
            `NEXT_STATION`=#{ request.nextStation },
        </if>
        <if test="request.isStatus!=null">
            `IS_STATUS`=#{ request.isStatus },
        </if>
        <if test="request.isHandled!=null">
            `IS_HANDLED`=#{ request.isHandled },
        </if>
        <if test="request.handleSuggestion!=null and request.handleSuggestion!=''">
            `HANDLE_SUGGESTION`=#{ request.handleSuggestion },
        </if>
            `LAST_UPDATED_BY`=#{ passport.userId },
            `LAST_UPDATE_TIME`=SYSDATE(),
            `ROW_VERSION`=#{ request.rowVersion }+1
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `ID` = #{ request.id }
            AND `ROW_VERSION` = #{ request.rowVersion }
    </update>

    <update id="updateEvent">
        UPDATE
        `RW_EVENT`
        SET
        `IS_HANDLED`=1,
        `HANDLE_SUGGESTION`=#{ request.handleSuggestion },
        `LAST_UPDATED_BY`=#{ passport.userId },
        `LAST_UPDATE_TIME`=SYSDATE()
        WHERE
        `IS_DELETED`=0
        AND `TENANT_ID`=#{ passport.tenantId }
        AND `APP_EVENT_ID` = #{ request.appEventId }
    </update>

    <select id="findEventByCondition" resultMap="eventPOMap">
        SELECT
            <include refid="eventList"/>
        FROM
            `RW_EVENT` e
        LEFT JOIN
            backend.sys_user s
        ON e.USER_ID = s.ID
        WHERE
        e.`IS_DELETED`=0
        AND e.`IS_STATUS`=1
        <if test="request.appEventId != null and request.appEventId != ''">
            AND  e.`APP_EVENT_ID` = #{ request.appEventId }
        </if>
        <if test="request.userId != null and request.userId != ''">
            AND  e.`USER_ID` = #{ request.userId }
        </if>
        <if test="request.type != null and request.type != ''">
            AND e.`TITLE` LIKE CONCAT ('%',#{request.type},'%')
        </if>
        <if test="request.station != null and request.station != ''">
            AND e.`STATION` LIKE CONCAT ('%',#{request.station},'%')
        </if>
        <if test="request.createTime != null and request.createTime != ''">
            AND DATE_FORMAT(e.`COMMIT_TIME`,'%Y-%m-%d') = #{request.createTime}
        </if>
        ORDER BY ID DESC
        <if test="request.pageSize !=0">
            LIMIT #{ request.requestIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="searchEventCount" resultType="long">
        SELECT
            COUNT(1)
        FROM
        `RW_EVENT` e
        WHERE
        e.`IS_DELETED`=0
        AND e.`IS_STATUS`=1
        <if test="request.appEventId != null and request.appEventId != ''">
            AND  e.`APP_EVENT_ID` = #{ request.appEventId }
        </if>
        <if test="request.userId != null and request.userId != ''">
            AND  e.`USER_ID` = #{ request.userId }
        </if>
        <if test="request.type != null and request.type != ''">
            AND e.`TITLE` LIKE CONCAT ('%',#{request.type},'%')
        </if>
        <if test="request.station != null and request.station != ''">
            AND e.`STATION` LIKE CONCAT ('%',#{request.station},'%')
        </if>
        <if test="request.createTime != null and request.createTime != ''">
            AND DATE_FORMAT(e.`COMMIT_TIME`,'%Y-%m-%d') = #{request.createTime}
        </if>
    </select>

    <select id="findUnDealEvent" resultMap="eventPO">
        select
            <include refid="entityColumnList" />
        from
            rw_event re
        left join (select id as extecd_id, is_noticed, is_hurried from rw_event_extend) ree on ree.extecd_id = re.id
        where
        IS_HANDLED != 1
        and is_deleted = 0
        and is_status = 1
        and ree.is_hurried != 1
        and ree.is_noticed = 1
        and now() > adddate(happen_time, interval #{timeoutSeconds} second)
    </select>
</mapper>