|
|
@@ -0,0 +1,402 @@
|
|
|
+<?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="cn.start.tz.module.pressure2.dal.mysql.taskorder.UnifiedTaskOrderMapper">
|
|
|
+
|
|
|
+ <select id="selectPage">
|
|
|
+ select rownum,a.* from (
|
|
|
+ select bto.*, aco.confirm_date AS appointment_confirm_date
|
|
|
+ from PRESSURE_TASK_ORDER bto
|
|
|
+ LEFT JOIN PRESSURE_APPOINTMENT_CONFIRM_ORDER aco ON aco.scheduling_id = bto.scheduling_id AND aco.deleted = 0
|
|
|
+ <where>
|
|
|
+ bto.DELETED = 0
|
|
|
+ <if test="equipMainType != null and equipMainType != ''">
|
|
|
+ AND bto.EQUIP_MAIN_TYPE = #{equipMainType}
|
|
|
+ </if>
|
|
|
+ <if test="orderNo != null and orderNo != ''">
|
|
|
+ AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
|
|
|
+ </if>
|
|
|
+ <if test="unitName != null and unitName != ''">
|
|
|
+ AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
|
|
|
+ </if>
|
|
|
+ <if test="unitPhone != null and unitPhone != ''">
|
|
|
+ AND bto.UNIT_PHONE LIKE CONCAT('%',#{unitPhone},'%')
|
|
|
+ </if>
|
|
|
+ <if test="checkType != null and checkType != ''">
|
|
|
+ AND bto.CHECK_TYPE = #{checkType}
|
|
|
+ </if>
|
|
|
+ <if test="checkDate != null and checkDate.size() >= 2">
|
|
|
+ AND bto.CHECK_DATE BETWEEN #{checkDate[0]} AND #{checkDate[1]}
|
|
|
+ </if>
|
|
|
+ <if test="contractNo != null and contractNo != ''">
|
|
|
+ AND bto.CONTRACT_NO LIKE CONCAT('%',#{contractNo},'%')
|
|
|
+ </if>
|
|
|
+ <if test="taskStatus != null and taskStatus != ''">
|
|
|
+ AND bto.TASK_STATUS = #{taskStatus}
|
|
|
+ </if>
|
|
|
+ <if test="taskStatusList != null and taskStatusList.size() > 0">
|
|
|
+ AND bto.TASK_STATUS IN
|
|
|
+ <foreach close=")" collection="taskStatusList" item="item" open="(" separator=",">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="processInstanceIds != null and processInstanceIds.size() > 0">
|
|
|
+ AND bto.PROCESS_INSTANCE_ID IN
|
|
|
+ <foreach close=")" collection="processInstanceIds" item="item" open="(" separator=",">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="equipCode != null and equipCode != ''">
|
|
|
+ AND (EXISTS (
|
|
|
+ SELECT 1 FROM pressure2_boiler_task_order_item boi
|
|
|
+ WHERE boi.order_id = bto.id AND boi.deleted = 0 AND boi.equip_code LIKE CONCAT('%', #{equipCode}, '%')
|
|
|
+ ) OR EXISTS (
|
|
|
+ SELECT 1 FROM pressure2_pipe_task_order_item poi
|
|
|
+ WHERE poi.order_id = bto.id AND poi.deleted = 0 AND poi.equip_code LIKE CONCAT('%', #{equipCode}, '%')
|
|
|
+ ))
|
|
|
+ </if>
|
|
|
+ <if test="reportNo != null and reportNo != ''">
|
|
|
+ AND (EXISTS (
|
|
|
+ SELECT 1 FROM pressure2_boiler_task_order_item_report bir
|
|
|
+ INNER JOIN pressure2_boiler_task_order_item boi ON boi.id = bir.order_item_id AND boi.deleted = 0
|
|
|
+ WHERE bir.deleted = 0 AND bir.report_no LIKE CONCAT('%', #{reportNo}, '%') AND boi.order_id = bto.id
|
|
|
+ ) OR EXISTS (
|
|
|
+ SELECT 1 FROM pressure2_pipe_task_order_item_report pir
|
|
|
+ WHERE pir.deleted = 0 AND pir.report_no LIKE CONCAT('%', #{reportNo}, '%') AND pir.order_id = bto.id
|
|
|
+ ))
|
|
|
+ </if>
|
|
|
+ <if test="checkUserIds != null and checkUserIds.size() >= 1">
|
|
|
+ AND bto.ID in (
|
|
|
+ <choose>
|
|
|
+ <when test="equipMainType != null and equipMainType == '100'">
|
|
|
+ select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '200'">
|
|
|
+ select tu.ORDER_ID from pressure2_boiler_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '300'">
|
|
|
+ select tu.ORDER_ID from pressure2_pipe_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ select tu.ORDER_ID from (
|
|
|
+ select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
|
|
|
+ ) tu
|
|
|
+ where tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ <if test="inspectorIds != null and inspectorIds.size() >= 1">
|
|
|
+ AND bto.ID in (
|
|
|
+ <choose>
|
|
|
+ <when test="equipMainType != null and equipMainType == '100'">
|
|
|
+ select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '200'">
|
|
|
+ select tu.ORDER_ID from pressure2_boiler_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '300'">
|
|
|
+ select tu.ORDER_ID from pressure2_pipe_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ select tu.ORDER_ID from (
|
|
|
+ select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
|
|
|
+ ) tu
|
|
|
+ where tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ <if test="submitIds != null and submitIds.size() >= 1">
|
|
|
+ AND bto.SUBMIT_ID IN
|
|
|
+ <foreach close=")" collection="submitIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="deptId != null and deptId != ''">
|
|
|
+ AND bto.DEPT_ID = #{deptId}
|
|
|
+ </if>
|
|
|
+ <if test="submitTime != null and submitTime.size() >= 2">
|
|
|
+ AND bto.SUBMIT_TIME BETWEEN #{submitTime[0]} AND #{submitTime[1]}
|
|
|
+ </if>
|
|
|
+ <if test="status != null and status != ''">
|
|
|
+ AND bto.STATUS = #{status}
|
|
|
+ </if>
|
|
|
+ <if test="permissionUserId != null and permissionUserId != ''">
|
|
|
+ AND ( bto.MANAGER_ID = #{permissionUserId}
|
|
|
+ or bto.ID in (
|
|
|
+ <choose>
|
|
|
+ <when test="equipMainType != null and equipMainType == '100'">
|
|
|
+ select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '200'">
|
|
|
+ select tu.ORDER_ID from pressure2_boiler_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '300'">
|
|
|
+ select tu.ORDER_ID from pressure2_pipe_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ select tu.ORDER_ID from (
|
|
|
+ select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
|
|
|
+ ) tu
|
|
|
+ where tu.USER_ID = #{permissionUserId}
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ ) )
|
|
|
+ </if>
|
|
|
+ <if test="permissionDeptIds != null and permissionDeptIds != ''">
|
|
|
+ AND ( bto.DEPT_ID in
|
|
|
+ <foreach close=")" collection="permissionDeptIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ <if test="hasPermission != null and hasPermission == false">
|
|
|
+ AND 1 = 2
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ order by bto.CREATE_TIME desc
|
|
|
+ ) a
|
|
|
+ OFFSET ${(pageNo - 1) * pageSize} ROWS FETCH NEXT #{pageSize} ROWS ONLY
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="selectPageCount">
|
|
|
+ select count(1) from (
|
|
|
+ select bto.* from PRESSURE_TASK_ORDER bto
|
|
|
+ <where>
|
|
|
+ bto.DELETED = 0
|
|
|
+ <if test="equipMainType != null and equipMainType != ''">
|
|
|
+ AND bto.EQUIP_MAIN_TYPE = #{equipMainType}
|
|
|
+ </if>
|
|
|
+ <if test="orderNo != null and orderNo != ''">
|
|
|
+ AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
|
|
|
+ </if>
|
|
|
+ <if test="unitName != null and unitName != ''">
|
|
|
+ AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
|
|
|
+ </if>
|
|
|
+ <if test="checkType != null and checkType != ''">
|
|
|
+ AND bto.CHECK_TYPE = #{checkType}
|
|
|
+ </if>
|
|
|
+ <if test="checkDate != null and checkDate.size() >= 2">
|
|
|
+ AND bto.CHECK_DATE BETWEEN #{checkDate[0]} AND #{checkDate[1]}
|
|
|
+ </if>
|
|
|
+ <if test="contractNo != null and contractNo != ''">
|
|
|
+ AND bto.CONTRACT_NO LIKE CONCAT('%',#{contractNo},'%')
|
|
|
+ </if>
|
|
|
+ <if test="taskStatus != null and taskStatus != ''">
|
|
|
+ AND bto.TASK_STATUS = #{taskStatus}
|
|
|
+ </if>
|
|
|
+ <if test="taskStatusList != null and taskStatusList.size() > 0">
|
|
|
+ AND bto.TASK_STATUS IN
|
|
|
+ <foreach close=")" collection="taskStatusList" item="item" open="(" separator=",">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="processInstanceIds != null and processInstanceIds.size() > 0">
|
|
|
+ AND bto.PROCESS_INSTANCE_ID IN
|
|
|
+ <foreach close=")" collection="processInstanceIds" item="item" open="(" separator=",">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="equipCode != null and equipCode != ''">
|
|
|
+ AND (EXISTS (
|
|
|
+ SELECT 1 FROM pressure2_boiler_task_order_item boi
|
|
|
+ WHERE boi.order_id = bto.id AND boi.deleted = 0 AND boi.equip_code LIKE CONCAT('%', #{equipCode}, '%')
|
|
|
+ ) OR EXISTS (
|
|
|
+ SELECT 1 FROM pressure2_pipe_task_order_item poi
|
|
|
+ WHERE poi.order_id = bto.id AND poi.deleted = 0 AND poi.equip_code LIKE CONCAT('%', #{equipCode}, '%')
|
|
|
+ ))
|
|
|
+ </if>
|
|
|
+ <if test="reportNo != null and reportNo != ''">
|
|
|
+ AND (EXISTS (
|
|
|
+ SELECT 1 FROM pressure2_boiler_task_order_item_report bir
|
|
|
+ INNER JOIN pressure2_boiler_task_order_item boi ON boi.id = bir.order_item_id AND boi.deleted = 0
|
|
|
+ WHERE bir.deleted = 0 AND bir.report_no LIKE CONCAT('%', #{reportNo}, '%') AND boi.order_id = bto.id
|
|
|
+ ) OR EXISTS (
|
|
|
+ SELECT 1 FROM pressure2_pipe_task_order_item_report pir
|
|
|
+ WHERE pir.deleted = 0 AND pir.report_no LIKE CONCAT('%', #{reportNo}, '%') AND pir.order_id = bto.id
|
|
|
+ ))
|
|
|
+ </if>
|
|
|
+ <if test="checkUserIds != null and checkUserIds.size() >= 1">
|
|
|
+ AND bto.ID in (
|
|
|
+ <choose>
|
|
|
+ <when test="equipMainType != null and equipMainType == '100'">
|
|
|
+ select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '200'">
|
|
|
+ select tu.ORDER_ID from pressure2_boiler_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '300'">
|
|
|
+ select tu.ORDER_ID from pressure2_pipe_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ select tu.ORDER_ID from (
|
|
|
+ select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
|
|
|
+ ) tu
|
|
|
+ where tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ <if test="inspectorIds != null and inspectorIds.size() >= 1">
|
|
|
+ AND bto.ID in (
|
|
|
+ <choose>
|
|
|
+ <when test="equipMainType != null and equipMainType == '100'">
|
|
|
+ select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '200'">
|
|
|
+ select tu.ORDER_ID from pressure2_boiler_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '300'">
|
|
|
+ select tu.ORDER_ID from pressure2_pipe_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ select tu.ORDER_ID from (
|
|
|
+ select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
|
|
|
+ ) tu
|
|
|
+ where tu.USER_ID IN
|
|
|
+ <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ <if test="submitIds != null and submitIds.size() >= 1">
|
|
|
+ AND bto.SUBMIT_ID IN
|
|
|
+ <foreach close=")" collection="submitIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="deptId != null and deptId != ''">
|
|
|
+ AND bto.DEPT_ID = #{deptId}
|
|
|
+ </if>
|
|
|
+ <if test="submitTime != null and submitTime.size() >= 2">
|
|
|
+ AND bto.SUBMIT_TIME BETWEEN #{submitTime[0]} AND #{submitTime[1]}
|
|
|
+ </if>
|
|
|
+ <if test="status != null and status != ''">
|
|
|
+ AND bto.STATUS = #{status}
|
|
|
+ </if>
|
|
|
+ <if test="permissionUserId != null and permissionUserId != ''">
|
|
|
+ AND ( bto.MANAGER_ID = #{permissionUserId}
|
|
|
+ or bto.ID in (
|
|
|
+ <choose>
|
|
|
+ <when test="equipMainType != null and equipMainType == '100'">
|
|
|
+ select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '200'">
|
|
|
+ select tu.ORDER_ID from pressure2_boiler_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
|
|
|
+ </when>
|
|
|
+ <when test="equipMainType != null and equipMainType == '300'">
|
|
|
+ select tu.ORDER_ID from pressure2_pipe_task_order_user tu
|
|
|
+ where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ select tu.ORDER_ID from (
|
|
|
+ select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
|
|
|
+ union all
|
|
|
+ select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
|
|
|
+ ) tu
|
|
|
+ where tu.USER_ID = #{permissionUserId}
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ ) )
|
|
|
+ </if>
|
|
|
+ <if test="permissionDeptIds != null and permissionDeptIds != ''">
|
|
|
+ AND ( bto.DEPT_ID in
|
|
|
+ <foreach close=")" collection="permissionDeptIds" item="listItem" open="(" separator=",">
|
|
|
+ #{listItem}
|
|
|
+ </foreach>
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ <if test="hasPermission != null and hasPermission == false">
|
|
|
+ AND 1 = 2
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ ) a
|
|
|
+ </select>
|
|
|
+
|
|
|
+</mapper>
|