ContractChangeApplicationMapper.xml
3.25 KB
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
<?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.lframework.xingyun.sc.mappers.ContractChangeApplicationMapper">
<select id="querySelectableContracts" resultType="com.lframework.xingyun.sc.entity.ContractDistributorStandard">
SELECT tb.id,
tb.code,
tb.buyer,
tb.dept_id,
tb.region,
tb.stock_up_company_id,
tb.order_date,
tb.unit,
tb.workshop_id,
tb.total_quantity,
tb.total_amount_including_tax,
tb.status,
tb.type,
tb.parent_id,
tb.formal_approved,
tb.standard_approved,
tb.price_spec_locked,
tb.change_reason,
tb.create_by,
tb.create_by_id,
tb.create_time
FROM tbl_contract_distributor_standard tb
WHERE tb.status != 'DELETED'
<if test="vo.code != null and vo.code != ''">
AND tb.code LIKE CONCAT('%', #{vo.code}, '%')
</if>
<if test="vo.type != null and vo.type != ''">
AND tb.type = #{vo.type}
</if>
<if test="vo.contractStage != null and vo.contractStage != ''">
AND tb.status = #{vo.contractStage}
</if>
AND (
(tb.type = 'DISTRIB_STD' AND tb.status = 'STANDARD' AND tb.standard_approved = 'PASS')
OR (tb.type = 'DIST_STOCK_CONTRACT' AND (
(tb.status = 'FORMAL' AND tb.formal_approved = 'PASS')
OR (tb.status = 'STANDARD' AND tb.standard_approved = 'PASS')
))
OR (tb.type = 'DRAFT_DIST_AGMT' AND tb.status = 'STANDARD' AND tb.standard_approved = 'PASS')
OR (tb.type = 'INTL_STD_CONTRACT' AND tb.status = 'STANDARD' AND tb.standard_approved = 'PASS')
OR (tb.type = 'INTL_INVENTORY_AGMT' AND (
(tb.status = 'FORMAL' AND tb.formal_approved = 'PASS')
OR (tb.status = 'STANDARD' AND tb.standard_approved = 'PASS')
))
OR (tb.type = 'INTL_OPEN_SPEC_AGMT' AND tb.status = 'STANDARD' AND tb.standard_approved = 'PASS')
OR (tb.type = 'PROCESS_STD_AGMT' AND tb.status = 'STANDARD' AND tb.standard_approved = 'PASS')
)
AND NOT EXISTS (
SELECT 1
FROM tbl_contract_change_application cca
WHERE cca.root_contract_id = IFNULL(NULLIF(tb.parent_id, ''), tb.id)
AND cca.approval_status NOT IN ('PASS', 'CANCEL')
)
AND NOT EXISTS (
SELECT 1
FROM tbl_spec_lock_delay_application sda
LEFT JOIN tbl_contract_distributor_standard rel
ON rel.id = sda.contract_id
WHERE sda.approval_status NOT IN ('PASS', 'CANCEL')
AND (
sda.contract_id = IFNULL(NULLIF(tb.parent_id, ''), tb.id)
OR rel.parent_id = IFNULL(NULLIF(tb.parent_id, ''), tb.id)
)
)
ORDER BY tb.create_time DESC
</select>
</mapper>