<?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.ruoyi.system.mapper.OaApprovalApplicationAssetMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.ruoyi.system.model.OaApprovalApplicationAsset">
|
<id column="id" property="id" />
|
<result column="approval_application_id" property="approvalApplicationId" />
|
<result column="title" property="title" />
|
<result column="asset_type_id" property="assetTypeId" />
|
<result column="operate_time" property="operateTime" />
|
<result column="expect_return_date" property="expectReturnDate" />
|
<result column="type" property="type" />
|
<result column="borrow_application_id" property="borrowApplicationId" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, approval_application_id, title, asset_type_id, operate_time, expect_return_date, type, borrow_application_id
|
</sql>
|
|
<!-- 分页查询:资产领用申请列表(关联审批记录与资产类型) -->
|
<select id="getPageByType" resultType="com.ruoyi.system.vo.asset.OaApprovalApplicationAssetPageVO">
|
SELECT
|
aaa.id,
|
aaa.application_code,
|
CASE WHEN at2.level = 2 THEN at1.type_name ELSE at2.type_name END AS firstAssetTypeName,
|
CASE WHEN at2.level = 2 THEN at2.type_name ELSE NULL END AS secondAssetTypeName,
|
oaa.title,
|
oaa.operate_time,
|
aaa.approval_status,
|
oaa.return_status,
|
oaa.expect_return_date,
|
su.nick_name AS applicantName,
|
td.dept_name AS deptName
|
FROM oa_approval_application_asset oaa
|
INNER JOIN oa_approval_applications aaa ON aaa.id = oaa.approval_application_id
|
LEFT JOIN asset_type at2 ON at2.id = oaa.asset_type_id
|
LEFT JOIN asset_type at1 ON at1.id = (CASE WHEN at2.level = 2 THEN at2.parent_id ELSE at2.id END)
|
LEFT JOIN sys_user su ON aaa.applicant_user_id = su.user_id
|
LEFT JOIN t_dept td ON aaa.dept_id = td.id
|
<where>
|
AND aaa.disabled = 0
|
AND oaa.type = #{query.type}
|
<if test="query != null and query.keyword != null and query.keyword != ''">
|
AND (
|
oaa.title LIKE CONCAT('%', #{query.keyword}, '%')
|
OR aaa.application_code LIKE CONCAT('%', #{query.keyword}, '%')
|
OR aaa.dept_name LIKE CONCAT('%', #{query.keyword}, '%')
|
OR aaa.applicant_name LIKE CONCAT('%', #{query.keyword}, '%')
|
)
|
</if>
|
<if test="query != null and query.deptId != null">
|
AND aaa.dept_id = #{query.deptId}
|
</if>
|
</where>
|
ORDER BY oaa.operate_time DESC, oaa.id DESC
|
</select>
|
<select id="selectReturnByAssetIds" resultType="com.ruoyi.system.bo.OaApprovalApplicationAssetReturnBO">
|
SELECT
|
oaa.application_code,
|
CASE
|
WHEN oaa.approval_status = 0 THEN
|
1
|
WHEN oaa.approval_status = 1 THEN
|
2
|
END AS return_status,
|
oaaai.asset_main_id
|
FROM
|
oa_approval_application_asset_item oaaai
|
LEFT JOIN oa_approval_application_asset oaaa ON oaaai.approval_application_id = oaaa.approval_application_id
|
LEFT JOIN oa_approval_applications oaa ON oaaai.approval_application_id = oaa.id
|
<where>
|
oaaa.type = 2 AND oaaa.borrow_application_id = #{applicationId}
|
<if test="assetIds != null and assetIds.size() > 0">
|
AND oaaai.asset_main_id IN
|
<foreach collection="assetIds" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
</where>
|
ORDER BY oaa.create_time DESC
|
</select>
|
<select id="getBorrowDetailByApplicationCode"
|
resultType="com.ruoyi.system.vo.asset.OaApprovalApplicationAssetDetailVO"
|
parameterType="java.lang.Long">
|
SELECT
|
oaa.*,
|
oaaa.operate_time
|
FROM
|
oa_approval_applications oaa
|
LEFT JOIN oa_approval_application_asset oaaa ON oaa.id = oaaa.approval_application_id
|
WHERE
|
oaa.applicant_user_id = #{userId}
|
AND oaa.approval_status = 1
|
AND oaaa.type = 1
|
</select>
|
|
</mapper>
|