动态字段--高级搜索
This commit is contained in:
+109
-6
@@ -13,9 +13,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.constant.WebsocketConst;
|
||||
import com.jero.common.constant.enums.*;
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
import com.jero.common.constant.enums.IsMustEnum;
|
||||
import com.jero.common.constant.enums.MessageTypeEnum;
|
||||
import com.jero.common.constant.enums.ModuleEnum;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.es.JeroElasticsearchTemplate;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.query.QueryRuleEnum;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.DateUtils;
|
||||
import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
|
||||
@@ -30,6 +35,7 @@ import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper;
|
||||
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
|
||||
import com.jero.modules.document.utils.ReadPdfUtil;
|
||||
import com.jero.modules.document.utils.ReadWordUtil;
|
||||
import com.jero.modules.document.vo.QueryConditionVO;
|
||||
import com.jero.modules.domain.service.DomainUserRelService;
|
||||
import com.jero.modules.feishu.service.IFeishuService;
|
||||
import com.jero.modules.log.entity.BussLogEO;
|
||||
@@ -42,7 +48,11 @@ import com.jero.modules.split.entity.SarFileSplitInfoEO;
|
||||
import com.jero.modules.split.service.ISarFileSplitInfoService;
|
||||
import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
|
||||
import com.jero.modules.subscribe.service.IOnlCgformSubscribeService;
|
||||
import com.jero.modules.system.entity.*;
|
||||
import com.jero.modules.system.entity.SysAnnouncement;
|
||||
import com.jero.modules.system.entity.SysCategory;
|
||||
import com.jero.modules.system.entity.SysCategoryTreeVO;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.mapper.SysUserMapper;
|
||||
import com.jero.modules.system.service.ISysAnnouncementService;
|
||||
import com.jero.modules.system.service.ISysDepartService;
|
||||
@@ -56,8 +66,20 @@ import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.hssf.usermodel.*;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import org.apache.poi.hssf.usermodel.HSSFCell;
|
||||
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
|
||||
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
|
||||
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
|
||||
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.CellStyle;
|
||||
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.ss.usermodel.WorkbookFactory;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
@@ -73,11 +95,26 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@@ -5009,4 +5046,70 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
return infoPage;
|
||||
}
|
||||
|
||||
//高级搜索条件拼接
|
||||
|
||||
private void sqlJoint(List<QueryConditionVO> queryConditionVOList){
|
||||
if(queryConditionVOList.size() != 0){
|
||||
int count =0;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (QueryConditionVO queryConditionVO : queryConditionVOList) {
|
||||
String type = queryConditionVO.getType();//and或or
|
||||
String rule = queryConditionVO.getRule();
|
||||
String field = queryConditionVO.getField();
|
||||
String val = queryConditionVO.getVal();
|
||||
//如果查询字段对应的搜索条件值为空,则不作处理
|
||||
if(StringUtils.isNotBlank(val)){
|
||||
count ++;//从第二个查询条件开始拼接type(and或or)
|
||||
sb.append(" " + field + " ");
|
||||
//查询类型
|
||||
String ruleTemp = queryType(rule);
|
||||
sb.append(ruleTemp + " ");
|
||||
//在..中(用in-->特殊处理)
|
||||
if(val.contains(",")){
|
||||
StringBuilder sbTemp = new StringBuilder();
|
||||
for (String valTemp : val.split(",")) {
|
||||
sbTemp.append("'" + valTemp +"' ,");
|
||||
}
|
||||
if(StringUtils.isNotBlank(sbTemp)){
|
||||
String substring = sbTemp.substring(0, sbTemp.length() - 1);
|
||||
sb.append(substring);
|
||||
}
|
||||
}else{
|
||||
sb.append(val);
|
||||
}
|
||||
if(count > 1){
|
||||
sb.append(type + " ");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public String queryType(String rule){
|
||||
String value ="";
|
||||
if(QueryRuleEnum.GT.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.GT.getValue();
|
||||
}else if(QueryRuleEnum.GE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.GE.getValue();
|
||||
}else if(QueryRuleEnum.LT.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.LT.getValue();
|
||||
}else if(QueryRuleEnum.LE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.LE.getValue();
|
||||
}else if(QueryRuleEnum.EQ.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.EQ.getValue();
|
||||
}else if(QueryRuleEnum.NE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.NE.getValue();
|
||||
}else if(QueryRuleEnum.LIKE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.LIKE.getValue();
|
||||
}else if(QueryRuleEnum.LEFT_LIKE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.LEFT_LIKE.getValue();
|
||||
}else if(QueryRuleEnum.RIGHT_LIKE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.RIGHT_LIKE.getValue();
|
||||
}else if(QueryRuleEnum.IN.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.IN.getValue();
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.jero.modules.document.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @description
|
||||
* @date 2022/5/20 14:37
|
||||
* @auth zhn
|
||||
*/
|
||||
@Data
|
||||
public class QueryConditionVO {
|
||||
//类型(and或or)
|
||||
private String type;
|
||||
//查询类型
|
||||
private String rule;
|
||||
//字段
|
||||
private String field;
|
||||
//字段值
|
||||
private String val;
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user