package com.ruoyi.activiti.listener;

import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.springframework.stereotype.Component;

/**
 * 会签任务监听器，当会签任务完成时统计同意的数量
 *
 * @author henryyan
 * @component （把普通pojo实例化到spring容器中，相当于配置文件中的<bean id="" class=""/>）
 * 如果不指定bean名称，bean名称的默认规则是类名的首字母小写，如UserService->userService
 * 如果类名前两个或以上个字母都是大写，那么bean名称与类名一样，如RBACUser - >RBACUser
 * 作用在方法上
 * @Bean 作用于方法上创建bean
 * 如果不指定bean名称，bean名称的默认规则是 “方法名” + "首字母小写"的配置方式
 */
@Component
public class ApprovedCounterSignCompleteListener implements TaskListener {

    private static final long serialVersionUID = 1L;

    @Override
    public void notify(DelegateTask delegateTask) {
        Boolean pass = (Boolean) delegateTask.getVariable("pass");
        if (pass) {
            Long agreeCounter = (Long) delegateTask.getVariable("approvedCounter");
            delegateTask.setVariable("approvedCounter", agreeCounter + 1);
        }
    }

}
