提交 7fca0686 authored 作者: inroi's avatar inroi

微调

上级 dcca2149
...@@ -13,4 +13,10 @@ public interface Constants { ...@@ -13,4 +13,10 @@ public interface Constants {
String ROOT_MENU_CODE = "-1"; String ROOT_MENU_CODE = "-1";
String SYN_SUCCESS_CODE = "1";
String SYN_ERROR_CODE = "0";
} }
\ No newline at end of file
...@@ -35,14 +35,14 @@ public class SynchronizationController { ...@@ -35,14 +35,14 @@ public class SynchronizationController {
} }
@ApiOperation("查询金蝶参数") @ApiOperation("查询金蝶参数")
@GetMapping("init/connect/parm") @GetMapping("/init/connect/parm")
public RestResponse initConnectParm() { public RestResponse initConnectParm() {
InitConnectParmOutVo outVo = synchronizationService.initConnectParm(); InitConnectParmOutVo outVo = synchronizationService.initConnectParm();
return RestResponse.success(outVo); return RestResponse.success(outVo);
} }
@ApiOperation("保存金蝶参数") @ApiOperation("保存金蝶参数")
@PostMapping("init/connect/parm/create") @PostMapping("/init/connect/parm/create")
public RestResponse initConnectParmCreate(@RequestBody @Validated InitConnectParmCreateInVo inVo) { public RestResponse initConnectParmCreate(@RequestBody @Validated InitConnectParmCreateInVo inVo) {
return synchronizationService.initConnectParmCreate(inVo); return synchronizationService.initConnectParmCreate(inVo);
} }
......
package com.nzwz.serivce.impl; package com.nzwz.serivce.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.nzwz.common.constants.Constants;
import com.nzwz.common.response.RestResponse; import com.nzwz.common.response.RestResponse;
import com.nzwz.quartz.model.QuartzJob; import com.nzwz.quartz.model.QuartzJob;
import com.nzwz.quartz.transfer.QuartzJobPauseInVo; import com.nzwz.quartz.transfer.QuartzJobPauseInVo;
...@@ -7,6 +9,7 @@ import com.nzwz.quartz.transfer.QuartzJobResumeInVo; ...@@ -7,6 +9,7 @@ import com.nzwz.quartz.transfer.QuartzJobResumeInVo;
import com.nzwz.transfer.synchronization.InitConnectParmCreateInVo; import com.nzwz.transfer.synchronization.InitConnectParmCreateInVo;
import com.nzwz.transfer.synchronization.InitConnectParmOutVo; import com.nzwz.transfer.synchronization.InitConnectParmOutVo;
import com.nzwz.utils.JsonUtil; import com.nzwz.utils.JsonUtil;
import com.nzwz.utils.KingDeeUtil;
import com.nzwz.utils.StringUtil; import com.nzwz.utils.StringUtil;
import com.nzwz.api.KingDeeApi; import com.nzwz.api.KingDeeApi;
import com.nzwz.api.KingDeeK3CloudApi; import com.nzwz.api.KingDeeK3CloudApi;
...@@ -108,7 +111,7 @@ public class SynchronizationServiceImpl implements ISynchronizationService { ...@@ -108,7 +111,7 @@ public class SynchronizationServiceImpl implements ISynchronizationService {
initConnectParmMapper.updateById(initConnectParm); initConnectParmMapper.updateById(initConnectParm);
KingDeeK3CloudApi kingDeeK3CloudApi = new KingDeeK3CloudApi(inVo.getK3CloudUrl()); KingDeeK3CloudApi kingDeeK3CloudApi = new KingDeeK3CloudApi(inVo.getK3CloudUrl());
Boolean flag = null; Boolean flag;
try { try {
flag = kingDeeK3CloudApi.login(inVo.getDbid(), inVo.getUid(), inVo.getPwd(), inVo.getLang()); flag = kingDeeK3CloudApi.login(inVo.getDbid(), inVo.getUid(), inVo.getPwd(), inVo.getLang());
} catch (Exception e) { } catch (Exception e) {
...@@ -128,20 +131,51 @@ public class SynchronizationServiceImpl implements ISynchronizationService { ...@@ -128,20 +131,51 @@ public class SynchronizationServiceImpl implements ISynchronizationService {
@Override @Override
public void synchronization() { public void synchronization() {
List<TableRelation> tableRelationList = tableRelationMapper.selectList(null); List<TableRelation> tableRelationList = tableRelationMapper.selectList(new QueryWrapper<>());
List<TableRelation> temp01List = tableRelationList.stream().filter(m -> StringUtil.isNotBlank(m.getTableDate())).collect(Collectors.toList()); List<TableRelation> tempList = tableRelationList.stream().filter(m -> StringUtil.isNotBlank(m.getTableDate())).collect(Collectors.toList());
for (TableRelation tableRelation : temp01List) { for (TableRelation tableRelation : tempList) {
this.reload(tableRelation); Map<String, Object> data = this.assemblyMap(tableRelation);
Log log = new Log(tableRelation.getTableName(), tableRelation.getTableHeader(), JsonUtil.toString(Collections.singletonList(data)));
logMapper.insert(log);
String result = this.reload(data, log);
List<TableRelation> subTableRelationList = new ArrayList<>();
this.getTableRelationTree(subTableRelationList, tableRelation.getTableHeader(), tableRelationList);
if (!CollectionUtils.isEmpty(subTableRelationList)) {
for (TableRelation subTableRelation : subTableRelationList) {
Map<String, Object> dataMap = this.assemblyMap(subTableRelation);
dataMap.put("DATE_FORM", data.get("DATE_FORM"));
dataMap.put("DATE_TO", data.get("DATE_TO"));
Log tempLog = new Log(subTableRelation.getTableName(), subTableRelation.getTableHeader(), JsonUtil.toString(Collections.singletonList(dataMap)));
logMapper.insert(tempLog);
Map<String, Object> tempMap = JsonUtil.toMap(result, String.class, Object.class);
if (!CollectionUtils.isEmpty(tempMap)) {
String flagName = "DNResult";
if (tempMap.containsKey(flagName)) {
if (Constants.ROOT_MENU_CODE.equals(tempMap.get(flagName))) {
logMapper.updateById(new Log(tempLog.getId(), 0, "未查询到数据", 0));
continue;
}
}
}
this.reload(dataMap, tempLog);
}
}
} }
}
List<TableRelation> temp02List = tableRelationList.stream().filter(m -> !"-1".equals(m.getSubTableHeader()) && StringUtil.isBlank(m.getTableDate())).collect(Collectors.toList()); private void getTableRelationTree(List<TableRelation> result, String tableHeader, List<TableRelation> tableRelationList) {
for (TableRelation tableRelation : temp02List) { List<TableRelation> tempList = tableRelationList.stream().filter(m -> tableHeader.equals(m.getSubTableHeader())).collect(Collectors.toList());
this.reload(tableRelation); for (TableRelation tableRelation : tempList) {
result.add(tableRelation);
this.getTableRelationTree(result, tableRelation.getTableHeader(), tableRelationList);
} }
} }
private void reload(TableRelation tableRelation) { private Map<String, Object> assemblyMap(TableRelation tableRelation) {
Map<String, Object> data = new HashMap<>(6); Map<String, Object> data = new HashMap<>(6);
data.put("TABLE_HEADER", tableRelation.getTableHeader()); data.put("TABLE_HEADER", tableRelation.getTableHeader());
data.put("TABLE_DATE", tableRelation.getTableDate()); data.put("TABLE_DATE", tableRelation.getTableDate());
...@@ -154,19 +188,12 @@ public class SynchronizationServiceImpl implements ISynchronizationService { ...@@ -154,19 +188,12 @@ public class SynchronizationServiceImpl implements ISynchronizationService {
String dateForm = logMapper.slectOrderCreateTimeByContent(tableRelation.getTableHeader()); String dateForm = logMapper.slectOrderCreateTimeByContent(tableRelation.getTableHeader());
if (StringUtil.isNotBlank(dateForm)) { if (StringUtil.isNotBlank(dateForm)) {
data.put("DATE_FORM", dateForm); data.put("DATE_FORM", dateForm);
data.put("DATE_TO", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")); } else {
}else {
data.put("DATE_FORM", "2020-01-01 00:00:00"); data.put("DATE_FORM", "2020-01-01 00:00:00");
data.put("DATE_TO", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
} }
data.put("DATE_TO", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
} }
return data;
//记录日志
Log log = new Log(tableRelation.getTableName(), tableRelation.getTableHeader(), JsonUtil.toString(Collections.singletonList(data)));
logMapper.insert(log);
//发送请求并修改日志
loadResult(data, log);
} }
@Override @Override
...@@ -175,33 +202,43 @@ public class SynchronizationServiceImpl implements ISynchronizationService { ...@@ -175,33 +202,43 @@ public class SynchronizationServiceImpl implements ISynchronizationService {
for (Log log : logList) { for (Log log : logList) {
Map<String, Object> data = JsonUtil.toMap(log.getData(), String.class, Object.class); Map<String, Object> data = JsonUtil.toMap(log.getData(), String.class, Object.class);
loadResult(data, log); this.reload(data, log);
} }
} }
private void loadResult(Map<String, Object> data, Log log) { private String reload(Map<String, Object> data, Log log) {
System.out.println("金蝶请求参数: " + data); System.out.println("金蝶请求参数: " + data);
String result = this.send(Collections.singletonList(data), 3); String result = this.send(Collections.singletonList(data), 3);
System.out.println("金蝶返回值: " + result); System.out.println("金蝶返回值: " + result);
String flagName = "DNResult";
Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class); Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class);
if (!CollectionUtils.isEmpty(map)) { if (!CollectionUtils.isEmpty(map)) {
Map<String, Object> tempMap = ThreadLocalConfig.get(); Map<String, Object> tempMap = ThreadLocalConfig.get();
int costime = StringUtil.isNotNull(tempMap.get("costime")) ? Integer.parseInt(tempMap.get("costime").toString()) : 0; int costime = StringUtil.isNotNull(tempMap.get("costime")) ? Integer.parseInt(tempMap.get("costime").toString()) : 0;
if (map.containsKey("DNResult")) { if (KingDeeUtil.isError(result)) {
if ("1".equals(map.get("DNResult"))) { logMapper.updateById(new Log(log.getId(), 0, result, costime));
logMapper.updateById(new Log(log.getId(), 1, result, costime)); } else {
if (map.containsKey(flagName)) {
if (Constants.SYN_SUCCESS_CODE.equals(map.get(flagName))) {
logMapper.updateById(new Log(log.getId(), 1, result, costime));
} else if (Constants.ROOT_MENU_CODE.equals(map.get(flagName))) {
logMapper.updateById(new Log(log.getId(), 0, "未查询到数据", 0));
} else {
logMapper.updateById(new Log(log.getId(), 0, result, costime));
}
} else { } else {
logMapper.updateById(new Log(log.getId(), 0, result, costime)); logMapper.updateById(new Log(log.getId(), 0, result, costime));
} }
} }
} }
return result;
} }
private String send(List<Map<String, Object>> data, Integer index) { private String send(List<Map<String, Object>> data, Integer index) {
String result = ""; String result;
try { try {
result = kingDeeApi.synchronization(data); result = kingDeeApi.synchronization(data);
} catch (Exception e) { } catch (Exception e) {
......
package com.nzwz.utils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Map;
/**
* @author Inori
*/
public class KingDeeUtil {
public static boolean isError(String json) {
Map<String, Object> map = JsonUtil.toMap(json, String.class, Object.class);
Map<String, Object> tempMap = JsonUtil.toMap(JsonUtil.toString(map.get("Result")), String.class, Object.class);
Map<String, Object> responseMap = JsonUtil.toMap(JsonUtil.toString(tempMap.get("ResponseStatus")), String.class, Object.class);
List<Object> errorList = JsonUtil.toList(JsonUtil.toString(responseMap.get("Errors")), Object.class);
return !CollectionUtils.isEmpty(errorList);
}
public static String getMessage(Object object) {
Map<String, Object> map = JsonUtil.toMap(JsonUtil.toString(object), String.class, Object.class);
String result = JsonUtil.toString(map.get("Result"));
Map<String, Object> toMap = JsonUtil.toMap(result, String.class, Object.class);
String responseStatus = JsonUtil.toString(toMap.get("ResponseStatus"));
Map<String, Object> objectMap = JsonUtil.toMap(responseStatus, String.class, Object.class);
List<Object> errorList = JsonUtil.toList(JsonUtil.toString(objectMap.get("Errors")), Object.class);
StringBuilder message = new StringBuilder();
for (Object obj : errorList) {
Map<String, Object> messageMap = JsonUtil.toMap(JsonUtil.toString(obj), String.class, Object.class);
if (StringUtils.isBlank(message)) {
message.append(messageMap.get("Message").toString());
} else {
message.append(",").append(messageMap.get("Message").toString());
}
}
return message.toString();
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论