diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/ActSarItemsBussEOController.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/ActSarItemsBussEOController.java index be557b57..eebf7fb8 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/ActSarItemsBussEOController.java +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/ActSarItemsBussEOController.java @@ -66,7 +66,7 @@ public class ActSarItemsBussEOController extends BaseController { } Object issueTime = jsonObject.get("issueTime"); Object standSort = jsonObject.get("standSort"); - if(issueTime!=null && standSort!=null){ + if(issueTime!=null && standSort!=null){ String issueTimeStr =issueTime.toString(); String standSortStr = standSort.toString(); if(StringUtils.isNotBlank(issueTimeStr) && StringUtils.isNotBlank(standSortStr)){ diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsBussEOService.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsBussEOService.java index 827ebbd8..47aa3525 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsBussEOService.java +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsBussEOService.java @@ -561,17 +561,16 @@ public class ActSarItemsBussEOService { evaluation.setCreateTime(date); evaluation.setModifyTime(date); evaluations.add(evaluation); - }); } }); qualityEvaluationService.saveBatch(evaluations); //当新增完成之后进行循环校验查出流程是重新技术委员会评审、评审意见修改就根据标准id将技术委员会评审、评审意见修改的评分赋值为0 - for (QualityEvaluation qualityEvaluation :evaluations){ - if (qualityEvaluation.getProcessNode().equals("重新技术委员会评审、评审意见修改")){ - qualityEvaluationDao.updateByProcessNode(qualityEvaluation.getLawId()); - } - } +// for (QualityEvaluation qualityEvaluation :evaluations){ +// if (qualityEvaluation.getProcessNode().equals("重新技术委员会评审、评审意见修改")){ +// qualityEvaluationDao.updateByProcessNode(qualityEvaluation.getLawId()); +// } +// } } } 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 c284f93e..d5a11fb7 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 @@ -6,22 +6,20 @@ import com.adc.da.search.util.DateUtil; import com.adc.da.search.util.InitStandAttrSearchUtil; import com.adc.da.sys.dao.DicTypeEODao; import com.adc.da.sys.entity.DicTypeEO; -import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard; import com.adc.da.sys.sarMenuStandard.service.ISarMenuStandardService; +import com.adc.da.sys.sarResource.entity.SysTsResource; +import com.adc.da.sys.sarResource.service.ISysTsResourceService; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.formula.functions.T; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.action.support.master.AcknowledgedResponse; import org.elasticsearch.client.transport.TransportClient; -import org.elasticsearch.common.collect.HppcMaps; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.text.Text; import org.elasticsearch.index.query.BoolQueryBuilder; @@ -45,7 +43,6 @@ import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.lang.reflect.Field; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.regex.Matcher; @@ -61,6 +58,9 @@ public class SearchCenterServiceImpl implements SearchCenterService { @Resource private ISarMenuStandardService sarMenuStandardService; + @Resource + private ISysTsResourceService tsResourceService; + @Autowired private TransportClient transportClient; @@ -231,6 +231,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { String sortField1 = ""; String sortField2 = ""; String sortField3 = ""; + String sortField4 = ""; if("laws".equals(searchInfoEO.getSelectIndex())){ sortField1 = "lawsNumber"; sortField2 = "lawsYear"; @@ -240,18 +241,69 @@ public class SearchCenterServiceImpl implements SearchCenterService { sortField2 = "standYear"; sortField3 = "standSort.keyword"; } +// if("laws".equals(searchInfoEO.getSelectIndex())){ +// sortField1 = "lawsNumber"; +// sortField2 = "lawsYear"; +// sortField3 = "lawsType.keyword"; +// } else if("bussstand".equals(searchInfoEO.getSelectIndex())) { +// sortField1 = "putTime"; +// sortField2 = "standNumber"; +// sortField3 = "standYear"; +// sortField4 = "standSort.keyword"; +// } else if ("stand".equals(searchInfoEO.getSelectIndex())) { +// sortField1 = "SSRQ"; +// sortField2 = "standNumber"; +// sortField3 = "standYear"; +// sortField4 = "standSort.keyword"; +// } else { +// sortField1 = "standNumber"; +// sortField2 = "standYear"; +// sortField3 = "standSort.keyword"; +// } - List menuNameList = new ArrayList<>(); // 国内海外查询标准体系字段由id变为文字 +// if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) { +// ArrayList menuIdList = new ArrayList<>(); +// Collections.addAll(menuIdList,searchInfoEO.getStandSystem().split(",")); +// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); +// wrapper.in(SarMenuStandard::getId,menuIdList); +// wrapper.select(SarMenuStandard::getMenuName); +// List sarMenuStandardList = sarMenuStandardService.list(wrapper); +// menuNameList = sarMenuStandardList.stream().map(SarMenuStandard::getMenuName).collect(Collectors.toList()); +// } + + // 处理菜单名称 + List menuNameList = new ArrayList<>(); if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) { ArrayList menuIdList = new ArrayList<>(); - Collections.addAll(menuIdList,searchInfoEO.getStandSystem().split(",")); - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(SarMenuStandard::getId,menuIdList); - wrapper.select(SarMenuStandard::getMenuName); - List sarMenuStandardList = sarMenuStandardService.list(wrapper); - menuNameList = sarMenuStandardList.stream().map(SarMenuStandard::getMenuName).collect(Collectors.toList()); + Collections.addAll(menuIdList, searchInfoEO.getStandSystem().split(",")); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(SysTsResource::getId, menuIdList); + wrapper.select(SysTsResource::getMenuName); + List tsResourceList = tsResourceService.list(wrapper); + List tempList = tsResourceList.stream().map(SysTsResource::getMenuName).collect(Collectors.toList()); + if ("bussstand".equals(searchInfoEO.getSelectIndex())) { + // 和ES中的类别对应 + for (String menuName : tempList) { + menuNameList.add(getReplaceStandSortStr(menuName)); + } + } else if ("stand".equals(searchInfoEO.getSelectIndex())) { + if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) { + // 使用正则表达式提取括号内的内容 + Pattern pattern = Pattern.compile("(([^()]+))"); + for (String menuName : tempList) { + Matcher matcher = pattern.matcher(menuName); + if (matcher.find()) { + String contentInBrackets = matcher.group(1); + menuNameList.add(contentInBrackets); + } else { + menuNameList.add(menuName); + } + } + } + } } + searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex()) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .addSort(new ScoreSortBuilder().order(SortOrder.DESC)) @@ -353,9 +405,9 @@ public class SearchCenterServiceImpl implements SearchCenterService { boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*")); } } - if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*")); - } +// if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) { +// boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*")); +// } if (StringUtils.isNotBlank(searchInfoEO.getLawsSyqy())) { boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsSyqy.keyword", "*"+searchInfoEO.getLawsSyqy()+"*")); @@ -366,21 +418,39 @@ public class SearchCenterServiceImpl implements SearchCenterService { } boolQueryBuilder.must(boolQueryShould); }else { +// if (!menuNameList.isEmpty()) { +// menuNameList.forEach(each -> { +// if ("stand".equals(searchInfoEO.getSelectIndex())) { +// boolQueryBuilder.must(QueryBuilders.matchQuery("standSystem","*"+each+"*")); +// }else if ("bussstand".equals(searchInfoEO.getSelectIndex())) { +// boolQueryBuilder.must(QueryBuilders.matchQuery("TXLBBUSS",each)); +// } +// }); +// } + if (!menuNameList.isEmpty()) { - menuNameList.forEach(each -> { - if ("stand".equals(searchInfoEO.getSelectIndex())) { - boolQueryBuilder.must(QueryBuilders.matchQuery("standSystem","*"+each+"*")); - }else if ("bussstand".equals(searchInfoEO.getSelectIndex())) { - boolQueryBuilder.must(QueryBuilders.matchQuery("TXLBBUSS",each)); - } - }); + menuNameList.forEach(each -> boolQueryBuilder.must(QueryBuilders.matchQuery("standSort","*"+each+"*"))); } if ("stand".equals(searchInfoEO.getSelectIndex()) && StringUtils.isNotBlank(searchInfoEO.getStandType())) { boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*")); } boolQueryBuilder.must(boolQueryShould); - } + } + if (StringUtils.isNotBlank(searchInfoEO.getTextStatusBuss())) { + if (searchInfoEO.getSelectIndex().equals("bussstand")) { + if ("现行有效".equals(searchInfoEO.getTextStatusBuss())) { + boolQueryBuilder.must(QueryBuilders.termQuery("textStatusBuss", "9z741h2m3j")).boost(1009f); + } + } + } + if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) { + if (searchInfoEO.getSelectIndex().equals("stand")) { + if ("现行有效".equals(searchInfoEO.getTextStatus())) { + boolQueryBuilder.must(QueryBuilders.termQuery("textStatus", "vsaga7nwub")).boost(1009f); + } + } + } searchRequestBuilder.setQuery(boolQueryBuilder).setTrackTotalHits(true); // 获取查询到的结果 @@ -2207,6 +2277,48 @@ public class SearchCenterServiceImpl implements SearchCenterService { log.info(response.getHits().toString()); } + + + public String getReplaceStandSortStr(String standSort){ + switch (standSort){ + case "A类标准(技术条件)": + return "Q/FT A"; + case "B类标准(技术基础)": + return "Q/FT B"; + case "C类标准(产品标准)": + return "Q/FT C"; + case "E类标准(发动机)": + return "Q/FT E"; + case " F类标准(仿真分析)": + return "Q/FT F"; + case "G类标准": + return "Q/FT G"; + case "M类标准(工程机械)": + return "Q/FT M"; + case "P类标准(工艺工装)": + return "Q/FT P"; + case "Q类标准(质量评审)": + return "Q/FT Q"; + case "T类标准(试验标准)": + return "Q/FT T"; + case "R类标准(设计规范)": + return "Q/FT R"; + case "V类标准(评价标准)": + return "Q/FT V"; + case "X类标准(出口车)": + return "Q/FT X"; + case "Z类标准(指导性技术文件)": + return "Q/FT Z"; + case "S类标准(产品试制标准)": + return "Q/FT S"; + case "Y类标准(标杆研究标准)": + return "Q/FT Y"; + case "参考标准": + return "FT"; + default: + return "其他企业标准"; + } + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledSync.java b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledSync.java index 276d5349..61a0c4a1 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledSync.java +++ b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledSync.java @@ -31,13 +31,25 @@ public class ScheduledSync { private boolean isNotScheduled; //是否开启定时器 //每天凌晨两点执行 +// @Scheduled(cron="0 0 2 * * ?") +// @Async +// public void syncSchedulingTasks() { +// if(isNotScheduled){ +// log.info("======================================开始同步基础数据========================================"); +// iDataSyncService.orgDataSync(); //时间短 +// iDataSyncService.dataSync(); //时间长 +// log.info("======================================结束同步基础数据========================================"); +// } +// } + + //每天凌晨两点执行,改为全量同步 @Scheduled(cron="0 0 2 * * ?") @Async public void syncSchedulingTasks() { if(isNotScheduled){ log.info("======================================开始同步基础数据========================================"); - iDataSyncService.orgDataSync(); //时间短 - iDataSyncService.dataSync(); //时间长 + iDataSyncService.orgDataSync3(); //时间短 + iDataSyncService.dataSync3(); //时间长 log.info("======================================结束同步基础数据========================================"); } } 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 index c117d5bf..29f8bcd0 100644 --- 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 @@ -47,12 +47,24 @@ public class DataSyncController { return iDataSyncService.dataSync2(chuo); } + @ApiOperation("同步用户数据3,不带时间戳,全量同步") + @PostMapping("/importUserData3") + public String importUserData3() throws Exception { + return iDataSyncService.dataSync3(); + } + @ApiOperation("同步组织机构") @PostMapping("/importOrgData") public String importOrgData() throws Exception { return iDataSyncService.orgDataSync2(); } + @ApiOperation("同步组织机构,改成全量同步") + @PostMapping("/importOrgData3") + public String importOrgData3() throws Exception { + return iDataSyncService.orgDataSync3(); + } + @ApiOperation("同步组织机构,添加参数") @PostMapping("/updateByOrgs") public String updateByOrgs() throws Exception { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/IDataSyncService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/IDataSyncService.java index 3b1c3942..6ce35a64 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/IDataSyncService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/IDataSyncService.java @@ -8,10 +8,14 @@ public interface IDataSyncService { public String dataSync(); public String dataSync2(Long chuo); + + public String dataSync3(); // 定时增量同步 public String orgDataSync(); - // 手动全量同步 + public String orgDataSync2(); + // 全量同步 + public String orgDataSync3(); public String updateByOrgs(); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java index 9a852a50..3ef873b1 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java @@ -469,6 +469,115 @@ public class DataSyncServiceImpl implements IDataSyncService { } + + /** + * 同步人员数据,去掉时间戳 版本 + * @return + */ + @Override + @Transactional(rollbackFor = {RuntimeException.class,Exception.class}) + public String dataSync3(){ + try{ + SyncUserService syncUserService = new SyncUserService(); + List res = syncUserService.syncFotonUser3(); + if(res!=null && !res.isEmpty()){ + res.forEach(each -> logger.info("同步人员数据:"+each)); + //存放岗位信息 + Map positionMap = new HashMap<>(); + TsPosition position = new TsPosition(); + position.setCurrent(1); + position.setPageSize(100000); + IPage iPage = tsPositionService.getPosition(position); + List positions=iPage.getRecords(); + if (!positions.isEmpty()) { + positions.forEach(tsPosition -> { + positionMap.put(tsPosition.getName(), tsPosition.getId()); + }); + } + List addUserList = new ArrayList<>(); + List upUserList = new ArrayList<>(); + for (String s : res) { + JSONObject userData = JSONObject.parseObject(s); + if(userData.containsKey("results")){ + JSONArray jsonArray = userData.getJSONArray("results"); + jsonArray.forEach(object -> { + JSONObject jsonObject = JSONObject.parseObject(object.toString()); + String userid = jsonObject.getString("userid"); + TsUser userEO = tsUserService.getById(userid); + String userState = ""; + if(userEO != null){ + userState = "UPDATE"; + }else{ + userState = "ADD"; + userEO = new TsUser(); + } + //先获取岗位以及岗位id + //设置岗位 + 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()); + //放入类中 + userEO.setPositionName(tsPosition.getName()); + userEO.setPositionId(tsPosition.getId()); + } else { + userEO.setPositionName(jsonObject.getString("title").trim()); + userEO.setPositionId(positionMap.get(jsonObject.getString("title").trim())); + } + }else{ + userEO.setPositionId(null); + userEO.setPositionName(null); + } + //设置其他数据 + Timestamp createTime = new Timestamp(new Date().getTime()); + userEO.setState(jsonObject.getString("userStatus")); + userEO.setUname(null!=jsonObject.getString("name")?jsonObject.getString("name"):""); + userEO.setCreationTime(createTime); + userEO.setUserId(jsonObject.getString("userid")); + userEO.setAccount(jsonObject.getString("userid")); + userEO.setInstitutionId(null!=jsonObject.getString("orgNumber")?jsonObject.getString("orgNumber"):"" ); + userEO.setInstitutionName(null!=jsonObject.getString("orgName")?jsonObject.getString("orgName"):"" ); + //2022-05-23:用户同步增加状态标识,将停用的用户过滤掉 + if("1".equals(jsonObject.getString("userStatus"))){ + userEO.setValidFlag(ValidFlagEnum.VALID_TRUE.getValue()+""); + userEO.setDisableFlag(ValidFlagEnum.VALID_TRUE.getValue()+""); + }else{ + userEO.setValidFlag(ValidFlagEnum.VALID_FALSE.getValue()+""); + userEO.setDisableFlag(ValidFlagEnum.VALID_FALSE.getValue()+""); + } + if("ADD".equals(userState)){ + addUserList.add(userEO); + }else { + upUserList.add(userEO); + } + }); + } + } + if(!addUserList.isEmpty()){ + logger.debug("本次新增的用户为:"+JSONObject.toJSONString(addUserList)); + tsUserService.saveBatch(addUserList); + } + if(!upUserList.isEmpty()){ + logger.debug("本次更新的用户为:"+JSONObject.toJSONString(upUserList)); + tsUserService.updateBatchById(upUserList); + } + }else{ + logger.info("本次获取用户的数据为空,原因有2种:1、没有同步数据 2、请求接口报错"); + } + }catch(Exception e){ + logger.error(e.getMessage(),e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + return "1"; + + } + + // 增量同步部门数据 @Transactional(rollbackFor = {RuntimeException.class,Exception.class}) public String orgDataSync(){ @@ -655,6 +764,101 @@ public class DataSyncServiceImpl implements IDataSyncService { return "1"; } + + // 手动全量同步部门信息 + @Override + @Transactional(rollbackFor = {RuntimeException.class,Exception.class}) + public String orgDataSync3(){ + try{ + SyncUserService syncUserService = new SyncUserService(); + List res = syncUserService.syncFotonOrg3(); + if(res!=null && !res.isEmpty()){ + res.forEach(each -> logger.info("同步部门数据:"+each)); + //获取到所有用户数据 + 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")); + }); + } + List allTsInstitutionList = tsInstitutionService.list(); + List addTsInstitutionList = new ArrayList<>(); + List updateTsInstitutionList = new ArrayList<>(); + List delTsInstitutionList = new ArrayList<>(); + Set syncAllIdList = new HashSet<>(); + for (String s : res) { + JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results")); + if(jsonArray!=null){ + 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")); + //部门为"null"的数据不保存 + if (!"null".equals(jsonObject.getString("orgName"))){ + TsInstitution institution = tsInstitutionService.getById(tsInstitution.getId()); + if(institution!=null){ + updateTsInstitutionList.add(tsInstitution); + }else{ + addTsInstitutionList.add(tsInstitution); + } + syncAllIdList.add(tsInstitution.getId()); + } + }); + } + } + //遍历出来需要删除的数据 + for(TsInstitution data :allTsInstitutionList){ + if(!syncAllIdList.contains(data.getId())){ + delTsInstitutionList.add(data); + } + } + //需要新增的数据 + if(!addTsInstitutionList.isEmpty()){ + logger.debug("本次新增的组织机构为:"+JSONObject.toJSONString(addTsInstitutionList)); + tsInstitutionService.saveBatch(addTsInstitutionList); + } + //需要更新的数据 + if(!updateTsInstitutionList.isEmpty()){ + logger.debug("本次更新的组织机构为:"+JSONObject.toJSONString(updateTsInstitutionList)); + tsInstitutionService.updateBatchById(updateTsInstitutionList); + } + //需要删除的数据 + // 先行注释,会删除所有部门 + if(!delTsInstitutionList.isEmpty()){ + logger.debug("本次删除的组织机构为:"+JSONObject.toJSONString(delTsInstitutionList)); + List delIdList = new ArrayList<>(); + for(TsInstitution data : delTsInstitutionList){ + delIdList.add(data.getId()); + } + tsInstitutionService.removeByIds(delIdList); + } + //全部部门 + List allTsInstitutionListForPids = new ArrayList<>(addTsInstitutionList); + allTsInstitutionListForPids.addAll(updateTsInstitutionList); + for (TsInstitution tsInstitution : allTsInstitutionListForPids){ + List parentIds = new ArrayList<>(); + getParentTaxCompanyIds(allTsInstitutionListForPids, tsInstitution.getId(), parentIds); + tsInstitution.setParentIds(String.join(",",parentIds)); + } + if (! allTsInstitutionListForPids.isEmpty()) { + tsInstitutionService.updateBatchById(allTsInstitutionListForPids); + } + }else{ + logger.info("本次获取组织机构的数据为空,原因有2种:1、没有同步数据 2、请求接口报错"); + } + }catch(Exception e){ + logger.error(e.getMessage(),e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + return "1"; + } + public String updateByOrgs(){ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.ne("id",""); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/controller/NewsFeedController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/controller/NewsFeedController.java index 942e81fc..004ac62e 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/controller/NewsFeedController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/controller/NewsFeedController.java @@ -70,17 +70,6 @@ public class NewsFeedController extends BaseController { } queryWrapper.orderByDesc("RENEW_TIME"); IPage newsFeedList = newsFeedService.page(iPage,queryWrapper); - // 标准名称或标准编号后三天之内直接显示(new),修改标准名称 - List records = newsFeedList.getRecords(); - for (NewsFeed record : records) { - LocalDate localDate = LocalDate.now().plusDays(-3); - Instant instant = localDate.atTime(LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant(); - Date date = Date.from(instant); - if (record.getRenewTime().compareTo(date) >= 0) { - record.setStandardName(record.getStandardName() + "(new)"); - } - } - newsFeedList.setRecords(records); return Result.success(newsFeedList); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/controller/EsRevisePlanController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/controller/EsRevisePlanController.java index 02168023..f10d5d5d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/controller/EsRevisePlanController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/controller/EsRevisePlanController.java @@ -238,6 +238,12 @@ public class EsRevisePlanController extends BaseController { return Result.success(iEsRevisePlanService.modPlanByState(esRevisePlan)); } +// @ApiOperation(value = "编辑企标计划-企标技术更新计划状态-计算质量评分") +// @PostMapping("modPlanByStateAndScore") +// public ResponseMessage modPlanByStateAndScore(EsRevisePlan esRevisePlan){ +// return Result.success(iEsRevisePlanService.modPlanByStateAndScore(esRevisePlan)); +// } + @ApiOperation(value = "编辑企标计划-流程") @PostMapping("modPlanByProcess") public ResponseMessage modPlanByProcess(@RequestBody EsRevisePlan esRevisePlan){ diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/entity/EsRevisePlan.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/entity/EsRevisePlan.java index 76747d32..d05a036e 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/entity/EsRevisePlan.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/entity/EsRevisePlan.java @@ -62,7 +62,6 @@ public class EsRevisePlan extends BasePage { @TableField(exist = false) private String standNumber; @ApiModelProperty(value = "质量评分") - @TableField(exist = false) private Double score; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/service/IEsRevisePlanService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/service/IEsRevisePlanService.java index 671ff8c2..edbcf341 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/service/IEsRevisePlanService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/service/IEsRevisePlanService.java @@ -37,4 +37,5 @@ public interface IEsRevisePlanService extends IService { List batchToDoTasks(String json); +// String modPlanByStateAndScore(EsRevisePlan esRevisePlan); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/service/impl/EsRevisePlanServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/service/impl/EsRevisePlanServiceImpl.java index 2a2fa022..b3dd0bb7 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/service/impl/EsRevisePlanServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/esRevisePlan/service/impl/EsRevisePlanServiceImpl.java @@ -20,7 +20,9 @@ import com.adc.da.sys.entity.UserEO; import com.adc.da.util.UUIDUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.gson.JsonObject; import org.apache.commons.lang3.StringUtils; @@ -59,7 +61,6 @@ public class EsRevisePlanServiceImpl extends ServiceImpl esRevisePlans = esRevisePlanDao.queryAll(esRevisePlan); // 获取质量评分 - NumberFormat nf = NumberFormat.getNumberInstance(); - nf.setMaximumFractionDigits(2); - nf.setRoundingMode(RoundingMode.UP); - for (EsRevisePlan revisePlan : esRevisePlans) { - if (StringUtils.isNotBlank(revisePlan.getStandId())) { - Map scoreMap = qualityEvaluationService.getScore(revisePlan.getStandId()); - String quality = nf.format(scoreMap.get("quality")); - revisePlan.setScore(Double.valueOf(quality)); +// NumberFormat nf = NumberFormat.getNumberInstance(); +// nf.setMaximumFractionDigits(2); +// nf.setRoundingMode(RoundingMode.UP); + if (esRevisePlan.getScore() == null){ + for (EsRevisePlan revisePlan : esRevisePlans) { + if (StringUtils.isNotBlank(revisePlan.getStandId())) { + Map score = qualityEvaluationService.getScore(revisePlan.getStandId()); + revisePlan.setScore(score.get("finalScore")); + } } } return esRevisePlans; @@ -280,4 +282,18 @@ public class EsRevisePlanServiceImpl extends ServiceImpl wrapper = new LambdaUpdateWrapper<>(); +// wrapper.eq(EsRevisePlan::getStandId, esRevisePlan.getStandId()); +// wrapper.set(EsRevisePlan::getScore, score.get("quality")); +// update(wrapper); +// return "修改成功"; +// } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/impl/SarBussStandSnServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/impl/SarBussStandSnServiceImpl.java index 19b9bebb..f9122b15 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/impl/SarBussStandSnServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/impl/SarBussStandSnServiceImpl.java @@ -4,11 +4,14 @@ import com.adc.da.slrs.sarBussStandSn.entity.SarBussStandSn; import com.adc.da.slrs.sarBussStandSn.dao.SarBussStandSnDao; import com.adc.da.slrs.sarBussStandSn.service.ISarBussStandSnService; import com.adc.da.slrs.sarBussionessStand.service.ISarBussionessStandService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -25,6 +28,8 @@ import java.util.Date; @Service public class SarBussStandSnServiceImpl extends ServiceImpl implements ISarBussStandSnService { + private static final Logger logger = LoggerFactory.getLogger(SarBussStandSnServiceImpl.class); + @Autowired private ISarBussStandSnService iSarBussStandSnService; @@ -33,10 +38,12 @@ public class SarBussStandSnServiceImpl extends ServiceImpl qw = new QueryWrapper(); - qw.eq("STAND_SORT",standSort); - qw.eq("STAND_SN",standSn); - qw.and(wrapper -> wrapper.ne("TASK_ID",taskId).or().isNull("TASK_ID")); + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(SarBussStandSn::getStandSort,standSort); + qw.eq(SarBussStandSn::getStandSn,standSn); + qw.eq(SarBussStandSn::getUseStatus,"yes"); + qw.eq(SarBussStandSn::getValidFlag,"0"); + qw.and(wrapper -> wrapper.ne(SarBussStandSn::getTaskId,taskId).or().isNull(SarBussStandSn::getTaskId)); int count = iSarBussStandSnService.count(qw); QueryWrapper qw2 = new QueryWrapper(); qw2.eq("STAND_SORT",standSort); @@ -59,6 +66,7 @@ public class SarBussStandSnServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); wrapper.eq("REPLACE(MENU_NAME,' ','')",value.trim()); wrapper.like("PARENT_IDS","aaaaaaaaaaaaaaaaaaaaaa"); List list = iSarMenuStandardService.list(wrapper); @@ -5213,4 +5224,28 @@ public class SarBussionessStandServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SarMenuStandard::getMenuName, nodeName); + SarMenuStandard node = sarMenuStandardService.list(wrapper).get(0); // 根据 txlbBuss 查询节点 + if (node == null) { + return nodeName; // 未找到节点,返回空路径 + } + if (StringUtils.isBlank(node.getParentId())) { + return nodeName; + } + SarMenuStandard sarMenuStandard = sarMenuStandardService.selectMenuById(node.getParentId()); + String parentNodePath = getParentNodePathRecursive(sarMenuStandard.getMenuName()); // 递归获取父节点路径 + if (parentNodePath.isEmpty()) { + return nodeName; // 如果父节点路径为空,直接返回当前节点的 txlbBuss + } else { + return parentNodePath + "/" + nodeName; // 否则,拼接当前节点的 txlbBuss 到父节点路径 + } + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarEnterpriseStandardEvaluation/dao/QualityEvaluationDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarEnterpriseStandardEvaluation/dao/QualityEvaluationDao.java index 5de64e1d..c4b39c80 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarEnterpriseStandardEvaluation/dao/QualityEvaluationDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarEnterpriseStandardEvaluation/dao/QualityEvaluationDao.java @@ -37,6 +37,8 @@ public interface QualityEvaluationDao extends BaseMapper { List selectBZSH(@Param("node") String node,@Param("lawId") String lawId); + List selectDTPJ(@Param("lawId") String lawId); + void updateByProcessNode(@Param("lawId") String lawId); @Select("select * from quality_evaluation") diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarEnterpriseStandardEvaluation/service/impl/QualityEvaluationServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarEnterpriseStandardEvaluation/service/impl/QualityEvaluationServiceImpl.java index 56956419..e4ebcdce 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarEnterpriseStandardEvaluation/service/impl/QualityEvaluationServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarEnterpriseStandardEvaluation/service/impl/QualityEvaluationServiceImpl.java @@ -20,6 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.PipedReader; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.NumberFormat; import java.util.*; import java.util.stream.Collector; import java.util.stream.Collectors; @@ -61,6 +64,7 @@ public class QualityEvaluationServiceImpl extends ServiceImpl qw = new QueryWrapper(); qw.eq("law_id",form.getLawId()); + qw.eq("user_id",form.getUserId()); qw.eq("evaluation_type","dynamic"); List list = this.baseMapper.selectList(qw); @@ -194,52 +198,58 @@ public class QualityEvaluationServiceImpl extends ServiceImpl countZQYJList = qualityEvaluationDao.selectCountZQYJ(qualityEvaluations.getProcessNode(), qualityEvaluations.getLawId()); - if(!countZQYJList.isEmpty()){ - countZQYJStr = countZQYJList.size(); - } - } - - if("技术委员会评审、评审意见修改".equals(qualityEvaluations.getProcessNode())) { - List countJSWYList = qualityEvaluationDao.selectCountJSWY(qualityEvaluations.getProcessNode(), qualityEvaluations.getLawId()); - if(!countJSWYList.isEmpty()){ - countJSWYStr = countJSWYList.size(); - } - } - if("重新技术委员会评审、评审意见修改".equals(qualityEvaluations.getProcessNode())) { - List countCXJSWYList = qualityEvaluationDao.selectCXJSWY(qualityEvaluations.getProcessNode(), qualityEvaluations.getLawId()); - if(!countCXJSWYList.isEmpty()){ - countCXJSWYStr = countCXJSWYList.size(); - } - } - if("标准化复审".equals(qualityEvaluations.getProcessNode())) { - List countBZHFSList = qualityEvaluationDao.selectBZHFS(qualityEvaluations.getProcessNode(), qualityEvaluations.getLawId()); - if(!countBZHFSList.isEmpty()){ - countBZHFSStr = countBZHFSList.size(); - } - } - if("标准法规部高级经理审核".equals(qualityEvaluations.getProcessNode())) { - List countBZSHList = qualityEvaluationDao.selectBZSH(qualityEvaluations.getProcessNode(), qualityEvaluations.getLawId()); - if(!countBZSHList.isEmpty()){ - countBZSHStr = countBZSHList.size(); - } - } + Integer countDTPJStr = null; + if (!list.isEmpty()) { + List countZQYJList = qualityEvaluationDao.selectCountZQYJ("征求意见", lawId); + if (!countZQYJList.isEmpty()) { + countZQYJStr = countZQYJList.size(); } + + List countJSWYList = qualityEvaluationDao.selectCountJSWY("技术委员会评审、评审意见修改", lawId); + if (!countJSWYList.isEmpty()) { + countJSWYStr = countJSWYList.size(); + } + List countCXJSWYList = qualityEvaluationDao.selectCXJSWY("重新技术委员会评审、评审意见修改", lawId); + if (!countCXJSWYList.isEmpty()) { + countCXJSWYStr = countCXJSWYList.size(); + } + List countBZHFSList = qualityEvaluationDao.selectBZHFS("标准化复审", lawId); + if (!countBZHFSList.isEmpty()) { + countBZHFSStr = countBZHFSList.size(); + } + List countBZSHList = qualityEvaluationDao.selectBZSH("标准法规部高级经理审核", lawId); + if (!countBZSHList.isEmpty()) { + countBZSHStr = countBZSHList.size(); + } + List countDTPJList = qualityEvaluationDao.selectDTPJ(lawId); + if (!countDTPJList.isEmpty()) { + countDTPJStr = countDTPJList.size(); + } +// } + final Integer countZQYJ = countZQYJStr; final Integer countJSWY = countJSWYStr; final Integer countCXJSWY = countCXJSWYStr; final Integer countBZHFS = countBZHFSStr; final Integer countBZSH = countBZSHStr; + final Integer countDTPJ = countDTPJStr; HashMap result = new HashMap<>(); result.put("dynamic",0.0); result.put("quality",0.0); + if (list.size() > 0) { + // 如果存在 技术委员会评审、评审意见修改 节点 和 重新技术委员会评审、评审意见修改 节点,则仅计算 重新技术委员会评审、评审意见修改 + List collect = list.stream().filter(item -> item.getProcessNode() != null + && "重新技术委员会评审、评审意见修改".equals(item.getProcessNode())).collect(Collectors.toList()); + if (collect.size()>0) { + List collect1 = list.stream().filter(item -> item.getProcessNode() != null + && "技术委员会评审、评审意见修改".equals(item.getProcessNode())).collect(Collectors.toList()); + list.removeAll(collect1); + } + } /** * 同一节点为多人评价时,需要取多人评价的平均分用以计算最终得分。 * 各环节评分权重分别设置为30%、40%、30%, @@ -249,7 +259,7 @@ public class QualityEvaluationServiceImpl extends ServiceImpl{ - Double score; + double score; String value; if (item.getProcessNode()==null){ value=""; @@ -272,12 +282,21 @@ public class QualityEvaluationServiceImpl extends ServiceImpl" + smalltext + ""); diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/esRevisePlan/EsRevisePlanMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/esRevisePlan/EsRevisePlanMapper.xml index b0a5e6ad..8b261e49 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/esRevisePlan/EsRevisePlanMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/esRevisePlan/EsRevisePlanMapper.xml @@ -70,6 +70,7 @@ + @@ -147,6 +148,7 @@ es_revise_plan.technologic, es_revise_plan.buss_sort, es_revise_plan.LXD, + es_revise_plan.score, sar_bussioness_stand.STAND_CODE as rqbName, sar_bussioness_stand.STAND_SORT as standType, (select group_concat(ts_institution.name order by ts_institution.name) from ts_institution where find_in_set(ts_institution.id,unit) ORDER BY find_in_set(ts_institution.id,unit)) as unitName, @@ -219,6 +221,7 @@ es_revise_plan.technologic, es_revise_plan.buss_sort, es_revise_plan.LXD, + es_revise_plan.score, sar_bussioness_stand.STAND_CODE as rqbName, sar_bussioness_stand.STAND_SORT as standType, sar_bussioness_stand.stand_number as standNum, @@ -301,6 +304,7 @@ es_revise_plan.technologic, es_revise_plan.buss_sort, es_revise_plan.LXD, + es_revise_plan.score, sar_bussioness_stand.STAND_CODE as rqbName, sar_bussioness_stand.STAND_SORT as standType, (select group_concat(ts_institution.name order by ts_institution.name) from ts_institution where find_in_set(ts_institution.id,unit) ORDER BY find_in_set(ts_institution.id,unit)) as unitName, @@ -544,6 +548,7 @@ es_revise_plan.technologic, es_revise_plan.buss_sort, es_revise_plan.LXD, + es_revise_plan.score, sar_bussioness_stand.STAND_CODE as rqbName, sar_bussioness_stand.STAND_SORT as standType, (select group_concat(ts_institution.name order by ts_institution.name) from ts_institution where find_in_set(ts_institution.id,unit) ORDER BY find_in_set(ts_institution.id,unit)) as unitName, diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarEnterpriseStandardEvalution/QualityEvaluationMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarEnterpriseStandardEvalution/QualityEvaluationMapper.xml index 337d9fcd..7a33ee29 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarEnterpriseStandardEvalution/QualityEvaluationMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarEnterpriseStandardEvalution/QualityEvaluationMapper.xml @@ -124,4 +124,14 @@ and process_node = '标准法规部高级经理审核' group by user_id + diff --git a/adc-da-sys/src/main/java/com/adc/da/sync/service/SyncUserService.java b/adc-da-sys/src/main/java/com/adc/da/sync/service/SyncUserService.java index 32754671..f6ca0b93 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sync/service/SyncUserService.java +++ b/adc-da-sys/src/main/java/com/adc/da/sync/service/SyncUserService.java @@ -84,10 +84,10 @@ public class SyncUserService { // 用户参数 params.put("filter", "(userid=*)"); params.put("basedn", "ou=People,o=foton.com.cn,o=isp"); - System.out.println("RequestBody:" + params.toString()); + log.info("RequestBody:" + params.toString()); // 用户测试 String rs = util.getResponseFromServer("http://idmsync.foton.com.cn/rest/users/getUserList", params); - log.debug("远程调用同步的员工数据:"+rs); + log.info("远程调用同步的员工数据:"+rs); JSONObject responseStr = JSON.parseObject(rs); if(responseStr.containsKey("status") && responseStr.getBoolean("status")){ json.add(rs); @@ -114,6 +114,57 @@ public class SyncUserService { return json; } + /** + * 去掉时间戳,其他与syncFotonUser2相同 + * @return + * @throws Exception + */ + public List syncFotonUser3()throws Exception{ + String appuser = "app_slrs"; + String appkey = "Fxi5LHbI5yGbQQDpVp86GcCdXeC5Bjfe"; + AuthUtils util = new AuthUtils(appuser, appkey, null); + + List json=new ArrayList<>(); + byte[] cookie = null; + int index = 1; + do { + Map params = new HashMap(); + params.put("cookie", Base64.encodeBase64String(cookie)); +// params.put("timestamp", ""); + + // 用户参数 + params.put("filter", "(userid=*)"); + params.put("basedn", "ou=People,o=foton.com.cn,o=isp"); + params.forEach((key, value) -> log.info("同步用户数据的请求参数:" + key + " : " + value)); + // 用户测试 + String rs = util.getResponseFromServer("http://idmsync.foton.com.cn/rest/users/getUserList", params); + log.info("第{}次调用,远程调用同步的员工数据:{}",index,rs); + JSONObject responseStr = JSON.parseObject(rs); + if(responseStr.containsKey("status") && responseStr.getBoolean("status")){ + json.add(rs); + } + if (responseStr.containsKey("cookie")) { + try { + JSONArray entries = responseStr.getJSONArray("cookie"); + if(entries==null){ + break; + } + cookie = new byte[entries.size()]; + for (int i = 0; i < entries.size(); i++) { + cookie[i] = (byte) entries.getByte(i); + } + } catch (Exception e) { + log.error(e.getMessage(),e); + if (e.getMessage().contains("is not a JSONArray")) { + cookie = null; + } + } + } + index++; + } while (cookie != null); + return json; + } + public List syncFotonOrg()throws Exception{ @@ -128,9 +179,10 @@ public class SyncUserService { Map params = new HashMap(); params.put("cookie", Base64.encodeBase64String(cookie)); // params.put("timestamp", System.currentTimeMillis()); - Calendar calendar = Calendar.getInstance(); - String timestamp = sdf.format(calendar.getTime()); - params.put("timestamp", timestamp); +// Calendar calendar = Calendar.getInstance(); +// String timestamp = sdf.format(calendar.getTime()); +// params.put("timestamp", timestamp); + params.put("timestamp",null); // 组织参数 params.put("filter", "(orgNumber=*)"); params.put("basedn", "ou=Organizations,o=foton.com.cn,o=isp"); @@ -204,4 +256,50 @@ public class SyncUserService { } while (cookie != null); return json; } + + // 不添加时间戳,全量同步部门信息 + public List syncFotonOrg3()throws Exception{ + String appuser = "app_slrs"; + String appkey = "Fxi5LHbI5yGbQQDpVp86GcCdXeC5Bjfe"; + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss'Z'"); + AuthUtils util = new AuthUtils(appuser, appkey, null); + + byte[] cookie = null; + List json=new ArrayList<>(); + int index=1; + do { + Map params = new HashMap(); + params.put("cookie", Base64.encodeBase64String(cookie)); +// params.put("timestamp",""); + // 组织参数 + params.put("filter", "(orgNumber=*)"); + params.put("basedn", "ou=Organizations,o=foton.com.cn,o=isp"); + // 组织测试 + String rs = util.getResponseFromServer("http://idmsync.foton.com.cn/rest/orgs/getOrgList", params); + log.info("第{}次调用:远程调用同步的部门数据:{}",index,rs); + JSONObject responseStr = JSONObject.parseObject(rs); + if(responseStr.containsKey("status") && responseStr.getBoolean("status")){ + json.add(rs); + } + if (responseStr.containsKey("cookie")) { + try { + JSONArray entries = responseStr.getJSONArray("cookie"); + if(entries==null){ + break; + } + cookie = new byte[entries.size()]; + for (int i = 0; i < entries.size(); i++) { + cookie[i] = (byte) entries.getByte(i); + } + } catch (Exception e) { + log.error(e.getMessage(),e); + if (e.getMessage().contains("is not a JSONArray")) { + cookie = null; + } + } + } + index++; + } while (cookie != null); + return json; + } } diff --git a/adc-da-sys/src/main/java/com/adc/da/sync/util/AuthUtils.java b/adc-da-sys/src/main/java/com/adc/da/sync/util/AuthUtils.java index a5cf5057..93962857 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sync/util/AuthUtils.java +++ b/adc-da-sys/src/main/java/com/adc/da/sync/util/AuthUtils.java @@ -39,8 +39,11 @@ public class AuthUtils { public String getResponseFromServer(String url, Map params) throws Exception { HttpPost httpPost = new HttpPost(url); createSignHeader(httpPost, params); + Header[] allHeaders = httpPost.getAllHeaders(); + for (Header header : allHeaders) { + logger.info("请求头:" + header.getName() + ":" + header.getValue()); + } JSONObject object = JSONObject.fromObject(params); - params.forEach((key,value) -> logger.info("请求参数:{}:{}",key,value)); httpPost.setEntity(new ByteArrayEntity(object.toString().getBytes(), ContentType.APPLICATION_JSON)); return execute(httpPost); } @@ -52,7 +55,7 @@ public class AuthUtils { client = HttpClientBuilder.create().build(); logger.info("请求地址:"+request.getURI().toString()); for (Header header : request.getAllHeaders()) { - logger.info("请求头:"+header.toString()); + logger.info("请求头:"+header.getName() + ":" + header.getValue()); } resp = client.execute(request); return EntityUtils.toString(resp.getEntity()); diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java b/adc-da-sys/src/main/java/com/adc/da/sys/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java index 39a59f7d..b0039b7b 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sys/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java +++ b/adc-da-sys/src/main/java/com/adc/da/sys/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java @@ -110,7 +110,7 @@ public class SarMenuStandardServiceImpl extends ServiceImpl getAll(String dicId) { QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); - sarMenuQueryWrapper.eq("VALID_FLAG",0); + //sarMenuQueryWrapper.eq("VALID_FLAG",0); sarMenuQueryWrapper.eq("DIC_ID",dicId); sarMenuQueryWrapper.orderByAsc("DISPLAY_SEQ"); // sarMenuQueryWrapper.isNull("PARENT_ID"); diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/dao/SysTsResourceDao.java b/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/dao/SysTsResourceDao.java new file mode 100644 index 00000000..efe0d9a8 --- /dev/null +++ b/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/dao/SysTsResourceDao.java @@ -0,0 +1,27 @@ +package com.adc.da.sys.sarResource.dao; + +import com.adc.da.sys.sarResource.entity.SysTsResource; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +import java.util.HashMap; +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author zyl + * @since 2021-06-30 + */ +@Repository +public interface SysTsResourceDao extends BaseMapper { + + List queryMenuByDis(SysTsResource sarMenuEO); + + List selectMenuByRole(SysTsResource sarMenuEO); + + int insertTsRoleResource(HashMap map); + +} diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/entity/SysTsResource.java b/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/entity/SysTsResource.java new file mode 100644 index 00000000..a88a7a1e --- /dev/null +++ b/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/entity/SysTsResource.java @@ -0,0 +1,108 @@ +package com.adc.da.sys.sarResource.entity; + +import com.adc.da.base.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; +import java.util.Date; +import java.util.List; + +/** + *

+ * + *

+ * + * @author zyl + * @since 2021-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="TsResource对象", description="") +@TableName("ts_resource") +public class SysTsResource extends BaseEntity { + public interface update{ + } + + private static final long serialVersionUID = 1L; + + + + @ApiModelProperty(value = "主键") + @TableId(value = "ID",type = IdType.UUID) + private String id; + + @ApiModelProperty(value = "标准法规划分") + @TableField("SOR_DIVIDE") + private String sorDivide; + + @ApiModelProperty(value = "目录名称") + @TableField("MENU_NAME") + private String menuName; + + @ApiModelProperty(value = "父级ID") + @TableField("PARENT_ID") + private String parentId; + + @ApiModelProperty(value = "父级ID") + @TableField(exist = false) + private String middleParentId; + + @ApiModelProperty(value = "父级ID集合") + @TableField("PARENT_IDS") + private String parentIds; + + @ApiModelProperty(value = "排序序号") + @TableField("DISPLAY_SEQ") + private Integer displaySeq; + + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private Integer validFlag; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + private Date creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + private Date modifyTime; + + @ApiModelProperty(value = "备注") + @TableField("REMARKS") + private String remarks; + + @ApiModelProperty(value = "子菜单") + @TableField(exist = false) + private List children; + + @ApiModelProperty(value = "上级菜单名称") + @TableField(exist = false) + private String parentIdsName; + + @TableField(exist=false) + private List roleIds; + + @TableField(exist=false) + private List childMenuIds; + + @TableField(exist=false) + private String userId; + + @TableField(exist = false) + private String isFlow; + + @ApiModelProperty(value = "树结构数据 区分 类型: 标准数据 tsr 技术系列 sarMs") + @TableField(exist = false) + private String treeType; + +} diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/service/ISysTsResourceService.java b/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/service/ISysTsResourceService.java new file mode 100644 index 00000000..7e898795 --- /dev/null +++ b/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/service/ISysTsResourceService.java @@ -0,0 +1,16 @@ +package com.adc.da.sys.sarResource.service; + +import com.adc.da.sys.sarResource.entity.SysTsResource; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author zyl + * @since 2021-06-30 + */ +public interface ISysTsResourceService extends IService { + +} diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/service/impl/SysTsResourceServiceImpl.java b/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/service/impl/SysTsResourceServiceImpl.java new file mode 100644 index 00000000..edde7cb2 --- /dev/null +++ b/adc-da-sys/src/main/java/com/adc/da/sys/sarResource/service/impl/SysTsResourceServiceImpl.java @@ -0,0 +1,20 @@ +package com.adc.da.sys.sarResource.service.impl; + +import com.adc.da.sys.sarResource.dao.SysTsResourceDao; +import com.adc.da.sys.sarResource.entity.SysTsResource; +import com.adc.da.sys.sarResource.service.ISysTsResourceService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author zyl + * @since 2021-06-30 + */ +@Service +public class SysTsResourceServiceImpl extends ServiceImpl implements ISysTsResourceService { + +}