package com.engine.salary.timer; import cn.hutool.core.util.StrUtil; import com.engine.salary.exception.CBS8RunTimeException; import com.engine.salary.mapper.SQLMapper; import com.engine.salary.mapper.cbs.UfHkrdzbMapper; import com.engine.salary.remote.cbs8.client.AccountManagementClient; import com.engine.salary.remote.cbs8.config.EBS2ECConfig; import com.engine.salary.remote.cbs8.po.UfHkrdzbPO; import com.engine.salary.remote.cbs8.request.GetTransactionDetailRequest; import com.engine.salary.remote.cbs8.response.GetTransactionDetailResponse; import com.engine.salary.remote.cbs8.JsonUtil; import com.engine.salary.remote.cbs8.SalaryEntityUtil; import com.engine.salary.remote.cbs8.util.db.MapperProxyFactory; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.security.AnyTypePermission; import lombok.extern.slf4j.Slf4j; import weaver.conn.RecordSet; import weaver.formmode.setup.ModeRightInfo; import weaver.general.GCONST; import weaver.general.TimeUtil; import weaver.hrm.User; import weaver.interfaces.schedule.BaseCronJob; import java.io.File; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; /** * 获取境内账户明细 *
Copyright: Copyright (c) 2024
*Company: 泛微软件
* * @author qiantao * @version 1.0 **/ @Slf4j public class SyncCBSAccountDetailsJob extends BaseCronJob { /** * 开始日期 格式为yyyy-mm-dd */ private String startDate; /** * 结束日期 格式为yyyy-mm-dd */ private String endDate; /** * 借贷类型 1-借;2-贷 */ private String loanType; /** * 款项性质列表 */ private String paymentNatureList; /** * 日期类型 0-交易日期 */ private String dateType; /** * 账户列表 查询账户列表,不传默认返回全部 */ private String accountNoList; /** * 银行类型列表 例如招行CMB,银行类型枚举见附录4.1.5 */ private String bankTypeList; /** * 币种列表 见附录币种枚举,4.1.1 */ private String currencyList; /** * 明细来源 * B:银行,即银行直联 * U:用户,即手工/ERP接口导入 * 不传默认查全部 */ private String detailedSources; /** * 明细类型 1-当日明细 2-历史明细 与明细日期无关,仅标识数据来源银行的不同接口 */ private String currentFlag; /** * 账户性质列表 客户在公共设置>基础信息>账户性质查询自定义内容,例如AA-综合户,此处传值“AA” */ private String accountNatureList; /** * 银行流水号 银行流水号 */ private String bankSerialNumber; /** * 交易流水号 交易流水号,由CBS8定义生成的唯一标识 */ private Long transactionSerialNumber; /** * 单位编码列表 客户在公共设置>基础信息>组织机构维护,例如0001-XX科技有限公司,此处传0001 */ private String unitCodeList; /** * ERP业务参考号 erpSerialNumber */ private String erpSerialNumber; private SQLMapper getSQLMapper() { return MapperProxyFactory.getProxy(SQLMapper.class); } private UfHkrdzbMapper getUfHkrdzbMapper() { return MapperProxyFactory.getProxy(UfHkrdzbMapper.class); } @Override public void execute() { User user = new User(); user.setUid(1); user.setLoginid("sysadmin"); try { GetTransactionDetailRequest requestParam = new GetTransactionDetailRequest(); requestParam.setCurrentPage(1); requestParam.setPageSize(1000); if (StrUtil.isNotBlank(startDate) && StrUtil.isNotBlank(endDate)) { requestParam.setStartDate(startDate); requestParam.setEndDate(endDate); } else { String nowDate = LocalDate.now().toString(); requestParam.setStartDate(nowDate); requestParam.setEndDate(nowDate); } requestParam.setLoanType(loanType); requestParam.setPaymentNatureList(paymentNatureList == null ? null : Arrays.stream(paymentNatureList.split(",")).collect(Collectors.toList())); requestParam.setDateType(dateType); requestParam.setAccountNoList(accountNoList == null ? null : Arrays.stream(accountNoList.split(",")).collect(Collectors.toList())); requestParam.setBankTypeList(bankTypeList == null ? null : Arrays.stream(bankTypeList.split(",")).collect(Collectors.toList())); requestParam.setCurrencyList(currencyList == null ? null : Arrays.stream(currencyList.split(",")).collect(Collectors.toList())); requestParam.setDetailedSources(detailedSources); requestParam.setCurrentFlag(currentFlag); requestParam.setAccountNatureList(accountNatureList == null ? null : Arrays.stream(accountNatureList.split(",")).collect(Collectors.toList())); requestParam.setBankSerialNumber(bankSerialNumber); requestParam.setTransactionSerialNumber(transactionSerialNumber); requestParam.setUnitCodeList(unitCodeList == null ? null : Arrays.stream(unitCodeList.split(",")).collect(Collectors.toList())); requestParam.setErpSerialNumber(erpSerialNumber); //查询前1000条数据 AccountManagementClient accountManagementClient = new AccountManagementClient(); GetTransactionDetailResponse response = accountManagementClient.transactionDetailQuery(requestParam); List