linwe
2024-08-09 8b7258c9427882bb1798f1502eaa35184c6e374e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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.<PropertyCapitalApplyEntity>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.<DistrictEntity>lambdaQuery()
            //     .eq(DistrictEntity::getId, applyEntity.getDistrictId()));
            // if (delegateTask.getName().equals("街道")) {
            //     Region one2 = region.getOne(Wrappers.<Region>lambdaQuery().eq(Region::getCode, one1.getCommunityCode().substring(0, 9)));
            //     Dept one3 = dept.getOne(Wrappers.<Dept>lambdaQuery().eq(Dept::getDeptName, one2.getName()));
            //     User one4 = user.getOne(Wrappers.<User>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.<Region>lambdaQuery().eq(Region::getCode, one1.getCommunityCode().substring(0, 6)));
            //     Dept dept3 = dept.getOne(Wrappers.<Dept>lambdaQuery().eq(Dept::getDeptName, region2.getName() + "住建局").last("limit 1"));
            //     User user4 = user.getOne(Wrappers.<User>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");
        }
 
    }
}