181 lines
7.1 KiB
XML
181 lines
7.1 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.psbc.cpsp.eden.mapper.asset.AssetClassificationMapper">
|
|
<resultMap id="BaseResultMap" type="com.psbc.cpsp.eden.common.entity.AssetClassification">
|
|
<id column="id" property="id"/>
|
|
<result column="classification_code" property="classificationCode"/>
|
|
<result column="classification_name" property="classificationName"/>
|
|
<result column="parent_id" property="parentId"/>
|
|
<result column="status" property="status"/>
|
|
<result column="remark" property="remark"/>
|
|
<result column="create_user_id" property="createUserId"/>
|
|
<result column="create_time" property="createTime"/>
|
|
<result column="del_flag" property="delFlag"/>
|
|
<result column="last_mod_user_id" property="lastModUserId"/>
|
|
<result column="last_mod_time" property="lastModTime"/>
|
|
<result column="tenant_id" property="tenantId"/>
|
|
</resultMap>
|
|
|
|
<resultMap id="TreeResultMap" type="com.psbc.cpsp.eden.common.vo.TreeNode">
|
|
<id column="id" property="id"/>
|
|
<result column="classification_name" property="label"/>
|
|
<result column="parent_id" property="parentId"/>
|
|
<result column="has_children" property="hasChildren"/>
|
|
<result column="classification_code" property="code"/>
|
|
</resultMap>
|
|
|
|
<sql id="Base_Column_List">
|
|
"id", "classification_code", "classification_name", "parent_id", "status", "remark",
|
|
"create_user_id", "create_time", "del_flag", "last_mod_user_id", "last_mod_time", "tenant_id"
|
|
</sql>
|
|
|
|
<!-- 新增资产分类 -->
|
|
<insert id="insert" parameterType="com.psbc.cpsp.eden.common.entity.AssetClassification" useGeneratedKeys="true" keyProperty="id">
|
|
INSERT INTO "tb_asset_classification" (
|
|
"classification_code", "classification_name", "parent_id", "status", "remark",
|
|
"create_user_id", "create_time", "del_flag", "last_mod_user_id", "last_mod_time"
|
|
) VALUES (
|
|
#{classificationCode}, #{classificationName}, #{parentId}, #{status}, #{remark},
|
|
#{createUserId}, #{createTime}, #{delFlag}, #{lastModUserId}, #{lastModTime}
|
|
)
|
|
</insert>
|
|
|
|
<!-- 修改资产分类 -->
|
|
<update id="update" parameterType="com.psbc.cpsp.eden.common.entity.AssetClassification">
|
|
UPDATE "tb_asset_classification"
|
|
<set>
|
|
"classification_code" = #{classificationCode},
|
|
"classification_name" = #{classificationName},
|
|
"parent_id" = #{parentId},
|
|
"status" = #{status},
|
|
"remark" = #{remark},
|
|
"last_mod_user_id" = #{lastModUserId},
|
|
"last_mod_time" = #{lastModTime}
|
|
</set>
|
|
WHERE "id" = #{id} AND "del_flag" = '0'
|
|
</update>
|
|
|
|
<!-- 更新资产分类状态 -->
|
|
<update id="updateStatus">
|
|
UPDATE "tb_asset_classification"
|
|
SET "status" = #{status},
|
|
"last_mod_user_id" = #{lastModUserId},
|
|
"last_mod_time" = #{lastModTime}
|
|
WHERE "id" = #{id} AND "del_flag" = '0'
|
|
</update>
|
|
|
|
<!-- 根据ID查询资产分类详情 -->
|
|
<select id="selectById" resultMap="BaseResultMap">
|
|
SELECT <include refid="Base_Column_List" />
|
|
FROM "tb_asset_classification"
|
|
WHERE "id" = #{id} AND "del_flag" = '0'
|
|
</select>
|
|
|
|
<!-- 查询资产分类列表 -->
|
|
<select id="selectList" parameterType="com.psbc.cpsp.eden.common.entity.AssetClassification" resultMap="BaseResultMap">
|
|
SELECT <include refid="Base_Column_List" />
|
|
FROM "tb_asset_classification"
|
|
WHERE "del_flag" = '0'
|
|
<if test="classificationCode != null and classificationCode != ''">
|
|
AND "classification_code" LIKE CONCAT('%', #{classificationCode}, '%')
|
|
</if>
|
|
<if test="classificationName != null and classificationName != ''">
|
|
AND "classification_name" LIKE CONCAT('%', #{classificationName}, '%')
|
|
</if>
|
|
<if test="parentId != null">
|
|
AND "parent_id" = #{parentId}
|
|
</if>
|
|
<if test="status != null and status != ''">
|
|
AND "status" = #{status}
|
|
</if>
|
|
ORDER BY "classification_code"
|
|
</select>
|
|
|
|
<!-- 逻辑删除资产分类 -->
|
|
<update id="deleteById">
|
|
UPDATE "tb_asset_classification"
|
|
SET "del_flag" = '1',
|
|
"last_mod_user_id" = #{lastModUserId},
|
|
"last_mod_time" = NOW()
|
|
WHERE "id" = #{id} AND "del_flag" = '0'
|
|
</update>
|
|
|
|
<!-- 批量逻辑删除资产分类 -->
|
|
<update id="deleteBatchIds">
|
|
UPDATE "tb_asset_classification"
|
|
SET "del_flag" = '1',
|
|
"last_mod_user_id" = #{lastModUserId},
|
|
"last_mod_time" = NOW()
|
|
WHERE "id" IN
|
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
AND "del_flag" = '0'
|
|
</update>
|
|
|
|
<!-- 检查分类编码是否唯一 -->
|
|
<select id="checkCodeUnique" resultType="int">
|
|
SELECT COUNT(1)
|
|
FROM "tb_asset_classification"
|
|
WHERE "classification_code" = #{classificationCode}
|
|
AND "del_flag" = '0'
|
|
<if test="id != null">
|
|
AND "id" !=#{id}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 检查分类名称是否存在 -->
|
|
<select id="checkNameExists" resultType="java.lang.Integer">
|
|
SELECT COUNT(1)
|
|
FROM "tb_asset_classification"
|
|
WHERE "classification_name" = #{classificationName}
|
|
AND "del_flag" = '0'
|
|
<if test="id != null ">
|
|
AND "id" !=#{id}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 查询资产分类树结构 -->
|
|
<select id="selectTree" resultMap="TreeResultMap">
|
|
SELECT
|
|
a."id",
|
|
a."classification_name",
|
|
a."parent_id",
|
|
a."classification_code",
|
|
CASE WHEN EXISTS (
|
|
SELECT 1 FROM "tb_asset_classification" b
|
|
WHERE b."parent_id" = a."id"
|
|
AND b."del_flag" = '0'
|
|
) THEN TRUE ELSE FALSE END AS "has_children"
|
|
FROM "tb_asset_classification" a
|
|
WHERE a."del_flag" = '0'
|
|
<if test="classificationName != null and classificationName != ''">
|
|
AND a."classification_name" LIKE CONCAT('%' ,#{classificationName}, '%')
|
|
</if>
|
|
<if test="status != null and status != ''">
|
|
AND a."status" = #{status}
|
|
</if>
|
|
ORDER BY a."parent_id" NULLS FIRST, a."classification_code"
|
|
</select>
|
|
|
|
<!-- 根据父ID查询所有子节点 -->
|
|
<select id="selectChildrenByParentId" resultMap="BaseResultMap">
|
|
SELECT <include refid="Base_Column_List" />
|
|
FROM "tb_asset_classification"
|
|
WHERE "del_flag" = '0'
|
|
<if test="parentId != null">
|
|
AND "parent_id" = #{parentId}
|
|
</if>
|
|
ORDER BY "classification_code"
|
|
</select>
|
|
|
|
<!-- 根据分类名称查询分类ID -->
|
|
<select id="selectIdByName" resultType="java.lang.Long">
|
|
SELECT "id"
|
|
FROM "tb_asset_classification"
|
|
WHERE "classification_name" = #{classificationName}
|
|
AND "del_flag" = '0'
|
|
LIMIT 1
|
|
</select>
|
|
|
|
</mapper> |