`

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(?,?) }

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    新人了解BCDL文档

    【标题】:“新人了解BCDL文档” 在IT领域,BCDL(可能代表某种特定的编程语言、框架或数据格式)是新手需要掌握的关键概念之一。BCDL文档是为初学者设计的,旨在帮助他们快速理解并开始使用这个技术。通过这篇博文...

    bcdl::headphone: 可以免费从 Bandcamp 下载专辑

    bcdl 从 Bandcamp 免费/付费下载您想要的专辑的脚本 我厌倦了声称从 Bandcamp 下载“FLAC”的脚本,而实际上只是翻录了网站使用的 128kpbs MP3 预览流。 这个脚本实际上模拟了“购买”你想要的免费/付费专辑,并以...

    时钟系统设计及仿真

    bcdl &lt;= bcdl + 1; elsif (bcdl = "1001") then bcdl ; bcdh &lt;= bcdh + 1; else bcdl &lt;= bcdl + 1; end if; end if; end if; end process; end architecture aa; ``` ##### 60进制计数器 ```vhdl -- ...

    欧姆龙plc指令 (2).pdf

    11. **转换指令**:如`BIN`(BCD到二进制)、`BCDL`(双字BCD到双字二进制)、`ASC`(ASCII转换)和`HEX`(十六进制转换)。 12. **逻辑指令**:包括`ANDW`、`ANDL`、`ORW`、`ORL`、`XORW`、`XORL`和`COM`(求补)...

    ( 欧姆龙基本指令.pdf )

    ##### 1. **逻辑运算指令** - **AND(ANDLD, ANDNOT, ANDW)**: 这组指令主要用于执行位逻辑与运算。 - **AND**: 位逻辑与运算的基本形式,输入端口所有条件均满足时,输出为真。 - **ANDLD**: 延迟型与指令,...

    Twido PLC指令对译互查手册

    ##### 1. Omron - **位操作** - **Out/outnot**: 输出指令,用于设置或清除输出。 - **Set/reset**: 设置或复位指定位置的位。 - **Keep**: 保持指令,类似于TwidoPLC中的SET指令。 - **DIFU/DIFD**: 上升沿/...

Global site tag (gtag.js) - Google Analytics