parent
28b5ee71f6
commit
848ce0a62d
|
|
@ -16,7 +16,7 @@ public class GetDtaResponse extends CBS8BaseResponse {
|
|||
private Body data;
|
||||
|
||||
@Data
|
||||
public static class Body {
|
||||
public static class Body extends CBS8PageInfo{
|
||||
/**
|
||||
* 明细列表
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -71,9 +71,6 @@ public class SyncCBSAccountDetailsJob extends BaseCronJob {
|
|||
user.setLoginid("sysadmin");
|
||||
|
||||
try {
|
||||
AccountManagementClient accountManagementClient = new AccountManagementClient();
|
||||
|
||||
|
||||
GetTransactionDetailRequest requestParam = new GetTransactionDetailRequest();
|
||||
requestParam.setCurrentPage(1);
|
||||
requestParam.setPageSize(1000);
|
||||
|
|
@ -92,12 +89,15 @@ public class SyncCBSAccountDetailsJob extends BaseCronJob {
|
|||
if (StrUtil.isNotBlank(paymentNatureList)) {
|
||||
requestParam.setPaymentNatureList(Arrays.stream(paymentNatureList.split(",")).collect(Collectors.toList()));
|
||||
}
|
||||
GetTransactionDetailResponse getTransactionDetailResponse = accountManagementClient.transactionDetailQuery(requestParam);
|
||||
List<GetTransactionDetailResponse.Detail> list = getTransactionDetailResponse.getData().getList();
|
||||
|
||||
//查询前1000条数据
|
||||
AccountManagementClient accountManagementClient = new AccountManagementClient();
|
||||
GetTransactionDetailResponse response = accountManagementClient.transactionDetailQuery(requestParam);
|
||||
List<GetTransactionDetailResponse.Detail> list = response.getData().getList();
|
||||
|
||||
//判断是否还存在数据,递归查询
|
||||
boolean hasNextPage = getTransactionDetailResponse.getData().isHasNextPage();
|
||||
int nextPage = getTransactionDetailResponse.getData().getNextPage();
|
||||
boolean hasNextPage = response.getData().isHasNextPage();
|
||||
int nextPage = response.getData().getNextPage();
|
||||
while (hasNextPage) {
|
||||
requestParam.setCurrentPage(nextPage);
|
||||
GetTransactionDetailResponse nextPageResponse = accountManagementClient.transactionDetailQuery(requestParam);
|
||||
|
|
|
|||
|
|
@ -3,11 +3,14 @@ package com.engine.salary.timer;
|
|||
import cn.hutool.core.util.StrUtil;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.SQLMapper;
|
||||
import com.engine.salary.mapper.cbs.UfHkrdzbMapper;
|
||||
import com.engine.salary.remote.cbs8.client.BillManagementClient;
|
||||
import com.engine.salary.remote.cbs8.config.EBS2ECConfig;
|
||||
import com.engine.salary.remote.cbs8.po.UfHkrdzbPO;
|
||||
import com.engine.salary.remote.cbs8.request.GetDtaRequest;
|
||||
import com.engine.salary.remote.cbs8.response.GetDtaResponse;
|
||||
import com.engine.salary.util.JsonUtil;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.db.MapperProxyFactory;
|
||||
import com.thoughtworks.xstream.XStream;
|
||||
import com.thoughtworks.xstream.security.AnyTypePermission;
|
||||
|
|
@ -64,6 +67,10 @@ public class SyncCBSPayDetailsJob extends BaseCronJob {
|
|||
return MapperProxyFactory.getProxy(SQLMapper.class);
|
||||
}
|
||||
|
||||
private UfHkrdzbMapper getUfHkrdzbMapper() {
|
||||
return MapperProxyFactory.getProxy(UfHkrdzbMapper.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
User user = new User();
|
||||
|
|
@ -93,10 +100,22 @@ public class SyncCBSPayDetailsJob extends BaseCronJob {
|
|||
requestParam.setHoldAccountList(Arrays.stream(holdAccountList.split(",")).collect(Collectors.toList()));
|
||||
requestParam.setBillVarietyList(Arrays.stream(billVarietyList.split(",")).collect(Collectors.toList()));
|
||||
|
||||
//查询前1000条数据
|
||||
BillManagementClient bailManagementClient = new BillManagementClient();
|
||||
GetDtaResponse getDtaResponse = bailManagementClient.dtaQuery(requestParam);
|
||||
GetDtaResponse response = bailManagementClient.dtaQuery(requestParam);
|
||||
List<GetDtaResponse.Detail> list = response.getData().getList();
|
||||
|
||||
List<GetDtaResponse.Detail> list = getDtaResponse.getData().getList();
|
||||
//判断是否还存在数据,递归查询
|
||||
boolean hasNextPage = response.getData().isHasNextPage();
|
||||
int nextPage = response.getData().getNextPage();
|
||||
while (hasNextPage) {
|
||||
requestParam.setCurrentPage(nextPage);
|
||||
GetDtaResponse nextPageResponse = bailManagementClient.dtaQuery(requestParam);
|
||||
List<GetDtaResponse.Detail> pageData = nextPageResponse.getData().getList();
|
||||
list.addAll(pageData);
|
||||
hasNextPage = nextPageResponse.getData().isHasNextPage();
|
||||
nextPage = nextPageResponse.getData().getNextPage();
|
||||
}
|
||||
|
||||
//加载cbs配置
|
||||
XStream xStream = new XStream();
|
||||
|
|
@ -118,6 +137,11 @@ public class SyncCBSPayDetailsJob extends BaseCronJob {
|
|||
String uniqueEbsKey = uniqueField.getEbsKey();
|
||||
List<String> uniqueDataKeys = getSQLMapper().listString(String.format("select %s from %s", uniqueKey, tableName));
|
||||
|
||||
//获取汇款人与办事处的对照数据
|
||||
List<UfHkrdzbPO> ufHkrdzbPOS = getUfHkrdzbMapper().listAll();
|
||||
Map<String, Integer> customerDepartmentMap = SalaryEntityUtil.convert2Map(ufHkrdzbPOS, UfHkrdzbPO::getKhmc, UfHkrdzbPO::getDepartmentId);
|
||||
|
||||
|
||||
for (GetDtaResponse.Detail detail : list) {
|
||||
Map<String, String> detailMap = JsonUtil.parseMap(detail, String.class);
|
||||
String uniqueData = detailMap.get(uniqueEbsKey);
|
||||
|
|
@ -136,8 +160,6 @@ public class SyncCBSPayDetailsJob extends BaseCronJob {
|
|||
add("modedatacreatertype");
|
||||
add("modedatacreatedate");
|
||||
add("modedatacreatetime");
|
||||
//业务逻辑字段,收款类型
|
||||
add("sklx");
|
||||
}};
|
||||
String currDate = TimeUtil.getCurrentDateString();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
||||
|
|
@ -148,16 +170,50 @@ public class SyncCBSPayDetailsJob extends BaseCronJob {
|
|||
add(0);
|
||||
add(String.format("'%s'", currDate));
|
||||
add(String.format("'%s'", currTime));
|
||||
//业务逻辑字段,收款类型,银承,商承
|
||||
add("AC01".equals(detailMap.get("billType")) ? 0 : 1);
|
||||
}};
|
||||
|
||||
String hkr = "";
|
||||
for (EBS2ECConfig.Table.Field field : table.getFields()) {
|
||||
//数据库字段
|
||||
String fieldName = field.getKey();
|
||||
fields.add(fieldName);
|
||||
// 接口值
|
||||
values.add(String.format("'%s'", detailMap.getOrDefault(field.getEbsKey(), "")));
|
||||
String value = detailMap.getOrDefault(field.getEbsKey(), "");
|
||||
values.add(String.format("'%s'", value));
|
||||
|
||||
//汇款人
|
||||
if ("hkr".equals(fieldName)) {
|
||||
hkr = value;
|
||||
}
|
||||
}
|
||||
|
||||
//业务逻辑字段,收款类型
|
||||
fields.add("sklx");
|
||||
values. add("AC01".equals(detailMap.get("billType")) ? 0 : 1);
|
||||
|
||||
/*
|
||||
* 认领逻辑,
|
||||
* 根据汇款人去表里匹配【汇款人与办事处的对照表】
|
||||
* 如果能匹配到数据,则状态改为已自动认领,同时把办事处(部门)的值同步到办事处字段中,是否系统自动认领同步为是;
|
||||
* 如对照标准无数据,则状态为:未认领;
|
||||
*/
|
||||
Integer departmentId = customerDepartmentMap.get(hkr);
|
||||
if(departmentId!=null){
|
||||
//认领
|
||||
fields.add("zt");
|
||||
values.add(1);
|
||||
|
||||
//是否系统认领
|
||||
fields.add("sfxtzdrl");
|
||||
values.add(1);
|
||||
|
||||
//办事处
|
||||
fields.add("szbm");
|
||||
values.add(departmentId);
|
||||
}else {
|
||||
//未认领
|
||||
fields.add("zt");
|
||||
values.add(0);
|
||||
}
|
||||
|
||||
String sql = String.format("insert into %s (%s) values (%s)", tableName, String.join(",", fields), values.stream().map(Object::toString).collect(Collectors.joining(",")));
|
||||
|
|
|
|||
Loading…
Reference in New Issue