weaver-hrm-salary/src/com/engine/salary/formlua/func/compare/Compareutils.java

311 lines
15 KiB
Java
Raw Normal View History

2023-04-19 13:35:35 +08:00
//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<FormulaFilterData> 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<String> ids = new ArrayList<>();
//// String[] idsArray = content.split(",");
//// for (String idStr : idsArray) {
//// if (StringUtils.isNotBlank(idStr)) {
//// ids.add(idStr);
2023-04-13 09:32:20 +08:00
//// }
//// }
2023-04-19 13:35:35 +08:00
//// 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<FormulaFilterData> 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() + "");
2023-04-13 09:32:20 +08:00
// }
2023-04-19 13:35:35 +08:00
// 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);
2023-04-13 09:32:20 +08:00
// dataType.setFormulaFilterDataList(filterFormDataList);
2023-04-19 13:35:35 +08:00
// 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("筛选条件[!=]:左边必须是表单控件");
// }
//}