update 远程调用
This commit is contained in:
@@ -24,7 +24,7 @@ public class RestTemplateConfig {
|
|||||||
*/
|
*/
|
||||||
// 解决https请求证书问题
|
// 解决https请求证书问题
|
||||||
SSL factory = new SSL();
|
SSL factory = new SSL();
|
||||||
factory.setReadTimeout(5000);//ms
|
factory.setReadTimeout(20000);//ms
|
||||||
factory.setConnectTimeout(15000);//ms
|
factory.setConnectTimeout(15000);//ms
|
||||||
return factory;
|
return factory;
|
||||||
}
|
}
|
||||||
|
|||||||
+103
-72
@@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -154,84 +155,88 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl<LawsAsmsOpenApiMappe
|
|||||||
if (StringUtils.isNotBlank(lawsAsmsOpenApi.getQueryParamJson())) {
|
if (StringUtils.isNotBlank(lawsAsmsOpenApi.getQueryParamJson())) {
|
||||||
map = (Map<String, String>) JSON.parse(lawsAsmsOpenApi.getQueryParamJson());
|
map = (Map<String, String>) JSON.parse(lawsAsmsOpenApi.getQueryParamJson());
|
||||||
}
|
}
|
||||||
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
|
||||||
|
|
||||||
if ("1".equals(lawsAsmsOpenApi.getApiType())
|
if ("1".equals(lawsAsmsOpenApi.getApiType()) && StringUtils.isNotBlank(lawsAsmsOpenApi.getDictId())) {
|
||||||
&& StringUtils.isNotBlank(lawsAsmsOpenApi.getDictId()) && CollectionUtils.isNotEmpty(mapList)) {
|
|
||||||
// 如果是下拉字典(普通)、字典id不为空、返回的数据不为空,则进行数据字典同步操作
|
// 如果是下拉字典(普通)、字典id不为空、返回的数据不为空,则进行数据字典同步操作
|
||||||
// 查询该字典全部数据项
|
// 查询该字典全部数据项
|
||||||
LambdaQueryWrapper<SysDictItem> queryWrapper = new LambdaQueryWrapper<>();
|
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
||||||
queryWrapper.eq(SysDictItem::getDictId, lawsAsmsOpenApi.getDictId());
|
if (CollectionUtils.isNotEmpty(mapList)) {
|
||||||
List<SysDictItem> dictItemList = sysDictItemService.list(queryWrapper);
|
LambdaQueryWrapper<SysDictItem> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
List<String> codeList;
|
queryWrapper.eq(SysDictItem::getDictId, lawsAsmsOpenApi.getDictId());
|
||||||
List<SysDictItem> insertDictItemList = new ArrayList();
|
List<SysDictItem> dictItemList = sysDictItemService.list(queryWrapper);
|
||||||
List<SysDictItem> updateDictItemList = new ArrayList();
|
List<String> codeList;
|
||||||
if (CollectionUtils.isNotEmpty(dictItemList)) {
|
List<SysDictItem> insertDictItemList = new ArrayList();
|
||||||
codeList = dictItemList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList());
|
List<SysDictItem> updateDictItemList = new ArrayList();
|
||||||
} else {
|
if (CollectionUtils.isNotEmpty(dictItemList)) {
|
||||||
codeList = new ArrayList();
|
codeList = dictItemList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList());
|
||||||
}
|
|
||||||
// 遍历返回数据,封装字典数据项
|
|
||||||
for (int i = 0; i < mapList.size(); i++) {
|
|
||||||
Map<String, String> 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 {
|
} else {
|
||||||
// 如果不存在则新增
|
codeList = new ArrayList();
|
||||||
insertDictItemList.add(dictItem);
|
|
||||||
}
|
}
|
||||||
|
// 遍历返回数据,封装字典数据项
|
||||||
|
for (int i = 0; i < mapList.size(); i++) {
|
||||||
|
Map<String, String> 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)) {
|
log.info("{}同步成功{}条数据", lawsAsmsOpenApi.getApiName(), mapList.size());
|
||||||
// 更新
|
} else if ("2".equals(lawsAsmsOpenApi.getApiType())) {
|
||||||
sysDictItemService.updateBatchById(updateDictItemList);
|
|
||||||
}
|
|
||||||
if (CollectionUtils.isNotEmpty(insertDictItemList)) {
|
|
||||||
// 新增
|
|
||||||
sysDictItemService.saveBatch(insertDictItemList);
|
|
||||||
}
|
|
||||||
// 状态设置为已同步
|
|
||||||
lawsAsmsOpenApi.setStatus("1");
|
|
||||||
} else if ("2".equals(lawsAsmsOpenApi.getApiType()) && !Objects.isNull(mapList)) {
|
|
||||||
// 如果是分标委
|
// 如果是分标委
|
||||||
} else if ("3".equals(lawsAsmsOpenApi.getApiType())
|
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
||||||
&& "xiaobodata/openApi/domesticLaws/list".equals(lawsAsmsOpenApi.getApiUrl())) {
|
} else if ("3".equals(lawsAsmsOpenApi.getApiType()) && "xiaobodata/openApi/domesticLaws/list".equals(lawsAsmsOpenApi.getApiUrl())) {
|
||||||
// 如果是国内法规,并且url为国内法规标准检索列表
|
// 如果是国内法规,并且url为国内法规标准检索列表
|
||||||
|
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
||||||
Integer pageNo;
|
Integer pageNo;
|
||||||
Integer pageSize;
|
Integer pageSize;
|
||||||
if (CollectionUtils.isNotEmpty(mapList)) {
|
if (CollectionUtils.isNotEmpty(mapList)) {
|
||||||
@@ -243,6 +248,7 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl<LawsAsmsOpenApiMappe
|
|||||||
lawsAsmsDomestic.setId(lawsAsmsDomestic.getCode());
|
lawsAsmsDomestic.setId(lawsAsmsDomestic.getCode());
|
||||||
lawsAsmsDomestic.setCreateTimeString(eMap.get("createTime"));
|
lawsAsmsDomestic.setCreateTimeString(eMap.get("createTime"));
|
||||||
lawsAsmsDomestic.setUpdateTimeString(eMap.get("updateTime"));
|
lawsAsmsDomestic.setUpdateTimeString(eMap.get("updateTime"));
|
||||||
|
lawsAsmsDomestic.setFocalPointName(eMap.get("focalPoint"));
|
||||||
lawsAsmsDomestic.setSyncFlag("A");
|
lawsAsmsDomestic.setSyncFlag("A");
|
||||||
lawsAsmsDomesticList.add(lawsAsmsDomestic);
|
lawsAsmsDomesticList.add(lawsAsmsDomestic);
|
||||||
});
|
});
|
||||||
@@ -256,9 +262,34 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl<LawsAsmsOpenApiMappe
|
|||||||
map.put("pageNo", pageNo.toString());
|
map.put("pageNo", pageNo.toString());
|
||||||
String jsonString = JSON.toJSONString(map);
|
String jsonString = JSON.toJSONString(map);
|
||||||
lawsAsmsOpenApi.setQueryParamJson(jsonString);
|
lawsAsmsOpenApi.setQueryParamJson(jsonString);
|
||||||
}
|
|
||||||
|
|
||||||
log.info("{}同步成功{}条数据", lawsAsmsOpenApi.getApiName(), mapList.size());
|
log.info("{}同步成功{}条数据", lawsAsmsOpenApi.getApiName(), mapList.size());
|
||||||
|
} else if ("3".equals(lawsAsmsOpenApi.getApiType()) && "xiaobodata/openApi/domesticLaws/getInfo".equals(lawsAsmsOpenApi.getApiUrl())) {
|
||||||
|
// 如果是国内法规,并且url为国内法规标准基本信息
|
||||||
|
LambdaQueryWrapper<LawsAsmsDomestic> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.select(LawsAsmsDomestic::getCode);
|
||||||
|
queryWrapper.eq(LawsAsmsDomestic::getSyncFlag, "A");
|
||||||
|
List<LawsAsmsDomestic> lawsAsmsDomesticList = lawsAsmsDomesticService.list(queryWrapper);
|
||||||
|
if (CollectionUtils.isEmpty(lawsAsmsDomesticList)) {
|
||||||
|
lawsAsmsOpenApi.setStatus("1");
|
||||||
|
}
|
||||||
|
List<LawsAsmsDomestic> updateList = new ArrayList();
|
||||||
|
if (CollectionUtils.isNotEmpty(lawsAsmsDomesticList)) {
|
||||||
|
Map<String, String> paramMap = new HashMap<>();
|
||||||
|
lawsAsmsDomesticList.forEach(lawsAsmsDomestic -> {
|
||||||
|
String code = lawsAsmsDomestic.getCode();
|
||||||
|
paramMap.put("lawCode", code);
|
||||||
|
List<Map<String, String>> 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);
|
updateBatchById(lawsAsmsOpenApiList);
|
||||||
|
|||||||
Reference in New Issue
Block a user