package org.springblade.flow.listener; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.flowable.engine.delegate.TaskListener; import org.flowable.task.service.delegate.DelegateTask; import org.springblade.common.utils.SpringUtils; import org.springblade.modules.property.entity.PropertyCapitalApplyEntity; import org.springblade.modules.property.service.IPropertyCapitalApplyService; public class MyTaskListener implements TaskListener { /** * 监听器触发的回调方法 * * @param delegateTask */ @Override public void notify(DelegateTask delegateTask) { System.out.println("---->自定义的监听器执行了"); if (EVENTNAME_CREATE.equals(delegateTask.getEventName())) { // 表示是Task的创建事件被触发了 // 指定当前Task节点的处理人 System.out.println("***************************delegateTask"); IPropertyCapitalApplyService propertyCapitalApplyService = SpringUtils.getBean(IPropertyCapitalApplyService.class); PropertyCapitalApplyEntity applyEntity = propertyCapitalApplyService.getOne(Wrappers.lambdaQuery() .eq(PropertyCapitalApplyEntity::getProcessInstanceId, delegateTask.getProcessInstanceId())); applyEntity.setTaskId(delegateTask.getId()); propertyCapitalApplyService.updateById(applyEntity); // IUserService user = SpringUtils.getBean(IUserService.class); // IDistrictService district = SpringUtils.getBean(IDistrictService.class); // IRegionService region = SpringUtils.getBean(IRegionService.class); // IDeptService dept = SpringUtils.getBean(IDeptService.class); // DistrictEntity one1 = district.getOne(Wrappers.lambdaQuery() // .eq(DistrictEntity::getId, applyEntity.getDistrictId())); // if (delegateTask.getName().equals("街道")) { // Region one2 = region.getOne(Wrappers.lambdaQuery().eq(Region::getCode, one1.getCommunityCode().substring(0, 9))); // Dept one3 = dept.getOne(Wrappers.lambdaQuery().eq(Dept::getDeptName, one2.getName())); // User one4 = user.getOne(Wrappers.lambdaQuery().eq(User::getDeptId, one3.getId()).last("limit 1")); // delegateTask.setAssignee(TaskUtil.getTaskUser(one4.getId().toString())); // } else if (delegateTask.getName().equals("住建局")) { // // 查询住建局负责人 // Region region2 = region.getOne(Wrappers.lambdaQuery().eq(Region::getCode, one1.getCommunityCode().substring(0, 6))); // Dept dept3 = dept.getOne(Wrappers.lambdaQuery().eq(Dept::getDeptName, region2.getName() + "住建局").last("limit 1")); // User user4 = user.getOne(Wrappers.lambdaQuery().eq(User::getDeptId, dept3.getId()).last("limit 1")); // delegateTask.setAssignee(TaskUtil.getTaskUser(user4.getId().toString())); // } System.out.println("---->自定义的监听器执行了EVENTNAME_CREATE"); } if (EVENTNAME_COMPLETE.equals(delegateTask.getEventName())) { // 表示是Task的完成事件被触发了 // 指定当前Task节点的处理人 // delegateTask.setAssignee("boge666"); System.out.println("---->自定义的监听器执行了EVENTNAME_COMPLETE"); } if (EVENTNAME_DELETE.equals(delegateTask.getEventName())) { // 表示是Task的删除事件被触发了 // 指定当前Task节点的处理人 // delegateTask.setAssignee("boge666");} System.out.println("---->自定义的监听器执行了EVENTNAME_DELETE"); } if (EVENTNAME_ASSIGNMENT.equals(delegateTask.getEventName())) { // 表示是Task的分配事件被触发了 System.out.println("---->自定义的监听器执行了EVENTNAME_ASSIGNMENT"); } } }