Compare commits

127 Commits
Author SHA1 Message Date
王晓勇 b09feb504a Merge branch 'fix_foton_20240619' into 'master'
fix: 计划管控节点重新起草后数据存储修改

See merge request laws-foton-slrs/foton-wkflow-rest!97
2024-07-26 01:22:59 +00:00
wxyclub 9660d901f9 fix: 计划管控节点重新起草后数据存储修改 2024-07-04 16:19:45 +08:00
王晓勇 862a4df2aa Merge branch 'fix_foton_20240619' into 'master'
Fix foton 20240619

See merge request laws-foton-slrs/foton-wkflow-rest!96
2024-07-01 09:56:15 +00:00
wxyclub 3348d32527 fix: 重点认证标准/政策合规性项目审查流程BUG修改 2024-07-01 14:20:31 +08:00
wxyclub 0929339284 fix: 重点认证标准/政策合规性项目审查流程BUG修改 2024-07-01 13:34:34 +08:00
wxyclub 508e966fad fix: 政策征求意见流程BUG修改 2024-07-01 11:01:11 +08:00
王晓勇 0091fd24dd Merge branch 'fix_foton_20240619' into 'master'
Fix foton 20240619

See merge request laws-foton-slrs/foton-wkflow-rest!95
2024-06-19 10:06:08 +00:00
wxyclub 4e782dcd17 Merge branch 'fix_foton_20240430' into fix_foton_20240619 2024-06-19 15:10:59 +08:00
wxyclub d4e066996e fix: 流程状态变更 2024-06-17 09:32:14 +08:00
王晓勇 7c40fc6b1d Merge branch 'fix_foton_20240430' into 'master'
fix: 标准解读流程流程名称出现null的情况处理

See merge request laws-foton-slrs/foton-wkflow-rest!93
2024-06-06 10:40:20 +00:00
wxyclub 78e91de609 fix: 标准解读流程流程名称出现null的情况处理 2024-06-06 18:39:35 +08:00
王晓勇 85f697894b Merge branch 'test_20240409_for39' into 'master'
Test 20240409 for39

See merge request laws-foton-slrs/foton-wkflow-rest!92
2024-05-22 09:59:41 +00:00
王晓勇 52cc59ace7 Merge branch 'fix_foton_20240430' into 'master'
fix: 添加发送待办接口

See merge request laws-foton-slrs/foton-wkflow-rest!91
2024-05-21 09:46:59 +00:00
wxyclub 8e2f49f12f fix: 添加发送待办接口 2024-05-21 17:45:00 +08:00
王晓勇 ebfe05cdfc Merge branch 'fix_foton_20240430' into 'master'
Fix foton 20240430

See merge request laws-foton-slrs/foton-wkflow-rest!90
2024-05-09 09:47:34 +00:00
wxyclub 5352591652 fix: 流程历史显示错误问题修改 2024-05-09 17:45:13 +08:00
wxyclub 68d164938c fix: 流程历史显示错误问题修改 2024-05-09 11:24:57 +08:00
wxyclub 46022076c1 Merge remote-tracking branch 'origin/DEV_20240422_LCLS' into test_20240409_for39 2024-04-29 10:05:44 +08:00
wxyclub b6d4405e9c Merge branch 'dev_20240425_DRSP' into test_20240409_for39 2024-04-29 09:52:26 +08:00
wxyclub 41d337d2b3 Merge branch 'fix_foton_20240408' into test_20240409_for39 2024-04-29 09:51:59 +08:00
wxyclub c2456486e4 fix: 外部署名推荐批准流程回执不显示修改 2024-04-28 17:28:04 +08:00
wxyclub 942c19c271 fix: 标准化协会入会流程流程回执不显示修改 2024-04-28 17:25:26 +08:00
wxyclub 66ab2fd86f fix: 流程回执不显示修改 2024-04-28 16:56:04 +08:00
wxyclub c205381d52 fix: 加入标准化协会信息备案流程流程回执不显示修改 2024-04-28 15:33:48 +08:00
wxyclub 3608c1e5e2 fix: 外部署名推荐审批流程修改 2024-04-28 11:26:36 +08:00
wxyclub 090beef0b1 fix: 企标制修订-技术标准批准节点改为多人处理节点 2024-04-26 14:22:29 +08:00
wangzhijiang bf14cab433 流程历史按子流程归堆、查询流程历史权限。 2024-04-26 10:49:15 +08:00
高嵩 adfb662fcf Merge branch 'fix_foton_20240408' into 'master'
fix: 改派任务时出错的响应修改

See merge request laws-foton-slrs/foton-wkflow-rest!89
2024-04-25 01:55:48 +00:00
wxyclub 4c52247cc9 fix: 改派任务时出错的响应修改 2024-04-24 17:33:48 +08:00
王晓勇 6855940bee Merge branch 'fix_foton_20240408' into 'master'
Fix foton 20240408

See merge request laws-foton-slrs/foton-wkflow-rest!88
2024-04-22 09:47:26 +00:00
wxyclub b307e99919 fix: OA发送失败的补发,添加等待时间 2024-04-22 17:46:26 +08:00
wxyclub 581610e750 fix: OA发送失败的补发 2024-04-22 17:11:53 +08:00
wxyclub 979a7eeb13 fix: 修复OA消息发送方式 2024-04-22 15:24:46 +08:00
wxyclub be7bc047fc fix: 发送OA消息的请求添加超时时间为2分钟,发送失败后的延迟时间设为10分钟 2024-04-19 17:48:04 +08:00
wxyclub 79ce56d7b0 Merge branch 'fix_foton_20240408'
# Conflicts:
#	src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java
2024-04-19 17:47:17 +08:00
wxyclub 00187403d3 fix: 发送OA消息的请求添加超时时间为2分钟,发送失败后的延迟时间设为10分钟 2024-04-19 17:39:05 +08:00
wxyclub 4dcf5237d4 fix: 企标废止流程批准后的变更修改 2024-04-19 17:21:08 +08:00
wxyclub 60be779dc8 Merge branch 'dev_2024325_LCZGF_39'
# Conflicts:
#	src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java
2024-04-15 11:45:49 +08:00
王晓勇 42dd72bae2 Merge branch 'fix_foton_20240408' into 'master'
fix: 企标废止流程批准后修改标准状态方式

See merge request laws-foton-slrs/foton-wkflow-rest!85
2024-04-12 08:21:52 +00:00
wxyclub 04b7a6122c bug: 政策征求意见流程会签节点人员抓取修改 2024-04-12 16:01:57 +08:00
wxyclub e4b6779e44 fix: 对政策征求意见添加曾删改接口 2024-04-12 09:45:03 +08:00
wxyclub f4d97a1ddb fix: 对政策征求意见添加曾删改接口 2024-04-11 17:44:45 +08:00
wxyclub 4d7300233d fix: 对政策征求意见添加曾删改接口 2024-04-11 15:59:35 +08:00
wxyclub f81f5ed3a4 fix: 企标废止流程批准后修改标准状态方式 2024-04-11 09:08:40 +08:00
高嵩 1e8d858c85 Merge branch 'fix_foton_20240408' into 'master'
Fix foton 20240408

See merge request laws-foton-slrs/foton-wkflow-rest!84
2024-04-10 10:05:17 +00:00
wxyclub 12d3dc3f71 fix: 把getOne换成list 2024-04-10 18:02:53 +08:00
wxyclub 771ad389fa fix: 企标废止流程批准后修改标准状态方式 2024-04-10 17:58:50 +08:00
高嵩 bb56ec4723 Merge branch 'dev_20240123_ZHENGCE' into 'dev_2024325_LCZGF_39'
Revert "fix: 修改发送OA的BIZTRANSACTIONID值为SPRS+时间戳"

See merge request laws-foton-slrs/foton-wkflow-rest!83
2024-04-08 06:55:46 +00:00
高嵩 93a6ed894c Merge branch 'dev_2024325_LCZGF_39' into 'master'
Dev 2024325 lczgf 39

See merge request laws-foton-slrs/foton-wkflow-rest!82
2024-04-08 06:54:00 +00:00
wxyclub 0d19beba42 BUG: 修改企标制修订的发送OA连接的新旧数据判断 2024-04-03 14:53:18 +08:00
wxyclub 891748e42e Merge branch 'dev_2024325_BZSQ' into dev_2024325_LCZGF_39 2024-04-02 17:41:46 +08:00
wxyclub a2ab82d3b0 BUG: 企标制修订流程datas表的getOne换为list,避免出现多条报错 2024-04-02 14:58:42 +08:00
wxyclub 75afa55e2c BUG: 代主服务发送OA消息修改 2024-03-31 13:56:18 +08:00
高嵩 e5f4a3771f Merge branch 'dev_2024325_LCZGF_39' into 'dev_2024325_BZSQ'
Dev 2024325 lczgf 39

See merge request laws-foton-slrs/foton-wkflow-rest!81
2024-03-29 04:26:59 +00:00
wangzhijiang 361d0eee2f 征求意见流程图修改。 2024-03-27 15:55:15 +08:00
wangzhijiang f796fe9cef 征求意见流程图修改。 2024-03-27 18:02:53 +08:00
wangzhijiang 2902b27e56 企标制修订-技术标准流程-流程图、流程历史改造。 2024-03-26 10:55:41 +08:00
wangzhijiang 271628bbdd 企标制修订-技术标准流程-流程图、流程历史改造。 2024-03-25 21:34:46 +08:00
高嵩 bdb6af1168 Merge branch 'dev_20240123_LCZG' into 'dev_2024325_LCZGF_39'
Dev 20240123 lczg

See merge request laws-foton-slrs/foton-wkflow-rest!80
2024-03-25 02:03:05 +00:00
高嵩 d9455c1152 Merge branch 'fix_20240123_UAT' into 'master'
fix: 企标制修订起草人选择多个时出错的问题

See merge request laws-foton-slrs/foton-wkflow-rest!79
2024-02-26 09:53:48 +00:00
wxyclub 3534c46ba6 fix: 企标制修订起草人选择多个时出错的问题 2024-02-26 17:30:07 +08:00
wxyclub d89aea7559 fix: 重点认证标准/政策合规性项目审查流程的修改,流程中的操作修改标准跟踪清单中的流程状态 2024-02-05 17:01:28 +08:00
wxyclub 4f9824103a fix: 重点认证标准/政策合规性项目审查流程的修改 管理员后的节点驳回后到管理员节点 2024-02-05 16:56:22 +08:00
wangzhijiang e22e7c731d 企标制修订-技术标准流程-流程图、流程历史 2024-02-05 14:11:12 +08:00
wangzhijiang 6027b0d691 企标制修订-技术标准流程-流程图、流程历史改造。 2024-02-04 17:57:23 +08:00
wxyclub c164653767 fix: 政策征求意见的修改 管理员后的节点驳回后到管理员节点 2024-02-04 17:26:47 +08:00
wangzhijiang edc94e3709 企标制修订-技术标准流程-流程图、流程历史改造。 2024-02-02 18:00:20 +08:00
wangzhijiang 1636746bb6 标准征求意见流程-转办 2024-01-31 11:51:22 +08:00
wangzhijiang 703ddd4a19 标准征求意见流程-流程图、流程历史对接 2024-01-30 10:24:51 +08:00
wxyclub 5025679ead fix: 政策征求意见流程名称显示为《流程中选择的政策名称》- 征求意见 2024-01-29 15:04:10 +08:00
wxyclub 9f72feb910 fix: 政策征求意见流程名称显示为《流程中选择的政策名称》- 征求意见 2024-01-29 14:54:06 +08:00
wangzhijiang 5e97b14f62 标准征求意见流程-流程图、流程历史对接 2024-01-29 14:19:53 +08:00
wxyclub b62ad5c7b6 fix: 根据流程实例ID查询流程编号 2024-01-26 18:02:44 +08:00
高嵩 8e16da05a5 Merge branch 'fix_20240123_UAT' into 'master'
fix: 修改发送OA的BIZTRANSACTIONID值为SPRS+时间戳

See merge request laws-foton-slrs/foton-wkflow-rest!78
2024-01-26 09:58:25 +00:00
wangzhijiang dab9d57c13 标准征求意见流程-流程图、流程历史改造。 2024-01-26 17:57:36 +08:00
wxyclub b6af89cd8e Revert "fix: 修改发送OA的BIZTRANSACTIONID值为SPRS+时间戳"
This reverts commit 4484a9abdb.
2024-01-26 10:06:23 +08:00
wxyclub 7b942f99cb fix: 修改发送OA的BIZTRANSACTIONID值为SPRS+时间戳 2024-01-26 09:57:05 +08:00
wxyclub 4484a9abdb fix: 修改发送OA的BIZTRANSACTIONID值为SPRS+时间戳 2024-01-26 09:56:18 +08:00
wangzhijiang 70d45f56bf 标准征求意见流程-流程图、流程历史改造。 2024-01-25 18:01:36 +08:00
高嵩 538ccf2b22 Merge branch 'fix_foton_20231213' into 'master'
fix: 监控流程查看,添加用户ID显示

See merge request laws-foton-slrs/foton-wkflow-rest!77
2024-01-19 09:44:05 +00:00
高嵩 0ec83e4b0d Merge branch 'dev_20231229_CPBZ' into 'master'
Dev 20231229 cpbz

See merge request laws-foton-slrs/foton-wkflow-rest!76
2024-01-18 10:04:32 +00:00
wxyclub 6850c7f18c fix: 监控流程查看,添加用户ID显示 2024-01-16 11:50:17 +08:00
wxyclub 10d4f00e04 fix: 企标制修订产品标准发送到OA的链接跳转 2024-01-15 16:48:54 +08:00
高嵩 e7ec18abe4 Merge branch 'fix_foton_20231213' into 'master'
fix: 计划管控取消流程代办为消除问题修改

See merge request laws-foton-slrs/foton-wkflow-rest!75
2024-01-02 10:08:14 +00:00
wxyclub 5e54e8769d fix: 计划管控取消流程代办为消除问题修改 2024-01-02 18:04:12 +08:00
高嵩 18e3d9385b Merge branch 'fix_foton_20231213' into 'master'
fix: 计划管控取消流程代办未消除问题修改

See merge request laws-foton-slrs/foton-wkflow-rest!74
2024-01-02 09:58:36 +00:00
wxyclub d0f0b8c6ab fix: 企标制修订产品标准流程修改 2024-01-02 17:05:31 +08:00
wxyclub acd36ae6c3 fix: 计划管控取消流程代办未消除问题修改 2024-01-02 14:40:03 +08:00
wxyclub 3d8e6129c5 fix: 企标制修订产品标准流程表单修改,流程意见处理 2024-01-02 14:26:17 +08:00
wxyclub 603b5c19ba fix: 企标制修订产品标准流程表单修改,流程意见处理 2024-01-02 08:58:54 +08:00
wxyclub 13a79a5be9 fix: 企标制修订产品标准流程表单修改 2023-12-29 14:42:27 +08:00
高嵩 2b89ad5e73 Merge branch 'fix_foton_20231213' into 'master'
fix: 已发流程报错问题修改

See merge request laws-foton-slrs/foton-wkflow-rest!73
2023-12-18 02:32:11 +00:00
wxyclub 88344efad2 fix: 已发流程报错问题修改 2023-12-18 09:59:22 +08:00
高嵩 76c0c8fd3b Merge branch 'dev_20231201_feizhi' into 'master'
Dev 20231201 feizhi

See merge request laws-foton-slrs/foton-wkflow-rest!72
2023-12-15 09:17:00 +00:00
wxyclub 4b42ab6800 fix: 政策课题入会参会驳回后删除OA代办 2023-12-15 16:01:19 +08:00
wxyclub 43f9b40b52 fix: 流程详情页文件上传时间倒序改为主服务排序 2023-12-15 10:06:34 +08:00
wxyclub 9c332a4d1b bug: 流程详情页文件改成上传时间倒序 2023-12-14 15:04:03 +08:00
高嵩 4443dd534a Merge branch 'dev_20231201_feizhi' into 'master'
bug: 计划管控延期流程走完后流程取消未取消修改

See merge request laws-foton-slrs/foton-wkflow-rest!71
2023-12-13 10:36:31 +00:00
wxyclub 72dc3aac25 bug: 计划管控延期流程走完后流程取消未取消修改 2023-12-13 18:20:22 +08:00
高嵩 c9561fde3b Merge branch 'dev_20231201_feizhi' into 'master'
fix: 废止节点抄送链接修改

See merge request laws-foton-slrs/foton-wkflow-rest!70
2023-12-13 04:12:26 +00:00
wxyclub 0cb3bca685 fix: 废止节点抄送链接修改 2023-12-13 10:54:01 +08:00
高嵩 bef61f0af5 Merge branch 'dev_20231201_feizhi' into 'master'
Dev 20231201 feizhi

See merge request laws-foton-slrs/foton-wkflow-rest!69
2023-12-13 02:35:01 +00:00
wxyclub a457ae110a fix: 完成任务接口添加task为空的情况处理 2023-12-12 18:06:56 +08:00
wxyclub cc7ad3d6c0 fix: 修改企标废止流程抄送链接 2023-12-12 09:40:33 +08:00
wxyclub e3a6eeba7e fix: 更名后流程类别错误问题 2023-12-09 17:56:10 +08:00
wxyclub 97a2aa05b0 fix: 更名后流程类别错误问题 2023-12-09 17:03:31 +08:00
wxyclub be76631e84 fix: 监控流程-企标制修订-汇总流程评分仅显示最新的分数 2023-12-06 17:35:32 +08:00
wxyclub f73ac8faea add: 企标废止流程批准节点添加抄送功能 2023-12-05 14:32:56 +08:00
wxyclub ea995edd58 Merge branch 'dev_20230829_change' into dev_20231201_feizhi
# Conflicts:
#	src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/BusProcessNewServiceImpl.java
2023-12-01 18:20:00 +08:00
lixuetao c0df85601e 工作流优化sql 2023-12-01 14:00:17 +08:00
wxyclub 7cb7ede855 bug: 计划管控合并流程空指针修改 2023-11-28 17:58:27 +08:00
wxyclub 27e773f646 bug: 计划管控取消流程空指针修改 2023-11-24 15:17:51 +08:00
wxyclub dce23673a5 bug: 计划管控取消流程空指针修改 2023-11-23 10:28:38 +08:00
wxyclub 1115e7196b bug: 产品标准修改时发布节点顺序号丢失 2023-11-20 17:08:18 +08:00
wxyclub fceff66f48 bug: 修改计划管控更名bug 2023-11-20 08:59:55 +08:00
lixuetao 63891c0b33 配置文件处理,添加druid配置 2023-11-16 16:59:34 +08:00
高嵩 a7eb631b0b Merge branch 'fix_foton_20231031' into 'dev_20230829_change'
Fix foton 20231031

See merge request laws-foton-slrs/foton-wkflow-rest!67
2023-11-16 03:45:22 +00:00
wxyclub 7e2a9df1d6 bug: 政策课题参会流程修改 2023-11-15 14:36:37 +08:00
wxyclub d28a95e26f bug: 政策课题入会流程修改 2023-11-15 10:37:39 +08:00
wxyclub 9a9f1fe7b2 bug: 政策课题入会流程修改 2023-11-14 18:08:51 +08:00
wangzhijiang b023b323fb 流程类型枚举类value修改。 2023-11-14 17:52:27 +08:00
wxyclub 8354de9af5 add: 监控流程若用户已禁用,修改显示方式 2023-11-14 15:39:39 +08:00
wxyclub 789852e523 add: 监控流程若用户已禁用,修改显示方式 2023-11-14 10:46:43 +08:00
高嵩 0721823cb7 Merge branch 'fix_foton_20231031' into 'dev_20230829_change'
Fix foton 20231031

See merge request laws-foton-slrs/foton-wkflow-rest!66
2023-11-10 05:08:12 +00:00
wxyclub 1392c58727 add: 企标制修订流程修改 2023-11-06 19:24:12 +08:00
wxyclub 5b8ed96ed8 add: 确保企标编号不出错 2023-11-03 13:25:47 +08:00
wxyclub fdca59bfe2 add: 企标计划添加后,代办交给起草人 2023-11-02 16:11:11 +08:00
237 changed files with 6665 additions and 1421 deletions
+10
View File
@@ -0,0 +1,10 @@
ALTER TABLE `foton-bat-wkflow`.`bus_process_new`
ADD INDEX `PROCESS_NEW_TASK_ID_INDEX`(`TASK_ID`) USING BTREE COMMENT 'TASK_ID索引',
ADD INDEX `PROCESS_NEW_P_ID_INDEX`(`P_ID`) USING BTREE COMMENT 'P_ID索引',
ADD INDEX `PROCESS_NEW_TASK_AND_P_ID_INDEX`(`TASK_ID`, `P_ID`) USING BTREE COMMENT 'TASK_ID和P_ID的联合索引';
ADD INDEX `PROCESS_NEW_TASK_INFO_INDEX`(`TASK_INFO`) USING BTREE COMMENT 'TASK_INFO索引',
ADD INDEX `PROCESS_NEW_TASK_ID_AND_INFO_INDEX`(`TASK_INFO`, `TASK_ID`) USING BTREE COMMENT 'TASK_ID和TASK_INFO的联合索引';
ADD INDEX `PROCESS_NEW_RECEIVE_STATUS_INDEX`(`RECEIVE_STATUS`) USING BTREE COMMENT 'RECEIVE_STATUS索引';
ALTER TABLE `foton-bat-wkflow`.`bus_process_name`
ADD INDEX `PROCESS_NAME_PRC_ID_INDEX`(`PRC_ID`) USING BTREE COMMENT 'PRC_ID索引';
@@ -123,10 +123,14 @@ public class TaskController {
historicTaskInstance.put("assignee", str);
}
}else{
ResponseMessage<UserVO> assignee = lawsUserInfoService.getById(historicTaskInstance.get("assignee").toString());
ResponseMessage<UserVO> assignee = lawsUserInfoService.getByIdFeignClientWithDisabled(historicTaskInstance.get("assignee").toString());
if(assignee.getData()!=null){
historicTaskInstance.put("assignee", assignee.getData().getUname());
if (assignee.getData().getDisableFlag() == 1) {
historicTaskInstance.put("assignee", assignee.getData().getUname() + "("+ assignee.getData().getUsid() +")" + "(已禁用)");
} else{
historicTaskInstance.put("assignee", assignee.getData().getUname() + "("+ assignee.getData().getUsid() +")");
}
historicTaskInstance.put("assigneeId", assignee.getData().getUsid());
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("TASK_ID",historicTaskInstance.get("id"));
@@ -134,7 +138,7 @@ public class TaskController {
List<BusProcessEntrust> list1 = iBusProcessEntrustService.list(queryWrapper2);
String str = "";
if(list1.size()>0){
ResponseMessage<UserVO> assignee1 = lawsUserInfoService.getById(list1.get(0).getUserId());
ResponseMessage<UserVO> assignee1 = lawsUserInfoService.getByIdFeignClientWithDisabled(list1.get(0).getUserId());
historicTaskInstance.put("assignee", assignee.getData().getUname()+"("+assignee1.getData().getUname()+" 转办)");
}
}
@@ -263,10 +267,14 @@ public class TaskController {
historicTaskInstance.put("assignee", str);
}
}else{
ResponseMessage<UserVO> assignee = lawsUserInfoService.getById(historicTaskInstance.get("assignee").toString());
ResponseMessage<UserVO> assignee = lawsUserInfoService.getByIdFeignClientWithDisabled(historicTaskInstance.get("assignee").toString());
if(assignee.getData()!=null){
historicTaskInstance.put("assignee", assignee.getData().getUname());
if (assignee.getData().getDisableFlag() == 1) {
historicTaskInstance.put("assignee", assignee.getData().getUname() + "(已禁用)");
} else {
historicTaskInstance.put("assignee", assignee.getData().getUname());
}
historicTaskInstance.put("assigneeId", assignee.getData().getUsid());
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("TASK_ID",historicTaskInstance.get("id"));
@@ -274,7 +282,7 @@ public class TaskController {
List<BusProcessEntrust> list1 = iBusProcessEntrustService.list(queryWrapper2);
String str = "";
if(list1.size()>0){
ResponseMessage<UserVO> assignee1 = lawsUserInfoService.getById(list1.get(0).getUserId());
ResponseMessage<UserVO> assignee1 = lawsUserInfoService.getByIdFeignClientWithDisabled(list1.get(0).getUserId());
historicTaskInstance.put("assignee", assignee.getData().getUname()+"("+assignee1.getData().getUname()+" 转办)");
}
}
@@ -27,6 +27,7 @@ import com.ydw.bat.wkflow.business_oa.webService.service.impl.WebServiceOAServic
import com.ydw.bat.wkflow.business_wkflow.form.dto.FormSubmitDto;
import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import org.activiti.engine.*;
import org.activiti.engine.history.*;
import org.activiti.engine.repository.ProcessDefinition;
@@ -112,6 +113,9 @@ public class TodoTaskController extends BaseAction {
@Autowired
private IZchgxxmscCpghbDataEOService zchgxxmscCpghbDataEOService;
@Autowired
private IBusProcessHistoryService busProcessHistoryService;
@ApiOperation(value = "我的待办任务列表")
@ApiImplicitParams({@ApiImplicitParam(name = "name", value = "名称"),
@ApiImplicitParam(name = "current", value = "当前页"),
@@ -391,12 +395,18 @@ public class TodoTaskController extends BaseAction {
List<String> list = Arrays.asList(taskId.split(","));
for (String str : list) {
if (str != null && !str.equals("")) {
taskService.setAssignee(str, assignee);
QueryWrapper queryWrapper = new QueryWrapper();
try {
taskService.setAssignee(str, assignee);
} catch (ActivitiException e) {
Wrapper<String> wrapper = WrapMapper.error("任务不存在");
wrapper.setSuccess(false);
return wrapper;
}
QueryWrapper<BusProcessName> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("PRC_ID", pId);
BusProcessName one = iBusProcessNameService.getOne(queryWrapper);
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("USER_ID", userId);
queryWrapper1.eq("TASK_ID", str);
queryWrapper1.eq("P_ID", pId);
@@ -424,6 +434,8 @@ public class TodoTaskController extends BaseAction {
} else if (StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCHGXXMSCLC.getValue())) {
this.changeZchgxxmscFlowAssignee(assignee, userId, pId, str);
}
this.busProcessHistoryService.changeUserIdByTaskId(str,assignee,userId);
}
}
@@ -650,7 +662,11 @@ public class TodoTaskController extends BaseAction {
}catch (Exception e){
logger.error(e.toString());
}
this.busProcessHistoryService.complete(busMes);
taskService.complete(busMes.getTaskId());
} else {
return WrapMapper.error("当前任务不存在");
}
return WrapMapper.ok(task.getProcessInstanceId());
} else {
@@ -680,7 +696,12 @@ public class TodoTaskController extends BaseAction {
}catch (Exception e){
logger.error(e.toString());
}
busMes.setTaskId(taskId);
this.busProcessHistoryService.complete(busMes);
taskService.complete(taskId);
} else {
return WrapMapper.error("当前任务不存在");
}
}
return WrapMapper.ok(prcid);
@@ -877,20 +898,27 @@ public class TodoTaskController extends BaseAction {
}
JSONObject object3 = JSONObject.parseObject(list.get(0).getMesg());
JSONArray arr2 = new JSONArray();
object3.put("taskBreak", arr2);
processNew.setMesg(object3.toJSONString());
QueryWrapper wrapper = new QueryWrapper();
QueryWrapper<OaTaskExec> wrapper = new QueryWrapper<>();
wrapper.eq("TODO_ID",processNew.getId());
wrapper.eq("EXEC_TYPE",2);
wrapper.eq("EXEC_STATUS",0);
long count = oaTaskExecService.count(wrapper);
processNew.setCommitStatus(count);
// 设置processNew表流程状态为已接收
// 设置processNew表流程状态为已接收,已废弃
LambdaUpdateWrapper<BusProcessNew> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(BusProcessNew::getTaskId,taskIdList);
updateWrapper.set(BusProcessNew::getReceiveStatus,"已接收");
iBusProcessNewService.update(updateWrapper);
LambdaUpdateWrapper<BusProcessHistory> bphUpdateWrapper = new LambdaUpdateWrapper<>();
bphUpdateWrapper.in(BusProcessHistory::getTaskId,taskIdList);
bphUpdateWrapper.ne(BusProcessHistory::getTaskStatus, TaskStatusEnum.DONE.getValue());
bphUpdateWrapper.set(BusProcessHistory::getTaskStatus, TaskStatusEnum.RECEIVED.getValue());
this.busProcessHistoryService.update(bphUpdateWrapper);
return processNew;
}
@@ -2458,9 +2486,9 @@ public class TodoTaskController extends BaseAction {
if (list2.size() > 0) {
for (Task task : list2) {
if (task.getAssignee() != null && !task.getAssignee().equals("")) {
ResponseMessage<UserVO> byId = lawsUserInfoService.getById(task.getAssignee());
if (byId.getData() != null) {
if (assignee.indexOf(byId.getData().getUname()) == -1) {
ResponseMessage<UserVO> byId = lawsUserInfoService.getByIdFeignClientWithDisabled(task.getAssignee());
if (byId.getData().getUname() != null) {
if (!assignee.contains(byId.getData().getUname())) {
assignee += ((byId.getData().getOrgName() != null && !byId.getData().getOrgName().equals("")) ? byId.getData().getOrgName() + "-" + byId.getData().getUname() : byId.getData().getUname()) + ",";
}
}
@@ -2965,6 +2993,15 @@ public class TodoTaskController extends BaseAction {
if(!list2.isEmpty() && "发布".equals(list2.get(0).getName())){
lawsUserInfoService.modSnByProcess(list2.get(0).getId());
}
} else if ("34".equals(busProcessName.getPrcType())) {
// 重点认证标准/政策合规性项目审查流程撤回,如果是从标准跟踪清单下发的流程 则将检查单状态改为未下发
String mes = busProcessName.getMes();
JSONObject jsonObject = JSONObject.parseObject(mes);
JSONObject formJson = jsonObject.getJSONObject("form");
String checklistId = formJson.getString("checklistId");
if (StringUtils.isNotBlank(checklistId)) {
lawsUserInfoService.processStatusChange(checklistId, 0);
}
}
}
@@ -3313,4 +3350,14 @@ public class TodoTaskController extends BaseAction {
return processNew;
}
@ApiOperation(value = "根据流程实例ID查询流程编号")
@GetMapping("/getProcessNumByPrcId")
Wrapper<String> getProcessNumByPrcId(@RequestParam("prcId") String prcId) {
String processNum = iBusProcessNameService.getProcessNumByPrcId(prcId);
if (StringUtils.isBlank(processNum)) {
return WrapMapper.error("未找到流程编号");
}
return WrapMapper.ok(processNum);
}
}
@@ -63,6 +63,9 @@ public interface LawsUserInfoService {
@GetMapping("sys/user/getById")
public ResponseMessage<UserVO> getById(@RequestParam("id") String id);
@GetMapping("sys/user/getByIdWithDisabled")
public ResponseMessage<UserVO> getByIdFeignClientWithDisabled(@RequestParam("id") String id);
@GetMapping("lawss/sarProductInfo/queryMap")
public ResponseMessage<Map<String, List<String>>> queryMap();
@@ -191,6 +194,9 @@ public interface LawsUserInfoService {
@GetMapping("/lawss/SarBussStandAttrInfo/getBussAttrInfo")
public Map<String,Object> getBussAttrInfo(@RequestParam("standId") String standId);
@GetMapping("/att/attFile/getMultiFileInfos")
public ResponseMessage<List<AttFileEO>> getAttInfoByAttIds(@RequestParam("fileIds") String fileIds);
@PostMapping("/sarStandUnqualified/sar-stand-unqualified/updateBatch")
public ResponseMessage<Object> updateBatch(@RequestBody List<SarStandUnqualified> sarStandUnqualified);
@@ -221,4 +227,19 @@ public interface LawsUserInfoService {
@GetMapping("lawss/activiti/selectOnlineFile")
ResponseMessage selectOnlineFile(@RequestParam("onlineFileId") String onlineFileId,@RequestParam("standName") String standName,@RequestParam("key") String key);
@GetMapping("lawss/sarBussionessStand/updateStandStatus")
ResponseMessage<Boolean> changeStandStatus(@RequestParam("standId") String standId,
@RequestParam("standCode") String standCode,
@RequestParam("standtextStatus") String standtextStatus,
@RequestParam("prcCreateUser") String prcCreateUser,
@RequestParam("prcNum") String prcNum);
/**
* 流程状态变更, 用于流程结束或流程撤回后的状态变更
* @param trackingChecklistId 跟踪清单ID
* @param processStatus 流程状态, 0 未下发,1 进行中,2 已完成
* @return
*/
@GetMapping("standardTrackingCheckList/processStatusChange")
ResponseMessage processStatusChange(@RequestParam("trackingChecklistId") String trackingChecklistId,@RequestParam("processStatus") Integer processStatus);
}
@@ -0,0 +1,49 @@
package com.ydw.bat.wkflow.business_main.datas.controller;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/datas/bus-process-history")
public class BusProcessHistoryController {
@Autowired
private IBusProcessHistoryService busProcessHistoryService;
/**
* 查询流程历史列表
* @param actiProcInstId
* @param flowType
* @return
*/
@GetMapping("/queryFlowHistoryList")
public List<BusProcessHistory> queryFlowHistoryList(String actiProcInstId,String flowType,String userId) {
BusProcessHistory busProcessHistory = new BusProcessHistory();
busProcessHistory.setActiProcInstId(actiProcInstId);
busProcessHistory.setFlowType(flowType);
return this.busProcessHistoryService.queryFlowHistoryList(busProcessHistory,userId);
}
/**
* 查询流程图数据
* @param actiProcInstId
* @return
*/
@GetMapping("/getImgDataList")
public List<Map<String,Object>> getImgDataList(String actiProcInstId, String flowType) {
BusProcessHistory busProcessHistory = new BusProcessHistory();
busProcessHistory.setActiProcInstId(actiProcInstId);
busProcessHistory.setFlowType(flowType);
return this.busProcessHistoryService.getImgDataList(busProcessHistory);
}
}
@@ -7,11 +7,9 @@ import com.ydw.bat.wkflow.util.http.ResponseMessage;
import com.ydw.bat.wkflow.util.http.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -28,5 +26,26 @@ public class PolicySolicitOpinionEOController {
List<PolicySolicitOpinionEO> policySolicitOpinionEOList = this.policySolicitOpinionEOService.queryPolicitOpinionEOList(params);
return Result.success(policySolicitOpinionEOList);
}
@ApiOperation(value = "新增政策征求意见")
@PostMapping("/insertPolicitOpinionEOList")
public ResponseMessage<Boolean> insertPolicitOpinionEOList(@RequestBody PolicySolicitOpinionEO policySolicitOpinionEO) {
boolean result = this.policySolicitOpinionEOService.save(policySolicitOpinionEO);
return Result.success(result);
}
@ApiOperation(value = "修改政策征求意见")
@PutMapping("/updatePolicitOpinionEOList")
public ResponseMessage<Boolean> updatePolicitOpinionEOList(@RequestBody PolicySolicitOpinionEO policySolicitOpinionEO) {
boolean result = this.policySolicitOpinionEOService.updateById(policySolicitOpinionEO);
return Result.success(result);
}
@ApiOperation(value = "批量删除政策征求意见")
@DeleteMapping("/deletePolicitOpinionEOList")
public ResponseMessage<Boolean> deletePolicitOpinionEOList(@RequestBody List<String> ids) {
boolean result = this.policySolicitOpinionEOService.removeByIds(ids);
return Result.success(result);
}
}
@@ -0,0 +1,122 @@
package com.ydw.bat.wkflow.business_main.datas.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.List;
/**
* 流程历史
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("bus_process_history")
@ApiModel(value="BusProcessHistory对象", description="")
public class BusProcessHistory {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
@TableId(value = "id")
private String id;
@ApiModelProperty(value = "流程实例id")
@TableField("acti_proc_inst_id")
private String actiProcInstId;
@ApiModelProperty(value = "任务id")
@TableField("task_id")
private String taskId;
@ApiModelProperty(value = "用户id")
@TableField("user_id")
private String userId;
@ApiModelProperty(value = "任务节点key")
@TableField("task_key")
private String taskKey;
@ApiModelProperty(value = "流程类型")
@TableField("flow_type")
private String flowType;
@ApiModelProperty(value = "是否是子流程:1是 2否")
@TableField("is_sub")
private String isSub;
@ApiModelProperty(value = "排序号")
@TableField("order_num")
private Integer orderNum;
@ApiModelProperty(value = "任务状态")
@TableField("task_status")
private String taskStatus;
@ApiModelProperty(value = "审批意见")
@TableField("commit_text")
private String commitText;
@ApiModelProperty(value = "创建时间")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "完成时间")
@TableField("end_time")
private Date endTime;
@ApiModelProperty(value = "父级id(仅限于子流程任务节点有)")
@TableField("p_id")
private String pId;
@ApiModelProperty(value = "是否是多实例任务节点:1是 2否")
@TableField("is_many")
private String isMany;
@ApiModelProperty(value = "多实例父节点id")
@TableField("many_p_id")
private String manyPId;
// 子流程数据数组
@TableField(exist = false)
private List<BusProcessHistory> children;
@TableField(exist = false)
private String userName;
@TableField(exist = false)
private String taskStatusShow;
@TableField(exist = false)
private String taskKeyShow;
@TableField(exist = false)
private String bpnId;
@TableField(exist = false)
private String prcId;
@TableField(exist = false)
private String prcName;
@TableField(exist = false)
private String prcNum;
@ApiModelProperty(value = "图片中展示标识,0 未办白色,1 待办浅绿色 2 已办 蓝色")
@TableField("img_show_color")
private String imgShowColor;
@ApiModelProperty(value = "图片中是否展示:1 默认展示 2 不展示")
@TableField("img_show_flag")
private String imgShowFlag;
@ApiModelProperty(value = "分发用户id")
@TableField("parent_user_id")
private String parentUserId;
// 分发用户名称
@TableField(exist = false)
private String parentUserName;
}
@@ -0,0 +1,8 @@
package com.ydw.bat.wkflow.business_main.datas.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
public interface BusProcessHistoryMapper extends BaseMapper<BusProcessHistory> {
}
@@ -0,0 +1,54 @@
package com.ydw.bat.wkflow.business_main.datas.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusMes;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import org.activiti.engine.delegate.DelegateTask;
import java.util.List;
import java.util.Map;
public interface IBusProcessHistoryService extends IService<BusProcessHistory> {
List<BusProcessHistory> queryFlowHistoryList(BusProcessHistory busProcessHistory,String userId);
List<BusProcessHistory> queryByList(BusProcessHistory busProcessHistory);
void insertBatch(List<BusProcessHistory> busProcessHistoryList);
void updateBatch(List<BusProcessHistory> busProcessHistoryList);
// 更新任务信息
void updateTaskInfo(DelegateTask delegateTask);
void complete(BusMes busMes);
// 获取最大排序号
int getMaxOrderNum(String actiProcInstId, String taskKey);
// 更新排序号
void updateOrderNum(String actiProcInstId, int orderNum,int dataNum);
List<Map<String,Object>> getImgDataList(BusProcessHistory busProcessHistory);
// 根据taskId修改用户id
void changeUserIdByTaskId(String taskId,String afterUserId,String frontUserId);
/**
* 更新某一个流程下 任务在流程图中展示颜色。
* @param actiProcInstId 流程示例id
* @param inTaskKeyList in的流程定义key
* @param notInTaskKeyList notIn的流程定义key
* @param imgShowColor 更新成什么颜色 : 图片中展示标识,0 未办白色,1 待办浅绿色 2 已办 蓝色
*/
void updateImgShowColor(String actiProcInstId,List<String> inTaskKeyList, List<String> notInTaskKeyList,String imgShowColor);
/**
* 更新某一个流程下 任务是否展示。
* @param actiProcInstId 流程示例id
* @param inTaskKeyList in的流程定义key
* @param notInTaskKeyList notIn的流程定义key
* @param imgShowFlag 1展示 2不展示
*/
void updateImgShowFlag(String actiProcInstId, List<String> inTaskKeyList, List<String> notInTaskKeyList, String imgShowFlag);
}
@@ -26,4 +26,6 @@ public interface IBusProcessNameService extends IService<BusProcessName> {
String delDB(List<String> id);
BusProcessName selectById(String id);
String getProcessNumByPrcId(String prcId);
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.business_main.datas.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
@@ -122,9 +123,40 @@ public class BusProcessEvaluationHisServiceImpl extends ServiceImpl<BusProcessEv
@Override
public List<BusProcessEvaluationHis> evaluationHisList(String pid){
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("P_ID",pid);
wrapper.orderByDesc("CREATE_TIME","TASK_INFO");
return this.baseMapper.selectList(wrapper);
LambdaQueryWrapper<BusProcessEvaluationHis> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BusProcessEvaluationHis::getPId,pid);
wrapper.orderByDesc(BusProcessEvaluationHis::getCreateTime,BusProcessEvaluationHis::getTaskInfo);
List<BusProcessEvaluationHis> busProcessEvaluationHis = this.baseMapper.selectList(wrapper);
if(busProcessEvaluationHis.isEmpty()){
return null;
}
Optional<BusProcessEvaluationHis> fushen = busProcessEvaluationHis.stream()
.filter(each -> "标准化复审".equals(each.getTaskInfo()))
.max(Comparator.comparing(BusProcessEvaluationHis::getCreateTime));
Optional<BusProcessEvaluationHis> chongxinpinshen = busProcessEvaluationHis.stream()
.filter(each -> "重新技术委员会评审、评审意见修改".equals(each.getTaskInfo()))
.max(Comparator.comparing(BusProcessEvaluationHis::getCreateTime));
Optional<BusProcessEvaluationHis> pinshen = busProcessEvaluationHis.stream()
.filter(each -> "技术委员会评审、评审意见修改".equals(each.getTaskInfo()))
.max(Comparator.comparing(BusProcessEvaluationHis::getCreateTime));
Optional<BusProcessEvaluationHis> jinlishenhe = busProcessEvaluationHis.stream()
.filter(each -> "标准法规部高级经理审核".equals(each.getTaskInfo()))
.max(Comparator.comparing(BusProcessEvaluationHis::getCreateTime));
List<BusProcessEvaluationHis> zhengqiuyijian = busProcessEvaluationHis.stream()
.filter(each -> "征求意见".equals(each.getTaskInfo()))
.collect(Collectors.toList());
List<BusProcessEvaluationHis> finalEvaluationList = new ArrayList<>();
if (chongxinpinshen.isPresent()) {
fushen.ifPresent(finalEvaluationList::add);
chongxinpinshen.ifPresent(finalEvaluationList::add);
jinlishenhe.ifPresent(finalEvaluationList::add);
finalEvaluationList.addAll(zhengqiuyijian);
} else {
fushen.ifPresent(finalEvaluationList::add);
pinshen.ifPresent(finalEvaluationList::add);
jinlishenhe.ifPresent(finalEvaluationList::add);
finalEvaluationList.addAll(zhengqiuyijian);
}
return finalEvaluationList;
}
}
@@ -1,5 +1,6 @@
package com.ydw.bat.wkflow.business_main.datas.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ydw.bat.wkflow.business_activiti.dto.TaskCommonQuery;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessNameMapper;
@@ -49,4 +50,15 @@ public class BusProcessNameServiceImpl extends ServiceImpl<BusProcessNameMapper,
return busProcessNameMapper.selectById(id);
}
@Override
public String getProcessNumByPrcId(String prcId) {
LambdaQueryWrapper<BusProcessName> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BusProcessName::getPrcId,prcId);
List<BusProcessName> busProcessNameList = list(wrapper);
if (busProcessNameList.size()>0){
return busProcessNameList.get(0).getPrcNum();
} else {
return null;
}
}
}
@@ -257,49 +257,87 @@ public class BusProcessNewServiceImpl extends ServiceImpl<BusProcessNewMapper, B
// 获取企标的id
QueryWrapper<BusProcessNew> busProcessNewQueryWrapper = new QueryWrapper<>();
busProcessNewQueryWrapper.eq("PRC_NAME",prcName);
String newPrcName = prcName.replace("计划立项","企标制修订");
busProcessNewQueryWrapper.or().eq("PRC_NAME",newPrcName);
List<BusProcessNew> busProcessNews = baseMapper.selectList(busProcessNewQueryWrapper);
String log = "";
if(!busProcessNews.isEmpty()){
for (BusProcessNew newData:busProcessNews){
//判断是否是同一条企标计划
JSONObject jsonObject = JSON.parseObject(newData.getMesg());
if (busProcessNews.isEmpty()) {
return "成功"+"-"+esId;
}
// 过滤出同一条企标
List<BusProcessNew> busProcessNewList = busProcessNews.stream().filter(busProcessNew -> {
String mesg = busProcessNew.getMesg();
if(StringUtils.isNotBlank(mesg)){
JSONObject jsonObject = JSON.parseObject(mesg);
String esIdMesg = jsonObject.getString("esId");
if(StringUtils.isNotBlank(esIdMesg)){
if(esIdMesg.contains(",")){
String[] split = esIdMesg.split(",");
for (String esById : split){
if(esId.equals(esById)){
webServiceOAService.deleteOAByPid(newData.getPId());
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(newData.getPId()).singleResult();
if(processInstance!=null) {
runtimeService.deleteProcessInstance(newData.getPId(), "原始数据已被更改");
//更名流程 在这里有删除的情况下才进行发送没有则不发送
log = esIdMesg;
}else {
log = esIdMesg;
}
}
}
}else {
if(esId.equals(esIdMesg)){
webServiceOAService.deleteOAByPid(newData.getPId());
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(newData.getPId()).singleResult();
if(processInstance!=null) {
runtimeService.deleteProcessInstance(newData.getPId(), "原始数据已被更改");
//更名流程 在这里有删除的情况下才进行发送没有则不发送
log = esIdMesg;
}else {
log = esIdMesg;
}
if (StringUtils.isBlank(esIdMesg)) {
esIdMesg = jsonObject.getString("nowEsId");
}
if (StringUtils.isBlank(esIdMesg)) {
// 如果依然是null, 可能是表单嵌套问题,需要再次解析
JSONObject form = jsonObject.getJSONObject("form");
if (form!= null) {
esIdMesg = form.getString("esId");
if (StringUtils.isBlank(esIdMesg)) {
esIdMesg = form.getString("nowEsId");
}
} else {
return false;
}
} else {
log = esId;
}
return esIdMesg.equals(esId);
}
return false;
}).collect(Collectors.toList());
String log = "";
if (busProcessNewList.size()>0) {
for (BusProcessNew busProcessNew : busProcessNewList) {
// webServiceOAService.deleteOAByPid(busProcessNew.getPId());
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(busProcessNew.getPId()).singleResult();
if (processInstance != null) {
runtimeService.deleteProcessInstance(busProcessNew.getPId(), "原始数据已被更改");
}
}
}
return "成功"+"-"+log;
// if(!busProcessNews.isEmpty()){
// for (BusProcessNew newData:busProcessNews){
// //判断是否是同一条企标计划
// JSONObject jsonObject = JSON.parseObject(newData.getMesg());
// String esIdMesg = jsonObject.getString("esId");
// if(StringUtils.isNotBlank(esIdMesg)){
// if(esIdMesg.contains(",")){
// String[] split = esIdMesg.split(",");
// for (String esById : split){
// if(esId.equals(esById)){
// webServiceOAService.deleteOAByPid(newData.getPId());
// ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(newData.getPId()).singleResult();
// if(processInstance!=null) {
// runtimeService.deleteProcessInstance(newData.getPId(), "原始数据已被更改");
// //更名流程 在这里有删除的情况下才进行发送没有则不发送
// log = esIdMesg;
// }else {
// log = esIdMesg;
// }
// }
// }
// }else {
// if(esId.equals(esIdMesg)){
// webServiceOAService.deleteOAByPid(newData.getPId());
// ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(newData.getPId()).singleResult();
// if(processInstance!=null) {
// runtimeService.deleteProcessInstance(newData.getPId(), "原始数据已被更改");
// //更名流程 在这里有删除的情况下才进行发送没有则不发送
// log = esIdMesg;
// }else {
// log = esIdMesg;
// }
// }
// }
//
// }
// }
// }
return "成功"+"-"+esId;
}
@Override
@@ -0,0 +1,569 @@
package com.ydw.bat.wkflow.business_main.datas.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.*;
import com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessHistoryMapper;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEntrustService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class IBusProcessHistoryServiceImpl extends ServiceImpl<BusProcessHistoryMapper, BusProcessHistory> implements IBusProcessHistoryService {
@Autowired
LawsUserInfoService lawsUserInfoService;
@Autowired
private IBusProcessNameService busProcessNameService;
@Autowired
private IBusProcessEntrustService iBusProcessEntrustService;
@Override
public List<BusProcessHistory> queryFlowHistoryList(BusProcessHistory busProcessHistory,String userId) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(busProcessHistory, bphQueryWrap);
bphQueryWrap.orderByAsc("order_num","create_time");
// 验证当前操作用户,是否只是该流程中子流程中参与的人员(用户参与了外面的节点,也参与了子流程节点,这种情况不属于子流程用户)
// 如果是,查询出非子流程节点所有数据,和他自己参与过的子流程数据,如果不是,查询所有的数据。
boolean isChildProcess = this.checkUserIsChildProcess(busProcessHistory,userId);
if (isChildProcess) {
// 查询出,当前登录用户,所在的子流程数据id
QueryWrapper<BusProcessHistory> childBphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(busProcessHistory, childBphQueryWrap);
childBphQueryWrap.lambda().eq(BusProcessHistory::getUserId,userId);
List<BusProcessHistory> childBpnList = this.list(childBphQueryWrap);
List<String> manyPidList = childBpnList.stream().map(BusProcessHistory::getManyPId)
.distinct().filter(manyPid -> StringUtils.isNotEmpty(manyPid)).collect(Collectors.toList());
bphQueryWrap.lambda().and(
query -> query.isNull(BusProcessHistory::getTaskId).isNull(BusProcessHistory::getUserId)
.eq(BusProcessHistory::getIsMany,"1")
.notLike(BusProcessHistory::getTaskKey,StandardCommentNewProcessNodeKeyEnum.SUB_PROCESS.getLable())
.or().in(BusProcessHistory::getId,manyPidList)
.or().isNotNull(BusProcessHistory::getTaskId)
);
} else {
bphQueryWrap.lambda().and(
query -> query.isNull(BusProcessHistory::getTaskId)
.isNull(BusProcessHistory::getUserId)
.eq(BusProcessHistory::getIsMany,"1")
.or().isNotNull(BusProcessHistory::getTaskId)
);
}
// bphQueryWrap.isNotNull("task_id");
List<BusProcessHistory> bphList = this.list(bphQueryWrap);
this.disposeData(bphList,busProcessHistory.getActiProcInstId());
List<BusProcessHistory> firstBphList = bphList.stream().filter(bph -> StringUtils.isEmpty(bph.getManyPId())).distinct().collect(Collectors.toList());
for (BusProcessHistory processHistory : firstBphList) {
if (StringUtils.equals(processHistory.getIsMany(),"1")) {
List<BusProcessHistory> childList = bphList.stream().filter(bph -> StringUtils.equals(processHistory.getId(), bph.getManyPId())).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(childList)) {
String taskStatus = TaskStatusEnum.DONE.getValue();
for (BusProcessHistory history : childList) {
if (StringUtils.equals(history.getTaskStatus(),TaskStatusEnum.TODO.getValue()) || StringUtils.equals(history.getTaskStatus(),TaskStatusEnum.RECEIVED.getValue())) {
taskStatus = TaskStatusEnum.TODO.getValue();
break;
}
}
Date endTime = null;
if (StringUtils.equals(taskStatus,TaskStatusEnum.DONE.getValue())) {
// Collections.sort(childList,new Comparator<BusProcessHistory>(){
// @Override
// public int compare(BusProcessHistory o1, BusProcessHistory o2) {
// return o2.getEndTime().compareTo(o1.getEndTime());
// }
// });
endTime = childList.get(childList.size()-1).getEndTime();
}
String userNames = childList.stream().map(BusProcessHistory::getUserName).distinct().collect(Collectors.joining(","));
processHistory.setUserName(userNames);
processHistory.setCreateTime(childList.get(0).getCreateTime());
processHistory.setEndTime(endTime);
processHistory.setTaskStatus(taskStatus);
processHistory.setTaskStatusShow(TaskStatusEnum.getLabelByValue(taskStatus));
processHistory.setChildren(childList);
}
}
}
List<BusProcessHistory> results = new ArrayList<>();
if (CollectionUtils.isNotEmpty(firstBphList)) {
results = firstBphList.stream().filter(bph -> {
boolean flag = false;
if (StringUtils.equals(bph.getIsMany(),"2") || (StringUtils.equals(bph.getIsMany(),"1") && CollectionUtils.isNotEmpty(bph.getChildren()))) {
flag = true;
}
return flag;
}).distinct().collect(Collectors.toList());
}
return results;
}
/**
* 验证用户是否只是参与子流程的。
* @param bph
* @param userId
* @return
*/
public boolean checkUserIsChildProcess(BusProcessHistory bph,String userId){
boolean result = false;
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(bph, bphQueryWrap);
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,userId);
List<BusProcessHistory> busProcessHistoryList = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(busProcessHistoryList)) {
for (BusProcessHistory busProcessHistory : busProcessHistoryList) {
if (StringUtils.isNotEmpty(busProcessHistory.getManyPId())) {
BusProcessHistory byId = this.getById(busProcessHistory.getManyPId());
if (StringUtils.contains(byId.getTaskKey(),StandardCommentNewProcessNodeKeyEnum.SUB_PROCESS.getLable())) {
result = true;
continue;
} else {
result = false;
break;
}
} else {
result = false;
break;
}
}
}
return result;
}
@Override
public List<BusProcessHistory> queryByList(BusProcessHistory busProcessHistory) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(busProcessHistory, bphQueryWrap);
List<BusProcessHistory> results = this.list(bphQueryWrap);
return results;
}
/**
* 设置查询条件
* @param busProcessHistory
* @param bphQueryWrap
*/
private void setQueryCondition(BusProcessHistory busProcessHistory, QueryWrapper<BusProcessHistory> bphQueryWrap) {
if (StringUtils.isNotEmpty(busProcessHistory.getActiProcInstId())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, busProcessHistory.getActiProcInstId());
}
if (StringUtils.isNotEmpty(busProcessHistory.getTaskId())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskId, busProcessHistory.getTaskId());
}
if (StringUtils.isNotEmpty(busProcessHistory.getUserId())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, busProcessHistory.getUserId());
}
if (StringUtils.isNotEmpty(busProcessHistory.getTaskKey())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, busProcessHistory.getTaskKey());
}
if (StringUtils.isNotEmpty(busProcessHistory.getFlowType())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getFlowType, busProcessHistory.getFlowType());
}
if (StringUtils.isNotEmpty(busProcessHistory.getTaskStatus())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskStatus, busProcessHistory.getTaskStatus());
}
if (StringUtils.isNotEmpty(busProcessHistory.getPId())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getPId, busProcessHistory.getPId());
}
}
/**
* 处理数据
*
* @param datas
*/
private List<BusProcessHistory> disposeData(List<BusProcessHistory> datas,String actiProcInstId) {
List<BusProcessHistory> results = new ArrayList<>();
if (CollectionUtils.isNotEmpty(datas)) {
BusProcessName bpn = null;
if (StringUtils.isNotEmpty(actiProcInstId)) {
QueryWrapper<BusProcessName> bpnQueryWrap = new QueryWrapper<>();
bpnQueryWrap.lambda().eq(BusProcessName::getPrcId,actiProcInstId);
bpn = this.busProcessNameService.getOne(bpnQueryWrap);
}
for (BusProcessHistory data : datas) {
if (StringUtils.isNotEmpty(data.getUserId())) {
ResponseMessage<UserVO> assignee = lawsUserInfoService.getByIdFeignClientWithDisabled(data.getUserId());
String userName = "";
if (assignee.getData() != null) {
if (assignee.getData().getDisableFlag() == 1) {
userName = assignee.getData().getUname() + "(" + assignee.getData().getUsid() + ")" + "(已禁用)";
} else {
userName = assignee.getData().getUname() + "(" + assignee.getData().getUsid() + ")";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("TASK_ID",data.getTaskId());
queryWrapper2.orderByDesc("CREATE_TIME");
List<BusProcessEntrust> list1 = iBusProcessEntrustService.list(queryWrapper2);
if(list1.size()>0){
ResponseMessage<UserVO> assignee1 = lawsUserInfoService.getByIdFeignClientWithDisabled(list1.get(0).getUserId());
userName = assignee.getData().getUname()+"("+assignee1.getData().getUname()+" 转办)";
}
} else {
userName = data.getUserId();
}
data.setUserName(userName);
}
data.setTaskStatusShow(TaskStatusEnum.getLabelByValue(data.getTaskStatus()));
String taskKeyShow = "";
if (StringUtils.equals(data.getFlowType(),FlowTypeEnum.BZZQYJLC.getValue())) {
taskKeyShow = StandardCommentNewProcessNodeKeyEnum.getLableByValue(data.getTaskKey());
} else if (StringUtils.equals(data.getFlowType(),FlowTypeEnum.QBZXD_JSBZ.getValue())) {
taskKeyShow = BussLibraryNodeKeyEnum.getLableByValue(data.getTaskKey());
}
data.setTaskKeyShow(taskKeyShow);
if (ObjectUtils.isNotEmpty(bpn)) {
data.setPrcName(bpn.getPrcName());
data.setPrcId(bpn.getPrcId());
data.setPrcNum(bpn.getPrcNum());
data.setBpnId(bpn.getId());
}
}
}
return results;
}
@Override
public void insertBatch(List<BusProcessHistory> busProcessHistoryList) {
if (CollectionUtils.isNotEmpty(busProcessHistoryList)) {
for (BusProcessHistory busProcessHistory : busProcessHistoryList) {
if (StringUtils.isEmpty(busProcessHistory.getId())) {
busProcessHistory.setId(UUID.randomUUID().toString());
}
String imgShowColor = "0";
if (StringUtils.isNotEmpty(busProcessHistory.getTaskStatus())) {
if (StringUtils.equals(busProcessHistory.getTaskStatus(),TaskStatusEnum.DONE.getValue())) {
imgShowColor = "2";
}
}
busProcessHistory.setImgShowColor(imgShowColor);
busProcessHistory.setImgShowFlag("1");
if (null == busProcessHistory.getCreateTime()) {
busProcessHistory.setCreateTime(new Date());
}
}
this.saveBatch(busProcessHistoryList);
}
}
@Override
public void updateBatch(List<BusProcessHistory> busProcessHistoryList) {
if (CollectionUtils.isNotEmpty(busProcessHistoryList)) {
this.updateBatchById(busProcessHistoryList);
}
}
@Override
public void updateTaskInfo(DelegateTask delegateTask) {
BusProcessHistory bph = new BusProcessHistory();
bph.setActiProcInstId(delegateTask.getProcessInstanceId());
bph.setTaskKey(delegateTask.getTaskDefinitionKey());
bph.setUserId(delegateTask.getAssignee());
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(bph, bphQueryWrap);
bphQueryWrap.isNull("task_id");
List<BusProcessHistory> bphList = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(bphList)) {
BusProcessHistory busProcessHistory = bphList.get(0);
busProcessHistory.setTaskId(delegateTask.getId());
busProcessHistory.setTaskStatus(TaskStatusEnum.TODO.getValue());
busProcessHistory.setImgShowColor("1");
super.updateById(busProcessHistory);
}
}
@Override
public void complete(BusMes busMes) {
BusProcessHistory bph = new BusProcessHistory();
bph.setTaskId(busMes.getTaskId());
List<BusProcessHistory> bphList = this.queryByList(bph);
if (CollectionUtils.isNotEmpty(bphList)) {
JSONObject jsonObject = JSONObject.parseObject(busMes.getJson());
bphList.forEach(busProcessHistory -> {
busProcessHistory.setTaskStatus(TaskStatusEnum.DONE.getValue());
busProcessHistory.setEndTime(new Date());
busProcessHistory.setCommitText(jsonObject.getString("commentText"));
busProcessHistory.setImgShowColor("2");
});
this.updateBatch(bphList);
}
}
@Override
public int getMaxOrderNum(String actiProcInstId, String taskKey) {
int result = 0;
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,actiProcInstId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey,taskKey);
bphQueryWrap.orderByDesc("order_num");
List<BusProcessHistory> list = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(list)) {
result = list.get(0).getOrderNum();
}
return result;
}
/**
*
* @param actiProcInstId 流程实例id
* @param orderNum 排序号
* @param dataNum 数据数量
*/
@Override
public void updateOrderNum(String actiProcInstId, int orderNum ,int dataNum) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,actiProcInstId);
bphQueryWrap.lambda().gt(BusProcessHistory::getOrderNum,orderNum);
bphQueryWrap.isNull("task_id");
List<BusProcessHistory> list = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(list)) {
for (BusProcessHistory busProcessHistory : list) {
busProcessHistory.setOrderNum(busProcessHistory.getOrderNum() + dataNum);
}
this.updateBatch(list);
}
}
@Override
public List<Map<String,Object>> getImgDataList(BusProcessHistory busProcessHistory) {
List<Map<String, Object>> result = new ArrayList<>();
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(busProcessHistory, bphQueryWrap);
bphQueryWrap.lambda().eq(BusProcessHistory::getImgShowFlag,"1");
bphQueryWrap.orderByAsc("order_num", "create_time");
List<BusProcessHistory> bphList = this.list(bphQueryWrap);
this.disposeData(bphList,busProcessHistory.getActiProcInstId());
FlowTypeEnum flowTypeEnum = FlowTypeEnum.getFlowTypeEnumByValue(busProcessHistory.getFlowType());
switch (flowTypeEnum) {
case BZZQYJLC:
result = this.getBzzqyjlcImgDataList(bphList);
break;
case QBZXD_JSBZ:
result = this.getQbzxdJsbzImgDataList(bphList);
break;
default:
break;
}
return result;
}
@Override
public void changeUserIdByTaskId(String taskId,String afterUserId,String frontUserId) {
if (StringUtils.isNotEmpty(taskId) && StringUtils.isNotEmpty(afterUserId) && StringUtils.isNotEmpty(frontUserId)) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskId, taskId);
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,frontUserId);
BusProcessHistory bph = this.getOne(bphQueryWrap);
if (ObjectUtils.isNotEmpty(bph)) {
bph.setUserId(afterUserId);
this.updateById(bph);
}
}
}
@Override
public void updateImgShowColor(String actiProcInstId, List<String> inTaskKeyList, List<String> notInTaskKeyList,String imgShowColor) {
if (CollectionUtils.isEmpty(inTaskKeyList) && CollectionUtils.isEmpty(notInTaskKeyList)) {
throw new ActivitiException("参数有误!");
}
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, actiProcInstId);
if (CollectionUtils.isNotEmpty(inTaskKeyList)) {
bphQueryWrap.lambda().in(BusProcessHistory::getTaskKey,inTaskKeyList);
}
if (CollectionUtils.isNotEmpty(notInTaskKeyList)) {
bphQueryWrap.lambda().notIn(BusProcessHistory::getTaskKey,notInTaskKeyList);
}
List<BusProcessHistory> bphList = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(bphList)) {
for (BusProcessHistory bph : bphList) {
bph.setImgShowColor(imgShowColor);
}
this.updateBatchById(bphList);
}
}
@Override
public void updateImgShowFlag(String actiProcInstId, List<String> inTaskKeyList, List<String> notInTaskKeyList, String imgShowFlag) {
if (CollectionUtils.isEmpty(inTaskKeyList) && CollectionUtils.isEmpty(notInTaskKeyList)) {
throw new ActivitiException("参数有误!");
}
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, actiProcInstId);
if (CollectionUtils.isNotEmpty(inTaskKeyList)) {
bphQueryWrap.lambda().in(BusProcessHistory::getTaskKey,inTaskKeyList);
}
if (CollectionUtils.isNotEmpty(notInTaskKeyList)) {
bphQueryWrap.lambda().notIn(BusProcessHistory::getTaskKey,notInTaskKeyList);
}
List<BusProcessHistory> bphList = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(bphList)) {
for (BusProcessHistory bph : bphList) {
bph.setImgShowFlag(imgShowFlag);
}
this.updateBatchById(bphList);
}
}
/**
* 获取标准征求意见流程图数据
* @param bphList
* @return
*/
private List<Map<String, Object>> getBzzqyjlcImgDataList(List<BusProcessHistory> bphList) {
List<Map<String, Object>> result = new ArrayList<>();
List<StandardCommentNewProcessNodeKeyEnum> standardCommentNewProcessNodeKeyEnum = StandardCommentNewProcessNodeKeyEnum.getStandardCommentNewProcessNodeKeyEnum();
for (StandardCommentNewProcessNodeKeyEnum nodeKeyEnum : standardCommentNewProcessNodeKeyEnum) {
Map<String, Object> tasksMap = this.getTasksMap(
bphList,
nodeKeyEnum.getValue(),
nodeKeyEnum.getLable()
);
if (ObjectUtils.isNotEmpty(tasksMap)) {
result.add(tasksMap);
}
}
return result;
}
/**
* 获取企标制修订-技术标准流程图数据
* @param bphList
* @return
*/
private List<Map<String, Object>> getQbzxdJsbzImgDataList(List<BusProcessHistory> bphList) {
List<Map<String, Object>> result = new ArrayList<>();
List<BussLibraryNodeKeyEnum> bussLibraryNodeKeyEnum = BussLibraryNodeKeyEnum.getBussLibraryNodeKeyEnum();
for (BussLibraryNodeKeyEnum nodeKeyEnum : bussLibraryNodeKeyEnum) {
Map<String, Object> tasksMap = this.getTasksMap(
bphList,
nodeKeyEnum.getValue(),
nodeKeyEnum.getLable()
);
if (ObjectUtils.isNotEmpty(tasksMap)) {
result.add(tasksMap);
}
}
return result;
}
private Map<String, Object> getTasksMap(List<BusProcessHistory> bphList,String taskKey,String taskKeyName) {
Map<String, Object> tasksMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(bphList)) {
List<BusProcessHistory> bphListByTaskKey = bphList.stream().filter(bph -> {
boolean flag = false;
if (StringUtils.equals(bph.getTaskKey(), taskKey)) {
flag = true;
}
return flag;
}).distinct().collect(Collectors.toList());
String taskStatus = "";
String userNames = "";
if (CollectionUtils.isNotEmpty(bphListByTaskKey)) {
userNames = bphListByTaskKey.stream().filter(bph -> {
boolean flag = false;
if (StringUtils.isNotEmpty(bph.getUserName())) {
flag = true;
}
return flag;
}).map(BusProcessHistory::getUserName).distinct().collect(Collectors.joining(","));
taskStatus = TaskStatusEnum.DONE.getValue();
for (BusProcessHistory busProcessHistory : bphListByTaskKey) {
if (StringUtils.equals(busProcessHistory.getIsMany(),"1")) {
List<BusProcessHistory> childList = bphList.stream().filter(bph -> StringUtils.equals(busProcessHistory.getId(), bph.getManyPId())).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(childList)) {
for (BusProcessHistory history : childList) {
busProcessHistory.setTaskId(busProcessHistory.getId());
busProcessHistory.setTaskStatus(TaskStatusEnum.DONE.getValue());
// if (StringUtils.equals(history.getTaskStatus(),TaskStatusEnum.TODO.getValue()) || StringUtils.equals(history.getTaskStatus(),TaskStatusEnum.RECEIVED.getValue())) {
// busProcessHistory.setTaskStatus(TaskStatusEnum.TODO.getValue());
// busProcessHistory.setTaskId(null);
// break;
// }
if (StringUtils.equals(history.getImgShowColor(), "2")) {
busProcessHistory.setImgShowColor(history.getImgShowColor());
} else if (StringUtils.equals(history.getImgShowColor(), "1")) {
busProcessHistory.setImgShowColor(history.getImgShowColor());
break;
} else if (StringUtils.equals(history.getImgShowColor(), "0")) {
busProcessHistory.setImgShowColor(history.getImgShowColor());
continue;
}
}
}
}
// if (StringUtils.isEmpty(busProcessHistory.getTaskId())
// || StringUtils.equals(busProcessHistory.getTaskStatus(), TaskStatusEnum.TODO.getValue())
// || StringUtils.equals(busProcessHistory.getTaskStatus(), TaskStatusEnum.RECEIVED.getValue())) {
// taskStatus = TaskStatusEnum.TODO.getValue();
// break;
// }
// 如果是蓝色,设置为已办,接着往下循环,如果是绿色,设置为待办,直接终止循环,如果是白色,接着往下循环。
// if (StringUtils.equals(busProcessHistory.getImgShowColor(), "2")) {
// taskStatus = TaskStatusEnum.DONE.getValue();
// } else if (StringUtils.equals(busProcessHistory.getImgShowColor(), "1")) {
// taskStatus = TaskStatusEnum.TODO.getValue();
// break;
// } else if (StringUtils.equals(busProcessHistory.getImgShowColor(), "0")) {
// taskStatus = "";
// continue;
// }
}
Map<String, List<BusProcessHistory>> map = bphListByTaskKey.stream().collect(Collectors.groupingBy(BusProcessHistory::getImgShowColor));
if (map.containsKey("0")) {
taskStatus = "";
}
// 如果该节点数据,存在绿色展示数据,则设置为绿色。
if (map.containsKey("2")) {
taskStatus = TaskStatusEnum.DONE.getValue();
}
// 如果该节点数据,存在绿色展示数据,则设置为绿色。
if (map.containsKey("1")) {
taskStatus = TaskStatusEnum.TODO.getValue();
}
}
tasksMap.put("taskKey", taskKey);
tasksMap.put("taskKeyName", taskKeyName);
tasksMap.put("userNames", userNames);
// 任务状态
tasksMap.put("taskStatus", taskStatus);
tasksMap.put("taskList", bphListByTaskKey);
}
return tasksMap;
}
}
@@ -144,7 +144,7 @@ public class SendDeleteMQService {
private void restSendDoneTodo(String object, SimpleDateFormat sdf, SendTodoLog sendTodoLog, int againNumNew,String operMesg) throws Exception{
// 发送失败连续持续3次, 如果在失败等待1个小时后重试3次
if(againNumNew < 6){
Thread.sleep(3000);
Thread.sleep(600000);
logger.info("发送失败连续持续"+againNumNew+"次,存入延迟重试队列!!!!!!!!!");
}else {
@@ -140,7 +140,7 @@ public class SendDoneMQService {
private void restSendDoneTodo(NotifyTodoSendContext object, SimpleDateFormat sdf, SendTodoLog sendTodoLog, int againNumNew,String operMesg) throws Exception{
// 发送失败连续持续3次, 如果在失败等待1个小时后重试3次
if(againNumNew < 6){
Thread.sleep(3000);
Thread.sleep(600000);
logger.info("发送失败连续持续"+againNumNew+"次,存入延迟重试队列!!!!!!!!!");
}else {
@@ -175,7 +175,7 @@ public class SendMQService {
private void restSendTodo(BusProcessNew object, SimpleDateFormat sdf, SendTodoLog sendTodoLog, int againNumNew,String operMesg) throws Exception{
// 失败次数小于6次,放入失败队列延迟消费
if((againNumNew < 6)){
Thread.sleep(3000);
Thread.sleep(600000);
logger.info("发送失败连续持续"+againNumNew+"次,存入延迟重试队列!!!!!!!!!");
}else {
logger.info("发送失败连续持续"+againNumNew+"次!!");
@@ -134,7 +134,8 @@ public class SendToBeReadMQService {
private void restSendTodo(BusProcessNew object, SimpleDateFormat sdf, SendTodoLog sendTodoLog, int againNumNew, String operMesg) throws Exception {
// 失败次数小于6次,放入失败队列延迟消费
if ((againNumNew < 6)) {
Thread.sleep(3000);
// 延迟10分钟
Thread.sleep(600000);
logger.info("发送失败连续持续" + againNumNew + "次,存入延迟重试队列!!!!!!!!!");
} else {
logger.info("发送失败连续持续" + againNumNew + "次!!");
@@ -62,8 +62,8 @@ public class OkHttpConfig {
.sslSocketFactory(sslSocketFactory(), x509TrustManager())
.retryOnConnectionFailure(false)//是否开启缓存
.connectionPool(pool())//连接池
.connectTimeout(10L, TimeUnit.SECONDS)
.readTimeout(10L, TimeUnit.SECONDS)
.connectTimeout(2L, TimeUnit.MINUTES)
.readTimeout(2L, TimeUnit.MINUTES)
.build();
}
}
@@ -11,6 +11,7 @@ import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@Component
public class OkHttpUtil {
@@ -257,20 +258,14 @@ public class OkHttpUtil {
requestBuilder.addHeader(entry.getKey(), entry.getValue());
}
Request request = requestBuilder.post(requestBody).build();
Response response = null;
try {
response = okHttpClient.newCall(request).execute();
try (Response response = okHttpClient.newCall(request).execute()) {
int status = response.code();
if (status == 200) {
return response.body().string();
}
} catch (Exception e) {
logger.error("okhttp post error >> ex = {}", ExceptionUtils.getStackTrace(e));
return "okhttp post error >> ex = {} "+ e.getMessage();
} finally {
if (response != null) {
response.close();
}
return "okhttp post error >> ex = {} " + e.getMessage();
}
return responseBody;
}
@@ -5,6 +5,7 @@ import java.util.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.tmsps.fk.common.util.JsonUtil;
import com.ydw.bat.wkflow.business_activiti.dto.*;
@@ -22,8 +23,11 @@ import com.alibaba.fastjson.JSONObject;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEntrustService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.ISendTodoLogService;
import com.ydw.bat.wkflow.business_main.datas.service.impl.SendTodoLogServiceImpl;
import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.SendOAContent;
import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult;
import com.ydw.bat.wkflow.business_wkflow.form.dto.FormSubmitDto;
import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService;
@@ -69,8 +73,54 @@ public class WebServiceOAController extends BaseAction {
@ApiOperation(value = "发送待办接口(")
@PostMapping("/sendTodo")
public NotifyTodoAppResult sendTodo() throws Exception{
return webServiceOAService.sendTodo(new BusProcessNew());
public NotifyTodoAppResult sendTodo(@RequestBody BusProcessNew busProcessNew) throws Exception{
return webServiceOAService.sendTodo(busProcessNew);
}
@ApiOperation("代主服务发送OA请求")
@PostMapping("/replaceSendOA")
public Wrapper<String> replaceSendOA(@RequestBody SendOAContent sendOAContent) {
logger.info("收到主服务请求------------------------------------");
logger.info("请求参数:{}", JSON.toJSONString(sendOAContent));
String result = webServiceOAService.replaceSendOA(sendOAContent);
return WrapMapper.ok(result);
}
@Autowired
private ISendTodoLogService sendTodoLogService;
@ApiOperation(value = "OA发送失败的补发")
@GetMapping("/reissueSendOA")
public String reissueSendOA() throws Exception {
LambdaQueryWrapper<SendTodoLog> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SendTodoLog::getOperMesg,"okhttp post error >> ex = {} sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target");
wrapper.gt(SendTodoLog::getCreateTime,"2024-04-19 18:00:00");
wrapper.orderByAsc(SendTodoLog::getCreateTime);
List<SendTodoLog> sendTodoLogList = sendTodoLogService.list(wrapper);
for (SendTodoLog sendTodoLog : sendTodoLogList) {
String msgType = sendTodoLog.getMsgType();
String mesg = sendTodoLog.getMesg();
JSONObject jsonObject = JSONObject.parseObject(mesg);
if ("0".equals(msgType)) {
// 待办
JSONObject processNewJsonObject = jsonObject.getJSONObject("mesg");
BusProcessNew busProcessNew = JSONObject.toJavaObject(processNewJsonObject, BusProcessNew.class);
webServiceOAService.sendTodo(busProcessNew);
Thread.sleep(3000);
} else if ("1".equals(msgType)) {
// 已办
JSONObject notifyTodoSendContextJsonObject = JSONObject.parseObject(mesg);
NotifyTodoSendContext notifyTodoSendContext = JSONObject.toJavaObject(notifyTodoSendContextJsonObject, NotifyTodoSendContext.class);
webServiceOAService.setTodoDone(notifyTodoSendContext);
Thread.sleep(3000);
} else if ("3".equals(msgType)) {
// 删除
String todoId = sendTodoLog.getTodoId();
String userId = sendTodoLog.getUserId();
webServiceOAService.deleteOAByMandatory(todoId,userId);
Thread.sleep(3000);
}
}
return "ok";
}
}
@@ -2,12 +2,11 @@ package com.ydw.bat.wkflow.business_oa.webService.service;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.SendOAContent;
import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppDeleteResult;
import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult;
import org.activiti.engine.task.Task;
import java.util.List;
public interface WebServiceOAService {
void deleteOAByPid(String pId);
@@ -26,4 +25,5 @@ public interface WebServiceOAService {
NotifyTodoAppResult sendToBeRead(BusProcessNew busProcessNew) throws Exception;
String replaceSendOA(SendOAContent sendOAContent);
}
@@ -16,6 +16,7 @@ import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.HEAD;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.JsonSend;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.SendOAContent;
import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppDeleteResult;
import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult;
import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -241,7 +242,8 @@ public class WebServiceOAServiceImpl implements WebServiceOAService {
JsonSend jsonSend = new JsonSend();
HEAD head = new HEAD();
head.setACCOUNT("OA");
head.setBIZTRANSACTIONID("SYC_161320210206133219");
// head.setBIZTRANSACTIONID("SYC_161320210206133219");
head.setBIZTRANSACTIONID("SPRS" + System.currentTimeMillis());
head.setCONSUMER("SPRS");
head.setCOUNT("1");
head.setPASSWORD("TEST_oa201611241710");
@@ -330,7 +332,8 @@ public class WebServiceOAServiceImpl implements WebServiceOAService {
JsonSend jsonSend = new JsonSend();
HEAD head = new HEAD();
head.setACCOUNT("OA");
head.setBIZTRANSACTIONID("SYC_161320210206133219");
// head.setBIZTRANSACTIONID("SYC_161320210206133219");
head.setBIZTRANSACTIONID("SPRS" + System.currentTimeMillis());
head.setCONSUMER("SPRS");
head.setCOUNT("1");
head.setPASSWORD("oa201611241710");
@@ -382,7 +385,8 @@ public class WebServiceOAServiceImpl implements WebServiceOAService {
JsonSend jsonSend = new JsonSend();
HEAD head = new HEAD();
head.setACCOUNT("OA");
head.setBIZTRANSACTIONID("SYC_161320210206133219");
// head.setBIZTRANSACTIONID("SYC_161320210206133219");
head.setBIZTRANSACTIONID("SPRS" + System.currentTimeMillis());
head.setCONSUMER("SPRS");
head.setCOUNT("1");
head.setPASSWORD("oa201611241710");
@@ -502,7 +506,8 @@ public class WebServiceOAServiceImpl implements WebServiceOAService {
JsonSend jsonSend = new JsonSend();
HEAD head = new HEAD();
head.setACCOUNT("OA");
head.setBIZTRANSACTIONID("SYC_161320210206133219");
// head.setBIZTRANSACTIONID("SYC_161320210206133219");
head.setBIZTRANSACTIONID("SPRS" + System.currentTimeMillis());
head.setCONSUMER("SPRS");
head.setCOUNT("1");
head.setPASSWORD("oa201611241710");
@@ -556,5 +561,10 @@ public class WebServiceOAServiceImpl implements WebServiceOAService {
}
return notifyTodoAppResult;
}
@Override
public String replaceSendOA(SendOAContent sendOAContent) {
return okHttpUtil.postForJson(sendOAContent.getUrl(), sendOAContent.getJson(), sendOAContent.getHeaderParams());
}
}
@@ -0,0 +1,21 @@
package com.ydw.bat.wkflow.business_oa.webService.todoContent;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
* @author wxyclub
* @description
* @date 2024-03-31
*/
@Data
public class SendOAContent implements Serializable {
String url;
String json;
Map<String, String> headerParams;
}
@@ -0,0 +1,163 @@
package com.ydw.bat.wkflow.config;
import com.alibaba.druid.filter.Filter;
import com.alibaba.druid.filter.logging.Slf4jLogFilter;
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import com.alibaba.druid.support.spring.stat.DruidStatInterceptor;
import com.alibaba.druid.wall.WallConfig;
import com.alibaba.druid.wall.WallFilter;
import org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator;
import org.springframework.boot.context.properties.bind.BindResult;
import org.springframework.boot.context.properties.bind.Binder;
import org.springframework.boot.context.properties.source.ConfigurationPropertySources;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.*;
@Configuration
@EnableTransactionManagement
public class DruidDataSourceConfig implements EnvironmentAware {
private Properties propertyResolver;
private Properties configResolver;
public DruidDataSourceConfig() {
}
public void setEnvironment(Environment env) {
Iterable sources = ConfigurationPropertySources.get(env);
Binder binder = new Binder(sources);
BindResult<Properties> propertyResolverBind = binder.bind("spring.datasource", Properties.class);
BindResult<Properties> configResolverBind = binder.bind("spring.profiles", Properties.class);
propertyResolver= propertyResolverBind.get();
configResolver = configResolverBind.get();
}
@Bean(
name = {"dataSource"}
)
public DataSource dataSource() throws SQLException {
DruidDataSource datasource = new DruidDataSource();
datasource.setUrl(this.propertyResolver.getProperty("url"));
datasource.setDriverClassName(this.propertyResolver.getProperty("driver-class-name"));
datasource.setUsername(this.propertyResolver.getProperty("username"));
datasource.setPassword(this.propertyResolver.getProperty("password"));
datasource.setInitialSize(Integer.valueOf(this.propertyResolver.getProperty("initialSize")));
datasource.setMinIdle(Integer.valueOf(this.propertyResolver.getProperty("minIdle")));
datasource.setMaxWait(Long.valueOf(this.propertyResolver.getProperty("maxWait")));
datasource.setMaxActive(Integer.valueOf(this.propertyResolver.getProperty("maxActive")));
datasource.setTimeBetweenEvictionRunsMillis(Long.valueOf(this.propertyResolver.getProperty("timeBetweenEvictionRunsMillis")));
datasource.setMinEvictableIdleTimeMillis(Long.valueOf(this.propertyResolver.getProperty("minEvictableIdleTimeMillis")));
// datasource.setRemoveAbandoned(Boolean.valueOf(this.propertyResolver.getProperty("removeAbandoned")));
// datasource.setRemoveAbandonedTimeout(Integer.valueOf(this.propertyResolver.getProperty("removeAbandonedTimeout")));
datasource.setTestOnBorrow(Boolean.valueOf(this.propertyResolver.getProperty("testOnBorrow")));
datasource.setTestOnReturn(Boolean.valueOf(this.propertyResolver.getProperty("testOnReturn")));
datasource.setTestWhileIdle(Boolean.valueOf(this.propertyResolver.getProperty("testWhileIdle")));
datasource.setValidationQuery(this.propertyResolver.getProperty("validationQuery"));
// datasource.setValidationQueryTimeout(Integer.valueOf(this.propertyResolver.getProperty("validationQueryTimeout")));
// datasource.setKeepAlive(Boolean.valueOf(this.propertyResolver.getProperty("keepAlive")));
// if("prd".equals(this.configResolver.getProperty("active"))){
// datasource.setConnectProperties(this.connectionProper());
// }
// datasource.setConnectProperties(this.connectionProper());
List<Filter> filters = new ArrayList();
filters.add(this.wallFilter());
filters.add(this.statFilter());
filters.add(this.slf4jLogFilter());
// if("prd".equals(this.configResolver.getProperty("active"))){
// filters.add(new ConfigFilter());
// }
// filters.add(new ConfigFilter());
datasource.setProxyFilters(filters);
// 启动时自动初始化维护连接
datasource.init();
return datasource;
}
@Bean
public StatFilter statFilter() {
StatFilter statFilter = new StatFilter();
statFilter.setMergeSql(Boolean.valueOf(this.propertyResolver.getProperty("mergeSql")));
statFilter.setSlowSqlMillis(Long.valueOf(this.propertyResolver.getProperty("slowSqlMillis")));
statFilter.setLogSlowSql(Boolean.valueOf(this.propertyResolver.getProperty("logSlowSql")));
return statFilter;
}
@Bean
public WallFilter wallFilter() {
WallFilter wallFilter = new WallFilter();
wallFilter.setLogViolation(true);
wallFilter.setThrowException(false);
wallFilter.setConfig(this.wallConfig());
return wallFilter;
}
@Bean
public Slf4jLogFilter slf4jLogFilter() {
Slf4jLogFilter slf4jLogFilter = new Slf4jLogFilter();
return slf4jLogFilter;
}
public Properties connectionProper(){
Properties connection=new Properties();
connection.setProperty("config.decrypt","true");
connection.setProperty("config.decrypt.key",this.propertyResolver.getProperty("publicKey"));
return connection;
}
@Bean
public ServletRegistrationBean druidServlet() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
servletRegistrationBean.setServlet(new StatViewServlet());
servletRegistrationBean.addUrlMappings(new String[]{"/druid/*"});
Map<String, String> initParameters = new HashMap();
initParameters.put("resetEnable", "true");
initParameters.put("loginUsername", "druid");
initParameters.put("loginPassword", "druid");
servletRegistrationBean.setInitParameters(initParameters);
return servletRegistrationBean;
}
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new WebStatFilter());
filterRegistrationBean.addUrlPatterns(new String[]{"/*"});
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
@Bean({"druid-stat-interceptor"})
public DruidStatInterceptor DruidStatInterceptor() {
DruidStatInterceptor druidStatInterceptor = new DruidStatInterceptor();
return druidStatInterceptor;
}
@Bean
public BeanNameAutoProxyCreator beanNameAutoProxyCreator() {
BeanNameAutoProxyCreator beanNameAutoProxyCreator = new BeanNameAutoProxyCreator();
beanNameAutoProxyCreator.setProxyTargetClass(true);
beanNameAutoProxyCreator.setInterceptorNames(new String[]{"druid-stat-interceptor"});
return beanNameAutoProxyCreator;
}
@Bean
public WallConfig wallConfig() {
WallConfig wallConfig = new WallConfig();
wallConfig.setMultiStatementAllow(true);
return wallConfig;
}
}
@@ -21,6 +21,7 @@ public class JSFApproveBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -21,6 +21,7 @@ public class JSFAuditBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -22,6 +22,7 @@ public class JSFFillinformationBefore implements TaskListener {
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
@@ -11,6 +11,7 @@ import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
@@ -66,20 +67,21 @@ public class JSFstartAfter implements TaskListener {
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
if (null != object.getString("commentText")) {
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
if (object.containsKey("commentText") && StringUtils.isNotBlank(object.getString("commentText"))) {
busProcessNews.setCommitFlag("1");
busProcessNews.setCommitText(object.getString("commentText"));
busBean.save(busProcessNews);
}
busBean.save(busProcessNews);
if (nextUserList != null && !nextUserList.isEmpty()) {
for (String nextUser : nextUserList) {
@@ -21,6 +21,7 @@ public class PRFApproveBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -21,6 +21,7 @@ public class PRFEngineerreviewBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -21,6 +21,7 @@ public class PRFFillinformationBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -21,6 +21,7 @@ public class PRFReviewdockBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -21,6 +21,7 @@ public class PRFUnderengineerBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -11,6 +11,7 @@ import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
@@ -33,7 +34,7 @@ public class PRFstartAfter implements TaskListener {
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
String ids=object.getString("dockUser");
if(ids.contains(",")){
nextUserList=new ArrayList<>(Arrays.asList(ids.split(",")));
@@ -55,7 +56,7 @@ public class PRFstartAfter implements TaskListener {
delegateTask.setVariable("prcCreateUserName", username);
String prcName = "参与外部标准制修订备案-备案任务下发";
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -67,20 +68,21 @@ public class PRFstartAfter implements TaskListener {
busProcessNameService.saveOrUpdate(one1);
}
if (null != object.getString("commentText")) {
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
if (object.containsKey("commentText") && StringUtils.isNotBlank(object.getString("commentText"))) {
busProcessNews.setCommitFlag("1");
busProcessNews.setCommitText(object.getString("commentText"));
busBean.save(busProcessNews);
}
busBean.save(busProcessNews);
if (nextUserList != null && !nextUserList.isEmpty()) {
for (String nextUser : nextUserList) {
@@ -21,6 +21,7 @@ public class RAApproveBefore implements TaskListener{
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -31,6 +31,7 @@ public class RAAuditAfter implements TaskListener {
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject roleForm = object.getJSONObject("roleForm");
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
@@ -46,8 +47,8 @@ public class RAAuditAfter implements TaskListener {
}
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String user = roleForm.getString("prcCreateUser");
String username = roleForm.getString("prcCreateUserName");
delegateTask.setVariable("prcCreateUser", user);
delegateTask.setVariable("prcCreateUserName", username);
String prcName="";
@@ -21,6 +21,7 @@ public class RAAuditBefore implements TaskListener{
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -12,6 +12,7 @@ import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RAModifyInformationAfter implements TaskListener {
@@ -31,19 +32,27 @@ public class RAModifyInformationAfter implements TaskListener {
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
nextUserList.addAll(delegateTask.getVariable("leadershiplist",List.class));
List<String> nextUserList = new ArrayList<>();
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
JSONObject roleForm = object.getJSONObject("roleForm");
String user = roleForm.getString("prcCreateUser");
String username = roleForm.getString("prcCreateUserName");
String dockUser = roleForm.getString("dockUser");
List<String> dockUserList = Arrays.asList(dockUser.split(","));
delegateTask.setVariable("prcCreateUser", user);
delegateTask.setVariable("prcCreateUserName", username);
// 赋值
delegateTask.setVariable("leadershiplist", dockUserList);
delegateTask.setVariable("statuteminister1", roleForm.getString("ministerUser"));
delegateTask.setVariable("director1", roleForm.getString("directorUser"));
delegateTask.setVariable("dean1", roleForm.getString("president"));
delegateTask.setVariable("statuteengineer3", roleForm.getString("passUser"));
nextUserList.addAll(dockUserList);
String prcName = "外部署名推荐批准-署名领导会签";
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -52,6 +61,7 @@ public class RAModifyInformationAfter implements TaskListener {
// one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
one1.setMes(datas.getFormValsJson());
busProcessNameService.saveOrUpdate(one1);
}
@@ -21,6 +21,7 @@ public class RAModifyInformationBefore implements TaskListener{
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -31,6 +31,7 @@ public class RASignAfter implements TaskListener {
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject roleForm = object.getJSONObject("roleForm");
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
@@ -46,8 +47,8 @@ public class RASignAfter implements TaskListener {
}
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String user = roleForm.getString("prcCreateUser");
String username = roleForm.getString("prcCreateUserName");
delegateTask.setVariable("prcCreateUser", user);
delegateTask.setVariable("prcCreateUserName", username);
String prcName="";
@@ -58,7 +59,7 @@ public class RASignAfter implements TaskListener {
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -21,6 +21,7 @@ public class RASignBefore implements TaskListener{
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -32,9 +32,10 @@ public class RAValidationAfter implements TaskListener {
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject roleForm = object.getJSONObject("roleForm");
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
if(object.getString("signFlag").equals("1")) {
delegateTask.setVariable("zrFlag", 1);
@@ -47,8 +48,8 @@ public class RAValidationAfter implements TaskListener {
}
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String user = roleForm.getString("prcCreateUser");
String username = roleForm.getString("prcCreateUserName");
delegateTask.setVariable("prcCreateUser", user);
delegateTask.setVariable("prcCreateUserName", username);
@@ -59,7 +60,7 @@ public class RAValidationAfter implements TaskListener {
prcName = "外部署名推荐批准-修改信息";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -21,6 +21,7 @@ public class RAValidationBefore implements TaskListener{
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -11,6 +11,8 @@ import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -69,20 +71,22 @@ public class RAstartAfter implements TaskListener {
busProcessNameService.saveOrUpdate(one1);
}
if (null != object.getString("commentText")) {
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
if (object.containsKey("commentText") && StringUtils.isNotBlank(object.getString("commentText"))) {
busProcessNews.setCommitFlag("1");
busProcessNews.setCommitText(object.getString("commentText"));
busBean.save(busProcessNews);
}
busBean.save(busProcessNews);
if (nextUserList != null && !nextUserList.isEmpty()) {
for (String nextUser : nextUserList) {
@@ -5,18 +5,24 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.tmsps.fk.common.util.JsonUtil;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.business_slrs.dao.SarPublicIdea;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import com.ydw.bat.wkflow.util.http.ResponseMessage;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
@@ -96,6 +102,11 @@ public class StartSurveyAfter implements TaskListener {
int i=0;
for(String nextUser : nextUserList){
object.put("onlyKey", i);
// 定义一个子流程id,子流程id,就是子流程的发起人id + - + 流程实例id
String subProcessKey = nextUser + "-" + delegateTask.getProcessInstanceId();
String subProcessId = UUID.randomUUID().toString();
delegateTask.setVariable(subProcessKey,subProcessId);
object.put("subProcessId",subProcessId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
@@ -160,5 +171,178 @@ public class StartSurveyAfter implements TaskListener {
if(!result.isOk()){
throw new ActivitiException("发起公开征求意见失败");
}
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask){
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
List<BusProcessHistory> bphList = new ArrayList<>();
// 起草
BusProcessHistory qcBph = new BusProcessHistory();
qcBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qcBph.setUserId(delegateTask.getAssignee());
qcBph.setTaskId(delegateTask.getId());
qcBph.setTaskKey(delegateTask.getTaskDefinitionKey());
qcBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
qcBph.setIsSub("2");
qcBph.setTaskStatus(TaskStatusEnum.DONE.getValue());
qcBph.setEndTime(new Date());
qcBph.setCommitText(json.getString("commentText"));
qcBph.setIsMany("2");
qcBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION1.getOrderNum());
bphList.add(qcBph);
// 子流程
// 子流程主键id
// String subId = UUID.randomUUID().toString();
// delegateTask.setVariable("subId",subId);
//
// BusProcessHistory zlcBph = new BusProcessHistory();
// zlcBph.setId(subId);
// zlcBph.setActiProcInstId(delegateTask.getProcessInstanceId());
// zlcBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
// zlcBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.SUB_PROCESS.getValue());
// zlcBph.setIsSub("1");
// bphList.add(zlcBph);
List<String> zrUserIdList = new ArrayList<>();
if (json.getString("dockUserList").contains(",")){
zrUserIdList.addAll(new ArrayList<>(Arrays.asList(json.getString("dockUserList").split(","))));
}else {
zrUserIdList.add(json.getString("dockUserList"));
}
if (CollectionUtils.isNotEmpty(zrUserIdList)) {
int subProcessIndex = 1;
for (String zrUserId : zrUserIdList) {
// 任务分发
// 获取在上面设置的子流程主键id
String subProcessKey = zrUserId + "-" + delegateTask.getProcessInstanceId();
String subProcessId = (String) delegateTask.getVariable(subProcessKey);
BusProcessHistory rwffBphP = new BusProcessHistory();
rwffBphP.setId(subProcessId);
rwffBphP.setActiProcInstId(delegateTask.getProcessInstanceId());
rwffBphP.setTaskKey(StandardCommentNewProcessNodeKeyEnum.SUB_PROCESS.getLable() + subProcessIndex);
rwffBphP.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
rwffBphP.setOrderNum(StandardCommentNewProcessNodeKeyEnum.SUB_PROCESS.getOrderNum());
rwffBphP.setIsSub("1");
rwffBphP.setIsMany("1");
rwffBphP.setCreateTime(new Date());
bphList.add(rwffBphP);
BusProcessHistory rwffBph = new BusProcessHistory();
rwffBph.setActiProcInstId(delegateTask.getProcessInstanceId());
rwffBph.setUserId(zrUserId);
rwffBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION2.getValue());
rwffBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
rwffBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION2.getOrderNum());
rwffBph.setIsSub("2");
rwffBph.setIsMany("2");
rwffBph.setManyPId(subProcessId);
rwffBph.setCreateTime(new Date());
bphList.add(rwffBph);
// 停1秒钟,确保流程历史中的子流程没问题。
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
subProcessIndex ++;
// // 意见汇总审批
// BusProcessHistory yjhzspBph = new BusProcessHistory();
// yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
// yjhzspBph.setUserId(zrUserId);
// yjhzspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue());
// yjhzspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
// yjhzspBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getOrderNum());
// yjhzspBph.setIsSub("2");
// yjhzspBph.setIsMany("2");
// bphList.add(yjhzspBph);
/*// 意见审批
String spId = json.getString("spId");
BusProcessHistory yjspBph = new BusProcessHistory();
yjspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjspBph.setUserId(spId);
yjspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
yjspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjspBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getOrderNum());
yjspBph.setIsSub("2");
yjspBph.setIsMany("2");
bphList.add(yjspBph);
// 管理员
String bzfgId = json.getString("bzfgId");
BusProcessHistory glyBph = new BusProcessHistory();
glyBph.setActiProcInstId(delegateTask.getProcessInstanceId());
glyBph.setUserId(bzfgId);
glyBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue());
glyBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
glyBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getOrderNum());
glyBph.setIsSub("2");
glyBph.setIsMany("2");
bphList.add(glyBph);*/
}
}
// 意见处理
String bzfgIdSum = json.getString("startUser");
BusProcessHistory yjclBph = new BusProcessHistory();
yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjclBph.setUserId(bzfgIdSum);
yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjclBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getOrderNum());
yjclBph.setIsSub("2");
yjclBph.setIsMany("2");
bphList.add(yjclBph);
// 批准
String presidentUser = json.getString("presidentUser");
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(presidentUser);
pzBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue());
pzBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
pzBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getOrderNum());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
bphList.add(pzBph);
// 审定
if (StringUtils.isNotEmpty(json.getString("directorUser"))) {
// 审定节点父节点信息
BusProcessHistory sdPBph = new BusProcessHistory();
String sdPBphId = UUID.randomUUID().toString();
sdPBph.setId(sdPBphId);
sdPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
sdPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
sdPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
sdPBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getOrderNum());
sdPBph.setIsSub("2");
sdPBph.setIsMany("1");
bphList.add(sdPBph);
List<String> directorUserList = Arrays.asList(json.getString("directorUser").split(","));
for (String sdUserId : directorUserList) {
BusProcessHistory sdBph = new BusProcessHistory();
sdBph.setActiProcInstId(delegateTask.getProcessInstanceId());
sdBph.setUserId(sdUserId);
sdBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
sdBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
sdBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getOrderNum());
sdBph.setIsSub("2");
sdBph.setIsMany("1");
sdBph.setManyPId(sdPBphId);
bphList.add(sdBph);
}
}
bphService.insertBatch(bphList);
}
}
@@ -3,18 +3,21 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.entity.ResponseMessage;
import com.ydw.bat.wkflow.business_main.datas.entity.*;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.business_slrs.dao.SarPublicIdeaAll;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import java.text.SimpleDateFormat;
@@ -168,5 +171,44 @@ public class Step10After implements TaskListener {
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String presidentFlag = (String) delegateTask.getVariable("presidentFlag");
// 如果是驳回,流程走向意见处理节点,否则流程结束
if (StringUtils.equals(presidentFlag,"1")) {
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue());
List<BusProcessHistory> bphList = new ArrayList<>();
// 流程走向意见处理节点
String bzfgIdSum = json.getString("startUser");
BusProcessHistory yjclBph = new BusProcessHistory();
yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjclBph.setUserId(bzfgIdSum);
yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjclBph.setOrderNum(orderNum);
yjclBph.setIsSub("2");
yjclBph.setIsMany("2");
bphList.add(yjclBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
// 退回到了 意见处理,将会签、审核、审定、批准 节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -30,5 +31,8 @@ public class Step10Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,18 +3,24 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.business_slrs.dao.SarPublicIdea;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import com.ydw.bat.wkflow.util.http.ResponseMessage;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -121,5 +127,67 @@ public class Step1After implements TaskListener {
busProcessNewNext.setUserId(delegateTask.getVariable("dockUser",String.class));
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
List<BusProcessHistory> bphList = new ArrayList<>();
List<String> yjfkUserIdList = Arrays.asList(json.getString("responUserList").split(","));
// 意见反馈
if (CollectionUtils.isNotEmpty(yjfkUserIdList)) {
String subProcessId = json.getString("subProcessId");
if (StringUtils.isNotEmpty(subProcessId)) {
for (String yjfkUserId : yjfkUserIdList) {
BusProcessHistory yjfkBph = new BusProcessHistory();
yjfkBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjfkBph.setUserId(yjfkUserId);
yjfkBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
yjfkBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjfkBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum());
yjfkBph.setIsSub("2");
yjfkBph.setIsMany("1");
yjfkBph.setManyPId(subProcessId);
yjfkBph.setParentUserId(delegateTask.getAssignee());
bphList.add(yjfkBph);
}
} else {
String yjfkPBphId = (String) delegateTask.getVariable("yjfkPBphId");
if (StringUtils.isEmpty(yjfkPBphId)) {
BusProcessHistory yjfkPBph = new BusProcessHistory();
yjfkPBphId = UUID.randomUUID().toString();
yjfkPBph.setId(yjfkPBphId);
yjfkPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjfkPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
yjfkPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjfkPBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum());
yjfkPBph.setIsSub("2");
yjfkPBph.setIsMany("1");
bphList.add(yjfkPBph);
}
for (String yjfkUserId : yjfkUserIdList) {
BusProcessHistory yjfkBph = new BusProcessHistory();
yjfkBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjfkBph.setUserId(yjfkUserId);
yjfkBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
yjfkBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjfkBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum());
yjfkBph.setIsSub("2");
yjfkBph.setIsMany("1");
yjfkBph.setManyPId(yjfkPBphId);
yjfkBph.setParentUserId(delegateTask.getAssignee());
bphList.add(yjfkBph);
}
delegateTask.setVariable("yjfkPBphId",yjfkPBphId);
}
}
bphService.insertBatch(bphList);
}
}
@@ -1,12 +1,16 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
@@ -32,5 +36,9 @@ public class Step1Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -4,16 +4,22 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -111,5 +117,47 @@ public class Step2After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask){
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
// 根据当前taskId
QueryWrapper<BusProcessHistory> queryWrapByTaskId = new QueryWrapper<>();
queryWrapByTaskId.lambda().eq(BusProcessHistory::getTaskId,delegateTask.getId());
queryWrapByTaskId.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
BusProcessHistory bphByTaskId = bphService.list(queryWrapByTaskId).get(0);
// 根据分发人用户id、流程实例id,流程节点定义key,任务状态为待办 查询 , 如果存在待办,则不做任何操作,如果不存在,则给分发人创建一条意见汇总审批的任务。
String parentUserId = bphByTaskId.getParentUserId();
QueryWrapper<BusProcessHistory> queryWrap = new QueryWrapper<>();
queryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
queryWrap.lambda().eq(BusProcessHistory::getParentUserId,parentUserId);
queryWrap.lambda().eq(BusProcessHistory::getTaskKey,StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
queryWrap.lambda().eq(BusProcessHistory::getTaskStatus, TaskStatusEnum.TODO.getValue());
queryWrap.lambda().ne(BusProcessHistory::getTaskId,delegateTask.getId());
int count = bphService.count(queryWrap);
if (count == 0) {
List<BusProcessHistory> bphList = new ArrayList<>();
String subProcessId = json.getString("subProcessId");
// 意见汇总审批
BusProcessHistory yjhzspBph = new BusProcessHistory();
yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjhzspBph.setUserId(parentUserId);
yjhzspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue());
yjhzspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjhzspBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getOrderNum());
yjhzspBph.setIsSub("2");
yjhzspBph.setIsMany("2");
if (StringUtils.isNotEmpty(subProcessId)) {
yjhzspBph.setManyPId(subProcessId);
}
bphList.add(yjhzspBph);
bphService.insertBatch(bphList);
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -32,5 +33,7 @@ public class Step2Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,15 +3,21 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -87,5 +93,42 @@ public class Step3After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String spId = json.getString("spId");
// 如果存在批准节点的数据,taskId为空。 不用添加,否则就是退回过 需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,spId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 意见审批
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(spId);
pzBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
pzBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
String subProcessId = json.getString("subProcessId");
if (StringUtils.isNotEmpty(subProcessId)) {
pzBph.setManyPId(subProcessId);
}
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue());
pzBph.setOrderNum(orderNum + 1);
bphList.add(pzBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -31,5 +32,7 @@ public class Step3Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,15 +3,22 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -93,5 +100,73 @@ public class Step4After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String spFlag = json.getString("spFlag");
List<BusProcessHistory> bphList = new ArrayList<>();
String subProcessId = json.getString("subProcessId");
// 如果是驳回,流程走向意见处理节点,否则流程结束
if (!StringUtils.equals(spFlag,"0")) {
String zrUserId = json.getString("SKS");
// 意见汇总审批
BusProcessHistory yjhzspBph = new BusProcessHistory();
yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjhzspBph.setUserId(zrUserId);
yjhzspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue());
yjhzspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
yjhzspBph.setOrderNum(orderNum + 1);
yjhzspBph.setIsSub("2");
yjhzspBph.setIsMany("2");
if (StringUtils.isNotEmpty(subProcessId)) {
yjhzspBph.setManyPId(subProcessId);
}
bphList.add(yjhzspBph);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
// 退回到了 意见汇总报批,将意见审批节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
} else {
String bzfgId = json.getString("bzfgId");
// 如果存在批准节点的数据,taskId为空。 不用添加,否则就是退回过 需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,bzfgId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey,StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
// 管理员
BusProcessHistory glyBph = new BusProcessHistory();
glyBph.setActiProcInstId(delegateTask.getProcessInstanceId());
glyBph.setUserId(bzfgId);
glyBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue());
glyBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
glyBph.setOrderNum(orderNum + 1);
glyBph.setIsSub("2");
glyBph.setIsMany("2");
if (StringUtils.isNotEmpty(subProcessId)) {
glyBph.setManyPId(subProcessId);
}
glyBph.setParentUserId(delegateTask.getAssignee());
bphList.add(glyBph);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
bphService.insertBatch(bphList);
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -31,5 +32,8 @@ public class Step4Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -4,15 +4,20 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.List;
@@ -121,5 +126,45 @@ public class Step5After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String bzFlag = json.getString("bzFlag");
// 如果是驳回,流程走向意见处理节点
if (!StringUtils.equals(bzFlag,"0")) {
String zrUserId = json.getString("SKS");
List<BusProcessHistory> bphList = new ArrayList<>();
String subProcessId = json.getString("subProcessId");
// 意见汇总审批
BusProcessHistory yjhzspBph = new BusProcessHistory();
yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjhzspBph.setUserId(zrUserId);
yjhzspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue());
yjhzspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue());
yjhzspBph.setOrderNum(orderNum + 1);
yjhzspBph.setIsSub("2");
yjhzspBph.setIsMany("2");
if (StringUtils.isNotEmpty(subProcessId)) {
yjhzspBph.setManyPId(subProcessId);
}
bphList.add(yjhzspBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
// 退回到了 意见汇总报批,将意见审批、管理员节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -32,5 +33,8 @@ public class Step5Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,15 +3,20 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.Arrays;
@@ -87,5 +92,43 @@ public class Step6After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
List<BusProcessHistory> bphList = new ArrayList<>();
// 会签
List<String> hqUserIdList = delegateTask.getVariable("Step6", List.class);
if (CollectionUtils.isNotEmpty(hqUserIdList)) {
// 会签节点父节点信息
BusProcessHistory hqPBph = new BusProcessHistory();
String hqPBphId = UUID.randomUUID().toString();
hqPBph.setId(hqPBphId);
hqPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
hqPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
hqPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
hqPBph.setOrderNum(orderNum + 1);
hqPBph.setIsSub("2");
hqPBph.setIsMany("1");
bphList.add(hqPBph);
for (String hqUsserId : hqUserIdList) {
BusProcessHistory hqBph = new BusProcessHistory();
hqBph.setActiProcInstId(delegateTask.getProcessInstanceId());
hqBph.setUserId(hqUsserId);
hqBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
hqBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
hqBph.setOrderNum(orderNum + 1);
hqBph.setIsSub("2");
hqBph.setIsMany("1");
hqBph.setManyPId(hqPBphId);
bphList.add(hqBph);
}
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
bphService.insertBatch(bphList);
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -31,5 +32,8 @@ public class Step6Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -2,16 +2,23 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
@@ -126,5 +133,78 @@ public class Step7After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask,nextUserList);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
* @param shUserIdList
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask,List<String> shUserIdList) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
// 如果当前会签节点不存在任务了。
if (!existTaskFlag) {
List<BusProcessHistory> bphList = new ArrayList<>();
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
String hqFlag = (String) delegateTask.getVariable("hqFlag");
if (StringUtils.equals(hqFlag,"0")) {
// 审核
if (CollectionUtils.isNotEmpty(shUserIdList)) {
// 审核节点父节点信息
BusProcessHistory shPBph = new BusProcessHistory();
String shPBphId = UUID.randomUUID().toString();
shPBph.setId(shPBphId);
shPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
shPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
shPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
shPBph.setOrderNum(orderNum + 1);
shPBph.setIsSub("2");
shPBph.setIsMany("1");
bphList.add(shPBph);
for (String shUserId : shUserIdList) {
BusProcessHistory shBph = new BusProcessHistory();
shBph.setActiProcInstId(delegateTask.getProcessInstanceId());
shBph.setUserId(shUserId);
shBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
shBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
shBph.setOrderNum(orderNum + 1);
shBph.setIsSub("2");
shBph.setIsMany("1");
shBph.setManyPId(shPBphId);
bphList.add(shBph);
}
}
} else {
// 流程走向意见处理节点
String bzfgIdSum = json.getString("startUser");
BusProcessHistory yjclBph = new BusProcessHistory();
yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjclBph.setUserId(bzfgIdSum);
yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjclBph.setOrderNum(orderNum + 1);
yjclBph.setIsSub("2");
yjclBph.setIsMany("2");
bphList.add(yjclBph);
// 退回到了 意见处理,将会签节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
}
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
bphService.insertBatch(bphList);
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -31,5 +32,8 @@ public class Step7Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -2,20 +2,29 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
//新征求意见流程!!!!!
public class Step8After implements TaskListener {
@@ -114,5 +123,91 @@ public class Step8After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask,nextUserList);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
* @param sdUserIdList
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask,List<String> sdUserIdList) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
// 如果当前审核节点不存在任务了。
if (!existTaskFlag) {
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
List<BusProcessHistory> bphList = new ArrayList<>();
String bdFlag = (String) delegateTask.getVariable("bdFlag");
if (StringUtils.equals(bdFlag,"0")) {
// 审定
if (CollectionUtils.isNotEmpty(sdUserIdList)) {
// 删除之前审定节点的信息。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey,StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> oldSdBphList = bphService.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(oldSdBphList)) {
if (oldSdBphList.size() > 1) {
List<String> oldSdBphIdList = oldSdBphList.stream().map(BusProcessHistory::getId).distinct().collect(Collectors.toList());
bphService.removeByIds(oldSdBphIdList);
}
}
// 审定节点父节点信息
BusProcessHistory sdPBph = new BusProcessHistory();
String sdPBphId = UUID.randomUUID().toString();
sdPBph.setId(sdPBphId);
sdPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
sdPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
sdPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
sdPBph.setOrderNum(orderNum + 1);
sdPBph.setIsSub("2");
sdPBph.setIsMany("1");
bphList.add(sdPBph);
for (String sdUserId : sdUserIdList) {
BusProcessHistory sdBph = new BusProcessHistory();
sdBph.setActiProcInstId(delegateTask.getProcessInstanceId());
sdBph.setUserId(sdUserId);
sdBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
sdBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
sdBph.setOrderNum(orderNum + 1);
sdBph.setIsSub("2");
sdBph.setIsMany("1");
sdBph.setManyPId(sdPBphId);
bphList.add(sdBph);
}
}
} else {
// 流程走向意见处理节点
String bzfgIdSum = json.getString("startUser");
BusProcessHistory yjclBph = new BusProcessHistory();
yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjclBph.setUserId(bzfgIdSum);
yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjclBph.setOrderNum(orderNum + 1);
yjclBph.setIsSub("2");
yjclBph.setIsMany("2");
bphList.add(yjclBph);
// 退回到了 意见处理,将会签、审核节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
}
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
bphService.insertBatch(bphList);
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -32,5 +33,8 @@ public class Step8Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -2,20 +2,28 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import io.swagger.models.auth.In;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
//新征求意见流程!!!!!
public class Step9After implements TaskListener {
@@ -110,5 +118,74 @@ public class Step9After implements TaskListener {
}
}
}
this.addBusProcessHistory(object,delegateTask);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
// 如果当前审定节点不存在任务了。
if (!existTaskFlag) {
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
List<BusProcessHistory> bphList = new ArrayList<>();
String directorFlag = (String) delegateTask.getVariable("directorFlag");
// 如果是通过,流程走向批准节点
if (StringUtils.equals(directorFlag,"0")) {
String presidentUser = json.getString("presidentUser");
// 如果存在批准节点的数据,taskId为空。 不用添加,否则就是退回过 需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,presidentUser);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey,StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
// 批准
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(presidentUser);
pzBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue());
pzBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
pzBph.setOrderNum(orderNum + 1);
pzBph.setIsSub("2");
pzBph.setIsMany("2");
bphList.add(pzBph);
}
} else {
// 流程走向意见处理节点
String bzfgIdSum = json.getString("startUser");
BusProcessHistory yjclBph = new BusProcessHistory();
yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjclBph.setUserId(bzfgIdSum);
yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjclBph.setOrderNum(orderNum + 1);
yjclBph.setIsSub("2");
yjclBph.setIsMany("2");
bphList.add(yjclBph);
// 退回到了 意见处理,将会签、审核、审定节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
}
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
bphService.insertBatch(bphList);
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -30,5 +31,8 @@ public class Step9Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -24,6 +24,7 @@ public class ChargeVerifyBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class DirectorChooseBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class EngineerReviseBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class EngineerReviseDoneBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class LeaderVerifyBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class ManageSignBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class PresidentVerifyBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -61,7 +61,7 @@ public class WriteMaterialAfter implements TaskListener {
String standName = object.getString("listName");
delegateTask.setVariable("listName", standName);
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
@@ -71,7 +71,6 @@ public class WriteMaterialAfter implements TaskListener {
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
if (null != object.getString("commentText")) {
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
@@ -82,9 +81,11 @@ public class WriteMaterialAfter implements TaskListener {
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
busProcessNews.setCommitText(object.getString("commentText"));
if (object.containsKey("commentText") && StringUtils.isNotBlank(object.getString("commentText"))) {
busProcessNews.setCommitFlag("1");
busProcessNews.setCommitText(object.getString("commentText"));
}
busBean.save(busProcessNews);
}
JSONObject object1 = object.getJSONObject("ch_pageData");
@@ -24,6 +24,7 @@ public class WriteMaterialBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class WriteMemberInfoBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -7,6 +7,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.*;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
@@ -29,29 +30,48 @@ public class ProcessStep6After implements TaskListener {
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
//根据流程id找到流程信息
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson", object);
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
//标准法规部业务经理Id ${sdFlag==0} bafzFlag
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
if ("0".equals(object.getString("bafzFlag"))){
delegateTask.setVariable("bafzFlag","0");
//入库"3lqnlgmgcn"
if ("废止".equals(object.getString("nextStatus"))) {
SarBussionessStand sarBussionessStand = new SarBussionessStand();
sarBussionessStand.setTextStatusBuss(object.getString("standtextStatus"));
sarBussionessStand.setId(object.getString("standId"));
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
Map<String,Object> bussAttrInfoMap = lawsUserInfoService.getBussAttrInfo(object.getString("standId"));
if(bussAttrInfoMap != null){
bussAttrInfoMap.replace("FZRQBUSS",dateFormat.format(new Date()));
// SarBussionessStand sarBussionessStand = new SarBussionessStand();
// sarBussionessStand.setTextStatusBuss(object.getString("standtextStatus"));
// sarBussionessStand.setId(object.getString("standId"));
// SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
// Map<String,Object> bussAttrInfoMap = lawsUserInfoService.getBussAttrInfo(object.getString("standId"));
// if(bussAttrInfoMap != null){
// bussAttrInfoMap.replace("FZRQBUSS",dateFormat.format(new Date()));
// }
// String as = JSONObject.toJSONString(bussAttrInfoMap);
// sarBussionessStand.setSarStandAttrEOStr(as);
// lawsUserInfoService.updateSarBussionessStand(sarBussionessStand);
String prcNum = null;
if (one1 != null) {
prcNum = one1.getPrcNum();
}
// 变更标准状态
ResponseMessage<Boolean> result = lawsUserInfoService.changeStandStatus(
object.getString("standId"),
object.getString("standCode"),
object.getString("standtextStatus"),
object.getString("prcCreateUser"),
prcNum);
if(!result.getData()){
throw new ActivitiException("标准状态变更失败");
}
String as = JSONObject.toJSONString(bussAttrInfoMap);
sarBussionessStand.setSarStandAttrEOStr(as);
lawsUserInfoService.updateSarBussionessStand(sarBussionessStand);
}
}else {
delegateTask.setVariable("bafzFlag","1");
@@ -68,9 +88,6 @@ public class ProcessStep6After implements TaskListener {
prcName = "企标废止";
}
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
if ("0".equals(object.getString("bafzFlag"))){
one1.setOverTime(OVERTIME);
@@ -81,6 +98,24 @@ public class ProcessStep6After implements TaskListener {
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
String csrUserIds = object.getString("csrUserIds");
if (StringUtils.isNotEmpty(csrUserIds)) {
String[] csrUserIdList = csrUserIds.split(",");
for (String csrUserId : csrUserIdList) {
// 发送 oa 待阅
BusProcessNew sendToBeReadBpn = new BusProcessNew();
sendToBeReadBpn.setId(UUID.randomUUID().toString().substring(0, 20));
sendToBeReadBpn.setTaskId(delegateTask.getId());
sendToBeReadBpn.setTaskInfo(delegateTask.getName());
sendToBeReadBpn.setLink("qbfzStep7?prcType=24&operate=view");
sendToBeReadBpn.setTaskInfo(delegateTask.getName());
sendToBeReadBpn.setUserId(csrUserId);
sendToBeReadBpn.setPrcName(prcName);
sendToBeReadBpn.setPId(delegateTask.getProcessInstanceId());
oaService.sendToBeReadMq(sendToBeReadBpn);
}
}
// 存储当前节点意见1
if (null != object.getString("commentText")) {
@@ -8,19 +8,25 @@ import com.ydw.bat.wkflow.business_main.datas.mapper.EsTechRelationMapper;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.listener.bussLibrary.Utils.FlowFinishEnum;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import net.sf.json.JSONArray;
import net.sf.json.util.JSONTokener;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.task.Task;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.tomcat.util.digester.ArrayStack;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* 发起企标制修订流程后
@@ -42,8 +48,12 @@ public class BLApplicantAfter implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -53,9 +63,16 @@ public class BLApplicantAfter implements TaskListener{
String username = object.getString("prcCreateUserName");
String prcName = "";
if(StringUtils.isNotBlank(object.getString("standName")) && StringUtils.isNotBlank(object.getString("standSort"))){
String standSort = object.getString("standSort");
if (standSort.contains("[")) {
standSort = standSort.substring(2, standSort.length() - 2);
// String standSort = object.getString("standSort");
// if (standSort.contains("[")) {
// standSort = standSort.substring(2, standSort.length() - 2);
// }
String standSort = "";
Object json = new JSONTokener(object.getString("standSort")).nextValue();
if(json instanceof JSONArray) {
standSort = object.getJSONArray("standSort").get(0).toString();
}else{
standSort = object.getString("standSort");
}
prcName = standSort+"-"+object.getString("standName") + "-企标制修订";
}else {
@@ -104,7 +121,7 @@ public class BLApplicantAfter implements TaskListener{
// throw new ActivitiException("1#2其他起草人参数不存在,请配置相关用户");
// }
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
@@ -121,14 +138,14 @@ public class BLApplicantAfter implements TaskListener{
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
// busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
if(nextUserList != null && !nextUserList.isEmpty()){
if(!nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
@@ -182,9 +199,230 @@ public class BLApplicantAfter implements TaskListener{
}
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask){
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
List<BusProcessHistory> bphList = new ArrayList<>();
// 起草
BusProcessHistory qcBph = new BusProcessHistory();
qcBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qcBph.setUserId(delegateTask.getAssignee());
qcBph.setTaskId(delegateTask.getId());
qcBph.setTaskKey(delegateTask.getTaskDefinitionKey());
qcBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qcBph.setIsSub("2");
qcBph.setTaskStatus(TaskStatusEnum.DONE.getValue());
qcBph.setEndTime(new Date());
qcBph.setCommitText(json.getString("commentText"));
qcBph.setIsMany("2");
qcBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY1.getOrderNum());
bphList.add(qcBph);
List<String> qcUserIdList = Arrays.asList(json.getString("qcUserId").split(","));
if (CollectionUtils.isNotEmpty(qcUserIdList)) {
// 企标编写节点父节点信息
BusProcessHistory qbbxPBph = new BusProcessHistory();
String qbbxPBphId = UUID.randomUUID().toString();
qbbxPBph.setId(qbbxPBphId);
qbbxPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getValue());
qbbxPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qbbxPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getOrderNum());
qbbxPBph.setIsSub("2");
qbbxPBph.setIsMany("1");
bphList.add(qbbxPBph);
for (String qcUserId : qcUserIdList) {
// 企标编写子节点信息
BusProcessHistory qbbxBph = new BusProcessHistory();
qbbxBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxBph.setUserId(qcUserId);
qbbxBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getValue());
qbbxBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qbbxBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getOrderNum());
qbbxBph.setIsSub("2");
qbbxBph.setIsMany("1");
qbbxBph.setManyPId(qbbxPBphId);
bphList.add(qbbxBph);
}
}
// 企标编写汇总
String hzUserId = json.getString("hzUserId");
BusProcessHistory qbbxhzBph = new BusProcessHistory();
qbbxhzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxhzBph.setUserId(hzUserId);
qbbxhzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY3.getValue());
qbbxhzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qbbxhzBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY3.getOrderNum());
qbbxhzBph.setIsSub("2");
qbbxhzBph.setIsMany("2");
bphList.add(qbbxhzBph);
// 标准化初审
String bzhUserId = json.getString("bzhUserId");
BusProcessHistory bzhcsBph = new BusProcessHistory();
bzhcsBph.setActiProcInstId(delegateTask.getProcessInstanceId());
bzhcsBph.setUserId(bzhUserId);
bzhcsBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
bzhcsBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
bzhcsBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getOrderNum());
bzhcsBph.setIsSub("2");
bzhcsBph.setIsMany("2");
bphList.add(bzhcsBph);
// 征求意见
List<String> hqUserIdList = Arrays.asList(json.getString("hqUserId").split(","));
if (CollectionUtils.isNotEmpty(hqUserIdList)) {
// 企标编写节点父节点信息
BusProcessHistory zqyjPBph = new BusProcessHistory();
String zqyjPBphId = UUID.randomUUID().toString();
zqyjPBph.setId(zqyjPBphId);
zqyjPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
zqyjPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
zqyjPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
zqyjPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getOrderNum());
zqyjPBph.setIsSub("2");
zqyjPBph.setIsMany("1");
bphList.add(zqyjPBph);
for (String hqUserId : hqUserIdList) {
BusProcessHistory zqyjBph = new BusProcessHistory();
zqyjBph.setActiProcInstId(delegateTask.getProcessInstanceId());
zqyjBph.setUserId(hqUserId);
zqyjBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
zqyjBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
zqyjBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getOrderNum());
zqyjBph.setIsSub("2");
zqyjBph.setIsMany("1");
zqyjBph.setManyPId(zqyjPBphId);
bphList.add(zqyjBph);
}
}
// 技术委员会评审、评审意见修改
String xdUserId = json.getString("xdUserId");
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(xdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY6.getOrderNum());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
bphList.add(psyjxgBph);
// 标准化复审
String fggcsUserId = json.getString("fggcsUserId");
BusProcessHistory hzhfsBph = new BusProcessHistory();
hzhfsBph.setActiProcInstId(delegateTask.getProcessInstanceId());
hzhfsBph.setUserId(fggcsUserId);
hzhfsBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
hzhfsBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
hzhfsBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getOrderNum());
hzhfsBph.setIsSub("2");
hzhfsBph.setIsMany("2");
bphList.add(hzhfsBph);
// 起草单位高级经理审核
String jsfzrUserId = json.getString("jsfzrUserId");
BusProcessHistory qcdwgjjlshBph = new BusProcessHistory();
qcdwgjjlshBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qcdwgjjlshBph.setUserId(jsfzrUserId);
qcdwgjjlshBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
qcdwgjjlshBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qcdwgjjlshBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getOrderNum());
qcdwgjjlshBph.setIsSub("2");
qcdwgjjlshBph.setIsMany("2");
bphList.add(qcdwgjjlshBph);
// 标准法规部高级经理审核
String bzUserId = json.getString("bzUserId");
BusProcessHistory bzfgbgjjlshBph = new BusProcessHistory();
bzfgbgjjlshBph.setActiProcInstId(delegateTask.getProcessInstanceId());
bzfgbgjjlshBph.setUserId(bzUserId);
bzfgbgjjlshBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
bzfgbgjjlshBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
bzfgbgjjlshBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getOrderNum());
bzfgbgjjlshBph.setIsSub("2");
bzfgbgjjlshBph.setIsMany("2");
bphList.add(bzfgbgjjlshBph);
// 审定-起草单位中心主任
String fzrUserId = json.getString("fzrUserId");
BusProcessHistory sdBph = new BusProcessHistory();
sdBph.setActiProcInstId(delegateTask.getProcessInstanceId());
sdBph.setUserId(fzrUserId);
sdBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
sdBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
sdBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getOrderNum());
sdBph.setIsSub("2");
sdBph.setIsMany("2");
bphList.add(sdBph);
// 批准
String zhrUserId = json.getString("zhrUserId");
List<String> zhrUserIdList = Arrays.stream(zhrUserId.split(",")).filter(StringUtils::isNotBlank).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(qcUserIdList)) {
// 批准节点父节点信息
BusProcessHistory pzPBph = new BusProcessHistory();
String pzPBphId = UUID.randomUUID().toString();
pzPBph.setId(pzPBphId);
pzPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getOrderNum());
pzPBph.setIsSub("2");
pzPBph.setIsMany("1");
bphList.add(pzPBph);
for (String eachZhrUserId : zhrUserIdList) {
// 批准子节点信息
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(eachZhrUserId);
pzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getOrderNum());
pzBph.setIsSub("2");
pzBph.setIsMany("1");
pzBph.setManyPId(pzPBphId);
bphList.add(pzBph);
}
}
// 培训
String pxUserId = json.getString("pxUserId");
BusProcessHistory pxBph = new BusProcessHistory();
pxBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pxBph.setUserId(pxUserId);
pxBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY12.getValue());
pxBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pxBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY12.getOrderNum());
pxBph.setIsSub("2");
pxBph.setIsMany("2");
bphList.add(pxBph);
// 发布
String fbUserId = json.getString("fbUserId");
BusProcessHistory fbBph = new BusProcessHistory();
fbBph.setActiProcInstId(delegateTask.getProcessInstanceId());
fbBph.setUserId(fbUserId);
fbBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY13.getValue());
fbBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
fbBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY13.getOrderNum());
fbBph.setIsSub("2");
fbBph.setIsMany("2");
bphList.add(fbBph);
bphService.insertBatch(bphList);
}
}
@@ -1,25 +1,25 @@
package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessModelHisService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.tomcat.util.digester.ArrayStack;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
* 重新发起企标制修订流程后
@@ -35,7 +35,12 @@ public class BLApplicantC1After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -93,7 +98,7 @@ public class BLApplicantC1After implements TaskListener{
// throw new ActivitiException("1#2其他起草人参数不存在,请配置相关用户");
// }
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
@@ -106,18 +111,19 @@ public class BLApplicantC1After implements TaskListener{
}
// 存储当前节点意见
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setTaskId(delegateTask.getId());
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId,delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if (list.isEmpty()) {
throw new ActivitiException("流程实例不存在");
}
// 当前节点
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
busProcessNew.setTaskId(delegateTask.getName());
busBean.saveOrUpdate(busProcessNew);
if(nextUserList != null && !nextUserList.isEmpty()){
if(!nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
@@ -137,6 +143,46 @@ public class BLApplicantC1After implements TaskListener{
// 生成 模板
// busProcessModelHisService.saveBussTemplateFile(object,delegateTask.getProcessInstanceId());
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
List<BusProcessHistory> bphList = new ArrayList<>();
List<String> qcUserIdList = Arrays.asList(json.getString("qcUserId").split(","));
if (CollectionUtils.isNotEmpty(qcUserIdList)) {
// 企标编写节点父节点信息
BusProcessHistory qbbxPBph = new BusProcessHistory();
String qbbxPBphId = UUID.randomUUID().toString();
qbbxPBph.setId(qbbxPBphId);
qbbxPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getValue());
qbbxPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY_C1.getValue());
qbbxPBph.setOrderNum(orderNum + 1);
qbbxPBph.setIsSub("2");
qbbxPBph.setIsMany("1");
bphList.add(qbbxPBph);
for (String qcUserId : qcUserIdList) {
// 企标编写子节点信息
BusProcessHistory qbbxBph = new BusProcessHistory();
qbbxBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxBph.setUserId(qcUserId);
qbbxBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getValue());
qbbxBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qbbxBph.setOrderNum(orderNum + 1);
qbbxBph.setIsSub("2");
qbbxBph.setIsMany("1");
qbbxBph.setManyPId(qbbxPBphId);
bphList.add(qbbxBph);
}
delegateTask.setVariable("qcUserList",qcUserIdList);
}
bphService.insertBatch(bphList);
}
private String verifyObj(String str){
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -18,7 +21,7 @@ public class BLApplicantC1Before implements TaskListener{
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
@@ -30,10 +33,21 @@ public class BLApplicantC1Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibraryC1?prcType=buss1");
String link = "bussLibraryC1?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibraryC1&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -2,20 +2,30 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.repository.ProcessDefinition;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
/**
* 专委会副主任/起草单位中心主任审定后
@@ -23,18 +33,28 @@ import java.util.List;
public class BussLibrary10After implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
RepositoryService repositoryService = SpringContextUtil.getBean(RepositoryService.class);
// 获取当前流程的流程定义
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionId(delegateTask.getProcessDefinitionId())
.singleResult();
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
String approvalOpinion = object.get("approvalOpinion") == null ? "" : object.get("approvalOpinion").toString();
String user = object.getString("prcCreateUser");
@@ -45,7 +65,7 @@ public class BussLibrary10After implements TaskListener{
}else {
prcName = "企标制修订";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
@@ -59,12 +79,19 @@ public class BussLibrary10After implements TaskListener{
if(StringUtils.isNotBlank(approvalOpinion)){
if ("0".equalsIgnoreCase(approvalOpinion)) {
if(StringUtils.isNotBlank(object.getString("zhrUserId"))){
String zhrUserId = object.getString("zhrUserId");
if(StringUtils.isNotBlank(zhrUserId)){
List<String> zhrUserIdList = Arrays.stream(zhrUserId.split(",")).filter(StringUtils::isNotBlank).collect(Collectors.toList());
// 对旧数据做兼容,如果流程定义版本低于13则是旧数据,批准节点是单人处理,之后的版本是多人处理
if (processDefinition.getVersion() <= 13) {
delegateTask.setVariable("zhrUserId",zhrUserIdList.get(0));
} else {
delegateTask.setVariable("zhrUserId",zhrUserIdList);
}
nextUserList.addAll(zhrUserIdList);
delegateTask.setVariable("zhrUserId",object.getString("zhrUserId"));
nextUserList.add(object.getString("zhrUserId"));
BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
// BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
BussUtils.approvalFunc3(delegateTask, object, prcName, nextUserList);
delegateTask.setVariable("fzrFlag", 0);
}else {
throw new ActivitiException("1#2副主任用户参数不存在,请配置相关用户");
@@ -81,7 +108,7 @@ public class BussLibrary10After implements TaskListener{
busProcessNew.setUserId(object.getString("xdUserId"));
busProcessNew.setPrcName(prcName);
busBean.save(busProcessNew);
busProcessNew.setCommitFlag("1");
BussUtils.approvalFunc1(delegateTask, busBean, object, prcName,"1");
delegateTask.setVariable("cxdUserId",object.getString("xdUserId"));
delegateTask.setVariable("fzrFlag", 1);
@@ -92,9 +119,126 @@ public class BussLibrary10After implements TaskListener{
}else {
throw new ActivitiException("1#2 提交OR驳回参数不存在");
}
this.addBusProcessHistory(object,delegateTask, processDefinition);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask, ProcessDefinition processDefinition) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
Integer fzrFlag = (Integer) delegateTask.getVariable("fzrFlag");
if (fzrFlag == 0) {
String zhrUserId = json.getString("zhrUserId");
List<String> zhrUserIdList = Arrays.stream(zhrUserId.split(",")).filter(StringUtils::isNotBlank).collect(Collectors.toList());
// 对旧数据做兼容,如果流程定义版本低于13则是旧数据,批准节点是单人处理,之后的版本是多人处理
if (processDefinition.getVersion() <= 13) {
// 如果存在 批准 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, zhrUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 批准
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(zhrUserId);
pzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
pzBph.setOrderNum(orderNum + 1);
bphList.add(pzBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
} else {
if (CollectionUtils.isNotEmpty(zhrUserIdList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
String pzPBphId = UUID.randomUUID().toString();
for (String userId : zhrUserIdList) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,userId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(userId);
pzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getOrderNum());
pzBph.setIsSub("2");
pzBph.setIsMany("1");
pzBph.setManyPId(pzPBphId);
pzBph.setOrderNum(orderNum + 1);
bphList.add(pzBph);
}
}
if (CollectionUtils.isNotEmpty(bphList)) {
BusProcessHistory pzPBph = new BusProcessHistory();
pzPBph.setId(pzPBphId);
pzPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getOrderNum());
pzPBph.setIsSub("2");
pzPBph.setIsMany("1");
pzPBph.setOrderNum(orderNum + 1);
bphList.add(pzPBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
} else if (fzrFlag == 1) {
String cxdUserId = (String) delegateTask.getVariable("cxdUserId");
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, cxdUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 重新技术委员会评审、评审意见修改
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(cxdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
psyjxgBph.setOrderNum(orderNum + 1);
bphList.add(psyjxgBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
// 退回到了 重新技术委员会评审 标准化复审、起草单位高级经理审核、标准法规部高级经理审核、审定 节点,设置为在流程图展示空白
List<String> qczhTaskKeyList = new ArrayList<>();
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),qczhTaskKeyList,null,"0");
}
}
}
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -18,7 +21,7 @@ public class BussLibrary10Before implements TaskListener{
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
@@ -30,10 +33,21 @@ public class BussLibrary10Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary10?prcType=buss1");
String link = "bussLibrary10?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary10&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -1,21 +1,32 @@
package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.HistoryService;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricTaskInstance;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 专委会主任/总院院长或主管副院长批准后
@@ -26,15 +37,21 @@ public class BussLibrary11After implements TaskListener{
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
WebServiceOAService webServiceOAService = SpringContextUtil.getBean(WebServiceOAService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
String approvalOpinion = object.get("approvalOpinion") == null ? "" : object.get("approvalOpinion").toString();
String user = object.getString("prcCreateUser");
@@ -45,7 +62,7 @@ public class BussLibrary11After implements TaskListener{
}else {
prcName = "企标制修订";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
@@ -64,13 +81,78 @@ public class BussLibrary11After implements TaskListener{
delegateTask.setVariable("pxUserId",object.getString("pxUserId"));
nextUserList.add(object.getString("pxUserId"));
BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
// 存储当前节点意见
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId,delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if (list.isEmpty()) {
throw new ActivitiException("流程实例不存在");
}
// 当前节点
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(busProcessNew);
// 下一个节点
try {
Integer nrOfCompletedInstances = delegateTask.getVariable("nrOfCompletedInstances", Integer.class);
if (nrOfCompletedInstances == 0) {
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
} catch (NullPointerException e) {
// 对旧数据做兼容,旧流程是单人处理节点没有 nrOfCompletedInstances
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
delegateTask.setVariable("zrFlag", 0);
}else {
throw new ActivitiException("1#2主起草人用户参数不存在,请配置相关用户");
}
} else {
HistoryService historyService = SpringContextUtil.getBean(HistoryService.class);
// 改为多人处理节点后需要驳回需要删除未完成人员的待办OA
List<HistoricTaskInstance> historicTaskInstanceList = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(delegateTask.getProcessInstanceId())
.taskDefinitionKey(delegateTask.getTaskDefinitionKey())
.unfinished()
.list();
List<String> unFinishedTaskIdList = historicTaskInstanceList.stream()
.map(HistoricTaskInstance::getId)
.filter(taskId -> !Objects.equals(taskId, delegateTask.getId()))
.collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(unFinishedTaskIdList)) {
LambdaQueryWrapper<BusProcessNew> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BusProcessNew::getPId, delegateTask.getProcessInstanceId());
wrapper.in(BusProcessNew::getTaskId, unFinishedTaskIdList);
List<BusProcessNew> busProcessNewList = busBean.list(wrapper);
for (BusProcessNew busProcessNew : busProcessNewList) {
webServiceOAService.deleteOAByMandatory(busProcessNew.getId(), busProcessNew.getUserId());
}
}
if(StringUtils.isNotBlank(object.getString("xdUserId"))) {
// 驳回节点数据
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
@@ -92,9 +174,79 @@ public class BussLibrary11After implements TaskListener{
}else {
throw new ActivitiException("1#2 提交OR驳回参数不存在");
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
Integer zrFlag = (Integer) delegateTask.getVariable("zrFlag");
if (zrFlag == 0) {
String pxUserId = json.getString("pxUserId");
// 如果存在 批准 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, pxUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY12.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 培训
BusProcessHistory pxBph = new BusProcessHistory();
pxBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pxBph.setUserId(pxUserId);
pxBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY12.getValue());
pxBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pxBph.setIsSub("2");
pxBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pxBph.setOrderNum(orderNum + 1);
bphList.add(pxBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
} else if (zrFlag == 1) {
String cxdUserId = (String) delegateTask.getVariable("cxdUserId");
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, cxdUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 重新技术委员会评审、评审意见修改
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(cxdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
psyjxgBph.setOrderNum(orderNum + 1);
bphList.add(psyjxgBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
// 退回到了 重新技术委员会评审 标准化复审、起草单位高级经理审核、标准法规部高级经理审核、审定、批准 节点,设置为在流程图展示空白
List<String> qczhTaskKeyList = new ArrayList<>();
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),qczhTaskKeyList,null,"0");
}
}
}
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -18,7 +21,7 @@ public class BussLibrary11Before implements TaskListener{
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
@@ -30,10 +33,21 @@ public class BussLibrary11Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary11?prcType=buss1");
String link = "bussLibrary11?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary11&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -1,6 +1,7 @@
package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
@@ -12,6 +13,7 @@ import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
@@ -29,12 +31,17 @@ public class BussLibrary12After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
if(StringUtils.isNotBlank(object.getString("fbUserId"))){
delegateTask.setVariable("fbUserId",object.getString("fbUserId"));
@@ -52,7 +59,7 @@ public class BussLibrary12After implements TaskListener{
}else {
prcName = "企标制修订";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
@@ -65,30 +72,29 @@ public class BussLibrary12After implements TaskListener{
}
// 存储当前节点意见
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setTaskId(delegateTask.getId());
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId,delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if (list.isEmpty()) {
throw new ActivitiException("流程实例不存在");
}
// 当前节点
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
busProcessNew.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(busProcessNew);
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
@@ -5,11 +5,14 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -21,7 +24,7 @@ public class BussLibrary12Before implements TaskListener{
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
@@ -33,10 +36,21 @@ public class BussLibrary12Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary12?prcType=buss1");
String link = "bussLibrary12?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary12&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -18,6 +18,7 @@ import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
@@ -39,7 +40,12 @@ public class BussLibrary13After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -18,7 +21,7 @@ public class BussLibrary13Before implements TaskListener{
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
@@ -30,10 +33,21 @@ public class BussLibrary13Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary13?prcType=buss1");
String link = "bussLibrary13?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary13&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -2,17 +2,24 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
@@ -33,12 +40,16 @@ public class BussLibrary2After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
JSONArray fileList =delegateTask.getVariable("fileModelList", JSONArray.class);
if (fileList==null) {
@@ -69,7 +80,7 @@ public class BussLibrary2After implements TaskListener{
}else {
prcName = "企标制修订";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
@@ -82,34 +93,65 @@ public class BussLibrary2After implements TaskListener{
}
// 存储当前节点意见
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId,delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setTaskInfo(delegateTask.getName());
busProcessNew.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNew);
}
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
// busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
// busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String hzUserId = json.getString("hzUserId");
// 如果存在企标编写汇总节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,hzUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY3.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 企标编写汇总
BusProcessHistory qbbxhzBph = new BusProcessHistory();
qbbxhzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxhzBph.setUserId(hzUserId);
qbbxhzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY3.getValue());
qbbxhzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qbbxhzBph.setIsSub("2");
qbbxhzBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY_C1.getValue());
qbbxhzBph.setOrderNum(orderNum + 1);
bphList.add(qbbxhzBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -3,12 +3,16 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.Date;
import java.util.List;
/**
@@ -19,7 +23,7 @@ public class BussLibrary2Before implements TaskListener{
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
@@ -38,8 +42,17 @@ public class BussLibrary2Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary2?prcType=buss1");
String link = "bussLibrary2?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary2&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
@@ -63,5 +76,8 @@ public class BussLibrary2Before implements TaskListener{
// hisService.saveOrUpdate(modelHis);
// }
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -1,17 +1,23 @@
package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
@@ -31,12 +37,17 @@ public class BussLibrary3After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
if(StringUtils.isNotBlank(object.getString("bzhUserId"))){
delegateTask.setVariable("bzhUserId",object.getString("bzhUserId"));
@@ -59,7 +70,7 @@ public class BussLibrary3After implements TaskListener{
}else {
prcName = "企标制修订";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
@@ -70,36 +81,65 @@ public class BussLibrary3After implements TaskListener{
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
// 存储当前节点意见
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId,delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setTaskInfo(delegateTask.getName());
busProcessNew.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNew);
}
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String bzhUserId = json.getString("bzhUserId");
// 如果存在标准化初审节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,bzhUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 标准化初审
BusProcessHistory bzhcsBph = new BusProcessHistory();
bzhcsBph.setActiProcInstId(delegateTask.getProcessInstanceId());
bzhcsBph.setUserId(bzhUserId);
bzhcsBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
bzhcsBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
bzhcsBph.setIsSub("2");
bzhcsBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY3.getValue());
bzhcsBph.setOrderNum(orderNum + 1);
bphList.add(bzhcsBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -5,11 +5,14 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -21,7 +24,7 @@ public class BussLibrary3Before implements TaskListener{
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
@@ -42,8 +45,17 @@ public class BussLibrary3Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary3?prcType=buss1");
String link = "bussLibrary3?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary3&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
@@ -66,5 +78,8 @@ public class BussLibrary3Before implements TaskListener{
// modelHis.setEditFilePath(fileUrl);
// hisService.save(modelHis);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -1,25 +1,32 @@
package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
/**
* 标准化员审批后
* 初审,标准化员审批后
*/
public class BussLibrary4After implements TaskListener{
@Override
@@ -30,12 +37,17 @@ public class BussLibrary4After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
String approvalOpinion = object.get("approvalOpinion") == null ? "" : object.get("approvalOpinion").toString();
String user = object.getString("prcCreateUser");
@@ -46,7 +58,7 @@ public class BussLibrary4After implements TaskListener{
}else {
prcName = "企标制修订";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
@@ -57,6 +69,14 @@ public class BussLibrary4After implements TaskListener{
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId,delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if (list.isEmpty()) {
throw new ActivitiException("流程实例不存在");
}
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setCommitText(object.getString("commentText"));
if(StringUtils.isNotBlank(approvalOpinion)){
if ("0".equalsIgnoreCase(approvalOpinion)) {
@@ -68,7 +88,7 @@ public class BussLibrary4After implements TaskListener{
nextUserList.add(object.getString("hqUserId"));
}
BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
// BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
// 配置多实例
delegateTask.setVariable("hqUserList",nextUserList);
delegateTask.addCandidateUsers(nextUserList);
@@ -78,28 +98,131 @@ public class BussLibrary4After implements TaskListener{
}
} else {
if(StringUtils.isNotBlank(object.getString("hzUserId"))) {
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setFinishFlag("0");
busProcessNew.setUserId(object.getString("hzUserId"));
busProcessNew.setPrcName(prcName);
busBean.save(busProcessNew);
// BusProcessNew busProcessNew = new BusProcessNew();
// busProcessNew.setMsgType("clause");
// busProcessNew.setPId(delegateTask.getProcessInstanceId());
// busProcessNew.setMesg(object.toJSONString());
// busProcessNew.setFinishFlag("0");
// busProcessNew.setUserId(object.getString("hzUserId"));
// busProcessNew.setPrcName(prcName);
// busBean.save(busProcessNew);
busProcessNew.setFinishFlag("1");
BussUtils.approvalFunc1(delegateTask, busBean, object, prcName,"1");
// BussUtils.approvalFunc1(delegateTask, busBean, object, prcName,"1");
nextUserList.add(object.getString("hzUserId"));
delegateTask.setVariable("chzUserId",object.getString("hzUserId"));
delegateTask.setVariable("bzhFlag", 1);
}else {
throw new ActivitiException("1#2汇总用户参数不存在,请配置相关用户");
}
}
// 存储当前节点意见
busBean.saveOrUpdate(busProcessNew);
// 存储下一节点意见
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}else {
throw new ActivitiException("1#2 提交OR驳回参数不存在");
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
Integer bzhFlag = (Integer) delegateTask.getVariable("bzhFlag");
if (bzhFlag == 1) {
String hzUserId = json.getString("hzUserId");
// 如果存在 重新企标编写汇总 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,hzUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C3.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 重新企标编写汇总
BusProcessHistory cxqbbzhzBph = new BusProcessHistory();
cxqbbzhzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
cxqbbzhzBph.setUserId(hzUserId);
cxqbbzhzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C3.getValue());
cxqbbzhzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
cxqbbzhzBph.setIsSub("2");
cxqbbzhzBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
cxqbbzhzBph.setOrderNum(orderNum + 1);
bphList.add(cxqbbzhzBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
// 将标准化初审节点 设置为白色节点。
List<String> bzhcsTaskKeyList = new ArrayList<>();
bzhcsTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),bzhcsTaskKeyList,null,"0");
} else {
// 征求意见
List<String> hqUserIdList = Arrays.asList(json.getString("hqUserId").split(","));
if (CollectionUtils.isNotEmpty(hqUserIdList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
String zqyjPBphId = UUID.randomUUID().toString();
for (String userId : hqUserIdList) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,userId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
BusProcessHistory zqyjBph = new BusProcessHistory();
zqyjBph.setActiProcInstId(delegateTask.getProcessInstanceId());
zqyjBph.setUserId(userId);
zqyjBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
zqyjBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
zqyjBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getOrderNum());
zqyjBph.setIsSub("2");
zqyjBph.setIsMany("1");
zqyjBph.setManyPId(zqyjPBphId);
zqyjBph.setOrderNum(orderNum + 1);
bphList.add(zqyjBph);
}
}
if (CollectionUtils.isNotEmpty(bphList)) {
BusProcessHistory zqyjPBph = new BusProcessHistory();
zqyjPBph.setId(zqyjPBphId);
zqyjPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
zqyjPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
zqyjPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
zqyjPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getOrderNum());
zqyjPBph.setIsSub("2");
zqyjPBph.setIsMany("1");
zqyjPBph.setOrderNum(orderNum + 1);
bphList.add(zqyjPBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
}
}
@@ -2,23 +2,26 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
/**
* 标准化员审批前
* 初审,标准化员审批前
*/
public class BussLibrary4Before implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
@@ -30,10 +33,21 @@ public class BussLibrary4Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary4?prcType=buss1");
String link = "bussLibrary4?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary4&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -2,19 +2,17 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEvaluationHisService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.business_main.datas.entity.*;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
@@ -42,7 +40,7 @@ public class BussLibrary5After implements TaskListener{
JSONObject object = JSONObject.parseObject(datasList.get(0).getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
JSONArray ideaList =delegateTask.getVariable("ideaList", JSONArray.class);
if (ideaList==null) {
@@ -68,7 +66,7 @@ public class BussLibrary5After implements TaskListener{
}else {
prcName = "企标制修订";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
@@ -81,37 +79,78 @@ public class BussLibrary5After implements TaskListener{
}
// 存储当前节点意见
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId,delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setTaskInfo(delegateTask.getName());
busProcessNew.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNew);
}
// 存储当前节点意见
// BusProcessNew busProcessNew = new BusProcessNew();
// busProcessNew.setMsgType("clause");
// busProcessNew.setPId(delegateTask.getProcessInstanceId());
// busProcessNew.setMesg(object.toJSONString());
// busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
// busProcessNew.setTaskId(delegateTask.getId());
// busProcessNew.setCommitText(object.getString("commentText"));
// busProcessNew.setFinishFlag("0");
// busProcessNew.setTaskInfo(delegateTask.getName());
// busBean.save(busProcessNew);
// 评分存储
BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String xdUserId = json.getString("xdUserId");
// 如果存在 技术委员会评审、评审意见修改 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,xdUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 技术委员会评审、评审意见修改
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(xdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
psyjxgBph.setOrderNum(orderNum + 1);
bphList.add(psyjxgBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -3,11 +3,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -19,7 +22,7 @@ public class BussLibrary5Before implements TaskListener{
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
@@ -37,10 +40,21 @@ public class BussLibrary5Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary5?prcType=buss1");
String link = "bussLibrary5?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary5&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -1,17 +1,23 @@
package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
@@ -29,12 +35,17 @@ public class BussLibrary6After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
if(StringUtils.isNotBlank(object.getString("fggcsUserId"))){
delegateTask.setVariable("fggcsUserId",object.getString("fggcsUserId"));
@@ -52,7 +63,7 @@ public class BussLibrary6After implements TaskListener{
}else {
prcName = "企标制修订";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
@@ -65,36 +76,77 @@ public class BussLibrary6After implements TaskListener{
}
// 存储当前节点意见
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
// 评分存储
BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
// BusProcessNew busProcessNew = new BusProcessNew();
// busProcessNew.setMsgType("clause");
// busProcessNew.setPId(delegateTask.getProcessInstanceId());
// busProcessNew.setMesg(object.toJSONString());
// busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
// busProcessNew.setTaskId(delegateTask.getId());
// busProcessNew.setCommitText(object.getString("commentText"));
// busProcessNew.setFinishFlag("0");
// busProcessNew.setTaskInfo(delegateTask.getName());
// busBean.save(busProcessNew);
// 存储当前节点意见
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId,delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setTaskInfo(delegateTask.getName());
busProcessNew.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNew);
}
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
// 评分存储
BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String fggcsUserId = json.getString("fggcsUserId");
// 如果存在 技术委员会评审、评审意见修改 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,fggcsUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 标准化复审
BusProcessHistory hzhfsBph = new BusProcessHistory();
hzhfsBph.setActiProcInstId(delegateTask.getProcessInstanceId());
hzhfsBph.setUserId(fggcsUserId);
hzhfsBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
hzhfsBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
hzhfsBph.setIsSub("2");
hzhfsBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY6.getValue());
hzhfsBph.setOrderNum(orderNum + 1);
bphList.add(hzhfsBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -5,11 +5,14 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -21,7 +24,7 @@ public class BussLibrary6Before implements TaskListener{
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
@@ -43,10 +46,21 @@ public class BussLibrary6Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary5?prcType=buss1");
String link = "bussLibrary6?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary6&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -2,19 +2,17 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEvaluationHisService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.business_main.datas.entity.*;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
@@ -37,12 +35,17 @@ public class BussLibrary7After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
//截止时间 流程描述 创建人
String approvalOpinion = object.get("approvalOpinion") == null ? "" : object.get("approvalOpinion").toString();
@@ -54,7 +57,7 @@ public class BussLibrary7After implements TaskListener{
}else {
prcName = "企标制修订";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
@@ -66,24 +69,34 @@ public class BussLibrary7After implements TaskListener{
busProcessNameService.saveOrUpdate(one1);
}
// 评分存储
if(StringUtils.isBlank(object.getString("fsRejectStatus")) || object.getString("fsRejectStatus").equalsIgnoreCase("2")){
BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
}
if(StringUtils.isNotBlank(approvalOpinion)){
// 通过
if ("0".equalsIgnoreCase(approvalOpinion)) {
if(StringUtils.isNotBlank(object.getString("jsfzrUserId"))){
delegateTask.setVariable("jsfzrUserId",object.getString("jsfzrUserId"));
nextUserList.add(object.getString("jsfzrUserId"));
BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
// 评分存储
if(StringUtils.isBlank(object.getString("fsRejectStatus")) || object.getString("fsRejectStatus").equalsIgnoreCase("2")){
BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
}
// BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
// // 评分存储
// if(StringUtils.isBlank(object.getString("fsRejectStatus")) || object.getString("fsRejectStatus").equalsIgnoreCase("2")){
// BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
// }
// 存储当前节点意见
BussUtils.approvalFunc3(delegateTask, object, prcName, nextUserList);
delegateTask.setVariable("fs7Flag", 0);
}else {
throw new ActivitiException("1#2部长用户参数不存在,请配置相关用户");
}
} else {
// 驳回
if(StringUtils.isNotBlank(object.getString("xdUserId"))) {
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
@@ -107,38 +120,107 @@ public class BussLibrary7After implements TaskListener{
throw new ActivitiException("1#2 提交OR驳回参数不存在");
}
this.addBusProcessHistory(object,delegateTask);
// 存储当前节点意见
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
// BusProcessNew busProcessNew = new BusProcessNew();
// busProcessNew.setMsgType("clause");
// busProcessNew.setPId(delegateTask.getProcessInstanceId());
// busProcessNew.setMesg(object.toJSONString());
// busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
// busProcessNew.setTaskId(delegateTask.getId());
// busProcessNew.setCommitText(object.getString("commentText"));
// busProcessNew.setFinishFlag("0");
// busProcessNew.setTaskInfo(delegateTask.getName());
// busBean.save(busProcessNew);
// 存储当前节点意见
// busBean.saveOrUpdate(busProcessNew);
// 评分存储
BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
// BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
// if(nextUserList != null && !nextUserList.isEmpty()){
// for(String nextUser : nextUserList){
// BusProcessNew busProcessNewNext = new BusProcessNew();
// busProcessNewNext.setMsgType("clause");
// busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
// busProcessNewNext.setMesg(object.toJSONString());
// busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
// busProcessNewNext.setFinishFlag("0");
// busProcessNewNext.setTaskInfo(delegateTask.getName());
// busProcessNewNext.setUserId(nextUser);
// busProcessNewNext.setPrcName(prcName);
// busBean.save(busProcessNewNext);
// }
// }
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
Integer fs7Flag = (Integer) delegateTask.getVariable("fs7Flag");
if (fs7Flag == 0) {
String jsfzrUserId = json.getString("jsfzrUserId");
// 如果存在 起草单位高级经理审核 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,jsfzrUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 起草单位高级经理审核
BusProcessHistory qcdwgjjlshBph = new BusProcessHistory();
qcdwgjjlshBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qcdwgjjlshBph.setUserId(jsfzrUserId);
qcdwgjjlshBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
qcdwgjjlshBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qcdwgjjlshBph.setIsSub("2");
qcdwgjjlshBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
qcdwgjjlshBph.setOrderNum(orderNum + 1);
bphList.add(qcdwgjjlshBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}else {
String cxdUserId = (String) delegateTask.getVariable("cxdUserId");
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,cxdUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 重新技术委员会评审、评审意见修改
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(cxdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
psyjxgBph.setOrderNum(orderNum + 1);
bphList.add(psyjxgBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
// 将 标准化复审 节点 设置为白色节点。
List<String> bzhfsTaskKeyList = new ArrayList<>();
bzhfsTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),bzhfsTaskKeyList,null,"0");
}
}
}
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -18,7 +21,7 @@ public class BussLibrary7Before implements TaskListener{
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
QueryWrapper<BusProcessNew> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
@@ -31,9 +34,23 @@ public class BussLibrary7Before implements TaskListener{
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary7?prcType=buss1");
String link = "bussLibrary7?prcType=buss1";
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary7&oldAndNew=new";
one1.setLink(link);
} else {
one1.setLink(link);
}
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}

Some files were not shown because too many files have changed in this diff Show More