为了比对流程中条件的checkbox,由于本身elui的checkbox是乱序的,所以需要这个自定义函数来判断
环境:jdk1.8 flowable6.8 springboot2
1.自定义函数
import org.springframework.stereotype.Component;import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;@Component
public class FlowableExtraFunc {/*** 比对选项框选项** @param checkbox 选项框选中值* @param values 要比对的数组,逗号分割字符串传递* @return 是否选中项相同*/public boolean compareCheckBox(List<Integer> checkbox, String values) {//写逻辑}
}
2.配置文件中引入
import com.cyou.flowable.UELCustomFunc.FlowableExtraFunc;
import org.flowable.spring.SpringProcessEngineConfiguration;
import org.flowable.spring.boot.EngineConfigurationConfigurer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;import java.util.HashMap;@Configuration
public class FlowableConfig implements EngineConfigurationConfigurer<SpringProcessEngineConfiguration> {@Autowiredprivate FlowableExtraFunc flowableExtraFunc; //注入刚才的自定义类@Overridepublic void configure(SpringProcessEngineConfiguration engineConfiguration) {
//已删除别的代码,只保留与自定义相关的核心代码// 手动初始化 beans 属性if (engineConfiguration.getBeans() == null) {engineConfiguration.setBeans(new HashMap<>());}engineConfiguration.getBeans().put("FlowableExtraFunc", flowableExtraFunc); //注册FlowableExtraFunc自定义UEL方法类}
}
3.前端使用
//checkbox36810是控件名称,在后端那边会直接传递一个数组过去,"1,2,8,4"是比对的选中项,这里为了方便处理,先传递字符串形式数组过去
(FlowableExtraFunc.compareCheckBox(checkbox36810,"1,2,8,4"))