调用金蝶EAS系统标准凭证接口,封装凭证对象,调用业务接口前需先登录

第三方系统与金蝶EAS系统凭证集成时,调用金蝶EAS系统标准凭证接口WSGLWebServiceFacade,下载对应的wsdl文件,生成客户端代码之后,可参考以下接口调用方式。

与EAS系统进行凭证集成时,最大的工作量部分在于基础数据的同步,基础数据一致的情况下,考虑凭证集成。

 

 

import com.sdic.services.util.LoginUtil;
import com.sdic.services.gl.client.WSWSVoucher;
import com.sdic.services.gl.WSGLWebServiceFacadeSrvProxyServiceLocator;

/**
 * 金蝶EAS财务系统与第三方系统集成参考
 * @author 郭旭
 *
 */
public class Test {

	public static void main(String[] args) throws Exception {
		
		LoginUtil.login(); //登录EAS系统
		String[] results = null; //导入凭证操作的反馈信息
		WSWSVoucher[] vouchers = new WSWSVoucher[156];
		int seq = 1; //分录序号
		for(int i = 0; i < 156; i += 3){
			vouchers[i] = getWSVoucher1("1011001", 1, seq); //借方分录
			vouchers[i + 1] = getWSVoucher2("60210010101", 1, seq + 1); //贷方分录
			vouchers[i + 2] = getWSVoucher3("1011001", 1, seq); //现金流量(依附借方分录)
			seq += 2;
		}
		
		WSGLWebServiceFacadeSrvProxyServiceLocator locator = null;
		locator = new WSGLWebServiceFacadeSrvProxyServiceLocator();
		
		// 需引入现金流量时,最后一个参数为1,否则为0
		// 需直接生成提交状态的凭证时,第二个参数为1,否则为0
		results = locator.getWSGLWebServiceFacade().importVoucher(vouchers, 1, 0, 1);
		System.out.println("返回值数组长度:" + results.length);
		for(String result : results){
			System.out.println(result);
		}
		
	}
	
	/**
	 * 封装凭证分录(借方,正向凭证)
	 * @param accmountNumber 科目编码
	 * @param amount 金额
	 * @param entrySeq 分录行号
	 * 
	 */
	public static WSWSVoucher getWSVoucher1(String accmountNumber, double amount, int entrySeq) throws Exception {
		
		WSWSVoucher voucher = new WSWSVoucher();
		voucher.setVoucherNumber(""); //凭证号
		voucher.setCompanyNumber("001"); //公司编码
		voucher.setBookedDate("2016-09-01"); //记账日期
		voucher.setBizDate("2016-09-01"); //业务日期
		voucher.setPeriodYear(2016); //年
		voucher.setPeriodNumber(9); //期间(月)
		voucher.setVoucherType("记"); //凭证类型
		voucher.setDescription("测试数据,来自凭证接口");
		
		voucher.setAccountNumber(accmountNumber); //科目编码
		voucher.setEntrySeq(entrySeq); //分录行号
		voucher.setEntryDC(1); //借贷方向:1,借;0(-1),贷
		voucher.setCurrencyNumber("BB01"); //币别编码
		voucher.setCreator("张三"); //制单人
		voucher.setVoucherAbstract("测试数据");
		
		voucher.setOriginalAmount(amount); //原币金额
		voucher.setDebitAmount(amount); //借方金额
		voucher.setCreditAmount(0); //贷方金额
		
		voucher.setAsstSeq(1); //辅助账行
		voucher.setAsstActType1("客商"); //辅助核算
		voucher.setAsstActNumber1("03.03001"); //核算项目编码
		voucher.setAsstActName1("某某银行"); //核算项目名称
		voucher.setItemFlag(0); //现金流量标记
		
		return voucher;
		
	}
	
	/**
	 * 封装凭证分录(贷方,正向凭证)
	 * @param accmountNumber 科目编码
	 * @param amount 金额
	 * @param entrySeq 分录行号
	 * 
	 */
	public static WSWSVoucher getWSVoucher2(String accmountNumber, double amount, int entrySeq) throws Exception {
		
		WSWSVoucher voucher = new WSWSVoucher();
		voucher.setVoucherNumber(""); //凭证号
		voucher.setCompanyNumber("001"); //公司编码
		voucher.setBookedDate("2016-09-01"); //记账日期
		voucher.setBizDate("2016-09-01"); //业务日期
		voucher.setPeriodYear(2016); //年
		voucher.setPeriodNumber(9); //期间(月)
		voucher.setVoucherType("记"); //凭证类型
		voucher.setDescription("测试数据,来自凭证接口");
		
		voucher.setAccountNumber(accmountNumber); //科目编码
		voucher.setEntrySeq(entrySeq); //分录行号
		voucher.setEntryDC(-1); //借贷方向:1,借;0(-1),贷
		voucher.setCurrencyNumber("BB01"); //币别编码
		voucher.setCreator("张三"); //制单人
		voucher.setVoucherAbstract("测试数据");
		
		voucher.setOriginalAmount(amount); //原币金额
		voucher.setDebitAmount(0); //借方金额
		voucher.setCreditAmount(amount); //贷方金额
		
		voucher.setAsstSeq(1); //辅助账行
		voucher.setAsstActType1("某某项目"); //辅助核算
		voucher.setAsstActNumber1("001"); //核算项目编码
		voucher.setAsstActName1("某某信托项目"); //核算项目名称
		voucher.setAsstActType2("部门"); //辅助核算
		voucher.setAsstActNumber2("001"); //核算项目编码
		voucher.setAsstActName2("公司高管"); //核算项目名称
		voucher.setItemFlag(0); //现金流量标记
		
		return voucher;
		
	}
	
	/**
	 * 封装凭证现金流量(借方,正向凭证)
	 * 该方法除现金流量标记及相关字段外,其余与借方分录(现金类科目)完全一致
	 * @param accmountNumber 科目编码
	 * @param amount 金额
	 * @param entrySeq 分录行号
	 * 
	 */
	public static WSWSVoucher getWSVoucher3(String accmountNumber, double amount, int entrySeq) throws Exception {
		
		WSWSVoucher voucher = new WSWSVoucher();
		voucher.setVoucherNumber(""); //凭证号
		voucher.setCompanyNumber("001"); //公司编码
		voucher.setBookedDate("2016-09-01"); //记账日期
		voucher.setBizDate("2016-09-01"); //业务日期
		voucher.setPeriodYear(2016); //年
		voucher.setPeriodNumber(9); //期间(月)
		voucher.setVoucherType("记"); //凭证类型
		voucher.setDescription("测试数据,来自凭证接口");
		
		voucher.setAccountNumber(accmountNumber); //科目编码
		voucher.setEntrySeq(entrySeq); //分录行号
		voucher.setEntryDC(1); //借贷方向:1,借;0(-1),贷
		voucher.setCurrencyNumber("BB01"); //币别编码
		voucher.setCreator("张三"); //制单人
		voucher.setVoucherAbstract("测试数据");
		
		voucher.setOriginalAmount(amount); //原币金额
		voucher.setDebitAmount(amount); //借方金额
		voucher.setCreditAmount(0); //贷方金额
		
		voucher.setAsstSeq(1); //辅助账行
		voucher.setAsstActType1("客商"); //辅助核算
		voucher.setAsstActNumber1("03.03001"); //核算项目编码
		voucher.setAsstActName1("某某银行"); //核算项目名称
		
		/*
		 * 以上部分与现金类科目分录的封装完全一致
		 * 以下为现金流量相关字段,现金流量标记固定值为1
		 * 主表项目需填写正确的主表项目编码
		 */
		voucher.setItemFlag(1); //现金流量标记
		voucher.setOppAccountSeq(2); //对方科目分录号
		voucher.setPrimaryItem("CF1030-999"); //主表项目:收到的其他与经营活动有关的现金--外部
		voucher.setCashflowAmountOriginal(amount); //现金流量原币金额
		voucher.setCashflowAmountLocal(amount); //本位币金额
		voucher.setCashflowAmountRpt(amount); //报告币金额
		voucher.setType("2"); //现金流量性质,外部:2,内部:3;
		
		return voucher;
		
	}

}

 

 

 

 

 

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值