P15GEN2\59518
2024-05-29 d4210c7c4b04abde20037ea8aa0f54ef8a2649aa
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?xml version="1.0" encoding="UTF-8" ?>
    
<sqls>
    <dataSpace name="workflow">
    
        <sql name="getOutline">
        <![CDATA[    
            select sys_state_working_outline.*, tbl.cnt 
            from sys_state_working_outline 
            left join ( 
                select machine_id, dataname, count(1) as cnt 
                from sys_state_working_main 
                inner join ( 
                    select distinct sys_state_working_user.parent_id from sys_state_working_user 
                    inner join sys_state_working_step on sys_state_working_user.working_step_id = sys_state_working_step.id 
                        and sys_state_working_user.doc_id = sys_state_working_step.doc_id 
                    where  sys_state_working_step.is_active = 'T' and @{user_limit} 
                ) sys_state_working_user on sys_state_working_user.parent_id = sys_state_working_main.id 
                where is_working = 'T' 
                group by machine_id, dataname 
            )tbl on sys_state_working_outline.machine_id = tbl.machine_id and sys_state_working_outline.dataname = tbl.dataname 
            where @{filter}  
            order by parent_id, order_no
        ]]>    
        </sql>
        
        <sql name="getDocumentListFilter">
        <![CDATA[
            exists (
                select 1 from sys_state_working_main
                INNER join (
                    select distinct sys_state_working_step.doc_id from sys_state_working_step
                    inner join sys_state_working_user 
                        on sys_state_working_user.doc_id = sys_state_working_step.doc_id
                       and sys_state_working_user.working_step_id = sys_state_working_step.id 
                    where sys_state_working_step.machine_id = '@{machine_id}'
                        and sys_state_working_step.is_active = 'T'
                        and @{user_limit}
                )tbl on sys_state_working_main.doc_id = tbl.doc_id
                where sys_state_working_main.machine_id = '@{machine_id}'
                    and sys_state_working_main.is_working = 'T'
                    and sys_state_working_main.doc_id = @{tableName}.id
            )
        ]]>            
        </sql>
        
        <sql name="getDocumentHistoryFilter">
        <![CDATA[
            exists ( 
                select 1 from sys_state_working_main 
                inner join ( 
                    select distinct sys_state_working_step.doc_id
                    from sys_state_working_step 
                    inner join sys_state_working_user on sys_state_working_user.doc_id = sys_state_working_step.doc_id 
                        and sys_state_working_user.working_step_id = sys_state_working_step.id 
                    where sys_state_working_step.machine_id = '@{machine_id}' 
                     and sys_state_working_step.is_active = 'F' and @{user_limit}  
                )tbl on tbl.doc_id = sys_state_working_main.doc_id 
            where sys_state_working_main.machine_id = '@{machine_id}' and sys_state_working_main.doc_id = @{tableName}.id 
            ) 
        ]]>            
        </sql>        
        
        <sql name="getApproveStepUsers">
        <![CDATA[
            select sys_state_user.*,
                sys_state_step.id as step_id, sys_state_step.name as step_name, sys_state_step.index_no
            from sys_state_user
            left join sys_state_machine_step on sys_state_machine_user.machine_id = sys_state_machine_step.parent_id
                and sys_state_machine_user.step_id = sys_state_machine_step.id
            where sys_state_machine_user.machine_id = '@{machine_id}'
            order by sys_state_machine_step.index_no
        ]]>    
        </sql>        
        
        <sql name="getFireApproveStatePoints">
        <![CDATA[
            select distinct parent_id from sys_state_step
        ]]>    
        </sql>    
        
        <sql name="getWorkflowHistory">
        <![CDATA[
            select workflow_history.*, sys_state_machine.name as workflow_name
            from workflow_history 
            left join sys_state_machine on workflow_history.machine_id = sys_state_machine.id
            where doc_id = '@{doc_id}'
                  and @{filter}
            order by create_time desc
        ]]>    
        </sql>        
        
        <!-- sys_state_approve_main.machine_id = '@{machine_id}' and -->
        <sql name="closeApproveFlowInstance">
        <![CDATA[
            update sys_state_approve_main 
            set is_working = 'F'
            where sys_state_approve_main.machine_id = '@{machine_id}'
                and sys_state_approve_main.doc_id = '@{doc_id}'
        ]]>    
        </sql>
        
        <sql name="closeApproveFlowAll">
        <![CDATA[
             update sys_state_working_main 
             set is_alive = 'F', is_working = 'F'
             where sys_state_working_main.doc_id = '@{doc_id}'
        ]]>    
        </sql>
        
        <sql name="closeApproveFlowSteps">
        <![CDATA[
             update sys_state_working_step 
             set is_active = 'F'
             where sys_state_working_step.doc_id = '@{doc_id}'
        ]]>    
        </sql>    
 
        <sql name="getWorkingStepUserCount">
        <![CDATA[
             select count(1) from sys_state_working_user
             where working_step_id = '@{working_step_id}'
                 and user_id = '@{user_id}'
        ]]>    
        </sql>    
 
        <sql name="getWorkSteps">
        <![CDATA[
             select id, doc_id from sys_state_working_step
             where exists (
                 select 1 from sys_state_working_user
                 where @{filter} and sys_state_working_user.working_step_id = sys_state_working_step.id 
             )
        ]]>    
        </sql>        
 
        <sql name="getApproverStepInUsing">
        <![CDATA[
            select 
                sys_state_approve.id, sys_state_approve.name
            from  sys_state_approve
            where EXISTS (
                select 1 from sys_state_board 
                inner join sys_state_approve_step on sys_state_board.id = sys_state_approve_step.board_id
                where sys_state_approve_step.parent_id = sys_state_approve.id and sys_state_board.id = '@{boardId}')
        ]]>    
        </sql>        
        
    </dataSpace>
    
</sqls>