code review 工作流的驳回逻辑实现代码
parent
5c3f30e60f
commit
da4f300824
|
@ -10,17 +10,19 @@ import javax.validation.constraints.NotNull;
|
|||
|
||||
/**
|
||||
* @author kemengkai
|
||||
* @create 2022-05-07 08:05
|
||||
* @create 2022-05-07 08:05 TODO ke:vo 类,使用 swagger 注解即可
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class BpmTaskBackReqVO {
|
||||
|
||||
// TODO ke:userId 应该使用后端的,不能前端传递,不然就越权了
|
||||
@ApiModelProperty(value = "用户id", required = true, example = "1")
|
||||
@NotEmpty(message = "用户id不能为空")
|
||||
private String userId;
|
||||
|
||||
// TODO ke:procInstId、taskId、oldTaskDefKey 三个,是不是只要传递一个 taskId?字段不要存在推导关系
|
||||
@ApiModelProperty(value = "流程编号id", required = true, example = "730da750-cc4f-11ec-b58e-1e429355e4a0")
|
||||
@NotEmpty(message = "流程编号id不能为空")
|
||||
private String procInstId;
|
||||
|
|
|
@ -9,11 +9,12 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* @author kemengkai
|
||||
* @create 2022-05-09 09:26
|
||||
* @create 2022-05-09 09:26 TODO @ke:@date 哈。ps:一般这种类,可以不用谢类注释和方法注释。因为是 dao 是通用操作,所以都是通过方法名,可以指导它的用途
|
||||
*/
|
||||
@Mapper
|
||||
public interface BpmActivityMapper extends BaseMapperX<BpmActivityDO> {
|
||||
|
||||
// TODO @ke:这个方法,是不是暂时用不到呀。如果是的话,可以删除哈
|
||||
/**
|
||||
* 获取所有历史任务
|
||||
*
|
||||
|
@ -21,6 +22,7 @@ public interface BpmActivityMapper extends BaseMapperX<BpmActivityDO> {
|
|||
*/
|
||||
List<BpmActivityDO> listAll();
|
||||
|
||||
// TODO @ke:可以试试,把 activiti 的表,映射成对应的实体,然后读取下。我们尽量避免 xml 操作,因为要做多 db 类型的支持,例如说 oracle 等。通过 mybatis plus 帮助我们生成不同数据库的表操作
|
||||
/**
|
||||
* 获取指定流程的历史任务
|
||||
*
|
||||
|
|
|
@ -28,6 +28,7 @@ public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
|
|||
return selectList(BpmTaskExtDO::getProcessInstanceId, processInstanceId);
|
||||
}
|
||||
|
||||
// TODO @ke:可以使用类上上面的 default 方法实现。然后,方法的命名上,要保持和 db 一样。因为 mapper 是数据层,不关注业务。例如说,这里,其实复用 updateByTaskId 方法即可
|
||||
/**
|
||||
* 任务驳回
|
||||
*
|
||||
|
@ -38,6 +39,7 @@ public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
|
|||
*/
|
||||
Boolean backByTaskId(@Param("taskId") String taskId, @Param("reason") String reason);
|
||||
|
||||
// TODO @ke:tong上哈
|
||||
/**
|
||||
* 逻辑删除任务
|
||||
*
|
||||
|
|
|
@ -29,7 +29,7 @@ public class BpmFlowableConfiguration {
|
|||
ObjectProvider<FlowableEventListener> listeners,
|
||||
BpmActivityBehaviorFactory bpmActivityBehaviorFactory) {
|
||||
return configuration -> {
|
||||
// 注册监听器,例如说 BpmActivitiEventListener
|
||||
// 注册监听器,例如说 BpmActivityEventListener
|
||||
configuration.setEventListeners(ListUtil.toList(listeners.iterator()));
|
||||
// 设置 ActivityBehaviorFactory 实现类,用于流程任务的审核人的自定义
|
||||
configuration.setActivityBehaviorFactory(bpmActivityBehaviorFactory);
|
||||
|
|
|
@ -39,4 +39,6 @@ public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory {
|
|||
.setBpmTaskRuleService(bpmTaskRuleService);
|
||||
}
|
||||
|
||||
// TODO @ke:SequentialMultiInstanceBehavior 这个抽空也可以看看
|
||||
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@ public class BpmActivityServiceImpl implements BpmActivityService {
|
|||
public List<BpmActivityRespVO> getActivityListByProcessInstanceId(String procInstId) {
|
||||
// List<HistoricActivityInstance> activityList = historyService.createHistoricActivityInstanceQuery()
|
||||
// .processInstanceId(procInstId).list();
|
||||
// TODO @ke:这个是想要过滤掉 aha.act_type_ != 'sequenceFlow' 类型么?
|
||||
List<BpmActivityDO> bpmActivityDOList = bpmActivityMapper.listAllByProcInstIdAndDelete(procInstId);
|
||||
return BpmActivityConvert.INSTANCE.convertList(bpmActivityDOList);
|
||||
}
|
||||
|
|
|
@ -188,6 +188,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||
|
||||
// 拼接数据
|
||||
// List<BpmTaskExtDO> tmpBpmTaskExtDOList = taskExtMapper.listByProcInstId(processInstanceId);
|
||||
// TODO @ke:这个钉钉是咋处理的?得讨论下流程预测的需要程度哈。
|
||||
List<BpmTaskExtDO> tmpBpmTaskExtDOList = taskExtMapper.selectListByProcessInstanceId(processInstanceId);
|
||||
tmpBpmTaskExtDOList.sort(Comparator.comparing(BpmTaskExtDO::getCreateTime));
|
||||
return hiTaskInstService.taskGetComment(tmpBpmTaskExtDOList, "");
|
||||
|
@ -247,9 +248,11 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||
|
||||
// List<HistoricActivityInstance> hisActInstList =
|
||||
// historyService.createHistoricActivityInstanceQuery().processInstanceId(reqVO.getProcInstId()).list();
|
||||
// TODO @ke:使用 historyService.createHistoricActivityInstanceQuery().processInstanceId(reqVO.getProcInstId()).list() 读取,会存在啥问题呀?
|
||||
List<BpmActivityDO> bpmActivityDOList = bpmActivityMapper.listAllByProcInstIdAndDelete(reqVO.getProcInstId());
|
||||
// List<BpmActivityDO> bpmActivityDOList = BpmTaskConvert.INSTANCE.copyList(hisActInstList, BpmActivityDO.class);
|
||||
// bpmActivityDOList.forEach(bpmActivityDO -> log.info("bpmActivityDO = " + bpmActivityDO));
|
||||
// TODO @ke:如果 开始->a->b->c->d->结束,从 d 驳回到 b 的话,这样会不会导致 a 也被删除呀?http://blog.wya1.com/article/636697030/details/7296 可以看看这篇文章哈。
|
||||
List<String> taskIdList = bpmActivityDOList.stream().filter(
|
||||
bpmActivityDO -> bpmActivityDO.getActivityId().equals(reqVO.getOldTaskDefKey())
|
||||
&& !bpmActivityDO.getTaskId().equals(reqVO.getTaskId())).map(BpmActivityDO::getTaskId)
|
||||
|
|
Loading…
Reference in New Issue