diff --git a/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java b/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java index fb4b5ca4..6fa51b04 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java +++ b/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java @@ -84,13 +84,9 @@ public class SearchCenterController extends BaseController> 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); } diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java index 66c976c8..f1845e49 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java @@ -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 sourceAsMap = searchHit.getSourceAsMap(); //解析高亮字段 Map 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 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); } diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java index b45fe99e..21240490 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java @@ -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(" "); diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/SendBussMQService.java b/adc-da-slrs/src/main/java/com/adc/da/mq/SendBussMQService.java index 0c0cf95d..f8b1108c 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/mq/SendBussMQService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/SendBussMQService.java @@ -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 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); diff --git a/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java index 73534336..81d65903 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java +++ b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java @@ -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 infoWrapper = new QueryWrapper<>(); - infoWrapper.select("ID") - .eq("STAND_SORT",sort) - .eq("STAND_NUMBER",number) - .eq("STAND_YEAR",year); + QueryWrapper infoWrapper = new QueryWrapper<>(); + infoWrapper.select("ID") + .eq("STAND_SORT",sort) + .eq("STAND_NUMBER",number) + .eq("STAND_YEAR",year); + + + List> 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> 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+"=====错误====="); } + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java new file mode 100644 index 00000000..4ca8c427 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java @@ -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 res = syncUserService.syncFotonUser(); + //存放岗位信息 + Map positionMap = new HashMap<>(); + Map useDistinct = new HashMap<>(); + + IPage iPage = tsPositionService.getPosition(new TsPosition()); + List positions=iPage.getRecords(); + if (!positions.isEmpty()) { + positions.forEach(tsPosition -> { + positionMap.put(tsPosition.getName(), tsPosition.getId()); + }); + } + for (String s : res) { + //获取到所有用户数据 + List 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 res = syncUserService.syncFotonOrg(); + + //获取到所有用户数据 + List 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 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"; + } + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java index 45513ee0..c6635b30 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java @@ -488,6 +488,7 @@ public class ImportExcelServiceImpl extends ServiceImpl { @Select("select * from ts_institution order by rand() limit 1") TsInstitution selectRand(); + + int clearData(); + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java index 688cc318..8350d452 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java @@ -42,4 +42,6 @@ public interface ITsInstitutionService extends IService { * @return */ public List getFirst(); + + int clearData(); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java index 2e3c47cd..57e64d77 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java @@ -213,4 +213,9 @@ public class TsInstitutionServiceImpl extends ServiceImpl + + + delete from ts_institution + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarPosition/TsPositionMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarPosition/TsPositionMapper.xml index 2c1b947f..59141adc 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarPosition/TsPositionMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarPosition/TsPositionMapper.xml @@ -32,7 +32,9 @@ p.name like concat(concat('%',#{name}),'%') + limit ${(current-1) * pageSize},${pageSize} + + + delete from TS_ORG +