You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

89 lines
3.2 KiB

<?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.epmet.dao.DataSyncConfigDao">
<!-- 【数据配置】配置开关 -->
<update id="configSwitch">
UPDATE data_sync_config
SET UPDATED_TIME = NOW(),
UPDATED_BY = #{updatedBy},
SWITCH_STATUS = CASE WHEN SWITCH_STATUS = 'open' THEN 'closed' ELSE 'open' END
WHERE id = #{dataSyncConfigId}
AND DEPT_CODE = #{deptCode}
</update>
<!-- 删除范围 -->
<delete id="delScope">
DELETE FROM data_sync_scope WHERE DATA_SYNC_CONFIG_ID = #{dataSyncConfigId}
</delete>
<!-- 【数据配置】列表 -->
<resultMap id="dataConfigList" type="com.epmet.dto.DataSyncConfigDTO">
<result property="id" column="id"/>
<result property="deptName" column="deptName"/>
<result property="deptCode" column="deptCode"/>
<result property="dataName" column="dataName"/>
<result property="switchStatus" column="switchStatus"/>
<result property="sort" column="sort"/>
<result property="dataCode" column="dataCode"/>
<collection property="scopeList" column="id" ofType="com.epmet.dto.DataSyncScopeDTO" select="scopeList"/>
</resultMap>
<select id="list" resultMap="dataConfigList">
SELECT
ID AS id,
DEPT_CODE AS deptCode,
DEPT_NAME AS deptName,
DATA_NAME AS dataName,
switch_status AS switchStatus,
sort AS sort,
data_code AS dataCode
FROM data_sync_config
WHERE DEL_FLAG = 0
<if test='null != customerId and customerId != "" '>
AND CUSTOMER_ID = #{customerId}
</if>
order by sort
</select>
<!-- 范围查询 -->
<select id="scopeList" resultType="com.epmet.dto.DataSyncScopeDTO">
SELECT * FROM data_sync_scope WHERE DEL_FLAG = '0' AND DATA_SYNC_CONFIG_ID = #{id};
</select>
<!-- 根据范围查询居民证件号 -->
<select id="getIdCardsByScope" resultType="com.epmet.dto.result.NatUserInfoResultDTO">
SELECT
DISTINCT ID_CARD AS idCard,
ID AS userId,
AGENCY_ID AS agencyId,
pids
FROM ic_resi_user
WHERE DEL_FLAG = '0'
AND `STATUS` = '0'
AND (
<foreach collection="list" item="l" separator="OR">
<choose>
<when test='"grid" == l.orgType'>GRID_ID = #{l.orgId}</when>
<otherwise>PIDS LIKE CONCAT('%',#{l.orgId},'%')</otherwise>
</choose>
</foreach>
)
ORDER BY CREATED_TIME
</select>
<select id="getUserIdByIdCard" resultType="com.epmet.dto.result.NatUserInfoResultDTO">
SELECT
DISTINCT ID_CARD AS idCard,
ID AS userId,
AGENCY_ID AS agencyId,
pids
FROM ic_resi_user
WHERE DEL_FLAG = '0'
AND `STATUS` = '0'
AND id_card in (
<foreach collection="list" item="l" separator=",">
#{l}
</foreach>
)
</select>
</mapper>