update 远程调用
This commit is contained in:
+103
-72
@@ -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<LawsAsmsOpenApiMappe
|
||||
if (StringUtils.isNotBlank(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())
|
||||
&& StringUtils.isNotBlank(lawsAsmsOpenApi.getDictId()) && CollectionUtils.isNotEmpty(mapList)) {
|
||||
if ("1".equals(lawsAsmsOpenApi.getApiType()) && StringUtils.isNotBlank(lawsAsmsOpenApi.getDictId())) {
|
||||
// 如果是下拉字典(普通)、字典id不为空、返回的数据不为空,则进行数据字典同步操作
|
||||
// 查询该字典全部数据项
|
||||
LambdaQueryWrapper<SysDictItem> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysDictItem::getDictId, lawsAsmsOpenApi.getDictId());
|
||||
List<SysDictItem> dictItemList = sysDictItemService.list(queryWrapper);
|
||||
List<String> codeList;
|
||||
List<SysDictItem> insertDictItemList = new ArrayList();
|
||||
List<SysDictItem> 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<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);
|
||||
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
||||
if (CollectionUtils.isNotEmpty(mapList)) {
|
||||
LambdaQueryWrapper<SysDictItem> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysDictItem::getDictId, lawsAsmsOpenApi.getDictId());
|
||||
List<SysDictItem> dictItemList = sysDictItemService.list(queryWrapper);
|
||||
List<String> codeList;
|
||||
List<SysDictItem> insertDictItemList = new ArrayList();
|
||||
List<SysDictItem> 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<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)) {
|
||||
// 更新
|
||||
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<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
||||
} else if ("3".equals(lawsAsmsOpenApi.getApiType()) && "xiaobodata/openApi/domesticLaws/list".equals(lawsAsmsOpenApi.getApiUrl())) {
|
||||
// 如果是国内法规,并且url为国内法规标准检索列表
|
||||
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
||||
Integer pageNo;
|
||||
Integer pageSize;
|
||||
if (CollectionUtils.isNotEmpty(mapList)) {
|
||||
@@ -243,6 +248,7 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl<LawsAsmsOpenApiMappe
|
||||
lawsAsmsDomestic.setId(lawsAsmsDomestic.getCode());
|
||||
lawsAsmsDomestic.setCreateTimeString(eMap.get("createTime"));
|
||||
lawsAsmsDomestic.setUpdateTimeString(eMap.get("updateTime"));
|
||||
lawsAsmsDomestic.setFocalPointName(eMap.get("focalPoint"));
|
||||
lawsAsmsDomestic.setSyncFlag("A");
|
||||
lawsAsmsDomesticList.add(lawsAsmsDomestic);
|
||||
});
|
||||
@@ -256,9 +262,34 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl<LawsAsmsOpenApiMappe
|
||||
map.put("pageNo", pageNo.toString());
|
||||
String jsonString = JSON.toJSONString(map);
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user