514 Commits
Author SHA1 Message Date
qitz 21b93a7cfe Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3
# Conflicts:
#	ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java
2023-12-13 10:14:26 +08:00
qitz 34e9faafe2 优化仲裁员驳回功能 2023-12-13 10:04:09 +08:00
wangqiong123andGitea d69b959534 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-12 19:09:28 +08:00
18792927508 60c1db6e2a 案件流程,日志修改 2023-12-12 19:08:23 +08:00
qtzandGitea d4db9785b3 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-12 18:26:54 +08:00
qitz 7ace643452 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-12-12 18:21:22 +08:00
qitz c4276aac48 优化仲裁员确认功能 2023-12-12 18:20:55 +08:00
qtzandGitea 02386824af Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-12 17:16:15 +08:00
qitz 209de376e3 优化立案审查驳回接口 2023-12-12 17:12:31 +08:00
wangqiong123andGitea 4c4dfcd9d5 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-12 16:23:53 +08:00
18792927508 a78e3e23d6 工具类,案件压缩包导入优化 2023-12-12 16:22:41 +08:00
qtzandGitea 5730bb12a7 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-12 15:04:10 +08:00
qitz 2e1ceaa393 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-12-12 15:00:57 +08:00
qitz b1f0fb8f6f 优化案件提交退还原因 2023-12-12 14:59:01 +08:00
qtzandGitea 2e1c5eae8a Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-12 11:56:05 +08:00
qitz 23d53688e4 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-12-12 11:50:11 +08:00
qitz 5558debc20 实现庭审笔录上传 2023-12-12 11:49:48 +08:00
qtzandGitea 1c9e92b60e Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-11 18:06:03 +08:00
qitz 4be7832789 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-12-11 18:01:15 +08:00
qitz 0c968937af 实现下载案件压缩包 2023-12-11 18:00:37 +08:00
qtzandGitea c8aa73fc21 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-11 10:22:28 +08:00
qitz b2d42ccfba 优化更新自定义字段 2023-12-11 10:18:20 +08:00
wangqiong123andGitea a832a8281a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-11 09:24:51 +08:00
18792927508 27fa06ab04 案件功能优化 2023-12-11 09:23:47 +08:00
wangqiong123andGitea 397950e033 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-09 20:49:16 +08:00
18792927508 aa36758066 裁决书修改 2023-12-09 20:48:16 +08:00
qtzandGitea 69b5b0d072 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-09 15:38:14 +08:00
qitz 6f80764866 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-12-09 15:35:22 +08:00
qitz a10be7303f 优化案件更新 2023-12-09 15:35:04 +08:00
qtzandGitea 65dbeb9bdc Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-09 15:18:14 +08:00
wangqiong123andGitea 4286d35243 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-09 15:18:05 +08:00
18792927508 4ea958e91d 短信签名修改 2023-12-09 15:17:00 +08:00
qitz 23f4c31338 优化更新功能 2023-12-09 15:14:38 +08:00
qitz 67b3566eb8 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-12-09 14:50:36 +08:00
qitz 965a5912c0 优化批量 2023-12-09 14:49:59 +08:00
wangqiong123andGitea f62248e93e Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-09 14:21:05 +08:00
18792927508 2b6deb09b9 压缩包上传修改 2023-12-09 14:19:53 +08:00
qtzandGitea 9604bc938a Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-09 12:03:40 +08:00
qitz 9d3b296a27 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-12-09 12:01:00 +08:00
qitz 9a1f6a107e 修改案件信息自定义字段 2023-12-09 12:00:44 +08:00
qtzandGitea db0cea67be Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-09 10:54:19 +08:00
qitz 992817300c 优化案件修改功能 2023-12-09 10:50:33 +08:00
wangqiong123andGitea 9fdd40ee4e Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-09 09:26:15 +08:00
18792927508 5d4929f36b 压缩包上传,裁决书生成,案件修改,修改后对比信息 2023-12-09 09:25:12 +08:00
18792927508 a7826fbc16 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into wq 2023-12-08 22:37:33 +08:00
qtzandGitea dc498364ae Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-08 18:07:35 +08:00
qitz 0755325701 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-12-08 18:03:04 +08:00
qitz 3eeb1a0882 1 2023-12-08 18:02:54 +08:00
qitz f989831de2 修改抓取规则保存功能 2023-12-08 17:59:09 +08:00
18792927508 078c214202 生成裁决书修改 2023-12-08 13:50:01 +08:00
wangqiong123andGitea 4bc2940f9e Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-08 11:04:16 +08:00
18792927508 923d1e0483 抓取规则修改 2023-12-08 11:02:49 +08:00
wangqiong123andGitea a87fdca103 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-07 17:41:59 +08:00
18792927508 0ec450d85c word转pdf 2023-12-07 17:41:00 +08:00
qtzandGitea c7988344d3 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-07 16:49:40 +08:00
qitz 3cc3be3ee0 优化导入压缩包功能 2023-12-07 16:46:05 +08:00
wangqiong123andGitea 3a831e31ad Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-07 15:08:44 +08:00
18792927508 a525fd6a16 案件压缩包导入 2023-12-07 15:07:51 +08:00
qtzandGitea 6d720c5757 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-07 11:40:58 +08:00
qitz 023037e2ca 保存庭审记录 2023-12-07 11:37:16 +08:00
wangqiong123andGitea b3355ff79f Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-07 09:46:15 +08:00
18792927508 feb30e9fe5 1 2023-12-07 09:45:23 +08:00
wangqiong123andGitea f9c3609b8b Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-07 09:36:32 +08:00
18792927508 79bf8423e0 案件压缩包导入修改 2023-12-07 09:29:33 +08:00
qtzandGitea 45bea53a70 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-06 17:35:04 +08:00
qitz a24b78473f 保存抓取规则功能 2023-12-06 17:30:37 +08:00
qitz f9dbd8a010 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-12-06 10:45:03 +08:00
wangqiong123andGitea 31b4f482dd Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-06 10:44:48 +08:00
18792927508 08758c78ab 抓取规则mapper 2023-12-06 10:43:41 +08:00
qitz 4a23dfbc2a Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-12-06 10:35:00 +08:00
qitz 086cfca5dc 1 2023-12-06 10:34:40 +08:00
qtzandGitea 120b30c4ea Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-05 17:49:01 +08:00
qitz df93d06ae2 实现仲裁员审核裁决书功能 2023-12-05 17:45:54 +08:00
wangqiong123andGitea a683b38e8d Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-05 15:25:00 +08:00
18792927508 33d44eed4d 仲裁员审核裁决书 2023-12-05 15:19:36 +08:00
qtzandGitea 8615b98be2 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-05 11:40:19 +08:00
wangqiong123andGitea 57b5325154 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-05 11:37:31 +08:00
qitz 1ccbc8c895 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-12-05 11:37:07 +08:00
18792927508 0be2808800 生成裁决书路径修改 2023-12-05 11:36:33 +08:00
qitz 93b3c29ac3 优化查看流程功能 2023-12-05 11:35:53 +08:00
wangqiong123andGitea ffb0a9f6da Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-05 11:06:42 +08:00
18792927508 93d9e11688 案件流程修改 2023-12-05 11:05:47 +08:00
wangqiong123andGitea 20e6986ec9 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-04 17:11:04 +08:00
18792927508 ba6237853e 生成裁决书修改 2023-12-04 17:08:39 +08:00
hejinboandGitea cc5c4ab49a Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-04 13:41:20 +08:00
hejinbo 738afdce5c 模板管理 2023-12-04 13:40:04 +08:00
wangqiong123andGitea 78b8aa6487 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-12-01 13:28:26 +08:00
18792927508 98200d775c 申请人用手机号关联 2023-12-01 13:25:58 +08:00
wangqiong123andGitea fde91ebba5 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-30 21:47:13 +08:00
18792927508 320398289d duibi 2023-11-30 21:46:33 +08:00
hejinboandGitea eb7a8fd736 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-30 21:11:56 +08:00
hejinbo 0393b11712 压缩包导入去空格 2023-11-30 21:10:36 +08:00
wangqiong123andGitea f231e09e8a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-30 20:05:00 +08:00
18792927508 434b93b61c 案件查询 2023-11-30 20:04:03 +08:00
hejinboandGitea c083e3711c Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-30 20:00:55 +08:00
hejinbo 62e5467e5f 案件修改 2023-11-30 19:59:50 +08:00
hejinboandGitea f71c07ab6a Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-30 15:28:50 +08:00
hejinbo ec87e603ee Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-30 15:27:37 +08:00
hejinbo 630b455790 小程序立案申请书展示 2023-11-30 15:27:21 +08:00
wangqiong123andGitea cee39d271a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-30 15:17:57 +08:00
18792927508 1b7f380867 转pdf 2023-11-30 15:16:59 +08:00
wangqiong123andGitea 8acb479047 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-30 15:04:54 +08:00
18792927508 de1644db2c 根据案件id查附件 2023-11-30 15:04:09 +08:00
wangqiong123andGitea 45d23fbab6 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-30 14:57:17 +08:00
gy b 0e6470fd59 案件回显 2023-11-30 14:56:27 +08:00
hejinboandGitea 002ea67fe7 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-30 14:06:04 +08:00
hejinbo e75aa0f7f1 公章管理 2023-11-30 14:04:54 +08:00
hejinboandGitea 397f74daad Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-30 12:12:22 +08:00
hejinbo 9146059eea xiughai 2023-11-30 12:08:58 +08:00
hejinbo 135b7b6964 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-30 12:08:15 +08:00
hejinbo 0f258a43f3 暂存 2023-11-30 12:05:57 +08:00
wangqiong123andGitea d53d328437 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-30 10:35:12 +08:00
gy b ba0a91e0c8 案件回显 2023-11-30 10:34:36 +08:00
wangqiong123andGitea 1dcdf68814 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-29 22:49:13 +08:00
gy b ce72dae1ad 案件对比 2023-11-29 22:48:51 +08:00
wangqiong123andGitea 07a93038a5 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-29 22:42:01 +08:00
gy b 7f26242ea8 对比信息 2023-11-29 22:41:27 +08:00
wangqiong123andGitea 8816a64040 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-29 21:47:03 +08:00
gy b 0db3c4814d 案件查询 2023-11-29 21:45:43 +08:00
hejinboandGitea ba86324276 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-29 21:42:08 +08:00
hejinbo 1a0de0e483 修改模板更改参数校验 2023-11-29 21:41:00 +08:00
hejinboandGitea 1ca8a32d10 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-29 21:17:51 +08:00
hejinbo 07d80398ae 语音转录 2023-11-29 21:16:38 +08:00
hejinboandGitea 04db4a633b Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-29 16:26:10 +08:00
hejinbo 7c665da605 修改 2023-11-29 16:25:26 +08:00
hejinboandGitea 0996ce4008 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-29 16:05:44 +08:00
hejinbo 7bcb28cdac Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-29 16:04:19 +08:00
hejinbo cbc1a23715 修改 2023-11-29 15:59:25 +08:00
wangqiong123andGitea 8a48dbbab0 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-29 13:02:37 +08:00
18792927508 59497d26f7 1 2023-11-29 13:01:30 +08:00
wangqiong123andGitea 9962fef53a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-29 11:51:44 +08:00
18792927508 609a3725d6 案件查询 2023-11-29 11:51:01 +08:00
wangqiong123andGitea ffa7ace73b Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-28 19:52:46 +08:00
18792927508 cc7cf6d2c0 bug修复 2023-11-28 19:51:27 +08:00
wangqiong123andGitea 532baf1682 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-28 16:33:57 +08:00
18792927508 9f9da3a0dc html转pdf 2023-11-28 16:33:13 +08:00
hejinboandGitea 9c6a5fc390 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-28 15:39:19 +08:00
hejinbo 0b8c566f1d Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-28 15:35:40 +08:00
hejinbo 9807b13101 暂存 2023-11-28 15:34:58 +08:00
wangqiong123andGitea 5ca8535f02 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-28 14:03:29 +08:00
18792927508 fa02011bd7 daibana 2023-11-28 14:02:49 +08:00
wangqiong123andGitea 45336e3a96 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-28 11:35:26 +08:00
18792927508 6bcb7ac3e8 待办案件修改 2023-11-28 11:34:32 +08:00
wangqiong123andGitea 6d79065b92 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-28 10:37:39 +08:00
18792927508 6b73802bf7 案件修改 2023-11-28 10:37:17 +08:00
wangqiong123andGitea c46f81c628 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-27 17:59:54 +08:00
18792927508 69fbcd4b4b 案件修改 2023-11-27 17:59:24 +08:00
hejinboandGitea 1ddaf829fc Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-27 17:32:03 +08:00
hejinbo 12d94a38ca Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-27 17:28:57 +08:00
hejinbo 6a0009a3ad 暂存 2023-11-27 17:28:37 +08:00
wangqiong123andGitea f4e47e3348 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-25 18:15:59 +08:00
18792927508 dbefa0b24e 多线程工具类,websocket 2023-11-25 18:15:40 +08:00
hejinboandGitea aef4ae747e Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-25 18:08:23 +08:00
hejinbo 1a1f87c998 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb
# Conflicts:
#	ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java
2023-11-25 18:06:05 +08:00
hejinbo 17b35f7095 暂存 2023-11-25 17:56:52 +08:00
wangqiong123andGitea 2eb70a7808 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-25 11:04:18 +08:00
18792927508 b34aa2092e 案件质证加反仲裁原因 2023-11-25 11:03:51 +08:00
wangqiong123andGitea f9d77c264a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-24 19:23:06 +08:00
18792927508 c39cd5babd 案件修改 2023-11-24 19:22:32 +08:00
hejinbo e3cd2495cf 压缩包导入 2023-11-24 18:57:35 +08:00
wangqiong123andGitea 05121a5569 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-24 14:34:46 +08:00
18792927508 080e77a79d 案件修改 2023-11-24 14:34:22 +08:00
wangqiong123andGitea 3c424b60a4 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-23 22:51:57 +08:00
18792927508 c7988cbc00 案件对比 2023-11-23 22:51:29 +08:00
wangqiong123andGitea 183b0ecd2c Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-23 20:40:02 +08:00
18792927508 0cef2791d6 案件记录附件表 2023-11-23 20:39:35 +08:00
hejinboandGitea cb8df46151 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-23 20:28:09 +08:00
hejinbo 3a393be18d 批量缴费确认 2023-11-23 20:27:27 +08:00
hejinboandGitea 4d93997f53 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-23 20:17:32 +08:00
hejinbo 20d8d2e045 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-23 20:16:25 +08:00
hejinbo 74305b5728 xiufu 2023-11-23 20:15:55 +08:00
wangqiong123andGitea d52cb55443 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-23 18:47:34 +08:00
18792927508 217dda4225 会议 2023-11-23 18:47:16 +08:00
hejinboandGitea d282515d64 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-23 18:46:10 +08:00
hejinbo 80f6e726f8 倒序 2023-11-23 18:41:59 +08:00
hejinboandGitea 7029decfe8 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-23 17:53:25 +08:00
hejinbo 6798d64993 修改xml 2023-11-23 17:52:49 +08:00
hejinboandGitea de7fe6fee0 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-23 17:38:23 +08:00
hejinbo 365409ab6d Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-23 17:36:11 +08:00
hejinbo 607da65dc4 11.23开发 2023-11-23 17:35:59 +08:00
wangqiong123andGitea 5621318bae Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-23 10:39:51 +08:00
18792927508 80cabfbf5e 立案详情修改 2023-11-23 10:30:29 +08:00
wangqiong123andGitea b4797984dd Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-23 09:02:47 +08:00
18792927508 213e27e4e7 联调修改 2023-11-23 09:02:20 +08:00
hejinboandGitea d6bb72d5eb Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-22 17:16:38 +08:00
hejinbo 9ee2e83c7a Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-22 17:15:20 +08:00
hejinbo 940244f829 11.22开发 2023-11-22 17:15:00 +08:00
wangqiong123andGitea 7182106bab Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-22 17:14:53 +08:00
18792927508 f5817926ca 修改 2023-11-22 17:14:31 +08:00
wangqiong123andGitea c9f194f8b8 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-22 13:59:23 +08:00
18792927508 11aab5bc31 修改申请 2023-11-22 13:58:34 +08:00
hejinboandGitea f85edb62f4 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-22 11:52:52 +08:00
hejinbo 80523e71d1 机构、模板管理优化接口 2023-11-22 11:51:51 +08:00
hejinboandGitea 765c444a16 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-21 14:58:49 +08:00
hejinbo 06b0822a15 111 2023-11-21 14:54:36 +08:00
hejinbo 0b94672e58 批量缴费接口开发 2023-11-21 14:53:07 +08:00
hejinboandGitea b979d8a4eb Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-20 14:39:41 +08:00
hejinbo 2438e89252 模板管理修改接口 2023-11-20 14:39:01 +08:00
hejinboandGitea 93899d881c Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-20 11:03:27 +08:00
hejinbo 36e7342d85 模板管理查询修改 2023-11-20 11:02:38 +08:00
hejinboandGitea b3a2a2af3e Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-20 10:46:29 +08:00
hejinbo 440e895c51 模板管理查询修改 2023-11-20 10:44:41 +08:00
hejinbo 004c736aa1 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-20 10:40:44 +08:00
hejinboandGitea a99e281f8a Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-17 17:59:25 +08:00
hejinbo 09d814566f Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-17 17:50:24 +08:00
hejinbo 35a9faeb6a 模板管理开发 2023-11-17 17:49:53 +08:00
hejinboandGitea e92aabb0e4 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-17 14:27:35 +08:00
hejinbo 736b189473 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-17 14:25:53 +08:00
hejinbo 2557d57508 zancun 2023-11-17 14:25:03 +08:00
wangqiong123andGitea 63de4daf2a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-17 10:39:33 +08:00
18792927508 f53f519d84 案件模板下载 2023-11-17 10:39:01 +08:00
hejinboandGitea 8bb2a6f327 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-16 19:33:17 +08:00
hejinbo 7fe72980ac Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-16 19:23:10 +08:00
hejinbo c644fb3142 修复公章管理 2023-11-16 19:23:01 +08:00
wangqiong123andGitea 25f0df5899 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-16 16:00:00 +08:00
18792927508 8906d10451 代理人角色查询 2023-11-16 15:59:40 +08:00
hejinboandGitea e18e47f31f Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-16 14:35:45 +08:00
wangqiong123andGitea 43d6c55579 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-16 14:34:05 +08:00
18792927508 bbb2776610 邮箱相关修改 2023-11-16 14:33:42 +08:00
hejinbo f5aa2d9d06 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-16 14:30:00 +08:00
hejinbo 0d197b2aa9 genggai 2023-11-16 14:21:43 +08:00
wangqiong123andGitea e06c159759 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-16 12:09:59 +08:00
18792927508 5287c031bc 邮箱完善 2023-11-16 12:09:36 +08:00
hejinboandGitea d8c09d6dff Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-16 10:55:41 +08:00
hejinbo 091d9e4af9 pull dev 2023-11-16 10:54:52 +08:00
hejinbo a4e8347835 zancun 2023-11-16 10:42:19 +08:00
hejinbo 8b0eae8dca 机构管理.公章管理优化 2023-11-15 18:27:09 +08:00
wangqiong123andGitea 1a1d64c827 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-15 16:55:09 +08:00
18792927508 114a963447 视频录制修改 2023-11-15 16:54:51 +08:00
wangqiong123andGitea 431b05c72b Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-15 16:13:14 +08:00
18792927508 eb09ba6ae9 视频录制,停止录制 2023-11-15 16:12:48 +08:00
hejinboandGitea cd22f387f4 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-15 09:07:34 +08:00
hejinbo 044cffeb7f Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-15 09:06:51 +08:00
hejinbo 4088cf7357 公章管理测试 2023-11-15 09:01:20 +08:00
hejinboandGitea 02a93bbd3f Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-14 14:49:10 +08:00
hejinbo dac20a4a04 11.14批量生成裁决书 2023-11-14 14:42:10 +08:00
wangqiong123andGitea 0a7bf5b54d Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-14 11:36:03 +08:00
18792927508 a6731e8595 会议相关,查询案件修改 2023-11-14 11:35:26 +08:00
hejinboandGitea 8a7dfec1d6 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-13 16:18:36 +08:00
hejinbo de3fc04a05 11.13开发 2023-11-13 16:16:44 +08:00
hejinbo b3361914bd Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-13 13:56:20 +08:00
hejinbo 9a9cacbdd5 11.13 查询和流程节点修改 2023-11-13 13:55:44 +08:00
hejinbo 8123e78e93 11.11中午添加白工校验参数代码 2023-11-11 12:12:23 +08:00
hejinboandGitea 1a51edfa8a Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-10 23:47:01 +08:00
hejinbo dd856a7619 10号晚测完系统后代码 2023-11-10 23:45:56 +08:00
bgyandGitea f6b4d5aceb Merge branch 'bgy' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-10 22:53:19 +08:00
gy b 9282d639b9 修复庭审笔录生成功能 2023-11-10 22:50:50 +08:00
hejinboandGitea ad7a8125db Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-10 18:21:41 +08:00
hejinbo ffc559543c 合并冲突解决 2023-11-10 18:20:04 +08:00
hejinbo 4cf4fa6f5c 11.10 开发 2023-11-10 18:08:30 +08:00
wangqiong123andGitea 5aaeb7dced Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-10 15:10:00 +08:00
18792927508 9bb23badc0 会议相关 2023-11-10 15:09:25 +08:00
wangqiong123andGitea e671ed8e2a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-09 18:17:28 +08:00
18792927508 3316e61824 部分功能实现 2023-11-09 18:16:06 +08:00
hejinbo 7cfc39190a Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-09 17:35:22 +08:00
hejinbo 94d3f1cb1e 11.9开发 2023-11-09 17:34:12 +08:00
wangqiong123andGitea a9ddcaecf9 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-09 17:24:39 +08:00
18792927508 1242497d6f 销毁房间等接口 2023-11-09 17:24:07 +08:00
wangqiong123andGitea 1f41b4903b Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-09 09:25:49 +08:00
18792927508 4e729103d6 登录返回值增加用户信息 2023-11-09 09:25:06 +08:00
hejinbo ae2c8fe59f Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-08 17:48:05 +08:00
hejinbo 1cdf3abc30 11.8kaifa 2023-11-08 17:47:59 +08:00
wangqiong123andGitea f04905b721 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-08 17:29:14 +08:00
18792927508 6662a05a6c 预约会议 2023-11-08 17:28:37 +08:00
hejinbo 8c890c415a Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-08 10:38:17 +08:00
hejinbo b18075b0c4 优化裁决书 2023-11-08 10:37:48 +08:00
qtzandGitea b090ddd41b Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-07 20:47:22 +08:00
qitz 8947d5fd10 修改用印功能 2023-11-07 20:43:48 +08:00
qtzandGitea 331d98f33a Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-06 15:12:56 +08:00
qitz 9402f26857 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-11-06 15:08:36 +08:00
qitz 8ca9b43b3b 修改新建用户时的校验 2023-11-06 15:08:07 +08:00
wangqiong123andGitea 8ebf8ab2ea Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-06 14:51:09 +08:00
18792927508 4c5713300c bug修复 2023-11-06 14:50:46 +08:00
hejinboandGitea f15e73438e Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-06 11:18:34 +08:00
hejinbo f0e9261c22 邮件发送记录增加发送状态 2023-11-06 11:16:54 +08:00
qtzandGitea d3701b7299 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-04 19:47:29 +08:00
qitz 4eb62becc5 优化下载裁决书功能 2023-11-04 19:42:34 +08:00
qitz 2bbc030c40 优化下载功能 2023-11-04 18:32:21 +08:00
hejinboandGitea 37717366ab Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-03 20:06:27 +08:00
hejinbo e85fb44ef2 11.3发版,注释秦工下载文件代码 2023-11-03 20:05:12 +08:00
hejinbo 15426c5b7b Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-03 18:33:20 +08:00
wangqiong123andGitea e6edadb07c Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-03 18:27:04 +08:00
18792927508 32480b58b3 定时任务 2023-11-03 18:26:44 +08:00
qtzandGitea e410edbe1e Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-03 17:05:12 +08:00
qitz 45ab470c52 修改裁决书下载功能 2023-11-03 17:02:23 +08:00
hejinbo 84621de905 更改短信新增发送记录 2023-11-03 16:51:26 +08:00
qitz 4ab85a5d23 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-11-03 16:39:06 +08:00
qitz 3473d8721e 修改下载裁决书功能 2023-11-03 16:38:39 +08:00
hejinboandGitea d91294a3fe Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-03 16:29:54 +08:00
hejinbo a0d2ce44d0 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-03 16:28:30 +08:00
hejinbo 43ba159489 添加短信发送状态 2023-11-03 16:28:01 +08:00
wangqiong123andGitea f0f8a2ea00 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-03 16:03:37 +08:00
18792927508 533ce8d465 bug修改 2023-11-03 16:03:08 +08:00
hejinboandGitea 2092e5d64d Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-03 11:48:38 +08:00
hejinbo 5b7b839395 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-03 11:47:46 +08:00
hejinbo 876d0807c7 裁决书插入证据图片 2023-11-03 11:47:39 +08:00
wangqiong123andGitea 664aa6b3f0 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-03 10:58:52 +08:00
18792927508 07a3dea9cc Revert "Revert "导入时加案件名称""
This reverts commit 9c8bb4b00d.
2023-11-03 10:57:15 +08:00
18792927508 9c8bb4b00d Revert "导入时加案件名称"
This reverts commit b2c3e64333.
2023-11-03 10:57:03 +08:00
18792927508 b2c3e64333 导入时加案件名称 2023-11-03 10:50:51 +08:00
qtzandGitea aea374e9e8 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-03 10:41:42 +08:00
qitz 7de2bdddf7 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-11-03 10:39:14 +08:00
qitz 6b1ee10b33 优化发邮件功能 2023-11-03 10:38:42 +08:00
qtzandGitea 2002ba071b Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-02 17:59:54 +08:00
qitz 121ea7c7ae Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-11-02 17:57:10 +08:00
qitz aae315a059 修改公章管理功能 2023-11-02 17:56:46 +08:00
hejinboandGitea d41b82a47f Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-02 17:50:06 +08:00
hejinbo 5120c7c2d2 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-02 17:49:26 +08:00
hejinbo 9fdbc8712a 改bug 2023-11-02 17:49:20 +08:00
wangqiong123andGitea ed7c4c4e2a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-02 17:41:30 +08:00
18792927508 7a47907ac7 bug修改 2023-11-02 17:40:37 +08:00
wangqiong123andGitea 7649cf9326 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-02 16:11:19 +08:00
18792927508 85e9240eee 缴费详情报错修改 2023-11-02 16:11:00 +08:00
wangqiong123andGitea 5373f1fb42 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-02 15:36:30 +08:00
18792927508 eba2773a9d b 2023-11-02 15:34:32 +08:00
wangqiong123andGitea 178ff2a675 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-02 14:49:41 +08:00
18792927508 d1d1b70d9b 修改开庭时间时加短信通知 2023-11-02 14:49:18 +08:00
qtzandGitea fdbfcafb81 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-02 13:50:52 +08:00
qitz 53e8ea4137 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-11-02 13:48:38 +08:00
qitz 69da111d75 修改用印位置 2023-11-02 13:48:12 +08:00
wangqiong123andGitea 2c20dec85e Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-02 11:21:29 +08:00
18792927508 2db715840f bug修改 2023-11-02 11:21:12 +08:00
qtzandGitea 55a78b3658 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-02 11:13:05 +08:00
qitz 51b6f6e782 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-11-02 11:09:32 +08:00
qitz a7073733a6 修改签名用印功能 2023-11-02 11:08:45 +08:00
hejinboandGitea 4391566b55 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-01 18:06:27 +08:00
hejinbo f4f7153278 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-01 18:05:01 +08:00
hejinbo 790419b95d 改bug 2023-11-01 18:04:48 +08:00
wangqiong123andGitea 7c40d648b6 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-01 16:35:49 +08:00
18792927508 674c5ca914 发送房间号短信 2023-11-01 16:35:23 +08:00
wangqiong123andGitea 96113abc00 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-01 14:29:35 +08:00
18792927508 b959e3b909 导入修改 2023-11-01 14:29:16 +08:00
qtzandGitea 05d3a1da2e Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-01 14:17:58 +08:00
qitz 74a09ac92c Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-11-01 14:15:37 +08:00
qitz 82691055e6 修改更新立案申请状态 2023-11-01 14:15:21 +08:00
qtzandGitea b5fb2f1243 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-01 14:02:48 +08:00
qitz ea94880fff Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-11-01 14:00:13 +08:00
qitz 6a49e0199f 修改部门功能 2023-11-01 13:59:47 +08:00
hejinboandGitea 428d69383a Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-01 11:38:39 +08:00
hejinbo 314a687943 优化 2023-11-01 11:37:57 +08:00
wangqiong123andGitea 4052fdf03a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-01 11:07:10 +08:00
18792927508 a3a7d39da3 导入新增日志 2023-11-01 11:06:44 +08:00
hejinboandGitea 341be38f87 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-11-01 09:23:00 +08:00
hejinbo 8e82f8eaa2 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-11-01 09:19:10 +08:00
hejinbo 106ccce871 书面审理接口修改 2023-11-01 09:18:40 +08:00
hejinbo 2238224e83 10.31开发 2023-10-31 19:15:46 +08:00
wangqiong123andGitea 32d15e0d48 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-31 16:03:11 +08:00
18792927508 daf7621503 法律顾问查询 2023-10-31 16:01:54 +08:00
wangqiong123andGitea 5c13015bde Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-31 15:29:13 +08:00
18792927508 7b6c459070 修改案件证据 2023-10-31 15:28:32 +08:00
wangqiong123andGitea a21acab67d Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-31 15:19:39 +08:00
18792927508 5851ec7b70 1 2023-10-31 15:18:57 +08:00
qtzandGitea 9dab3261d6 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-31 14:54:36 +08:00
qitz 7c1f59d651 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-31 14:51:32 +08:00
qitz cc35c03cee 优化修改开庭时间 2023-10-31 14:51:08 +08:00
qtzandGitea 8089efb9b7 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-31 13:31:05 +08:00
qitz 0c8910512a Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-31 13:27:25 +08:00
qitz c980aac78c 修改查询进度 2023-10-31 13:26:55 +08:00
wangqiong123andGitea 580901e91c Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-31 09:11:22 +08:00
18792927508 1467549b05 视频代码 2023-10-31 09:10:55 +08:00
qtzandGitea d453471fca Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-30 20:10:40 +08:00
qitz 3a7687b31c Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-30 20:07:00 +08:00
qitz 0cda870fbd 实现机构认证功能 2023-10-30 20:06:38 +08:00
wangqiong123andGitea 5d91ed144f Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-30 16:00:04 +08:00
18792927508 1110f5edcd bug修改 2023-10-30 15:56:34 +08:00
hejinboandGitea d31d363c44 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-30 15:55:07 +08:00
hejinbo ac68c446fc 解决bug 2023-10-30 15:53:58 +08:00
hanchaoboandGitea 8d1190ce28 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-28 12:01:58 +08:00
18792927508 d993b57a09 文件录制 2023-10-28 11:50:32 +08:00
hejinboandGitea 6865b437a5 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-27 16:32:50 +08:00
18792927508 2515d5dbfd 视频录制 2023-10-27 16:24:42 +08:00
qtzandGitea 99b7649364 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-27 10:01:26 +08:00
qitz 9e16fc1b1a Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-27 09:58:13 +08:00
qitz 8c950a2fd1 修改发邮件功能 2023-10-27 09:57:41 +08:00
hejinboandGitea 0d96ba00b8 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-26 16:17:47 +08:00
hejinbo 1e7019cba9 解决bug 2023-10-26 16:15:56 +08:00
hejinboandGitea 84a19396bf Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-26 15:42:01 +08:00
hejinbo ce64d7f203 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-10-26 15:38:20 +08:00
hejinbo 2ae2155808 10.26开发 2023-10-26 15:38:16 +08:00
qtzandGitea 1bed0a2259 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-26 15:08:24 +08:00
qitz b5c2bb391c 实现记录发送邮件功能 2023-10-26 15:04:27 +08:00
wangqiong123andGitea 1090aa0dbd Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-25 17:08:39 +08:00
18792927508 d3c1778bc3 导入时被申请人出生年月日校验 2023-10-25 17:07:48 +08:00
hejinboandGitea c0c35306ef Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-25 17:07:07 +08:00
hejinbo 524fdd2675 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-10-25 16:57:01 +08:00
hejinbo ec20f9d7d5 10.25开发 2023-10-25 16:56:37 +08:00
qtzandGitea 833a24354e Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-25 16:50:46 +08:00
qitz e8c3f5a6d6 修改日志查询功能 2023-10-25 16:48:15 +08:00
wangqiong123andGitea 56831390b1 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-25 14:42:14 +08:00
18792927508 353b78d5cf 部门代码修改 2023-10-25 14:41:30 +08:00
qtzandGitea da39527ffb Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-25 14:21:45 +08:00
qitz c5c7b7ba9f Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-25 14:18:18 +08:00
qitz 49197586a4 优化导入压缩包功能 2023-10-25 14:17:57 +08:00
wangqiong123andGitea d739a44862 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-25 11:02:03 +08:00
18792927508 be624b638d 部分Bug修改 2023-10-25 11:01:37 +08:00
hejinboandGitea 729cb9120d Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-24 17:31:02 +08:00
hejinbo e0fe19ebcb 更新代码 2023-10-24 17:30:08 +08:00
hejinbo f682811fdb Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-10-24 17:24:19 +08:00
hejinbo 16cbd67b01 获取证据目录列表 2023-10-24 17:23:58 +08:00
wangqiong123andGitea 6285269078 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-24 16:54:48 +08:00
18792927508 6f5e8e23aa 被申请人查看案件 2023-10-24 16:54:24 +08:00
qtzandGitea fff2eaabaa Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-24 16:38:41 +08:00
qitz d1f7a12fca 实现解析压缩包 2023-10-24 16:34:51 +08:00
qitz f7738d4515 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-24 14:12:01 +08:00
qitz f776276eb5 优化解压缩功能 2023-10-24 14:11:42 +08:00
hejinboandGitea c6e667bb0f Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-24 10:37:19 +08:00
hejinbo befa62e69f 增加证据目录字段 2023-10-24 10:36:41 +08:00
qitz 5012cedd7b Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-24 10:26:09 +08:00
qitz 437b672446 实现解析压缩包功能 2023-10-24 10:25:37 +08:00
wangqiong123andGitea 1199f2fef0 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-24 10:12:29 +08:00
18792927508 0482a516ac 1 2023-10-24 10:11:58 +08:00
wangqiong123andGitea cd252fddd9 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-24 10:03:51 +08:00
18792927508 f1a1ba8bab 管理员角标数量修改 2023-10-24 10:03:09 +08:00
hejinboandGitea 7a37d11f4f Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-24 09:57:01 +08:00
hejinbo 2261a549f8 返回生成的自增id 2023-10-24 09:56:10 +08:00
hejinboandGitea 0c6e6b1231 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-23 17:57:43 +08:00
hejinbo beb9e212f4 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-10-23 17:56:26 +08:00
hejinbo ca768ad0d6 10.23开发 2023-10-23 17:54:51 +08:00
wangqiong123andGitea 5d2a97cac6 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-23 16:09:21 +08:00
18792927508 723440a37e 查询修改开庭时间 2023-10-23 16:08:51 +08:00
wangqiong123andGitea 8fd1eef2d1 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-23 15:10:44 +08:00
18792927508 d4871f4a2f 审核仲裁方式改为单个操作 2023-10-23 15:10:21 +08:00
wangqiong123andGitea 6d9074feb5 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-21 20:21:25 +08:00
18792927508 91da9b96b8 案件批量功能
导入优化
2023-10-21 20:20:42 +08:00
wangqiong123andGitea d3da2fabe8 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-20 17:13:36 +08:00
18792927508 39bce7bd62 1 2023-10-20 17:13:12 +08:00
wangqiong123andGitea 65c641403c Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-20 16:27:10 +08:00
18792927508 190273ba21 案件批量操作修改 2023-10-20 16:26:31 +08:00
wangqiong123andGitea 9e46b3068f Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-20 15:45:45 +08:00
18792927508 d660edc670 案件批量操作 2023-10-20 15:43:44 +08:00
wangqiong123andGitea 32fb164ef9 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-20 14:48:22 +08:00
18792927508 3d36f05cf9 锁定,解锁案件 2023-10-20 14:47:58 +08:00
qtzandGitea c2c4d71d37 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-20 14:15:29 +08:00
qitz e30c10941d Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-20 14:13:33 +08:00
qitz 05e70343a8 实现修改开庭时间接口 2023-10-20 14:13:11 +08:00
qtzandGitea 8ba2c50a6d Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-19 15:22:13 +08:00
qitz 9fe0b621c2 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-19 15:19:13 +08:00
qitz e54f4f0b70 实现案件进度查询 2023-10-19 15:18:46 +08:00
wangqiong123andGitea 73797bb610 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-19 15:15:47 +08:00
18792927508 2d658af62e 日志修改 2023-10-19 15:15:20 +08:00
wangqiong123andGitea e1d866292c Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-19 14:06:22 +08:00
18792927508 3cc72198d9 导入时提示修改,删除附件接口 2023-10-19 14:05:15 +08:00
wangqiong123andGitea 29cc4e7af1 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-19 10:47:54 +08:00
18792927508 3f17c3a7ee 批量上传案件证据 2023-10-19 10:47:35 +08:00
wangqiong123andGitea 728d6267df Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-19 09:52:47 +08:00
18792927508 699a69f1e9 确认缴费详情返回缴费凭证 2023-10-19 09:52:26 +08:00
wangqiong123andGitea b7ba367b70 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-18 19:28:00 +08:00
18792927508 54ee01cb77 角色查询案件 2023-10-18 19:27:31 +08:00
wangqiong123andGitea e8a02fbe2f Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-18 18:23:25 +08:00
18792927508 ff637782cb 角色案件查询 2023-10-18 18:22:44 +08:00
18792927508 ac27737aa5 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into wq 2023-10-18 18:20:46 +08:00
18792927508 7980d2880d 代码冲突解决 2023-10-18 18:19:14 +08:00
wangqiong123andGitea 0e8580143b Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-18 18:14:27 +08:00
18792927508 1c6544fea7 合并 2023-10-18 18:11:00 +08:00
qtzandGitea 23e29a282e Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-18 18:06:42 +08:00
18792927508 10f7fffe10 合并 2023-10-18 18:04:31 +08:00
qitz 50e9b5fb9d 实现重新生成裁决书 2023-10-18 18:03:27 +08:00
qitz 4a2dc3a2ec Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-18 14:32:25 +08:00
qitz 732d426d72 修改生成裁决书功能 2023-10-18 14:32:03 +08:00
hejinboandGitea 61f24aeefc Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-18 13:51:57 +08:00
hejinbo 2d3b08d027 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb
# Conflicts:
#	ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseAffiliate.java
2023-10-18 13:50:38 +08:00
qtzandGitea e39b2ce087 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-18 10:47:31 +08:00
qitz 3c5d45f4cf 优化生成裁决书接口 2023-10-18 10:45:08 +08:00
hejinbo 953410c5df 暂存 2023-10-18 10:22:10 +08:00
18792927508 ad4f1aecb2 角色案件查询 2023-10-18 10:19:49 +08:00
hejinbo 163b99c7b1 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-10-18 09:54:43 +08:00
qitz 6d748b8920 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-17 22:22:42 +08:00
qitz 3530aacf64 优化生成裁决书功能 2023-10-17 22:21:38 +08:00
qitz 5b46ee97b1 优化生成裁决书功能 2023-10-17 22:20:38 +08:00
wangqiong123andGitea 96a0983441 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-17 21:08:31 +08:00
18792927508 305529fefc 短信验证码 2023-10-17 21:07:53 +08:00
qtzandGitea 5d2fdedfcf Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-17 18:58:51 +08:00
qitz 1cd7aa9ea4 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-17 18:56:48 +08:00
qitz 1a8403423e 修改生成庭审笔录功能 2023-10-17 18:56:35 +08:00
hejinbo eff4c740aa 10.17开发 2023-10-17 18:27:21 +08:00
wangqiong123andGitea b31a7c93da Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-17 17:13:16 +08:00
18792927508 7f5ea8ad2c 发送短信修改 2023-10-17 17:12:54 +08:00
hejinboandGitea ba0caceb04 Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-17 16:52:56 +08:00
hejinbo fe536eb7b5 优化 2023-10-17 16:52:09 +08:00
hejinboandGitea a3c3c6608f Merge branch 'hjb' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-17 16:08:54 +08:00
qtzandGitea 48e502b1a1 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-17 16:05:40 +08:00
qitz 5612aa2f84 1 2023-10-17 16:00:02 +08:00
hejinbo d026e0f7ea Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-10-17 15:59:11 +08:00
hejinbo 41387c58d4 暂存 2023-10-17 15:59:04 +08:00
qitz 6ace1d3102 优化立案申请功能 2023-10-17 15:30:21 +08:00
wangqiong123andGitea 89c428ee4b Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-17 15:04:37 +08:00
18792927508 6dd8762dc1 查询 2023-10-17 15:03:48 +08:00
18792927508 bc1579ef95 查询修改 2023-10-17 14:29:06 +08:00
wangqiong123andGitea a262b3cc4b Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-17 13:50:39 +08:00
18792927508 371284d360 查询 2023-10-17 13:50:15 +08:00
wangqiong123andGitea 4ee0dda38c Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-17 12:20:20 +08:00
18792927508 b5555698e8 1 2023-10-17 12:19:47 +08:00
wangqiong123andGitea b71228a24a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-17 11:47:47 +08:00
18792927508 b54af26e42 待办数量查询 2023-10-17 11:47:11 +08:00
hejinbo 2104c70e25 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into hjb 2023-10-17 09:27:37 +08:00
wangqiong123andGitea 7778d2b721 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-16 20:44:52 +08:00
18792927508 9cd49c8109 根据角色查询案件 2023-10-16 20:44:30 +08:00
wangqiong123andGitea 01a08d670a Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-16 18:48:13 +08:00
18792927508 c8e5e745ce 新增修改案件申请代理人关系修改 2023-10-16 18:47:54 +08:00
wangqiong123andGitea e56942ee54 Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-16 18:32:23 +08:00
18792927508 d7d9bb51b2 导入案件申请代理人修改 2023-10-16 18:31:56 +08:00
hejinbo 06e008e306 暂存 2023-10-16 17:20:44 +08:00
18792927508 2e91e53da7 小程序认证登录 2023-10-16 17:00:20 +08:00
18792927508 c80c801239 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into wq 2023-10-16 16:56:21 +08:00
qtzandGitea d4b560313c Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-16 15:40:05 +08:00
qitz 8a9eb6198d Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-16 15:37:38 +08:00
qitz cf5852e27b 优化立案申请类 2023-10-16 15:37:22 +08:00
qtzandGitea 7b940dc7b8 Merge branch 'qtz3' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-16 15:18:22 +08:00
qitz 0b280496b5 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into qtz3 2023-10-16 15:12:12 +08:00
qitz e9f7ed8480 修改立案申请功能 2023-10-16 15:11:33 +08:00
18792927508 588bf5678b Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Backend into wq 2023-10-15 23:09:41 +08:00
bgyandGitea 2fd71bfd6a Merge branch 'bgy' of SH-Arbitrate/Arbitrate-Backend into dev 2023-10-15 23:06:23 +08:00
gy b 5fa3e4b735 优化邮件发送功能 2023-10-15 23:04:41 +08:00
18792927508 94294ffd71 缴费详情 2023-10-15 23:01:57 +08:00
175 changed files with 17126 additions and 2159 deletions
+4
View File
@@ -194,6 +194,10 @@
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<excludes>
<exclude>ruoyi-system/**</exclude>
<exclude>ruoyi-common/**</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
@@ -3,6 +3,7 @@ package com.ruoyi.web.controller.system;
import java.util.List;
import java.util.Set;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
import com.ruoyi.wisdomarbitrate.service.IdentityAuthenticationService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +38,8 @@ public class SysLoginController {
private SysPermissionService permissionService;
@Autowired
IdentityAuthenticationService identityAuthenticationService;
@Autowired
private ISysUserService sysUserService;
/**
* 登录方法
@@ -55,7 +58,12 @@ public class SysLoginController {
IdentityAuthentication identityAuthentication=new IdentityAuthentication();
identityAuthentication.setUserName(loginBody.getUsername());
String status = identityAuthenticationService.checkIsAuthentication(identityAuthentication);
ajax.put("certificationStatus", status);
// 获取用户信息
SysUser sysUser = sysUserService.selectUserByUserName(loginBody.getUsername());
ajax.put("userId", sysUser!=null?sysUser.getUserId():"");
ajax.put("userName", sysUser!=null?sysUser.getUserName():"");
return ajax;
}
@@ -3,18 +3,14 @@ package com.ruoyi.web.controller.system;
import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.annotation.Anonymous;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
@@ -138,7 +134,7 @@ public class SysUserController extends BaseController
}
user.setCreateBy(getUsername());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
return toAjax(userService.insertUser(user));
return userService.insertUser(user);
}
/**
@@ -164,7 +160,7 @@ public class SysUserController extends BaseController
return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
}
user.setUpdateBy(getUsername());
return toAjax(userService.updateUser(user));
return userService.updateUser(user);
}
/**
@@ -248,4 +244,15 @@ public class SysUserController extends BaseController
{
return success(deptService.selectDeptTreeList(dept));
}
/**
* 根据userId获取用户信息
* @param userId
* @return
*/
@Anonymous
@GetMapping("/selectUserById")
public AjaxResult selectUserById(@RequestParam(required = true) Long userId){
return AjaxResult.success(userService.selectUserById(userId));
}
}
@@ -1,7 +1,10 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import cn.hutool.core.collection.CollectionUtil;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.wisdomarbitrate.domain.BatchCaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.vo.BookSendVO;
import com.ruoyi.wisdomarbitrate.domain.vo.LogisticsInfoVO;
@@ -19,6 +22,9 @@ public class AdjudicationController extends BaseController {
@Autowired
private IAdjudicationService adjudicationService;
/**
* 生成裁决书
* @param caseApplication
@@ -26,9 +32,22 @@ public class AdjudicationController extends BaseController {
*/
@PostMapping("/document")
public AjaxResult createDocument(@Validated @RequestBody CaseApplication caseApplication){
if (caseApplication.getId() == null) {
return AjaxResult.error("案件id不能为空");
}
return adjudicationService.createDocument(caseApplication);
}
/**
* 重新生成裁决书
* @param caseApplication
* @return
*/
@PostMapping("/regenerationDocument")
public AjaxResult regenerationDocument(@Validated @RequestBody CaseApplication caseApplication){
return adjudicationService.regenerationDocument(caseApplication);
}
/**
* 裁决书送达(电子邮件)
* @param bookSendVO
@@ -64,13 +83,16 @@ public class AdjudicationController extends BaseController {
/**
* 归档(暂时只改案件状态)
* @param caseApplication
* @param batchCaseApplication
* @return
*/
@PostMapping("/caseFile")
// @PreAuthorize("@ss.hasPermi('awardManagement:list:file')")
public AjaxResult caseFile(@Validated @RequestBody CaseApplication caseApplication){
return adjudicationService.caseFile(caseApplication);
public AjaxResult caseFile(@RequestBody BatchCaseApplication batchCaseApplication){
if(CollectionUtil.isEmpty(batchCaseApplication.getIds())){
return error("参数校验失败");
}
return adjudicationService.caseFile(batchCaseApplication.getIds());
}
/**
@@ -101,6 +123,18 @@ public class AdjudicationController extends BaseController {
*/
@GetMapping("/archives")
public AjaxResult getArchivesDetail(Long id){
return adjudicationService.getArchivesDetail(id);
}
/**
* 根据案件id获取邮箱
* @param id 案件id
* @return
*/
@GetMapping("/emailByCaseId")
public AjaxResult emailByCaseId(@RequestParam("id") Long id){
return adjudicationService.emailByCaseId(id);
}
}
@@ -1,17 +1,23 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alipay.api.internal.util.file.IOUtils;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.FileTransformation;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.EsignDemoException;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.WxAppletNotifyUtils;
import com.ruoyi.wisdomarbitrate.domain.ArbitrateRecord;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
import com.ruoyi.util.FileUtil;
import com.ruoyi.wisdomarbitrate.domain.*;
import com.ruoyi.wisdomarbitrate.domain.vo.ReservedConferenceVO;
import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO;
import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount;
import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -20,7 +26,12 @@ import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.utils.poi.ExcelUtil;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLEncoder;
import java.util.List;
@@ -37,11 +48,26 @@ public class CaseApplicationController extends BaseController {
// @PreAuthorize("@ss.hasPermi('caseManagement:list')")
@GetMapping("/list")
public TableDataInfo list(CaseApplication caseApplication) {
if(StrUtil.isEmpty(caseApplication.getSelectCaseStatus())){
caseApplication.setSelectCaseStatus("0");
}
startPage();
List<CaseApplication> list = caseApplicationService.selectCaseApplicationList(caseApplication);
List<CaseApplication> list = caseApplicationService.selectCaseApplicationListByRole(caseApplication);
return getDataTable(list);
}
/**
* 根据角色查询待办数量
* @return
*/
@GetMapping("/toDoCount")
public AjaxResult toDoCount() {
ToDoCount toDoCount = caseApplicationService.selectToDoCount();
// List<CaseApplication> list = caseApplicationService.selectCaseApplicationList(caseApplication);
return success(toDoCount);
}
/**
* 新增立案数据
*/
@@ -64,7 +90,17 @@ public class CaseApplicationController extends BaseController {
public AjaxResult editCaseApplication(@Validated @RequestBody CaseApplication caseApplication) {
caseApplication.setUpdateBy(getUsername());
return toAjax(caseApplicationService.editCaseApplication(caseApplication));
return caseApplicationService.editCaseApplication(caseApplication);
}
/**
* 修改立案数据自定义字段
*/
// @PreAuthorize("@ss.hasPermi('caseManagement:list:update')")
@Log(title = "修改立案数据自定义字段", businessType = BusinessType.UPDATE)
@PostMapping("/editCaseApplicationDefineval")
public AjaxResult editCaseApplicationDefineval(@Validated @RequestBody CaseApplication caseApplication) {
return caseApplicationService.editCaseApplicationDefineval(caseApplication);
}
/**
@@ -73,10 +109,14 @@ public class CaseApplicationController extends BaseController {
// @PreAuthorize("@ss.hasPermi('caseManagement:list:submit')")
@Log(title = "提交立案申请", businessType = BusinessType.UPDATE)
@PostMapping("/submitCaseApplication")
public AjaxResult submitCaseApplication(@Validated @RequestBody CaseApplication caseApplication) {
return toAjax(caseApplicationService.submitCaseApplication(caseApplication));
public AjaxResult submitCaseApplication(@RequestBody BatchCaseApplication batchCaseApplication) {
if(CollectionUtil.isEmpty(batchCaseApplication.getIds())){
return error("参数校验失败");
}
return toAjax(caseApplicationService.submitCaseApplication(batchCaseApplication.getIds()));
}
/**
* 删除立案数据
@@ -84,9 +124,11 @@ public class CaseApplicationController extends BaseController {
// @PreAuthorize("@ss.hasPermi('caseManagement:list:delete')")
@Log(title = "删除立案数据", businessType = BusinessType.DELETE)
@PostMapping("/removeCaseApplication")
public AjaxResult removeCaseApplication(@Validated @RequestBody CaseApplication caseApplication) {
return toAjax(caseApplicationService.deletecaseApplicationByIds(caseApplication));
public AjaxResult removeCaseApplication(@RequestBody BatchCaseApplication batchCaseApplication) {
if(CollectionUtil.isEmpty(batchCaseApplication.getIds())){
return error("参数校验失败");
}
return success(caseApplicationService.deletecaseApplicationByIds(batchCaseApplication.getIds()));
}
/**
@@ -95,6 +137,7 @@ public class CaseApplicationController extends BaseController {
// @PreAuthorize("@ss.hasPermi('caseManagement:list:detail')")
@PostMapping("/selectCaseApplication")
public AjaxResult selectCaseApplication(@Validated @RequestBody CaseApplication caseApplication) {
CaseApplication caseApplicationselect = caseApplicationService.selectCaseApplication(caseApplication);
return success(caseApplicationselect);
}
@@ -108,6 +151,16 @@ public class CaseApplicationController extends BaseController {
return success(caseApplicationselect);
}
/**
* 查询案件进度
*/
@PostMapping("/selectCaseProgress")
public AjaxResult selectCaseProgress(@Validated @RequestBody CaseApplication caseApplication) {
AjaxResult caseApplicationselect = caseApplicationService.selectCaseProgress(caseApplication);
return success(caseApplicationselect);
}
/**
* 查询签名链接
*/
@@ -128,13 +181,42 @@ public class CaseApplicationController extends BaseController {
return success(sealUrlRecordselect);
}
/**
* 案件证据材料压缩包上传
*
* @param file 附件
* @param id 案件申请id
* @return
*/
@PostMapping("/uploadZipFile")
public AjaxResult uploadZipFile(@RequestParam("file") MultipartFile file, Long id) {
String username = this.getUsername();
Long userId = this.getUserId();
return caseApplicationService.uploadZipFile(file, id, username, userId);
}
/**
* 立案申请导入模板下载
*/
@PostMapping("/importTemplate")
public void importTemplate(HttpServletResponse response) {
ExcelUtil<CaseApplication> util = new ExcelUtil<CaseApplication>(CaseApplication.class);
util.importTemplateExcel(response, "立案申请数据");
// 读取文件
try {
InputStream fileInputStream = new URL("http://121.40.189.20:8000/API/uploadPath/template/案件导入模板.xlsx").openStream();
response.setHeader("content-type", "application/octet-stream");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("案件导入模板.xlsx","UTF-8"));
byte[] buffer = new byte[1024];
int length;
while ((length = fileInputStream.read(buffer)) > 0) {
response.getOutputStream().write(buffer, 0, length);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Log(title = "立案信息导入", businessType = BusinessType.IMPORT)
@@ -181,6 +263,15 @@ public class CaseApplicationController extends BaseController {
return toAjax(caseApplicationService.pendTralSure(caseApplication));
}
/**
* 修改开庭时间
*/
@Log(title = "修改开庭时间", businessType = BusinessType.UPDATE)
@PostMapping("/updateHeardate")
public AjaxResult updateHeardate(@Validated @RequestBody CaseApplication caseApplication) {
return toAjax(caseApplicationService.updateHeardate(caseApplication));
}
/**
* 核验裁决书
*/
@@ -192,13 +283,24 @@ public class CaseApplicationController extends BaseController {
}
/**
* 审核裁决书
* 部门长审核裁决书
*/
// @PreAuthorize("@ss.hasPermi('caseApplication:checkArbitrateRecord')")
@Log(title = "审核裁决书", businessType = BusinessType.UPDATE)
@Log(title = "部门长审核裁决书", businessType = BusinessType.UPDATE)
@PostMapping("/checkArbitrateRecord")
public AjaxResult checkArbitrateRecord(@Validated @RequestBody CaseApplication caseApplication) {
return toAjax(caseApplicationService.checkArbitrateRecord(caseApplication));
return caseApplicationService.checkArbitrateRecord(caseApplication);
}
/**
* 仲裁员审核裁决书
*/
// @PreAuthorize("@ss.hasPermi('caseApplication:checkArbitrateRecord')")
@Log(title = "仲裁员审核裁决书", businessType = BusinessType.UPDATE)
@PostMapping("/arbitrator/checkArbitrateRecord")
public AjaxResult arbitratorCheckArbitrateRecord(@Validated @RequestBody CaseApplication caseApplication) {
return caseApplicationService.arbitratorCheckArbitrateRecord(caseApplication);
}
@@ -218,9 +320,11 @@ public class CaseApplicationController extends BaseController {
// @PreAuthorize("@ss.hasPermi('caseManagement:list:check')")
@Log(title = "提交立案审查", businessType = BusinessType.UPDATE)
@PostMapping("/submitCaseApplicationCheck")
public AjaxResult submitCaseApplicationCheck(@Validated @RequestBody CaseApplication caseApplication) {
return toAjax(caseApplicationService.submitCaseApplicationCheck(caseApplication));
public AjaxResult submitCaseApplicationCheck(@RequestBody BatchCaseApplication batchCaseApplication) {
if(CollectionUtil.isEmpty(batchCaseApplication.getIds())|| batchCaseApplication.getAgreeOrNotCheck()==null){
return error("参数校验失败");
}
return success(caseApplicationService.submitCaseApplicationCheck(batchCaseApplication.getIds(),batchCaseApplication.getAgreeOrNotCheck(),batchCaseApplication.getCaseCheckReject()));
}
/**
@@ -233,6 +337,16 @@ public class CaseApplicationController extends BaseController {
return success(caseApplicationselect);
}
/**
* 下载案件压缩包
*/
@PostMapping("/downloadCaseZipFile")
public AjaxResult downloadCaseZipFile(@Validated @RequestBody CaseApplication caseApplication) {
CaseAttach caseAttach = caseApplicationService.downloadCaseZipFile(caseApplication);
return success(caseAttach);
}
/**
* 发送房间号短信
@@ -259,9 +373,124 @@ public class CaseApplicationController extends BaseController {
* @return
*/
@PostMapping("/creatTrialRecord")
@PreAuthorize("@ss.hasPermi('caseManagement:list:creatTrialRecord')")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:creatTrialRecord')")
public AjaxResult creatTrialRecord(@Validated @RequestBody ArbitrateRecord arbitrateRecord){
return caseApplicationService.creatTrialRecord(arbitrateRecord);
}
/**
* 记录庭审笔录
* @param arbitrateRecord
* @return
*/
@PostMapping("/creatTrialRecordnew")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:creatTrialRecord')")
public AjaxResult creatTrialRecordnew(@Validated @RequestBody ArbitrateRecord arbitrateRecord){
return caseApplicationService.creatTrialRecordnew(arbitrateRecord);
}
/**
* 案件锁定或者解锁
* @param caseApplication
* @return
*/
@PostMapping("/updateCaseLockStatus")
// @PreAuthorize("@ss.hasPermi('caseManagement:list:creatTrialRecord')")
public AjaxResult updateCaseLockStatus(@Validated @RequestBody CaseApplication caseApplication){
if(caseApplication.getId()==null || caseApplication.getLockStatus()==null){
return error("参数校验失败");
}
return AjaxResult.success(caseApplicationService.updateCaseLockStatus(caseApplication));
}
/**
* 查询短信发送记录
* @param smsSendRecord
* @return
*/
@PostMapping("/smsRecord")
public TableDataInfo getSmsSendRecord(@RequestBody SmsSendRecord smsSendRecord){
startPage();
List<SmsSendRecord> list = caseApplicationService.getSmsSendRecord(smsSendRecord);
return getDataTable(list);
}
/**
* 获取userSign
* @param userId
* @return
*/
@Anonymous
@GetMapping("/generateUserSign")
public AjaxResult generateUserSign(@RequestParam(required = true) String userId){
if(StrUtil.isEmpty(userId)){
error("参数校验失败");
}
return AjaxResult.success(caseApplicationService.generateUserSign(userId));
}
/**
* 预约会议
* @param reservedConferenceVO
* @return
*/
@PostMapping("/reservedConference")
public AjaxResult reservedConference(@Validated @RequestBody ReservedConferenceVO reservedConferenceVO) throws Exception {
return caseApplicationService.reservedConference(reservedConferenceVO);
}
/**
* 生成房间号
* @return
*/
@Anonymous
@GetMapping("/createRoomId")
public AjaxResult createRoomId(@RequestParam("caseId") Long caseId) {
return success(caseApplicationService.createRoomId(caseId));
}
/**
* 删除房间号
* @return
*/
@Anonymous
@PostMapping("/deleteRoom")
public AjaxResult deleteRoom(@RequestParam("roomId") String roomId) {
return caseApplicationService.deleteRoom(roomId);
}
/**
* 根据案件id查询已预约的会议
* @param caseId
* @return
*/
@Anonymous
@GetMapping("/reserveConferenceList")
public AjaxResult reserveConferenceList( @RequestParam("caseId") Long caseId) {
return success(caseApplicationService.reserveConferenceList(caseId));
}
/**
* 案件压缩包导入
* @param file
* @return
* @throws IOException
*/
@PostMapping("/uploadCaseZipFile")
public AjaxResult uploadCaseZipFile(@RequestParam("file") MultipartFile file,@RequestParam("templateId") Long templateId) throws IOException {
return caseApplicationService.uploadCaseZipFile(file,templateId);
}
/**
* 根据附件id修改案件id
* @param caseAttach
* @return
*/
@PostMapping("/updateCaseIdByAnnexId")
public AjaxResult updateCaseIdByAnnexId(@RequestBody CaseAttach caseAttach) {
if(caseAttach.getAnnexId()==null || caseAttach.getCaseAppliId()==null){
return error("参数校验失败");
}
return caseApplicationService.updateCaseIdByAnnexId(caseAttach);
}
}
@@ -0,0 +1,107 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.vo.UpdateSubmitVO;
import com.ruoyi.wisdomarbitrate.service.CaseApplicationLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import static com.ruoyi.common.core.domain.AjaxResult.success;
/**
* @author wangqiong
* @description 案件日志
* @date 2023-11-17 13:58
*/
@RestController
@RequestMapping (value = "/caseApplicationLog")
public class CaseApplicationLogController {
@Autowired
private CaseApplicationLogService caseApplicationLogService;
/**
* 新增
* @author wangqiong
* @date 2023/11/17
**/
@PostMapping("/insert")
public AjaxResult insert(@RequestBody CaseApplication caseApplicationLog){
return success(caseApplicationLogService.insert(caseApplicationLog));
}
/**
* 刪除
* @author wangqiong
* @date 2023/11/17
**/
@PostMapping("/delete")
public AjaxResult delete(Long id){
return success(caseApplicationLogService.delete(id));
}
/**
* 修改的案件提交到秘书
* @author wangqiong
* @date 2023/11/17
**/
@PostMapping("/submit")
public AjaxResult submit(@RequestBody UpdateSubmitVO vo){
if(vo.getCaseId()==null || vo.getVersion()==null){
return AjaxResult.error("参数校验错误");
}
return caseApplicationLogService.submit(vo);
}
/**
* 修改撤销申请
* @author wangqiong
* @date 2023/11/17
**/
@PostMapping("/revoke")
public AjaxResult revoke(@RequestBody UpdateSubmitVO vo){
if(vo.getCaseId()==null || vo.getVersion()==null){
return AjaxResult.error("参数校验错误");
}
// todo 需确定
return caseApplicationLogService.revoke(vo);
}
/**
* 查询 根据主键 id 查询
* @author wangqiong
* @date 2023/11/17
**/
@GetMapping("/selectByCaseIdAndVersion")
public AjaxResult selectByCaseIdAndVersion(@RequestParam(value = "caseId") Long caseId,@RequestParam(value = "version")Integer version ){
return success(caseApplicationLogService.selectByCaseIdAndVersion(caseId,version));
}
/**
* 秘书审核修改的案件
* @author wangqiong
* @date 2023/11/17
**/
@PostMapping("/updateAudit")
public AjaxResult updateAudit(@RequestBody UpdateSubmitVO vo){
if(vo.getCaseId()==null || vo.getVersion()==null || vo.getIsAgree()==null || vo.getUpdateSubmitStatus()==null){
return AjaxResult.error("参数校验错误");
}
return caseApplicationLogService.updateAudit(vo);
}
/**
* 查询该版本及之前版本案件进行对比
* @author wangqiong
* @date 2023/11/17
**/
@Anonymous
@PostMapping("/selectCompareCase")
public AjaxResult selectCompareCase(@RequestBody UpdateSubmitVO vo){
if(vo.getCaseId()==null || vo.getVersion()==null ){
return AjaxResult.error("参数校验错误");
}
return caseApplicationLogService.selectCompareCase(vo);
}
}
@@ -1,15 +1,20 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import cn.hutool.core.collection.CollectionUtil;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.ArbitrateRecord;
import com.ruoyi.wisdomarbitrate.domain.BatchCaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseIds;
import com.ruoyi.wisdomarbitrate.service.ICaseArbitrateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/arbitrate")
public class CaseArbitrateController extends BaseController {
@@ -31,12 +36,12 @@ public class CaseArbitrateController extends BaseController {
/**
* 书面审理
* @param arbitrateRecord
* @param
* @return
*/
@PostMapping("/writtenHear")
public AjaxResult writtenHear(@Validated @RequestBody ArbitrateRecord arbitrateRecord){
arbitrateRecord.setCreateBy(getUsername());
return caseArbitrateService.writtenHear(arbitrateRecord);
public AjaxResult writtenHear(@RequestBody CaseIds caseIds){
return caseArbitrateService.writtenHear(caseIds);
}
}
@@ -1,9 +1,12 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseEvidenceDirectory;
import com.ruoyi.wisdomarbitrate.domain.dto.CaseEvidenceDTO;
import com.ruoyi.wisdomarbitrate.domain.vo.CaseEvidenceVO;
import com.ruoyi.wisdomarbitrate.service.ICaseEvidenceService;
@@ -56,20 +59,72 @@ public class CaseEvidenceController extends BaseController {
return caseEvidenceService.uploadEvidence(file, annexType, id, username, userId);
}
/**
* 上传庭审笔录
*
* @param file 附件
* @param annexType 附件类型,庭审笔录(7)
* @param id 案件申请id
* @return
*/
@PostMapping("/uploadRecord")
public AjaxResult uploadRecord(@RequestParam("file") MultipartFile file, Integer annexType, Long id) {
String username = this.getUsername();
Long userId = this.getUserId();
return caseEvidenceService.uploadRecord(file, annexType, id, username, userId);
}
@PostMapping("/batchUpload")
public AjaxResult batchUpload(@RequestParam("file") MultipartFile[] file, Integer annexType, Long id) {
if(file==null){
return error("请选择要上传的文件");
}
String username = this.getUsername();
Long userId = this.getUserId();
return caseEvidenceService.batchUpload(file, annexType, id, username, userId);
}
/**
* 获取附件
* @param caseAppliId
* @param annexTypeList
* @param
* @return
*/
@GetMapping("/fileList")
public AjaxResult fileList(Long caseAppliId, @RequestParam("annexTypeList") List<Integer> annexTypeList){
if(caseAppliId==null){
return error("案件id不能为空");
}
return caseEvidenceService.fileList(caseAppliId, annexTypeList);
}
/**
* 删除附件
* @param fileIds
* @return
*/
@PostMapping("/deleteFile")
public AjaxResult deleteFile( @RequestParam("fileIds") List<Integer> fileIds){
if(CollectionUtil.isEmpty(fileIds)){
return error("附件id不能为空");
}
return toAjax(caseEvidenceService.deleteFile( fileIds));
}
/**
* 查询当前用户案件列表
*
* @param identityNum
* @param caseStatus
* @return
*/
@GetMapping("/all")
public TableDataInfo getCaseListAll(@RequestParam(required = false) String identityNum) {
startPage();
List<CaseEvidenceVO> list = caseEvidenceService.getCaseListAll(identityNum);
if (list != null) {
return getDataTable(list);
}
return getDataTable(new ArrayList<>());
public AjaxResult getCaseListAll(@RequestParam("caseStatus") Integer caseStatus) {
return success(caseEvidenceService.getCaseListAll(caseStatus));
}
/**
@@ -93,4 +148,13 @@ public class CaseEvidenceController extends BaseController {
public AjaxResult caseCrossexamination(@Validated @RequestBody CaseEvidenceDTO caseEvidenceDTO) {
return caseEvidenceService.caseCrossexamination(caseEvidenceDTO);
}
/**
* 获取证据目录树列表
*/
@GetMapping("/evidenceTree")
public AjaxResult evidenceTree(CaseEvidenceDirectory caseEvidenceDirectory)
{
return success(caseEvidenceService.selectEvidenceTreeList(caseEvidenceDirectory)) ;
}
}
@@ -1,6 +1,7 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseLogRecord;
@@ -24,11 +25,10 @@ public class CaseLogRecordController extends BaseController {
*/
// @PreAuthorize("@ss.hasPermi('caseLog:list')")
@GetMapping("/list")
public TableDataInfo list(CaseLogRecord caseLogRecord)
public AjaxResult list(CaseLogRecord caseLogRecord)
{
startPage();
List<CaseLogRecord> list = caseLogRecordService.selectCaseLogRecordList(caseLogRecord);
return getDataTable(list);
return AjaxResult.success(list);
}
@@ -6,7 +6,6 @@ import com.ruoyi.wisdomarbitrate.domain.dto.CaseConfirmPayDTO;
import com.ruoyi.wisdomarbitrate.service.ICasePaymentService;
import com.ruoyi.wisdomarbitrate.domain.dto.CasePayDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -52,4 +51,13 @@ public class CasePaymentController {
public AjaxResult confirmPayment(@Validated @RequestBody CaseApplication caseApplication) {
return paymentService.confirmPayment(caseApplication);
}
/**
* 缴费列表查询
* @param casePayDTO
* @return
*/
@GetMapping("/list")
public AjaxResult casePayList(CasePayDTO casePayDTO) {
return paymentService.casePayList(casePayDTO);
}
}
@@ -0,0 +1,238 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.EsignDemoException;
import com.ruoyi.wisdomarbitrate.domain.*;
import com.ruoyi.wisdomarbitrate.domain.vo.SealListVO;
import com.ruoyi.wisdomarbitrate.service.IDeptIdentifyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@RestController
@RequestMapping("/deptIdentify")
public class DeptIdentifyController extends BaseController {
@Autowired
private IDeptIdentifyService deptIdentifyService;
/**
* 新增机构
* @param deptIdentify
* @return
*/
@PostMapping("/insert")
public AjaxResult insertDeptIdentify(@RequestBody DeptIdentify deptIdentify){
return deptIdentifyService.insertDeptIdentify(deptIdentify);
}
/**
* 删除机构
* @param id
* @return
*/
@DeleteMapping("/delete")
public AjaxResult deleteDeptIdentify(Long id){
return deptIdentifyService.deleteDeptIdentify(id);
}
/**
* 修改机构信息
* @param deptIdentify
* @return
*/
@PutMapping("/update")
public AjaxResult updateDeptIdentify(@RequestBody DeptIdentify deptIdentify){
return deptIdentifyService.updateDeptIdentify(deptIdentify);
}
/**
* 查询机构信息
*/
@GetMapping("/list")
public TableDataInfo list(DeptIdentify deptIdentify) {
startPage();
List<DeptIdentify> list = deptIdentifyService.selectDeptIdentify(deptIdentify);
return getDataTable(list);
}
/**
* 查询机构认证链接
*/
@PostMapping("/selectDeptIndefiUrl")
public AjaxResult selectDeptIndefiUrl(@Validated @RequestBody DeptIdentify deptIdentify) throws EsignDemoException {
DeptIdentify deptIdentifyselect = deptIdentifyService.selectDeptIndefiUrl(deptIdentify);
return success(deptIdentifyselect);
}
/**
* 机构启用/禁用
*/
@PostMapping("/enableDept")
public AjaxResult enableDept(@Validated @RequestBody DeptIdentify deptIdentify) {
return deptIdentifyService.enableDept(deptIdentify);
}
/**
* 上传自定义公章
*
* @param
* @param file
* @return
*/
@PostMapping("/sealUpload")
public AjaxResult sealUpload(Long id, String sealName , @RequestParam("file") MultipartFile file) {
return deptIdentifyService.sealUpload(id, sealName ,file);
}
/**
* 接收E签宝回调通知
* @param body
* @return
*/
@GetMapping("/notify")
public AjaxResult receiveNotify(String body) {
return deptIdentifyService.receiveNotify(body);
}
/**
* 公章列表查询
* @param deptIdentify
* @return
*/
@GetMapping("/sealList")
public TableDataInfo getSealList( DeptIdentify deptIdentify ){
startPage();
List<SealManage> sealList = deptIdentifyService.getSealList(deptIdentify);
return getDataTable(sealList);
}
/**
* 印章启用或者禁用
* @param sealManage
* @return
*/
@PostMapping("/updateSealLockStatus")
public AjaxResult updateSealLockStatus(@Validated @RequestBody SealManage sealManage){
if(sealManage.getId()==null ||sealManage.getIsUse()==null){
return error("参数校验失败");
}
return deptIdentifyService.updateSealLockStatus(sealManage);
}
/**
* 新增模板
* @param templateManage
* @return
*/
@PostMapping("/insertTemplate")
public AjaxResult insertTemplate(TemplateManage templateManage,@RequestParam("file") MultipartFile file){
return deptIdentifyService.insertTemplate(templateManage,file);
}
/**
* 修改模板
* @param templateManage
* @return
*/
@PostMapping("/updateTemplate")
public AjaxResult updateTemplate(TemplateManage templateManage,@RequestParam(value = "file", required = false) MultipartFile file){
return deptIdentifyService.updateTemplate(templateManage,file);
}
/**
* 删除模板
* @param id
* @return
*/
@DeleteMapping("/deleteTemplate")
public AjaxResult deleteTemplate(Long id){
return deptIdentifyService.deleteTemplate(id);
}
/**
* 根据机构id查询模板
* @param deptIdentify
* @return
*/
@GetMapping("/getTemplate")
public TableDataInfo getTemplateList( DeptIdentify deptIdentify){
startPage();
List<TemplateManage> sealList = deptIdentifyService.getTemplateList(deptIdentify);
return getDataTable(sealList);
}
/**
* 根据部门id查询岗位用户信息
*/
@GetMapping("selectPostUserByDeptId")
public AjaxResult selectPostUserByDeptId(DeptIdentify deptIdentify){
return AjaxResult.success(deptIdentifyService.selectPostUserByDeptId(deptIdentify));
}
/**
* 给机构绑定经办人
*/
@GetMapping("bindHandler")
public AjaxResult bindHandler(DeptIdentify deptIdentify){
return deptIdentifyService.bindHandler(deptIdentify);
}
/**
* 根据模板id查询抓取规则
* @param templateManage
* @return
*/
@PostMapping("/getFatchRuleByTemplateid")
public AjaxResult getFatchRuleByTemplateid(@RequestBody TemplateManage templateManage){
List<FatchRule> fatchRuleList = deptIdentifyService.getFatchRuleByTemplateid(templateManage);
return AjaxResult.success(fatchRuleList);
}
/**
* 保存抓取规则
* @param templateManage
* @return
*/
@PostMapping("/saveFatchRules")
public AjaxResult saveFatchRules(@RequestBody TemplateManage templateManage){
return deptIdentifyService.saveFatchRules(templateManage);
}
/**
* 查询column和注释
* @return
*/
@PostMapping("/selectColumnandComment")
public AjaxResult selectColumnandComment(){
List<FatchRule> fatchRuleList = deptIdentifyService.selectColumnandComment();
return AjaxResult.success(fatchRuleList);
}
/**
* 查询column
* @return
*/
@PostMapping("/selectColumnbycomment")
public AjaxResult selectColumnbycomment(@RequestBody FatchRule fatchRule){
FatchRule fatchRulesel = deptIdentifyService.selectColumnbycomment(fatchRule);
return AjaxResult.success(fatchRulesel);
}
/**
* 根据模板id查询模板字段列表
* @param templateManage
* @return
*/
@GetMapping("/getTemplateInfoById")
public AjaxResult getTemplateInfoById(@RequestBody TemplateManage templateManage){
if(templateManage.getId()==null){
return error("参数校验错误");
}
List<FatchRule> fatchRuleList = deptIdentifyService.getTemplateInfoById(templateManage);
return AjaxResult.success(fatchRuleList);
}
}
@@ -1,6 +1,7 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
@@ -21,6 +22,7 @@ public class IdentityAuthenticationController extends BaseController {
/**
* 获取EIDtoken
*/
@Anonymous
@PostMapping("/selectIdentityAuthenticaEIDtoken")
public AjaxResult selectIdentityAuthenticaEIDtoken() {
JSONObject tokenResult = identityAuthenticationService.selectIdentityAuthenticaEIDtoken();
@@ -30,6 +32,7 @@ public class IdentityAuthenticationController extends BaseController {
/**
* 小程序人脸核身后查询身份认证结果
*/
@Anonymous
@PostMapping("/selectIdentityAuthenticaRespon")
public AjaxResult selectIdentityAuthenticaRespon(@Validated @RequestBody IdentityAuthentication ientityAuthentication) {
AjaxResult checkResult = identityAuthenticationService.selectIdentityAuthenticaRespon(ientityAuthentication);
@@ -0,0 +1,48 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wisdomarbitrate.domain.CaseLogRecord;
import com.ruoyi.wisdomarbitrate.domain.SendMailRecord;
import com.ruoyi.wisdomarbitrate.service.ISendMailRecordService;
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;
@RestController
@RequestMapping("/sendMailRecord")
public class SendMailRecordController extends BaseController {
@Autowired
private ISendMailRecordService sendMailRecordService;
/**
* 查询发送邮件记录列表
*/
@GetMapping("/list")
public TableDataInfo list(SendMailRecord sendMailRecord)
{
startPage();
List<SendMailRecord> list = sendMailRecordService.selectSendMailRecordList(sendMailRecord);
return getDataTable(list);
}
// /**
// * 新增立案数据
// */
// @Log(title = "新增立案数据", businessType = BusinessType.INSERT)
// @PostMapping("/addSendMailRecord")
// public AjaxResult addSendMailRecord(@Validated @RequestBody SendMailRecord sendMailRecord)
// {
//
// return toAjax(sendMailRecordService.addSendMailRecord(sendMailRecord));
// }
}
@@ -0,0 +1,59 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
import com.ruoyi.wisdomarbitrate.domain.TemplateManual;
import com.ruoyi.wisdomarbitrate.service.ITemplateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/template")
public class TemplateController extends BaseController {
@Autowired
private ITemplateService templateService;
/**
* 新增模板
* @param templateManual
* @return
*/
@PostMapping("/insert")
public AjaxResult insertTemplate(@RequestBody TemplateManual templateManual){
return templateService.insertTemplate(templateManual);
}
/**
* 删除模板
* @param id
* @return
*/
@DeleteMapping("/delete")
public AjaxResult deleteTemplate(Long id){
return templateService.deleteTemplate(id);
}
/**
* 修改模板
* @param templateManual
* @return
*/
@PutMapping("/update")
public AjaxResult updateTemplate(@RequestBody TemplateManual templateManual){
return templateService.updateTemplate(templateManual);
}
/**
* 查询模板
*/
@GetMapping("/list")
public TableDataInfo list( TemplateManual templateManual) {
startPage();
List<TemplateManual> list = templateService.selectTemplate(templateManual);
return getDataTable(list);
}
}
@@ -0,0 +1,149 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
import com.ruoyi.wisdomarbitrate.domain.vo.ReservedConferenceVO;
import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO;
import com.ruoyi.wisdomarbitrate.domain.vo.WeChatUserVO;
import com.ruoyi.wisdomarbitrate.service.VideoService;
import com.ruoyi.wisdomarbitrate.service.WeChatUserService;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.trtc.v20190722.TrtcClient;
import com.tencentcloudapi.trtc.v20190722.models.*;
import com.tencentyun.TLSSigAPIv2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.io.IOException;
/**
* @author wangqiong
* @description trtc实时音视频
* @date 2023-10-26 11:25
*/
@RestController
@RequestMapping("/video")
public class VideoController extends BaseController {
@Autowired
private VideoService videoService;
/**
* 从腾讯云下载文件到本地
* @param
* @return
*/
@Anonymous
@PostMapping("/videoRollBack")
public AjaxResult videoRollBack( @RequestBody String body, HttpServletRequest request) {
videoService.videoRollBack(body,request);
return success();
}
/**
* 根据房间号绑定案件ID
* @param
* @return
*/
@Anonymous
@PostMapping("/bindCaseId")
public AjaxResult bindCaseId(@Valid @RequestBody SendRoomNoMessageVO vo) {
return videoService.bindCaseId(vo.getId(),vo.getRoomNo());
}
/**
* 根据案件ID查询视频
* @param caseId 案件id
* @return
*/
@GetMapping("/videoList")
public AjaxResult videoList( @RequestParam Long caseId) {
return videoService.videoList(caseId);
}
/**
* 开启腾讯云录制
* @param vo
* @return
* @throws Exception
*/
@Anonymous
@PostMapping("/openCloudRecording")
private AjaxResult openCloudRecording( @RequestBody ReservedConferenceVO vo) {
if(vo.getCaseId()==null || vo.getRoomId()==null){
return AjaxResult.error("参数错误");
}
return videoService.openCloudRecording(vo.getCaseId(),vo.getRoomId());
}
/**
* 关闭腾讯云录制
* @param taskId 任务ID
* @return
*/
@Anonymous
@PostMapping("/closeDeleteCloudRecording")
public AjaxResult closeDeleteCloudRecording(@RequestParam("taskId") String taskId){
return videoService.closeDeleteCloudRecording(taskId);
}
/**
* 解散房间
* @param reservedConferenceVO
* @return
*/
@Anonymous
@PostMapping("/dissolveRoom")
public AjaxResult dissolveRoom( @RequestBody ReservedConferenceVO reservedConferenceVO) {
if( reservedConferenceVO.getRoomId()==null){
return error("参数校验失败");
}
return videoService.dissolveRoom(reservedConferenceVO.getRoomId());
}
/**
* 根据userId查询该用户是否是秘书
* @param userId
* @return
*/
@Anonymous
@GetMapping("secretaryRoleByUserId")
public AjaxResult secretaryRoleByUserId( @RequestParam(value = "userId",required = true) Long userId) {
return videoService.secretaryRoleByUserId(userId);
}
/**
* 根据html字符串转pdf并和案件关联
* @param reservedConferenceVO
* @return
*/
@Anonymous
@PostMapping("htmlToPDF")
public AjaxResult secretaryRoleByUserId( @RequestBody ReservedConferenceVO reservedConferenceVO) {
if( reservedConferenceVO.getCaseId()==null || StrUtil.isEmpty(reservedConferenceVO.getHtmlContent())){
return success();
}
return videoService.htmlToPDF(reservedConferenceVO);
}
/**
* 根据案件id和类型查询附件
* @param caseAppliId
* @param annexType
* @return
*/
@GetMapping("attachListByCaseId")
public AjaxResult attachListByCaseId( @RequestParam("caseAppliId") Long caseAppliId,@RequestParam("annexType") Integer annexType) {
return videoService.attachListByCaseId(caseAppliId,annexType);
}
}
@@ -0,0 +1,62 @@
package com.ruoyi.web.controller.wisdomarbitrate;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.http.HttpUtils;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
import com.ruoyi.wisdomarbitrate.domain.vo.WeChatUserVO;
import com.ruoyi.wisdomarbitrate.service.WeChatUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @author wangqiong
* @description 微信小程序用户注册登录
* @date 2023-10-16 11:25
*/
@RestController
@RequestMapping("/weChatUser")
public class WeChatUserController extends BaseController {
@Autowired
private WeChatUserService weChatUserService;
/**
* 小程序端获取手机验证码
* @param userVO
* @return
*/
@Anonymous
@GetMapping("/sendCode")
public AjaxResult sendCode( WeChatUserVO userVO)
{
if(StrUtil.isEmpty(userVO.getPhone())){
return warn("手机号不能为空");
}
return weChatUserService.sendCode(userVO);
}
/**
* 小程序注册
*/
@Anonymous
@PostMapping("/registerUser")
public AjaxResult registerUser( @RequestBody IdentityAuthentication ientityAuthentication) {
if(ientityAuthentication.getId()==null
|| StrUtil.isEmpty(ientityAuthentication.getName())
|| StrUtil.isEmpty(ientityAuthentication.getIdentityNo())
|| StrUtil.isEmpty(ientityAuthentication.getPhone())
|| StrUtil.isEmpty(ientityAuthentication.getUserName())
|| StrUtil.isEmpty(ientityAuthentication.getEmail())
|| StrUtil.isEmpty(ientityAuthentication.getVerifyCode())
){
return warn("参数校验失败");
}
logger.info("调用小程序注册==="+ientityAuthentication.toString());
return weChatUserService.registerUser(ientityAuthentication);
}
}
@@ -6,7 +6,7 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:mysql://121.40.189.20:3306/smart_arbitration?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false
url: jdbc:mysql://121.40.189.20:3306/test_smart_arbitration?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: YMzc157#
# 从库数据源
+25 -3
View File
@@ -18,7 +18,7 @@ ruoyi:
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
port: 9001
port: 8001
servlet:
# 应用的访问路径
context-path: /
@@ -58,9 +58,9 @@ spring:
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
max-file-size: 50MB
# 设置总上传的文件大小
max-request-size: 20MB
max-request-size: 500MB
# 服务模块
devtools:
restart:
@@ -173,3 +173,25 @@ identityAuthentication:
credentialSecretKey: INDrIXcT8YmomZBcsy0oNirnU0LTN4X7
merchantId: 0NSJ2309281116194321
privateKeyHexDecodeinfo: 4c3b311bf7b98969994e85928e069574a1e95777f24d1c510679cc3c2f460faf
# 腾讯云即时通信相关配置
imConfig:
# sdkAppId
sdkAppId: 1600011167
# 密钥
sdkSecretKey: 17d136d9327576a247f991bdfed3a6d14cebc7d540a52245086829c3a1421a86
# 腾讯云账户 SecretId
secretId: AKID3xfHgroY4MQHvLXUXMwIQL1UjmbBX1Tv
# 腾讯云密钥
secretKey: INDrIXcT8YmomZBcsy0oNirnU0LTN4X7
#jodconverter:
# local:
# host: 121.40.189.20
#暂时关闭预览,启动时会有点慢
# enabled: true
#设置libreoffice主目录 linux地址如:/usr/lib64/libreoffice
# office-home: /usr/lib64/libreoffice/
# office-home: D:\app\libreOffice\
#开启多个libreoffice进程,每个端口对应一个进程
# port-numbers: 8100
#libreoffice进程重启前的最大进程数
# max-tasks-per-process: 100
+97 -1
View File
@@ -11,12 +11,76 @@
<artifactId>ruoyi-common</artifactId>
<description>
common通用工具
</description>
<dependencies>
<!--docx文件下载问题-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<!-- POI依赖,读取.doc型文档-->
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-core</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-local</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-spring-boot-starter</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>com.artofsolving</groupId>
<artifactId>jodconverter</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.openoffice</groupId>
<artifactId>jurt</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.openoffice</groupId>
<artifactId>ridl</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.openoffice</groupId>
<artifactId>juh</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.openoffice</groupId>
<artifactId>unoil</artifactId>
<version>3.0.1</version>
</dependency>
<!-- Spring框架基本的核心工具 -->
<dependency>
<groupId>org.springframework</groupId>
@@ -164,13 +228,45 @@
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-local</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-transformer-msoffice-word</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.27</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.13</version>
</dependency>
<!-- 发送邮件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>3.1.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
@@ -0,0 +1,13 @@
package com.ruoyi.common.annotation;
/**
* 一个参数、没有返回
* @author wangqiong
*/
@FunctionalInterface
public interface VoidFunction<T> {
/**
* 有一个参数
* @param param
*/
void apply(T param);
}
@@ -132,4 +132,17 @@ public class RuoYiConfig
{
return getProfile() + "/upload";
}
/**
* 获取上传路径
*/
public static String getVideoUploadPath()
{
return getProfile() + "/video";
}
public static String getHtml2PDFPath()
{
return getProfile() + "/upload/html2PDF";
}
// https://1304001529.vod-qcloud.com/b78823bbvodcq1304001529/3ce565bf3270835011486046286/f0.mp4
}
@@ -41,4 +41,5 @@ public class CacheConstants
* 登录账户密码错误次数 redis key
*/
public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:";
public static final String WE_CHAT_SMS_VERIFY_CODE_KEY="we_chat_sms_verify_code:";
}
@@ -30,9 +30,9 @@ public class CaseApplicationConstants {
public static final int PENDING_WRIITEN_HEAR = 9;
/** 待生成仲裁文书 */
public static final int GENERATED_ARBITRATION = 10;
/**待核验仲裁文书*/
/**待秘书核验仲裁文书*/
public static final int VERPRIF_ARBITRATION = 11;
/**待审核仲裁文书*/
/**待部门长审核仲裁文书*/
public static final int CHECK_ARBITRATION = 12;
/**待仲裁文书签名*/
public static final int SIGN_ARBITRATION = 13;
@@ -45,6 +45,11 @@ public class CaseApplicationConstants {
/** 已归档*/
public static final int CASE_ARCHIVED = 17;
/** 待修改开庭时间*/
public static final int MODIFY_HEARDATE = 31;
/**待仲裁员审核仲裁文书*/
public static final int HEAD_CHECK_ARBITRATION = 18;
@@ -28,6 +28,14 @@ public class Constants
* http请求
*/
public static final String HTTP = "http://";
/**
* br标签
*/
public static final String BR = "</br>";
/**
* pdf拼接符
*/
public static final String PDFSTR = "∰";
/**
* https请求
@@ -128,6 +136,8 @@ public class Constants
* LDAPS 远程方法调用
*/
public static final String LOOKUP_LDAPS = "ldaps:";
public static final String DEFAULT_PASSWORD = "123456";
public static final String SPLIT_COMMA =",";
/**
* 自动识别json对象白名单配置(仅允许解析的包名,范围越小越安全)
@@ -80,6 +80,7 @@ public class FileTransformation {
* @return
*/
public static boolean downLoadFileByUrl(String httpUrl, String dir) throws EsignDemoException {
boolean downLoadFileFlag = false;
InputStream fis = null;
FileOutputStream fileOutputStream = null;
try {
@@ -95,10 +96,11 @@ public class FileTransformation {
while ((length = fis.read(buffer, 0, 1024)) != -1) {
fileOutputStream.write(buffer, 0, length);
}
downLoadFileFlag = true;
} catch (IOException e) {
EsignDemoException ex = new EsignDemoException("获取文件流异常", e);
ex.initCause(e);
throw ex;
return downLoadFileFlag;
} finally {
try {
if (fis != null) {
@@ -110,10 +112,10 @@ public class FileTransformation {
} catch (IOException e) {
EsignDemoException ex = new EsignDemoException("关闭文件流异常", e);
ex.initCause(e);
throw ex;
return downLoadFileFlag;
}
}
return true;
return downLoadFileFlag;
}
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysMenu;
/**
* Treeselect树结构实体类
*
@@ -38,6 +39,7 @@ public class TreeSelect implements Serializable
this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
public TreeSelect(SysMenu menu)
{
this.id = menu.getMenuId();
@@ -31,6 +31,9 @@ public class SysDept extends BaseEntity
/** 部门名称 */
private String deptName;
/** 部门类型 */
private Integer deptType;
/** 显示顺序 */
private Integer orderNum;
@@ -52,6 +55,14 @@ public class SysDept extends BaseEntity
/** 父部门名称 */
private String parentName;
public Integer getDeptType() {
return deptType;
}
public void setDeptType(Integer deptType) {
this.deptType = deptType;
}
/** 子部门 */
private List<SysDept> children = new ArrayList<SysDept>();
@@ -0,0 +1,38 @@
package com.ruoyi.common.enums;
/**
* @author wangqiong
* @description 修改案件的提交状态
* @date 2023-11-17 14:05
*/
public enum UpdateSubmitStatus
{
UNCOMMITTED(0, "未提交"),
COMMITTED(1, "已提交"),
REVOKE(2, "撤销"),
AGREE(3, "同意已修改的案件"),
REFUSE(4, "拒绝已修改的案件"),
AGREE_REVOKE(5, "同意撤销修改"),
REFUSE_REVOKE(6, "拒绝撤销修改"),
;
private final Integer code;
private final String text;
UpdateSubmitStatus(Integer code, String text)
{
this.code = code;
this.text = text;
}
public Integer getCode()
{
return code;
}
public String getText()
{
return text;
}
}
@@ -0,0 +1,33 @@
package com.ruoyi.common.enums;
/**
* @author wangqiong
* @description 是否枚举
* @date 2023-11-17 14:05
*/
public enum YesOrNoEnum
{
NO(0, "否"),
YES(1, "是"),
;
private final Integer code;
private final String text;
YesOrNoEnum(Integer code, String text)
{
this.code = code;
this.text = text;
}
public Integer getCode()
{
return code;
}
public String getText()
{
return text;
}
}
@@ -11,12 +11,19 @@ import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.activation.DataHandler;
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.util.ByteArrayDataSource;
import javax.validation.constraints.NotNull;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.Security;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -80,6 +87,84 @@ public class EmailOutUtil {
////System.out.println("发送成功:" + from + ":to:" + to);
}
/**
* @param to 收件人
* @param message 邮件内容
* @param subject 邮件主题
* @param fileList 邮件附件
*/
public Boolean sendEmil(String to, String message, String subject, List<File> fileList, File file) {
try {
String messageContent = "<html><body><p style=\"font-family: Arial, sans-serif; font-size: 18px;\">"+message+"。</p></body></html>";
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(messageContent, "text/html;charset=utf-8");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
//设置邮件会话参数
Properties props = new Properties();
//邮箱的发送服务器地址
props.setProperty("mail.smtp.host", "smtp.163.com");
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
//邮箱发送服务器端口,这里设置为465端口
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
//获取到邮箱会话,利用匿名内部类的方式,将发送者邮箱用户名和密码授权给jvm
Session session = Session.getDefaultInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(usernameOut, passwordOut);
}
});
//通过会话,得到一个邮件,用于发送
Message msg = new MimeMessage(session);
//设置发件人
msg.setFrom(new InternetAddress(usernameOut));
//设置收件人,to为收件人,cc为抄送,bcc为密送
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(to, false));
msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(to, false));
//设置邮件消息
msg.setSubject(subject);
msg.setText(message);
msg.setDescription("messageutf-8html");
//设置发送的日期
msg.setSentDate(new Date());
// 创建邮件正文
MimeMultipart multipart = new MimeMultipart();
// MimeBodyPart bodyPart = new MimeBodyPart();
// bodyPart.setContent("This is the body of the email", "text/html");
multipart.addBodyPart(messageBodyPart);
// 添加附件
if (file != null) {
MimeBodyPart attachmentPart = new MimeBodyPart();
attachmentPart.attachFile(file);
attachmentPart.setFileName(MimeUtility.encodeText(file.getName()));
multipart.addBodyPart(attachmentPart);
//将multipart对象放入邮件
msg.setContent(multipart);
} else if (fileList != null && fileList.size() > 0) {
// 添加附件(多个)
if (fileList != null && fileList.size() > 0) {
for (File tempfile : fileList) {
MimeBodyPart attachmentPart = new MimeBodyPart();
attachmentPart.attachFile(tempfile);
attachmentPart.setFileName(MimeUtility.encodeText(tempfile.getName()));
multipart.addBodyPart(attachmentPart);
}
msg.setContent(multipart);
}
}
//调用Transport的send方法去发送邮件
Transport.send(msg);
} catch (Exception e) {
e.printStackTrace();
return Boolean.FALSE;
}
return Boolean.TRUE;
}
/**
* 发送带附件的邮件信息
*
@@ -0,0 +1,57 @@
package com.ruoyi.common.utils;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
/**
* @author wangqiong
* @description 根据身份证号提取有效信息
* @date 2023-12-11 11:45
*/
public class IdCardUtils {
/**
* 通过身份证号码获取出生日期、性别、年龄
* @param certificateNo
* @return 返回的出生日期格式:1990-01-01 性别格式:1-女,0-男
*/
public static Map<String, String> getBirAgeSex(String certificateNo) {
String birthday = "";
String age = "";
String sexCode = "";
int year = Calendar.getInstance().get(Calendar.YEAR);
char[] number = certificateNo.toCharArray();
boolean flag = true;
if (number.length == 15) {
for (int x = 0; x < number.length; x++) {
if (!flag) return new HashMap<String, String>();
flag = Character.isDigit(number[x]);
}
} else if (number.length == 18) {
for (int x = 0; x < number.length - 1; x++) {
if (!flag) return new HashMap<String, String>();
flag = Character.isDigit(number[x]);
}
}
if (flag && certificateNo.length() == 15) {
birthday = "19" + certificateNo.substring(6, 8) + "-"
+ certificateNo.substring(8, 10) + "-"
+ certificateNo.substring(10, 12);
sexCode = Integer.parseInt(certificateNo.substring(certificateNo.length() - 3, certificateNo.length())) % 2 == 0 ? "1" : "0";
age = (year - Integer.parseInt("19" + certificateNo.substring(6, 8))) + "";
} else if (flag && certificateNo.length() == 18) {
birthday = certificateNo.substring(6, 10) + "-"
+ certificateNo.substring(10, 12) + "-"
+ certificateNo.substring(12, 14);
sexCode = Integer.parseInt(certificateNo.substring(certificateNo.length() - 4, certificateNo.length() - 1)) % 2 == 0 ? "1" : "0";
age = (year - Integer.parseInt(certificateNo.substring(6, 10))) + "";
}
Map<String, String> map = new HashMap<String, String>();
map.put("birthday", birthday);
map.put("age", age);
map.put("sexCode", sexCode);
return map;
}
}
@@ -0,0 +1,48 @@
package com.ruoyi.common.utils;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import com.ruoyi.common.utils.uuid.UUID;
import java.math.BigInteger;
import java.util.Random;
/**
* 雪花算法工具类
* zq
* @since 2020/10/30 9:59
**/
public class IdWorkerUtil {
private static final long EPOCH = 1479533469598L; //开始时间,固定一个小于当前时间的毫秒数
private static final int max12bit = 4095;
private static final long max41bit= 1099511627775L;
private static String machineId = "" ; // 机器ID
/**
*
* 创建ID
*
* @return
*
*/
public static Long getId(){
long time = System.currentTimeMillis() - EPOCH + max41bit;
// 二进制的 毫秒级时间戳
String base = Long.toBinaryString(time);
// 序列数
String randomStr = StringUtils.leftPad(Integer.toBinaryString(new Random().nextInt(max12bit)),12,'0');
if(StringUtils.isNotEmpty(machineId)){
machineId = StringUtils.leftPad(machineId, 10, '0');
}
//拼接
String appendStr = base + machineId + randomStr;
// 转化为十进制 返回
BigInteger bi = new BigInteger(appendStr, 2);
return Long.valueOf(bi.toString());
}
}
@@ -0,0 +1,53 @@
package com.ruoyi.common.utils;
import java.math.BigDecimal;
import java.text.NumberFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author wangqiong
* @description 金额格式化
* @date 2023-12-11 11:45
*/
public class MoneyFormatUtils {
/**
* 增加千分位
* @param money
* @return
*/
public static String moneyFormat(String money) {
// 金额格式化
try {
Double.parseDouble(money);
} catch (NumberFormatException e) {
String regEx = "[^0-9]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(money);
String result = m.replaceAll("").trim();
BigDecimal bigDecimal = null;
if (money.contains("百")) {
bigDecimal = new BigDecimal(result).multiply(new BigDecimal("100"));
} else if (money.contains("千")) {
bigDecimal = new BigDecimal(result).multiply(new BigDecimal("1000"));
} else if (money.contains("万")) {
bigDecimal = new BigDecimal(result).multiply(new BigDecimal("10000"));
} else if (money.contains("百万")) {
bigDecimal = new BigDecimal(result).multiply(new BigDecimal("1000000"));
} else if (money.contains("千万")) {
bigDecimal = new BigDecimal(result).multiply(new BigDecimal("10000000"));
} else if (money.contains("亿")) {
bigDecimal = new BigDecimal(result).multiply(new BigDecimal("100000000"));
}
NumberFormat format = NumberFormat.getInstance();
return format.format(bigDecimal);
}
return "";
}
}
@@ -0,0 +1,57 @@
package com.ruoyi.common.utils;
import cn.hutool.core.util.StrUtil;
import java.lang.reflect.Field;
/**
* 反射工具类
*/
public class ObjectFieldUtils {
public static String getValue(Object obj,String fieldName){
if(obj==null || StrUtil.isEmpty(fieldName)){
return "";
}
Field field=null;
try{
field=obj.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
return String.valueOf(field.get(obj)==null?"":field.get(obj));
}catch (Exception e){
if(obj.getClass().getSuperclass()!=Object.class){
try{
field=obj.getClass().getSuperclass().getDeclaredField(fieldName);
field.setAccessible(true);
return String.valueOf(field.get(obj)==null?"":field.get(obj));
}catch (Exception e1){
e.printStackTrace();
}
}
e.printStackTrace();
}
return null;
}
public static void setValue(Object obj,String fieldName,Object value){
if(obj==null || StrUtil.isEmpty(fieldName)||value==null){
return;
}
Field field=null;
try{
field=obj.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(obj,value);
}catch (Exception e){
if(obj.getClass().getSuperclass()!=Object.class){
try{
field=obj.getClass().getSuperclass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(obj,value);
}catch (Exception e1){
e.printStackTrace();
}
}
e.printStackTrace();
}
}
}
@@ -0,0 +1,147 @@
package com.ruoyi.common.utils;
import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;
import com.documents4j.job.LocalConverter;
import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerFontProvider;
import com.itextpdf.tool.xml.XMLWorkerHelper;
import com.ruoyi.common.config.RuoYiConfig;
import com.tencentcloudapi.teo.v20220901.models.CC;
import lombok.extern.slf4j.Slf4j;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.file.Files;
import static cn.hutool.core.util.ClassLoaderUtil.getClassLoader;
/**
* @author wangqiong
* @description pdf转换工具类
* @date 2023-11-28 15:20
*/
@Slf4j
public class PdfUtils {
/**
* 将html字符串转为pdf
* @param pdfFilePath 保存的路径
* @param htmlcontent:必须是完整的html格式,比如<html><body>123</body></html>
*/
public static boolean htmlStringConvertToPDF(String pdfFilePath, String htmlcontent) {
Document document = new Document();
PdfWriter writer = null;
try {
writer = PdfWriter.getInstance(document, new FileOutputStream(pdfFilePath));
// 设置底部距离60,解决重叠问题
document.setPageSize(PageSize.A4);
document.setMargins(50, 45, 50, 60);
document.setMarginMirroring(false);
document.open();
// 解决PDF中文不显示
String fontPath = "/D:/simsun.ttf"; //字体文件路径
XMLWorkerFontProvider provider = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
provider.register(fontPath);//注册字体
log.error("注册字体");
XMLWorkerHelper.getInstance().parseXHtml(writer, document, new ByteArrayInputStream(htmlcontent.getBytes("UTF-8")), Charset.forName("UTF-8"), provider);
} catch (Exception e) {
log.error("htmlStringConvertToPDF error", e.getMessage());
return false;
} finally {
if (null != document) {
document.close();
}
if (null != writer) {
writer.close();
}
}
return true;
}
/**
* 根据html文件生成pdf
* @param pdfFilePath pdf文件生成路径
* @param htmlFilePath html文件路径
*/
public static boolean htmlFileConvertToPDF(String pdfFilePath, String htmlFilePath) {
Document document = new Document();
PdfWriter writer = null;
FileOutputStream fileOutputStream = null;
FileInputStream fileInputStream = null;
try {
fileOutputStream = new FileOutputStream(pdfFilePath);
writer = PdfWriter.getInstance(document, fileOutputStream);
// 设置底部距离60,解决重叠问题
document.setPageSize(PageSize.A4);
document.setMargins(50, 45, 50, 60);
document.setMarginMirroring(false);
document.open();
StringBuffer sb = new StringBuffer();
fileInputStream = new FileInputStream(htmlFilePath);
BufferedReader br = new BufferedReader(new InputStreamReader(fileInputStream, "UTF-8"));
String readStr = "";
while ((readStr = br.readLine()) != null) {
sb.append(readStr);
}
XMLWorkerHelper.getInstance().parseXHtml(writer, document, new ByteArrayInputStream(sb.toString().getBytes("Utf-8")), null, Charset.forName("UTF-8"));
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != document) {
document.close();
}
if (null != writer) {
writer.close();
}
if (null != fileInputStream) {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != fileOutputStream) {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return true;
}
/**
* docx转pdf
* @param pdfSaveDirectory:文件保存目录,例:D:\\pdf\\
* @param fileName:保存的文件名称,例:test.pdf
* @param docxFile:需要转换的docx文件
* @return
*/
private static boolean docxConvertToPDF(String pdfSaveDirectory,String fileName,File docxFile) {
// 不存在则新建
File directory = new File(pdfSaveDirectory);
if (!directory.exists()) {
directory.mkdirs();
}
String pdfFilePath = pdfSaveDirectory + fileName;
File outputFile = new File(pdfFilePath);
try {
InputStream docxInputStream = Files.newInputStream(docxFile.toPath());
OutputStream outputStream = Files.newOutputStream(outputFile.toPath());
IConverter converter = LocalConverter.builder().build();
converter.convert(docxInputStream).as(DocumentType.DOCX).to(outputStream).as(DocumentType.PDF).execute();
docxInputStream.close();
outputStream.close();
} catch (Exception e) {
return false;
}
return true;
}
}
@@ -0,0 +1,86 @@
package com.ruoyi.common.utils;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.*;
/**
* @author wangqiong
* @description 读取文件内容
* @date 2023-12-11 11:45
*/
public class ReadFileUtils {
public static String readerTxtFile(String filePath){
BufferedReader br=null;
StringBuilder result=new StringBuilder();
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(filePath)),"GBK"));
String line=null;
while ((line=br.readLine())!=null) {
result.append(line).append("\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null!=br){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result.toString();
}
public static String readWord(String filePath) throws Exception{
File file = new File(filePath);
if(file.length()==0) return ""; // 需要操作原因是可能会空文件问题,如果不做处理,在下面读取中会报错
StringBuffer sb = new StringBuffer();
String buffer = "";
try {
if (filePath.endsWith(".doc")) {
InputStream is = new FileInputStream(file);
WordExtractor ex = new WordExtractor(is);
buffer = ex.getText();
if(buffer.length() > 0){
//使用回车换行符分割字符串
String [] arry = buffer.split("r\\n");
for (String string : arry) {
sb.append(string.trim());
}
}
} else if (filePath.endsWith(".docx")) {
FileInputStream fis = new FileInputStream(file);
XWPFDocument xdoc = new XWPFDocument(fis);
XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);
buffer = extractor.getText();
sb.append(buffer!=null?buffer:"");
// OPCPackage opcPackage = POIXMLDocument.openPackage(filePath);
// XWPFWordExtractor extractor = new XWPFWordExtractor(opcPackage);
// buffer = extractor.getText();
// if(buffer.length() > 0){
// //使用换行符分割字符串
// String [] arry = buffer.split("\n");
// for (String string : arry) {
// sb.append(string.trim());
// }
// }
} else {
return null;
}
return sb.toString();
} catch (Exception e) {
System.out.print("error---->"+filePath);
e.printStackTrace();
return null;
}
}
}
@@ -0,0 +1,123 @@
package com.ruoyi.common.utils;
import com.ruoyi.common.config.EsignDemoConfig;
import com.ruoyi.common.constant.EsignHeaderConstant;
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
import com.ruoyi.common.enums.EsignRequestType;
import com.ruoyi.common.exception.EsignDemoException;
import com.ruoyi.common.utils.bean.EsignFileBean;
import java.util.Map;
public class SealUtil {
private static String eSignHost = EsignDemoConfig.EsignHost;
private static String eSignAppId = EsignDemoConfig.EsignAppId;
private static String eSignAppSecret = EsignDemoConfig.EsignAppSecret;
/**
* 获取机构认证&授权页面链接
*
* @return
*/
public static EsignHttpResponse getOrgEmpower() throws EsignDemoException {
String apiaddr = "/v3/org-auth-url";
String nickName = "何进波";
String phonenumber = "15191509780";
String deptName = "西安云美公司";
String jsonParm = "{\n" +
" \"orgAuthConfig\": {\n" +
" \"orgName\": \"" + deptName + " \",\n" +
" \"transactorInfo\": {\n" +
" \"psnAccount\": \"" + phonenumber + "\",\n" +
" \"psnInfo\": {\n" +
" \"psnName\": \"" + nickName + "\",\n" +
" \"psnMobile\": \"" + phonenumber + "\"\n" +
" }\n" +
" }\n" +
" },\n" +
" \"authorizeConfig\": {\n" +
" \"authorizedScopes\": [\n" +
" \"get_org_identity_info\",\n" +
" \"get_psn_identity_info\",\n" +
" \"org_initiate_sign\",\n" +
" \"psn_initiate_sign\",\n" +
" \"manage_org_resource\",\n" +
" \"manage_psn_resource\",\n" +
" \"use_org_order\"\n" +
" ]\n" +
" }\n" +
"}";
//请求方法
EsignRequestType requestType = EsignRequestType.POST;
//生成请求签名鉴权方式的Header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
}
/**
* 查询认证授权流程详情
*
* @return
*/
public static EsignHttpResponse queryAuthProcess(String authFlowId ) throws EsignDemoException {
String apiaddr = "/v3/auth-flow/" + authFlowId;
//请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null
String jsonParm=null;
//请求方法
EsignRequestType requestType= EsignRequestType.GET;
//生成签名鉴权方式的的header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
}
/**
* 步骤一:获取印章图片上传地址fileUploadUrl
*
* @return
*/
public static EsignHttpResponse getFileUploadUrl(String filePath) throws EsignDemoException {
//自定义的文件封装类,传入文件地址可以获取文件的名称大小,文件流等数据
EsignFileBean esignFileBean = new EsignFileBean(filePath);
String apiaddr="/v3/files/file-key";
//请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null
String jsonParm="{\n" +
" \"contentMd5\": \""+esignFileBean.getFileContentMD5()+"\",\n" +
" \"fileName\":\""+esignFileBean.getFileName()+"\"," +
" \"fileSize\": "+esignFileBean.getFileSize()+",\n" +
" \"contentType\": \""+ EsignHeaderConstant.CONTENTTYPE_STREAM.VALUE()+"\"\n" +
"}";
//请求方法
EsignRequestType requestType= EsignRequestType.POST;
//生成签名鉴权方式的的header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
}
/**
* 步骤二:将印章图片文件流上传到fileUploadUrl
*
* @return
*/
public static EsignHttpResponse fileStreamUpload(String uploadUrl,String filePath) throws EsignDemoException {
//根据文件地址获取文件contentMd5
EsignFileBean esignFileBean = new EsignFileBean(filePath);
//请求方法
EsignRequestType requestType= EsignRequestType.PUT;
return EsignHttpHelper.doUploadHttp(uploadUrl,requestType,esignFileBean.getFileBytes(),esignFileBean.getFileContentMD5(), EsignHeaderConstant.CONTENTTYPE_STREAM.VALUE(),true);
}
public static void main(String[] args) throws Exception {
queryAuthProcess("OF-2b1e52987408005c");
// createOrgByImage();
// getOrgEmpower();
// queryAuthProcess("OF-2b00885895080028");
// getFileUploadUrl();
// String uplodUrl = "https://esignoss.esign.cn/7438987614/8e278262-5960-4004-bff3-297c11e2652e/Snipaste_2023-10-27_09-59-23.jpg?Expires=1699439095&OSSAccessKeyId=STS.NTZ8NBHcTVQXgsxVRH4iyC5AY&Signature=3yu3ZQifphZsnOgN0CI0SJdqFhY%3D&callback-var=eyJ4OmZpbGVfa2V5IjoiJDliM2Y3ZjkyLTdkOWUtNGZkZi04NWU4LWE4ZDU4MzEwZjIzOCQ0MTQwNTE2ODk5In0%3D%0A&callback=eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9zbWx0YXBpLnRzaWduLmNuL2FueWRvb3IvZmlsZS1zeXN0ZW0vY2FsbGJhY2svYWxpb3NzIiwiY2FsbGJhY2tCb2R5IjogIntcIm1pbWVUeXBlXCI6JHttaW1lVHlwZX0sXCJzaXplXCI6ICR7c2l6ZX0sXCJidWNrZXRcIjogJHtidWNrZXR9LFwib2JqZWN0XCI6ICR7b2JqZWN0fSxcImV0YWdcIjogJHtldGFnfSxcImZpbGVfa2V5XCI6JHt4OmZpbGVfa2V5fX0iLCJjYWxsYmFja0JvZHlUeXBlIjogImFwcGxpY2F0aW9uL2pzb24ifQ%3D%3D%0A&security-token=CAIS%2BAF1q6Ft5B2yfSjIr5fvc%2FT2pbx14ZOzZVXJslIdOOZVrPDquzz2IHtKdXRvBu8Xs%2F4wnmxX7f4YlqB6T55OSAmcNZEoWWWTbdH4MeT7oMWQweEurv%2FMQBqyaXPS2MvVfJ%2BOLrf0ceusbFbpjzJ6xaCAGxypQ12iN%2B%2Fm6%2FNgdc9FHHPPD1x8CcxROxFppeIDKHLVLozNCBPxhXfKB0ca0WgVy0EHsPnvm5DNs0uH1AKjkbRM9r6ceMb0M5NeW75kSMqw0eBMca7M7TVd8RAi9t0t1%2FIVpGiY4YDAWQYLv0rda7DOltFiMkpla7MmXqlft%2BhzcgeQY0pc%2FRqAAXGx8FDtPQxW3RSasFgOFBJaxbYjH3WFFrbV25v8a%2BS9OWPAYqOCvmkxbM7N4hOge2iaBAG4SRLMb6ypPJ15YEpoZI8KkdeDvQJryZEWchmc0Lhz0yDRqrN%2BzYhgu4VpBJu1WJg%2FyXrvAZ0gWhBN%2BILrblSR9QHVWVVYZTAKN4ejIAA%3D";
// fileStreamUpload(uplodUrl,"D:\\develop\\Snipaste_2023-10-27_09-59-23.jpg");
}
}
@@ -25,7 +25,7 @@ public class SmsUtils {
//API的SecretKey
private static final String SECRET_KEY = "QjphKo8zkHZigT8j9PVtFPJyfIvO3d6V";
//签名内容
private static final String SIGN_NAME = "西安云美电子科技有限公司";
private static final String SIGN_NAME = "乙巢智慧仲裁网";
public static Boolean sendSms(SendSmsRequest request) {
Credential cred = new Credential(SECRET_ID, SECRET_KEY );
@@ -0,0 +1,34 @@
package com.ruoyi.common.utils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* @author wangqiong
* @description 获取bean工具类
* @date 2023-12-11 11:45
*/
@Component
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if(SpringUtil.applicationContext==null){
SpringUtil.applicationContext=applicationContext;
}
}
public static ApplicationContext getApplicationContext(){
return applicationContext;
}
public static <T>T getBean(Class<T> clazz){
return getApplicationContext().getBean(clazz);
}
public static <T>T getBean(String name, Class<T> clazz){
return getApplicationContext().getBean(name,clazz);
}
}
@@ -1,19 +1,26 @@
package com.ruoyi.common.utils;
import cn.hutool.core.io.resource.ClassPathResource;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.data.*;
import com.deepoove.poi.data.style.ParagraphStyle;
import com.deepoove.poi.data.style.Style;
import com.deepoove.poi.policy.PictureRenderPolicy;
import com.deepoove.poi.util.PoitlIOUtils;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.commons.io.FileUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.wp.usermodel.Paragraph;
import org.apache.poi.xwpf.usermodel.*;
import javax.print.Doc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -136,7 +143,7 @@ public class WordUtil {
/**
* 构建图片内容
*/
public static PictureRenderData rebuildImageContent(Integer with, Integer height, String imageUrl, String relatedPath, Byte[] imageBytes) {
public static PictureRenderData rebuildImageContent(Integer with, Integer height, String imageUrl, String relatedPath) {
PictureRenderData pictureRenderData = null;
if (!StringUtils.isBlank(imageUrl)) {
//pictureRenderData = Pictures.of(imageUrl).size(with, height).create();
@@ -146,11 +153,58 @@ public class WordUtil {
// Pictures.PictureBuilder pictureBuilder = Pictures.of("https://res.wx.qq.com/a/wx_fed/weixin_portal/res/static/img/1EtCRvm.png");
}
return pictureRenderData;
}
public static String getResultFilePath(Map<String, Object> datas, Configure config, String modalFilePath, String resultFilePath) throws IOException {
//获取word模板和填充数据
XWPFTemplate template = XWPFTemplate.compile(modalFilePath, config).render(datas);
template.writeAndClose(new FileOutputStream(resultFilePath));
return resultFilePath;
}
public static void changeText(XWPFDocument document) {
//获取文字段落集合
List<XWPFParagraph> paragraphs = document.getParagraphs();
//所有类型集合(文字段落、表格、图片等)
List<IBodyElement> listBe = document.getBodyElements();
List<Integer> runList = new ArrayList<>();
int n = 0;
for (int i = 0; i < listBe.size(); i++) {
//BodyElementType.PARAGRAPH : 枚举中的文字段落
//文字为空时,先添加到list中;
//注意picture类型也在PARAGRAPH中,需要校验embeddedPictures的长度是否为0
//为0表示空行,大于0表示有图片,可能还有其他类型,暂时没遇到,各位自行斟酌
if (paragraphs.size() > n && !paragraphs.get(n).getRuns().isEmpty()) {
if (StringUtils.isEmpty(paragraphs.get(n).getRuns().get(0).text())
&& paragraphs.get(n).getRuns().get(0).getEmbeddedPictures().size() == 0) {
runList.add(i);
}
}
n++;
//非文字段落n-1
if (listBe.get(i).getElementType() != BodyElementType.PARAGRAPH) {
n--;
}
}
//遍历list删除
if (!runList.isEmpty()) {
for (int i = runList.size() - 1; i >= 0; i--) {
int index = runList.get(i);
if (index >= 0 && index < document.getBodyElements().size()) {
document.removeBodyElement(index);
}
}
}
}
}
@@ -288,4 +288,18 @@ public class FileUtils
String baseName = FilenameUtils.getBaseName(fileName);
return baseName;
}
/**
* 获取文件后缀名
* @param file
* @return
*/
public static String getFileExtension(File file) {
String name = file.getName();
int lastIndexOfDot = name.lastIndexOf(".");
if (lastIndexOfDot != -1 && lastIndexOfDot < name.length() - 1) {
return name.substring(lastIndexOfDot + 1);
} else {
return "";
}
}
}
@@ -82,10 +82,12 @@ public class SaaSAPIFileUtils {
//生成签名鉴权方式的的header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,false);
}
public static void main1(String[] args) throws EsignDemoException {
public static void main(String[] args) throws EsignDemoException {
String filePath = "D:\\home\\ruoyi\\uploadPath\\upload\\2023\\10\\7\\23893bfd3f2249ffa5c82850c11c482e.docx";
EsignHttpResponse uploadUrl = getUploadUrl(filePath);
String body = uploadUrl.getBody();
@@ -102,27 +104,30 @@ public class SaaSAPIFileUtils {
// System.out.println("这是获取文件上传状态的结果:"+fileStatus.getBody());
// getFileStatus("a808f1f39a744357a2f018e4ab34c55d");
// fileDownloadUrl("");
}
public static void main(String[] args) throws EsignDemoException {
String signFlowId = "41e6732b48c54c63a91b2379c352212d";
Gson gson = new Gson();
EsignHttpResponse fileDownload = fileDownloadUrl(signFlowId);
JsonObject fileDownloadJsonObject = gson.fromJson(fileDownload.getBody(),JsonObject.class);
JsonObject fileDownloadData = fileDownloadJsonObject.getAsJsonObject("data");
JsonArray filesArray = fileDownloadData.get("files").getAsJsonArray();
if(filesArray!=null&&filesArray.size()>0){
JsonObject fileObject = (JsonObject)filesArray.get(0);
String fileDownloadUrl = fileObject.get("downloadUrl").toString();
String fileName = java.util.UUID.randomUUID().toString().replace("-", "") + ".pdf";
String savePath = "/home/ruoyi/uploadPath/upload";
LocalDate now = LocalDate.now();
String year = Integer.toString(now.getYear());
String month = String.format("%02d", now.getMonthValue());
String day = String.format("%02d", now.getDayOfMonth());
String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
String dir = "F:\\ymkf\\shanghaixm\\testCaijueshu\\" + fileName;
String fileDownloadUrlnew = fileDownloadUrl.substring(1,fileDownloadUrl.length()-1);
FileTransformation.downLoadFileByUrl(fileDownloadUrlnew,dir);
// Gson gson = new Gson();
// EsignHttpResponse fileDownload = fileDownloadUrl(signFlowId);
// JsonObject fileDownloadJsonObject = gson.fromJson(fileDownload.getBody(),JsonObject.class);
// JsonObject fileDownloadData = fileDownloadJsonObject.getAsJsonObject("data");
// JsonArray filesArray = fileDownloadData.get("files").getAsJsonArray();
// if(filesArray!=null&&filesArray.size()>0){
// JsonObject fileObject = (JsonObject)filesArray.get(0);
// String fileDownloadUrl = fileObject.get("downloadUrl").toString();
// String fileName = java.util.UUID.randomUUID().toString().replace("-", "") + ".pdf";
// String savePath = "/home/ruoyi/uploadPath/upload";
// LocalDate now = LocalDate.now();
// String year = Integer.toString(now.getYear());
// String month = String.format("%02d", now.getMonthValue());
// String day = String.format("%02d", now.getDayOfMonth());
// String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
// String fileDownloadUrlnew = fileDownloadUrl.substring(1,fileDownloadUrl.length()-1);
// FileTransformation.downLoadFileByUrl(fileDownloadUrlnew,dir);
// }
}
@@ -130,6 +135,4 @@ public class SaaSAPIFileUtils {
}
}
@@ -0,0 +1,22 @@
package com.ruoyi.common.utils.thread;
import lombok.Data;
import java.util.List;
import java.util.function.Function;
/**
* @author wangqiong
* @date 2023/11/25 9:25
**/
@Data
public class MultipleThreadListParam<T,R> {
/**需要执行的方法*/
private Function<List<T>,R> function;
/**参数ID*/
private List<T> list;
public MultipleThreadListParam(Function<List<T>,R> function, List<T> list){
this.function=function;
this.list=list;
}
}
@@ -0,0 +1,21 @@
package com.ruoyi.common.utils.thread;
import lombok.Data;
import java.util.function.Function;
/**
* @author wangqiong
* @date 2023/11/25 9:25
**/
@Data
public class MultipleThreadStringParam<T> {
/**需要执行的方法*/
private Function<String,T> function;
/**参数ID*/
private String ids;
public MultipleThreadStringParam(Function<String,T> function, String ids){
this.function=function;
this.ids=ids;
}
}
@@ -0,0 +1,592 @@
package com.ruoyi.common.utils.thread;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.annotation.VoidFunction;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.exception.ServiceException;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.Function;
/**
* @description 多线程操作数据库,一个线程异常全部回滚
* @Author wangqiong
* @Date 2023/11/25 14:02
* @Version V1.0
**/
@Slf4j
public class MultipleThreadWorkUtil {
private static int SIMPLE_TIME_COUNT=1000;
public static <R,A>List<R> exec(Function<List<A>,R> execFun, List<A> list){
List<R> returnList=new ArrayList<>();
if(CollectionUtil.isEmpty(list)){
return returnList;
}
if(list.size()<SIMPLE_TIME_COUNT){
return Arrays.asList(execFun.apply(list));
}
int times=list.size()/SIMPLE_TIME_COUNT;
if(list.size()%SIMPLE_TIME_COUNT>0){
times++;
}
CountDownLatch mainLatch=new CountDownLatch(1);
//监控子线程
CountDownLatch threadLatch=new CountDownLatch(times);
//根据子线程执行结果判断是否需要回滚
BlockingDeque<Boolean> resultList=new LinkedBlockingDeque<>();
//必须使用对象,如果使用变量会造成线程之间不能共享变量值
RollBack rollBack=new RollBack(false);
ExecutorService executorService=Executors.newFixedThreadPool(times);
List<Future<R>> futureList=new ArrayList<>();
for (int i = 0; i <times ; i++) {
if(i*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT<list.size()){
// 创建子线程
Future<R> future=executorService.submit(new ExecThread(mainLatch,threadLatch,rollBack,resultList,list.subList(i*SIMPLE_TIME_COUNT,i*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT),execFun));
futureList.add(future);
}else{
Future<R> future=executorService.submit(new ExecThread(mainLatch,threadLatch,rollBack,resultList,list.subList(i*SIMPLE_TIME_COUNT,list.size()),execFun));
futureList.add(future);
}
}
setResult(executorService,returnList,futureList,resultList,
mainLatch,threadLatch,rollBack,times);
return returnList;
}
public static <A>void exec(VoidFunction<Set<A>> execFun, Set<A> set){
if(set.size()<SIMPLE_TIME_COUNT){
execFun.apply(set);
return;
}
int times=set.size()/SIMPLE_TIME_COUNT;
if(set.size()%SIMPLE_TIME_COUNT>0){
times++;
}
CountDownLatch mainLatch=new CountDownLatch(1);
//监控子线程
CountDownLatch threadLatch=new CountDownLatch(times);
//根据子线程执行结果判断是否需要回滚
BlockingDeque<Boolean> resultList=new LinkedBlockingDeque<>();
//必须使用对象,如果使用变量会造成线程之间不能共享变量值
RollBack rollBack=new RollBack(false);
ExecutorService executorService=Executors.newFixedThreadPool(times);
List<A> list=new ArrayList<>(set);
List<Future> futureList=new ArrayList<>();
for (int i = 0; i <times ; i++) {
Future future;
if(i*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT<list.size()){
future=executorService.submit(new VoidExecThread(mainLatch,threadLatch,rollBack,resultList,list.subList(i*SIMPLE_TIME_COUNT,i*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT),execFun));
}else{
future=executorService.submit(new VoidExecThread(mainLatch,threadLatch,rollBack,resultList,list.subList(i*SIMPLE_TIME_COUNT,list.size()),execFun));
}
futureList.add(future);
}
/**存放子线程返回结果*/
List<Boolean> backUpResult=new ArrayList<>();
try{
//
boolean await=threadLatch.await(times*3,TimeUnit.SECONDS);
if(!await){
rollBack.setRollBack(true);
}else{
//查看执行情况,如果有存在需要回滚的线程,则全部回滚
for (int i = 0; i <times ; i++) {
Boolean result=resultList.take();
backUpResult.add(result);
if(result){
/**有线程执行异常,需要回滚子线程*/
rollBack.setRollBack(true);
}
}
}
}catch (InterruptedException e){
e.printStackTrace();
throw new ServiceException(e.getMessage());
}finally {
//子线程再次继续执行
mainLatch.countDown();
executorService.shutdown();
}
/**检查子线程是否有异常,有异常整体回滚*/
for (int i = 0; i <times ; i++) {
if(CollectionUtil.isNotEmpty(backUpResult)){
Boolean result=backUpResult.get(i);
if(result){
/**有线程执行异常,需要回滚子线程*/
throw new ServiceException("多线程执行异常");
}
}else{
throw new ServiceException("多线程执行异常");
}
}
for (Future future : futureList) {
try {
future.get();
} catch (Exception e) {
throw new ServiceException(e.getMessage());
}
}
}
public static <R>List<R> execFun(MultipleThreadStringParam<R>...params){
List<R> returnList=new ArrayList<>();
if(ArrayUtil.isEmpty(params)){
return returnList;
}
List<Integer> threadCountList=new ArrayList<>();
for (MultipleThreadStringParam param : params) {
List<String> idList= Arrays.asList(param.getIds().split(Constants.SPLIT_COMMA));
if(idList.size()<SIMPLE_TIME_COUNT){
threadCountList.add(1);
}else{
if(idList.size()%SIMPLE_TIME_COUNT>0){
threadCountList.add(idList.size()/SIMPLE_TIME_COUNT+1);
}else{
threadCountList.add(idList.size()/SIMPLE_TIME_COUNT);
}
}
}
int times=0;
for (Integer count : threadCountList) {
times+=count;
}
CountDownLatch mainLatch=new CountDownLatch(1);
//监控子线程
CountDownLatch threadLatch=new CountDownLatch(times);
//根据子线程执行结果判断是否需要回滚
BlockingDeque<Boolean> resultList=new LinkedBlockingDeque<>();
//必须使用对象,如果使用变量会造成线程之间不能共享变量值
RollBack rollBack=new RollBack(false);
ExecutorService executorService=Executors.newFixedThreadPool(times);
List<Future<R>> futureList=new ArrayList<>();
for (int i = 0; i < params.length; i++) {
MultipleThreadStringParam param=params[i];
List<String> idList= Arrays.asList(param.getIds().split(Constants.SPLIT_COMMA));
for (int j = 0; j <threadCountList.get(i) ; j++) {
if(j*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT<idList.size()){
Future<R> future=executorService.submit(new ExecByIdsStringThread<>(mainLatch,threadLatch,rollBack,resultList,StrUtil.join(Constants.SPLIT_COMMA,idList.subList(j*SIMPLE_TIME_COUNT,j*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT)),param.getFunction()));
futureList.add(future);
}else{
Future<R> future=executorService.submit(new ExecByIdsStringThread(mainLatch,threadLatch,rollBack,resultList,StrUtil.join(Constants.SPLIT_COMMA,idList.subList(j*SIMPLE_TIME_COUNT,idList.size())),param.getFunction()));
futureList.add(future);
}
}
}
setResult(executorService,returnList,futureList,resultList,
mainLatch,threadLatch,rollBack,times);
return returnList;
}
public static <R,A>List<R> execListFun(MultipleThreadListParam<R,A> ...params){
List<R> returnList=new ArrayList<>();
if(ArrayUtil.isEmpty(params)){
return returnList;
}
List<Integer> threadCountList=new ArrayList<>();
for (MultipleThreadListParam param : params) {
if(param.getList().size()<SIMPLE_TIME_COUNT){
threadCountList.add(1);
}else{
if(param.getList().size()%SIMPLE_TIME_COUNT>0){
threadCountList.add(param.getList().size()/SIMPLE_TIME_COUNT+1);
}else{
threadCountList.add(param.getList().size()/SIMPLE_TIME_COUNT);
}
}
}
int times=0;
for (Integer count : threadCountList) {
times+=count;
}
CountDownLatch mainLatch=new CountDownLatch(1);
//监控子线程
CountDownLatch threadLatch=new CountDownLatch(times);
//根据子线程执行结果判断是否需要回滚
BlockingDeque<Boolean> resultList=new LinkedBlockingDeque<>();
//必须使用对象,如果使用变量会造成线程之间不能共享变量值
RollBack rollBack=new RollBack(false);
ExecutorService executorService=Executors.newFixedThreadPool(times);
List<Future<R>> futureList=new ArrayList<>();
for (int i = 0; i < params.length; i++) {
MultipleThreadListParam param=params[i];
for (int j = 0; j <threadCountList.get(i) ; j++) {
if(j*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT<param.getList().size()){
Future<R> future=executorService.submit(new ExecThread(mainLatch,threadLatch,rollBack,resultList,param.getList().subList(j*SIMPLE_TIME_COUNT,j*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT),param.getFunction()));
futureList.add(future);
}else{
Future<R> future=executorService.submit(new ExecThread(mainLatch,threadLatch,rollBack,resultList,param.getList().subList(j*SIMPLE_TIME_COUNT,param.getList().size()),param.getFunction()));
futureList.add(future);
}
}
}
setResult(executorService,returnList,futureList,resultList,
mainLatch,threadLatch,rollBack,times);
return returnList;
}
public static <R>List<R> execByIds(Function<String,R> execFun,String ids){
List<R> returnList=new ArrayList<>();
if(StrUtil.isEmpty(ids)){
return returnList;
}
List<String> idList= Arrays.asList(ids.split(Constants.SPLIT_COMMA));
if(idList.size()<SIMPLE_TIME_COUNT){
return Arrays.asList(execFun.apply(ids));
}
int times=idList.size()/SIMPLE_TIME_COUNT;
if(idList.size()%SIMPLE_TIME_COUNT>0){
times++;
}
CountDownLatch mainLatch=new CountDownLatch(1);
//监控子线程
CountDownLatch threadLatch=new CountDownLatch(times);
//根据子线程执行结果判断是否需要回滚
BlockingDeque<Boolean> resultList=new LinkedBlockingDeque<>();
//必须使用对象,如果使用变量会造成线程之间不能共享变量值
RollBack rollBack=new RollBack(false);
ExecutorService executorService=Executors.newFixedThreadPool(times);
List<Future<R>> futureList=new ArrayList<>();
for (int i = 0; i <times ; i++) {
if(i*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT<idList.size()){
Future<R> future=executorService.submit(new ExecByIdsStringThread<>(mainLatch,threadLatch,rollBack,resultList,StrUtil.join(Constants.SPLIT_COMMA,idList.subList(i*SIMPLE_TIME_COUNT,i*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT)),execFun));
futureList.add(future);
}else{
Future<R> future=executorService.submit(new ExecByIdsStringThread(mainLatch,threadLatch,rollBack,resultList,StrUtil.join(Constants.SPLIT_COMMA,idList.subList(i*SIMPLE_TIME_COUNT,idList.size())),execFun));
futureList.add(future);
}
}
setResult(executorService,returnList,futureList,resultList,
mainLatch,threadLatch,rollBack,times);
return returnList;
}
public static <R>List<R> execByIds(Function<List<String>,List<R>> execFun,List<String> idList){
List<R> returnList=new ArrayList<>();
if(CollectionUtil.isEmpty(idList)){
return returnList;
}
if(idList.size()<SIMPLE_TIME_COUNT){
return execFun.apply(idList);
}
int times=idList.size()/SIMPLE_TIME_COUNT;
if(idList.size()%SIMPLE_TIME_COUNT>0){
times++;
}
CountDownLatch mainLatch=new CountDownLatch(1);
//监控子线程
CountDownLatch threadLatch=new CountDownLatch(times);
//根据子线程执行结果判断是否需要回滚
BlockingDeque<Boolean> resultList=new LinkedBlockingDeque<>();
//必须使用对象,如果使用变量会造成线程之间不能共享变量值
RollBack rollBack=new RollBack(false);
ExecutorService executorService=Executors.newFixedThreadPool(times);
List<Future<List<R>>> futureList=new ArrayList<>();
for (int i = 0; i <times ; i++) {
if(i*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT<idList.size()){
Future<List<R>> future=executorService.submit(new ExecByIdsStringListThread<>(mainLatch,threadLatch,rollBack,resultList,idList.subList(i*SIMPLE_TIME_COUNT,i*SIMPLE_TIME_COUNT+SIMPLE_TIME_COUNT),execFun));
futureList.add(future);
}else{
Future<List<R>> future=executorService.submit(new ExecByIdsStringListThread(mainLatch,threadLatch,rollBack,resultList,idList.subList(i*SIMPLE_TIME_COUNT,idList.size()),execFun));
futureList.add(future);
}
}
/**存放子线程返回结果*/
List<Boolean> backUpResult=new ArrayList<>();
try{
//
boolean await=threadLatch.await(times*3,TimeUnit.SECONDS);
if(!await){
rollBack.setRollBack(true);
}else{
//查看执行情况,如果有存在需要回滚的线程,则全部回滚
for (int i = 0; i <times ; i++) {
Boolean result=resultList.take();
backUpResult.add(result);
if(result){
/**有线程执行异常,需要回滚子线程*/
rollBack.setRollBack(true);
}
}
}
}catch (InterruptedException e){
e.printStackTrace();
throw new ServiceException("多线程执行异常");
}finally {
//子线程再次继续执行
mainLatch.countDown();
executorService.shutdown();
}
/**检查子线程是否有异常,有异常整体回滚*/
for (int i = 0; i <times ; i++) {
if(CollectionUtil.isNotEmpty(backUpResult)){
Boolean result=backUpResult.get(i);
if(result){
/**有线程执行异常,需要回滚子线程*/
throw new ServiceException("多线程执行异常");
}
}else{
throw new ServiceException("多线程执行异常");
}
}
for (Future<List<R>> future : futureList) {
try {
returnList.addAll(future.get());
} catch (Exception e) {
throw new ServiceException("多线程执行异常");
}
}
return returnList;
}
private static <R>void setResult(ExecutorService executorService,List<R> returnList,List<Future<R>> futureList,BlockingDeque<Boolean> resultList
,CountDownLatch mainLatch,CountDownLatch threadLatch,RollBack rollBack,int times){
/**存放子线程返回结果*/
List<Boolean> backUpResult=new ArrayList<>();
try{
//
boolean await=threadLatch.await(times*3,TimeUnit.SECONDS);
if(!await){
rollBack.setRollBack(true);
}else{
//查看执行情况,如果有存在需要回滚的线程,则全部回滚
for (int i = 0; i <times ; i++) {
Boolean result=resultList.take();
backUpResult.add(result);
if(result){
/**有线程执行异常,需要回滚子线程*/
rollBack.setRollBack(true);
}
}
}
}catch (InterruptedException e){
e.printStackTrace();
throw new ServiceException("多线程执行异常");
}finally {
//子线程再次继续执行
mainLatch.countDown();
executorService.shutdown();
}
/**检查子线程是否有异常,有异常整体回滚*/
for (int i = 0; i <times ; i++) {
if(CollectionUtil.isNotEmpty(backUpResult)){
Boolean result=backUpResult.get(i);
if(result){
/**有线程执行异常,需要回滚子线程*/
throw new ServiceException("多线程执行异常");
}
}else{
throw new ServiceException("多线程执行异常");
}
}
for (Future<R> future : futureList) {
try {
returnList.add(future.get());
} catch (Exception e) {
throw new ServiceException("多线程执行异常");
}
}
}
static class QueryThread<R> implements Callable<List<R>>{
private String ids;
private Function<String,List<R>> execFun;
public QueryThread(String ids,Function<String,List<R>> execFun){
this.ids=ids;
this.execFun=execFun;
}
@Override
public List<R> call(){
return execFun.apply(ids);
}
}
static class ExecThread<T,R> implements Callable<R>{
/**主线程监控*/
private CountDownLatch mainLatch;
/**子线程监控*/
private CountDownLatch threadLatch;
/**是否回滚*/
private RollBack rollBack;
private BlockingDeque<Boolean> resultList;
private List<T> list;
private Function<List<T>,R> execFun;
public ExecThread(CountDownLatch mainLatch,CountDownLatch threadLatch,RollBack rollBack,BlockingDeque<Boolean> resultList,List<T> list,Function<List<T>,R> execFun){
this.mainLatch=mainLatch;
this.threadLatch=threadLatch;
this.rollBack=rollBack;
this.resultList=resultList;
this.list=list;
this.execFun=execFun;
}
@Override
@Transactional(rollbackFor = Exception.class)
public R call(){
// 是否回滚
Boolean result=false;
R r=null;
try{
// 对数据库进行操作
r=execFun.apply(list);
}catch (Exception e){
e.printStackTrace();
result=true;
}
resultList.add(result);
// 子线程-1,切换到主线程执行
threadLatch.countDown();
try{
// 等待主线程执行
mainLatch.await();
}catch (InterruptedException e){
throw new ServiceException("多线程执行异常");
}
if(rollBack.getRollBack()){
throw new ServiceException("多线程执行异常");
}
return r;
}
}
static class VoidExecThread<T> implements Runnable{
/**主线程监控*/
private CountDownLatch mainLatch;
/**子线程监控*/
private CountDownLatch threadLatch;
/**是否回滚*/
private RollBack rollBack;
private BlockingDeque<Boolean> resultList;
private List<T> list;
private VoidFunction<Set<T>> execFun;
public VoidExecThread(CountDownLatch mainLatch,CountDownLatch threadLatch,RollBack rollBack,BlockingDeque<Boolean> resultList,List<T> list,VoidFunction<Set<T>> execFun){
this.mainLatch=mainLatch;
this.threadLatch=threadLatch;
this.rollBack=rollBack;
this.resultList=resultList;
this.list=list;
this.execFun=execFun;
}
@Override
public void run() {
Boolean result=false;
try{
execFun.apply(new HashSet<>(list));
}catch (Exception e){
e.printStackTrace();
result=true;
}
resultList.add(result);
threadLatch.countDown();
try{
mainLatch.await();
}catch (InterruptedException e){
throw new ServiceException("多线程执行异常");
}
if(rollBack.getRollBack()){
throw new ServiceException("多线程执行异常");
}
}
}
static class ExecByIdsStringThread<R> implements Callable<R>{
/**主线程监控*/
private CountDownLatch mainLatch;
/**子线程监控*/
private CountDownLatch threadLatch;
/**是否回滚*/
private RollBack rollBack;
private BlockingDeque<Boolean> resultList;
private String ids;
private Function<String,R> execFun;
public ExecByIdsStringThread(CountDownLatch mainLatch,CountDownLatch threadLatch,RollBack rollBack,BlockingDeque<Boolean> resultList,String ids,Function<String,R> execFun){
this.mainLatch=mainLatch;
this.threadLatch=threadLatch;
this.rollBack=rollBack;
this.resultList=resultList;
this.ids=ids;
this.execFun=execFun;
}
@Override
public R call(){
Boolean result=false;
R r=null;
try{
r=execFun.apply(ids);
}catch (Exception e){
e.printStackTrace();
result=true;
}
resultList.add(result);
threadLatch.countDown();
try{
mainLatch.await();
}catch (InterruptedException e){
throw new ServiceException("多线程执行异常");
}
if(rollBack.getRollBack()){
throw new ServiceException("多线程执行异常");
}
return r;
}
}
static class ExecByIdsStringListThread<R> implements Callable<R>{
/**主线程监控*/
private CountDownLatch mainLatch;
/**子线程监控*/
private CountDownLatch threadLatch;
/**是否回滚*/
private RollBack rollBack;
private BlockingDeque<Boolean> resultList;
private List<String> ids;
private Function<List<String>,R> execFun;
public ExecByIdsStringListThread(CountDownLatch mainLatch,CountDownLatch threadLatch,RollBack rollBack,BlockingDeque<Boolean> resultList,List<String> ids,Function<List<String>,R> execFun){
this.mainLatch=mainLatch;
this.threadLatch=threadLatch;
this.rollBack=rollBack;
this.resultList=resultList;
this.ids=ids;
this.execFun=execFun;
}
@Override
public R call(){
Boolean result=false;
R r=null;
try{
r=execFun.apply(ids);
}catch (Exception e){
e.printStackTrace();
result=true;
}
resultList.add(result);
threadLatch.countDown();
try{
mainLatch.await();
}catch (InterruptedException e){
throw new ServiceException("多线程执行异常");
}
if(rollBack.getRollBack()){
throw new ServiceException("多线程执行异常");
}
return r;
}
}
@Data
static class RollBack{
private Boolean rollBack;
public RollBack(Boolean rollBack){
this.rollBack=rollBack;
}
}
}
@@ -0,0 +1,112 @@
package com.ruoyi.common.utils.thread;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.*;
/**
* @description 线程池工具类
* @Author wangqiong
* @Date 2023/11/7 15:41
* @Version V1.0
**/
@Slf4j
public class ThreadPoolUtil {
/** cpu核心数 */
private static int corePoolSize = (Runtime.getRuntime().availableProcessors());
/**创建固定大小线程池*/
private static ExecutorService executors = new ThreadPoolExecutor(
corePoolSize,
corePoolSize,
0L,
TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<>());
/**
* 异步任务
* @param task
*/
public static void execute(Runnable task){
executors.execute(task);
}
/**
* 可获取返回结果的任务且可设置超时时间
* @param task
* @param timeout
* @param <T>
* @return
*/
public static <T> T execute(Callable<T> task, long timeout){
Future<T> future = executors.submit(task);
T result = null;
try {
result = future.get(timeout, TimeUnit.SECONDS);
} catch (InterruptedException e) {
future.cancel(true);
log.error("ThreadPoolUtil.InterruptedException. e:{}", e);
} catch (ExecutionException e) {
future.cancel(true);
log.error("ThreadPoolUtil.ExecutionException. e:{}", e);
} catch (TimeoutException e) {
future.cancel(true);
log.error("ThreadPoolUtil.TimeoutException. e:{}", e);
}
return result;
}
/**
* 可获取返回结果的任务
* @param task
* @return
*/
public static <T> Future<T> submit(Callable<T> task){
return executors.submit(task);
}
/**
* 可获取返回结果的任务
* @param tasks
* @param <T>
* @return
*/
public static <T> List<T> submit(Callable<T>... tasks){
List<Future<T>> list=new ArrayList<>();
List<T> resultList=new ArrayList<>();
if(tasks==null||tasks.length==0){
return resultList;
}
for(Callable<T> task:tasks){
list.add(executors.submit(task));
}
for(Future<T> future:list){
try {
resultList.add(future.get());
} catch (InterruptedException e) {
future.cancel(true);
log.error("ThreadPoolUtil.InterruptedException. e:{}", e);
} catch (ExecutionException e) {
future.cancel(true);
log.error("ThreadPoolUtil.ExecutionException. e:{}", e);
}
}
return resultList;
}
/**
* 执行完所有返回
* @param tasks
*/
public static void submit(Runnable ...tasks){
if(tasks==null||tasks.length==0){
return;
}
List<CompletableFuture> futureList=new ArrayList<>();
for (Runnable task : tasks) {
futureList.add(CompletableFuture.runAsync(task,executors));
}
CompletableFuture.allOf(futureList.toArray(new CompletableFuture[futureList.size()])).join();
}
}
@@ -0,0 +1,140 @@
package com.ruoyi.common.websocket;
import com.ruoyi.common.exception.ServiceException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArraySet;
/**
* @author wangqiong
* @description
* @date 2023-11-25 15:16
*/
@Component
@Slf4j
@ServerEndpoint("/websocket/{userName}")
public class MyWebSocketHandler {
// 接口路径 ws://127.0.0.1:9000/websocket;
private Session session;
//concurrent包的线程安全Set,用来存放每个客户端对应的WebSocket对象。
private static CopyOnWriteArraySet<Session> sessions = new CopyOnWriteArraySet<>();
// 用来存在线连接数
private static Map<String, Session> sessionPool = new HashMap<>();
/**
* 链接成功调用的方法
*/
@OnOpen
public void onOpen(Session session, @PathParam(value = "userName") String userName) {
try {
sessions.add(session);
sessionPool.put(userName, session);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 链接关闭调用的方法
*/
@OnClose
public void onClose(Session session,@PathParam(value = "userName") String userName) {
try {
if(session!=null && session.isOpen()){
session.close();
sessions.remove(session);
sessionPool.remove(userName);
}
log.info("【websocket消息】连接断开,总数为:" + sessions.size());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 收到客户端消息后调用的方法
*
* @param message
* @param
*/
@OnMessage
public void onMessage(@PathParam(value = "userName") String userName, String message) {
System.out.println("【websocket消息】收到客户端消息:" + message);
// 将消息广播给其它用户
for (Session session : sessions) {
if(session!=null && session.isOpen()){
try {
session.getBasicRemote().sendText(message);
}catch (Exception e){
throw new ServiceException(e.getMessage());
}
}else {
try {
session.close();
} catch (IOException e) {
throw new ServiceException(e.getMessage());
}
sessions.remove(session);
sessionPool.remove(userName);
}
}
}
/**
* 发送错误时的处理
*
* @param session
* @param error
*/
@OnError
public void onError(Session session, Throwable error) {
throw new ServiceException(error.getMessage());
}
/**
* 推消息给前端
*
* @param userId
* @param message
* @return
*/
public static Runnable sendOneMessage(String userId, String message) {
Session session = sessionPool.get(userId);
if (session != null && session.isOpen()) {
try {
log.info("【推给前端消息】 :" + message);
//高并发下,防止session占用期间,被其他线程调用
synchronized (session) {
session.getBasicRemote().sendText(message);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}
@@ -0,0 +1,26 @@
package com.ruoyi.common.websocket;//package com.ruoyi.common.websocket;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
/**
* @author wangqiong
* @description
* @date 2023-11-25 15:19
*/
@Configuration
public class WebSocketConfig {
/**
* 注入ServerEndpointExporter,
* 这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint
*/
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
@@ -111,7 +111,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
// 过滤请求
.authorizeRequests()
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
.antMatchers("/login", "/register", "/captchaImage","/uploadPath/**").permitAll()
.antMatchers("/login", "/register", "/captchaImage","/uploadPath/**","/websocket/**").permitAll()
// 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
+7
View File
@@ -22,11 +22,18 @@
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>pay</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.github.tencentyun</groupId>
<artifactId>tls-sig-api-v2</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
@@ -117,4 +117,11 @@ public interface SysDeptMapper
public int deleteDeptById(Long deptId);
List<Long> selectUserDeptListByRoleId(@Param("roleId")Long roleId);
/**
* 批量新增
* @param sysDepts
* @return
*/
int batchSave(@Param("list")List<SysDept> sysDepts);
}
@@ -33,6 +33,14 @@ public interface SysPostMapper
*/
public SysPost selectPostById(Long postId);
/**
* 查询岗位为经办人的岗位信息
*
* @param postCode 岗位编码
* @return 角色对象信息
*/
public SysPost selectPostByPostCode(String postCode);
/**
* 根据用户ID获取岗位选择框列表
*
@@ -49,6 +49,14 @@ public interface SysRoleMapper
*/
public SysRole selectRoleById(Long roleId);
/**
* 根据角色名称查询角色id
* @param roleName
* @return
*/
public Long selectRoleIdByName(String roleName);
/**
* 根据用户ID查询角色
*
@@ -58,6 +58,13 @@ public interface SysUserMapper
* @return 用户对象信息
*/
public SysUser selectUserById(Long userId);
/**
* 通过部门ID查询用户
*
* @param deptId 部门ID
* @return 用户对象信息
*/
public List<SysUser> selectUserByDeptId(Long deptId);
/**
* 新增用户信息
@@ -134,4 +141,34 @@ public interface SysUserMapper
public SysUser checkEmailUnique(String email);
List<SysUser> selectUserListByIds(@Param("idList") List<Long> idList);
/**
* 根据身份证号查询用户信息
* @param identityNo
* @return
*/
SysUser selectUserByIdCard(@Param("idCard")String identityNo);
/**
* 根据手机号查询用户信息
* @param phone
* @return
*/
SysUser selectUserByPhone(@Param("phone")String phone);
/**
* 根据部门和角色查询用户
* @param applicationOrganId
* @param roleName
* @return
*/
List<SysUser> selectByDeptIdAndRole(@Param("deptId")String applicationOrganId, @Param("roleName")String roleName);
List<SysUser> selectRoleUserByDeptId(@Param("deptId")Long deptId,@Param("roleId") Long roleId );
/**
* 批量新增用户
* @param addUsers
* @return
*/
int batchSave(@Param("list")List<SysUser> addUsers);
}
@@ -1,6 +1,8 @@
package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.wisdomarbitrate.domain.Arbitrator;
@@ -112,7 +114,7 @@ public interface ISysUserService
* @param user 用户信息
* @return 结果
*/
public int insertUser(SysUser user);
public AjaxResult insertUser(SysUser user);
/**
* 注册用户信息
@@ -128,7 +130,7 @@ public interface ISysUserService
* @param user 用户信息
* @return 结果
*/
public int updateUser(SysUser user);
public AjaxResult updateUser(SysUser user);
/**
* 用户授权角色
@@ -205,4 +207,5 @@ public interface ISysUserService
* @return 结果
*/
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
}
@@ -211,6 +211,8 @@ public class SysDeptServiceImpl implements ISysDeptService
@Override
public int insertDept(SysDept dept)
{
Long parentId = dept.getParentId();
if(parentId!=null){
SysDept info = deptMapper.selectDeptById(dept.getParentId());
// 如果父节点不为正常状态,则不允许新增子节点
if (!UserConstants.DEPT_NORMAL.equals(info.getStatus()))
@@ -218,6 +220,7 @@ public class SysDeptServiceImpl implements ISysDeptService
throw new ServiceException("部门停用,不允许新增");
}
dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
}
return deptMapper.insertDept(dept);
}
@@ -1,10 +1,14 @@
package com.ruoyi.system.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import javax.validation.Validator;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.system.mapper.*;
import com.ruoyi.wisdomarbitrate.domain.Arbitrator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -24,11 +28,6 @@ import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.mapper.SysPostMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.SysUserPostMapper;
import com.ruoyi.system.mapper.SysUserRoleMapper;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService;
@@ -38,8 +37,7 @@ import com.ruoyi.system.service.ISysUserService;
* @author ruoyi
*/
@Service
public class SysUserServiceImpl implements ISysUserService
{
public class SysUserServiceImpl implements ISysUserService {
private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
@Autowired
@@ -48,6 +46,9 @@ public class SysUserServiceImpl implements ISysUserService
@Autowired
private SysRoleMapper roleMapper;
@Autowired
private SysDeptMapper sysDeptMapper;
@Autowired
private SysPostMapper postMapper;
@@ -71,8 +72,7 @@ public class SysUserServiceImpl implements ISysUserService
*/
@Override
@DataScope(deptAlias = "d", userAlias = "u")
public List<SysUser> selectUserList(SysUser user)
{
public List<SysUser> selectUserList(SysUser user) {
return userMapper.selectUserList(user);
}
@@ -89,8 +89,7 @@ public class SysUserServiceImpl implements ISysUserService
*/
@Override
@DataScope(deptAlias = "d", userAlias = "u")
public List<SysUser> selectAllocatedList(SysUser user)
{
public List<SysUser> selectAllocatedList(SysUser user) {
return userMapper.selectAllocatedList(user);
}
@@ -102,8 +101,7 @@ public class SysUserServiceImpl implements ISysUserService
*/
@Override
@DataScope(deptAlias = "d", userAlias = "u")
public List<SysUser> selectUnallocatedList(SysUser user)
{
public List<SysUser> selectUnallocatedList(SysUser user) {
return userMapper.selectUnallocatedList(user);
}
@@ -114,8 +112,7 @@ public class SysUserServiceImpl implements ISysUserService
* @return 用户对象信息
*/
@Override
public SysUser selectUserByUserName(String userName)
{
public SysUser selectUserByUserName(String userName) {
return userMapper.selectUserByUserName(userName);
}
@@ -126,8 +123,7 @@ public class SysUserServiceImpl implements ISysUserService
* @return 用户对象信息
*/
@Override
public SysUser selectUserById(Long userId)
{
public SysUser selectUserById(Long userId) {
return userMapper.selectUserById(userId);
}
@@ -138,11 +134,9 @@ public class SysUserServiceImpl implements ISysUserService
* @return 结果
*/
@Override
public String selectUserRoleGroup(String userName)
{
public String selectUserRoleGroup(String userName) {
List<SysRole> list = roleMapper.selectRolesByUserName(userName);
if (CollectionUtils.isEmpty(list))
{
if (CollectionUtils.isEmpty(list)) {
return StringUtils.EMPTY;
}
return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(","));
@@ -155,11 +149,9 @@ public class SysUserServiceImpl implements ISysUserService
* @return 结果
*/
@Override
public String selectUserPostGroup(String userName)
{
public String selectUserPostGroup(String userName) {
List<SysPost> list = postMapper.selectPostsByUserName(userName);
if (CollectionUtils.isEmpty(list))
{
if (CollectionUtils.isEmpty(list)) {
return StringUtils.EMPTY;
}
return list.stream().map(SysPost::getPostName).collect(Collectors.joining(","));
@@ -172,12 +164,10 @@ public class SysUserServiceImpl implements ISysUserService
* @return 结果
*/
@Override
public boolean checkUserNameUnique(SysUser user)
{
public boolean checkUserNameUnique(SysUser user) {
Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
SysUser info = userMapper.checkUserNameUnique(user.getUserName());
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
{
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
@@ -190,12 +180,10 @@ public class SysUserServiceImpl implements ISysUserService
* @return
*/
@Override
public boolean checkPhoneUnique(SysUser user)
{
public boolean checkPhoneUnique(SysUser user) {
Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
{
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
@@ -208,12 +196,10 @@ public class SysUserServiceImpl implements ISysUserService
* @return
*/
@Override
public boolean checkEmailUnique(SysUser user)
{
public boolean checkEmailUnique(SysUser user) {
Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
SysUser info = userMapper.checkEmailUnique(user.getEmail());
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
{
if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
@@ -225,10 +211,8 @@ public class SysUserServiceImpl implements ISysUserService
* @param user 用户信息
*/
@Override
public void checkUserAllowed(SysUser user)
{
if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin())
{
public void checkUserAllowed(SysUser user) {
if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) {
throw new ServiceException("不允许操作超级管理员用户");
}
}
@@ -239,15 +223,12 @@ public class SysUserServiceImpl implements ISysUserService
* @param userId 用户id
*/
@Override
public void checkUserDataScope(Long userId)
{
if (!SysUser.isAdmin(SecurityUtils.getUserId()))
{
public void checkUserDataScope(Long userId) {
if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
SysUser user = new SysUser();
user.setUserId(userId);
List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);
if (StringUtils.isEmpty(users))
{
if (StringUtils.isEmpty(users)) {
throw new ServiceException("没有权限访问用户数据!");
}
}
@@ -261,15 +242,34 @@ public class SysUserServiceImpl implements ISysUserService
*/
@Override
@Transactional
public int insertUser(SysUser user)
{
public AjaxResult insertUser(SysUser user) {
Long deptId = user.getDeptId();
Long[] postIds = user.getPostIds();
if (deptId != null) {
SysDept dept = sysDeptMapper.selectDeptById(deptId);
Integer deptType = dept.getDeptType();
if (deptType!=null && deptType.intValue() == 1) {
SysPost sysPost = postMapper.selectPostByPostCode("jbr");
Long postId = sysPost.getPostId();
if (postIds.length > 0) {
boolean isContain = Arrays.asList(postIds).contains(postId);
if (isContain) {
List<SysUser> sysUsers = userMapper.selectUserByDeptId(deptId);
if (sysUsers != null && sysUsers.size() > 0) {
return AjaxResult.error("部门类型为仲裁机构的部门的岗位为经办人的用户只能有一个!");
}
}
}
}
}
// 新增用户信息
int rows = userMapper.insertUser(user);
// 新增用户岗位关联
insertUserPost(user);
// 新增用户与角色管理
insertUserRole(user);
return rows;
return AjaxResult.success("新建用户成功");
}
/**
@@ -279,8 +279,7 @@ public class SysUserServiceImpl implements ISysUserService
* @return 结果
*/
@Override
public boolean registerUser(SysUser user)
{
public boolean registerUser(SysUser user) {
return userMapper.insertUser(user) > 0;
}
@@ -292,8 +291,27 @@ public class SysUserServiceImpl implements ISysUserService
*/
@Override
@Transactional
public int updateUser(SysUser user)
{
public AjaxResult updateUser(SysUser user) {
Long deptId = user.getDeptId();
Long[] postIds = user.getPostIds();
if (deptId != null) {
SysDept dept = sysDeptMapper.selectDeptById(deptId);
Integer deptType = dept.getDeptType();
if (deptType != null && deptType.intValue() == 1) {
SysPost sysPost = postMapper.selectPostByPostCode("jbr");
Long postId = sysPost.getPostId();
if (postIds.length > 0) {
boolean isContain = Arrays.asList(postIds).contains(postId);
if (isContain) {
List<SysUser> sysUsers = userMapper.selectUserByDeptId(deptId);
if (sysUsers != null && sysUsers.size() > 0) {
return AjaxResult.error("部门类型为仲裁机构的部门的岗位为经办人的用户只能有一个!");
}
}
}
}
}
Long userId = user.getUserId();
// 删除用户与角色关联
userRoleMapper.deleteUserRoleByUserId(userId);
@@ -303,7 +321,8 @@ public class SysUserServiceImpl implements ISysUserService
userPostMapper.deleteUserPostByUserId(userId);
// 新增用户与岗位管理
insertUserPost(user);
return userMapper.updateUser(user);
userMapper.updateUser(user);
return AjaxResult.success("更新用户成功");
}
/**
@@ -314,8 +333,7 @@ public class SysUserServiceImpl implements ISysUserService
*/
@Override
@Transactional
public void insertUserAuth(Long userId, Long[] roleIds)
{
public void insertUserAuth(Long userId, Long[] roleIds) {
userRoleMapper.deleteUserRoleByUserId(userId);
insertUserRole(userId, roleIds);
}
@@ -327,8 +345,7 @@ public class SysUserServiceImpl implements ISysUserService
* @return 结果
*/
@Override
public int updateUserStatus(SysUser user)
{
public int updateUserStatus(SysUser user) {
return userMapper.updateUser(user);
}
@@ -339,8 +356,7 @@ public class SysUserServiceImpl implements ISysUserService
* @return 结果
*/
@Override
public int updateUserProfile(SysUser user)
{
public int updateUserProfile(SysUser user) {
return userMapper.updateUser(user);
}
@@ -352,8 +368,7 @@ public class SysUserServiceImpl implements ISysUserService
* @return 结果
*/
@Override
public boolean updateUserAvatar(String userName, String avatar)
{
public boolean updateUserAvatar(String userName, String avatar) {
return userMapper.updateUserAvatar(userName, avatar) > 0;
}
@@ -364,8 +379,7 @@ public class SysUserServiceImpl implements ISysUserService
* @return 结果
*/
@Override
public int resetPwd(SysUser user)
{
public int resetPwd(SysUser user) {
return userMapper.updateUser(user);
}
@@ -377,8 +391,7 @@ public class SysUserServiceImpl implements ISysUserService
* @return 结果
*/
@Override
public int resetUserPwd(String userName, String password)
{
public int resetUserPwd(String userName, String password) {
return userMapper.resetUserPwd(userName, password);
}
@@ -387,8 +400,7 @@ public class SysUserServiceImpl implements ISysUserService
*
* @param user 用户对象
*/
public void insertUserRole(SysUser user)
{
public void insertUserRole(SysUser user) {
this.insertUserRole(user.getUserId(), user.getRoleIds());
}
@@ -397,15 +409,12 @@ public class SysUserServiceImpl implements ISysUserService
*
* @param user 用户对象
*/
public void insertUserPost(SysUser user)
{
public void insertUserPost(SysUser user) {
Long[] posts = user.getPostIds();
if (StringUtils.isNotEmpty(posts))
{
if (StringUtils.isNotEmpty(posts)) {
// 新增用户与岗位管理
List<SysUserPost> list = new ArrayList<SysUserPost>(posts.length);
for (Long postId : posts)
{
for (Long postId : posts) {
SysUserPost up = new SysUserPost();
up.setUserId(user.getUserId());
up.setPostId(postId);
@@ -421,14 +430,11 @@ public class SysUserServiceImpl implements ISysUserService
* @param userId 用户ID
* @param roleIds 角色组
*/
public void insertUserRole(Long userId, Long[] roleIds)
{
if (StringUtils.isNotEmpty(roleIds))
{
public void insertUserRole(Long userId, Long[] roleIds) {
if (StringUtils.isNotEmpty(roleIds)) {
// 新增用户与角色管理
List<SysUserRole> list = new ArrayList<SysUserRole>(roleIds.length);
for (Long roleId : roleIds)
{
for (Long roleId : roleIds) {
SysUserRole ur = new SysUserRole();
ur.setUserId(userId);
ur.setRoleId(roleId);
@@ -446,8 +452,7 @@ public class SysUserServiceImpl implements ISysUserService
*/
@Override
@Transactional
public int deleteUserById(Long userId)
{
public int deleteUserById(Long userId) {
// 删除用户与角色关联
userRoleMapper.deleteUserRoleByUserId(userId);
// 删除用户与岗位表
@@ -463,10 +468,8 @@ public class SysUserServiceImpl implements ISysUserService
*/
@Override
@Transactional
public int deleteUserByIds(Long[] userIds)
{
for (Long userId : userIds)
{
public int deleteUserByIds(Long[] userIds) {
for (Long userId : userIds) {
checkUserAllowed(new SysUser(userId));
checkUserDataScope(userId);
}
@@ -486,10 +489,8 @@ public class SysUserServiceImpl implements ISysUserService
* @return 结果
*/
@Override
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName)
{
if (StringUtils.isNull(userList) || userList.size() == 0)
{
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) {
if (StringUtils.isNull(userList) || userList.size() == 0) {
throw new ServiceException("导入用户数据不能为空!");
}
int successNum = 0;
@@ -497,23 +498,18 @@ public class SysUserServiceImpl implements ISysUserService
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
String password = configService.selectConfigByKey("sys.user.initPassword");
for (SysUser user : userList)
{
try
{
for (SysUser user : userList) {
try {
// 验证是否存在这个用户
SysUser u = userMapper.selectUserByUserName(user.getUserName());
if (StringUtils.isNull(u))
{
if (StringUtils.isNull(u)) {
BeanValidators.validateWithException(validator, user);
user.setPassword(SecurityUtils.encryptPassword(password));
user.setCreateBy(operName);
userMapper.insertUser(user);
successNum++;
successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
}
else if (isUpdateSupport)
{
} else if (isUpdateSupport) {
BeanValidators.validateWithException(validator, user);
checkUserAllowed(u);
checkUserDataScope(u.getUserId());
@@ -522,30 +518,25 @@ public class SysUserServiceImpl implements ISysUserService
userMapper.updateUser(user);
successNum++;
successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
}
else
{
} else {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
}
}
catch (Exception e)
{
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:";
failureMsg.append(msg + e.getMessage());
log.error(msg, e);
}
}
if (failureNum > 0)
{
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
}
else
{
} else {
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
}
@@ -25,9 +25,51 @@ public class ArbitrateRecord extends BaseEntity {
private String verificaOpinion;
/** 审核裁决书意见 */
private String checkOpinion;
/** 仲裁员审核裁决书意见 */
private String arbitraCheckOpinion;
/** 裁决书附件id */
private Integer annexId;
/** 被申请人是否缺席 */
private Integer isAbsence;
/** 被申请人质证意见 */
private String responCrossOpin;
/** 申请人质证意见 */
private String applicaCrossOpin;
/** 申请人是否缺席 */
private Integer appliIsAbsen;
/** 被申请人质证意见 */
private String responDefenOpini;
/**
* 本案争议焦点
*/
private String caseFocus;
/**
* 本案事实
*/
private String caseFacts;
/**
* 被申请人对上述材料的质证意见
*/
private String respondentOpinion;
/**
* 申请人对上述材料的质证意见
*/
private String applicantOpinion;
/**
* 立案审查驳回原因
*/
private String caseCheckReject;
/**
* 仲裁员确认裁决书驳回
*/
private String arbitrateReject;
/**
* 部门长确认裁决书驳回
*/
private String deptorReject;
@@ -0,0 +1,25 @@
package com.ruoyi.wisdomarbitrate.domain;
import lombok.Data;
import java.util.List;
/**
* @author wangqiong
* @description 批量操作案件
* @date 2023-10-20 14:49
*/
@Data
public class BatchCaseApplication {
private List<Long> ids;
/**
* 是否同意,0拒绝,1同意
*/
private Integer agreeOrNotCheck;
/**
* 1同意,0拒绝
*/
private Integer opinion;
/** 驳回原因 */
private String caseCheckReject;
}
@@ -1,8 +1,11 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.Date;
public class CaseAffiliate extends BaseEntity {
private static final long serialVersionUID = 1L;
/** ID */
@@ -10,6 +13,10 @@ public class CaseAffiliate extends BaseEntity {
private Long id;
/** 案件申请id */
private Long caseAppliId;
/**
* 案件申请日志id
*/
private Long caseAppliLogId;
/** 身份类型 */
private int identityType;
/** 姓名 */
@@ -23,6 +30,115 @@ public class CaseAffiliate extends BaseEntity {
* 申请机构名称
*/
private String applicationOrganName;
/**
* 法定代表人
*/
private String compLegalPerson;
/**
* 邮箱
*/
private String email;
/**
* 法定代表人职位
*/
private String compLegalperPost;
/**
* 被申请人性别
*/
private String responSex;
/**
* 被申请人出生年月日
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date responBirth;
/**
* 版本号
*/
private Integer version;
/**
* 改变的字段
*/
private String changeColumn;
/**
* 代理人邮箱
*/
private String agentEmail;
public String getAgentEmail() {
return agentEmail;
}
public void setAgentEmail(String agentEmail) {
this.agentEmail = agentEmail;
}
public String getChangeColumn() {
return changeColumn;
}
public void setChangeColumn(String changeColumn) {
this.changeColumn = changeColumn;
}
public Long getCaseAppliLogId() {
return caseAppliLogId;
}
public void setCaseAppliLogId(Long caseAppliLogId) {
this.caseAppliLogId = caseAppliLogId;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getResponBirth() {
return responBirth;
}
public void setResponBirth(Date responBirth) {
this.responBirth = responBirth;
}
public String getCompLegalPerson() {
return compLegalPerson;
}
public void setCompLegalPerson(String compLegalPerson) {
this.compLegalPerson = compLegalPerson;
}
public String getCompLegalperPost() {
return compLegalperPost;
}
public void setCompLegalperPost(String compLegalperPost) {
this.compLegalperPost = compLegalperPost;
}
public String getResponSex() {
return responSex;
}
public void setResponSex(String responSex) {
this.responSex = responSex;
}
/** 身份证号 */
@Excel(name = "身份证号")
private String identityNum;
@@ -35,6 +151,29 @@ public class CaseAffiliate extends BaseEntity {
/** 联系地址 */
@Excel(name = "联系地址")
private String contactAddress;
/** 住所 */
@Excel(name = "住所")
private String residenAffili;
/** 申请人代理人职称 */
@Excel(name = "申请人代理人职称")
private String appliAgentTitle;
public String getResidenAffili() {
return residenAffili;
}
public void setResidenAffili(String residenAffili) {
this.residenAffili = residenAffili;
}
public String getAppliAgentTitle() {
return appliAgentTitle;
}
public void setAppliAgentTitle(String appliAgentTitle) {
this.appliAgentTitle = appliAgentTitle;
}
/** 单位地址 */
@Excel(name = "单位地址")
private String workAddress;
@@ -54,6 +193,25 @@ public class CaseAffiliate extends BaseEntity {
/** 送达电子邮件 */
private String sendEmail;
private String userId;
private String applicantAgentUserId;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getApplicantAgentUserId() {
return applicantAgentUserId;
}
public void setApplicantAgentUserId(String applicantAgentUserId) {
this.applicantAgentUserId = applicantAgentUserId;
}
/** 快递单号 */
private String trackNum;
@@ -3,21 +3,37 @@ package com.ruoyi.wisdomarbitrate.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import com.ruoyi.wisdomarbitrate.domain.vo.ColumnValue;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class CaseApplication extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 查询案件时区分是否待办案件,0待办案件,1已办案件
*/
private String selectCaseStatus;
/** ID */
private Long id;
/** 案件名称 */
@Excel(name = "案件名称")
private String caseName;
/** 案件编号 */
// @Excel(name = "案件编号")
private String caseNum;
/** 案件标的 */
@Excel(name = "案件标的")
private BigDecimal caseSubjectAmount;
/**
* 模板id
*/
private Long templateId;
/** 立案日期 */
@@ -25,35 +41,17 @@ public class CaseApplication extends BaseEntity {
private Date registerDate;
/** 仲裁方式 */
private Integer arbitratMethod;
public Integer getArbitratMethod() {
return arbitratMethod;
}
public void setArbitratMethod(Integer arbitratMethod) {
this.arbitratMethod = arbitratMethod;
}
/**
* 是否导入,0手动录入,1导入,默认0
*/
private Integer importFlag;
/** 仲裁方式名称 */
private String arbitratMethodName;
public String getArbitratMethodName() {
return arbitratMethodName;
}
public void setArbitratMethodName(String arbitratMethodName) {
this.arbitratMethodName = arbitratMethodName;
}
/** 案件状态 */
private Integer caseStatus;
public Integer getCaseStatus() {
return caseStatus;
}
public void setCaseStatus(Integer caseStatus) {
this.caseStatus = caseStatus;
}
/** 案件申请表ID */
private Long caseAppliId;
/** 开庭日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -79,8 +77,15 @@ public class CaseApplication extends BaseEntity {
/** 申请人主张违约金 */
@Excel(name = "申请人主张违约金")
private BigDecimal claimLiquidDamag;
/** 申请人仲裁诉求 */
@Excel(name = "申请人仲裁诉求")
/** 申请人请求仲裁庭裁决 */
@Excel(name = "申请人请求仲裁庭裁决",width = 36)
private String requestRule;
/** 是否财产保全申请 */
@Excel(name = "是否财产保全申请",width = 26,combo= {"是","否"},readConverterExp = "0=否,1=是")
private Integer properPreser;
/** 申请人仲裁请求及事实和理由 */
@Excel(name = "申请人仲裁请求及事实和理由",width = 36)
private String arbitratClaims;
/** 仲裁应缴费用 */
private BigDecimal feePayable;
@@ -96,22 +101,11 @@ public class CaseApplication extends BaseEntity {
/** 仲裁员名称 */
private String arbitratorName;
/** 案件名称 */
private String caseName;
/** 案件描述 */
private String caseDescribe;
/** 裁决书URL */
private String filearbitraUrl;
public String getFilearbitraUrl() {
return filearbitraUrl;
}
public void setFilearbitraUrl(String filearbitraUrl) {
this.filearbitraUrl = filearbitraUrl;
}
/** 是否同意组庭 */
private Integer isAgreePendTral;
@@ -120,8 +114,30 @@ public class CaseApplication extends BaseEntity {
/** 是否需要开庭审理 */
private Integer openCourtHear;
/** 是否仲裁反请求 */
private Integer adjudicaCounter;
/**
* 仲裁反请求原因
*/
private String adjudicaCounterReason;
/** 被申请人是否缺席 */
private Integer isAbsence;
/** 是否管辖异议申请 */
private Integer objectiJuris;
/** 被申请人质证意见 */
private String responCrossOpin;
/** 被申请人的答辩意见 */
private String responDefenOpini;
/** 申请人是否缺席 */
private Integer appliIsAbsen;
/** 申请人质证意见 */
private String applicaCrossOpin;
/** 支付状态 */
private Integer paymentStatus;
/** 支付状态描述 */
private String paymentStatusName;
/**
@@ -132,106 +148,22 @@ public class CaseApplication extends BaseEntity {
* 支付方式name,0线上支付,1线下支付
*/
private String payTypeName;
/**
* 缴费凭证
*/
private List<CaseAttach> payOrderList;
// 导入校验失败信息
private StringBuilder errorMsg;
public Integer getPayTypeCode() {
return payTypeCode;
}
public void setPayTypeCode(Integer payTypeCode) {
this.payTypeCode = payTypeCode;
}
public String getPayTypeName() {
return payTypeName;
}
public void setPayTypeName(String payTypeName) {
this.payTypeName = payTypeName;
}
public List<CaseAttach> getPayOrderList() {
return payOrderList;
}
public void setPayOrderList(List<CaseAttach> payOrderList) {
this.payOrderList = payOrderList;
}
public StringBuilder getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(StringBuilder errorMsg) {
this.errorMsg = errorMsg;
}
public Integer getPaymentStatus() {
return paymentStatus;
}
public void setPaymentStatus(Integer paymentStatus) {
this.paymentStatus = paymentStatus;
}
public String getPaymentStatusName() {
return paymentStatusName;
}
public void setPaymentStatusName(String paymentStatusName) {
this.paymentStatusName = paymentStatusName;
}
public Integer getIsAgreePendTral() {
return isAgreePendTral;
}
public void setIsAgreePendTral(Integer isAgreePendTral) {
this.isAgreePendTral = isAgreePendTral;
}
public Integer getObjectionAddEviden() {
return objectionAddEviden;
}
public void setObjectionAddEviden(Integer objectionAddEviden) {
this.objectionAddEviden = objectionAddEviden;
}
public Integer getOpenCourtHear() {
return openCourtHear;
}
public void setOpenCourtHear(Integer openCourtHear) {
this.openCourtHear = openCourtHear;
}
/**
* 是否锁定,0-否,1-是
*/
private Integer lockStatus;
/** 案件状态名称 */
private String caseStatusName;
/** 是否同意审核 */
private Integer agreeOrNotCheck;
public Integer getAgreeOrNotCheck() {
return agreeOrNotCheck;
}
public void setAgreeOrNotCheck(Integer agreeOrNotCheck) {
this.agreeOrNotCheck = agreeOrNotCheck;
}
public String getCaseStatusName() {
return caseStatusName;
}
public void setCaseStatusName(String caseStatusName) {
this.caseStatusName = caseStatusName;
}
/** 申请人名称 */
private String applicantName;
/** 被申请人名称 */
@@ -244,108 +176,35 @@ public class CaseApplication extends BaseEntity {
* 用户id
*/
private String userId;
/**
* 登录用户用户名
*/
private String loginUserName;
private List<Long> deptIds;
public List<Long> getDeptIds() {
return deptIds;
}
public void setDeptIds(List<Long> deptIds) {
this.deptIds = deptIds;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
public String getApplicantName() {
return applicantName;
}
public void setApplicantName(String applicantName) {
this.applicantName = applicantName;
}
public String getRespondentName() {
return respondentName;
}
public void setRespondentName(String respondentName) {
this.respondentName = respondentName;
}
public String getCaseName() {
return caseName;
}
public void setCaseName(String caseName) {
this.caseName = caseName;
}
public String getCaseDescribe() {
return caseDescribe;
}
public void setCaseDescribe(String caseDescribe) {
this.caseDescribe = caseDescribe;
}
public String getCaseResult() {
return caseResult;
}
public void setCaseResult(String caseResult) {
this.caseResult = caseResult;
}
/**
* 部门长状态
*/
private List<Integer> deptHeadStatus;
/**
* 代理人角色有关部门
*/
private List<Long> agentDeptIds;
/**
* 财务状态
*/
private Integer financeStatus;
/**
* 是否是被申请人,仲裁员,部门长,财务,代理人,0-否,1-是
*/
private Integer isOtherRole;
/**
* 案件日志id
*/
private Long caseLogId;
/** 仲裁结果 */
private String caseResult;
public String getArbitratorName() {
return arbitratorName;
}
public void setArbitratorName(String arbitratorName) {
this.arbitratorName = arbitratorName;
}
/** 是否指派仲裁员 */
private int pendingAppointArbotrar;
public int getPendingAppointArbotrar() {
return pendingAppointArbotrar;
}
public void setPendingAppointArbotrar(int pendingAppointArbotrar) {
this.pendingAppointArbotrar = pendingAppointArbotrar;
}
public String getArbitratorId() {
return arbitratorId;
}
public void setArbitratorId(String arbitratorId) {
this.arbitratorId = arbitratorId;
}
/** 案件关联人信息 */
private List<CaseAffiliate> caseAffiliates;
@@ -357,63 +216,14 @@ public class CaseApplication extends BaseEntity {
private List<Integer> annexTypeList;
private Integer annexType;
public Integer getAnnexType() {
return annexType;
}
public void setAnnexType(Integer annexType) {
this.annexType = annexType;
}
public List<Integer> getAnnexTypeList() {
return annexTypeList;
}
public void setAnnexTypeList(List<Integer> annexTypeList) {
this.annexTypeList = annexTypeList;
}
/**
* 案件附件列表
*/
private List<CaseAttach> caseAttachList;
public List<CaseAttach> getCaseAttachList() {
return caseAttachList;
}
public void setCaseAttachList(List<CaseAttach> caseAttachList) {
this.caseAttachList = caseAttachList;
}
public List<Integer> getCaseStatusList() {
return caseStatusList;
}
public void setCaseStatusList(List<Integer> caseStatusList) {
this.caseStatusList = caseStatusList;
}
/** 仲裁记录 */
private ArbitrateRecord arbitrateRecord;
public ArbitrateRecord getArbitrateRecord() {
return arbitrateRecord;
}
public void setArbitrateRecord(ArbitrateRecord arbitrateRecord) {
this.arbitrateRecord = arbitrateRecord;
}
public List<Arbitrator> getArbitrators() {
return arbitrators;
}
public void setArbitrators(List<Arbitrator> arbitrators) {
this.arbitrators = arbitrators;
}
/** 身份类型 */
// @Excel(name = "身份类型")
private int identityType;
@@ -423,13 +233,19 @@ public class CaseApplication extends BaseEntity {
/** 姓名 */
@Excel(name = "申请人主体信息-申请人(机构)",width = 26)
private String name;
/** 身份证号 */
@Excel(name = "申请人主体信息-代码",width = 26)
private String identityNum;
/** 申请人主体信息-法定代表人 */
@Excel(name = "申请人主体信息-法定代表人",width = 26)
private String compLegalPerson;
/** 申请人主体信息-法定代表人 */
@Excel(name = "申请人主体信息-法定代表人职位",width = 26)
private String compLegalperPost;
/**
* 申请人主体信息-申请人(机构)id
*/
private String nameId;
/** 身份证号 */
@Excel(name = "申请人主体信息-代码",width = 26)
private String identityNum;
/** 联系电话 */
@Excel(name = "申请人主体信息-联系电话",width = 26)
@@ -444,18 +260,29 @@ public class CaseApplication extends BaseEntity {
@Excel(name = "申请人主体信息-单位地址",width = 26)
private String workAddress;
/** 申请人住所 */
@Excel(name = "申请人主体信息-住所",width = 26)
private String residenAffiliAppli;
/** 申请人邮箱 */
@Excel(name = "申请人主体信息-邮箱",width = 26)
private String email;
/** 代理人姓名 */
@Excel(name = "申请人主体信息-代理人姓名",width = 26)
private String nameAgent;
/** 身份证号 */
@Excel(name = "申请人主体信息-代理人身份证号",width = 26)
private String identityNumAgent;
/** 联系电话 */
@Excel(name = "申请人主体信息-代理人联系电话",width = 26)
private String contactTelphoneAgent;
/** 联系地址 */
@Excel(name = "申请人主体信息-代理人联系地址",width = 26)
private String contactAddressAgent;
/** 申请人代理人职称 */
@Excel(name = "申请人主体信息-代理人职称",width = 26)
private String appliAgentTitle;
/**
* 被申请人主体信息
*/
@@ -465,19 +292,31 @@ public class CaseApplication extends BaseEntity {
/** 身份证号 */
@Excel(name = "被申请人主体信息-身份证号",width = 26)
private String debtorIdentityNum;
/** 被申请人主体信息-性别 */
@Excel(name = "被申请人主体信息-性别",width = 26,combo= {"男","女"},readConverterExp = "0=男,1=女")
private String responSex;
/** 被申请人主体信息-出生年月日 */
@Excel(name = "被申请人主体信息-出生年月日",width = 26)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date responBirth;
/** 联系电话 */
@Excel(name = "被申请人主体信息-联系电话",width = 26)
private String debtorContactTelphone;
/** 联系地址 */
@Excel(name = "被申请人主体信息-联系地址",width = 26)
private String debtorContactAddress;
/** 被申请人住所 */
@Excel(name = "被申请人主体信息-住所",width = 26)
private String residenAffiliRespon;
/** 单位电话 */
@Excel(name = "被申请人主体信息-单位电话",width = 26)
private String debtorWorkTelphone;
/** 单位地址 */
@Excel(name = "被申请人主体信息-单位地址",width = 26)
private String debtorWorkAddress;
/** 邮箱 */
@Excel(name = "被申请人主体信息-邮箱",width = 26)
private String debtorEmail;
/** 代理人姓名 */
@Excel(name = "被申请人主体信息-代理人姓名",width = 26)
@@ -491,321 +330,74 @@ public class CaseApplication extends BaseEntity {
/** 联系地址 */
@Excel(name = "被申请人主体信息-代理人联系地址",width = 26)
private String debtorContactAddressAgent;
public int getIdentityType() {
return identityType;
}
public void setIdentityType(int identityType) {
this.identityType = identityType;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNameId() {
return nameId;
}
public void setNameId(String nameId) {
this.nameId = nameId;
}
public String getIdentityNum() {
return identityNum;
}
public void setIdentityNum(String identityNum) {
this.identityNum = identityNum;
}
public String getWorkTelphone() {
return workTelphone;
}
public void setWorkTelphone(String workTelphone) {
this.workTelphone = workTelphone;
}
public String getContactTelphone() {
return contactTelphone;
}
public void setContactTelphone(String contactTelphone) {
this.contactTelphone = contactTelphone;
}
public String getContactAddress() {
return contactAddress;
}
public void setContactAddress(String contactAddress) {
this.contactAddress = contactAddress;
}
public String getWorkAddress() {
return workAddress;
}
public void setWorkAddress(String workAddress) {
this.workAddress = workAddress;
}
public String getNameAgent() {
return nameAgent;
}
public void setNameAgent(String nameAgent) {
this.nameAgent = nameAgent;
}
public String getIdentityNumAgent() {
return identityNumAgent;
}
public void setIdentityNumAgent(String identityNumAgent) {
this.identityNumAgent = identityNumAgent;
}
public String getContactTelphoneAgent() {
return contactTelphoneAgent;
}
public void setContactTelphoneAgent(String contactTelphoneAgent) {
this.contactTelphoneAgent = contactTelphoneAgent;
}
public String getContactAddressAgent() {
return contactAddressAgent;
}
public void setContactAddressAgent(String contactAddressAgent) {
this.contactAddressAgent = contactAddressAgent;
}
public String getDebtorName() {
return debtorName;
}
public void setDebtorName(String debtorName) {
this.debtorName = debtorName;
}
public String getDebtorIdentityNum() {
return debtorIdentityNum;
}
public void setDebtorIdentityNum(String debtorIdentityNum) {
this.debtorIdentityNum = debtorIdentityNum;
}
public String getDebtorContactTelphone() {
return debtorContactTelphone;
}
public void setDebtorContactTelphone(String debtorContactTelphone) {
this.debtorContactTelphone = debtorContactTelphone;
}
public String getDebtorContactAddress() {
return debtorContactAddress;
}
public void setDebtorContactAddress(String debtorContactAddress) {
this.debtorContactAddress = debtorContactAddress;
}
public String getDebtorWorkTelphone() {
return debtorWorkTelphone;
}
public void setDebtorWorkTelphone(String debtorWorkTelphone) {
this.debtorWorkTelphone = debtorWorkTelphone;
}
public String getDebtorWorkAddress() {
return debtorWorkAddress;
}
public void setDebtorWorkAddress(String debtorWorkAddress) {
this.debtorWorkAddress = debtorWorkAddress;
}
public String getDebtorNameAgent() {
return debtorNameAgent;
}
public void setDebtorNameAgent(String debtorNameAgent) {
this.debtorNameAgent = debtorNameAgent;
}
public String getDebtorIdentityNumAgent() {
return debtorIdentityNumAgent;
}
public void setDebtorIdentityNumAgent(String debtorIdentityNumAgent) {
this.debtorIdentityNumAgent = debtorIdentityNumAgent;
}
public String getDebtorContactTelphoneAgent() {
return debtorContactTelphoneAgent;
}
public void setDebtorContactTelphoneAgent(String debtorContactTelphoneAgent) {
this.debtorContactTelphoneAgent = debtorContactTelphoneAgent;
}
public String getDebtorContactAddressAgent() {
return debtorContactAddressAgent;
}
public void setDebtorContactAddressAgent(String debtorContactAddressAgent) {
this.debtorContactAddressAgent = debtorContactAddressAgent;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCaseNum() {
return caseNum;
}
public void setCaseNum(String caseNum) {
this.caseNum = caseNum;
}
public String getContractNumber() {
return contractNumber;
}
public void setContractNumber(String contractNumber) {
this.contractNumber = contractNumber;
}
public BigDecimal getCaseSubjectAmount() {
return caseSubjectAmount;
}
public void setCaseSubjectAmount(BigDecimal caseSubjectAmount) {
this.caseSubjectAmount = caseSubjectAmount;
}
public Date getRegisterDate() {
return registerDate;
}
public void setRegisterDate(Date registerDate) {
this.registerDate = registerDate;
}
public Date getHearDate() {
return hearDate;
}
public void setHearDate(Date hearDate) {
this.hearDate = hearDate;
}
public String getArbitratClaims() {
return arbitratClaims;
}
public void setArbitratClaims(String arbitratClaims) {
this.arbitratClaims = arbitratClaims;
}
public Date getLoanStartDate() {
return loanStartDate;
}
public void setLoanStartDate(Date loanStartDate) {
this.loanStartDate = loanStartDate;
}
public Date getLoanEndDate() {
return loanEndDate;
}
public void setLoanEndDate(Date loanEndDate) {
this.loanEndDate = loanEndDate;
}
public BigDecimal getClaimPrinciOwed() {
return claimPrinciOwed;
}
public void setClaimPrinciOwed(BigDecimal claimPrinciOwed) {
this.claimPrinciOwed = claimPrinciOwed;
}
public BigDecimal getClaimInterestOwed() {
return claimInterestOwed;
}
public void setClaimInterestOwed(BigDecimal claimInterestOwed) {
this.claimInterestOwed = claimInterestOwed;
}
public BigDecimal getClaimLiquidDamag() {
return claimLiquidDamag;
}
public void setClaimLiquidDamag(BigDecimal claimLiquidDamag) {
this.claimLiquidDamag = claimLiquidDamag;
}
public BigDecimal getFeePayable() {
return feePayable;
}
public void setFeePayable(BigDecimal feePayable) {
this.feePayable = feePayable;
}
public Date getBeginVideoDate() {
return beginVideoDate;
}
public void setBeginVideoDate(Date beginVideoDate) {
this.beginVideoDate = beginVideoDate;
}
public String getOnlineVideoPerson() {
return onlineVideoPerson;
}
public void setOnlineVideoPerson(String onlineVideoPerson) {
this.onlineVideoPerson = onlineVideoPerson;
}
public List<CaseAffiliate> getCaseAffiliates() {
return caseAffiliates;
}
public void setCaseAffiliates(List<CaseAffiliate> caseAffiliates) {
this.caseAffiliates = caseAffiliates;
}
/**
* 申请机构id
*/
private String applicationOrganId;
/**
* 版本号
*/
private Integer version;
/**
* 修改案件的提交状态,0-未提交,1-已提交,2-同意,3-拒绝,4-撤销
*/
private Integer updateSubmitStatus;
/** 合同名称 */
private String contractName;
/**
* 事实和理由
*/
private String facts;
/**
* 合同甲方
*/
private String partyA;
/**
* 利率
*/
private String interestRate;
/**
* 待还金额
*/
private String outstandingMoney;
/**
* 调解达成协议内容
*/
private String mediationAgreement;
/**
* 金融消费纠纷基本情况
*/
private String disputes;
/**
* 贷款类型
*/
private String loanType;
/**
* 贷款期限
*/
private String loanTerm;
/**
* 本案争议焦点
*/
private String caseFocus;
/**
* 本案事实
*/
private String caseFacts;
/**
* 被申请人对上述材料的质证意见
*/
private String respondentOpinion;
/**
* 申请人对上述材料的质证意见
*/
private String applicantOpinion;
/**
* 批号
*/
private String batchNumber;
/**
* 自定义字段
*/
private List<ColumnValue> columnValues;
}
@@ -0,0 +1,23 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CaseApplicationPay {
/** 案件编号 */
private String caseNum;
/** 案件标的 */
private BigDecimal caseSubjectAmount;
/** 仲裁应缴费用 */
private BigDecimal feePayable;
/** 案件状态 */
private Integer caseStatus;
/**申请人 */
private String caseAppName;
/**被申请人 */
private String caseResName;
}
@@ -18,6 +18,10 @@ public class CaseAttach {
* 案件申请id
*/
private Long caseAppliId;
/**
* 案件记录id
*/
private Long caseAppliLogId;
/**
* 附件名称
*/
@@ -42,5 +46,13 @@ public class CaseAttach {
* 用户账户
*/
private String userName;
/**
* 印章状态(0未启用,1已启用)
*/
private Integer sealStatus;
/**
* 是否是证据上传,0-否,1-是
*/
private Integer isBatchUpload;
}
@@ -0,0 +1,60 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CaseEvidenceDirectory extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
/**
* 父id
*/
private Long parentId;
/**
* 证据名称
*/
private String evidenceName;
/**
* 附件id
*/
private Integer annexId;
/**
* 级数
*/
private Integer series;
/**
* 案件id
*/
private Long caseId;
/** 子目录 */
private List<CaseEvidenceDirectory> children = new ArrayList<>();
/**
* 附件名称
*/
private String annexName;
/**
* 附件路径
*/
private String annexPath;
}
@@ -0,0 +1,9 @@
package com.ruoyi.wisdomarbitrate.domain;
import lombok.Data;
import java.util.List;
@Data
public class CaseIds {
private List<Long> ids;
}
@@ -34,6 +34,46 @@ public class CaseLogRecord extends BaseEntity {
*/
private String createNickName;
/**
* 角色名称
*/
private String roleName;
/**
* 下一个节点角色名称
*/
private String nextRoleName;
public String getNextRoleName() {
return nextRoleName;
}
public void setNextRoleName(String nextRoleName) {
this.nextRoleName = nextRoleName;
}
/**
* 节点名称
*/
private String caseNodeName;
public String getCaseNodeName() {
return caseNodeName;
}
public void setCaseNodeName(String caseNodeName) {
this.caseNodeName = caseNodeName;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public String getCaseNum() {
return caseNum;
@@ -0,0 +1,61 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.util.Date;
@Data
public class DeptIdentify extends BaseEntity {
private static final long serialVersionUID = 1L;
/** ID */
private Long id;
/** 部门id */
private Long deptId;
/** 用户id */
private Long userId;
/** 机构名称 */
private String identifyName;
/** 认证状态 */
private Integer identifyStatus;
/** 认证时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date identifyDate;
/** 是否启用 */
private Integer isUse;
/** 经办人姓名 */
private String operName;
/** 经办人用户名 */
private String operUserName;
/** 经办人手机号 */
private String operPhone;
/** 机构账号ID */
private String orgId;
/** 认证授权流程ID */
private String authFlowId;
/** 部门认证链接 */
private String identifyUrl;
/** 机构信用代码 */
private String creditCode;
/** 法人姓名 */
private String legalPerName;
/** 法人手机号 */
private String legalPerPhone;
/** 机构类型(1 仲裁机构) */
private Integer identifyType;
/** 机构邮箱 */
private String identifyEmail;
/** 删除标志(0代表存在 2代表删除) */
private Integer delFlag;
}
@@ -0,0 +1,41 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.util.Date;
/**
* 抓取规则
*/
@Data
public class FatchRule extends BaseEntity {
private static final long serialVersionUID = 1L;
private Long id;
private String batchNumber;
private String fileName;
private String startContent;
private String endContent;
private String column;
private String columnName;
private Integer isDefault;
private Long templateId;
private String databaseName;
/**
* 顺序,开始字段重复时,指定抓取第几个
*/
private Integer startContentRepeatOrder;
/**
* 结束字段重复时指定的顺序,默认1,只能>0填正整数
*/
private Integer endContentRepeatOrder;
/**
* 抓取方向,默认0,0-从前往后抓取,1-从后往前抓取
*/
private Integer fatchOrder;
}
@@ -3,9 +3,10 @@ package com.ruoyi.wisdomarbitrate.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.util.Date;
@Data
public class IdentityAuthentication extends BaseEntity {
private static final long serialVersionUID = 1L;
@@ -15,6 +16,20 @@ public class IdentityAuthentication extends BaseEntity {
private String name;
/** 身份证号 */
private String identityNo;
/**
* 短信验证码
*/
private String VerifyCode;
private String passWord;
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 身份证地址
*/
private String idAddress;
/** 认证时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date certificationTime;
@@ -44,6 +59,10 @@ public class IdentityAuthentication extends BaseEntity {
private Long userId;
/** 用户账号 */
private String userName;
/**
* 用户昵称
*/
private String nickName;
/** EID商户id */
private String merchantId;
@@ -0,0 +1,63 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* @author wangqiong
* @description 预定会议
* @Version 1.0
* @date 2023-11-09 16:51
*/
@Data
public class ReservedConference {
/**
* id
*/
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 用户名
*/
private String userName;
/**
* 案件id
*/
private Long caseId;
/**
* 房间号
*/
private long roomId;
/**
* 预定会议开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date scheduleStartTime;
/**
* 预定会议结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date scheduleEndTime;
/**
* 是否超过5分钟
*/
private Boolean isBeforeFiveMinutes;
public ReservedConference() {
}
public ReservedConference(Long caseId, Long userId, long roomId, Date scheduleStartTime, Date scheduleEndTime) {
this.caseId = caseId;
this.userId = userId;
this.roomId = roomId;
this.scheduleStartTime = scheduleStartTime;
this.scheduleEndTime = scheduleEndTime;
}
}
@@ -0,0 +1,48 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
@Data
public class SealManage extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* ID
*/
private Long id;
/**
* 机构关联id
*/
private Long identifyId;
/**
* 印章名称
*/
private String sealName;
/**
* 印章id
*/
private String sealId;
/**
* 附件id
*/
private Integer annexId;
/**
* 印章审核状态(0未通过,1通过)
*/
private Integer sealStatus;
/**
* 印章使用状态(0禁用,1启用)
*/
private Integer isUse;
/**
* 附件路径
*/
private String annexPath;
}
@@ -0,0 +1,115 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.Date;
public class SendMailRecord extends BaseEntity {
private static final long serialVersionUID = 1L;
private Long id;
/** 案件申请id */
private Long caseId;
/**
* 邮件名称
*/
private String mailName;
/**
* 邮件内容
*/
private String mailContent;
/**
* 邮件地址
*/
private String mailAddress;
/**
* 发送时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sendTime;
/** 案件编号 */
private String caseNum;
/** 发送状态 */
private Integer sendStatus;
public Integer getSendStatus() {
return sendStatus;
}
public void setSendStatus(Integer sendStatus) {
this.sendStatus = sendStatus;
}
public String getCaseNum() {
return caseNum;
}
public void setCaseNum(String caseNum) {
this.caseNum = caseNum;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCaseId() {
return caseId;
}
public void setCaseId(Long caseId) {
this.caseId = caseId;
}
public String getMailName() {
return mailName;
}
public void setMailName(String mailName) {
this.mailName = mailName;
}
public String getMailContent() {
return mailContent;
}
public void setMailContent(String mailContent) {
this.mailContent = mailContent;
}
public String getMailAddress() {
return mailAddress;
}
public void setMailAddress(String mailAddress) {
this.mailAddress = mailAddress;
}
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
}
@@ -0,0 +1,45 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SmsSendRecord extends BaseEntity {
/**
* ID
*/
private Long id;
/**
* 案件申请id
*/
private Long caseId;
/**
* 案件编号
*/
private String caseNum;
/**
* 手机号
*/
private String phone;
/**
* 发送时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sendTime;
/**
* 发送内容
*/
private String sendContent;
/**
* 发送状态
*/
private Integer sendStatus;
}
@@ -0,0 +1,57 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.util.List;
@Data
public class TemplateManage extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* ID
*/
private Long id;
/**
* 机构关联id
*/
private Long identifyId;
/**
* 模板名称
*/
private String temName;
/**
* 模板类型(1裁决书)
*/
private Integer temType;
/**
* 模板格式
*/
private String temFormat;
/**
* 文件名
*/
private String fileName;
/**
* 原模板路径
*/
private String temOrigPath;
/**
* 修订后模板路径
*/
private String temRevisPath;
/**
* 删除标志(0代表存在 2代表删除)
*/
private Integer delFlag;
/**
* 机构关联id
*/
private String identifyName;
List<FatchRule> fatchRules;
}
@@ -0,0 +1,33 @@
package com.ruoyi.wisdomarbitrate.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
@Data
public class TemplateManual {
/**
* ID
*/
private Long id;
/**
* 模板名称
*/
private String name;
/**
* 模板内容,用{}作为占位符动态替换其内容
*/
private String content;
/**
* 模板类型,1-裁决内容,2-调解协议,3-金融消费纠纷基本情况
*/
private Integer type;
/**
* 删除标志(0代表存在 2代表删除)
*/
private Integer delFlag;
}
@@ -0,0 +1,255 @@
package com.ruoyi.wisdomarbitrate.domain.dto;
import lombok.Data;
import java.util.Date;
/**
* @author wangqiong
* @description 案件日志
* @date 2023-11-17 14:01
*/
@Data
public class CaseApplicationLogDTO {
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
/**
* 案件编号
*/
private String caseNum;
/**
* 案件标的
*/
private Double caseSubjectAmount;
/**
* 立案日期
*/
private Date registerDate;
/**
* 仲裁方式,视频仲裁(1)、书面仲裁(2)
*/
private Long arbitratMethod;
/**
* 案件状态,立案申请(0)、待立案审查(1)、 待缴费(2)、待缴费确认(3)、 待案件质证(4)、
*/
private Integer caseStatus;
/**
* 开庭日期
*/
private Date hearDate;
/**
* 申请人仲裁请求及事实和理由
*/
private String arbitratClaims;
/**
* 借款开始日期
*/
private Date loanStartDate;
/**
* 借款结束日期
*/
private Date loanEndDate;
/**
* 申请人主张欠本金
*/
private Double claimPrinciOwed;
/**
* 申请人主张欠利息
*/
private Double claimInterestOwed;
/**
* 申请人主张违约金
*/
private Double claimLiquidDamag;
/**
* 仲裁应缴费用
*/
private Double feePayable;
/**
* 开始在线视频时间
*/
private Date beginVideoDate;
/**
* 在线视频人员
*/
private String onlineVideoPerson;
/**
* 合同编号
*/
private String contractNumber;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新者
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建者
*/
private String createBy;
/**
* 仲裁员id
*/
private String arbitratorId;
/**
* 仲裁员名称
*/
private String arbitratorName;
/**
* 已确认组庭的仲裁员id
*/
private String pendedTrialArbitorid;
/**
* 是否指派仲裁员,1是,2否
*/
private Integer pendingAppointArbotrar;
/**
* 案件名称
*/
private String caseName;
/**
* 案件描述
*/
private String caseDescribe;
/**
* 仲裁结果
*/
private String caseResult;
/**
* 是否同意组庭,0否,1是
*/
private Integer isAgreePendTral;
/**
* 是否有异议需要举证,1是,0否
*/
private Integer objectionAddEviden;
/**
* 是否需要开庭审理,1是,0否
*/
private Integer openCourtHear;
/**
* paid_expenses
*/
private Double paidExpenses;
/**
* 裁决书URL
*/
private String filearbitraUrl;
/**
* 支付方式(0线上支付,1线下支付)
*/
private String payType;
/**
* 申请人请求仲裁庭裁决
*/
private String requestRule;
/**
* 是否仲裁反请求,1是,0否
*/
private Integer adjudicaCounter;
/**
* 是否财产保全申请,1是,0否
*/
private Integer properPreser;
/**
* 是否管辖异议申请,1是,0否
*/
private Integer objectiJuris;
/**
* 被申请人是否缺席,1是,0否
*/
private Integer isAbsence;
/**
* 被申请人质证意见
*/
private String responCrossOpin;
/**
* 申请人质证意见
*/
private String applicaCrossOpin;
/**
* 被申请人的答辩意见
*/
private String responDefenOpini;
/**
* 申请人是否缺席,1是,0否
*/
private Integer appliIsAbsen;
/**
* 是否锁定,0-否,1-是
*/
private Integer lockStatus;
/**
* 视频会议房间号id,多个用逗号拼接
*/
private String roomId;
/**
* 是否导入,0手动录入,1导入,默认0
*/
private Integer importFlag;
/**
* 版本号
*/
private Long version;
/**
* 修改案件的提交状态,0-未提交,1-已提交,2-同意,3,拒绝
*/
private Integer updateSubmitStatus;
}
@@ -12,10 +12,10 @@ import java.util.List;
@Data
public class CaseConfirmPayDTO {
/**
* 案件id
* 案件ids
*/
@NotNull(message = "案件id不能为空")
private Long caseId;
private List<Long> caseIds;
/**
* 支付方式 0线上支付,1线下支付
@@ -29,6 +29,15 @@ public class CaseEvidenceDTO {
* 是否指派仲裁员,1是,2否
*/
private Integer pendingAppointArbotrar;
/** 是否仲裁反请求 */
private Integer adjudicaCounter;
/**
* 仲裁反请求原因
*/
private String adjudicaCounterReason;
/** 是否管辖异议申请 */
private Integer objectiJuris;
/**
* 案件仲裁员
@@ -13,7 +13,7 @@ public class CasePayDTO {
/**
* 案件id
*/
private Long caseId;
private List<Long> caseIds;
/**
* 订单金额 单位:分
@@ -0,0 +1,200 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.wisdomarbitrate.domain.CaseEvidenceDirectory;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 目录查询返回类
*/
public class CaseEvidenceDirectoryVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
/**
* 父id
*/
private Long parentId;
/**
* 证据名称
*/
private String evidenceName;
/**
* 附件id
*/
private Integer annexId;
/**
* 级数
*/
private Integer series;
/**
* 案件id
*/
private Long caseId;
/** 子目录 */
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<CaseEvidenceDirectory> children;
/**
* 附件名称
*/
private String annexName;
/**
* 附件路径
*/
private String annexPath;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date createTime;
/**
* 创建者
*/
private String createBy;
/**
* 更新者
*/
private String updateBy;
/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date updateTime;
public CaseEvidenceDirectoryVO(){
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public String getEvidenceName() {
return evidenceName;
}
public void setEvidenceName(String evidenceName) {
this.evidenceName = evidenceName;
}
public Integer getAnnexId() {
return annexId;
}
public void setAnnexId(Integer annexId) {
this.annexId = annexId;
}
public Integer getSeries() {
return series;
}
public void setSeries(Integer series) {
this.series = series;
}
public Long getCaseId() {
return caseId;
}
public void setCaseId(Long caseId) {
this.caseId = caseId;
}
public List<CaseEvidenceDirectory> getChildren() {
return children;
}
public void setChildren(List<CaseEvidenceDirectory> children) {
this.children = children;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getAnnexName() {
return annexName;
}
public void setAnnexName(String annexName) {
this.annexName = annexName;
}
public void setAnnexPath(String annexPath) {
this.annexPath = annexPath;
}
public CaseEvidenceDirectoryVO(CaseEvidenceDirectory caseEvidenceDirectory) {
this.id = caseEvidenceDirectory.getId();
this.parentId = caseEvidenceDirectory.getParentId();
this.evidenceName = caseEvidenceDirectory.getEvidenceName();
this.annexId = caseEvidenceDirectory.getAnnexId();
this.series = caseEvidenceDirectory.getSeries();
this.caseId = caseEvidenceDirectory.getCaseId();
this.children = caseEvidenceDirectory.getChildren();
this.createTime = caseEvidenceDirectory.getCreateTime();
this.createBy = caseEvidenceDirectory.getCreateBy();
this.updateBy = caseEvidenceDirectory.getUpdateBy();
this.updateTime = caseEvidenceDirectory.getUpdateTime();
this.annexName = caseEvidenceDirectory.getAnnexName();
this.annexPath = caseEvidenceDirectory.getAnnexPath();
}
}
@@ -1,8 +1,11 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class CaseEvidenceVO {
/**
@@ -25,4 +28,13 @@ public class CaseEvidenceVO {
* 案件状态
*/
private Integer caseStatus;
/**
* 房间号
*/
private Long roomId;
/**
* 开庭时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date scheduleStartTime;
}
@@ -0,0 +1,25 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseApplicationPay;
import lombok.Data;
import java.util.List;
@Data
public class CasePayListVO {
/**
* 订单总金额 单位:分
*/
private int totalFee;
/**
* 案件总条数
*/
private int CaseTotal;
/**
* 案件订单列表
*/
private List<CaseApplicationPay> caseApplicationList;
}
@@ -0,0 +1,45 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import lombok.Data;
/**
* 动态配置字段表
*/
@Data
public class ColumnValue {
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
/**
* 字段,同一个批号,column不可重复
*/
private String column;
/**
* 字段名
*/
private String name;
/**
* 字段值
*/
private String value;
/**
* 案件id
*/
private Long caseId;
/**
* 是否为自定义字段,0-否,1-是
*/
private Integer isDefault;
/**
* 案件日志表id
*/
private Long caseAppliLogId;
}
@@ -0,0 +1,37 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 案件前后对比
* @author wangqiong
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CompareCaseVO {
/**
* 该版本前的案件
*/
private CaseApplication beforeCase;
/**
* 该版本后的案件
*/
private CaseApplication afterCase;
/**
* 变化字段,多个用,拼接
*/
private String changeColumn;
/**
* 自定义字段变化字段,多个用,拼接
*/
private String columnValueChangeColumn;
}
@@ -0,0 +1,47 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* @author wangqiong
* @description 预约会议
* @date 2023-11-08 11:05
*/
@Data
public class ReservedConferenceVO {
/**
* 用户id
*/
private String ownerId;
/**
* 房间号id
*/
private Long roomId;
/**
* 会议开始时间
*/
@NotNull(message = "会议开始时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date scheduleStartTime;
/**
* 会议结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date scheduleEndTime;
/**
* 案件id
*/
@NotNull(message = "案件id不能为空")
private Long caseId;
/**
* html内容
*/
private String htmlContent;
}
@@ -0,0 +1,35 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
@Data
public class SealListVO {
/** 主键 */
private Long id;
/** 印章id */
private String sealId;
/** 印章名称 */
private String sealName;
/**
* 印章审核状态(0未通过,1通过)
*/
private Integer sealStatus;
/**
* 印章使用状态(0禁用,1启用)
*/
private Integer isUse;
/**
* 附件id
*/
private Integer annexId;
/**
* 附件路径
*/
private String annexPath;
/**
* 附件类型
*/
private Integer annexType;
}
@@ -1,10 +1,12 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* @author wangqiong
@@ -18,7 +20,10 @@ public class SendRoomNoMessageVO implements Serializable {
private Long id;
@NotEmpty(message = "房间号不能为空")
private String roomNo;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date scheduleStartTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date scheduleEndTime;
}
@@ -0,0 +1,17 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import lombok.Data;
/**
* 模板抓取规则关联表
*/
@Data
public class TemplateFatchRule {
private static final long serialVersionUID = 1L;
private Long id;
private Long templateId;
private Long fatchRuleId;
}
@@ -0,0 +1,34 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import lombok.Data;
/**
* @author wangqiong
* @description 待办数量
* @date 2023-10-17 09:48
*/
@Data
public class ToDoCount {
private int caseApply=0; // 立案申请
private int caseApplyCheck=0; // 待立案审查
private int caseApplyPay=0; // 待缴费
private int caseApplyPayCheck=0; // 待缴费确认
private int caseApplyEvidence=0; //待案件质证
private int caseApplyGroupCheck=0; // 待组庭审核
private int caseApplyGroupConfirm=0; // 待组庭确定
// private int caseApplyGroupNotice;
private int caseApplyArbitrateWay=0; // 待审核仲裁方式
private int caseApplyGroupOnline=0; // 待开庭审理
private int caseApplyGroupOffline=0; // 待书面审理
private int caseApplyAward=0; // 待生成仲裁文书
private int caseApplyAwardCheck=0; // 待核验仲裁文书
private int caseApplyAwardConfirm=0; // 待审核仲裁文书
private int caseApplyAwardSign=0; // 待仲裁文书签名
private int caseApplyAwardSeal=0; // 待仲裁文书用印
private int caseApplyAwardSend=0; // 待仲裁文书送达
private int caseApplyStored=0; // 待案件归档
private int caseApplyArchived=0; // 已归档
private int updateOnlineHearDate=0; // 待修改开庭时间
private int arbitratorApplyAwardConfirm=0; // 待仲裁员审核仲裁文书
}
@@ -0,0 +1,38 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 修改案件提交至秘书
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UpdateSubmitVO {
/**
* 案件id
*/
private Long caseId;
/**
* 版本号
*/
private Integer version;
/**
* 修改案件的提交状态,0-未提交,1-已提交,2-撤销,3-同意已修改的案件,4-拒绝已修改的案件,5-同意撤销,6-拒绝撤销
*/
private Integer updateSubmitStatus;
/**
* 是否同意,0-否,1-是
*/
private Integer isAgree;
/**
* 拒絕原因
*/
private String reason;
}
@@ -0,0 +1,63 @@
package com.ruoyi.wisdomarbitrate.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.wisdomarbitrate.domain.Arbitrator;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
* 微信小程序用户注册登录
*/
@Data
public class WeChatUserVO {
/**
* id
*/
private Long id;
/**
* 微信用户唯一标识
*/
private String openId;
/**
* 微信授权的code,用户登录凭证
*/
private String wxCode;
/**
* 姓名
*/
@NotEmpty(message = "姓名不能为空")
private String name;
/** 身份证号 */
@NotEmpty(message = "身份证号不能为空")
private String identityNo;
/** 认证时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date certificationTime;
/** 认证状态 */
private Integer certificationStatus;
private String password;
/**
* 电话
*/
@NotEmpty(message = "电话不能为空")
private String phone;
/**
* 验证码
*/
private String verifyCode;
/**
* 邮箱
*/
@NotEmpty(message = "邮箱不能为空")
private String email;
/**
* 创建人
*/
private String createBy;
private String updateBy;
}
@@ -0,0 +1,25 @@
package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CaseAffiliateLogMapper {
int batchCaseAffiliate(List<CaseAffiliate> caseAffiliates);
void deletecaseAffiliate(CaseApplication caseApplication);
void batchDeletecaseAffiliate(@Param("ids") List<Long> ids);
List<CaseAffiliate> selectCaseAffiliate(@Param("caseAppliLogId") Long caseAppliLogId);
CaseAffiliate selectCaseAffiliateByIdentityType(@Param("caseAppliLogId") Long caseAppliLogId, @Param("identityType")int identityType);
int updataCaseAffiliate(CaseAffiliate caseAffiliate);
}
@@ -1,7 +1,9 @@
package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.wisdomarbitrate.domain.BatchCaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.vo.BookSendVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -13,10 +15,31 @@ public interface CaseAffiliateMapper {
void deletecaseAffiliate(CaseApplication caseApplication);
void batchDeletecaseAffiliate(@Param("ids") List<Long> ids);
List<CaseAffiliate> selectCaseAffiliate(CaseAffiliate caseAffiliate);
List<CaseAffiliate> selectCaseAffiliateByCaseIds(@Param("ids") List<Long> ids);
CaseAffiliate selectCaseAffiliateByIdentityType(@Param("caseAppliId") Long caseAppliId, @Param("identityType")int identityType);
int updataCaseAffiliate(CaseAffiliate caseAffiliate);
/**
* 根据案件查询邮箱
* @param id
* @return
*/
List<CaseAffiliate> emailByCaseId(@Param("caseAppliId")Long id);
/**
* 批量修改
* @param affiliateLogList
*/
void updateCaseAffiliateByCaseId(@Param("caseAppliId")Long caseAppliId,@Param("list") List<CaseAffiliate> affiliateLogList);
/**
* 根据案件id删除
* @param caseId
*/
void deleteByCaseId(@Param("caseAppliId") Long caseId);
}
@@ -0,0 +1,49 @@
package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.vo.UpdateSubmitVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author wangqiong
* @description 案件日志
* @date 2023-11-17 14:05
*/
@Repository
public interface CaseApplicationLogMapper {
int insert(CaseApplication caseApplicationLog);
int deleteById(Long id);
CaseApplication selectByCaseIdAndVersion(@Param("caseAppliId")long caseAppliId,@Param("version") int version);
Integer selectMaxVersionByCaseId(@Param("caseAppliId")long caseAppliId);
/**
* 修改日志表状态
* @param vo
*/
void updateStatus(UpdateSubmitVO vo);
/**
* 根据案件id查询秘书角色最新版本号
* @param id
* @return
*/
Integer selectMaxVersionBySecret(@Param("caseAppliId")Long id);
/**
* 根据案件id删除案件记录表和案件关联人日志表
* @param ids
*/
void batchDeleteLog(@Param("ids") List<Long> ids);
CaseApplication selectBeforeCase(@Param("caseId") Long caseId, @Param("version")Integer version);
Integer batchSave(@Param("list")List<CaseApplication> caseApplications);
}
@@ -1,15 +1,18 @@
package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.wisdomarbitrate.domain.Arbitrator;
import com.ruoyi.wisdomarbitrate.domain.BatchCaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.dto.CaseConfirmPayDTO;
import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface CaseApplicationMapper {
List<CaseApplication> selectCaseApplicationList(CaseApplication caseApplication);
List<CaseApplication> selectCaseApplicationList1(CaseApplication caseApplication);
int selectCaseApplicationCount(CaseApplication caseApplication);
@@ -31,6 +34,13 @@ public interface CaseApplicationMapper {
CaseApplication selectCaseApplication(CaseApplication caseApplication);
/**
* 根据案件id查询案件信息
* @param ids
* @return
*/
List<CaseApplication> listCaseApplicationByIds(@Param("ids")List<Long> ids);
CaseApplication selectCaseApplicationConfirm(CaseApplication caseApplication);
/**
@@ -43,7 +53,7 @@ public interface CaseApplicationMapper {
/**
* 查询仲裁员根据案件id
* @param arbitrator
* @param id
* @return
*/
String selectArbitratorList(@Param("id") String id);
@@ -53,4 +63,72 @@ public interface CaseApplicationMapper {
* @param payDTO
*/
void updatePayType(CaseConfirmPayDTO payDTO);
ToDoCount selectAdminCaseToDoCount();
ToDoCount selectTodoCountByRole(CaseApplication caseApplication);
/**
* 修改案件锁定状态
* @param id
* @param lockStatus
* @return
*/
int updateCaseLockStatus(@Param("id")Long id,@Param("lockStatus") Integer lockStatus);
/**
* 批量删除案件
* @param ids
* @return
*/
int batchDeletecaseApplication(@Param("ids") List<Long> ids);
/**
* 绑定房间号
* @param caseId
* @param roomId
*/
void bindCaseId(@Param("caseId")Long caseId,@Param("roomId") String roomId);
/**
* 根据房间号查询案件id
* @param roomId
* @return
*/
Long selectCaseIdByRoomId(@Param("roomId")String roomId);
/**
* 查询已办案件
* @param caseApplication
* @return
*/
List<CaseApplication> selectHandledCase(CaseApplication caseApplication);
/**
* 查询最大房间号
* @return
*/
Long selectMaxRoomId();
/**
* 修改案件版本号
* @param id
* @param version
*/
void updateVersionById(@Param("id")Long id, @Param("version")Integer version);
/**
* 查询最大批号
* @return
*/
Integer selectBatchNumberLike();
/**
* 批量新增案件
* @param caseApplications
* @return
*/
int batchSave(@Param("list")List<CaseApplication> caseApplications);
}
@@ -0,0 +1,31 @@
package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface CaseAttachLogMapper {
int save(CaseAttach caseAttach);
List<CaseAttach> queryAnnexPathByCaseId(Long id);
List<CaseAttach> queryCaseAttachList(CaseApplication caseApplication);
int updateCaseAttach(CaseAttach caseAttach);
int updateCaseAttachBycaseid(CaseAttach caseAttach);
int deleteByFileIds(@Param("ids") List<Integer> fileIds);
List<CaseAttach> getCaseAttachByCaseIdAndType(CaseAttach caseAttach);
CaseAttach queryAnnexById(Integer annexId);
Integer batchSave(@Param("list")List<CaseAttach> caseAttaches);
}
@@ -2,12 +2,15 @@ package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseAttach;
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface CaseAttachMapper {
int save(CaseAttach caseAttach);
int batchSave(@Param("list") List<CaseAttach> caseAttach);
List<CaseAttach> queryAnnexPathByCaseId(Long id);
@@ -18,4 +21,18 @@ public interface CaseAttachMapper {
int updateCaseAttachBycaseid(CaseAttach caseAttach);
int deleteByFileIds(@Param("ids") List<Integer> fileIds);
List<CaseAttach> getCaseAttachByCaseIdAndType(CaseAttach caseAttach);
CaseAttach queryAnnexById(Integer annexId);
/**
* 根据案件id和附件类型删除和上传类型
* @param caseAppliId
* @param annexType
*/
void deleteByCasedIdAndType(@Param("caseAppliId")Long caseAppliId,@Param("annexType") int annexType,@Param("isBatchUpload") int isBatchUpload);
void deleteCaseAttachByCasedIdAndType(@Param("caseAppliId")Long caseAppliId,@Param("annexType") int annexType);
}
@@ -0,0 +1,29 @@
package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.wisdomarbitrate.domain.CaseEvidenceDirectory;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface CaseEvidenceDirectoryMapper {
int save(CaseEvidenceDirectory caseEvidenceDirectory);
/**
* 查询证据目录信息
*
* @param caseEvidenceDirectory 目录信息
* @return 目录信息集合
*/
List<CaseEvidenceDirectory> selectList(CaseEvidenceDirectory caseEvidenceDirectory);
/**
* 根据证据名称查询证据目录树信息
* @param evidenceName 证据名称
* @param deptCheckStrictly 目录树选择项是否关联显示
*/
List<Integer> selectDeptListByEvidenceName(@Param("evidenceName") String evidenceName, @Param("deptCheckStrictly") boolean deptCheckStrictly);
}
@@ -11,5 +11,6 @@ import java.util.List;
public interface CaseEvidenceMapper {
List<CaseEvidenceVO> getCaseListByRespondent(@Param(value = "identityNum" ) String identityNum
, @Param(value = "caseStatusList") List<Integer> caseStatusList
, @Param(value = "identityType" ) Integer identityType);
, @Param(value = "identityType" ) Integer identityType
);
}
@@ -2,13 +2,18 @@ package com.ruoyi.wisdomarbitrate.mapper;
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.domain.CaseLogRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
public interface CaseLogRecordMapper {
List<CaseLogRecord> selectCaseLogRecordList(CaseLogRecord caseLogRecord);
int insertCaseLogRecord(CaseLogRecord caseLogRecord);
void batchInsertRecord(@Param("list")List<CaseLogRecord> list);
}

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