convert_after_mssql.sql
6.68 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
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
--Обновление задачи на согласование по регламенту.
-- Установить свойство "Несколько адресатов" в задаче на согласование по регламенту в False.
update t
set ApprIsManyAddr_Docflow_Sungero = 'false'
from Sungero_WF_Task t
where ApprIsManyAddr_Docflow_Sungero is null
and Discriminator = '100950d0-03d2-44f0-9e31-f9c8dfdf3829'
if exists(select 1 from INFORMATION_SCHEMA.TABLES where table_name = 'Sungero_Docflow_TAprAddressees')
begin
declare @temp_TasksTable table
(
Id int identity(1,1),
TaskId int,
AddresseeId int
)
-- Используется дискриминатор задачи на согласование по регламенту (100950d0-03d2-44f0-9e31-f9c8dfdf3829).
insert into @temp_TasksTable
select distinct
task.Id,
task.Addressee_Docflow_Sungero
from Sungero_WF_Task as task
left join Sungero_Docflow_TAprAddressees as addr on task.Id = addr.Task
where task.Discriminator = '100950d0-03d2-44f0-9e31-f9c8dfdf3829'
and task.Addressee_Docflow_Sungero is not null
and addr.Task is null
-- Дискриминатор свойства-коллекции адресатов задачи на согласование по регламенту (342199D9-3901-451F-B03A-2255B9DB6377).
declare @addresseesDiscriminator varchar(36) = '342199D9-3901-451F-B03A-2255B9DB6377'
declare @addresseesNewId int
declare @tasksToConvertCount int
declare @TAprAddresseesTableLastId int
-- Подсчет количества новых элементов.
select @tasksToConvertCount =
COUNT(TaskId)
from
@temp_TasksTable
-- Получение последнего ИД в таблице для свойства-коллекции адресатов задачи на согласование по регламенту.
select @TAprAddresseesTableLastId = LastId
from Sungero_System_Ids
where TableName = 'Sungero_Docflow_TAprAddressees'
-- Резервирование id в таблице.
exec Sungero_System_GetNewId 'Sungero_Docflow_TAprAddressees', @addresseesNewId output, @tasksToConvertCount
insert into Sungero_Docflow_TAprAddressees
(
[Id],
[Discriminator],
[Task],
[Addressee]
)
select
@TAprAddresseesTableLastId + t.Id,
@addresseesDiscriminator,
t.TaskId,
t.AddresseeId
from @temp_TasksTable as t
end
--Обновление задания на согласование руководителем.
if exists(select 1 from INFORMATION_SCHEMA.TABLES where table_name = 'Sungero_Docflow_AAprManAddr')
begin
declare @temp_ManagerAssignmentsTable table
(
Id int identity(1,1),
AssignmentId int,
AddresseeId int
)
-- Используется дискриминатор задания на согласование руководителем (bbb08f45-60c1-4496-9ff6-b32caed44215).
insert into @temp_ManagerAssignmentsTable
select distinct
asg.Id,
asg.AddresseeMan_Docflow_Sungero
from Sungero_WF_Assignment as asg
left join Sungero_Docflow_AAprManAddr as addr on asg.Id = addr.Assignment
where asg.Discriminator = 'bbb08f45-60c1-4496-9ff6-b32caed44215'
and asg.AddresseeMan_Docflow_Sungero is not null
and addr.Assignment is null
-- Дискриминатор свойства-коллекции адресатов задания на согласование руководителем (5DB88398-C7FD-48DF-95BC-F70F00A67ADE).
declare @addresseesManagerAsgDiscriminator varchar(36) = '5DB88398-C7FD-48DF-95BC-F70F00A67ADE'
declare @addresseesManagerAsgNewId int
declare @ManagerAssignmentsToConvertCount int
declare @AAprManAddresseesTableLastId int
-- Подсчет количества новых элементов.
select @ManagerAssignmentsToConvertCount =
COUNT(AssignmentId)
from
@temp_ManagerAssignmentsTable
-- Получение последнего ИД в таблице для свойства-коллекции адресатов задания на согласование руководителем.
select @AAprManAddresseesTableLastId = LastId
from Sungero_System_Ids
where TableName = 'Sungero_Docflow_AAprManAddr'
-- Резервирование id в таблице.
exec Sungero_System_GetNewId 'Sungero_Docflow_AAprManAddr', @addresseesManagerAsgNewId output, @ManagerAssignmentsToConvertCount
insert into Sungero_Docflow_AAprManAddr
(
[Id],
[Discriminator],
[Assignment],
[Addressee]
)
select
@AAprManAddresseesTableLastId + t.Id,
@addresseesManagerAsgDiscriminator,
t.AssignmentId,
t.AddresseeId
from @temp_ManagerAssignmentsTable as t
end
--Обновление задания на доработку.
if exists(select 1 from INFORMATION_SCHEMA.TABLES where table_name = 'Sungero_Docflow_AAprRewAdrs')
begin
declare @temp_ReworkAssignmentsTable table
(
Id int identity(1,1),
AssignmentId int,
AddresseeId int
)
-- Используется дискриминатор задания на доработку (040862cd-a46f-4366-b068-e659c7acaea6).
insert into @temp_ReworkAssignmentsTable
select distinct
asg.Id,
asg.AddresseeRwk_Docflow_Sungero
from Sungero_WF_Assignment as asg
left join Sungero_Docflow_AAprRewAdrs as addr on asg.Id = addr.Assignment
where asg.Discriminator = '040862cd-a46f-4366-b068-e659c7acaea6'
and asg.AddresseeRwk_Docflow_Sungero is not null
and addr.Assignment is null
-- Дискриминатор свойства-коллекции адресатов задания на доработку (83fd57d1-e450-48bd-94d1-09926bcd2721).
declare @addresseesReworkAsgDiscriminator varchar(36) = '83fd57d1-e450-48bd-94d1-09926bcd2721'
declare @addresseesReworkAsgNewId int
declare @ReworkAssignmentsToConvertCount int
declare @AAprRewAddresseesTableLastId int
-- Подсчет количества новых элементов.
select @ReworkAssignmentsToConvertCount =
COUNT(AssignmentId)
from
@temp_ReworkAssignmentsTable
-- Получение последнего ИД в таблице для свойства-коллекции адресатов задания на доработку.
select @AAprRewAddresseesTableLastId = LastId
from Sungero_System_Ids
where TableName = 'Sungero_Docflow_AAprRewAdrs'
-- Резервирование id в таблице.
exec Sungero_System_GetNewId 'Sungero_Docflow_AAprRewAdrs', @addresseesReworkAsgNewId output, @ReworkAssignmentsToConvertCount
insert into Sungero_Docflow_AAprRewAdrs
(
[Id],
[Discriminator],
[Assignment],
[Addressee]
)
select
@AAprRewAddresseesTableLastId + t.Id,
@addresseesReworkAsgDiscriminator,
t.AssignmentId,
t.AddresseeId
from @temp_ReworkAssignmentsTable as t
end