grgw_old_java/heatsupply2/build/classes/mappings/modules/sys/OfficeDao.xml

252 lines
5.7 KiB
XML

<?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.jeeplus.modules.sys.dao.OfficeDao">
<sql id="officeColumns">
a.id,
a.parent_id AS "parent.id",
a.parent_ids,
a.area_id AS "area.id",
a.code,
a.name,
a.sort,
a.type,
a.grade,
a.address,
a.zip_code,
pp.name AS "master",
a.phone,
a.fax,
a.email,
a.remarks,
a.create_by AS "createBy.id",
a.create_date,
a.update_by AS "updateBy.id",
a.update_date,
a.del_flag,
a.useable AS useable,
a.primary_person AS "primaryPerson.id",
a.deputy_person AS "deputyPerson.id",
p.name AS "parent.name",
ar.name AS "area.name",
ar.type AS "area.type",
ar.parent_ids AS "area.parentIds",
pp.name AS "primaryPerson.name",
dp.name AS "deputyPerson.name"
</sql>
<sql id="officeJoins">
LEFT JOIN sys_office p ON p.id = a.parent_id
LEFT JOIN sys_area ar ON ar.id = a.area_id
LEFT JOIN sys_user pp ON pp.id = a.primary_person
LEFT JOIN sys_user dp ON dp.id = a.deputy_person
</sql>
<select id="get" resultType="Office">
SELECT
<include refid="officeColumns"/>
FROM sys_office a
<include refid="officeJoins"/>
WHERE a.id = #{id}
</select>
<select id="getByCode" resultType="Office">
SELECT
<include refid="officeColumns"/>
FROM sys_office a
<include refid="officeJoins"/>
WHERE a.code = #{code}
</select>
<select id="findList" resultType="Office">
SELECT
<include refid="officeColumns"/>
FROM sys_office a
<include refid="officeJoins"/>
WHERE (a.del_flag = #{DEL_FLAG_NORMAL}
<!-- 数据范围过滤 -->
${sqlMap.dsf}
OR a.id = #{currentUser.office.id})
<if test="name != null and name != ''">
AND a.name = #{name}
</if>
ORDER BY a.code
</select>
<select id="findOfficeList" resultType="Office">
SELECT
<include refid="officeColumns"/>
FROM sys_office a
<include refid="officeJoins"/>
WHERE a.del_flag = #{DEL_FLAG_NORMAL}
<if test="parent != null and parent.id != null and parent.id != ''">
AND a.parent_ids LIKE
<if test="dbName == 'oracle'">'%,'||#{parent.id}||',%'</if>
<if test="dbName == 'mysql'">CONCAT('%,', #{parent.id}, ',%')</if>
</if>
<if test="name != null and name != ''">
AND a.name like
<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
</if>
<if test="type != null and type != ''">
AND a.type = #{type}
</if>
<!-- 数据范围过滤 -->
${sqlMap.dsf}
ORDER BY a.code
</select>
<select id="findAllList" resultType="Office">
SELECT
<include refid="officeColumns"/>
FROM sys_office a
<include refid="officeJoins"/>
WHERE a.del_flag = #{DEL_FLAG_NORMAL}
ORDER BY a.code
</select>
<select id="findByParentIdsLike" resultType="Office">
SELECT
<include refid="officeColumns"/>
FROM sys_office a
<include refid="officeJoins"/>
WHERE a.del_flag = #{DEL_FLAG_NORMAL} AND a.parent_ids LIKE #{parentIds}
ORDER BY a.code
</select>
<insert id="insert">
INSERT INTO sys_office(
id,
parent_id,
parent_ids,
area_id,
code,
name,
sort,
type,
grade,
address,
zip_code,
master,
phone,
fax,
email,
create_by,
create_date,
update_by,
update_date,
remarks,
del_flag,
useable,
primary_person,
deputy_person
) VALUES (
#{id},
#{parent.id},
#{parentIds},
#{area.id},
#{code},
#{name},
#{sort},
#{type},
#{grade},
#{address},
#{zipCode},
#{master},
#{phone},
#{fax},
#{email},
#{createBy.id},
#{createDate},
#{updateBy.id},
#{updateDate},
#{remarks},
#{delFlag},
#{useable},
#{primaryPerson.id},
#{deputyPerson.id}
)
</insert>
<update id="update">
UPDATE sys_office SET
parent_id = #{parent.id},
parent_ids = #{parentIds},
area_id = #{area.id},
code = #{code},
name = #{name},
type = #{type},
grade = #{grade},
address = #{address},
zip_code = #{zipCode},
master = #{master},
phone = #{phone},
fax = #{fax},
email = #{email},
update_by = #{updateBy.id},
update_date = #{updateDate},
remarks = #{remarks},
useable=#{useable},
primary_person=#{primaryPerson.id},
deputy_person=#{deputyPerson.id}
WHERE id = #{id}
</update>
<update id="updateParentIds">
UPDATE sys_office SET
parent_id = #{parent.id},
parent_ids = #{parentIds}
WHERE id = #{id}
</update>
<update id="delete">
DELETE FROM sys_office
WHERE id = #{id} OR parent_ids LIKE
<if test="dbName == 'oracle'">'%,'||#{id}||',%'</if>
<if test="dbName == 'mysql'">CONCAT('%,', #{id}, ',%')</if>
</update>
<update id="deleteByLogic">
UPDATE sys_office SET
del_flag = #{DEL_FLAG_DELETE}
WHERE id = #{id} OR parent_ids LIKE
<if test="dbName == 'oracle'">'%,'||#{id}||',%'</if>
<if test="dbName == 'mysql'">CONCAT('%,', #{id}, ',%')</if>
</update>
<select id="findOfficeId" resultType="Office">
SELECT
a.id,
a.parent_id AS "parent.id",
a.parent_ids,
a.area_id AS "area.id",
a.code,
a.name,
a.sort,
a.type,
a.grade,
a.address,
a.zip_code,
a.master,
a.phone,
a.fax,
a.email,
a.remarks,
a.create_by AS "createBy.id",
a.create_date,
a.update_by AS "updateBy.id",
a.update_date,
a.del_flag,
a.useable AS useable,
a.primary_person AS "primaryPerson.id",
a.deputy_person AS "deputyPerson.id"
FROM sys_office a
<if test="dtAreaId != null and dtAreaId != ''">
WHERE a.area_id = #{dtAreaId}
</if>
</select>
</mapper>