为了比对流程中条件的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> {
@Autowired
private FlowableExtraFunc flowableExtraFunc; //注入刚才的自定义类
@Override
public 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"))