清算详细设计说明书清算框架_第1页
清算详细设计说明书清算框架_第2页
清算详细设计说明书清算框架_第3页
清算详细设计说明书清算框架_第4页
清算详细设计说明书清算框架_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、<OTC清算子系统>软件设计说明书(清算框架)公司名称深圳市金证科技股份有限公司文档编号文档名称OTC-软件设计说明书-清算框架文档版本0.1起 草曹永亮起草日期2013-11-15审 批<审批人>审批日期YYYY-MM-DD修订历史版本号日期状态修订人摘要0.12013-11-15C曹永亮初稿状态标识:C Created A- Added M - Modified D - Deleted目录1前言51.1目的和范围51.2背景51.3术语和定义51.4参考资料52清算框架设计62.1清算数据准备6查询未完成清算的TA或产品6数据采集准备6查询需采集数据6数据采集过程6

2、数据采集结束处理6数据导入准备过程6查询需导入数据7数据导入过程7数据导入结束处理72.2清算预处理7查询可清算批次7查询清算数据状态7预处理准备72.3下账处理8查询可导出数据8数据导出过程8查询数据导出状态8查询可下发数据8数据下发过程8查询数据下发状态83数据结构设计94接口设计95后台类设计105.1清算数据准备10设计说明105.2清算预处理11设计说明115.3簿记处理12设计说明125.4下账处理13设计说明131 前言1.1 目的和范围本文对OTC清算子系统的清算框架的概要设计和详细设计进行了描述说明,将作为清算框架编码的依据。1.2 背景1.3 术语和定义1.4 参考资料l

3、金证股份OTC-清算概要设计说明书.docxl 金证股份KBSS_OTC_SETT_ORACLE.pdml 金证股份OTC_清算框架详细设计_OOM.oom2 清算框架设计2.1 清算数据准备2.1.1 数据采集准备 处理流程1. 检查入参数据的合法性:检查数据字典,登记公司及产品代码是否存在;2. 调用COtcSettDataPrepare:FetchProvisionBegin方法;3. 输出执行结果给前台。相关SQL:当前清算日是否有清算记录:SELECTCOUNT(*)FROM OTC_SETT_STAT WHERE SETT_DATE =SETT_DATE存在状态为0、

4、1取该记录批次号:SELECTDISTINCT(SETT_BAT_NO)FROM OTC_SETT_STATWHERE SETT_DATE =SETT_DATEAND SETT_STAT IN('0','1')存在状态不为0、1取该最大批次号+1:SELECTMAX(SETT_BAT_NO)+1FROM OTC_SETT_STATWHERE SETT_DATE =SETT_DATEAND SETT_STAT NOTIN('0','1')2.1.2 查询需采集数据 处理流程1. 调用COtcSettFetchStat:

5、ListFetchData方法;2. 输出查询结果给前台。相关SQL:SELECT A.TABLE_CODE,A.TABLE_NAME,A.SRC_SUBSYS,A.FETCH_WAY,A.SQL_COND,A.SQL_CHECK, A.EARLIEST_FETCH_TIME,A.LATEST_FETCH_FLAG,A.DUP_FETCH_FLAG,COALESCE(B.SETT_DATE,0),COALESCE(B.SETT_BAT_NO,0),COALESCE(B.LAST_FETCH_TIMESTAMP,NULL),COALESCE(B.FETCH_TIMES,0),COALESCE(B

6、.FETCH_REC_CNT,0),COALESCE(B.SRC_REC_CNT,0),COALESCE(B.DEST_REC_CNT,0),COALESCE(B.FETCH_STAT,''),COALESCE(B.CHECK_STAT,''),COALESCE(B.REMARK,''),COALESCE(B.FETCH_OPER,0)FROM OTC_SETT_FETCH_CONFIG A,OTC_SETT_FETCH_STAT BWHERE A.TABLE_CODE = B.TABLE_CODE(+)AND(B.SETT_DATE =2013

7、1123OR B.SETT_DATE ISNULL)AND(B.SETT_BAT_NO =1OR B.SETT_BAT_NO ISNULL)2.1.3 数据采集过程 处理流程1. 检查入参数据的合法性;2. 调用COtcSettDataPrepare:DoDataFetch方法;3. 输出执行结果给前台。处理流程图:相关SQL:加锁:UPDATE OTC_SETT_FETCH_STAT A SET A.FETCH_REC_CNT = A.FETCH_REC_CNTWHERE A.SETT_DATE =20131121AND A.TABLE_CODE ='OTC_MARKE

8、T'AND A.SETT_BAT_NO =1;采集状态更新:UPDATE OTC_SETT_FETCH_STAT A SET A.FETCH_STAT ='1'WHERE A.SETT_DATE =20131121AND A.TABLE_CODE ='OTC_MARKET'AND A.SETT_BAT_NO =1AND A.FETCH_STAT <>'1'2.1.4 数据采集结束处理 处理流程1. 检查入参数据的合法性;2. 调用COtcSettDataPrepare:FetchProvisionEnd方法;3.

9、 输出执行结果给前台。相关SQL:按采集的状态更新清算状态:SELECT COUNT(*) CNT FROM OTC_SETT_STAT X WHERE X.SETT_DATE = %d AND X.SETT_BAT_NO = %d AND NOT EXISTS ( SELECT 0 FROM ( SELECT COALESCE(B.SETT_DATE,%d) SETT_DATE,COALESCE(B.SETT_BAT_NO,%d)SETT_BAT_NO, COALESCE(B.FETCH_STAT,' ')FETCH_STAT ,COALESCE(B.CHECK_STAT,&

10、#39; ')CHECK_STAT FROM OTC_SETT_FETCH_CONFIG A ,OTC_SETT_FETCH_STAT B WHERE A.TABLE_CODE = B.TABLE_CODE(+) )C WHERE C.SETT_DATE = X.SETT_DATE AND C.SETT_BAT_NO = X.SETT_BAT_NO AND (C.FETCH_STAT != '%c' OR C.CHECK_STAT != '%c') )CNT为0时,按SETT_DATE,SETT_BAT_NO更新状态为9,否则更新为2按采集状态和导入状态

11、更新清算状态:UPDATE OTC_SETT_STAT A SET SETT_STAT ='1'WHERE A.SETT_DATE =20131121AND A.SETT_BAT_NO =1AND A.FETCH_STAT ='2'AND A.IMP_STAT ='2'2.1.5 数据导入准备过程 处理流程1. 检查入参数据的合法性;2. 调用COtcSettDataPrepare:ImpProvisionBegin方法;3. 输出执行结果给前台。2.1.6 查询需导入数据 处理流程1. 检查入参数据的合法性;2. 调

12、用COtcSettDataStat:ListImpData方法;3. 输出查询结果给前台。相关SQL:SELECT A.SETT_CFG_ID,A.MKT_CODE,A.TA_CODE,A.INST_SNO,A.INST_CLS,A.ITF_ID,A.PROVIDE_TYPE,A.DATA_TYPE, A.IMP_XML,A.ITF_TABLE,A.FILE_FORMAT,A.FILE_NAME,A.FILE_PATH,COALESCE(B.IMP_STAT,''),COALESCE(B.DEAL_STAT,'')FROM OTC_SETT_DATA_PATH

13、A,OTC_SETT_DATA_STAT BWHERE A.SETT_CFG_ID = B.SETT_CFG_ID(+)AND A.ITF_ID = B.ITF_ID(+)AND(B.SETT_DATE =20131123OR B.SETT_DATE ISNULL)AND(B.SETT_BAT_NO =1OR B.SETT_BAT_NO ISNULL)AND(B.DEAL_STAT IN('0','1','2')OR B.DEAL_STAT ISNULL);2.1.7 数据导入过程 处理流程1. 检查入参数据的合法性;2. 调用CO

14、tcSettDataPrepare:DoDataImp方法;3. 输出执行结果给前台。相关SQL:加锁:UPDATE OTC_SETT_DATA_STAT A SET A.IMP_CNT = A.IMP_CNT WHERE A.SETT_CFG_ID =1AND A.SETT_DATE =20131121AND A.SETT_BAT_NO =1AND A.ITF_ID ='0_01'更新导入状态:UPDATE OTC_SETT_DATA_STAT A SET A.IMP_STAT ='1',A.DEAL_STAT ='0'WHERE A.SETT

15、_CFG_ID =1AND A.SETT_DATE =20131121AND A.SETT_BAT_NO =1AND A.ITF_ID ='0_01'AND A.IMP_STAT <>'1'AND A.DEAL_STAT IN('0','1','2')处理流程:2.1.8 数据导入结束处理 处理流程1. 检查入参数据的合法性;2. 调用COtcSettDataPrepare:ImpProvisionEnd方法;3. 输出执行结果给前台。相关SQL:SELECT COUNT(*) CNT F

16、ROM OTC_SETT_STAT X,OTC_SETT_CONFIG FWHERE X.SETT_CFG_ID = F.SETT_CFG_ID(+)AND X.SETT_DATE = F.SETT_DATE AND NOT EXISTS ( SELECT 0 FROM ( SELECT COALESCE(B.SETT_DATE,0) SETT_DATE,COALESCE(B.SETT_BAT_NO,0)SETT_BAT_NO, COALESCE(B.SETT_CFG_ID,0)SETT_CFG_ID,COALESCE(B.IMP_STAT,' ')IMP_STAT FROM

17、OTC_SETT_DATA_PATH A, OTC_SETT_DATA_STAT B WHERE A.SETT_CFG_ID = B.SETT_CFG_ID(+) AND A.ITF_ID = B.ITF_ID(+) )C WHERE (C.SETT_DATE = X.SETT_DATE OR C.SETT_DATE = 0) AND (C.SETT_BAT_NO = X.SETT_BAT_NO OR C.SETT_BAT_NO =0) AND (C.SETT_CFG_ID = X.SETT_CFG_ID OR C.SETT_CFG_ID =0) AND (C.IMP_STAT != '

18、;%c') )CNT为0时,按SETT_DATE,SETT_BAT_NO,SETT_CFG_ID更新状态为9,否则更新为2按采集状态和导入状态更新清算状态:UPDATE OTC_SETT_STAT A SET SETT_STAT ='1'WHERE A.SETT_DATE =20131121AND A.SETT_BAT_NO =1AND A.SETT_CFG_ID =1AND A.FETCH_STAT ='2'AND A.IMP_STAT ='2'2.2 清算预处理2.2.1 查询可清算批次 处理流程1. 检查入参数据的合法

19、性;2. 调用COtcSettPreDealBase:ListSettBatch方法;3. 输出查询结果给前台。相关SQL:查询可预处理批次:SELECT*FROM OTC_SETT_STAT AWHERE A.SETT_STAT IN('1','2') AND EXISTS ( SELECT 0 FROM OTC_SETT_CONFIG B WHERE A.SETT_CFG_ID = B.SETT_CFG_ID AND A.SETT_DATE = B.SETT_DATE)2.2.2 查询清算数据状态 处理流程1. 检查入参数据的合法性;2. 调用

20、COtcSettDataStat:List方法;3. 输出查询结果给前台。SQL:SELECT C.SETT_CFG_ID, C.MKT_CODE,COALESCE(D.EXT_TA_CODE,'') AS EXT_TA_CODE,COALESCE(A.INST_SNO,0) AS INST_SNO,COALESCE(E.EXT_ISS_CODE,'') AS EXT_ISS_CODE,COALESCE(A.INST_CODE,'') AS INST_CODE,COALESCE(A.INST_ID,'') AS INST_ID,C

21、.INST_CLS,C.SETT_DATE,C.TRD_DATE,C.SETT_BAT_NO, C.ITF_ID,C.IMP_CNT,C.SUCCESS_CNT,C.FAIL_CNT,C.NO_DEAL_CNT, C.DEAL_STAT,C.IMP_STAT FROM OTC_SETT_DATA_STATC ,OTC_INST_BASE_INFO A ,OTC_INST_ORG D,OTC_INST_ORG E WHERE C.INST_SNO = A.INST_SNO(+) AND C.TA_CODE = D.INST_ORG_SNO(+) AND A.ISS_CODE = E.INST_O

22、RG_SNO(+) AND C.SETT_DATE = SETT_DATE AND C.SETT_BAT_NO = SETT_BAT_NO ORDER BY C.SETT_CFG_ID,C.ITF_ID;2.2.3 预处理准备 处理流程1. 检查入参数据的合法性;2. 调用COtcSettPreDealBase:PreprocessBegin方法;3. 输出执行结果给前台。2.3 下账处理2.3.1 查询可导出数据 处理流程1. 检查入参数据的合法性;2. 调用COtcSettExpStat:ListData4Exp方法;3. 输出查询结果给前台。SQL:SELEC

23、T B.SETT_CFG_ID,B.MKT_CODE,COALESCE(D.EXT_TA_CODE,'') AS EXT_TA_CODE,COALESCE(A.INST_SNO,0) AS INST_SNO,COALESCE(E.EXT_ISS_CODE,'') AS EXT_ISS_CODE,COALESCE(A.INST_CODE,'') AS INST_CODE,COALESCE(A.INST_ID,'') AS INST_ID,C.INST_CLS,B.ITF_ID,B.SETT_REL_TYPE,B.EXP_TIME_T

24、YPE,B.EXP_XML,B.FILE_FORMAT,B.FILE_NAME,B.FILE_PATH,B.EXTRA_LBM_PARA,COALESCE(C.SETT_DATE,0)SETT_DATE,COALESCE(C.SETT_BAT_NO,0)SETT_BAT_NO,COALESCE(C.EXP_CNT,0)EXP_CNT ,COALESCE(C.EXP_STAT,'')EXP_STAT,COALESCE(C.EXP_TIME,0)EXP_TIME,COALESCE(C.REMARK,'')REMARK ,COALESCE(C.EXP_OPER,0)E

25、XP_OPER FROM OTC_SETT_EXP_STAT C,OTC_SETT_EXP_PATH B ,OTC_INST_BASE_INFO A ,OTC_INST_ORG D,OTC_INST_ORG EWHERE C.SETT_CFG_ID(+)= B.SETT_CFG_IDAND C.ITF_ID(+)= B.ITF_IDAND B.INST_SNO = A.INST_SNO(+)AND B.TA_CODE = D.INST_ORG_SNO(+)AND A.ISS_CODE = E.INST_ORG_SNO(+)ANDEXISTS(SELECT0FROM OTC_SETT_STAT

26、F ,OTC_SETT_CONFIG G WHERE F.SETT_CFG_ID = G.SETT_CFG_ID(+) AND F.SETT_DATE =G.SETT_DATEAND C.SETT_CFG_ID = F.SETT_CFG_IDAND C.SETT_BAT_NO = F.SETT_BAT_NOAND C.SETT_DATE = F.SETT_DATEAND(B.EXP_TIME_TYPE ='0'AND F.FETCH_STAT ='2')OR(B.EXP_TIME_TYPE ='1'AND F.SETT_STAT ='2&

27、#39;)OR(B.EXP_TIME_TYPE ='2'AND F.SETT_STAT ='5')OR(B.EXP_TIME_TYPE ='9');2.3.2 数据导出过程 处理流程1. 检查入参数据的合法性;2. 调用COtcSettExpStat:DoDataExp方法;3. 输出执行结果给前台。2.3.3 查询数据导出状态 处理流程1. 检查入参数据的合法性;2. 调用COtcSettExpStat:ListDataExpStat方法;3. 输出查询结果给前台。SQL:SELECT C.SETT_CFG_ID,

28、C.MKT_CODE,COALESCE(D.EXT_TA_CODE,'')AS EXT_TA_CODE,COALESCE(A.INST_SNO,0)AS INST_SNO,COALESCE(E.EXT_ISS_CODE,'')AS EXT_ISS_CODE,COALESCE(A.INST_CODE,'')AS INST_CODE,COALESCE(A.INST_ID,'')AS INST_ID,C.INST_CLS,C.SETT_DATE,C.SETT_BAT_NO, C.ITF_ID,C.EXP_CNT,C.DEAL_STAT,

29、C.EXP_STAT,C.REMARK,C.EXP_TIME,C.EXP_OPERFROM OTC_SETT_EXP_STAT C ,OTC_INST_BASE_INFO A ,OTC_INST_ORG D,OTC_INST_ORG EWHERE C.INST_SNO = A.INST_SNO(+)AND C.TA_CODE = D.INST_ORG_SNO(+)AND A.ISS_CODE = E.INST_ORG_SNO(+)AND(0=SETT_CFG_ID OR C.SETT_CFG_ID =SETT_CFG_ID)AND(0=SETT_DATE OR C.SETT_DATE =SET

30、T_DATE)AND(0=SETT_BAT_NO OR C.SETT_BAT_NO =SETT_BAT_NO)ORDERBY C.MKT_CODE,C.TA_CODE,C.INST_SNO,C.INST_CLS;2.3.4 查询可下发数据 处理流程1. 检查入参数据的合法性;2. 调用COtcSettDispatchStat:ListData4Dispatch方法;3. 输出查询结果给前台。SQL:SELECT B.TABLE_CODE,B.TABLE_NAME,B.SETT_CFG_ID,B.TARGET_SUBSYS,B.BK_DATE_FIELD,B.DISPATCH_TY

31、PE,COALESCE(C.SETT_DATE,0) SETT_DATE,COALESCE(C.SETT_BAT_NO,0)SETT_BAT_NO,COALESCE(C.DISPATCH_STAT,'')DISPATCH_STAT,COALESCE(C.DEAL_STAT,'')DEAL_STATFROM OTC_SETT_DISPATCH_STAT C,OTC_SETT_DISPATCH B WHERE C.TABLE_CODE(+)= B.TABLE_CODEANDEXISTS(SELECT0FROM OTC_SETT_STAT F WHERE C.SETT

32、_BAT_NO = F.SETT_BAT_NOAND C.SETT_DATE = F.SETT_DATEAND F.SETT_DATE =20131122AND F.SETT_BAT_NO =1AND F.SETT_STAT ='5');2.3.5 数据下发过程 处理流程1. 检查入参数据的合法性;2. 调用COtcSettDispatchStat:DoDataDispatch方法;3. 输出执行结果给前台。2.3.6 查询数据下发状态 处理流程1. 检查入参数据的合法性;2. 调用COtcSettDispatchStat:ListDataDispa

33、tchStat方法;3. 输出查询结果给前台。SQL:SELECT A.TABLE_CODE,A.TABLE_NAME,A.SETT_DATE,A.SETT_BAT_NO, A.TARGET_SUBSYS,A.DEAL_STAT,A.DISPATCH_STAT FROM OTC_SETT_DISPATCH_STAT A2.3.7 下账准备 处理流程1. 检查入参数据的合法性;2. 调用COtcSettExtBK:ExtBKBegin方法;3. 输出执行结果给前台。SQL:检查数据下发是否全部完成:SELECTCOUNT(*)FROM(SELECTCOALESCE(B.DISPAT

34、CH_STAT,'')DISPATCH_STAT FROM OTC_SETT_DISPATCH A ,OTC_SETT_DISPATCH_STAT BWHERE A.TABLE_CODE = B.TABLE_CODE(+)AND B.SETT_DATE =20131122AND B.SETT_BAT_NO =1)CWHERE C.DISPATCH_STAT <>'1' COUNT > 0,则没全部完成2.3.8 下账处理(业务子系统) 处理流程1. 检查入参数据的合法性;2. 调用COtcSettExtBK:DoExtBK方法;3

35、. 输出执行结果给前台。2.3.9 下账结束处理 处理流程1. 检查入参数据的合法性;2. 调用COtcSettExtBK:ExtBKEnd方法;3. 输出执行结果给前台。SQL:所有下账处理都成功时,修改对应清算配置的清算状态为已经完成下账UPDATE OTC_SETT_STAT X SET SETT_STAT ='6'WHERE X.SETT_DATE =20131122AND X.SETT_BAT_NO =1ANDNOTEXISTS(SELECT0FROM(SELECT B.SETT_DATE,B.SETT_BAT_NO,COALESCE(B.DEAL_ST

36、AT,'')DEAL_STAT FROM OTC_SETT_DISPATCH A ,OTC_SETT_DISPATCH_STAT BWHERE A.TABLE_CODE = B.TABLE_CODE(+)CWHERE C.SETT_DATE = X.SETT_DATE AND C.SETT_BAT_NO = X.SETT_BAT_NOAND C.DEAL_STAT <>'1');2.4 清算状态变迁参见OTC_清算框架详细设计_OOM.oom清算状态部分。3 数据结构设计数据字段定义和表结构设计参见KBSS_OTC_SETT_ORACLE.pdm中清算框架部分。4 接口设计LBM接口定义请参考sys_lbm_清算框架.xls文档。5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论