1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?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.purchase.mapper.PurchaseReturnOrdersMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.purchase.pojo.PurchaseReturnOrders">
        <id column="id" property="id" />
        <result column="no" property="no" />
        <result column="return_type" property="returnType" />
        <result column="supplier_id" property="supplierId" />
        <result column="project_id" property="projectId" />
        <result column="project_phase" property="projectPhase" />
        <result column="prepared_at" property="preparedAt" />
        <result column="prepared_user_id" property="preparedUserId" />
        <result column="return_user_id" property="returnUserId" />
        <result column="purchase_ledger_id" property="purchaseLedgerId" />
        <result column="remark" property="remark" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
    </resultMap>
    <sql id="getPurchaseReturnOrderHasAllInfoFormAndColumn">
        SELECT
            pro.*,
            sm.supplier_name as supplier_name,
            pl.purchase_contract_number as purchase_contract_number
        FROM purchase_return_orders pro
                 LEFT JOIN supplier_manage sm ON pro.supplier_id = sm.id
                 LEFT JOIN purchase_ledger pl ON pl.id = pro.purchase_ledger_id
    </sql>
    <select id="listPage" resultType="com.ruoyi.purchase.dto.PurchaseReturnOrderHasAllInfoDto">
        <include refid="getPurchaseReturnOrderHasAllInfoFormAndColumn"/>
        <where>
        <if test="params.no != null and params.no != '' ">
            AND pro.no LIKE CONCAT('%',#{params.no},'%')
        </if>
        <if test="params.deptId != null">
            AND pro.dept_id = #{params.deptId}
        </if>
        <if test="params.deptIds != null and params.deptIds.length > 0">
            AND pro.dept_id IN
            <foreach collection="params.deptIds" item="deptId" open="(" separator="," close=")">
                #{deptId}
            </foreach>
        </if>
        <if test="params.createUser != null">
            AND pro.create_user = #{params.createUser}
        </if>
        </where>
        ORDER BY pro.create_time DESC
    </select>
    <select id="getPurchaseReturnOrderHasAllInfoById"
            resultType="com.ruoyi.purchase.dto.PurchaseReturnOrderHasAllInfoDto">
        <include refid="getPurchaseReturnOrderHasAllInfoFormAndColumn"/>
        where pro.id = #{id}
    </select>
    <select id="listPageAccountPurchaseReturn"
            resultType="com.ruoyi.account.bean.vo.PurchaseReturnVo">
         select pro.id,
                pro.no returnNo,
                sm.supplier_name,
 
                pro.prepared_at,
                pro.total_amount,
                CASE pro.return_type WHEN 0 THEN '退货退款' WHEN 1 THEN '拒收' END AS returnType,
                pl.purchase_contract_number
        from purchase_return_orders pro
                 left join supplier_manage sm on pro.supplier_id = sm.id
                 left join purchase_ledger pl on pro.purchase_ledger_id = pl.id
        where rm.status=1
            <if test="req.returnNo != null and req.returnNo != ''">
                and pro.no like concat('%',#{req.returnNo},'%')
            </if>
            <if test="req.supplierName != null and req.supplierName != ''">
                and sm.supplier_name like concat('%',#{req.supplierName},'%')
            </if>
            <if test="req.startDate != null and req.endDate != null">
                AND DATE_FORMAT(pro.prepared_at, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
            </if>
         order by pro.id DESC
    </select>
</mapper>