Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
8timerv2
8timerapiv200
Commits
dcff51c4
Commit
dcff51c4
authored
2 years ago
by
龙于生
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复审批 转派、同意等问题
parent
03976617
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
61 additions
and
37 deletions
+61
-37
src/main/java/cn/timer/api/utils/router/RouterUtils.java
+61
-37
No files found.
src/main/java/cn/timer/api/utils/router/RouterUtils.java
View file @
dcff51c4
...
...
@@ -5,6 +5,8 @@ import java.util.Date;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
cn.hutool.core.lang.UUID
;
import
cn.hutool.core.util.IdUtil
;
import
org.apache.commons.collections4.ListUtils
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
...
...
@@ -571,13 +573,13 @@ public class RouterUtils {
* @param sts 状态 1执行中 2通过 3拒绝
*/
public
static
void
approving
(
List
<
FlowChildren
>
listFlowChildren
,
Integer
asId
,
Integer
executeRecordId
,
Integer
executorId
,
String
opinion
,
Integer
sts
,
User
redeployUser
,
String
signatureImg
,
Integer
empNum
,
List
<
User
>
redeployUserList
)
throws
Exception
{
boolean
hasNextApprover
=
false
;
//是否有下一个审批人
boolean
hasNextApprover
=
false
;
//统计并序审批 还有几个执行中的
int
es
=
0
;
for
(
int
i
=
0
,
n
=
listFlowChildren
.
size
();
i
<
n
;
i
++)
{
for
(
int
i
=
0
,
n
=
listFlowChildren
.
size
();
i
<
n
;
i
++)
{
// 新增 执行人
List
<
User
>
listUser
=
CollUtil
.
toList
();
boolean
aobl
=
false
;
//用于判断是 否并序审批
...
...
@@ -596,21 +598,27 @@ public class RouterUtils {
}
}
//判断大节点的执行状态 0 未执行 1 执行中 2 已执行
//执行中
if
(
EXECUTING
.
equals
(
listFlowChildren
.
get
(
i
).
getExecute
()))
{
String
currentApprover
=
""
;
//存放当前审批人名称
//遍历当前节点审批人
outloop:
// 标识 (若内层满足条件直接跳到该层循环)
for
(
int
i_user
=
0
,
n_user
=
listUser
.
size
();
i_user
<
n_user
;
i_user
++)
{
//判断用户执行状态 0 未执行 1 执行中 2 已执行
//已执行
if
(
EXECUTED
.
equals
(
listUser
.
get
(
i_user
).
getExecute
()))
{
}
else
if
(
EXECUTING
.
equals
(
listUser
.
get
(
i_user
).
getExecute
()))
{
//执行中
}
else
if
(
EXECUTING
.
equals
(
listUser
.
get
(
i_user
).
getExecute
()))
{
//判断当前节点审批人id 等于 操作用户id 则更新执行人信息:审批意见、状态(0未执行 1执行中 2同意 3拒接 4转派)
if
(
Integer
.
parseInt
(
listUser
.
get
(
i_user
).
getId
())
==
empNum
){
SpmkExecutor
.
builder
()
.
id
(
executorId
)
.
opinion
(
opinion
)
.
empNum
(
Integer
.
parseInt
(
listUser
.
get
(
i_user
).
getId
()))
.
executorName
(
listUser
.
get
(
i_user
).
getName
())
.
operatorHeaderUrl
(
listUser
.
get
(
i_user
).
getHeadUrl
())
//
.empNum(Integer.parseInt(listUser.get(i_user).getId()))
//
.executorName(listUser.get(i_user).getName())
//
.operatorHeaderUrl(listUser.get(i_user).getHeadUrl())
.
sts
(
sts
)
.
signatureImg
(
signatureImg
)
.
build
()
...
...
@@ -640,8 +648,10 @@ public class RouterUtils {
listFlowChildren
.
get
(
i_user
).
setExecute
(
EXECUTED
);
return
;
//转派 处理
//在 原审批人 列表中 插入 一个被转派人(审批人)
//在 原审批人 列表中 插入 一个
或多个
被转派人(审批人)
}
else
if
(
sts
==
ExecutorSts
.
REDEPLOY
.
ordinal
())
{
//新增转派多个人功能
//判断是走派多个人的 否则走旧逻辑
if
(
redeployUserList
.
size
()
>
0
){
List
<
User
>
users1
=
CollectionUtil
.
sub
(
listUser
,
0
,
i_user
+
1
);
for
(
User
ruser:
redeployUserList
...
...
@@ -652,7 +662,8 @@ public class RouterUtils {
}
// List<User> users2 = CollectionUtil.sub(listUser, i_user+1, listUser.size());
// listUser = ListUtils.union(users1, users2);//并集
listR
.
get
(
0
).
setApprovalOrder
(
"1"
);
//listR.get(0).setApprovalOrder("1");
listFlowChildren
.
get
(
i
).
getRelation
().
get
(
0
).
setApprovalOrder
(
"1"
);
}
else
{
List
<
User
>
users1
=
CollectionUtil
.
sub
(
listUser
,
0
,
i_user
+
1
);
redeployUser
.
setExecute
(
UNEXECUTED
);
...
...
@@ -662,35 +673,34 @@ public class RouterUtils {
n_user
=
listUser
.
size
();
}
//
// System.out.println(users1);
// System.out.println(users2);
//
// System.out.println(listUser);
}
}
//未执行
}
else
if
(
UNEXECUTED
.
equals
(
listUser
.
get
(
i_user
).
getExecute
()))
{
//新增执行人 执行状态为执行中
SpmkExecutor
.
builder
()
.
approveExecuteRecordId
(
executeRecordId
)
.
empNum
(
Integer
.
parseInt
(
listUser
.
get
(
i_user
).
getId
()))
.
executorName
(
listUser
.
get
(
i_user
).
getName
())
.
operatorHeaderUrl
(
listUser
.
get
(
i_user
).
getHeadUrl
())
.
sts
(
ExecutorSts
.
IN_EXECUTION
.
ordinal
())
.
build
()
.
insert
();
hasNextApprover
=
true
;
.
approveExecuteRecordId
(
executeRecordId
)
.
empNum
(
Integer
.
parseInt
(
listUser
.
get
(
i_user
).
getId
()))
.
executorName
(
listUser
.
get
(
i_user
).
getName
())
.
operatorHeaderUrl
(
listUser
.
get
(
i_user
).
getHeadUrl
())
.
sts
(
ExecutorSts
.
IN_EXECUTION
.
ordinal
())
.
build
()
.
insert
();
hasNextApprover
=
true
;
//标记为有下个审批人
listUser
.
get
(
i_user
).
setExecute
(
EXECUTING
);
// 当前审批人
SpmkApproveSummary
.
builder
().
id
(
asId
).
currentApprover
(
listUser
.
get
(
i_user
).
getName
()).
build
().
updateById
();
// 处理了 下一个审批人 则跳出循环
//break;
if
(
redeployUserList
.
size
()
==
0
){
break
;
}
}
}
...
...
@@ -709,12 +719,12 @@ public class RouterUtils {
}
}
//判断大节点为未执行
}
else
if
(
UNEXECUTED
.
equals
(
listFlowChildren
.
get
(
i
).
getExecute
()))
{
//判断无下一个审批人 并且 执行中的小于等于1
if
(!
hasNextApprover
&&
es
<=
1
)
{
switch
(
listFlowChildren
.
get
(
i
).
getClassName
())
{
case
CREATOR:
case
CREATOR:
//发起审批人
SpmkApproveExecuteRecord
aer
=
SpmkApproveExecuteRecord
.
builder
()
.
approveSummaryId
(
asId
)
...
...
@@ -738,11 +748,12 @@ public class RouterUtils {
listFlowChildren
.
get
(
i
).
setExecute
(
EXECUTED
);
break
;
case
AUDIT:
case
AUDIT:
//审批中
//判断是否是并序
if
(
aobl
){
String
currentApprover
=
""
;
//遍历当前节点审批人
for
(
int
i_user2
=
0
,
n_user2
=
listUser
.
size
();
i_user2
<
n_user2
;
i_user2
++)
{
SpmkApproveExecuteRecord
aer2
=
SpmkApproveExecuteRecord
.
builder
()
.
approveSummaryId
(
asId
)
...
...
@@ -753,6 +764,7 @@ public class RouterUtils {
// 新增 审批执行记录
aer2
.
insert
();
//新增执行人 并设置状态为执行中
SpmkExecutor
executor
=
SpmkExecutor
.
builder
()
.
approveExecuteRecordId
(
aer2
.
getId
())
.
empNum
(
Integer
.
parseInt
(
listUser
.
get
(
i_user2
).
getId
()))
...
...
@@ -782,7 +794,9 @@ public class RouterUtils {
.
build
();
// 新增 审批执行记录
aer2
.
insert
();
String
currentApprover
=
""
;
//遍历当前节点审批人
outloop:
for
(
int
i_user2
=
0
,
n_user2
=
listUser
.
size
();
i_user2
<
n_user2
;
i_user2
++)
{
SpmkExecutor
executor
=
SpmkExecutor
.
builder
()
.
approveExecuteRecordId
(
aer2
.
getId
())
...
...
@@ -791,21 +805,31 @@ public class RouterUtils {
.
operatorHeaderUrl
(
listUser
.
get
(
i_user2
).
getHeadUrl
())
.
sts
(
ExecutorSts
.
IN_EXECUTION
.
ordinal
())
.
build
();
//新增执行人
executor
.
insert
();
listUser
.
get
(
i_user2
).
setExecute
(
EXECUTING
);
hasNextApprover
=
true
;
// 当前审批人
SpmkApproveSummary
.
builder
().
id
(
asId
).
currentApprover
(
listUser
.
get
(
i_user2
).
getName
()).
build
().
updateById
();
currentApprover
=
currentApprover
!=
""
?
currentApprover
+
","
+
listUser
.
get
(
i_user2
).
getName
():
listUser
.
get
(
i_user2
).
getName
();
SpmkApproveSummary
.
builder
().
id
(
asId
).
currentApprover
(
currentApprover
).
build
().
updateById
();
// 处理了 下一个审批人 则跳出循环
break
;
for
(
int
j
=
0
;
j
<
redeployUserList
.
size
();
j
++)
{
User
u
=
redeployUserList
.
get
(
j
);
if
(
u
.
getId
()
==
listUser
.
get
(
i_user2
).
getId
()){
if
(
j
==
redeployUserList
.
size
()
-
1
){
break
outloop
;
}
}
}
//break;
}
listFlowChildren
.
get
(
i
).
setExecute
(
EXECUTING
);
}
break
;
case
COPY:
case
COPY:
//抄送人
SpmkApproveExecuteRecord
aer3
=
SpmkApproveExecuteRecord
.
builder
()
.
approveSummaryId
(
asId
)
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment