📄 reinsur.4gl
字号:
################################################################################ 中国人寿股份公司对中再\慕再分保系统# AUTHOR: LIUHAIXIAO# VER 1.0# VER 1.1 # 1 增加对未满18周岁儿童的保额限定# 2 修正加费处理有误的问题# 3 修正撤单、复效分保金额误用保险金额的错误# Ver 1.2 增加对机构的处理,包括# 1 机构管理# 2 自动生成机构关系树# 3 按指定机构生成分保账单# Ver 1.3 # 1 增加对70、71、72岁分保费率的处理# 2 修改以投保年龄与16岁进行比较的处理方法,改为当前年龄# 3 增加对环增变量REINSURDB指定数据库名称的处理# 4 修正接收机构时报的重复错误# 5 增加对CBPSV8接口数据的处理:# (1)接口数据接收;(2)计算分保费率;(3)对订正及撤消进行处理# 6 修正变更数据抽取时退保保单漏取的错误# Ver 1.4# 1 修正首期分保时净分保费计算时采用的用分保费*选择折扣的错误,改为-分保费# 2 增加对本采集区间内做的订正处理的保单的提示功能,并同步修改操作手册# 对订正及撤消情况的处理进行指引# Ver 1.5# 1 针对分公司运行人员提出的要求增加重复接收下级机构数据的功能# Ver 1.6# 1 应再保何欣的要求,对变更时做过批改加费处理的保单进行记载# 2 将处理过程中的4位小数均改为2位# 3 修改转入转出标志# Ver 1.7 # 1 2005-12-1 增加传出基础数据时对未修正保单的检查,如果存在未修正的保单,则不可传出# 2 2005-12-1 增加进行报表处理时对未修正保单的检查,如果存在未修正的保单,则不可执行# 3 2005-12-6 应再保部需求变更1,要求去掉账单首行机构名称的留位# 4 2005-12-6 应再保部需求变更2,要求去掉账单末行分入公司的空位# 未解决问题:# 2 各SQL处理均需要有优化的要求#升级数据据时,请注意系统主程序的升级#数据库升级办法#delete from sys_parameter where sys_param='dbVersion';#insert into sys_parameter values ("dbVersion",NULL,"数据库版本","1.6")#程序升级办法,修改l_Ver值#let l_ver='最新的数据库版本'###############################################################################GLOBALS define start_date date --统计开始日期 define end_date date --统计结束日期 define ratio_51 decimal(8,2) --分保比例 define ratio_19 decimal(8,2) --分保比例 define chg_ratio_51 decimal(8,2) --分保手续费比例 define chg_ratio_19 decimal(8,2) --分保手续费比例 define home_path varchar(60) --用户目录路径 define g_branch_no char(6) --操作员所在级别单位代码 define g_amnt18_limit decimal(12,2) --未成年人age<18保额限额 define g_logFileName char(50) define g_reDataBase char(20)END GLOBALSMAIN define i int define l_branch char(6) define l_Ver char(10) define l_str char(78) define l_ans char --prompt接受字符 define l_rtn smallint --函数反回结果 options message line 24, error line 24, comment line 24, prompt line 24, form line 5, input wrap defer INTERRUPT clear screen let l_Ver = '1.7' let l_str = "| VERSION ",l_Ver[1,10]," |" display "+------------------------------------------------+" at 9,16 display "| |" at 10,16 display "| |" at 11,16 display "| 中国人寿股份公司分保系统 |" at 12,16 display "| |" at 13,16 display l_str at 14,16 display "| |" at 15,16 display "| |" at 16,16 display "+------------------------------------------------+" at 17,16 sleep 1 LET home_path=fgl_getenv("REINSURDIR") clipped --add by weixin at 2005-6-17 8:55 容错处理 if home_path is null then let home_path=fgl_getenv("HOEM") end if let g_logFileName = home_path clipped,"/reinsur.log" call startlog(g_logFileName) let g_reDataBase = fgl_getenv("REINSURDB") if g_reDataBase is null then let g_reDataBase = "reinsur" end if whenever error continue database g_reDataBase whenever error stop if sqlca.sqlcode !=0 then let l_str = "选择再保数据库",g_reDataBase clipped ,"失败,sqlcode:",sqlca.sqlcode using "-<<<<<","按回车键继续..." call errorlog(l_str clipped) prompt l_str clipped for char l_ans exit program end if --检查数据库版本与系统版本是否一致 call check_ver(l_Ver) returning l_rtn,l_str if l_rtn=0 then let l_str="程序版本:",l_Ver clipped," - 数据库版本:",l_str clipped display l_str clipped at 21,16 attribute(reverse) prompt "程序与数据库版本不匹配,检查是否使用了一致的版本,请按回车键继续..." for char l_ans exit program end if while true clear screen display "请输入要处理单位的机构代码(如辽宁省沈阳市公司则为210100,辽宁省本省则为210000)" at 21,1 display "请确保输入的机构代码正确有效,该代码将作为输入文件的区分标志" at 22,1 prompt "要处理机构代码:" for g_branch_no if length(g_branch_no)=6 then select distinct 1 from branch where balance_branch = g_branch_no if status = notfound then error "机构代码输入有误或不是结算单位,请重新输入!" sleep 2 else exit while end if else error "机构代码输入有误,请重新输入!" sleep 2 end if end while clear screen --取得限额 select sys_param_num into g_amnt18_limit from sys_parameter where sys_param='amnt18_limit' --down add by weixin at 2005-6-1 10:29 --对于北京、上海、广州、深圳4市的分保时年龄未满18周岁保额限额固定为100000 --其它城市的可自调 --110000、310000、440100、440200 if g_branch_no[1,2] ='11' --北京 or g_branch_no[1,2] ='31' --上海 or g_branch_no[1,4] ='4402'--深圳 or g_branch_no[1,4] ='4401'--广州 then if g_amnt18_limit!=100000 then let l_str = "您的未成年人分保限额应该是100000,目前是",g_amnt18_limit,",请注意核查" error l_str prompt "按回车键继续" for char l_ans end if end if --add at 2005-6-1 10:29 Over select sys_param_eng into start_date from sys_parameter where sys_param='start_date' if status!=0 then error "数据库操作错误SQLCODE=",status,",分保区间开始日期错误" sleep 1 end if select sys_param_eng into end_date from sys_parameter where sys_param='end_date' if status!=0 then error "数据库操作错误SQLCODE=",status,",分保区间开始日期错误" sleep 1 end if select count(*) into i from insur_policies where pol_code='S51' if i=1 then select reinsur_ratio into ratio_51 from insur_policies where pol_code='S51' if status!=0 then error "数据库操作错误SQLCODE=",status,",S51分保比例定义错误" sleep 1 end if else let ratio_51=0 end if select count(*) into i from insur_policies where pol_code='S19' if i=1 then select reinsur_ratio into ratio_19 from insur_policies where pol_code='S19' if status!=0 then error "数据库操作错误SQLCODE=",status,",S19分保比例定义错误" sleep 1 end if else let ratio_19=0 end if select count(*) into i from insur_policies where pol_code='S19' if i=1 then select reinsur_chg_ratio into chg_ratio_19 from insur_policies where pol_code='S19' if status!=0 then error "数据库操作错误SQLCODE=",status,",S19分保手续费定义错误" sleep 1 end if else let chg_ratio_19=0 end if select count(*) into i from insur_policies where pol_code='S51' if i=1 then select chose_discount into chg_ratio_51 --mdy by weixin at 2005-5-19 16:56 from insur_policies where pol_code='S51' if status!=0 then error "数据库操作错误SQLCODE=",status,",S51选择折扣定义错误" sleep 1 end if else let chg_ratio_51=0 end if whenever error stop If UPSHIFT(fgl_getenv("DBDATE"))!="Y4MD/" Then display "环境变量DBDATE设置错,请设置为Y4MD/" Exit PROGRAM End If while 1 CALL MAIN_MENU() call disp() end whileEND MAIN##########################################函数:main_menu()#功能:程序主菜单#########################################FUNCTION main_menu() define l_rtn smallint clear screen call disp() Menu "主菜单" Command "A:参数设置" "设置分保的起止时间" menu "参数设置" command "A:设置分保区间" "设置本次分保的分保区间" call set_reTime() returning l_rtn case l_rtn when 0 error "修改成功!" when 1 error "用户放弃!" end case call disp() command "B:未成年保额" "设置本地区规定的未成年人投保限额" call set_reAmntLimit() returning l_rtn case l_rtn when 0 error "修改成功!" when 1 error "用户放弃!" end case call disp() command "C:机构管理" "维护再保库中的机构代码关系,形成以本级机构为最高机构的树型结构" call branchMag_menu() call disp() command "E:返回上一层" "退出账单管理" exit menu end menu command "B:分保处理" "采集并计算分保数据,只有存在Picc2库的单位才可运行" call reinsur_get() command "C:报表及账单管理" "生成分保报表及账单" menu "报表及账单管理" before menu --down n line add by weixin at 2005-12-1 13:32
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -