<?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="pwc.taxtech.atms.dao.DimensionValueOrgMapper"> <resultMap id="UnionDimensionValueOrg" type="pwc.taxtech.atms.dto.dimension.UnionDimensionValueOrg"> <id column="ID" jdbcType="VARCHAR" property="id"/> <result column="DIMENSION_VALUE_ID" jdbcType="VARCHAR" property="dimensionValueId"/> <result column="ORGANIZATION_ID" jdbcType="VARCHAR" property="organizationId"/> <result column="DIMENSION_ID" jdbcType="VARCHAR" property="dimensionId"/> <result column="DIMENSION_VALUE_NAME" jdbcType="VARCHAR" property="dimensionValueName"/> </resultMap> <select id="selectUnionDimensionValueOrgByDimension" parameterType="pwc.taxtech.atms.dto.DimensionParamDto" resultMap="UnionDimensionValueOrg"> SELECT * FROM ( SELECT #{organizationStructureID} AS ID, STRUCTURE_ID AS DIMENSION_VALUE_ID, ID AS ORGANIZATION_ID FROM ORGANIZATION UNION SELECT #{businessUnitID} AS ID, BUSINESS_UNIT_ID AS DIMENSION_VALUE_ID, ID AS ORGANIZATION_ID FROM ORGANIZATION UNION SELECT #{areaID} AS ID, AREA_ID AS DIMENSION_VALUE_ID, ID AS ORGANIZATION_ID FROM ORGANIZATION UNION SELECT ID, DIMENSION_VALUE_ID, ORGANIZATION_ID FROM DIMENSION_VALUE_ORG ) Q JOIN ( SELECT ID AS DIMENSION_VALUE_ID, NAME AS DIMENSION_VALUE_NAME, IS_ACTIVE, #{organizationStructureID} AS DIMENSION_ID, CREATE_TIME, UPDATE_TIME FROM ORGANIZATION_STRUCTURE WHERE IS_ACTIVE=1 UNION SELECT ID AS DIMENSION_VALUE_ID, NAME AS DIMENSION_VALUE_NAME, IS_ACTIVE, #{businessUnitID} AS DIMENSION_ID, CREATE_TIME, UPDATE_TIME FROM BUSINESS_UNIT WHERE IS_ACTIVE=1 UNION SELECT ID AS DIMENSION_VALUE_ID, NAME AS DIMENSION_VALUE_NAME, IS_ACTIVE, #{areaID} AS DIMENSION_ID, SYSDATE AS CREATE_TIME, SYSDATE AS UPDATE_TIME FROM AREA WHERE IS_ACTIVE=1 UNION SELECT ID AS DIMENSION_VALUE_ID, NAME AS DIMENSION_VALUE_NAME, IS_ACTIVE, DIMENSION_ID, CREATE_TIME, UPDATE_TIME FROM DIMENSION_VALUE WHERE IS_ACTIVE=1 ) P ON P.DIMENSION_VALUE_ID = Q.DIMENSION_VALUE_ID JOIN DIMENSION R ON R.IS_ACTIVE = 1 AND P.DIMENSION_ID = R.ID </select> </mapper>