Merge branch 'develop_3' into 'develop_master'
feat: 搜索中心 子项目 添加 相关依赖文件 及 修改 See merge request !90
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
package com.adc.da.search.entity;
|
package com.adc.da.search.entity;
|
||||||
|
|
||||||
import com.adc.da.base.page.BasePage;
|
import com.adc.da.base.page.BasePage;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
@@ -17,13 +19,103 @@ import java.util.List;
|
|||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class SeniorSearchInfoEO extends BasePage {
|
public class SeniorSearchInfoEO extends BasePage {
|
||||||
private String standType;
|
|
||||||
|
/**
|
||||||
|
* -----------------------------FOTON-------------------------------------
|
||||||
|
* -------------------------- 动态属性字段---------------------------------
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "主键")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标准分类")
|
||||||
|
private String standType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "国家地区")
|
||||||
|
private String country;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标准类别")
|
||||||
|
private String standSort;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标准编号")
|
||||||
|
private String standNumber;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标准年份")
|
||||||
|
private String standYear;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标准名称")
|
||||||
|
private String standName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标准英文名称")
|
||||||
|
private String standEnName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标准状态")
|
||||||
|
private String standState;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标准性质")
|
||||||
|
private String standNature;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标准发布日期")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
private Date issueTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "实施日期")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
private Date putTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "内容摘要")
|
||||||
|
private String synopsis;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "代替标准号")
|
||||||
|
private String replaceStandNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "被代替标准号")
|
||||||
|
private String replacedStandNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "代替部分标准号")
|
||||||
|
private String replacePartStandNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "被代替部分标准号")
|
||||||
|
private String replacedPartStandNum;
|
||||||
|
|
||||||
|
private String creationUser;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否有效")
|
||||||
|
private String validFlag;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
private Date creationTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "修改时间")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
private Date modifyTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否纳入认证清单(0否 1是)")
|
||||||
|
private String isRelateAccess;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "引用标准")
|
||||||
|
private String citeStand;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "被引用标准")
|
||||||
|
private String citedStand;
|
||||||
|
|
||||||
|
// 新添加字段
|
||||||
|
@ApiModelProperty(value = "文本状态")
|
||||||
|
private String textStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标准体系")
|
||||||
|
private String standSystem;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "新增修改时属性表信息")
|
||||||
|
private String sarStandAttrEOStr;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ---------其他字段------------
|
||||||
|
*/
|
||||||
//标准性质
|
//标准性质
|
||||||
private String nature;
|
private String nature;
|
||||||
//国家地区
|
|
||||||
private String country;
|
|
||||||
//标准类别
|
|
||||||
private String standSort;
|
|
||||||
//标准,文件号
|
//标准,文件号
|
||||||
private String numberShow;
|
private String numberShow;
|
||||||
//标准,文件名称
|
//标准,文件名称
|
||||||
@@ -38,10 +130,6 @@ public class SeniorSearchInfoEO extends BasePage {
|
|||||||
private String energyKind;
|
private String energyKind;
|
||||||
//采标程度
|
//采标程度
|
||||||
private String adoptExtent;
|
private String adoptExtent;
|
||||||
//标准状态
|
|
||||||
private String standState;
|
|
||||||
//发布日期
|
|
||||||
private Date issueTime;
|
|
||||||
//标准大类
|
//标准大类
|
||||||
private String bussBigClass;
|
private String bussBigClass;
|
||||||
//标准细类
|
//标准细类
|
||||||
@@ -55,21 +143,8 @@ public class SeniorSearchInfoEO extends BasePage {
|
|||||||
private String selectIndex;
|
private String selectIndex;
|
||||||
|
|
||||||
//高级搜索
|
//高级搜索
|
||||||
//标准编号
|
|
||||||
private String standNumber;
|
|
||||||
//标准年份
|
|
||||||
private String standYear;
|
|
||||||
//标准英文名称
|
|
||||||
private String standEnName;
|
|
||||||
//代替标准号 手动输入可以多个,用","隔开
|
|
||||||
private String replaceStandNum;
|
|
||||||
//被代替标准号
|
|
||||||
private String replacedStandNum;
|
|
||||||
//采用国际标准号
|
//采用国际标准号
|
||||||
private String interStandNum;
|
private String interStandNum;
|
||||||
//实施日期
|
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
private Date putTime;
|
|
||||||
//新生产车实施日期
|
//新生产车实施日期
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date newproductPutTime;
|
private Date newproductPutTime;
|
||||||
@@ -85,8 +160,6 @@ public class SeniorSearchInfoEO extends BasePage {
|
|||||||
private String draftingUnit;
|
private String draftingUnit;
|
||||||
//关键词
|
//关键词
|
||||||
private String tags;
|
private String tags;
|
||||||
//内容摘要
|
|
||||||
private String synopsis;
|
|
||||||
//责任部门
|
//责任部门
|
||||||
private String responsibleUnit;
|
private String responsibleUnit;
|
||||||
//发布单位
|
//发布单位
|
||||||
@@ -156,4 +229,7 @@ public class SeniorSearchInfoEO extends BasePage {
|
|||||||
private String stand_status;
|
private String stand_status;
|
||||||
private String isHigh;
|
private String isHigh;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+41
@@ -0,0 +1,41 @@
|
|||||||
|
package com.adc.da.search.sarStandAttrDetails.dao;
|
||||||
|
|
||||||
|
import com.adc.da.search.sarStandAttrDetails.entity.SarStandAttrDetails;
|
||||||
|
import com.adc.da.search.sarStandAttrDetails.page.SarStandAttrDetailsEOPage;
|
||||||
|
import com.adc.da.sys.common.SelectionResult;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author super_liu
|
||||||
|
* @since 2021-06-01
|
||||||
|
*/
|
||||||
|
@Repository
|
||||||
|
public interface SarStandAttrDetailsSearchDao extends BaseMapper<SarStandAttrDetails> {
|
||||||
|
|
||||||
|
List<SarStandAttrDetails> queryByPage(SarStandAttrDetailsEOPage page);
|
||||||
|
|
||||||
|
List<SarStandAttrDetails> queryByList(SarStandAttrDetailsEOPage page);
|
||||||
|
|
||||||
|
Integer queryByCount(SarStandAttrDetailsEOPage page);
|
||||||
|
|
||||||
|
int deleteByIds(@Param("idList") List<String> idList);
|
||||||
|
|
||||||
|
String selectAllFieldToStr(SarStandAttrDetailsEOPage page);
|
||||||
|
|
||||||
|
List<SelectionResult> selectFileFieldForSel(@Param("attrField") String attrField);
|
||||||
|
|
||||||
|
List<SelectionResult> selectFileFieldForSel1(@Param("attrField") String attrField);
|
||||||
|
|
||||||
|
String selectNameByField(@Param("attrField") String attrField, @Param("sarType") String sarType);
|
||||||
|
|
||||||
|
SarStandAttrDetails selectFieldByName(@Param("attrName") String attrName, @Param("sarType") String sarType);
|
||||||
|
|
||||||
|
}
|
||||||
+114
@@ -0,0 +1,114 @@
|
|||||||
|
package com.adc.da.search.sarStandAttrDetails.entity;
|
||||||
|
|
||||||
|
import com.adc.da.base.entity.BaseEntity;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author super_liu
|
||||||
|
* @since 2021-06-01
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel(value="SarStandAttrDetails对象", description="")
|
||||||
|
public class SarStandAttrDetails extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "主键")
|
||||||
|
@TableId("ID")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "属性字段")
|
||||||
|
@TableField("ATTR_FIELD")
|
||||||
|
private String attrField;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "属性名称")
|
||||||
|
@TableField("ATTR_NAME")
|
||||||
|
private String attrName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "类型(INPUT_STR字符串输入框,INPUT_NUM数字输入框,SELECT_OPTION下拉框,DATE_PICKER日期选择,FILE文件,TEXTAREA文本框)")
|
||||||
|
@TableField("ATTR_TYPE")
|
||||||
|
private String attrType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "属性字段长度")
|
||||||
|
@TableField("ATTR_LEN")
|
||||||
|
private Long attrLen;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "展示顺序")
|
||||||
|
@TableField("ORDER_NUM")
|
||||||
|
private Long orderNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否可编辑(0是,1否)")
|
||||||
|
@TableField("IS_EDIT")
|
||||||
|
private String isEdit;
|
||||||
|
|
||||||
|
@TableField("CREATION_USER")
|
||||||
|
private String creationUser;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否有效")
|
||||||
|
@TableField("VALID_FLAG")
|
||||||
|
private String validFlag;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
@TableField("CREATION_TIME")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
private Date creationTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "修改时间")
|
||||||
|
@TableField("MODIFY_TIME")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
private Date modifyTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否必填")
|
||||||
|
@TableField("IS_MUST")
|
||||||
|
private String isMust;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否展示")
|
||||||
|
@TableField("IS_SHOW_IMP")
|
||||||
|
private String isShowImp;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "展示区域")
|
||||||
|
@TableField("SHOW_REGION_ID")
|
||||||
|
private String showRegionId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "下拉选项所用的值")
|
||||||
|
@TableField("SEL_VAL")
|
||||||
|
private String selVal;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "模块类型(STAND标准,LAWS政策)")
|
||||||
|
@TableField("SAR_TYPE")
|
||||||
|
private String sarType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否作为检索条件")
|
||||||
|
@TableField("IS_SEARCH")
|
||||||
|
private String isSearch;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否预警")
|
||||||
|
@TableField("IS_WARN")
|
||||||
|
private String isWarn;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否检索字段")
|
||||||
|
@TableField("IS_JANSUO")
|
||||||
|
private String isJansuo;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String attrValue;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String areaName;
|
||||||
|
|
||||||
|
}
|
||||||
+46
@@ -0,0 +1,46 @@
|
|||||||
|
package com.adc.da.search.sarStandAttrDetails.page;
|
||||||
|
|
||||||
|
import com.adc.da.base.page.BasePage;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <b>功能:</b>SAR_STAND_ATTR_DETAILS SarStandAttrDetailsEOPage<br>
|
||||||
|
* <b>作者:</b>code generator<br>
|
||||||
|
* <b>日期:</b> 2020-08-17 <br>
|
||||||
|
* <b>版权所有:<b>版权归北京卡达克数据技术中心所有。<br>
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SarStandAttrDetailsEOPage extends BasePage {
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
private String idOperator = "=";
|
||||||
|
private String attrField;
|
||||||
|
private String attrFieldOperator = "=";
|
||||||
|
private String attrName;
|
||||||
|
private String attrNameOperator = "=";
|
||||||
|
private String attrType;
|
||||||
|
private String attrTypeOperator = "=";
|
||||||
|
private String orderNum;
|
||||||
|
private String orderNumOperator = "=";
|
||||||
|
private String isEdit;
|
||||||
|
private String isEditOperator = "=";
|
||||||
|
private String creationUser;
|
||||||
|
private String creationUserOperator = "=";
|
||||||
|
private String validFlag;
|
||||||
|
private String validFlagOperator = "=";
|
||||||
|
private String creationTime;
|
||||||
|
private String creationTime1;
|
||||||
|
private String creationTime2;
|
||||||
|
private String creationTimeOperator = "=";
|
||||||
|
private String modifyTime;
|
||||||
|
private String modifyTime1;
|
||||||
|
private String modifyTime2;
|
||||||
|
private String modifyTimeOperator = "=";
|
||||||
|
private String attrLen;
|
||||||
|
private String attrLenOperator = "=";
|
||||||
|
private String[] idList;
|
||||||
|
private String notId;
|
||||||
|
private String sarType;
|
||||||
|
private String isSearch;
|
||||||
|
private String isWarn;
|
||||||
|
}
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
package com.adc.da.search.sarStandAttrDetails.service;
|
||||||
|
|
||||||
|
import com.adc.da.search.sarStandAttrDetails.entity.SarStandAttrDetails;
|
||||||
|
import com.adc.da.search.sarStandAttrDetails.page.SarStandAttrDetailsEOPage;
|
||||||
|
import com.adc.da.sys.common.SelectionResult;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author super_liu
|
||||||
|
* @since 2021-06-01
|
||||||
|
*/
|
||||||
|
public interface ISarStandAttrDetailsSearchService extends IService<SarStandAttrDetails> {
|
||||||
|
|
||||||
|
List<SelectionResult> selectFileFieldForSel(String attrField);
|
||||||
|
|
||||||
|
List<SelectionResult> selectFileFieldForSel1(String attrField);
|
||||||
|
|
||||||
|
}
|
||||||
+39
@@ -0,0 +1,39 @@
|
|||||||
|
package com.adc.da.search.sarStandAttrDetails.service.impl;
|
||||||
|
|
||||||
|
import com.adc.da.search.sarStandAttrDetails.dao.SarStandAttrDetailsSearchDao;
|
||||||
|
import com.adc.da.search.sarStandAttrDetails.entity.SarStandAttrDetails;
|
||||||
|
import com.adc.da.search.sarStandAttrDetails.service.ISarStandAttrDetailsSearchService;
|
||||||
|
import com.adc.da.sys.common.SelectionResult;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author super_liu
|
||||||
|
* @since 2021-06-01
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SarStandAttrDetailsSearchServiceImpl extends ServiceImpl<SarStandAttrDetailsSearchDao, SarStandAttrDetails> implements ISarStandAttrDetailsSearchService {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(ISarStandAttrDetailsSearchService.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SarStandAttrDetailsSearchDao dao;
|
||||||
|
|
||||||
|
public List<SelectionResult> selectFileFieldForSel(String attrField){
|
||||||
|
return dao.selectFileFieldForSel(attrField);
|
||||||
|
}
|
||||||
|
public List<SelectionResult> selectFileFieldForSel1(String attrField){
|
||||||
|
return dao.selectFileFieldForSel1(attrField);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+25
-210
@@ -1,9 +1,8 @@
|
|||||||
package com.adc.da.search.service.impl;
|
package com.adc.da.search.service.impl;
|
||||||
|
|
||||||
import com.adc.da.person.dao.PersonSearchEODao;
|
|
||||||
import com.adc.da.search.entity.*;
|
import com.adc.da.search.entity.*;
|
||||||
import com.adc.da.search.service.SearchCenterService;
|
import com.adc.da.search.service.SearchCenterService;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.adc.da.search.util.InitStandAttrSearchUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.sf.json.JSONObject;
|
import net.sf.json.JSONObject;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -11,20 +10,14 @@ import org.elasticsearch.action.search.SearchRequestBuilder;
|
|||||||
import org.elasticsearch.action.search.SearchResponse;
|
import org.elasticsearch.action.search.SearchResponse;
|
||||||
import org.elasticsearch.action.search.SearchType;
|
import org.elasticsearch.action.search.SearchType;
|
||||||
import org.elasticsearch.client.transport.TransportClient;
|
import org.elasticsearch.client.transport.TransportClient;
|
||||||
import org.elasticsearch.common.lucene.search.function.CombineFunction;
|
|
||||||
import org.elasticsearch.common.lucene.search.function.FieldValueFactorFunction;
|
|
||||||
import org.elasticsearch.common.text.Text;
|
import org.elasticsearch.common.text.Text;
|
||||||
import org.elasticsearch.index.query.BoolQueryBuilder;
|
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||||
import org.elasticsearch.index.query.QueryBuilder;
|
import org.elasticsearch.index.query.QueryBuilder;
|
||||||
import org.elasticsearch.index.query.QueryBuilders;
|
import org.elasticsearch.index.query.QueryBuilders;
|
||||||
import org.elasticsearch.index.query.RangeQueryBuilder;
|
import org.elasticsearch.index.query.RangeQueryBuilder;
|
||||||
import org.elasticsearch.index.query.functionscore.FieldValueFactorFunctionBuilder;
|
|
||||||
import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder;
|
|
||||||
import org.elasticsearch.search.SearchHit;
|
import org.elasticsearch.search.SearchHit;
|
||||||
import org.elasticsearch.search.aggregations.Aggregation;
|
import org.elasticsearch.search.aggregations.Aggregation;
|
||||||
import org.elasticsearch.search.aggregations.AggregationBuilders;
|
import org.elasticsearch.search.aggregations.AggregationBuilders;
|
||||||
import org.elasticsearch.search.aggregations.bucket.range.Range;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.range.RangeAggregationBuilder;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
|
import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
|
||||||
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
|
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
|
||||||
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
|
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
|
||||||
@@ -34,9 +27,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import java.text.ParseException;
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -143,210 +136,32 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BoolQueryBuilder querySeniorMsg (SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder) {
|
/**
|
||||||
|
* 自动匹配动态字段条件查询 ES
|
||||||
|
* @param searchInfoEO
|
||||||
|
* @param boolQueryBuilder
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private BoolQueryBuilder querySeniorMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder) {
|
||||||
BoolQueryBuilder boolQueryBuilderMust = new BoolQueryBuilder();
|
BoolQueryBuilder boolQueryBuilderMust = new BoolQueryBuilder();
|
||||||
String advanceStr = searchInfoEO.getAdvanceSearchVOStr();
|
String sarStandAttrEOStr = searchInfoEO.getSarStandAttrEOStr();
|
||||||
List<SarAdvanceSearchVO> searchVOList = new ArrayList<>();
|
Map<String, String> sarStandAttrMap = JSONObject.fromObject(sarStandAttrEOStr);
|
||||||
if (StringUtils.isNotBlank(advanceStr)) {
|
|
||||||
searchVOList = JSONArray.parseArray(advanceStr, SarAdvanceSearchVO.class);
|
// MAP通过JAVA8新特性流过滤NULL值或对象
|
||||||
}
|
Map<String, String> collectAttrMap = sarStandAttrMap.entrySet().stream().filter((e) -> e.getValue() != null).collect(Collectors.toMap(
|
||||||
if (searchVOList != null && !searchVOList.isEmpty()) {
|
Map.Entry::getKey,
|
||||||
List<SarAdvanceSearchVO> sarAdvanceSearchVOS = new ArrayList<>();
|
Map.Entry::getValue));
|
||||||
int size = searchVOList.size();
|
|
||||||
for (SarAdvanceSearchVO searchVO1 : searchVOList) {
|
String fieldInfo = InitStandAttrSearchUtil.queryField;
|
||||||
SarAdvanceSearchVO sarAdvanceSearchVO = new SarAdvanceSearchVO();
|
List<String> fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
|
||||||
if ("XCXSSRQ".equals(searchVO1.getField())||"ZCCSSRQ".equals(searchVO1.getField())||"EOPSSRQ".equals(searchVO1.getField())){
|
|
||||||
sarAdvanceSearchVO.setField(searchVO1.getField()+"1");
|
// 动态存储属性字段 ---1
|
||||||
sarAdvanceSearchVO.setConnect("OR");
|
for (String field : fieldInfoList) {
|
||||||
sarAdvanceSearchVO.setType("like");
|
if(collectAttrMap.containsKey(field)){
|
||||||
sarAdvanceSearchVO.setValue("TBD");
|
boolQueryBuilderMust.must(QueryBuilders.fuzzyQuery(field, "*"+collectAttrMap.get(field)+"*"));
|
||||||
sarAdvanceSearchVOS.add(sarAdvanceSearchVO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
searchVOList.addAll(sarAdvanceSearchVOS);
|
|
||||||
for (SarAdvanceSearchVO searchVO : searchVOList) {
|
|
||||||
if ("stand_state".equals(searchVO.getField())){
|
|
||||||
searchVO.setType("=");
|
|
||||||
}
|
|
||||||
String field = searchVO.getField();
|
|
||||||
String value = searchVO.getValue();
|
|
||||||
if ("WFSPJS".equals(field) || "SVPPS".equals(field)){
|
|
||||||
value = value.replace(","," , ");
|
|
||||||
}
|
|
||||||
//发布时间范围
|
|
||||||
if (StringUtils.isNotBlank(searchVO.getField()) &&("issue_time".equals(searchVO.getField()) || "put_time".equals(searchVO.getField()) || "FZRQ".equals(searchVO.getField())|| "FSRQ".equals(searchVO.getField()) ||"XCXSSRQ".equals(searchVO.getField())||"ZCCSSRQ".equals(searchVO.getField())||"EOPSSRQ".equals(searchVO.getField()))) {
|
|
||||||
String fieldName = "";
|
|
||||||
fieldName = searchVO.getField();
|
|
||||||
switch (searchVO.getField()){
|
|
||||||
case "issue_time" :
|
|
||||||
// boolQueryBuilderMust.mustNot(QueryBuilders.matchQuery(field, "已实施")).must(QueryBuilders.existsQuery(field)).mustNot(QueryBuilders.matchQuery(field, "N/A")).mustNot(QueryBuilders.matchQuery(field+".keyword", " ")).mustNot(QueryBuilders.matchQuery(field+".keyword", ""));
|
|
||||||
boolQueryBuilder.should(QueryBuilders.matchQuery(field + ".keyword" , "TBD"));
|
|
||||||
fieldName = ISSUE_TIME;
|
|
||||||
break;
|
|
||||||
case "put_time" :
|
|
||||||
// boolQueryBuilderMust.mustNot(QueryBuilders.matchQuery(field, "已实施")).must(QueryBuilders.existsQuery(field)).mustNot(QueryBuilders.matchQuery(field, "N/A")).mustNot(QueryBuilders.matchQuery(field+".keyword", " ")).mustNot(QueryBuilders.matchQuery(field+".keyword", ""));
|
|
||||||
boolQueryBuilder.should(QueryBuilders.matchQuery(field + ".keyword", "TBD"));
|
|
||||||
fieldName = "put_time_data";
|
|
||||||
break;
|
|
||||||
case "XCXSSRQ" :
|
|
||||||
// boolQueryBuilderMust.mustNot(QueryBuilders.matchQuery(field, "已实施")).must(QueryBuilders.existsQuery(field)).mustNot(QueryBuilders.matchQuery(field, "N/A")).mustNot(QueryBuilders.matchQuery(field+".keyword", " ")).mustNot(QueryBuilders.matchQuery(field+".keyword", ""));
|
|
||||||
boolQueryBuilder.should(QueryBuilders.matchQuery(field + ".keyword", "TBD"));
|
|
||||||
fieldName = "XCXSSRQ_data";
|
|
||||||
break;
|
|
||||||
case "ZCCSSRQ" :
|
|
||||||
// boolQueryBuilderMust.mustNot(QueryBuilders.matchQuery(field, "已实施")).must(QueryBuilders.existsQuery(field)).mustNot(QueryBuilders.matchQuery(field, "N/A")).mustNot(QueryBuilders.matchQuery(field+".keyword", " ")).mustNot(QueryBuilders.matchQuery(field+".keyword", ""));
|
|
||||||
boolQueryBuilder.should(QueryBuilders.matchQuery(field + ".keyword", "TBD"));
|
|
||||||
fieldName = "ZCCSSRQ_data";
|
|
||||||
break;
|
|
||||||
case "EOPSSRQ" :
|
|
||||||
// boolQueryBuilderMust.mustNot(QueryBuilders.matchQuery(field, "已实施")).must(QueryBuilders.existsQuery(field)).mustNot(QueryBuilders.matchQuery(field, "N/A")).mustNot(QueryBuilders.matchQuery(field+".keyword", " ")).mustNot(QueryBuilders.matchQuery(field+".keyword", ""));
|
|
||||||
boolQueryBuilder.should(QueryBuilders.matchQuery(field + ".keyword", "TBD"));
|
|
||||||
fieldName = "EOPSSRQ_data";
|
|
||||||
break;
|
|
||||||
default :
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
Long beginTime = 0L;
|
|
||||||
Long endTime = 0L;
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
||||||
try {
|
|
||||||
beginTime = sdf.parse("1970-01-01 00:00:00").getTime();
|
|
||||||
} catch (ParseException e1) {
|
|
||||||
e1.printStackTrace();
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
endTime = sdf.parse("2999-01-01 00:00:00").getTime();
|
|
||||||
} catch (ParseException e1) {
|
|
||||||
e1.printStackTrace();
|
|
||||||
}
|
|
||||||
Long starttime = 0L;
|
|
||||||
Long endtime = 0L;
|
|
||||||
try {
|
|
||||||
starttime = sdf.parse(searchVO.getTimeSt() +" 00:00:00").getTime();
|
|
||||||
starttime--;
|
|
||||||
} catch (ParseException e) {
|
|
||||||
try {
|
|
||||||
starttime = sdf.parse("1970-01-01 00:00:00").getTime();
|
|
||||||
} catch (ParseException e1) {
|
|
||||||
e1.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
endtime = sdf.parse(searchVO.getTimeEd()+" 23:59:59").getTime();
|
|
||||||
endtime++;
|
|
||||||
} catch (ParseException e) {
|
|
||||||
try {
|
|
||||||
endtime = sdf.parse("2999-01-01 00:00:00").getTime();
|
|
||||||
} catch (ParseException e1) {
|
|
||||||
e1.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ("=".equals(searchVO.getType()) || "like".equals(searchVO.getType())) {
|
|
||||||
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(fieldName ).from(starttime).to(endtime).includeLower(true).includeUpper(true);
|
|
||||||
if ("AND".equals(searchVO.getConnect())|| StringUtils.isBlank(searchVO.getConnect())) {
|
|
||||||
// RangeQueryBuilder rangeQueryBuilder1 = QueryBuilders.rangeQuery(fieldName ).from(1L).to(starttime).includeLower(true).includeUpper(true);
|
|
||||||
// RangeQueryBuilder rangeQueryBuilder2 = QueryBuilders.rangeQuery(fieldName ).from(endtime).to(endTime).includeLower(true).includeUpper(true);
|
|
||||||
// boolQueryBuilder.mustNot(rangeQueryBuilder1);
|
|
||||||
// boolQueryBuilder.mustNot(rangeQueryBuilder2);
|
|
||||||
// boolQueryBuilder.mustNot(rangeQueryBuilder3);
|
|
||||||
boolQueryBuilderMust.must(rangeQueryBuilder);
|
|
||||||
}else{
|
|
||||||
boolQueryBuilder.should(rangeQueryBuilder);
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
if ("!=".equals(searchVO.getType())){
|
|
||||||
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(fieldName ).from(starttime).to(endtime).includeLower(true).includeUpper(true);
|
|
||||||
if ("AND".equals(searchVO.getConnect()) || StringUtils.isBlank(searchVO.getConnect())) {
|
|
||||||
boolQueryBuilder.mustNot(rangeQueryBuilder);
|
|
||||||
}else{
|
|
||||||
boolQueryBuilder.should(rangeQueryBuilder);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(field) && StringUtils.isNotBlank(value)) {
|
|
||||||
String type = searchVO.getType();
|
|
||||||
String connect = searchVO.getConnect();
|
|
||||||
if ("stand_name".equals(field) || "laws_name".equals(field)) {
|
|
||||||
field = "nameshow";
|
|
||||||
} else if ("stand_state".equals(field) || "laws_state".equals(field) || "stand_status".equals(field)) {
|
|
||||||
field = "statecode";
|
|
||||||
// }else if ("FZRQ".equals(field)){
|
|
||||||
// field = "FZRQString";
|
|
||||||
// }else if ("FSRQ".equals(field)){
|
|
||||||
// field = "FSRQString";
|
|
||||||
}
|
|
||||||
if (("FZRQString".equals(field) || "FSRQString".equals(field))){
|
|
||||||
List<String> values = new ArrayList<>(Arrays.asList(value.split("-")));
|
|
||||||
if ("=".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) {
|
|
||||||
for (String va :values){
|
|
||||||
boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(field, "*"+va+"*"));
|
|
||||||
}
|
|
||||||
} else if ("=".equals(type) && ("OR".equals(connect) || StringUtils.isBlank(connect))) {
|
|
||||||
for (String va :values){
|
|
||||||
boolQueryBuilder.should(QueryBuilders.wildcardQuery(field, "*"+va+"*"));
|
|
||||||
}
|
|
||||||
// boolQueryBuilder.should(QueryBuilders.wildcardQuery(field, "*"+value+"*"));
|
|
||||||
} else if ("!=".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) {
|
|
||||||
if ("FSRQString".equals(field)){
|
|
||||||
boolQueryBuilder.mustNot(QueryBuilders.matchQuery("FSRQDate", "*"+value.replace("-","")+"*"));
|
|
||||||
}else{
|
|
||||||
boolQueryBuilder.mustNot(QueryBuilders.matchQuery("FZRQDate", "*"+value.replace("-","")+"*"));
|
|
||||||
}
|
|
||||||
// boolQueryBuilder.mustNot(QueryBuilders.wildcardQuery(field, "*"+value+"*"));
|
|
||||||
} else if ("like".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) {
|
|
||||||
for (String va :values){
|
|
||||||
boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(field, "*"+va+"*"));
|
|
||||||
}
|
|
||||||
// boolQueryBuilder.must(QueryBuilders.wildcardQuery(field, "*"+value+"*"));
|
|
||||||
} else if ("like".equals(type) && ("OR".equals(connect) || StringUtils.isBlank(connect))) {
|
|
||||||
for (String va :values){
|
|
||||||
boolQueryBuilder.should(QueryBuilders.wildcardQuery(field, "*"+va+"*"));
|
|
||||||
}
|
|
||||||
// boolQueryBuilder.should(QueryBuilders.wildcardQuery(field, "*"+value+"*"));
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ("XCXSSRQ1".equals(searchVO.getField())||"ZCCSSRQ1".equals(searchVO.getField())||"EOPSSRQ1".equals(searchVO.getField())){
|
|
||||||
searchVO.setField(searchVO.getField().substring(0,searchVO.getField().length()-1));
|
|
||||||
field = searchVO.getField();
|
|
||||||
}
|
|
||||||
//外发审批角色的企标 等于 查询
|
|
||||||
// if("WFSPJS".equals(field) && "=".equals(type)){
|
|
||||||
// field = "WFSPJSField";
|
|
||||||
// if (StringUtils.isNotBlank(value)){
|
|
||||||
// value = value.replace(" , ","");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if("ZRBM".equals(field) && "=".equals(type)){
|
|
||||||
// field = "ZRBMField";
|
|
||||||
// if (StringUtils.isNotBlank(value)){
|
|
||||||
// value = value.replace(" , ","");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
if ("FO".equals(field)){
|
|
||||||
value = value + " ";
|
|
||||||
}
|
|
||||||
// if (StringUtils.isBlank(connect) && size > 1){
|
|
||||||
// connect = "OR";
|
|
||||||
// }
|
|
||||||
if ("=".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) {
|
|
||||||
boolQueryBuilderMust.must(QueryBuilders.termQuery(field+".keyword", value));
|
|
||||||
} else if ("=".equals(type) && ("OR".equals(connect) || StringUtils.isBlank(connect))) {
|
|
||||||
boolQueryBuilder.should(QueryBuilders.termQuery(field+".keyword", value));
|
|
||||||
} else if ("!=".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) {
|
|
||||||
// boolQueryBuilder.mustNot(QueryBuilders.termQuery(field+".keyword", value));
|
|
||||||
boolQueryBuilder.mustNot(QueryBuilders.wildcardQuery(field+".keyword", "*"+value+"*"));
|
|
||||||
} else if ("like".equals(type) && ("AND".equals(connect) || StringUtils.isBlank(connect))) {
|
|
||||||
boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(field+".keyword", "*"+value+"*"));
|
|
||||||
// boolQueryBuilder.should(QueryBuilders.wildcardQuery(field, value));
|
|
||||||
} else if ("like".equals(type) && ("OR".equals(connect) || StringUtils.isBlank(connect))) {
|
|
||||||
boolQueryBuilder.should(QueryBuilders.wildcardQuery(field+".keyword", "*"+value+"*"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boolQueryBuilder.should(boolQueryBuilderMust);
|
boolQueryBuilder.should(boolQueryBuilderMust);
|
||||||
return boolQueryBuilder;
|
return boolQueryBuilder;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,219 @@
|
|||||||
|
package com.adc.da.search.util;
|
||||||
|
|
||||||
|
import com.adc.da.search.sarStandAttrDetails.entity.SarStandAttrDetails;
|
||||||
|
import com.adc.da.search.sarStandAttrDetails.service.ISarStandAttrDetailsSearchService;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.ApplicationArguments;
|
||||||
|
import org.springframework.boot.ApplicationRunner;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 启动项目时加载标准属性信息
|
||||||
|
* @Author: super_liu
|
||||||
|
* date: 2020/9/7 10:54
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class InitStandAttrSearchUtil implements ApplicationRunner {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(InitStandAttrSearchUtil.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISarStandAttrDetailsSearchService sarStandAttrDetailsEOService;
|
||||||
|
|
||||||
|
private final static List<String> standTypeList = new ArrayList<>();
|
||||||
|
private final static List<String> lawsTypeList = new ArrayList<>();
|
||||||
|
public final static List<String> standStateList = new ArrayList<>();
|
||||||
|
static {
|
||||||
|
standTypeList.add(SarTypeEnum.STAND.getValue());
|
||||||
|
standTypeList.add(SarTypeEnum.INLAND_STAND.getValue());
|
||||||
|
standTypeList.add(SarTypeEnum.FOREIGN_STAND.getValue());
|
||||||
|
lawsTypeList.add(SarTypeEnum.LAWS.getValue());
|
||||||
|
lawsTypeList.add(SarTypeEnum.INLAND_LAWS.getValue());
|
||||||
|
lawsTypeList.add(SarTypeEnum.FOREIGN_LAWS.getValue());
|
||||||
|
standStateList.add("DRAFT");
|
||||||
|
standStateList.add("ADVICE");
|
||||||
|
standStateList.add("RADYSUBMIT");
|
||||||
|
standStateList.add("SUBMIT");
|
||||||
|
standStateList.add("FJNVYX9Q7J");
|
||||||
|
standStateList.add("ZTJJSS");
|
||||||
|
standStateList.add("TOVOID");
|
||||||
|
standStateList.add("ZTXXYX");
|
||||||
|
standStateList.add("5E5Z3CELX6");
|
||||||
|
standStateList.add("N5KLTFLNRC");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 标准属性字段信息
|
||||||
|
public static String queryField = ""; //所有属性表需要查询的字段以逗号分隔
|
||||||
|
public static String queryFieldNames = ""; //所有属性表需要查询的字段名以逗号分隔
|
||||||
|
public static List<String> queryFieldList = new ArrayList<>(); //所有属性表需要查询的字段
|
||||||
|
public static List<String> selectionFieldList = new ArrayList<>(); // 属性表下拉选项类型字段
|
||||||
|
public static List<String> fileFieldList = new ArrayList<>(); // 属性表文件类型字段
|
||||||
|
public static List<String> clobFieldList = new ArrayList<>(); // 属性表clob类型字段
|
||||||
|
public static List<String> timeFieldList = new ArrayList<>(); // 属性表日期类型字段
|
||||||
|
public static List<String> multiTimeFieldList = new ArrayList<>(); // 属性表多个日期类型字段
|
||||||
|
public static List<String> numFieldList = new ArrayList<>(); // 属性表数字类型字段
|
||||||
|
public static List<SarStandAttrDetails> standInlandAttrFieldList = new ArrayList<>(); // 全部国内标准字段属性
|
||||||
|
public static List<SarStandAttrDetails> standForeignAttrFieldList = new ArrayList<>(); // 全部海外标准字段属性
|
||||||
|
public static Map<String,String> selectFieldMap = new HashMap<>(); // 下拉属性字段及选项值
|
||||||
|
|
||||||
|
// 政策属性字段信息
|
||||||
|
public static String queryFieldLaws = ""; //所有属性表需要查询的字段以逗号分隔
|
||||||
|
public static String queryFieldNamesLaws = ""; //所有属性表需要查询的字段名以逗号分隔
|
||||||
|
public static List<String> queryFieldListLaws = new ArrayList<>(); //所有属性表需要查询的字段
|
||||||
|
public static List<String> selectionFieldListLaws = new ArrayList<>(); // 属性表下拉选项类型字段
|
||||||
|
public static List<String> fileFieldListLaws = new ArrayList<>(); // 属性表文件类型字段
|
||||||
|
public static List<String> clobFieldListLaws = new ArrayList<>(); // 属性表clob类型字段
|
||||||
|
public static List<String> timeFieldListLaws = new ArrayList<>(); // 属性表日期类型字段
|
||||||
|
public static List<String> multiTimeFieldListLaws = new ArrayList<>(); // 属性表多个日期类型字段
|
||||||
|
public static List<String> numFieldListLaws = new ArrayList<>(); // 属性表数字类型字段
|
||||||
|
public static List<SarStandAttrDetails> lawsInlandAttrFieldList = new ArrayList<>(); // 属性表数字类型字段
|
||||||
|
public static List<SarStandAttrDetails> lawsForeignAttrFieldList = new ArrayList<>(); // 全部政策字段属性
|
||||||
|
public static Map<String,String> selectFieldMapLaws = new HashMap<>(); // 下拉属性字段及选项值
|
||||||
|
|
||||||
|
// 企标属性字段信息
|
||||||
|
public static String queryFieldBuss = ""; //所有属性表需要查询的字段以逗号分隔
|
||||||
|
public static String queryFieldNamesBuss = ""; //所有属性表需要查询的字段名以逗号分隔
|
||||||
|
public static List<String> queryFieldListBuss = new ArrayList<>(); //所有属性表需要查询的字段
|
||||||
|
public static List<String> selectionFieldListBuss = new ArrayList<>(); // 属性表下拉选项类型字段
|
||||||
|
public static List<String> fileFieldListBuss = new ArrayList<>(); // 属性表文件类型字段
|
||||||
|
public static List<String> clobFieldListBuss = new ArrayList<>(); // 属性表clob类型字段
|
||||||
|
public static List<String> timeFieldListBuss = new ArrayList<>(); // 属性表日期类型字段
|
||||||
|
public static List<String> multiTimeFieldListBuss = new ArrayList<>(); // 属性表多个日期类型字段
|
||||||
|
public static List<String> numFieldListBuss = new ArrayList<>(); // 属性表数字类型字段
|
||||||
|
public static List<SarStandAttrDetails> bussAttrFieldList = new ArrayList<>(); // 全部企标字段属性
|
||||||
|
public static Map<String,String> selectFieldMapBuss = new HashMap<>(); // 下拉属性字段及选项值
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run(ApplicationArguments args) throws Exception {
|
||||||
|
logger.info("项目启动时加载-搜索中心-查询标准属性类!");
|
||||||
|
// 属性表需要查询的字段
|
||||||
|
StringBuilder fieldInfoBuilder = new StringBuilder();
|
||||||
|
StringBuilder fieldInfoBuilderLaws = new StringBuilder();
|
||||||
|
StringBuilder fieldInfoBuilderBuss = new StringBuilder();
|
||||||
|
StringBuilder fieldInfoNameBuilder = new StringBuilder();
|
||||||
|
StringBuilder fieldInfoNameBuilderLaws = new StringBuilder();
|
||||||
|
StringBuilder fieldInfoNameBuilderBuss = new StringBuilder();
|
||||||
|
QueryWrapper qw = new QueryWrapper();
|
||||||
|
qw.eq("VALID_FLAG","0");
|
||||||
|
qw.orderByAsc("ORDER_NUM");
|
||||||
|
List<SarStandAttrDetails> getDetailsList = sarStandAttrDetailsEOService.list(qw);
|
||||||
|
if (getDetailsList != null && !getDetailsList.isEmpty()) {
|
||||||
|
logger.info("项目启动时加载-搜索中心-查询标准属性类--查询到" + getDetailsList.size() + "条属性字段数据!");
|
||||||
|
for (SarStandAttrDetails detailsEO : getDetailsList) {
|
||||||
|
String sarType = detailsEO.getSarType();
|
||||||
|
String attrType = detailsEO.getAttrType();
|
||||||
|
if (standTypeList.contains(sarType)) {
|
||||||
|
if (!SarTypeEnum.FOREIGN_STAND.getValue().equals(sarType)) {
|
||||||
|
standInlandAttrFieldList.add(detailsEO);
|
||||||
|
}
|
||||||
|
if (!SarTypeEnum.INLAND_STAND.getValue().equals(sarType)) {
|
||||||
|
standForeignAttrFieldList.add(detailsEO);
|
||||||
|
}
|
||||||
|
fieldInfoBuilder.append(detailsEO.getAttrField() + ",");
|
||||||
|
fieldInfoNameBuilder.append(detailsEO.getAttrName() + ",");
|
||||||
|
queryFieldList.add(detailsEO.getAttrField());
|
||||||
|
if (StandAttrTypeEnum.SELECT_OPTION.getValue().equals(attrType) || StandAttrTypeEnum.SEL_OPTS.getValue().equals(attrType)) {
|
||||||
|
selectionFieldList.add(detailsEO.getAttrField());
|
||||||
|
selectFieldMap.put(detailsEO.getAttrField(),detailsEO.getSelVal());
|
||||||
|
} else if (StandAttrTypeEnum.FILE.getValue().equals(attrType)) {
|
||||||
|
fileFieldList.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.TEXTAREA.getValue().equals(attrType) && detailsEO.getAttrLen() >= 4000) {
|
||||||
|
clobFieldList.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.DATE_PICKER.getValue().equals(attrType)) {
|
||||||
|
timeFieldList.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.DATE_PIC_OPTS.getValue().equals(attrType)) {
|
||||||
|
multiTimeFieldList.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.INPUT_NUM.getValue().equals(attrType)) {
|
||||||
|
numFieldList.add(detailsEO.getAttrField());
|
||||||
|
}
|
||||||
|
} else if (lawsTypeList.contains(sarType)) {
|
||||||
|
if (!SarTypeEnum.FOREIGN_LAWS.getValue().equals(sarType)) {
|
||||||
|
lawsInlandAttrFieldList.add(detailsEO);
|
||||||
|
}
|
||||||
|
if (!SarTypeEnum.INLAND_LAWS.getValue().equals(sarType)) {
|
||||||
|
lawsForeignAttrFieldList.add(detailsEO);
|
||||||
|
}
|
||||||
|
fieldInfoBuilderLaws.append(detailsEO.getAttrField() + ",");
|
||||||
|
fieldInfoNameBuilderLaws.append(detailsEO.getAttrName() + ",");
|
||||||
|
queryFieldListLaws.add(detailsEO.getAttrField());
|
||||||
|
if (StandAttrTypeEnum.SELECT_OPTION.getValue().equals(attrType) || StandAttrTypeEnum.SEL_OPTS.getValue().equals(attrType)) {
|
||||||
|
selectionFieldListLaws.add(detailsEO.getAttrField());
|
||||||
|
selectFieldMapLaws.put(detailsEO.getAttrField(),detailsEO.getSelVal());
|
||||||
|
} else if (StandAttrTypeEnum.FILE.getValue().equals(attrType)) {
|
||||||
|
fileFieldListLaws.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.TEXTAREA.getValue().equals(attrType) && detailsEO.getAttrLen() >= 4000) {
|
||||||
|
clobFieldListLaws.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.DATE_PICKER.getValue().equals(attrType)) {
|
||||||
|
timeFieldListLaws.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.DATE_PIC_OPTS.getValue().equals(attrType)) {
|
||||||
|
multiTimeFieldListLaws.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.INPUT_NUM.getValue().equals(attrType)) {
|
||||||
|
numFieldListLaws.add(detailsEO.getAttrField());
|
||||||
|
}
|
||||||
|
} else if (SarTypeEnum.BUSS.getValue().equals(sarType)) {
|
||||||
|
bussAttrFieldList.add(detailsEO);
|
||||||
|
fieldInfoBuilderBuss.append(detailsEO.getAttrField() + ",");
|
||||||
|
fieldInfoNameBuilderBuss.append(detailsEO.getAttrName() + ",");
|
||||||
|
queryFieldListBuss.add(detailsEO.getAttrField());
|
||||||
|
if (StandAttrTypeEnum.SELECT_OPTION.getValue().equals(attrType) || StandAttrTypeEnum.SEL_OPTS.getValue().equals(attrType)) {
|
||||||
|
selectionFieldListBuss.add(detailsEO.getAttrField());
|
||||||
|
selectFieldMapBuss.put(detailsEO.getAttrField(),detailsEO.getSelVal());
|
||||||
|
} else if (StandAttrTypeEnum.FILE.getValue().equals(attrType)) {
|
||||||
|
fileFieldListBuss.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.TEXTAREA.getValue().equals(attrType) && detailsEO.getAttrLen() >= 4000) {
|
||||||
|
clobFieldListBuss.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.DATE_PICKER.getValue().equals(attrType)) {
|
||||||
|
timeFieldListBuss.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.DATE_PIC_OPTS.getValue().equals(attrType)) {
|
||||||
|
multiTimeFieldListBuss.add(detailsEO.getAttrField());
|
||||||
|
} else if (StandAttrTypeEnum.INPUT_NUM.getValue().equals(attrType)) {
|
||||||
|
numFieldListBuss.add(detailsEO.getAttrField());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
queryField = fieldInfoBuilder.toString();
|
||||||
|
queryFieldLaws = fieldInfoBuilderLaws.toString();
|
||||||
|
queryFieldBuss = fieldInfoBuilderBuss.toString();
|
||||||
|
if (StringUtils.isNotBlank(queryField)) {
|
||||||
|
queryField = queryField.substring(0,queryField.length()-1);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(queryFieldLaws)) {
|
||||||
|
queryFieldLaws = queryFieldLaws.substring(0,queryFieldLaws.length()-1);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(queryFieldBuss)) {
|
||||||
|
queryFieldBuss = queryFieldBuss.substring(0,queryFieldBuss.length()-1);
|
||||||
|
}
|
||||||
|
logger.info("项目启动时加载-搜索中心-查询标准属性类--查询到属性字段为:" + queryField);
|
||||||
|
logger.info("项目启动时加载-搜索中心-查询政策属性类--查询到属性字段为:" + queryFieldLaws);
|
||||||
|
logger.info("项目启动时加载-搜索中心-查询企标属性类--查询到属性字段为:" + queryFieldBuss);
|
||||||
|
queryFieldNames = fieldInfoNameBuilder.toString();
|
||||||
|
queryFieldNamesLaws = fieldInfoNameBuilderLaws.toString();
|
||||||
|
queryFieldNamesBuss = fieldInfoNameBuilderBuss.toString();
|
||||||
|
if (StringUtils.isNotBlank(queryFieldNames)) {
|
||||||
|
queryFieldNames = queryFieldNames.substring(0,queryFieldNames.length()-1);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(queryFieldNamesLaws)) {
|
||||||
|
queryFieldNamesLaws = queryFieldNamesLaws.substring(0,queryFieldNamesLaws.length()-1);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(queryFieldNamesBuss)) {
|
||||||
|
queryFieldNamesBuss = queryFieldNamesBuss.substring(0,queryFieldNamesBuss.length()-1);
|
||||||
|
}
|
||||||
|
logger.info("项目启动时加载-搜索中心-查询标准属性类--查询到属性字段名称为:" + queryFieldNames);
|
||||||
|
logger.info("项目启动时加载-搜索中心-查询政策属性类--查询到属性字段名称为:" + queryFieldNamesLaws);
|
||||||
|
logger.info("项目启动时加载-搜索中心-查询企标属性类--查询到属性字段名称为:" + queryFieldNamesBuss);
|
||||||
|
} else {
|
||||||
|
logger.error("项目启动时加载-搜索中心-查询标准属性类--未查询到属性字段数据!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package com.adc.da.search.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准法规分类
|
||||||
|
* @author gaoyan
|
||||||
|
* date 2018/09/19
|
||||||
|
*/
|
||||||
|
public enum SarTypeEnum {
|
||||||
|
|
||||||
|
INLAND_STAND("INLAND_STAND","国内标准法规"),INLAND_LAWS("INLAND_LAWS","国内政策"),
|
||||||
|
FOREIGN_STAND("FOREIGN_STAND","国外标准法规"),FOREIGN_LAWS("FOREIGN_LAWS","国外政策"),
|
||||||
|
STAND("STAND","国内外标准法规"),
|
||||||
|
LAWS("LAWS","国内外政策"),
|
||||||
|
BUSINESS("BUSINESS","企业标准"),
|
||||||
|
BUSS("BUSS","企业标准"),
|
||||||
|
SPLIT("SPLIT","标准拆分"),
|
||||||
|
ACCESS("ACCESS","标准法规清单"),
|
||||||
|
// 增加清单临时分类代码 后续通过同步按钮同步时切换类型
|
||||||
|
INLAND_STAND_ACCESS("INLAND_STAND_ACCESS","国内标准法规清单"),
|
||||||
|
FOREIGN_STAND_ACCESS("FOREIGN_STAND_ACCESS","国外标准法规清单"),
|
||||||
|
FOREIGN_LAWS_ACCESS("FOREIGN_LAWS_ACCESS","国内外政策清单"),
|
||||||
|
BUSS_ACCESS("BUSS","企业标准清单"),
|
||||||
|
PRODUCT("PRODUCT","车型/项目库"),
|
||||||
|
RECORDS("RECORDS","企标备案库");
|
||||||
|
|
||||||
|
private String value;
|
||||||
|
private String lable;
|
||||||
|
|
||||||
|
private SarTypeEnum(String value, String lable) {
|
||||||
|
this.value = value;
|
||||||
|
this.lable = lable;
|
||||||
|
}
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
public String getLable() {
|
||||||
|
return lable;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.adc.da.search.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 属性类型枚举类
|
||||||
|
* @Author: super_liu
|
||||||
|
* date: 2020/8/17 17:02
|
||||||
|
*/
|
||||||
|
public enum StandAttrTypeEnum {
|
||||||
|
|
||||||
|
INPUT_STR("INPUT_STR","输入框(字符串)"),INPUT_NUM("INPUT_NUM","输入框(数字)"),
|
||||||
|
SELECT_OPTION("SEL_OPTION","单选下拉框"),SEL_OPTS("SEL_OPTS","多选下拉框"),DATE_PICKER("DATE_PICKER","日期选择"),
|
||||||
|
DATE_PIC_OPTS("DATE_PIC_OPTS","多日期选择"),FILE("FILE","文件"),
|
||||||
|
TEXTAREA("TEXTAREA","文本框") ;
|
||||||
|
|
||||||
|
private String value;
|
||||||
|
private String lable;
|
||||||
|
|
||||||
|
private StandAttrTypeEnum(String value, String lable) {
|
||||||
|
this.value = value;
|
||||||
|
this.lable = lable;
|
||||||
|
}
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
public String getLable() {
|
||||||
|
return lable;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user