zhongchangyuyu 1cf46e5633 资产优化
2025-04-25 19:53:53 +08:00

202 lines
8.9 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.AssetMapper">
<resultMap id="BaseResultMap" type="com.psbc.cpsp.eden.common.entity.Asset">
<id column="id" property="id"/>
<result column="asset_code" property="assetCode"/>
<result column="asset_name" property="assetName"/>
<result column="classification_id" property="classificationId"/>
<result column="admin_user_id" property="adminUserId"/>
<result column="company_id" property="companyId"/>
<result column="location_id" property="locationId"/>
<result column="purchase_type" property="purchaseType"/>
<result column="brand" property="brand"/>
<result column="model" property="model"/>
<result column="serial_number" property="serialNumber"/>
<result column="purchase_amount" property="purchaseAmount"/>
<result column="expected_useful_life" property="expectedUsefulLife"/>
<result column="remark" property="remark"/>
<result column="purchase_date" property="purchaseDate"/>
<result column="storage_date" property="storageDate"/>
<result column="asset_photo" property="assetPhoto"/>
<result column="maintenance_due_date" property="maintenanceDueDate"/>
<result column="maintenance_description" property="maintenanceDescription"/>
<result column="expected_depreciation_period" property="expectedDepreciationPeriod"/>
<result column="asset_status" property="assetStatus"/>
<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>
<sql id="Base_Column_List">
"id", "asset_code", "asset_name", "classification_id", "admin_user_id", "company_id",
"location_id", "purchase_type", "brand", "model", "serial_number", "purchase_amount",
"expected_useful_life", "remark", "purchase_date", "storage_date", "asset_photo",
"maintenance_due_date", "maintenance_description", "expected_depreciation_period",
"asset_status", "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.Asset" useGeneratedKeys="true" keyProperty="id">
INSERT INTO "tb_asset" (
"asset_code", "asset_name", "classification_id", "admin_user_id", "company_id",
"location_id", "purchase_type", "brand", "model", "serial_number", "purchase_amount",
"expected_useful_life", "remark", "purchase_date", "storage_date", "asset_photo",
"maintenance_due_date", "maintenance_description", "expected_depreciation_period",
"asset_status", "create_user_id", "create_time", "del_flag", "last_mod_user_id",
"last_mod_time"
) VALUES (
#{assetCode}, #{assetName}, #{classificationId}, #{adminUserId}, #{companyId},
#{locationId}, #{purchaseType}, #{brand}, #{model}, #{serialNumber}, #{purchaseAmount},
#{expectedUsefulLife}, #{remark}, #{purchaseDate}, #{storageDate}, #{assetPhoto},
#{maintenanceDueDate}, #{maintenanceDescription}, #{expectedDepreciationPeriod},
#{assetStatus}, #{createUserId}, #{createTime}, #{delFlag}, #{lastModUserId},
#{lastModTime}
)
</insert>
<!-- 修改资产 -->
<update id="update" parameterType="com.psbc.cpsp.eden.common.entity.Asset">
UPDATE "tb_asset"
<set>
"asset_code" = #{assetCode},
"asset_name" = #{assetName},
"classification_id" = #{classificationId},
"admin_user_id" = #{adminUserId},
"company_id" = #{companyId},
"location_id" = #{locationId},
"purchase_type" = #{purchaseType},
"brand" = #{brand},
"model" = #{model},
"serial_number" = #{serialNumber},
"purchase_amount" = #{purchaseAmount},
"expected_useful_life" = #{expectedUsefulLife},
"remark" = #{remark},
"purchase_date" = #{purchaseDate},
"storage_date" = #{storageDate},
"asset_photo" = #{assetPhoto},
"maintenance_due_date" = #{maintenanceDueDate},
"maintenance_description" = #{maintenanceDescription},
"expected_depreciation_period" = #{expectedDepreciationPeriod},
"asset_status" = #{assetStatus},
"last_mod_user_id" = #{lastModUserId},
"last_mod_time" = #{lastModTime}
</set>
WHERE id=#{id} AND "del_flag" = '0'
</update>
<!-- 更新资产状态 -->
<update id="updateStatus">
UPDATE "tb_asset"
SET "asset_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"
WHERE id=#{id} AND "del_flag" = '0'
</select>
<!-- 查询资产列表 -->
<select id="selectList" parameterType="com.psbc.cpsp.eden.common.entity.Asset" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM "tb_asset"
WHERE "del_flag" = '0'
<if test="assetCode != null and assetCode != ''">
AND "asset_code" LIKE CONCAT('%', #{assetCode}, '%')
</if>
<if test="assetName != null and assetName != ''">
AND "asset_name" LIKE CONCAT('%', #{assetName}, '%')
</if>
<if test="classificationId != null">
AND "classification_id" = #{classificationId}
</if>
<if test="adminUserId != null and adminUserId != ''">
AND "admin_user_id" = #{adminUserId}
</if>
<if test="companyId != null">
AND "company_id" = #{companyId}
</if>
<if test="locationId != null">
AND "location_id" = #{locationId}
</if>
<if test="assetStatus != null and assetStatus != ''">
AND "asset_status" = #{assetStatus}
</if>
<if test="brand != null and brand != ''">
AND "brand" LIKE CONCAT('%', #{brand}, '%')
</if>
<if test="serialNumber != null and serialNumber != ''">
AND "serial_number" LIKE CONCAT('%', #{serialNumber}, '%')
</if>
<if test="maintenanceExpired != null and maintenanceExpired != ''">
<choose>
<when test="maintenanceExpired == '1'">
AND "maintenance_due_date" IS NOT NULL AND "maintenance_due_date" &lt;= CURRENT_DATE
</when>
<when test="maintenanceExpired == '0'">
AND ("maintenance_due_date" IS NULL OR "maintenance_due_date" > CURRENT_DATE)
</when>
</choose>
</if>
ORDER BY "asset_code"
</select>
<!-- 逻辑删除资产 -->
<update id="deleteById">
UPDATE "tb_asset"
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"
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"
WHERE "asset_code" = #{assetCode}
AND "del_flag" = '0'
<if test="id != null and id != '' and id != 'null'">
AND "id" != #{id}
</if>
</select>
<!-- 根据资产编码查询资产信息 -->
<select id="selectByCode" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM "tb_asset"
WHERE "asset_code" = #{assetCode}
AND "del_flag" = '0'
ORDER BY "id"
</select>
<!-- 获取指定前缀的最大序列号 -->
<select id="getMaxSequenceByPrefix" resultType="int">
SELECT COALESCE(MAX(CAST(SUBSTRING("asset_code", LENGTH(#{prefix}) + 1) AS INTEGER)), 0)
FROM "tb_asset"
WHERE "asset_code" LIKE CONCAT(#{prefix}, '%')
AND "del_flag" = '0'
</select>
</mapper>