javascript
SpringBoot集成Flowable_Jsite待办任务菜单报500
JSite 快速開發(fā)框架,內(nèi)置Flowable工作流引擎 · 五大基礎(chǔ)模塊 · 前后端基礎(chǔ)代碼自動生成 · 權(quán)限精確控制。
說明:此版本我已經(jīng)調(diào)通,最新版本正在更新,頁面未處理好,因此采用歷史版本。
文章目錄
- 一、克隆/打開項目
- 1.1. 搜索項目
- 1.2. 復(fù)制ssh地址
- 1.3. 將項目克隆到本地
- 1.4. idea打開項目`JSite`
- 二、配置項目
- 2.1. 解決依賴
- 2.1.1. 配置maven本地倉庫
- 2.1.2. 配置阿里云鏡像地址鏡像
- 2.2. 切換到歷史節(jié)點
- 2.3. 修改數(shù)據(jù)庫連接信息
- 2.4. 初始化數(shù)據(jù)庫腳本
- 2.5. 配置Redis
- 2.6. 啟動Redis
- 2.7. 關(guān)閉演示模式
- 2.7.1. 關(guān)閉演示模式開關(guān)
- 2.7.2. 切換正常模式
- 三、啟動項目
- 3.1. 啟動類報錯
- 3.2. 重新編譯打包
- 四、請假實戰(zhàn)
- 4.1. 部署流程
- 4.2. 發(fā)起流程
- 4.3. 已發(fā)任務(wù)查看
- 4.4. 部門經(jīng)理流轉(zhuǎn)
- 4.4.1. 登錄dept賬號
- 4.4.2. 在待辦任務(wù)中,簽收任務(wù)
- 4.4.3. 在待辦任務(wù)中,辦理任務(wù)
一、克隆/打開項目
1.1. 搜索項目
- 在碼云搜索框中搜索JSite
- 或者直接點擊碼云項目鏈接:
https://gitee.com/baseweb/JSite
1.2. 復(fù)制ssh地址
1.3. 將項目克隆到本地
git clone git@gitee.com:baseweb/JSite.git1.4. idea打開項目JSite
二、配置項目
2.1. 解決依賴
2.1.1. 配置maven本地倉庫
2.1.2. 配置阿里云鏡像地址鏡像
2.2. 切換到歷史節(jié)點
git checkout 47c0d6c82.3. 修改數(shù)據(jù)庫連接信息
- 前提:在mysql中創(chuàng)建jsite數(shù)據(jù)庫
2.4. 初始化數(shù)據(jù)庫腳本
| 文件模塊 | jsite_file_mysql.sql |
| 代碼生成模塊 | jsite_gen_mysql.sql |
| oa工作流模塊 | jsite_oa_mysql.sql |
| 系統(tǒng)模塊 | jsite_sys_mysql.sql |
| 定時器模塊 | jsite_sys_qrtz_mysql.sql |
| 測試模塊 | jsite_test_mysql.sql |
| 初始化數(shù)據(jù) | jsite-init.sql |
項目啟動后截圖:
2.5. 配置Redis
2.6. 啟動Redis
雙擊運(yùn)行即可
2.7. 關(guān)閉演示模式
2.7.1. 關(guān)閉演示模式開關(guān)
2.7.2. 切換正常模式
static/modler/scripts/controllers/processes.js- 在119行
三、啟動項目
3.1. 啟動類報錯
- 問題現(xiàn)象
- 問題定位
- 再啟動類中,PropertiesUtils這個工具類是com.jsite.common.io.PropertiesUtils中的類,初步判斷是,jsite-common模塊沒有安裝板本地倉庫,導(dǎo)致jsite-web項目以來失敗。
- 深一步追根溯源
- 在jsite-web的pom.xml中,依賴了jsite-framework模塊
- 進(jìn)入jsite-framework模塊的pom中
從上面可以看出,我們的初步判斷是正確的,那就好解決了,沒有安裝到本地倉庫,那就讓我們借助maven打包編譯插件幫我們安裝jsite-common到本地倉庫就好了。
3.2. 重新編譯打包
- 執(zhí)行命令
或者
idea插件操作
- 再次驗證,沒有報錯
- 瀏覽器訪問:http://localhost:8081/jsite
| jsite | admin |
| dept | 123456 |
| jsitehr | 123456 |
| jsiteuser | 123456 |
- 部署流程,只能由系統(tǒng)管理員
- 發(fā)起流程:都可以,前提是由系統(tǒng)管理員部署流程成功后,在發(fā)起流程的類表中才會顯示,然后每個人選擇對應(yīng)的流程,進(jìn)行節(jié)點流轉(zhuǎn)。
說明:上面3個賬號角色分別為系統(tǒng)管理員、部門經(jīng)理、HR,普通員工。
請假流程發(fā)起后,流程下一步自動流轉(zhuǎn)到“部門經(jīng)理”角色賬號下,部門經(jīng)理審批后自動流轉(zhuǎn)到“hr角色賬號下”。測試時,需要登錄不同角色賬號,在代辦任務(wù)中查看流程代辦任務(wù)。
- 刷新頁面即可登陸成功
四、請假實戰(zhàn)
4.1. 部署流程
4.2. 發(fā)起流程
4.3. 已發(fā)任務(wù)查看
4.4. 部門經(jīng)理流轉(zhuǎn)
4.4.1. 登錄dept賬號
4.4.2. 在待辦任務(wù)中,簽收任務(wù)
4.4.3. 在待辦任務(wù)中,辦理任務(wù)
響應(yīng)碼500
- 請求的url
- 頁面?zhèn)鬟f的參數(shù)
- 控制臺報錯信息提取
在獲取代辦列表FlowTaskService的104行
在獲取代辦列表FlowTaskService的105行
這里需要tProcDefId對吧,程序中寫的是從pd中獲取,但是里面,沒有
其實這個tProcDefId在task中,因此需要修改代碼。
- 點擊辦理,procDefId=undefined
第一步進(jìn)FlowTaskController的form方法,調(diào)用getFormKey的service進(jìn)行業(yè)務(wù)處理
從上圖可以看出很明顯,沒有獲取到procDefId
,清除緩存,再次測試,點擊待辦任務(wù)菜單,debbug看程序,
procDefId=leave:1:b74aaad7-15d6-11ea-9f45-4a5ab6e330e5
- 點擊辦理
很明顯獲取到值了!!!
f8跳過,頁面又拋出403,權(quán)限的錯了,真是一波未平一波又起啊。
從頁面很明顯是沒有辦理權(quán)限,導(dǎo)致403錯誤,情有可原,對吧,那就給dept用戶配置權(quán)限唄,
登錄jsite系統(tǒng)管理員賬號,給dept用戶配置權(quán)限
角色授權(quán)既然是空的,我想靜靜。看看控制臺報錯信息再定位問題吧?
從控制臺中可以看出,由2條信息比較醒目:
異常信息很明晰那說AreaOfficeUtils類,RoleController.java:74,既然有文件位置,那咱們就去看看吧,
從以下圖中可以看出,通過反射區(qū)找 com.jsite.modules.sys.utils.AreaOfficeUtils類,那就在程序中找找有這個類嗎?
程序我是看明白了,他想調(diào)用AreaOfficeUtils類的getOfficeList(獲取當(dāng)前用戶有權(quán)限訪問的部門方法),再utils包下就3個工具類,經(jīng)過查找,UserUtils類中,有g(shù)etOfficeList(獲取當(dāng)前用戶有權(quán)限訪問的部門方法),那就好辦了,類名修改一下即可,再次測試。
校色授權(quán),就顯示了。
但是,我就不明白了,想獲取一個工具類的方法,直接調(diào)用不就行了,如果是靜態(tài)的方法,直接用類名.調(diào)用不更方便。代碼還寫了折磨多行,浪費。
代用的方法和我們預(yù)期的一樣靜態(tài)的,那就輕松+快樂了。
一行代碼就搞定了。哈哈哈!!!
測試一下,好不好使,對吧
從上圖可以看出,也好使。
dept用戶的辦理權(quán)限,我也配置好了,再去待辦任務(wù)菜單中,去辦理任務(wù)應(yīng)該就好了,光預(yù)測也不行,測試一下保險。
任務(wù)辦理完了,在已辦任務(wù)菜單中,查看一下任務(wù)辦理的詳情不為過吧,
這里演示以,下面查看當(dāng)前節(jié)點信息,debug斷點調(diào)試了。
其實,也是那個definitionId=undefined導(dǎo)致的,也是由于獲取的對象不對,這里我直接修改程序。
解決方案:
再次測試
任務(wù)辦理完了,在已辦任務(wù)(歷史)菜單中,查看一下任務(wù)辦理的節(jié)點信息不為過吧,
其實,也是那個definitionId=undefined導(dǎo)致的,也是由于獲取的對象不對,這里我直接修改程序。
解決方案:
再次測試
下一個節(jié)點是hr,同理hr也需要權(quán)限
jsitehr登錄
在待辦任務(wù)菜單中,先對待辦任務(wù)進(jìn)行簽收,簽收之后進(jìn)行辦理。
在已辦任務(wù)菜單中,查看當(dāng)前節(jié)點信息
在已辦任務(wù)菜單中,查看詳情
節(jié)點流轉(zhuǎn)結(jié)束了,jsite發(fā)起流程的執(zhí)行人,查看一下歷史任務(wù)應(yīng)該吧。
先追蹤一下流程詳情
很明顯又是這個問題,大家應(yīng)該知道怎末改了吧,
再次測試
總上,異常現(xiàn)象有2種:
到此,一個完整的工作流走完了。
補(bǔ)充,在待辦任務(wù)菜單中會出現(xiàn)2種業(yè)務(wù)場景,上明只講了一種,直接在待辦任務(wù)列表中簽收任務(wù),然后辦理,已經(jīng)簽收的任務(wù),另外一種情況就是,我還未簽收,但是,我想先不簽收,先查看一下節(jié)點信息和流程詳情,也符合業(yè)務(wù)需要,這樣需要在待辦任務(wù)中添加這種業(yè)務(wù)場景。
當(dāng)前屬于未簽收的業(yè)務(wù)場景:
解決方案:
源碼附上:
總結(jié)
以上是生活随笔為你收集整理的SpringBoot集成Flowable_Jsite待办任务菜单报500的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos7 安装Rabbitmq-s
- 下一篇: gradle idea java ssm