电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二次开发流程介绍

来源:金蝶云社区作者:金蝶2024-09-225

二次开发流程介绍

1、插件元数据介绍

插件元数据属性字段说明:

字段名

说明

默认值

示例

host

前置机IP地址配置

port

前置机端口配置

protocol

前置机通信协议

http

timeout

前置机读取流超时(min

3

charset

前置机编码字符集

GBK

bankShortName

银行名称英文简称

ABC

bankName

银行名称

中国农业银行

bankVersionID

银行版本标识

ABC_DC

bankVersionName

银行版本名称

中国农业银行公网版

description

银行插件描述信息

中国农业银行

keyNames

同行匹配关键字

"中国农业银行", "农业银行", "农行"

concurrentCount

前置机并发数量

1


插件元数据方法说明:

方法名称

说明

baseConfigInit

预置前置机基本属性值:protocoltimeoutcharset

metaDataInit

预置插件描述信息:bankShortNamebankNamebankVersionIDbankVersionNamedescriptionkeyNamesconcurrentCount

getBankLoginExtraConfig

前置机额外业务关联配置,如:前置机账号、密码等,可不重写

getFrontProxyConfig

金蝶前置机代理连接配置项,如:金蝶代理程序端口、协议类型等,可不重写

getBizImplClasses

注册开发的银行接口实现类

getBatchSeqIDClasses

银行付款批次流水号生成器(银企框架默认为16位),可不重写

getDetailSeqIDClasses

银行付款明细流水号生成器(银企框架默认为8位),可不重写

getPropertyConfig

银行级别业务配置项

getDetailNoRule

设置回单匹配码规则,可不重写


2、开发环境搭建:

(1)、本地搭建windows版轻量级苍穹平台,登录苍穹 平台 官网 查看具体安装步骤;

1 苍穹平台官网

(2)、使用IntelliJ IDEA创建gradle工程,步骤如下:

填写银行插件名称

GroupId固定填写:kd.ebg.aqap

ArtifactId命名规则:ebg-aqap-banks-custom,其中custom代表具体银行版本

Version填写:1.0

创建完成后等待预置处理,系统自动下载gradle6.3依赖,需要停止下载,前往ideasettings,搜索gradle配置默认gradle home,选取安装苍穹轻量级环境下的gradle目录。


(3)、按照下面配置信息,修改build.gradle文件,注意修改仓库目录为苍穹平台安装目录:

apply plugin: 'java'

apply plugin: 'maven'


sourceCompatibility=1.8

group = 'kd.ebg.aqap'

version = '1.0'

tasks.withType(JavaCompile) {

   options.encoding = "UTF-8"

}


def trd= 'D:/ierp3.0/mservice-cosmic/lib/trd'

def bos= 'D:/ierp3.0/mservice-cosmic/lib/bos'

def biz= 'D:/ierp3.0/mservice-cosmic/lib/biz'


dependencies {

   compile fileTree(dir: bos, include: '*.jar')

   compile fileTree(dir: trd, include: '*.jar')

   compile fileTree(dir: biz, include: '*.jar')

}


task sourcesJar(type: org.gradle.jvm.tasks.Jar, dependsOn: build) {

   classifier = 'sources'

   from sourceSets.main.allSource

}


task copyJarTodir(type: Copy){

   from 'build/libs'

   into '/home/local/bos'

   exclude '**/*.class'

}

test.ignoreFailures true


打开右侧栏gradle进行编译、打包,确认在项目工程输出ebg-aqap-banks-custom-1.0.jar


至此,开发环境搭建完成。


3、插件开发

(1)、目录结构:


插件包必须按照kd.ebg.aqap.banks作为开头,后面拼接银行版本,例如:kd.ebg.aqap.banks.moc.test

插件包内部结构主要分为个部分:

kd.ebg.aqap.banks.*

|-- /customize            扩展实现客户化业务接口

|-- /service              实现银行业务接口

|-- BankBusinessConfig   银行参数配置

|-- MetaDataImpl        银行插件元数据





(2)、银行插件元数据

默认套用FBEMetaDataTemplate模板,实现BankMetaDataCollector接口

public class MocTestMetaDataImpl

extends FBEMetaDataTemplate implements BankMetaDataCollector {


   @Override

   public void baseConfigInit(){

       setExchangeProtocol(BankLoginConfigUtil.PROTOCOL_TCP);

       setTimeOut(3);

       setCharSet(BankLoginConfigUtil.CHARSET_GBK);

   }


   @Override

   public void metaDataInit() {

       setBankName("客户化开发银行");

       setBankVersionID(MocTestConstants.BANK_VERSION_ID);

       setBankShortName("MOC");

       setBankVersionName("客户化开发银行测试版本");

       setDescription("客户化开发银行");

       setKeyNames(Lists.newArrayList("客户化开发银行"));

   }


   /**

    * 前置机代理配置项,不需要可以不填

    * @return

    */

   @Override

   public List<BankLoginConfig> getFrontProxyConfig(){

       return Lists.newArrayList(

               BankLoginConfigUtil.getBankLoginConfig("proxy_config","前置机代理配置项", "示例配置" ,"test", false, true)

       );

   }


   /**

    * 前置机额外配置项,前置机特有配置项

    * @return

    */

   @Override

   public List<BankLoginConfig> getBankLoginExtraConfig(){

       return Lists.newArrayList(

               BankLoginConfigUtil.getBankLoginConfig("moc_login_config1", "企业机构编号"),

               BankLoginConfigUtil.getBankLoginConfig("moc_login_config2", "操作员编号"),

               BankLoginConfigUtil.getBankLoginConfig("moc_login_config3","测试开关,是否启用", "", Lists.newArrayList("true", "false"), "false", false, false,false),

               BankLoginConfigUtil.getBankLoginConfig("moc_login_config4","测试服务器日期格式yyyy-MM-dd", "正式环境不要配置" ,"", false, true),

               BankLoginConfigUtil.getBankLoginConfig("moc_login_config5", "流读取过程中等待间隔(ms)", "500").set2Nullable()

       );

   }


   /**

    * 电子回单类型配置项

    * @return

    */

   @Override

   public List<BankLoginConfig> getBankLoginReceiptBaseConfig(){

       return Lists.newArrayList(

               BankLoginConfigUtil.getBankLoginConfig("moc_receipt_config1", "是否银行主动推送回单", "默认请选择'',银行主动推送文件;若需要通过erp接口下载则选'',要求回单量小于50m每日,且不保存7天前的历史回单,且回单任务不展示每单的详情", Lists.newArrayList("", ""), "", false, false, false),

               BankLoginConfigUtil.getBankLoginConfig("moc_receipt_config2", "是否使用总行推送通道", "总行文件格式和分行不同:总行11123412300001234_20200101_CommonSingle_1.zip,分行20200101.zip。请根据实际情况选择,否则无法解析。银企平台也需要做同样的配置", Lists.newArrayList("", ""), "", false, false, false)

       );

   }


   /**

    * 注册接口实现类

    * @return

    */

   @Override

   public List<Class<? extends IBankService>> getBizImplClasses() {

       return Lists.newArrayList(

               kd.ebg.aqap.bank.moc.test.service.balance.HistoryBalanceImpl.class,

               kd.ebg.aqap.bank.moc.test.service.balance.TodayBalanceImpl.class,

               kd.ebg.aqap.bank.moc.test.service.detail.HistoryDetailImpl.class,

               kd.ebg.aqap.bank.moc.test.service.detail.TodayDetailImpl.class

       );

   }



   /**

    * 自定义付款批次流水号生成器

    * @return

    */

   @Override

   public List<Class<? extends IBankBatchSeqIDCreator>> getBatchSeqIDClasses() {

       return Lists.newArrayList();

   }


   /**

    * 自定义付款明细流水号生成器

    * @return

    */

   @Override

   public List<Class<? extends IBankDetailSeqIDCreator>> getDetailSeqIDClasses() {

       return Lists.newArrayList();

   }


   /**

    * 注册插件业务配置项

    * @return

    */

   @Override

   public BankPropertyConfig getPropertyConfig() {

       return new BankBusinessConfig();

   }


}


(3)、银行参数配置

public class BankBusinessConfig extends BankPropertyConfig {

   @Override

   public String getBankVersionID() {

       return MocTestConstants.BANK_VERSION_ID;

   }


   @Override

   public List<PropertyConfigItem> getAllPropertyConfigItems() {

       // 账号基本属性配置项

       List<PropertyConfigItem> list = getBankAddtionalPropertyConfigItems();

       list.addAll(Lists.newArrayList(

               MOC_BUSINESS_CONFIG

       ));

       return list;

   }


   private static final PropertyConfigItem MOC_BUSINESS_CONFIG =

           PropertyConfigItem.builder()

                   .key("moc_business_config")

                   .name("示例业务配置项")

                   .desc("示例业务配置项(公共参数)")

                   .minValueNum(0)

                   .maxValueNum(200)

                   .type(BankPropertyConfigType.COMMON_PARAM.getName())

                   .build();

}


(4)、实现银行业务接口:


service

|-- balance   余额查询(当日、历史)

|-- detail     明细查询(当日、历史)

|-

二次开发流程介绍

1、插件元数据介绍插件元数据属性字段说明:字段名说明默认值示例host前置机IP地址配置port前置机端口配置protocol前置机通信协议httptimeo...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信