diff --git a/dk-api/api-bom/pom.xml b/dk-api/api-bom/pom.xml index e989a65..3e6a7b4 100644 --- a/dk-api/api-bom/pom.xml +++ b/dk-api/api-bom/pom.xml @@ -41,6 +41,12 @@ ${revision} + + org.dromara + api-business + ${revision} + + diff --git a/dk-api/api-business/pom.xml b/dk-api/api-business/pom.xml new file mode 100644 index 0000000..ea00ddb --- /dev/null +++ b/dk-api/api-business/pom.xml @@ -0,0 +1,26 @@ + + + + org.dromara + dk-api + ${revision} + + 4.0.0 + + api-business + + api-business业务接口模块 + + + + + + + org.dromara + common-core + + + + diff --git a/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java b/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java new file mode 100644 index 0000000..d475630 --- /dev/null +++ b/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); +} diff --git a/dk-api/api-workflow/pom.xml b/dk-api/api-workflow/pom.xml index 9a22a63..7275463 100644 --- a/dk-api/api-workflow/pom.xml +++ b/dk-api/api-workflow/pom.xml @@ -27,6 +27,11 @@ common-bus + + org.dromara + api-system + + diff --git a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java index f533381..0bc8945 100644 --- a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowService.java +++ b/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> currentTaskAllUser(List taskId); + + /** + * 审批前获取当前办理人,办理时会校验的该权限集合 + * 返回当前用户权限集合 + */ + List getPermissions(); } diff --git a/dk-api/pom.xml b/dk-api/pom.xml index 98a3afc..273f93e 100644 --- a/dk-api/pom.xml +++ b/dk-api/pom.xml @@ -13,6 +13,7 @@ api-system api-resource api-workflow + api-business dk-api diff --git a/dk-common/common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java b/dk-common/common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java index 96f13d9..d2c38dd 100644 --- a/dk-common/common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java +++ b/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 optional = Arrays.stream(values()).filter(p -> StrUtil.equals(p.getStatus(),status)).findFirst(); + return optional.orElse(null); + } + /** * 启动流程校验 * diff --git a/dk-modules/business/pom.xml b/dk-modules/business/pom.xml index e09834a..25e6f4c 100644 --- a/dk-modules/business/pom.xml +++ b/dk-modules/business/pom.xml @@ -91,6 +91,11 @@ common-encrypt + + org.dromara + api-business + + org.jeecgframework @@ -103,6 +108,10 @@ + + org.dromara + api-workflow + diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java index accfecd..fa97d24 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java +++ b/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 pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery) { + @GetMapping("/alert/page/all") + public TableDataInfo pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery) { return businessAlertService.pageBusinessAlert(bo, pageQuery); } /** - * 获取预警任务详细信息 - * - * @param alertId 主键 + * 查询审批的预警 */ - @GetMapping("/alert/{alertId}") - public R getBusinessAlert(@NotNull(message = "主键不能为空") - @PathVariable String alertId) { - return R.ok(businessAlertService.getBusinessAlert(alertId)); + @GetMapping("/alert/page/todo") + public TableDataInfo 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 addBusinessAlert(@Validated(AddGroup.class) @RequestBody BusinessAlertBo param) { - return toAjax(businessAlertService.addBusinessAlert(param)); + @GetMapping("/alert/page/finish") + public TableDataInfo pageBusinessAlertFinish(BusinessAlertBo bo, PageQuery pageQuery) { + return businessAlertService.pageBusinessAlertFinish(bo, pageQuery); } - /** - * 修改预警任务 - */ - @Log(title = "预警任务", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PostMapping("/alert/edit") - public R editBusinessAlert(@Validated(EditGroup.class) @RequestBody BusinessAlertBo bo) { - return toAjax(businessAlertService.editBusinessAlert(bo)); - } - - /** - * 删除预警任务 - * - * @param alertIdList 主键串 - */ - @Log(title = "预警任务", businessType = BusinessType.DELETE) - @DeleteMapping("/alert/delete") - public R deleteBusinessAlert(@NotEmpty(message = "主键不能为空") - @RequestParam List alertIdList) { - return toAjax(businessAlertService.deleteBusinessAlert(alertIdList, true)); - } - - /** - * 导出预警任务列表 - */ - @Log(title = "预警任务", businessType = BusinessType.EXPORT) - @PostMapping("/alert/export") - public void exportBusinessAlert(BusinessAlertBo bo, HttpServletResponse response) { - List list = businessAlertService.listBusinessAlert(bo); - ExcelUtil.exportExcel(list, "预警任务", BusinessAlertVo.class, response); - } } diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java index 56e3962..64e5346 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java +++ b/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; /** * 是否违建 0:否,1:是 @@ -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; } diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java index f377e3b..090f616 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java +++ b/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; /** * 是否违建 0:否,1:是 */ - @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; diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java index 56e624d..5224245 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java +++ b/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; /** * 是否违建 0:否,1:是 @@ -225,5 +221,4 @@ public class BusinessAlertVo implements Serializable { @ExcelProperty(value = "来源:0:平台 1:小程序") private Long handleSource; - } diff --git a/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java new file mode 100644 index 0000000..fe330f4 --- /dev/null +++ b/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); + } +} diff --git a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java index af7a92a..3481dd5 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java +++ b/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 { - Page pageAlert(Page page, LambdaQueryWrapper lqw); + Page pageBusinessAlert(Page build, QueryWrapper wrapper); + + Page pageAlertFinish(Page page, QueryWrapper wrapper); + + Page pageAlertTodo(Page build, QueryWrapper wrapper); + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertService.java b/dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertService.java index 7f8c99a..1395238 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertService.java +++ b/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 pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery); + TableDataInfo pageBusinessAlertTodo(BusinessAlertBo bo, PageQuery pageQuery); - /** - * 查询符合条件的预警任务列表 - * - * @param param 查询条件 - * @return 预警任务列表 - */ - List listBusinessAlert(BusinessAlertBo param); + TableDataInfo pageBusinessAlertFinish(BusinessAlertBo bo, PageQuery pageQuery); + + TableDataInfo pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery); /** * 新增预警任务 @@ -74,4 +56,12 @@ public interface BusinessAlertService { * @return 是否删除成功 */ Boolean deleteBusinessAlert(List alertIdList, Boolean isValid); + + /** + * 修改预警中处置状态 + * @param businessId + * @param flowStatus + */ + void updateAlertStatus(String businessId, String flowStatus); + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java index c87f808..3f3d707 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java +++ b/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 pageBusinessAlert(BusinessAlertBo param, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(param); - Page result = baseMapper.pageAlert(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - - /** - * 查询符合条件的预警任务列表 - * - * @param param 查询条件 - * @return 预警任务列表 - */ - @Override - public List listBusinessAlert(BusinessAlertBo param) { - LambdaQueryWrapper 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 buildQueryWrapper(BusinessAlertBo bo) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + /** + * 修改预警中处置状态 + * @param businessId + * @param flowStatus + */ + @Override + public void updateAlertStatus(String businessId, String flowStatus) { + LambdaUpdateWrapper 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 pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery) { + QueryWrapper wrapper = buildQueryWrapper(bo); - wrapper.orderByAsc(BusinessAlert::getCreateTime); + Page page = this.baseMapper.pageBusinessAlert(pageQuery.build(), wrapper); + + return TableDataInfo.build(page); + } + + /** + * 查询当前用户已完成预警 + * @param bo + * @param pageQuery + * @return + */ + @Override + public TableDataInfo pageBusinessAlertFinish(BusinessAlertBo bo, PageQuery pageQuery) { + QueryWrapper wrapper = buildQueryWrapper(bo); + buildCommonQueryWrapper(wrapper); + + wrapper.in("a.approver", LoginHelper.getUserId()); + Page page = this.baseMapper.pageAlertFinish(pageQuery.build(), wrapper); + + return TableDataInfo.build(page); + } + + + /** + * 查询当前用户待办预警 + * @param bo + * @param pageQuery + * @return + */ + @Override + public TableDataInfo pageBusinessAlertTodo(BusinessAlertBo bo, PageQuery pageQuery) { + QueryWrapper 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 page = this.baseMapper.pageAlertTodo(pageQuery.build(), wrapper); + List records = page.getRecords(); + if (CollUtil.isNotEmpty(records)) { + List taskIds = StreamUtils.toList(records, BusinessAlert::getFlowTaskId); + Map> listMap = remoteWorkflowService.currentTaskAllUser(taskIds); + records.forEach(t -> { + List 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 buildQueryWrapper(BusinessAlertBo bo) { + QueryWrapper wrapper = new QueryWrapper<>(); + + wrapper.orderByAsc("ba.create_time"); return wrapper; } + + /** + * 构建通用流程wrapper + * @param wrapper + */ + private void buildCommonQueryWrapper(QueryWrapper 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】为空!"); + } + } } diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml index 36badec..95b94f0 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/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"> - + select + 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} + + + + diff --git a/dk-modules/workflow/pom.xml b/dk-modules/workflow/pom.xml index 2e7733a..3a1529e 100644 --- a/dk-modules/workflow/pom.xml +++ b/dk-modules/workflow/pom.xml @@ -102,6 +102,12 @@ org.dromara api-resource + + + org.dromara + api-business + + diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/common/handler/FlwCommonHandler.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/common/handler/FlwCommonHandler.java new file mode 100644 index 0000000..69920a8 --- /dev/null +++ b/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); +} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java index 64dd082..dfcafae 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java @@ -52,4 +52,9 @@ public class FlowTaskBo implements Serializable { */ private List createByIds; + /** + * 业务Id + */ + private String businessId; + } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java index ea21a81..a0893fa 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java +++ b/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; diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java index d9a83ed..2f0b230 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java +++ b/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 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> currentTaskAllUser(List taskIds) { + return flwTaskService.currentTaskAllUser(taskIds); } + @Override + public List getPermissions() { + return flwTaskService.getPermissions(); + } + +// @Override +// public boolean completeTask(RemoteCompleteTask completeTask) { +// return workflowService.completeTask(completeTask); +// } + } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java new file mode 100644 index 0000000..2fb3921 --- /dev/null +++ b/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) { + + } +} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java index 65f990e..4dda912 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java +++ b/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 pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery); + /** * 查询当前租户所有待办任务 * @@ -55,6 +59,8 @@ public interface IFlwTaskService { */ TableDataInfo pageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery); + + /** * 查询待办任务 * @@ -188,4 +194,10 @@ public interface IFlwTaskService { * @return 结果 */ List currentTaskAllUser(Long taskId); + + /** + * 审批前获取当前办理人,办理时会校验的该权限集合 + * 返回当前用户权限集合 + */ + List getPermissions(); } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index db32b33..34daefb 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/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 messageType, String message) { - List userList = new ArrayList<>(); - List list = this.selectByInstId(instId); - - if (StringUtils.isBlank(message)) { - message = "有新的【" + flowName + "】单据已经提交至您,请您及时处理。"; - } - for (Task task : list) { - List 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 pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) { QueryWrapper 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 page = this.getFlowTaskVoPage(pageQuery, queryWrapper); + + return TableDataInfo.build(page); } + /** + * 审批前获取当前办理人,办理时会校验的该权限集合 + * 返回当前用户权限集合 + */ + @Override + public List 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 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 messageType, String message) { + List userList = new ArrayList<>(); + List list = this.selectByInstId(instId); + + if (StringUtils.isBlank(message)) { + message = "有新的【" + flowName + "】单据已经提交至您,请您及时处理。"; + } + for (Task task : list) { + List 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); + } + } + } + } + } + } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java index 858f7c2..03b21c3 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java +++ b/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());