BCDL 培训业务1 同步凭证 制单提交审批 回单确认 复制

--青海电信  同步凭证  M8InterfaceAction   bcdl_m8.log 

1.   AccountantToUser accounts=serviceFactory.getTransferPayeeService().loadAuditedAccountantsByUser(this.getCurrentUser(request).getUserID());

--对应的SQL

select a from AccountantToUser a where a.user.userID = :userID and a.isAuditing is true

得到该用户下面能够同步的帐套,在我们系统里面可以配置用户对应的帐套

 

--电信的是根据voucherID + 来确定唯一的

--移动是根据voucherno + invoiceNo来确定唯一的

String sql = "select distinct v.VOUCHER_ID,v.UNIT_CODE,v.CHECKDATE from CM_M8_VOUCHER v,CM_M8_VOUCHER_DETAIL vd,CM_M8_VOUCHER_SOURCE_TYPE t, CM_M8_ACCOUNT cma where "
      + "v.VOUCHER_ID=vd.VOUCHER_ID and v.SOURCE_ID=t.SOURCEID and v.UNIT_CODE=cma.UNIT_CODE  and cma.ACC_CODE in"+zhangTaos+" order by v.CHECKDATE desc";

--if (getAndWriteBackVoucher.size() == voucherNum) { //界面上抽取到多少条

将界面上抽到的凭证信息组成一个 Map<凭证ID,单位编号> ,只为了得到VOUCHER_ID,单位编码是无效的

 

2.   --根据凭证ID判断该凭证是否已经存在,如果已经存在且整个凭证都没支付,则删除整个凭证,如果存在,但是整个凭证中,部分支付了,则不能插入该凭证ID的凭证信息

      --查这个凭证ID被制单没有

      select p from PaymentList p where p.voucherID='"+voucherID+"' and  p.isUsed = 1

      serviceFactory.getM8VoucherService().isExistUsed(voucherID)    //是否存在已经支付的凭证

      然后CM_TMS_VOUCHERLIST 表中回写数据给一个标志-1 同时给出信息 该单据已办理支付

      --查这个凭证被其他出纳抽取没有

      select p from PaymentList p where p.voucherID='"+voucherID+"' and  p.user.userID !=" + userID

      --然后CM_TMS_VOUCHERLIST 表中回写数据给一个标志-1 同时给出信息,该单据已被出

        纳"+otherUsername+"同步!

 

--获取到voucherMap  ,然后要根据各种条件过滤掉不符需求的凭证

//贷方,且付款金额小于0  就过滤掉

if (p.getCheck_flag() != null && p.getCheck_flag() == 1 && subCode.containsKey(p.getCheck_sequence_sub_code() + p.getAccountSet())) {  其他的就保存进来

 

保存paymentList  和 VoucherNo List

然后查String bpd = "SELECT * FROM V_BCDL_PAY_DETAIL_DY DY,BCDL_PAY_DETAIL D WHERE DY.PAY_ID = D.PAY_LIST_NUM AND DY.ID = ?";

获取 VouchernoInfo 清单的信息

 

// 写到本地CMCS3_FARE

// 写到本地CMCS3_FARE_DETAIL

// 写到本地CMCS3_M8_VOUCHER   相当于像通过来的凭证做个备份,但现在实际上没有什么意义

// begin 先根据凭证ID删除数据库中已存在的凭证,写到本地CMCS3_PAYMENT_LIST

然后最后一次先删除后插入给M8反馈消息

delete  from CM_"+tableName+"_VOUCHERLIST v where v.VOUCHER_ID=?

insert into CM_"+tableName+"_VOUCHERLIST (VOUCHER_ID,UNIT_CODE,OP_TYPE,OP_DESC)  

 

最后调用一个储存过程

{ call CM_TMS_VOUCHER_READ.updatestatus(?,?) }

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值