From cf5a67954aea55e3db68813c7429167f1cf1e562 Mon Sep 17 00:00:00 2001 From: liao Date: Fri, 20 Oct 2023 18:05:47 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=BF=9C=E7=A8=8B=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/config/RestTemplateConfig.java | 2 +- .../impl/LawsAsmsOpenApiServiceImpl.java | 175 +++++++++++------- 2 files changed, 104 insertions(+), 73 deletions(-) diff --git a/laws-base/laws-base-core/src/main/java/com/jero/config/RestTemplateConfig.java b/laws-base/laws-base-core/src/main/java/com/jero/config/RestTemplateConfig.java index 739adb5b..732af54e 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/config/RestTemplateConfig.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/config/RestTemplateConfig.java @@ -24,7 +24,7 @@ public class RestTemplateConfig { */ // 解决https请求证书问题 SSL factory = new SSL(); - factory.setReadTimeout(5000);//ms + factory.setReadTimeout(20000);//ms factory.setConnectTimeout(15000);//ms return factory; } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java index 5f839a81..ad0e87a6 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.jero.common.exception.JeroBootException; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -154,84 +155,88 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl) JSON.parse(lawsAsmsOpenApi.getQueryParamJson()); } - List> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map); - if ("1".equals(lawsAsmsOpenApi.getApiType()) - && StringUtils.isNotBlank(lawsAsmsOpenApi.getDictId()) && CollectionUtils.isNotEmpty(mapList)) { + if ("1".equals(lawsAsmsOpenApi.getApiType()) && StringUtils.isNotBlank(lawsAsmsOpenApi.getDictId())) { // 如果是下拉字典(普通)、字典id不为空、返回的数据不为空,则进行数据字典同步操作 // 查询该字典全部数据项 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysDictItem::getDictId, lawsAsmsOpenApi.getDictId()); - List dictItemList = sysDictItemService.list(queryWrapper); - List codeList; - List insertDictItemList = new ArrayList(); - List updateDictItemList = new ArrayList(); - if (CollectionUtils.isNotEmpty(dictItemList)) { - codeList = dictItemList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList()); - } else { - codeList = new ArrayList(); - } - // 遍历返回数据,封装字典数据项 - for (int i = 0; i < mapList.size(); i++) { - Map eMap = mapList.get(i); - SysDictItem dictItem = new SysDictItem(); - // 字典id - dictItem.setDictId(lawsAsmsOpenApi.getDictId()); - // 是否标签管理显示(显示) - dictItem.setIsTagDict(1); - // 状态(启用) - dictItem.setStatus(1); - dictItem.setDelFlag(0); - // 排序 - dictItem.setSortOrder(i + 1); - eMap.forEach((k, v) -> { - if ("code".equals(k)) { - // 字典项值 - dictItem.setItemValue(v); - } else if ("name".equals(k)) { - // 字典项名称 - dictItem.setItemText(v); - } else if ("id".equals(k)) { - // 主键 - dictItem.setId(v); - } else if ("pid".equals(k)) { - // 父节点id - dictItem.setParentId(v); - } else if ("source".equals(k)) { - // 来源 - dictItem.setDescription(v); - } - }); - if (StringUtils.isBlank(dictItem.getItemValue())) { - throw new JeroBootException("字典值不能为空"); - } - if (codeList.contains(dictItem.getItemValue())) { - // 如果code在数据库存在,则将数据库的id赋予对接的数据 - dictItem.setId(dictItemList.stream().filter(e -> - e.getItemValue().equals(dictItem.getItemValue())) - .collect(Collectors.toList()).get(0).getId()); - updateDictItemList.add(dictItem); + List> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map); + if (CollectionUtils.isNotEmpty(mapList)) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysDictItem::getDictId, lawsAsmsOpenApi.getDictId()); + List dictItemList = sysDictItemService.list(queryWrapper); + List codeList; + List insertDictItemList = new ArrayList(); + List updateDictItemList = new ArrayList(); + if (CollectionUtils.isNotEmpty(dictItemList)) { + codeList = dictItemList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList()); } else { - // 如果不存在则新增 - insertDictItemList.add(dictItem); + codeList = new ArrayList(); } + // 遍历返回数据,封装字典数据项 + for (int i = 0; i < mapList.size(); i++) { + Map eMap = mapList.get(i); + SysDictItem dictItem = new SysDictItem(); + // 字典id + dictItem.setDictId(lawsAsmsOpenApi.getDictId()); + // 是否标签管理显示(显示) + dictItem.setIsTagDict(1); + // 状态(启用) + dictItem.setStatus(1); + dictItem.setDelFlag(0); + // 排序 + dictItem.setSortOrder(i + 1); + eMap.forEach((k, v) -> { + if ("code".equals(k)) { + // 字典项值 + dictItem.setItemValue(v); + } else if ("name".equals(k)) { + // 字典项名称 + dictItem.setItemText(v); + } else if ("id".equals(k)) { + // 主键 + dictItem.setId(v); + } else if ("pid".equals(k)) { + // 父节点id + dictItem.setParentId(v); + } else if ("source".equals(k)) { + // 来源 + dictItem.setDescription(v); + } + }); + if (StringUtils.isBlank(dictItem.getItemValue())) { + throw new JeroBootException("字典值不能为空"); + } + if (codeList.contains(dictItem.getItemValue())) { + // 如果code在数据库存在,则将数据库的id赋予对接的数据 + dictItem.setId(dictItemList.stream().filter(e -> + e.getItemValue().equals(dictItem.getItemValue())) + .collect(Collectors.toList()).get(0).getId()); + updateDictItemList.add(dictItem); + } else { + // 如果不存在则新增 + insertDictItemList.add(dictItem); + } + } + // 操作数据库 + if (CollectionUtils.isNotEmpty(updateDictItemList)) { + // 更新 + sysDictItemService.updateBatchById(updateDictItemList); + } + if (CollectionUtils.isNotEmpty(insertDictItemList)) { + // 新增 + sysDictItemService.saveBatch(insertDictItemList); + } + // 状态设置为已同步 + lawsAsmsOpenApi.setStatus("1"); } - // 操作数据库 - if (CollectionUtils.isNotEmpty(updateDictItemList)) { - // 更新 - sysDictItemService.updateBatchById(updateDictItemList); - } - if (CollectionUtils.isNotEmpty(insertDictItemList)) { - // 新增 - sysDictItemService.saveBatch(insertDictItemList); - } - // 状态设置为已同步 - lawsAsmsOpenApi.setStatus("1"); - } else if ("2".equals(lawsAsmsOpenApi.getApiType()) && !Objects.isNull(mapList)) { + + log.info("{}同步成功{}条数据", lawsAsmsOpenApi.getApiName(), mapList.size()); + } else if ("2".equals(lawsAsmsOpenApi.getApiType())) { // 如果是分标委 - } else if ("3".equals(lawsAsmsOpenApi.getApiType()) - && "xiaobodata/openApi/domesticLaws/list".equals(lawsAsmsOpenApi.getApiUrl())) { + List> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map); + } else if ("3".equals(lawsAsmsOpenApi.getApiType()) && "xiaobodata/openApi/domesticLaws/list".equals(lawsAsmsOpenApi.getApiUrl())) { // 如果是国内法规,并且url为国内法规标准检索列表 + List> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map); Integer pageNo; Integer pageSize; if (CollectionUtils.isNotEmpty(mapList)) { @@ -243,6 +248,7 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.select(LawsAsmsDomestic::getCode); + queryWrapper.eq(LawsAsmsDomestic::getSyncFlag, "A"); + List lawsAsmsDomesticList = lawsAsmsDomesticService.list(queryWrapper); + if (CollectionUtils.isEmpty(lawsAsmsDomesticList)) { + lawsAsmsOpenApi.setStatus("1"); + } + List updateList = new ArrayList(); + if (CollectionUtils.isNotEmpty(lawsAsmsDomesticList)) { + Map paramMap = new HashMap<>(); + lawsAsmsDomesticList.forEach(lawsAsmsDomestic -> { + String code = lawsAsmsDomestic.getCode(); + paramMap.put("lawCode", code); + List> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), paramMap); + LawsAsmsDomestic parseObject = JSONObject.parseObject(JSONObject.toJSONString(mapList.get(0)), LawsAsmsDomestic.class); + log.info(parseObject.toString()); + parseObject.setSyncFlag("B"); + parseObject.setId(code); + updateList.add(parseObject); + }); + lawsAsmsDomesticService.updateBatchById(updateList); + log.info("{}同步成功{}条数据", lawsAsmsOpenApi.getApiName(), lawsAsmsDomesticList.size()); + } + } }); // 同步接口的状态 updateBatchById(lawsAsmsOpenApiList);