為了比對流程中條件的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"))