From 55161cad355d6d20807ba1a5c1770c8237226019 Mon Sep 17 00:00:00 2001
From: xiang2lin <251481237@qq.com>
Date: Fri, 21 Jun 2024 18:36:55 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=BA=A4=E6=98=93=E6=98=8E?=
 =?UTF-8?q?=E7=BB=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../TransactionDetailPluginInitializer.java   |  4 +-
 .../cbs8/service/ICbsPluginService.java       |  7 ++
 .../service/impl/CbsPluginServiceImpl.java    | 84 +++++++++++++++++++
 .../src/main/resources/application-xel.yml    | 18 +++-
 4 files changed, 110 insertions(+), 3 deletions(-)

diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/TransactionDetailPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/TransactionDetailPluginInitializer.java
index 62f0a278..de84e734 100644
--- a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/TransactionDetailPluginInitializer.java
+++ b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/plugin/TransactionDetailPluginInitializer.java
@@ -116,8 +116,10 @@ public class TransactionDetailPluginInitializer extends PluginBaseEntity {
         transactionDetailReqDTO.setEndDate(DateUtil.today());
         transactionDetailReqDTO.setDateType("0");
         transactionDetailReqDTO.setLoanType("2");
+        //1查询交易明细
         List<TransactionDetailDTO> transactionDetailList = cbsPluginService.queryTransactionDetail(transactionDetailReqDTO);
-        System.out.println("11111");
+        //保存交易明细到OA底表
+        cbsPluginService.saveTransactionDetail(transactionDetailList);
         return new JsonResultEntity("成功",true,transactionDetailList);
         //return null;
     }
diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/ICbsPluginService.java b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/ICbsPluginService.java
index 69720b16..bfa70205 100644
--- a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/ICbsPluginService.java
+++ b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/ICbsPluginService.java
@@ -60,4 +60,11 @@ public interface ICbsPluginService {
      * @return
      */
     AgentPayResultResDTO agentPayResult(AgentPayResultRequestDTO agentPayResultRequestDTO);
+
+    /**
+     * 保存交易明细到OA底表
+     * @param transactionDetailList
+     */
+    void saveTransactionDetail(List<TransactionDetailDTO> transactionDetailList);
+
 }
diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/impl/CbsPluginServiceImpl.java b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/impl/CbsPluginServiceImpl.java
index 347cad0c..47426178 100644
--- a/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/impl/CbsPluginServiceImpl.java
+++ b/buildpackage/src/main/java/com/hzya/frame/plugin/cbs8/service/impl/CbsPluginServiceImpl.java
@@ -12,6 +12,7 @@ import com.hzya.frame.cbs8.service.ICbs8Service;
 import com.hzya.frame.cbs8.util.CBSUtil;
 import com.hzya.frame.cbs8.util.PayState;
 import com.hzya.frame.plugin.cbs8.service.ICbsPluginService;
+import com.hzya.frame.seeyon.cap4.form.dto.*;
 import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentDetailEntity;
 import com.hzya.frame.seeyon.cbs8.entity.AgentPaymentEntity;
 import com.hzya.frame.seeyon.cbs8.entity.CbsLogEntity;
@@ -288,4 +289,87 @@ public class CbsPluginServiceImpl implements ICbsPluginService {
         }
         return null;
     }
+
+    /**
+     * 保存交易明细到OA底表
+     *
+     * @param transactionDetailList
+     */
+    @Override
+    public void saveTransactionDetail(List<TransactionDetailDTO> transactionDetailList) {
+        if (CollectionUtils.isNotEmpty(transactionDetailList)){
+            //过滤已经保存过的数据
+            for (TransactionDetailDTO dto : transactionDetailList) {
+                List<FormDataDTO> dataList = new ArrayList<>();
+                FormDTO formDTO = new FormDTO();
+                formDTO.setFormCode("formmain_0233");
+                formDTO.setLoginName("yonyou");
+                formDTO.setRightId("6603635988997229999.-8611088937958683581");
+                String field0001=dto.getAccountNo();//我方银行账号
+                String field0002=dto.getAccountName();//我方户名
+                String field0003=dto.getOpenBank();//我方开户行
+                String field0004=dto.getBankType();//我方银行类型
+                String field0005=dto.getTransactionSerialNumber();//交易流水号
+                String field0006=dto.getBankTransactionDate();//交易日期
+                String field0007=dto.getBankSerialNumber();//银行流水号
+                String field0008=dto.getCurrency();//币种
+                String field0009=dto.getIncurredAmount();//收款金额
+                String field0010=dto.getPurpose();//用途
+                String field0011=dto.getDigest();//摘要
+                String field0012=dto.getOppositeAccount();//对方账号
+                String field0013=dto.getOppositeName();//对方户名
+                String field0014=dto.getOppositeOpeningBank();//对方开户行
+                String field0015=dto.getRemark();//备注
+                //fields
+                List<RecordFieldDTO> fields = new ArrayList<>();
+                fields.add(new RecordFieldDTO("field0001",field0001,field0001));
+                fields.add(new RecordFieldDTO("field0002",field0002,field0002));
+                fields.add(new RecordFieldDTO("field0003",field0003,field0003));
+                fields.add(new RecordFieldDTO("field0004",field0004,field0004));
+                fields.add(new RecordFieldDTO("field0005",field0005,field0005));
+                fields.add(new RecordFieldDTO("field0006",field0006,field0006));
+                fields.add(new RecordFieldDTO("field0007",field0007,field0007));
+                fields.add(new RecordFieldDTO("field0008",field0008,field0008));
+                fields.add(new RecordFieldDTO("field0009",field0009,field0009));
+                fields.add(new RecordFieldDTO("field0010",field0010,field0010));
+                fields.add(new RecordFieldDTO("field0011",field0011,field0011));
+                fields.add(new RecordFieldDTO("field0012",field0012,field0012));
+                fields.add(new RecordFieldDTO("field0013",field0013,field0013));
+                fields.add(new RecordFieldDTO("field0014",field0014,field0014));
+                fields.add(new RecordFieldDTO("field0015",field0015,field0015));
+                //masterTable
+                MasterTableDTO masterTableDTO = new MasterTableDTO();
+                masterTableDTO.setName("formmain_1284");
+                RecordDTO recordDTO = new RecordDTO();
+                recordDTO.setId(UUIDLong.longUUID());
+                recordDTO.setFields(fields);
+                masterTableDTO.setRecord(recordDTO);
+                //dataList
+                FormDataDTO formDataDTO = new FormDataDTO();
+                formDataDTO.setMasterTable(masterTableDTO);
+                dataList.add(formDataDTO);
+                formDTO.setDataList(dataList);
+            }
+        }
+    }
+
+    /**
+     * 无流程表单模版
+     * @param type
+     *  transaction 交易明细
+     *  payApply 支付申请日志
+     * @return
+     */
+    private String getXmlTemplate(String type){
+        if (StrUtil.isNotEmpty(type)){
+            if ("transaction".equals(type)){
+                //交易明细
+                return "<forms  version=\"2.1\"><formExport><summary  id=\"-6287716442449165745\" name=\"formmain_0233\"/><definitions><column  id=\"field0001\" type=\"0\" name=\"我方银行账户\" isNullable=\"false\" length=\"100\"/><column  id=\"field0002\" type=\"0\" name=\"我方户名\" isNullable=\"false\" length=\"100\"/><column  id=\"field0003\" type=\"0\" name=\"我方开户行\" isNullable=\"false\" length=\"100\"/><column  id=\"field0004\" type=\"0\" name=\"我方银行类型\" isNullable=\"false\" length=\"100\"/><column  id=\"field0005\" type=\"0\" name=\"交易流水号\" isNullable=\"false\" length=\"100\"/><column  id=\"field0006\" type=\"3\" name=\"交易日期\" isNullable=\"false\" length=\"255\"/><column  id=\"field0007\" type=\"0\" name=\"银行流水号\" isNullable=\"false\" length=\"100\"/><column  id=\"field0008\" type=\"0\" name=\"币种\" isNullable=\"false\" length=\"100\"/><column  id=\"field0009\" type=\"4\" name=\"收款金额\" isNullable=\"false\" length=\"20\"/><column  id=\"field0010\" type=\"0\" name=\"用途\" isNullable=\"false\" length=\"800\"/><column  id=\"field0011\" type=\"0\" name=\"摘要\" isNullable=\"false\" length=\"256\"/><column  id=\"field0012\" type=\"0\" name=\"对方账号\" isNullable=\"false\" length=\"100\"/><column  id=\"field0013\" type=\"0\" name=\"对方户名\" isNullable=\"false\" length=\"100\"/><column  id=\"field0014\" type=\"0\" name=\"对方开户行\" isNullable=\"false\" length=\"100\"/><column  id=\"field0015\" type=\"0\" name=\"备注\" isNullable=\"false\" length=\"800\"/></definitions><values><column  name=\"我方银行账户\"><value><![CDATA[{}]]></value></column><column  name=\"我方户名\"><value><![CDATA[{}]]></value></column><column  name=\"我方开户行\"><value><![CDATA[{}]]></value></column><column  name=\"我方银行类型\"><value><![CDATA[{}]]></value></column><column  name=\"交易流水号\"><value><![CDATA[{}]]></value></column><column  name=\"交易日期\"><value><![CDATA[{}]]></value></column><column  name=\"银行流水号\"><value><![CDATA[{}]]></value></column><column  name=\"币种\"><value><![CDATA[{}]]></value></column><column  name=\"收款金额\"><value><![CDATA[{}]]></value></column><column  name=\"用途\"><value><![CDATA[{}]]></value></column><column  name=\"摘要\"><value><![CDATA[{}]]></value></column><column  name=\"对方账号\"><value><![CDATA[{}]]></value></column><column  name=\"对方户名\"><value><![CDATA[{}]]></value></column><column  name=\"对方开户行\"><value><![CDATA[{}]]></value></column><column  name=\"备注\"><value><![CDATA[{}]]></value></column></values><subForms/></formExport></forms>";
+            }else if ("payApply".equals(type)){
+                //支付日志
+                return "<forms  version=\"2.1\"><formExport><summary  id=\"9195604394844442459\" name=\"formmain_0232\"/><definitions><column  id=\"field0002\" type=\"0\" name=\"流程标题\" isNullable=\"false\" length=\"100\"/><column  id=\"field0003\" type=\"0\" name=\"付款主体公司\" isNullable=\"false\" length=\"100\"/><column  id=\"field0004\" type=\"0\" name=\"收款人\" isNullable=\"false\" length=\"100\"/><column  id=\"field0019\" type=\"4\" name=\"金额\" isNullable=\"false\" length=\"20\"/><column  id=\"field0005\" type=\"0\" name=\"CBS支付申请单号\" isNullable=\"false\" length=\"100\"/><column  id=\"field0006\" type=\"0\" name=\"OA单据编号\" isNullable=\"false\" length=\"100\"/><column  id=\"field0007\" type=\"0\" name=\"OA单据ID\" isNullable=\"false\" length=\"100\"/><column  id=\"field0008\" type=\"0\" name=\"OA中文表名\" isNullable=\"false\" length=\"100\"/><column  id=\"field0009\" type=\"0\" name=\"OA数据库表名\" isNullable=\"false\" length=\"100\"/><column  id=\"field0010\" type=\"0\" name=\"支付状态\" isNullable=\"false\" length=\"100\"/><column  id=\"field0011\" type=\"0\" name=\"支付信息\" isNullable=\"false\" length=\"100\"/><column  id=\"field0012\" type=\"0\" name=\"支付申请状态\" isNullable=\"false\" length=\"100\"/><column  id=\"field0014\" type=\"0\" name=\"成功标记\" isNullable=\"false\" length=\"100\"/></definitions><values><column  name=\"流程标题\"><value><![CDATA[{}]]></value></column><column  name=\"付款主体公司\"><value><![CDATA[{}]]></value></column><column  name=\"收款人\"><value><![CDATA[{}]]></value></column><column  name=\"金额\"><value><![CDATA[{}]]></value></column><column  name=\"CBS支付申请单号\"><value><![CDATA[{}]]></value></column><column  name=\"OA单据编号\"><value><![CDATA[{}]]></value></column><column  name=\"OA单据ID\"><value><![CDATA[{}]]></value></column><column  name=\"OA中文表名\"><value><![CDATA[{}]]></value></column><column  name=\"OA数据库表名\"><value><![CDATA[{}]]></value></column><column  name=\"支付状态\"><value><![CDATA[{}]]></value></column><column  name=\"支付信息\"><value><![CDATA[{}]]></value></column><column  name=\"支付申请状态\"><value><![CDATA[{}]]></value></column><column  name=\"成功标记\"><value><![CDATA[{}]]></value></column></values><subForms/></formExport></forms>";
+            }
+        }
+        return null;
+    }
 }
diff --git a/buildpackage/src/main/resources/application-xel.yml b/buildpackage/src/main/resources/application-xel.yml
index 17399204..13b3782c 100644
--- a/buildpackage/src/main/resources/application-xel.yml
+++ b/buildpackage/src/main/resources/application-xel.yml
@@ -12,10 +12,24 @@ spring:
     dynamic:
       datasource:
         master:
-          url: jdbc:mysql://hzya.ufyct.com:9096/businesscenternew?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
+          url: jdbc:mysql://hzya.ufyct.com:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
           username: root
-          password: bd993088e8a7c3dc5f44441617f9b4bf
+          password: 62e4295b615a30dbf3b8ee96f41c820b
           driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
 savefile:
     #    文件保存路径
   path: /Users/xiangerlin/work/app/logs/ydc
+cbs8:
+  appId: 1P4AGrpz
+  appSecret: 2c2369ae5dc04382844bbe3a5abf39e1bea9cd3a
+  url: https://cbs8-openapi-reprd.csuat.cmburl.cn
+    # 测试用这个 这个是银行给的,和下面的公钥不是一对密钥
+  ya_private_key: 83BA7EC821D35F4CB31FF9A51C1EFA520FC52AF828C2337F88E91CF119B07F44
+  # 这个私钥到时候上传到cbs,和下面到是同一对
+  #ya_private_key: e1eacfdee9b8d4184437d5a2071e17ce31befc3d93395f9f05709ed562e8dc46
+  ya_public_key: 044fa399d2223760f17b81b863cb482b009294c4516f8a605dea1475ec09e720eaa98468715e5ad509a592a0b426061551c5a3df236966c23253a7d894eac0dcde
+  cbs_public_key: 0469146F06BF3B01236E84632441E826F3067A6B93BC3839C836A06007869CD351FBBE388B51F742859388BBC1DE089923AAFBC69E448F15141DDF30EE6CE90185
+  #电子回单下载临时存放位置
+  elec_path: /Users/xiangerlin/Downloads/
+OA:
+  data_source_code: yc-test
\ No newline at end of file