Commit 8ff3d22c4d8c9a1db1edafb3565fd94049cadf28

Authored by xingyu
2 parents 63877cf4 4fe3da05

Merge remote-tracking branch 'origin/master'

.gitignore
... ... @@ -47,3 +47,5 @@ nbdist/
47 47 rebel.xml
48 48  
49 49 application-my.yaml
  50 +
  51 +/yudao-ui-app/unpackage/
... ...
README.md
... ... @@ -23,8 +23,8 @@
23 23 >
24 24 > 😜 给项目点点 Star 吧,这对我们真的很重要!
25 25  
26   -* 前端 vue2 版本采用 [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
27   -* 前端 vue3 版本采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin)
  26 +* 前端 Vue2 版本采用 [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
  27 +* 前端 Vue3 版本采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin)
28 28 * 后端采用 Spring Boot、MySQL + MyBatis Plus、Redis + Redisson。
29 29 * 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等
30 30 * 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统。
... ... @@ -100,17 +100,6 @@
100 100  
101 101 ps:核心功能已经实现,正在对接微信小程序中...
102 102  
103   -### 商城系统
104   -
105   -正在开发中,大体计划如下:
106   -* 2022 Q2 => 完成对 <https://github.com/YunaiV/onemall> 的迁移,作为 onemall 的 Spring Boot 单体版本。
107   -* 2022 Q4 => 完成对 <https://github.com/YunaiV/onemall>> 的重构,作为 onemall 的 Spring Cloud 微服务版本。
108   -
109   -### 会员中心
110   -
111   -正在开发中,大体计划如下:
112   -* 2021 Q1 =》完成对 <https://github.com/YunaiV/onemall> 的迁移
113   -
114 103 ### 基础设施
115 104  
116 105 | | 功能 | 描述 |
... ... @@ -135,6 +124,20 @@ ps:核心功能已经实现,正在对接微信小程序中...
135 124 | 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
136 125 | 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
137 126  
  127 +### 商城系统
  128 +
  129 +建设中...
  130 +
  131 +![功能图](http://static.iocoder.cn/mall%20%E5%8A%9F%E8%83%BD%E5%9B%BE-min.png)
  132 +
  133 +![GIF 图-耐心等待](https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-admin-min.gif)
  134 +
  135 +![GIF 图-耐心等待](https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-h5-min.gif)
  136 +
  137 +### 会员中心
  138 +
  139 +和「商城系统」一起开发
  140 +
138 141 ## 🐨 技术栈
139 142  
140 143 | 项目 | 说明 |
... ... @@ -177,14 +180,14 @@ ps:核心功能已经实现,正在对接微信小程序中...
177 180 | [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - |
178 181 | [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.0.0 | - |
179 182  
180   -### vue2 前端
  183 +### Vue2 前端
181 184  
182 185 | 框架 | 说明 | 版本 |
183 186 |------------------------------------------------------------------------------|---------------|--------|
184 187 | [Vue](https://cn.vuejs.org/index.html) | JavaScript 框架 | 2.6.12 |
185 188 | [Vue Element Admin](https://panjiachen.github.io/vue-element-admin-site/zh/) | 后台前端解决方案 | - |
186 189  
187   -### vue3 前端
  190 +### Vue3 前端
188 191  
189 192 | 框架 | 说明 | 版本 |
190 193 |----------------------------------------------------------------------|---------------------|--------|
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmTaskExtDO.java
... ... @@ -12,7 +12,7 @@ import java.util.Date;
12 12  
13 13 /**
14 14 * Bpm 流程任务的拓展表
15   - * 主要解决 Activiti Task 和 HistoricTaskInstance 不支持拓展字段,所以新建拓展表
  15 + * 主要解决 Flowable Task 和 HistoricTaskInstance 不支持拓展字段,所以新建拓展表
16 16 *
17 17 * @author 芋道源码
18 18 */
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmActivityServiceImpl.java
... ... @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.bpm.service.task;
2 2  
3 3 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.activity.BpmActivityRespVO;
4 4 import cn.iocoder.yudao.module.bpm.convert.task.BpmActivityConvert;
5   -import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmActivityMapper;
6 5 import lombok.extern.slf4j.Slf4j;
7 6 import org.flowable.engine.HistoryService;
8 7 import org.flowable.engine.history.HistoricActivityInstance;
... ... @@ -25,8 +24,6 @@ public class BpmActivityServiceImpl implements BpmActivityService {
25 24  
26 25 @Resource
27 26 private HistoryService historyService;
28   - @Resource
29   - private BpmActivityMapper bpmActivityMapper;
30 27  
31 28 @Override
32 29 public List<BpmActivityRespVO> getActivityListByProcessInstanceId(String processInstanceId) {
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceService.java
... ... @@ -144,5 +144,4 @@ public interface BpmProcessInstanceService {
144 144 */
145 145 void updateProcessInstanceExtReject(String id, String reason);
146 146  
147   -
148 147 }
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
... ... @@ -7,10 +7,7 @@ import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
7 7 import cn.iocoder.yudao.framework.common.util.object.PageUtils;
8 8 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
9 9 import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert;
10   -import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
11 10 import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
12   -import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper;
13   -import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmActivityMapper;
14 11 import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmTaskExtMapper;
15 12 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceDeleteReasonEnum;
16 13 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
... ... @@ -67,10 +64,6 @@ public class BpmTaskServiceImpl implements BpmTaskService {
67 64 private BpmTaskExtMapper taskExtMapper;
68 65 @Resource
69 66 private BpmMessageService messageService;
70   - @Resource
71   - private BpmTaskAssignRuleMapper taskAssignRuleMapper;
72   - @Resource
73   - private BpmActivityMapper bpmActivityMapper;
74 67  
75 68 @Override
76 69 public PageResult<BpmTaskTodoPageItemRespVO> getTodoTaskPage(Long userId, BpmTaskTodoPageReqVO pageVO) {
... ... @@ -194,10 +187,6 @@ public class BpmTaskServiceImpl implements BpmTaskService {
194 187 taskExtMapper.updateByTaskId(
195 188 new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.APPROVE.getResult())
196 189 .setReason(reqVO.getReason()));
197   - // 判断任务是否为或签,或签时删除其余不用审批的任务
198   - List<BpmTaskAssignRuleDO> bpmTaskAssignRuleList =
199   - taskAssignRuleMapper.selectListByProcessDefinitionId(task.getProcessDefinitionId(),
200   - task.getTaskDefinitionKey());
201 190 }
202 191  
203 192 @Override
... ... @@ -216,7 +205,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
216 205 // 更新任务拓展表为不通过
217 206 taskExtMapper.updateByTaskId(
218 207 new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.REJECT.getResult())
219   - .setReason(reqVO.getReason()));
  208 + .setEndTime(new Date()).setReason(reqVO.getReason()));
220 209 }
221 210  
222 211 @Override
... ...
yudao-ui-admin/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue
... ... @@ -120,20 +120,21 @@ export default {
120 120 this.bpmnModeler.getDefinitions().rootElements[0].flowElements?.forEach(n => {
121 121 let activity = activityList.find(m => m.key === n.id) // 找到对应的活动
122 122 if (n.$type === 'bpmn:UserTask') { // 用户任务
123   - debugger
124 123 if (!activity) {
125 124 return;
126 125 }
127 126 // 处理用户任务的高亮
128 127 const task = this.taskList.find(m => m.id === activity.taskId); // 找到活动对应的 taskId
129   - if (task) {
130   - canvas.addMarker(n.id, this.getResultCss(task.result));
131   - // 如果非通过,就不走后面的线条了
132   - if (task.result !== 2) {
133   - return;
134   - }
  128 + if (!task) {
  129 + return;
135 130 }
  131 + // 高亮任务
  132 + canvas.addMarker(n.id, this.getResultCss(task.result));
136 133  
  134 + // 如果非通过,就不走后面的线条了
  135 + if (task.result !== 2) {
  136 + return;
  137 + }
137 138 // 处理 outgoing 出线
138 139 const outgoing = this.getActivityOutgoing(activity);
139 140 outgoing?.forEach(nn => {
... ... @@ -219,13 +220,13 @@ export default {
219 220 return activity.endTime ? 'highlight' : 'highlight-todo';
220 221 },
221 222 getResultCss(result) {
222   - if (result === 1) {
  223 + if (result === 1) { // 审批中
223 224 return 'highlight-todo';
224   - } else if (result === 2) {
  225 + } else if (result === 2) { // 已通过
225 226 return 'highlight';
226   - } else if (result === 3) {
  227 + } else if (result === 3) { // 不通过
227 228 return 'highlight-reject';
228   - } else if (result === 4) {
  229 + } else if (result === 4) { // 已取消
229 230 return 'highlight-cancel';
230 231 }
231 232 return '';
... ...
yudao-ui-admin/src/views/bpm/processInstance/detail.vue
... ... @@ -45,6 +45,8 @@
45 45 </router-link>
46 46 </div>
47 47 </el-card>
  48 +
  49 + <!-- 审批记录 -->
48 50 <el-card class="box-card" v-loading="tasksLoad">
49 51 <div slot="header" class="clearfix">
50 52 <span class="el-icon-picture-outline">审批记录</span>
... ...