新增银行批量查询,对部门和标书购买申请做了优化

This commit is contained in:
itzhang 2025-07-01 14:17:30 +08:00
parent d7ef48fed4
commit f4e5898b6c
3 changed files with 239 additions and 5 deletions

View File

@ -293,7 +293,7 @@ public class BankInfoController {
deptReq.put("pageSize", 1999);
//开始获取金蝶token
String accessToken = new KDTokenController().getKDAppToken();
String accessToken = new KDTokenController().getKDAccessTokenTest();
if (accessToken == null || accessToken.equals("")) {
log.info("金蝶token为空或不存在");
@ -438,4 +438,237 @@ public class BankInfoController {
}
}
/**
* 批量翻页执行银行信息
*
* @return void
* @Author weiloong_zhang
*/
@PostMapping("/batch/sync/bank")
public void bankInfoBatch() {
int page = 1;
int pageSize = 2000;
Boolean flag = true;
while (flag) {
CrmRequestUtil crmRequestUtil = new CrmRequestUtil();
log.info("开始同步银行信息");
//获取当前时间
LocalDateTime now = LocalDateTime.now();
log.info("当前时间:{}", now);
//获取两天前的时间
LocalDateTime twoDaysAgo = now.minusDays(30);
//将时间转换样式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String twoDaysAgoStr = twoDaysAgo.format(formatter);
String nowStr = now.format(formatter);
//开始查询部门(暂时使用固定值)
Map data = new HashMap<>();
data.put("startTime", twoDaysAgoStr);
data.put("endTime", nowStr);
//data.put("number", Arrays.asList("ZHY002.005.003.004"));
// data.put("level", "3");
Map deptReq = new HashMap<>();
deptReq.put("data", data);
deptReq.put("pageNo", page);
deptReq.put("pageSize", pageSize);
//开始获取金蝶token
String accessToken = new KDTokenController().getKDAccessTokenTest();
if (accessToken == null || accessToken.equals("")) {
log.info("金蝶token为空或不存在");
break;
}
//开始封装请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("accessToken", accessToken);
HttpEntity bankReqEntity = new HttpEntity(deptReq, headers);
//开始发起请求
//String bankInfoUrl = ERPURLConstant.ERP_URL +"/ierp/kapi/v2/f9w5/basedata/bd_bebank/bebankQuery";
String bankInfoUrl = "https://lxr2.zhydsp.cn:40448/ierp/kapi/v2/f9w5/basedata/bd_bebank/bebankQuery";
String bankInfoResStr = "";
//开始发起请求
try {
bankInfoResStr = restTemplate.postForObject(bankInfoUrl, bankReqEntity, String.class);
} catch (RestClientException e) {
e.printStackTrace();
}
JSONObject bankInfoRes = JSONObject.parseObject(bankInfoResStr);
System.out.println("获取到金蝶银行信息:" + bankInfoRes);
if (!"0".equals(bankInfoRes.getString("errorCode")) || bankInfoRes.getJSONObject("data").isEmpty() || bankInfoRes.getJSONObject("data").getJSONArray("rows").isEmpty()) {
log.info("金蝶查询银行信息失败或者没有符合条件的数据");
flag = false;
return;
}
log.info("数据存在,将继续向下执行");
for (Object bankInfoObj : bankInfoRes.getJSONObject("data").getJSONArray("rows")) {
JSONObject bankInfoData = JSON.parseObject(JSON.toJSONString(bankInfoObj));
//开始截取关键数据
//银行名称
String bankName = bankInfoData.getString("name");
//行号
String bankNumber = bankInfoData.getString("number");
//todo 创建时间
String createTime = "2025-05-14 00:00:00";
//开始查询是否已经集成过了
JSONObject isLog = new JSONObject();
try {
isLog = restTemplate.getForObject("http://localhost:18085/Log/query/log_data?table=send_log_bank&log_type=BANK&dataId=" + bankNumber + "&mark=" + createTime, JSONObject.class);
} catch (RestClientException e) {
e.printStackTrace();
}
if (!isLog.getJSONArray("data").isEmpty()) {
log.info("当前银行已经集成过了,将不再向下执行");
continue;
}
//开始封装数据
Map bankInfoMap = new HashMap<>();
bankInfoMap.put("name", bankNumber);//行号
bankInfoMap.put("bank_name__c", bankName);//银行名称
bankInfoMap.put("province__c", bankInfoData.getString("province_name") != null ? bankInfoData.getString("province_name") : "");//省份
bankInfoMap.put("city_banking__c", bankInfoData.getString("city_name") != null ? bankInfoData.getString("city_name") : "");//
bankInfoMap.put("country_region__c", bankInfoData.getString("country_fullname") != null ? bankInfoData.getString("country_fullname") : "");//国家地区
bankInfoMap.put("branch_number__c", bankInfoData.getString("union_number") != null ? bankInfoData.getString("union_number") : "");//联行号
bankInfoMap.put("dataObjectApiName", "bank_info__c");
//发起请求前查询是否已存在该数据
JSONObject isCrmExist = crmRequestUtil.getCRMList(Arrays.asList(
new Filter("EQ", "name", Arrays.asList(bankNumber)),
new Filter("EQ", "bank_name__c", Arrays.asList(bankName))
), "bank_info__c");
JSONObject isCrmExistRes = new JSONObject();
try {
isCrmExistRes = restTemplate.postForObject(URLConstant.GET_CUSTOMIZE_LIST_URL, isCrmExist, JSONObject.class);
} catch (RestClientException e) {
e.printStackTrace();
}
if ("success".equals(isCrmExistRes.getString("errorDescription")) && !isCrmExistRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
log.info("数据已存在,将执行更新");
JSONObject isCrmExistData = isCrmExistRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0);
bankInfoMap.put("_id", isCrmExistData.getString("_id"));
//更新请求
JSONObject updateReq = crmRequestUtil.updateCRM(bankInfoMap);
JSONObject updateRes = new JSONObject();
try {
updateRes = restTemplate.postForObject(URLConstant.UPDATE_CRM_CUSTOMIZE, updateReq, JSONObject.class);
} catch (RestClientException e) {
e.printStackTrace();
}
System.out.println("更新结果为:" + JSON.parseObject(JSON.toJSONString(updateRes)));
//记录日志
//开始封装日志
Map logMap = new HashMap<>();
logMap.put("log_id", UUID.randomUUID().toString().replace("-", ""));
logMap.put("log_type", "BANKUP");
logMap.put("syn_type", "0");
logMap.put("data_name", bankName);
logMap.put("data_id", bankNumber);
logMap.put("mark", createTime);
logMap.put("send_body", JSON.toJSONString(updateReq));
logMap.put("send_res", JSON.toJSONString(updateRes));
logMap.put("tableName", "send_log_bank");
//判断
if ("success".equals(updateRes.getString("errorDescription"))) {
logMap.put("log_status", "0");
logMap.put("res_body", "同步成功");
} else {
logMap.put("log_status", "1");
logMap.put("res_body", "同步失败" + updateRes.getString("errorMessage"));
}
JSONObject logRes = new JSONObject();
try {
logRes = restTemplate.postForObject("http://localhost:18085/Log/insert/log_data", logMap, JSONObject.class);
} catch (RestClientException e) {
e.printStackTrace();
}
continue;
}
log.info("数据不存在,将执行创建");
JSONObject createReq = crmRequestUtil.createCRM(bankInfoMap);
JSONObject createRes = new JSONObject();
try {
createRes = restTemplate.postForObject(URLConstant.CREATE_CRM_CUSTOMER_MAIN, createReq, JSONObject.class);
} catch (RestClientException e) {
e.printStackTrace();
}
System.out.println("创建结果为:" + JSON.parseObject(JSON.toJSONString(createRes)));
Map logMap = new HashMap<>();
logMap.put("log_id", UUID.randomUUID().toString().replace("-", ""));
logMap.put("log_type", "BANK");
logMap.put("syn_type", "0");
logMap.put("data_name", bankName);
logMap.put("data_id", bankNumber);
logMap.put("mark", createTime);
logMap.put("send_body", JSON.toJSONString(createReq));
logMap.put("send_res", JSON.toJSONString(createRes));
logMap.put("tableName", "send_log_bank");
//判断
if ("success".equals(createRes.getString("errorDescription"))) {
logMap.put("log_status", "0");
logMap.put("res_body", "同步成功");
} else {
logMap.put("log_status", "1");
logMap.put("res_body", "同步失败" + createRes.getString("errorMessage"));
}
JSONObject logRes = new JSONObject();
try {
logRes = restTemplate.postForObject("http://localhost:18085/Log/insert/log_data", logMap, JSONObject.class);
} catch (RestClientException e) {
e.printStackTrace();
}
System.out.println(logRes);
}
page++;
}
}
}

View File

@ -202,9 +202,10 @@ public class DeptController {
//判断部门是否在crm中存在
//请求封装
JSONObject deptIsExistReq = crmRequestUtil.getCRMList(Arrays.asList(
new Filter("EQ", "name", Arrays.asList(deptName)),
new Filter("EQ", "field_v711K__c", Arrays.asList(parentDeptName)),
new Filter("EQ", "field_31u4r__c", Arrays.asList(parentDeptCode))
//new Filter("EQ", "name", Arrays.asList(deptName)),
new Filter("EQ", "erp_id__c", Arrays.asList(deptId))
//new Filter("EQ", "field_v711K__c", Arrays.asList(parentDeptName)),
//new Filter("EQ", "field_31u4r__c", Arrays.asList(parentDeptCode))
), "DepartmentObj");
//开始发起请求

View File

@ -124,7 +124,7 @@ public class TenderingController {
tenderingMapReq.put("f9w5_applytype", applyTypeStr);//申请类型
tenderingMapReq.put("f9w5_lot", tenderingData.getString("batch_name__c") != null ? tenderingData.getString("batch_name__c") : "");//批次名称
tenderingMapReq.put("createorg_number", tenderingData.getString("erp_organization__c__v") != null ? tenderingData.getString("erp_organization__c__v") : "");//组织
tenderingMapReq.put("createorg_number", tenderingData.getString("erp_organization__c") != null ? tenderingData.getString("erp_organization__c") : "");//组织
//供应商ID
String vendorId = tenderingData.getString("bidding_agency__c") != null ? tenderingData.getString("bidding_agency__c") : "";