Merge remote-tracking branch 'origin/develop_master' into develop_1

This commit is contained in:
yanyizhou
2021-09-09 09:09:12 +08:00
16 changed files with 229 additions and 49 deletions
@@ -84,13 +84,9 @@ public class SearchCenterController extends BaseController<Map<String, Object>>
if (StringUtils.isAlphanumericSpace(searchInfoEO.getSelectIndex())) {
if(elasticsearchService.isIndexExist(searchInfoEO.getSelectIndex())){
if("fulltextserch".equals(searchInfoEO.getSelectIndex()) || "fulltextserch"== searchInfoEO.getSelectIndex()){
Pattern pattern = Pattern.compile("^[a-zA-Z]+\\s[0-9a-zA-Z\\.\\(\\\\\\)\\-\\s]+$");
Pattern pattern = Pattern.compile("^[0-9a-zA-Z\\.\\(\\\\\\)\\s\\/\\-]+$");
if (null != searchInfoEO.getSelectValue() && StringUtils.isNotBlank(searchInfoEO.getSelectValue())) {
if (pattern.matcher(searchInfoEO.getSelectValue()).matches()) {
result = searchCenterService.searchSarBykeyAndHighLightNumber(searchInfoEO);
}else {
result = searchCenterService.searchSarBykeyAndHighLight(searchInfoEO);
}
result = searchCenterService.searchSarBykeyAndHighLight(searchInfoEO);
} else {
result = searchCenterService.searchSarBykeyAndHighLight(searchInfoEO);
}
@@ -156,7 +156,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("stand_code.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
if (isRqFormat(searchInfoEO.getSelectValue())) {
@@ -943,12 +943,16 @@ public class SearchCenterServiceImpl implements SearchCenterService {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
// 记录搜索记录到数据库中
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
QueryBuilder multiQueryBuilder = QueryBuilders.multiMatchQuery("");
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
"title","textContent","textItems"
).minimumShouldMatch("100%").field("title",10f);
boolQueryBuilder.must(multiQueryBuilder);
// boolQueryBuilder.should()
boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
"title"
).minimumShouldMatch("100%").field("title",10f));
boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
"textContent"
).minimumShouldMatch("100%").field("title",10f));
boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
"textItems"
).minimumShouldMatch("100%").field("title",10f));
boolQueryBuilder.should(QueryBuilders.wildcardQuery("title.keyword","*"+searchInfoEO.getSelectValue()+"*"));
}
//在结果中检索
if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword())) {
@@ -1060,16 +1064,16 @@ public class SearchCenterServiceImpl implements SearchCenterService {
BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery();
QueryBuilder multiQueryBuilder;
multiQueryBuilder = QueryBuilders.multiMatchQuery(value,
"title","textContent").minimumShouldMatch("100%").field("title",1f);
"title.keyword","textContent.keyword").minimumShouldMatch("100%").field("title.keyword",1f);
boolQueryMust.must(multiQueryBuilder);
boolQueryShould.should(QueryBuilders.wildcardQuery("title", "*"+searchInfoEO.getSelectValue()+"*").boost(10f))
.should(QueryBuilders.wildcardQuery("textContent", "*"+searchInfoEO.getSelectValue()+"*"))
boolQueryShould.should(QueryBuilders.wildcardQuery("title.keyword", "*"+searchInfoEO.getSelectValue()+"*").boost(10f))
.should(QueryBuilders.wildcardQuery("textContent.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(multiQueryBuilder);
boolQueryBuilder.should(boolQueryShould);
//在结果中检索
// boolQueryBuilder.must(multiQueryBuilder);
HighlightBuilder hiBuilder=new HighlightBuilder();
HighlightBuilder.Field highlightTitle = new HighlightBuilder.Field("title");
HighlightBuilder.Field highlightTitle = new HighlightBuilder.Field("title.keyword");
hiBuilder.field(highlightTitle);
HighlightBuilder.Field highlightUser = new HighlightBuilder.Field("textContent");
hiBuilder.field(highlightUser);
@@ -1091,7 +1095,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
Map<String, Object> sourceAsMap = searchHit.getSourceAsMap();
//解析高亮字段
Map<String, HighlightField> highlightFields = searchHit.getHighlightFields();
HighlightField field= highlightFields.get("title");
HighlightField field= highlightFields.get("title.keyword");
if(field!= null){
Text[] fragments = field.fragments();
String n_field = "";
@@ -1099,11 +1103,11 @@ public class SearchCenterServiceImpl implements SearchCenterService {
n_field += fragment;
}
//高亮标题覆盖原标题
sourceAsMap.put("title",n_field);
sourceAsMap.put("title.keyword",n_field);
}
Map<String, HighlightField> highlightFieldsnameshowStr = searchHit.getHighlightFields();
HighlightField fieldnameshowStr= highlightFieldsnameshowStr.get("textContent");
HighlightField fieldnameshowStr= highlightFieldsnameshowStr.get("textContent.keyword");
if(fieldnameshowStr!= null){
Text[] fragments = fieldnameshowStr.fragments();
String n_field = "";
@@ -1111,7 +1115,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
n_field += fragment;
}
//高亮标题覆盖原标题
sourceAsMap.put("textContent",n_field);
sourceAsMap.put("textContent.keyword",n_field);
}
result.add(sourceAsMap);
}
@@ -302,9 +302,10 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService {
contentBuilder.append("企标类别:").append(attrInfoMap.get("standSort")).append(" ");
contentBuilder.append("标准年份:").append(attrInfoMap.get("standYear")).append(" ");
contentBuilder.append("企标名称:").append(attrInfoMap.get("standName")).append(" ");
contentBuilder.append("企标英文名称:").append(attrInfoMap.get("standName")).append(" ");
contentBuilder.append("企标英文名称:").append(attrInfoMap.get("stand_en_name")).append(" ");
contentBuilder.append("文本状态:").append(attrInfoMap.get("textStatusBussName")).append(" ");
contentBuilder.append("企标实施日期:").append(attrInfoMap.get("putTime")).append(" ");
contentBuilder.append("企标发布日期:").append(attrInfoMap.get("issueTime")).append(" ");
contentBuilder.append("废止日期:").append(attrInfoMap.get("FZRQBUSSName")).append(" ");
contentBuilder.append("复审日期:").append(attrInfoMap.get("FSRQBUSSName")).append(" ");
contentBuilder.append("起草部门:").append(attrInfoMap.get("QCDWName")).append(" ");
@@ -171,17 +171,18 @@ public class SendBussMQService {
saveMap.put("validFlag","0");
saveMap.put("content",infoEO.getFileIds());
String fieldInfo = InitStandAttrUtil.queryField;
String fieldInfo = InitStandAttrUtil.queryFieldBuss;
List<String> fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
// 动态存储属性字段
for (String field : fieldInfoList) {
saveMap.put(field,attrInfoMap.getOrDefault(field,""));
String fieldValue = "";
if(infoMap.get(field) != null && StringUtils.isNotBlank(infoMap.get(field).toString())){
Object json= new JSONTokener(infoMap.get(field).toString()).nextValue();
String fieldFilter = field.toLowerCase();
if(infoMap.get(fieldFilter) != null && StringUtils.isNotBlank(infoMap.get(fieldFilter).toString())){
Object json= new JSONTokener(infoMap.get(fieldFilter).toString()).nextValue();
if(!json.toString().equals("null")){
fieldValue = infoMap.get(field).toString();
fieldValue = infoMap.get(fieldFilter).toString();
}
}
saveMap.put(field+"Name",fieldValue);
@@ -224,33 +224,42 @@ public class ScheduledJob {
//数据格式: (GB 123-2000,GB 4233434-2021,GB 423423423-2021)
if (!DTBJHStr.equals("")){
String[] DTBJHArray = DTBJHStr.split(",");
for (String DTBJH : DTBJHArray) {
String[] sortAndNumberAndYear = DTBJH.split("\\s+");
String sort = sortAndNumberAndYear[0];
try{
String[] DTBJHArray = DTBJHStr.split(",");
for (String DTBJH : DTBJHArray) {
String[] sortAndNumberAndYear = DTBJH.split("\\s+");
String sort = sortAndNumberAndYear[0];
String[] numberAndYear = sortAndNumberAndYear[1].split("\\-");
String number=numberAndYear[0];
String year=numberAndYear[1];
String[] numberAndYear = sortAndNumberAndYear[1].split("\\-");
String number=numberAndYear[0];
String year=numberAndYear[1];
QueryWrapper<SarStandardsInfo> infoWrapper = new QueryWrapper<>();
infoWrapper.select("ID")
.eq("STAND_SORT",sort)
.eq("STAND_NUMBER",number)
.eq("STAND_YEAR",year);
QueryWrapper<SarStandardsInfo> infoWrapper = new QueryWrapper<>();
infoWrapper.select("ID")
.eq("STAND_SORT",sort)
.eq("STAND_NUMBER",number)
.eq("STAND_YEAR",year);
List<Map<String, Object>> idMaps = sarStandardsInfoDao.selectMaps(infoWrapper);
if (idMaps.size()>0){
String standId = idMaps.get(0).get("ID").toString();
//如果代替标准id已存在则映射为2不存在则添加并映射为1
if (replaceIdCountMap.containsKey(standId)) {
replaceIdCountMap.replace(standId,2);
}else {
replaceIdCountMap.put(standId, 1);
}
}
List<Map<String, Object>> idMaps = sarStandardsInfoDao.selectMaps(infoWrapper);
String standId = idMaps.get(0).get("ID").toString();
//如果代替标准id已存在则映射为2不存在则添加并映射为1
if (replaceIdCountMap.containsKey(standId)) {
replaceIdCountMap.replace(standId,2);
}else {
replaceIdCountMap.put(standId, 1);
}
}catch (Exception e){
System.out.println("=====错误===="+item+"=====错误=====");
}
}
@@ -0,0 +1,145 @@
package com.adc.da.slrs.DataSync;
import com.adc.da.slrs.sarInstitution.entity.TsInstitution;
import com.adc.da.slrs.sarInstitution.service.ITsInstitutionService;
import com.adc.da.slrs.sarInstitution.service.impl.TsInstitutionServiceImpl;
import com.adc.da.slrs.sarPosition.entity.TsPosition;
import com.adc.da.slrs.sarPosition.service.ITsPositionService;
import com.adc.da.slrs.sarPosition.service.impl.TsPositionServiceImpl;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.slrs.sarUser.service.impl.TsUserServiceImpl;
import com.adc.da.sync.service.SyncUserService;
import com.adc.da.sys.dao.OrgEODao;
import com.adc.da.sys.entity.OrgEO;
import com.adc.da.sys.entity.UserOrgEO;
import com.adc.da.sys.service.IOrgEOService;
import com.adc.da.sys.service.impl.OrgEOServiceImpl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.sql.Timestamp;
import java.util.*;
@RestController
@Api(description = "|SarStandPutTime|")
@RequestMapping("/DataSync")
public class DataSyncController {
@Autowired
ITsPositionService tsPositionService;
@Autowired
ITsUserService tsUserService;
@Autowired
ITsInstitutionService tsInstitutionService;
@ApiOperation("同步用户数据")
@PostMapping("/importUserData")
public String importUserData() throws Exception {
SyncUserService syncUserService = new SyncUserService();
List<String> res = syncUserService.syncFotonUser();
//存放岗位信息
Map<String, String> positionMap = new HashMap<>();
Map<String, String> useDistinct = new HashMap<>();
IPage<TsPosition> iPage = tsPositionService.getPosition(new TsPosition());
List<TsPosition> positions=iPage.getRecords();
if (!positions.isEmpty()) {
positions.forEach(tsPosition -> {
positionMap.put(tsPosition.getName(), tsPosition.getId());
});
}
for (String s : res) {
//获取到所有用户数据
List<TsUser> tsUsers = new ArrayList<>();
JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results"));
jsonArray.forEach(object -> {
JSONObject jsonObject = JSONObject.parseObject(object.toString());
//先获取岗位以及岗位id
TsUser tsUser = new TsUser();
UserOrgEO userOrgEO = new UserOrgEO();
//设置岗位
if (null != jsonObject.getString("title")) {
if (null == positionMap.get(jsonObject.getString("title"))) {
TsPosition tsPosition = new TsPosition();
tsPosition.setId(String.valueOf(UUID.randomUUID()));
tsPosition.setName(jsonObject.getString("title"));
tsPositionService.addPosition(tsPosition);
//放入岗位的map集合中
positionMap.put(tsPosition.getName(), tsPosition.getId());
//放入类中
tsUser.setPositionName(tsPosition.getName());
tsUser.setPositionId(tsPosition.getId());
} else {
tsUser.setPositionName(jsonObject.getString("title").trim());
tsUser.setPositionId(positionMap.get(jsonObject.getString("title").trim()));
}
}
//设置其他数据
Timestamp createTime = new Timestamp(new Date().getTime());
tsUser.setState(jsonObject.getString("userStatus"));
tsUser.setUname(null!=jsonObject.getString("name")?jsonObject.getString("name"):"");
tsUser.setValidFlag("0");
tsUser.setDisableFlag("0");
tsUser.setCreationTime(createTime);
tsUser.setUserId(jsonObject.getString("userid"));
tsUser.setAccount(jsonObject.getString("userid"));
tsUser.setInstitutionId(null!=jsonObject.getString("orgNumber")?jsonObject.getString("orgNumber"):"" );
tsUser.setInstitutionName(null!=jsonObject.getString("orgName")?jsonObject.getString("orgName"):"" );
if (null == useDistinct.get(jsonObject.getString("userid"))) {
tsUsers.add(tsUser);
}
useDistinct.put(tsUser.getUserId(),tsUser.getUserId());
});
tsUserService.saveBatch(tsUsers);
}
return "1";
}
@ApiOperation("同步组织机构")
@PostMapping("/importOrgData")
public String importOrgData() throws Exception {
SyncUserService syncUserService = new SyncUserService();
List<String> res = syncUserService.syncFotonOrg();
//获取到所有用户数据
List<String> strings=new ArrayList<>();
tsInstitutionService.clearData();
for (String s : res) {
JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results"));
jsonArray.forEach(object -> {
JSONObject jsonObject = JSONObject.parseObject(object.toString());
strings.add(jsonObject.getString("parentOrgNumber"));
});
}
for (String s : res) {
List<TsInstitution> tsInstitutions = new ArrayList<>();
JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results"));
jsonArray.forEach(object -> {
JSONObject jsonObject = JSONObject.parseObject(object.toString());
TsInstitution tsInstitution=new TsInstitution();
tsInstitution.setId(jsonObject.getString("orgNumber"));
tsInstitution.setName(jsonObject.getString("orgName"));
tsInstitution.setHasChild(strings.contains(jsonObject.getString("orgNumber"))?"1":"0");
tsInstitution.setParentId(jsonObject.getString("parentOrgNumber"));
tsInstitutions.add(tsInstitution);
});
tsInstitutionService.saveBatch(tsInstitutions);
}
return "1";
}
}
@@ -488,6 +488,7 @@ public class ImportExcelServiceImpl extends ServiceImpl<ImportExcelDao, ImportDt
try {
String[] sortAndNumberAndYear = importDto.getStandId().split("\\s+");
sort = sortAndNumberAndYear[0];
String[] numberAndYear = sortAndNumberAndYear[1].split("\\-");
number=numberAndYear[0];
year=numberAndYear[1];
@@ -495,7 +496,7 @@ public class ImportExcelServiceImpl extends ServiceImpl<ImportExcelDao, ImportDt
}catch (Exception e){
System.out.println("id为"+importDto.getStandId()+"格式无法解析");
return null;
// return null;
}
SarStandardsInfo sarStandardsInfo = new SarStandardsInfo();
@@ -613,7 +614,7 @@ public class ImportExcelServiceImpl extends ServiceImpl<ImportExcelDao, ImportDt
}catch (Exception e){
System.out.println("id为"+importDto.getStandId()+"格式无法解析");
return null;
// return null;
}
SarBussionessStand sarBussionessStand = new SarBussionessStand();
@@ -59,4 +59,7 @@ public interface TsInstitutionDao extends BaseMapper<TsInstitution> {
@Select("select * from ts_institution order by rand() limit 1")
TsInstitution selectRand();
int clearData();
}
@@ -42,4 +42,6 @@ public interface ITsInstitutionService extends IService<TsInstitution> {
* @return
*/
public List<TsInstitution> getFirst();
int clearData();
}
@@ -213,4 +213,9 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
return tsInstitutions;
}
@Override
public int clearData() {
return tsInstitutionDao.clearData();
}
}
@@ -68,4 +68,8 @@
</foreach>
</insert>
<delete id="clearData">
delete from ts_institution
</delete>
</mapper>
@@ -32,7 +32,9 @@
p.name like concat(concat('%',#{name}),'%')
</if>
</where>
<if test=" null!= pageSize ">
limit ${(current-1) * pageSize},${pageSize}
</if>
</select>
<select id="pageTotal" resultType="Long">
@@ -21,7 +21,7 @@ public class SyncUserService {
public static void main(String[] args) throws Exception {
SyncUserService syncUserService=new SyncUserService();
syncUserService.syncFotonOrg();
syncUserService.syncFotonUser();
}
/**
@@ -50,7 +50,7 @@ public class SyncUserService {
json.add(rs);
JSONObject responseStr = JSON.parseObject(rs);
System.out.println(rs);
if (responseStr.containsKey("cookie")) {
try {
JSONArray entries = responseStr.getJSONArray("cookie");
@@ -162,4 +162,6 @@ public interface OrgEODao extends BaseMapper<OrgEO> {
public OrgEO getOrgParentInfoOrgId(OrgEO orgEO);
public List<OrgEO> getOrgRootTree();
int clearData();
}
@@ -1,6 +1,7 @@
package com.adc.da.sys.entity;
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
@@ -13,6 +14,7 @@ import java.util.List;
* <b>日期:</b> 2018-09-03 <br>
* <b>版权所有:<b>版权归北京卡达克数据技术中心所有。<br>
*/
@TableName(value = "ts_org")
public class OrgEO extends BaseEntity implements Serializable {
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@@ -762,6 +762,9 @@
AND parent_idS IS NOT NULL
</select>
<delete id="clearData">
delete from TS_ORG
</delete>
</mapper>