Browse Source

[feat]

1、开放启用工作流方法,提供预警创建时调用方法启动
2、增加工作流处置处理扩展类,灵活处置,针对不同类型可以对相应的预警进行单独业务处理.
pull/1/head
杨威 4 months ago
parent
commit
bd992f2b18
  1. 6
      dk-api/api-bom/pom.xml
  2. 26
      dk-api/api-business/pom.xml
  3. 19
      dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java
  4. 5
      dk-api/api-workflow/pom.xml
  5. 21
      dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java
  6. 1
      dk-api/pom.xml
  7. 18
      dk-common/common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java
  8. 9
      dk-modules/business/pom.xml
  9. 62
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java
  10. 30
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java
  11. 45
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java
  12. 15
      dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java
  13. 29
      dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java
  14. 9
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java
  15. 34
      dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertService.java
  16. 172
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  17. 77
      dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml
  18. 6
      dk-modules/workflow/pom.xml
  19. 34
      dk-modules/workflow/src/main/java/org/dromara/workflow/common/handler/FlwCommonHandler.java
  20. 5
      dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java
  21. 4
      dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java
  22. 18
      dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java
  23. 60
      dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java
  24. 12
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java
  25. 125
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java
  26. 6
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java

6
dk-api/api-bom/pom.xml

@ -41,6 +41,12 @@
<version>${revision}</version>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>api-business</artifactId>
<version>${revision}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>

26
dk-api/api-business/pom.xml

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.dromara</groupId>
<artifactId>dk-api</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>api-business</artifactId>
<description>api-business业务接口模块
</description>
<dependencies>
<!-- RuoYi Common Core-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>common-core</artifactId>
</dependency>
</dependencies>
</project>

19
dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java

@ -0,0 +1,19 @@
package org.dromara.business.api;
/**
* 预警服务
*
* @author Lion Li
*/
public interface RemoteBusinessAlertService {
/**
* 更新此条预警审批时候的状态
* @param businessId 业务id(预警工单)
* @param flowStatus 流程状态
*/
void updateAlertStatus(String businessId, String flowStatus);
}

5
dk-api/api-workflow/pom.xml

@ -27,6 +27,11 @@
<artifactId>common-bus</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>api-system</artifactId>
</dependency>
</dependencies>
</project>

21
dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java

@ -1,5 +1,6 @@
package org.dromara.workflow.api;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.workflow.api.domain.RemoteCompleteTask;
import org.dromara.workflow.api.domain.RemoteStartProcess;
import org.dromara.workflow.api.domain.RemoteStartProcessReturn;
@ -77,12 +78,26 @@ public interface RemoteWorkflowService {
*/
RemoteStartProcessReturn startWorkFlow(RemoteStartProcess startProcess);
// /**
// * 办理任务
// *
// * @param completeTask 参数
// * @return 结果
// */
// boolean completeTask(RemoteCompleteTask completeTask);
/**
* 办理任务
* 获取当前任务的所有办理人
*
* @param completeTask 参数
* @param taskId 任务id
* @return 结果
*/
boolean completeTask(RemoteCompleteTask completeTask);
Map<Long, List<RemoteUserVo>> currentTaskAllUser(List<Long> taskId);
/**
* 审批前获取当前办理人办理时会校验的该权限集合
* 返回当前用户权限集合
*/
List<String> getPermissions();
}

1
dk-api/pom.xml

@ -13,6 +13,7 @@
<module>api-system</module>
<module>api-resource</module>
<module>api-workflow</module>
<module>api-business</module>
</modules>
<artifactId>dk-api</artifactId>

18
dk-common/common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java

@ -8,6 +8,7 @@ import org.dromara.common.core.utils.StringUtils;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
/**
* 业务状态枚举
@ -17,6 +18,12 @@ import java.util.List;
@Getter
@AllArgsConstructor
public enum BusinessStatusEnum {
/**
* 验证
*/
VERIFY("verify", "验证"),
/**
* 已撤销
*/
@ -72,6 +79,17 @@ public enum BusinessStatusEnum {
.orElse(StrUtil.EMPTY);
}
/**
* 根据status获取枚举
* @param status
* @return
*/
public static BusinessStatusEnum getByStatus(String status){
Optional<BusinessStatusEnum> optional = Arrays.stream(values()).filter(p -> StrUtil.equals(p.getStatus(),status)).findFirst();
return optional.orElse(null);
}
/**
* 启动流程校验
*

9
dk-modules/business/pom.xml

@ -91,6 +91,11 @@
<artifactId>common-encrypt</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>api-business</artifactId>
</dependency>
<!-- AutoPoi Excel工具类-->
<dependency>
<groupId>org.jeecgframework</groupId>
@ -103,6 +108,10 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>api-workflow</artifactId>
</dependency>
</dependencies>
<build>

62
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java

@ -4,6 +4,7 @@ import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.BusinessAlert;
import org.dromara.business.domain.bo.BusinessAlertBo;
import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.business.service.BusinessAlertService;
@ -38,63 +39,30 @@ public class BusinessAlertController extends BaseController {
private final BusinessAlertService businessAlertService;
/**
* 查询预警任务列表
* 查询全部预警
*/
@GetMapping("/alert/page")
public TableDataInfo<BusinessAlertVo> pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery) {
@GetMapping("/alert/page/all")
public TableDataInfo<BusinessAlert> pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery) {
return businessAlertService.pageBusinessAlert(bo, pageQuery);
}
/**
* 获取预警任务详细信息
*
* @param alertId 主键
* 查询审批的预警
*/
@GetMapping("/alert/{alertId}")
public R<BusinessAlertVo> getBusinessAlert(@NotNull(message = "主键不能为空")
@PathVariable String alertId) {
return R.ok(businessAlertService.getBusinessAlert(alertId));
@GetMapping("/alert/page/todo")
public TableDataInfo<BusinessAlert> pageBusinessAlertTodo(BusinessAlertBo bo, PageQuery pageQuery) {
return businessAlertService.pageBusinessAlertTodo(bo, pageQuery);
}
/**
* 新增预警任务
* 查询审批完成的预警
* @param bo
* @param pageQuery
* @return
*/
@Log(title = "预警任务", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/alert/add")
public R<Void> addBusinessAlert(@Validated(AddGroup.class) @RequestBody BusinessAlertBo param) {
return toAjax(businessAlertService.addBusinessAlert(param));
@GetMapping("/alert/page/finish")
public TableDataInfo<BusinessAlert> pageBusinessAlertFinish(BusinessAlertBo bo, PageQuery pageQuery) {
return businessAlertService.pageBusinessAlertFinish(bo, pageQuery);
}
/**
* 修改预警任务
*/
@Log(title = "预警任务", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/alert/edit")
public R<Void> editBusinessAlert(@Validated(EditGroup.class) @RequestBody BusinessAlertBo bo) {
return toAjax(businessAlertService.editBusinessAlert(bo));
}
/**
* 删除预警任务
*
* @param alertIdList 主键串
*/
@Log(title = "预警任务", businessType = BusinessType.DELETE)
@DeleteMapping("/alert/delete")
public R<Void> deleteBusinessAlert(@NotEmpty(message = "主键不能为空")
@RequestParam List<String> alertIdList) {
return toAjax(businessAlertService.deleteBusinessAlert(alertIdList, true));
}
/**
* 导出预警任务列表
*/
@Log(title = "预警任务", businessType = BusinessType.EXPORT)
@PostMapping("/alert/export")
public void exportBusinessAlert(BusinessAlertBo bo, HttpServletResponse response) {
List<BusinessAlertVo> list = businessAlertService.listBusinessAlert(bo);
ExcelUtil.exportExcel(list, "预警任务", BusinessAlertVo.class, response);
}
}

30
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java

@ -1,9 +1,13 @@
package org.dromara.business.domain;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.util.Date;
import java.io.Serial;
@ -25,13 +29,14 @@ public class BusinessAlert extends BaseEntity {
/**
*
*/
@TableId(value = "id")
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**
* 流程实例Id
* 租户编号
*/
private Long instanceId;
private String tenantId;
/**
* 任务轮id
@ -122,9 +127,9 @@ public class BusinessAlert extends BaseEntity {
private Long areaW;
/**
* 0:验证
* 流程处置状态(verify:验证,cancel:已撤销,draft:草稿,waiting:待审核,finish:已完成,invalid:已作废,back:已退回,termination:已终止)
*/
private Long handleInType;
private BusinessStatusEnum handleType;
/**
* 是否违建 01
@ -202,5 +207,20 @@ public class BusinessAlert extends BaseEntity {
*/
private Long handleSource;
/**
* 审批者
*/
@TableField(exist = false)
private String approver;
/**
* 审批者
*/
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "approver")
@TableField(exist = false)
private String approveName;
@TableField(exist = false)
private Long flowTaskId;
}

45
dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java

@ -11,7 +11,7 @@ import jakarta.validation.constraints.*;
import java.util.Date;
/**
* 预警任务业务对象 wayline_alert
* 预警任务业务对象 business_alert
*
* @author LionLi
* @date 2025-02-27
@ -20,206 +20,163 @@ import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BusinessAlert.class, reverseConvertGenerate = false)
public class BusinessAlertBo extends BaseEntity {
/**
*
*/
@NotBlank(message = "不能为空", groups = { EditGroup.class })
private String id;
/**
* 任务轮id
*/
@NotBlank(message = "任务轮id不能为空", groups = { AddGroup.class, EditGroup.class })
private String wheelId;
/**
* 媒体id
*/
@NotBlank(message = "媒体id不能为空", groups = { AddGroup.class, EditGroup.class })
private String taskId;
/**
* 图片id
*/
@NotBlank(message = "图片id不能为空", groups = { AddGroup.class, EditGroup.class })
private String taskImageId;
/**
* 处理原因
*/
@NotBlank(message = "处理原因不能为空", groups = { AddGroup.class, EditGroup.class })
private String reason;
/**
* 图片文件
*/
@NotBlank(message = "图片文件不能为空", groups = { AddGroup.class, EditGroup.class })
private String images;
/**
* 纬度
*/
@NotNull(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class })
private Long lat;
/**
* 精度
*/
@NotNull(message = "精度不能为空", groups = { AddGroup.class, EditGroup.class })
private Long lng;
/**
* 任务类型
*/
@NotBlank(message = "任务类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String taskHandleType;
/**
* 任务内容
*/
@NotBlank(message = "任务内容不能为空", groups = { AddGroup.class, EditGroup.class })
private String taskContent;
/**
* 完成时间
*/
@NotNull(message = "完成时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date completeDate;
/**
* 模板图片
*/
@NotBlank(message = "模板图片不能为空", groups = { AddGroup.class, EditGroup.class })
private String mateSourceImgUrl;
/**
* 放大模板违建区域图片
*/
@NotBlank(message = "放大模板违建区域图片不能为空", groups = { AddGroup.class, EditGroup.class })
private String maxMateSourceImgUrl;
/**
* 放大违建区域图片
*/
@NotBlank(message = "放大违建区域图片不能为空", groups = { AddGroup.class, EditGroup.class })
private String maxImages;
/**
* 面积
*/
@NotNull(message = "面积不能为空", groups = { AddGroup.class, EditGroup.class })
private Long area;
/**
* 面积
*/
@NotNull(message = "面积:长不能为空", groups = { AddGroup.class, EditGroup.class })
private Long areaL;
/**
* 面积
*/
@NotNull(message = "面积:宽不能为空", groups = { AddGroup.class, EditGroup.class })
private Long areaW;
/**
* 0:验证
*/
@NotNull(message = "0:验证", groups = { AddGroup.class, EditGroup.class })
private Long handleInType;
/**
* 是否违建 01
*/
@NotNull(message = "是否违建 0:否,1:是不能为空", groups = { AddGroup.class, EditGroup.class })
private Long isIllegal;
/**
* 部门id
*/
@NotBlank(message = "部门id不能为空", groups = { AddGroup.class, EditGroup.class })
private String deptId;
/**
* 部门名称
*/
@NotBlank(message = "部门名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String deptName;
/**
* 预警名称
*/
@NotBlank(message = "预警名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String jobName;
/**
* 处理时间
*/
@NotNull(message = "处理时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date handleTime;
/**
* 其他内容
*/
@NotBlank(message = "其他:内容不能为空", groups = { AddGroup.class, EditGroup.class })
private String taskHandle;
/**
* 平台类型
*/
@NotBlank(message = "平台类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String platformType;
/**
* 像素坐标
*/
@NotBlank(message = "像素坐标不能为空", groups = { AddGroup.class, EditGroup.class })
private String pixelCoordinate;
/**
* 当前位置预警数量
*/
@NotNull(message = "当前位置预警数量不能为空", groups = { AddGroup.class, EditGroup.class })
private Long handleNum;
/**
* 国土所备注
*/
@NotBlank(message = "国土所备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String territoryRemark;
/**
* 地类信息数据
*/
@NotBlank(message = "地类信息数据不能为空", groups = { AddGroup.class, EditGroup.class })
private String landCategories;
/**
* 相关文件
*/
@NotBlank(message = "相关文件不能为空", groups = { AddGroup.class, EditGroup.class })
private String territoryUrl;
/**
* 图片
*/
@NotBlank(message = "图片不能为空", groups = { AddGroup.class, EditGroup.class })
private String territoryPath;
/**
* 忽略原因
*/
@NotBlank(message = "忽略原因不能为空", groups = { AddGroup.class, EditGroup.class })
private String ignoringCause;
/**
* 来源0平台 1小程序
*/
@NotNull(message = "来源:0:平台 1:小程序不能为空", groups = { AddGroup.class, EditGroup.class })
private Long handleSource;

15
dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java

@ -5,6 +5,9 @@ import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.business.domain.BusinessAlert;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
import java.io.Serializable;
@ -26,12 +29,6 @@ public class BusinessAlertVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private String id;
/**
* 任务轮id
*/
@ -130,10 +127,9 @@ public class BusinessAlertVo implements Serializable {
private Long areaW;
/**
* 0:验证
* 流程处置状态(verify:验证,cancel:已撤销,draft:草稿,waiting:待审核,finish:已完成,invalid:已作废,back:已退回,termination:已终止)
*/
@ExcelProperty(value = "0:验证")
private Long handleInType;
private BusinessStatusEnum handleType;
/**
* 是否违建 01
@ -225,5 +221,4 @@ public class BusinessAlertVo implements Serializable {
@ExcelProperty(value = "来源:0:平台 1:小程序")
private Long handleSource;
}

29
dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java

@ -0,0 +1,29 @@
package org.dromara.business.dubbo;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.business.api.RemoteBusinessAlertService;
import org.dromara.business.service.BusinessAlertService;
import org.springframework.stereotype.Service;
/**
* 预警相关服务开放
*/
@RequiredArgsConstructor
@Service
@DubboService
public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertService {
private final BusinessAlertService businessAlertService;
/**
* 更新此条预警审批时候的状态
* @param businessId 业务id(预警工单)
* @param flowStatus 流程状态
*/
@Override
public void updateAlertStatus(String businessId, String flowStatus) {
businessAlertService.updateAlertStatus(businessId,flowStatus);
}
}

9
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java

@ -1,10 +1,12 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dromara.business.domain.BusinessAlert;
import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 预警任务Mapper接口
@ -14,5 +16,10 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
*/
public interface BusinessAlertMapper extends BaseMapperPlus<BusinessAlert, BusinessAlertVo> {
Page<BusinessAlertVo> pageAlert(Page<BusinessAlertVo> page, LambdaQueryWrapper<BusinessAlert> lqw);
Page<BusinessAlert> pageBusinessAlert(Page<BusinessAlert> build, QueryWrapper<BusinessAlert> wrapper);
Page<BusinessAlert> pageAlertFinish(Page<BusinessAlert> page, QueryWrapper<BusinessAlert> wrapper);
Page<BusinessAlert> pageAlertTodo(Page<BusinessAlert> build, QueryWrapper<BusinessAlert> wrapper);
}

34
dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertService.java

@ -16,30 +16,12 @@ import java.util.List;
*/
public interface BusinessAlertService {
/**
* 查询预警任务
*
* @param id 主键
* @return 预警任务
*/
BusinessAlertVo getBusinessAlert(String id);
/**
* 分页查询预警任务列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 预警任务分页列表
*/
TableDataInfo<BusinessAlertVo> pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery);
TableDataInfo<BusinessAlert> pageBusinessAlertTodo(BusinessAlertBo bo, PageQuery pageQuery);
/**
* 查询符合条件的预警任务列表
*
* @param param 查询条件
* @return 预警任务列表
*/
List<BusinessAlertVo> listBusinessAlert(BusinessAlertBo param);
TableDataInfo<BusinessAlert> pageBusinessAlertFinish(BusinessAlertBo bo, PageQuery pageQuery);
TableDataInfo<BusinessAlert> pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery);
/**
* 新增预警任务
@ -74,4 +56,12 @@ public interface BusinessAlertService {
* @return 是否删除成功
*/
Boolean deleteBusinessAlert(List<String> alertIdList, Boolean isValid);
/**
* 修改预警中处置状态
* @param businessId
* @param flowStatus
*/
void updateAlertStatus(String businessId, String flowStatus);
}

172
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -1,22 +1,33 @@
package org.dromara.business.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.business.domain.BusinessAlert;
import org.dromara.business.domain.bo.BusinessAlertBo;
import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.business.mapper.BusinessAlertMapper;
import org.dromara.business.service.BusinessAlertService;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.workflow.api.RemoteWorkflowService;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
* 预警任务Service业务层处理
@ -30,43 +41,8 @@ public class BusinessAlertServiceImpl implements BusinessAlertService {
private final BusinessAlertMapper baseMapper;
/**
* 查询预警任务
*
* @param id 主键
* @return 预警任务
*/
@Override
public BusinessAlertVo getBusinessAlert(String id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询预警任务列表
*
* @param param 查询条件
* @param pageQuery 分页参数
* @return 预警任务分页列表
*/
@Override
public TableDataInfo<BusinessAlertVo> pageBusinessAlert(BusinessAlertBo param, PageQuery pageQuery) {
LambdaQueryWrapper<BusinessAlert> lqw = buildQueryWrapper(param);
Page<BusinessAlertVo> result = baseMapper.pageAlert(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的预警任务列表
*
* @param param 查询条件
* @return 预警任务列表
*/
@Override
public List<BusinessAlertVo> listBusinessAlert(BusinessAlertBo param) {
LambdaQueryWrapper<BusinessAlert> lqw = buildQueryWrapper(param);
return baseMapper.selectVoList(lqw);
}
@DubboReference
RemoteWorkflowService remoteWorkflowService;
/**
@ -105,14 +81,6 @@ public class BusinessAlertServiceImpl implements BusinessAlertService {
return baseMapper.updateById(businessAlert) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(BusinessAlert alert, Boolean validId){
if (ObjectUtil.isEmpty(alert.getId())){
throw new ServiceException("预警【Id】为空!");
}
}
/**
* 校验并批量删除预警任务信息
@ -131,11 +99,119 @@ public class BusinessAlertServiceImpl implements BusinessAlertService {
return baseMapper.deleteByIds(alertIdList) > 0;
}
private LambdaQueryWrapper<BusinessAlert> buildQueryWrapper(BusinessAlertBo bo) {
LambdaQueryWrapper<BusinessAlert> wrapper = Wrappers.lambdaQuery();
/**
* 修改预警中处置状态
* @param businessId
* @param flowStatus
*/
@Override
public void updateAlertStatus(String businessId, String flowStatus) {
LambdaUpdateWrapper<BusinessAlert> wrapper = new LambdaUpdateWrapper<>();
wrapper.set(BusinessAlert::getHandleType, BusinessStatusEnum.getByStatus(flowStatus));
wrapper.eq(BusinessAlert::getId, businessId);
this.baseMapper.update(wrapper);
}
/**
* 查询全部预警
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<BusinessAlert> pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery) {
QueryWrapper<BusinessAlert> wrapper = buildQueryWrapper(bo);
Page<BusinessAlert> page = this.baseMapper.pageBusinessAlert(pageQuery.build(), wrapper);
return TableDataInfo.build(page);
}
/**
* 查询当前用户已完成预警
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<BusinessAlert> pageBusinessAlertFinish(BusinessAlertBo bo, PageQuery pageQuery) {
QueryWrapper<BusinessAlert> wrapper = buildQueryWrapper(bo);
buildCommonQueryWrapper(wrapper);
wrapper.in("a.approver", LoginHelper.getUserId());
Page<BusinessAlert> page = this.baseMapper.pageAlertFinish(pageQuery.build(), wrapper);
return TableDataInfo.build(page);
}
/**
* 查询当前用户待办预警
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<BusinessAlert> pageBusinessAlertTodo(BusinessAlertBo bo, PageQuery pageQuery) {
QueryWrapper<BusinessAlert> wrapper = buildQueryWrapper(bo);
buildCommonQueryWrapper(wrapper);
wrapper.eq("uu.del_flag", 0);
wrapper.in("uu.type", 1,2,3);
wrapper.in("a.processed_by", remoteWorkflowService.getPermissions());
wrapper.in("a.flow_status", BusinessStatusEnum.WAITING.getStatus());
Page<BusinessAlert> page = this.baseMapper.pageAlertTodo(pageQuery.build(), wrapper);
List<BusinessAlert> records = page.getRecords();
if (CollUtil.isNotEmpty(records)) {
List<Long> taskIds = StreamUtils.toList(records, BusinessAlert::getFlowTaskId);
Map<Long, List<RemoteUserVo>> listMap = remoteWorkflowService.currentTaskAllUser(taskIds);
records.forEach(t -> {
List<RemoteUserVo> userList = listMap.getOrDefault(t.getId(), Collections.emptyList());
if (CollUtil.isNotEmpty(userList)) {
t.setApprover(StreamUtils.join(userList, e -> String.valueOf(e.getUserId())));
t.setApproveName(StreamUtils.join(userList, RemoteUserVo::getNickName));
}
});
}
return TableDataInfo.build(page);
}
/**
* 构建wrapper
* @param bo
* @return
*/
private QueryWrapper<BusinessAlert> buildQueryWrapper(BusinessAlertBo bo) {
QueryWrapper<BusinessAlert> wrapper = new QueryWrapper<>();
wrapper.orderByAsc(BusinessAlert::getCreateTime);
wrapper.orderByAsc("ba.create_time");
return wrapper;
}
/**
* 构建通用流程wrapper
* @param wrapper
*/
private void buildCommonQueryWrapper(QueryWrapper<BusinessAlert> wrapper) {
wrapper.eq("a.del_flag",0);
wrapper.eq("b.del_flag",0);
wrapper.eq("c.del_flag",0);
wrapper.in("a.node_type",1,3,4);
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(BusinessAlert alert, Boolean validId){
if (ObjectUtil.isEmpty(alert.getId())){
throw new ServiceException("预警【Id】为空!");
}
}
}

77
dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml

@ -4,49 +4,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.business.mapper.BusinessAlertMapper">
<select id="pageAlert" resultType="org.dromara.business.domain.vo.BusinessAlertVo">
<select id="pageBusinessAlert" resultType="org.dromara.business.domain.BusinessAlert">
select
id,
instance_id,
wheel_id,
task_id,
task_image_id,
reason,
images,
lat,
lng,
task_handle_type,
task_content,
complete_date,
handle_type,
del_flag,
mate_source_img_url,
max_mate_source_img_url,
max_images,
area,
area_l,
area_w,
handle_in_type,
is_illegal,
dept_id,
dept_name,
job_name,
handle_time,
task_handle,
platform_type,
pixel_coordinate,
handle_num,
territory_remark,
land_categories,
territory_url,
territory_path,
ignoring_cause,
handle_source,
create_by,
create_time
from business_alert
${ew.customSqlSegment}
ba.*,
b.flow_status flowStatus,
b.business_id businessId,
from dk_business.business_alert ba
left join dk_workflow.flow_instance b on ba.id = b.business_id
${ew.getCustomSqlSegment}
</select>
<select id="pageAlertFinish" resultType="org.dromara.business.domain.BusinessAlert">
select
ba.*,
b.flow_status flowStatus,
b.business_id businessId,
a.approver,
a.id flowTaskId
from dk_business.business_alert ba
left join dk_workflow.flow_instance b on ba.id = b.business_id
left join dk_workflow.flow_his_task a on a.instance_id = b.id
left join dk_workflow.flow_definition c on a.definition_id = c.id
${ew.getCustomSqlSegment}
</select>
<select id="pageAlertTodo" resultType="org.dromara.business.domain.BusinessAlert">
select
ba.*,
b.flow_status,
b.business_id,
uu.processed_by approver,
a.id flowTaskId
from dk_business.business_alert ba
left join dk_workflow.flow_instance b on ba.id = b.business_id
left join dk_workflow.flow_task a on a.instance_id = b.id
left join dk_workflow.flow_user uu on uu.associated = a.id
left join dk_workflow.flow_definition c on a.definition_id = c.id
${ew.getCustomSqlSegment}
</select>
</mapper>

6
dk-modules/workflow/pom.xml

@ -102,6 +102,12 @@
<groupId>org.dromara</groupId>
<artifactId>api-resource</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>api-business</artifactId>
</dependency>
</dependencies>
<build>

34
dk-modules/workflow/src/main/java/org/dromara/workflow/common/handler/FlwCommonHandler.java

@ -0,0 +1,34 @@
package org.dromara.workflow.common.handler;
import org.dromara.workflow.api.event.ProcessCreateTaskEvent;
import org.dromara.workflow.api.event.ProcessDeleteEvent;
import org.dromara.workflow.api.event.ProcessEvent;
public interface FlwCommonHandler {
/**
* 总体流程监听(例如: 草稿撤销退回作废终止已完成单任务完成等)
*
* @param processEvent 参数
*/
public void processHandler(ProcessEvent processEvent);
/**
* 执行任务创建监听
* 在方法中判断流程节点key
* if ("xxx".equals(processCreateTaskEvent.getNodeCode())) {
* //执行业务逻辑
* }
*
* @param processCreateTaskEvent 参数
*/
public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent);
/**
* 监听删除流程事件
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
*
* @param processDeleteEvent 参数
*/
public void processDeleteHandler(ProcessDeleteEvent processDeleteEvent);
}

5
dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java

@ -52,4 +52,9 @@ public class FlowTaskBo implements Serializable {
*/
private List<Long> createByIds;
/**
* 业务Id
*/
private String businessId;
}

4
dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java

@ -23,13 +23,13 @@ public class StartProcessBo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 业务唯一值id
* 业务唯一值id,根据具体业务来例如预警可以为预警Id
*/
@NotBlank(message = "业务ID不能为空", groups = {AddGroup.class})
private String businessId;
/**
* 流程定义编码
* 流程定义编码,不同的审批流程例如预警可以为alert
*/
@NotBlank(message = "流程定义编码不能为空", groups = {AddGroup.class})
private String flowCode;

18
dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java

@ -2,10 +2,12 @@ package org.dromara.workflow.dubbo;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.workflow.api.RemoteWorkflowService;
import org.dromara.workflow.api.domain.RemoteCompleteTask;
import org.dromara.workflow.api.domain.RemoteStartProcess;
import org.dromara.workflow.api.domain.RemoteStartProcessReturn;
import org.dromara.workflow.service.IFlwTaskService;
import org.dromara.workflow.service.WorkflowService;
import org.springframework.stereotype.Service;
@ -25,6 +27,8 @@ public class RemoteWorkflowServiceImpl implements RemoteWorkflowService {
private final WorkflowService workflowService;
private final IFlwTaskService flwTaskService;
@Override
public boolean deleteInstance(List<Long> businessIds) {
return workflowService.deleteInstance(businessIds);
@ -66,8 +70,18 @@ public class RemoteWorkflowServiceImpl implements RemoteWorkflowService {
}
@Override
public boolean completeTask(RemoteCompleteTask completeTask) {
return workflowService.completeTask(completeTask);
public Map<Long, List<RemoteUserVo>> currentTaskAllUser(List<Long> taskIds) {
return flwTaskService.currentTaskAllUser(taskIds);
}
@Override
public List<String> getPermissions() {
return flwTaskService.getPermissions();
}
// @Override
// public boolean completeTask(RemoteCompleteTask completeTask) {
// return workflowService.completeTask(completeTask);
// }
}

60
dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java

@ -0,0 +1,60 @@
package org.dromara.workflow.handler;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.business.api.RemoteBusinessAlertService;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.workflow.api.event.ProcessCreateTaskEvent;
import org.dromara.workflow.api.event.ProcessDeleteEvent;
import org.dromara.workflow.api.event.ProcessEvent;
import org.dromara.workflow.common.ConditionalOnEnable;
import org.dromara.workflow.common.handler.FlwCommonHandler;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
/**
* 流程预警扩展业务
*/
@ConditionalOnEnable
@Slf4j
@Component
public class FlwAlertHandler implements FlwCommonHandler {
@DubboReference
RemoteBusinessAlertService alertService;
/**
* 总体流程监听(例如: 草稿撤销退回作废终止已完成单任务完成等)
*
* @param processEvent 参数
*/
@EventListener(condition = "#processEvent.flowCode.startsWith('leave')")
@Override
public void processHandler(ProcessEvent processEvent) {
alertService.updateAlertStatus(processEvent.getBusinessId(),processEvent.getStatus());
}
/**
* 流程创建的时候将预警表中的状态进行修改
* 执行任务创建监听
*
* @param processCreateTaskEvent 参数
*/
@EventListener(condition = "#processCreateTaskEvent.flowCode.startsWith('leave')")
@Override
public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) {
alertService.updateAlertStatus(processCreateTaskEvent.getBusinessId(), BusinessStatusEnum.WAITING.getStatus());
}
/**
* 监听删除流程事件
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
*
* @param processDeleteEvent 参数
*/
@EventListener(condition = "#processDeleteEvent.flowCode.startsWith('leave')")
@Override
public void processDeleteHandler(ProcessDeleteEvent processDeleteEvent) {
}
}

12
dk-modules/workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java

@ -3,7 +3,10 @@ package org.dromara.workflow.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.warm.flow.core.dto.FlowParams;
import org.dromara.warm.flow.core.entity.Node;
import org.dromara.warm.flow.core.entity.Task;
import org.dromara.warm.flow.core.service.impl.TaskServiceImpl;
import org.dromara.warm.flow.orm.entity.FlowHisTask;
import org.dromara.warm.flow.orm.entity.FlowTask;
import org.dromara.workflow.api.domain.RemoteStartProcessReturn;
@ -46,6 +49,7 @@ public interface IFlwTaskService {
*/
TableDataInfo<FlowTaskVo> pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery);
/**
* 查询当前租户所有待办任务
*
@ -55,6 +59,8 @@ public interface IFlwTaskService {
*/
TableDataInfo<FlowHisTaskVo> pageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery);
/**
* 查询待办任务
*
@ -188,4 +194,10 @@ public interface IFlwTaskService {
* @return 结果
*/
List<RemoteUserVo> currentTaskAllUser(Long taskId);
/**
* 审批前获取当前办理人办理时会校验的该权限集合
* 返回当前用户权限集合
*/
List<String> getPermissions();
}

125
dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

@ -52,6 +52,8 @@ import org.dromara.workflow.mapper.FlwCategoryMapper;
import org.dromara.workflow.mapper.FlwTaskMapper;
import org.dromara.workflow.service.IFlwTaskService;
import org.dromara.workflow.utils.WorkflowUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -93,6 +95,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
@DubboReference(stub = "true")
private final RemoteMessageService remoteMessageService;
@Autowired
private ApplicationContext applicationContext;
/**
* 启动任务
*
@ -139,6 +144,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
RemoteStartProcessReturn dto = new RemoteStartProcessReturn();
dto.setProcessInstanceId(instance.getId());
dto.setTaskId(taskList.get(0).getId());
//创建任务
executeTask(taskList.get(0).getId());
return dto;
}
@ -188,46 +196,6 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
}
}
private void sendMessage(String flowName, Long instId, List<String> messageType, String message) {
List<RemoteUserVo> userList = new ArrayList<>();
List<FlowTask> list = this.selectByInstId(instId);
if (StringUtils.isBlank(message)) {
message = "有新的【" + flowName + "】单据已经提交至您,请您及时处理。";
}
for (Task task : list) {
List<RemoteUserVo> users = this.currentTaskAllUser(task.getId());
if (CollUtil.isNotEmpty(users)) {
userList.addAll(users);
}
}
if (CollUtil.isNotEmpty(userList)) {
for (String code : messageType) {
MessageTypeEnum messageTypeEnum = MessageTypeEnum.getByCode(code);
if (ObjectUtil.isNotEmpty(messageTypeEnum)) {
switch (messageTypeEnum) {
case SYSTEM_MESSAGE:
SseMessageDto dto = new SseMessageDto();
dto.setUserIds(StreamUtils.toList(userList, RemoteUserVo::getUserId).stream().distinct().collect(Collectors.toList()));
dto.setMessage(message);
dto.getUserIds().forEach(userId -> {
remoteMessageService.publishMessage(userId,dto.getMessage());
});
break;
case EMAIL_MESSAGE:
MailUtils.sendText(StreamUtils.join(userList, RemoteUserVo::getEmail), "单据审批提醒", message);
break;
case SMS_MESSAGE:
//todo 短信发送
break;
default:
throw new IllegalStateException("Unexpected value: " + messageTypeEnum);
}
}
}
}
}
/**
* 设置办理人
*
@ -319,12 +287,23 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
public TableDataInfo<FlowTaskVo> pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
QueryWrapper<FlowTaskBo> queryWrapper = buildQueryWrapper(flowTaskBo);
queryWrapper.eq("t.node_type", NodeType.BETWEEN.getKey());
queryWrapper.in("t.processed_by", SpringUtils.getBean(WorkflowPermissionHandler.class).permissions());
queryWrapper.in("t.processed_by", this.getPermissions());
queryWrapper.in("t.flow_status", BusinessStatusEnum.WAITING.getStatus());
Page<FlowTaskVo> page = this.getFlowTaskVoPage(pageQuery, queryWrapper);
return TableDataInfo.build(page);
}
/**
* 审批前获取当前办理人办理时会校验的该权限集合
* 返回当前用户权限集合
*/
@Override
public List<String> getPermissions() {
return SpringUtils.getBean(WorkflowPermissionHandler.class).permissions();
}
/**
* 查询当前用户的已办任务
*
@ -341,6 +320,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
return TableDataInfo.build(page);
}
/**
* 查询待办任务
*
@ -405,6 +385,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
wrapper.like(StringUtils.isNotBlank(flowTaskBo.getFlowName()), "t.flow_name", flowTaskBo.getFlowName());
wrapper.like(StringUtils.isNotBlank(flowTaskBo.getFlowCode()), "t.flow_code", flowTaskBo.getFlowCode());
wrapper.in(CollUtil.isNotEmpty(flowTaskBo.getCreateByIds()), "t.create_by", flowTaskBo.getCreateByIds());
if (ObjectUtil.isNotEmpty(flowTaskBo.getBusinessId())){
wrapper.eq("i.business_id", flowTaskBo.getBusinessId());
}
if (StringUtils.isNotBlank(flowTaskBo.getCategory())) {
List<Long> categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowTaskBo.getCategory()));
wrapper.in("t.category", StreamUtils.toList(categoryIds, Convert::toStr));
@ -737,4 +720,64 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
}
return remoteUserService.selectListByIds(StreamUtils.toList(userList, e -> Long.valueOf(e.getProcessedBy())));
}
/**
* 初始化流程任务
* @param taskId
*/
public void executeTask(Long taskId) {
CompleteTaskBo completeTaskBo = new CompleteTaskBo();
completeTaskBo.setTaskId(taskId);
completeTaskBo.setMessageType(List.of(MessageTypeEnum.SYSTEM_MESSAGE.getCode()));
IFlwTaskService service = applicationContext.getBean(IFlwTaskService.class);
service.completeTask(completeTaskBo);
}
/**
* 发送消息
* @param flowName
* @param instId
* @param messageType
* @param message
*/
private void sendMessage(String flowName, Long instId, List<String> messageType, String message) {
List<RemoteUserVo> userList = new ArrayList<>();
List<FlowTask> list = this.selectByInstId(instId);
if (StringUtils.isBlank(message)) {
message = "有新的【" + flowName + "】单据已经提交至您,请您及时处理。";
}
for (Task task : list) {
List<RemoteUserVo> users = this.currentTaskAllUser(task.getId());
if (CollUtil.isNotEmpty(users)) {
userList.addAll(users);
}
}
if (CollUtil.isNotEmpty(userList)) {
for (String code : messageType) {
MessageTypeEnum messageTypeEnum = MessageTypeEnum.getByCode(code);
if (ObjectUtil.isNotEmpty(messageTypeEnum)) {
switch (messageTypeEnum) {
case SYSTEM_MESSAGE:
SseMessageDto dto = new SseMessageDto();
dto.setUserIds(StreamUtils.toList(userList, RemoteUserVo::getUserId).stream().distinct().collect(Collectors.toList()));
dto.setMessage(message);
dto.getUserIds().forEach(userId -> {
remoteMessageService.publishMessage(userId,dto.getMessage());
});
break;
case EMAIL_MESSAGE:
MailUtils.sendText(StreamUtils.join(userList, RemoteUserVo::getEmail), "单据审批提醒", message);
break;
case SMS_MESSAGE:
//todo 短信发送
break;
default:
throw new IllegalStateException("Unexpected value: " + messageTypeEnum);
}
}
}
}
}
}

6
dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java

@ -130,7 +130,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
*
* @param processEvent 参数
*/
@EventListener(condition = "#processEvent.flowCode.startsWith('leave')")
// @EventListener(condition = "#processEvent.flowCode.startsWith('leave')")
public void processHandler(ProcessEvent processEvent) {
TenantHelper.dynamic(processEvent.getTenantId(), () -> {
log.info("当前任务执行了{}", processEvent.toString());
@ -163,7 +163,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
*
* @param processCreateTaskEvent 参数
*/
@EventListener(condition = "#processCreateTaskEvent.flowCode.startsWith('leave')")
// @EventListener(condition = "#processCreateTaskEvent.flowCode.startsWith('leave')")
public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) {
TenantHelper.dynamic(processCreateTaskEvent.getTenantId(), () -> {
log.info("当前任务创建了{}", processCreateTaskEvent.toString());
@ -180,7 +180,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
*
* @param processDeleteEvent 参数
*/
@EventListener(condition = "#processDeleteEvent.flowCode.startsWith('leave')")
// @EventListener(condition = "#processDeleteEvent.flowCode.startsWith('leave')")
public void processDeleteHandler(ProcessDeleteEvent processDeleteEvent) {
TenantHelper.dynamic(processDeleteEvent.getTenantId(), () -> {
log.info("监听删除流程事件,当前任务执行了{}", processDeleteEvent.toString());

Loading…
Cancel
Save