//package com.engine.salary.formlua.func.compare; // //import com.alibaba.fastjson.JSON; //import com.engine.salary.formlua.entity.parameter.DataType; //import com.engine.salary.formlua.entity.standard.FormulaFilterData; //import com.weaver.common.form.component.base.ComponentConfig; //import com.weaver.common.form.component.base.ComponentType; //import com.weaver.common.form.excel.validator.Validator; //import com.weaver.common.form.metadata.field.FormField; //import com.weaver.common.form.stat.FilterFormData; //import org.apache.commons.lang3.StringUtils; //import org.slf4j.Logger; //import org.slf4j.LoggerFactory; // //import java.util.ArrayList; //import java.util.List; // ///** // * 逻辑操作符的条件构建工具类 // */ //public class Compareutils { // protected static final Logger logger = LoggerFactory.getLogger(Compareutils.class); // // /** // * 构建不等于操作符的搜索条件 // * // * @param dataType // * @param obj1 // * @param obj2 // * @throws Exception // */ // public static void buildNotEqFilterParam(DataType dataType, Object obj1, Object obj2) throws Exception { // List filterFormDataList = new ArrayList<>(); // FormulaFilterData filterData = new FormulaFilterData(); // String content = null; // try { // if (obj1 instanceof DataType) { // DataType dataType1 = (DataType) obj1; // if (StringUtils.isEmpty(dataType1.getComponentKey())) { // dataType1.setComponentKey(dataType1.getDataType()); // } // if (obj2 instanceof DataType) { //// content = ((DataType) obj2).getContent()+""; // DataType paramDataType = (DataType) obj2; // if (paramDataType == null || paramDataType.getContent() == null) { // content = ""; // } else { // content = paramDataType.getContent() + ""; // } // } else { // content = obj2 + ""; // } // if (content != null) { // String componentKey = dataType1.getComponentKey(); // filterData.setFieldId(dataType1.getFieldId()); // if (dataType1.getSubFormId() != null) { // filterData.setSubFormId(dataType1.getSubFormId() + ""); // } // filterData.setComponentKey(componentKey); // if (StringUtils.isEmpty(content)) { //// filterData.setTerm(FilterFormData.TERM_NOT_NULL); // } else { //// //选项控件 //// if (ComponentConfig.isOptionComponent(componentKey)) { //// filterData.setTerm(FilterFormData.TERM_NOT_EQ); //// List ids = new ArrayList<>(); //// String[] idsArray = content.split(","); //// for (String idStr : idsArray) { //// if (StringUtils.isNotBlank(idStr)) { //// ids.add(idStr); //// } //// } //// filterData.setIds(ids); //// //其他 //// } else { //// filterData.setTerm(FilterFormData.TERM_NOT_EQ); //// filterData.setContent(content); ////// if(ComponentConfig.isNumberComponent(dataType1.getComponentKey()) || dataType1.getComponentKey().equalsIgnoreCase(DataType.NUMBER)){ ////// if(StringUtils.isEmpty(content)){ ////// filterData.setContent("0"); ////// } ////// } //// } // } // } // filterFormDataList.add(filterData); //// dataType.setFormulaFilterDataList(filterFormDataList); // dataType.setComponentKey(dataType1.getComponentKey()); // dataType.setSubFormId(dataType1.getSubFormId()); // } // } catch (Exception e) { // logger.error("err", e); // } // // } // // /** // * 构建大于、小于、大于等于、小于等于的搜索条件 // * // * @param dataType // * @param name // * @param obj1 // * @param obj2 // */ // public static void buildLessMoreFilterParam(DataType dataType, String name, Object obj1, Object obj2) { // List filterFormDataList = new ArrayList<>(); // FormulaFilterData filterData = new FormulaFilterData(); // try { // logger.info(name + "执行结果:" + JSON.toJSONString(dataType)); // if (obj1 instanceof DataType) { // DataType dataType1 = (DataType) obj1; // if (StringUtils.isEmpty(dataType1.getComponentKey())) { // dataType1.setComponentKey(dataType1.getDataType()); // } // String content = null; // if (obj2 instanceof DataType) { //// content = ((DataType) obj2).getContent()+""; // DataType paramDataType = (DataType) obj2; // if (paramDataType == null || paramDataType.getContent() == null) { // content = ""; // } else { // content = paramDataType.getContent() + ""; // } // } else { // content = obj2 + ""; // } // if (content != null) { // String componentKey = dataType1.getComponentKey(); // if (ComponentConfig.isNumberComponent(componentKey) // || componentKey.equals(ComponentType.DateComponent.toString()) // || componentKey.equals(ComponentType.TimeComponent.toString()) // || dataType1.getComponentKey().equalsIgnoreCase(DataType.STRING) // || dataType1.getComponentKey().equalsIgnoreCase(DataType.NUMBER) // || dataType1.getComponentKey().equalsIgnoreCase(DataType.STRING) // || dataType1.getComponentKey().equalsIgnoreCase(DataType.BOOL)) { // // filterData.setFieldId(dataType1.getFieldId() + ""); // if (dataType1.getSubFormId() != null) { // filterData.setSubFormId(dataType1.getSubFormId() + ""); // } // filterData.setComponentKey(componentKey); // switch (name) { // case ">=": // filterData.setTerm(FilterFormData.TERM_GE); // break; // case ">": // filterData.setTerm(FilterFormData.TERM_GT); // break; // case "<=": // filterData.setTerm(FilterFormData.TERM_LE); // break; // case "<": // filterData.setTerm(FilterFormData.TERM_LT); // break; // default: // break; // } // filterData.setContent(content); // } // } // filterFormDataList.add(filterData); // dataType.setFormulaFilterDataList(filterFormDataList); // dataType.setComponentKey(dataType1.getComponentKey()); // dataType.setSubFormId(dataType1.getSubFormId()); // } // } catch (Exception e) { // logger.error("err", e); // } // // } // // /** // * 校验大于、小于、小于等于、大于等于操作符的入参 // * // * @param name // * @param obj1 // * @param obj2 // * @return // */ // public static boolean checkLessMoreParam(String name, Object obj1, Object obj2) { // if (obj1 instanceof FormField) { // String componentKey = ((FormField) obj1).getComponentKey(); // if (ComponentConfig.isNumberComponent(componentKey)) { // if (obj2 instanceof Number) { // return true; // } else if (obj2 instanceof DataType && ((DataType) obj2).getDataType().equalsIgnoreCase(DataType.NUMBER)) { // return true; // } else { // throw new RuntimeException("筛选条件[" + name + "]:数字控件右边必须是数字"); // } // } // if (componentKey.equals(ComponentType.DateComponent.toString())) { // if (obj2 instanceof String && Validator.isDate((String) obj2)) { // return true; // } else if (obj2 instanceof DataType && ((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)) { // return true; // } else { // throw new RuntimeException("筛选条件[" + name + "]:日期控件右边必须是日期字符串"); // } // // } // if (componentKey.equals(ComponentType.TimeComponent.toString())) { // if (obj2 instanceof String && Validator.isTime((String) obj2)) { // return true; // } else if (obj2 instanceof DataType && ((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)) { // return true; // } else { // throw new RuntimeException("筛选条件[" + name + "]:时间控件右边必须是时间字符串"); // } // } // } // throw new RuntimeException("筛选条件[" + name + "]:左边必须是数字控件或时间控件"); // } // // /** // * 校验等于号的入参 // * // * @param obj1 // * @param obj2 // * @return // */ // public static boolean checkEqParam(Object obj1, Object obj2) { // if (obj1 instanceof DataType) { // String componentKey = ((FormField) obj1).getComponentKey(); // if (ComponentConfig.isNumberComponent(componentKey)) { // if (obj2 instanceof DataType) { // if (((DataType) obj2).getDataType().equalsIgnoreCase(DataType.NUMBER)) { // return true; // } else { // throw new RuntimeException("筛选条件[=]:数字控件右边必须是数字"); // } // } else if (StringUtils.isEmpty(obj2 + "") || Validator.isFloat(obj2 + "")) { // return true; // } else { // throw new RuntimeException("筛选条件[=]:数字控件右边必须是数字"); // } // } else if (ComponentConfig.isOptionComponent(componentKey)) { // if (StringUtils.isEmpty(obj2 + "") || (obj2 instanceof DataType && ((DataType) obj2).getDataType().equalsIgnoreCase(DataType.OPTION))) { // return true; // } else { // throw new RuntimeException("筛选条件[=]:选项控件右边必须是选项"); // } // } else { // if (StringUtils.isEmpty(obj2 + "") || obj2 instanceof String || obj2 instanceof Character) { // return true; // } else if (obj2 instanceof DataType) { // if (((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)) { // return true; // } else if (((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)) { // return true; // } else { // throw new RuntimeException("筛选条件[=]:文本控件右边必须是字符"); // } // } else { // throw new RuntimeException("筛选条件[=]:文本控件右边必须是字符"); // } // } // } // throw new RuntimeException("筛选条件[=]:左边必须是表单控件"); // } // // /** // * 校验不等于号的入参 // * // * @param obj1 // * @param obj2 // * @return // */ // public static boolean checkNotEqParam(Object obj1, Object obj2) { // if (obj1 instanceof FormField) { // String componentKey = ((FormField) obj1).getComponentKey(); // if (ComponentConfig.isNumberComponent(componentKey)) { // if (obj2 instanceof DataType) { // if (((DataType) obj2).getDataType().equalsIgnoreCase(DataType.NUMBER)) { // return true; // } else { // throw new RuntimeException("筛选条件[!=]:数字控件右边必须是数字"); // } // } else if (StringUtils.isEmpty(obj2 + "") || Validator.isFloat(obj2 + "")) { // return true; // } else { // throw new RuntimeException("筛选条件[!=]:数字控件右边必须是数字"); // } // } else if (ComponentConfig.isOptionComponent(componentKey)) { // if (StringUtils.isEmpty(obj2 + "") || (obj2 instanceof DataType && ((DataType) obj2).getDataType().equalsIgnoreCase(DataType.OPTION))) { // return true; // } else { // throw new RuntimeException("筛选条件[!=]:选项控件右边必须是选项"); // } // } else { // if (StringUtils.isEmpty(obj2 + "") || obj2 instanceof String || obj2 instanceof Character) { // return true; // } else if (obj2 instanceof DataType) { // if (((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)) { // return true; // } else if (((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)) { // return true; // } else if (((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)) { // return true; // } else { // throw new RuntimeException("筛选条件[!=]:文本控件右边必须是字符"); // } // } else { // throw new RuntimeException("筛选条件[!=]:文本控件右边必须是字符"); // } // } // } // throw new RuntimeException("筛选条件[!=]:左边必须是表单控件"); // } //}