第一篇:商户(不包括柜台、ATM)结算流程Merchant transaction process
商户(不包括柜台、ATM)结算流程
本行商户(包括在本行开立帐户或在他行开立帐户的商户):
~流程描述:--电子签单交易:
● 持卡人用卡在POS机上消费,日终时,商户通过按SETTLEMENT键将交易数据提交当地分中心,即传输到分中心的前置系统。分中心的前置系统的数据以POS中记录的数据为准。分中心只对商户已结帐的POS进行入帐,未提交交易数据的商户POS,分中心不予入帐。
● 商户营业终了,分中心前置系统每日在规定时间进行日切,以保证商户该营业日内交易记录的完整;同时,将贷记卡的交易数据和借记卡交易数据传送到二代系统;并且,分中心须将当地前置系统中记录的交易数据打印输出,输出内容包括当日交易总金额、总笔数、交易明细。
● 分中心在每日营业开始时,将二代系统中记录的贷记卡交易数据和借记卡交易数据批量自动给商户进行入帐;随后打印商户进帐单和对帐单。
--手工签单交易:
● 持卡人用卡消费,商户填制手工单据(签购单);日终时,商户填写签购总计单,将当日签购单的总份数、总金额、商户回扣、商户 实收金额填写在总计单上。
● 商户在单据的商户联留下后,将其余的签购单和总计单送交银行。● 分中心收到手工单据后,首先核查商户填制的总计单是否正确。核查内容包括商户编号、日期、签购单的总份数、总金额、商户回扣、商户实收金额。若发现问题,应要求商户重新填制签购总计单。● 分中心人员在每日营业开始时通过中信贷记卡系统终端录入手工签单;同时,分中心人员在二代系统中根据商户填制的正确的总计单给商户入帐。即分中心人员在每日营业开始时,须根据系统中记录的商户前日电子交易数据和手工单据,手工填制相应单据,给商户入帐。
~退货处理:
● 分中心在收到退货单后,在贷记卡系统中录入该交易;同时,将该若干笔退货交易进行加总,随后按总计金额手工填写相应会计单据,给商户入帐;分中心在处理退货交易的时间与处理手工单据的时间相同。
--分中心数据传输及总中心贷记卡系统入帐:
● 总中心中信贷记卡系统的入帐数据以分中心前置系统记录的数据为准;分中心每日须定时将当地前置系统的商户交易数据、柜台、ATM商户交易数据传送到总中心前置系统。对于在规定时间内未 能及时将交易数据传送到总中心前置系统的分中心,总中心不入贷记卡系统帐,且总中心当日不与该分中心清算。
● 总中心在收到分中心前置系统传送到的交易数据后,贷记卡系统根据该数据给贷记卡系统入帐。
● 总中心贷记卡系统跑批后,将总中心贷记卡系统中收单部分的交易报表传输到分中心,由分中心打印输出。分中心可利用该报表核查总中心与分中心的清算。
--总中心与分中心清算:
● 总中心与分中心清算,即总中心按贷记卡系统记录的商户交易金额全额划拨分中心。
● 分中心在收到总中心划拨的款项后,须将总中心传送的商户交易报表与分中心打印输出的当地前置系统记录的交易数据进行比较。若发现差异,应与总中心联系查找原因。
--帐务调整:
● 商户入帐后,若商户提出帐务错误,应提出书面请求。分中心在调查后,若认为确需调整,应由分中心人员进行操作。若商户短款,商户应提供相应的单据;若商户长款,分中心人员应用红笔填制签购单。分中心人员应根据商户的书面申请与相应的单据,在贷记卡系统终端上做调整交易;同时,将该若干笔调整交易与该商户的手工签单交易进行轧差后,手工填制商户进帐单,给商户入帐。分中 心在处理商户调整交易的时间与处理手工单据时间相同。
--商户回扣会计核算要求:
● 分中心贷记卡商户回扣收入独立核算。
~技术支持:
● 中信贷记卡系统报表远程传输。
● 在分中心建立商户管理屏幕,除现有为借记卡实现的功能外,分中心可利用该屏幕实现贷记卡的商户回扣率单独录入、计算,即该分中心可通过该屏幕对借记卡和贷记卡收单回扣率分别设置;且可利用该屏幕实现对贷记卡和借记卡中不同卡类或不同卡号范围的卡片的商户收单回扣率单独录入、计算。预留的卡号范围及相关的商户回扣率可随业务开展而不断增加。综上,分中心人员可通过该屏幕实现不同商户的收单回扣率不同;同一商户借记卡和贷记卡收单回扣率不同;借记卡或贷记卡中的不同卡类以及不同卡号范围的收单回扣率不同。
● 分中心二代系统在跑批时,对当日商户交易不做处理。待分中心前置系统日切后,将POS的交易数据传送到二代系统。第二日营业开始时,分中心人员在二代系统上给商户自动批量入帐。● 分中心前置系统的商户交易记录可在分中心打印输出。● 总中心贷记卡系统跑批前,以分中心前置系统的记录数据为准入总中心贷记卡系统帐。● 设立贷记卡系统远程终端,分中心人员在该终端上录入手工签单、退货单和有关调整交易。
金卡商户:
~流程描述:
--电子签单交易、分中心与金卡结算:
● 持卡人用卡消费,金卡日切后,金卡将交易数据传送至分中心,同时金卡扣划分中心在当地人民银行的帐户。
● 分中心在收到金卡传送到的扣款通知,按金卡数据先行入帐。● 在分中心前置系统日切后,应将分中心前置系统记录的交易数据进行打印输出。输出内容包括金卡交易的总金额、总笔数和交易明细。
● 分中心与金卡的对帐工作。对帐工作由分中心人员进行操作。对帐要求由系统自动完成。对帐过程为先核对总金额,若总金额一致,则不核对交易明细;若总金额不一致,分中心自动与金卡传输到的数据勾对明细,将两方面不一致的交易挑拣出来,并打印输出。明细勾对要求检查并打印交易卡号、时间、商户号、授权号码、金额。
--手工单据:
● 金卡暂不做手工单据。
--分中心数据传输、总中心贷记卡系统入帐处理:
● 分中心每日须在规定时间将当地前置系统记录的金卡交易数据随同其他商户交易数据传送到总中心前置系统。
● 总中心在收到分中心前置系统传送到的交易数据后,贷记卡系统根据该数据给贷记卡系统入帐。对于在规定时间内未能及时将交易数据传送到总中心前置系统的分中心,总中心当日不入贷记卡系统帐,且不与分中心清算。
● 总中心跑批后,将贷记卡系统中有关金卡收单的交易报表传输到分中心。
--总中心与分中心清算:
● 总中心与分中心清算,即总中心按贷记卡系统记录的金卡交易金额全额划拨分中心。
● 分中心在收到总中心划拨的款项后,须将总中心传送的金卡交易报表与分中心打印输出的当地前置系统记录的交易数据进行比较。若发现差异,应与总中心联系查找原因。
--帐务调整:
● 金卡商户入帐后,若分中心提出帐务错误,且该错误为分中心错误时,分中心须在贷记卡系统终端上做调整交易。待当日跑批后,与总中心进行清算。
--商户回扣会计核算要求:
● 分中心贷记卡交易的金卡与本行商户回扣收入独立核算。
~技术支持:
● 分中心前置系统将当日记录的金卡交易数据输出打印; ● 分中心(前置)系统自动进行金卡数据与前置系统记录的交易数据的对帐工作。对帐要求先核对总金额,若总金额一致,则不需核对交易明细;若总金额不一致,分中心自动与金卡传输到的数据勾对明细,将两方面不一致的交易挑拣出来,并打印输出。明细勾对要求检查并打印交易卡号、时间、商户号、授权号码、金额。● 贷记卡系统报表远程传输。
● 总中心贷记卡系统跑批前,以分中心前置系统的记录数据为准入总中心贷记卡系统帐。
● 设立贷记卡系统远程终端,分中心人员在该终端上录入手工签单和有关调整交易。
问题:
1.商户进帐单和对帐单的打印是在手工单据的录入前或后? 2.总中心与分中心清算后,若分中心发现总中心传送的报表与分中心前置系统记录的交易数据不同,如何调整? 3.建立中信贷记卡商户管理系统,处理商户资料和商户帐务系统? 4.贷记卡商户管理屏幕是否与借记卡商户管理屏幕共用?
第二篇:ATM操作流程
ATM业务操作流程(试行)本操作流程将根据实际操作情况,随时进行调整
一、ATM柜员管理
(一)ATM柜员由ATM装机联社向省联社信息科技中心申请增加。
(二)ATM柜员尾箱不须核清。
(三)ATM柜员账务在日终处理时自动并入挂靠网点机构账务。
(四)ATM柜员不允许登陆综合业务系统。
二、ATM柜员密码修改(交易码8881)
ATM柜员密码修改只能通过网点主管柜员进行操作,须由掌握ATM柜员密码的操作员录入正确的旧密码和两次新密码,进行密码修改操作。
三、加钞
首先说明下,ATM中的钱有3个概念,分别是综合业务系统中的ATM柜员余额(ATM柜员尾箱余额)、ATM钞箱余额(ATM机具记录的余额)和ATM钞箱实际库存现金(ATM机具钞箱中的现金实物)。3者在对账的时候需要相等。
(一)ATM操作员:就是对ATM机具进行日常加钞、清机轧账、差错处理的管理与维护人员,分为A岗操作员和B岗操作员。
ATM柜员:就是ATM对应的综合业务系统中的柜员(号),ATM在综合业务系统中是作为一个独立柜员来管理的,也就是说ATM机具发生的所有交易都是通过ATM柜员来反映。
(二)根据综合业务系统和实际操作过程,ATM加钞可分为系统加钞和ATM加钞两部分。
(三)根据ATM柜员和ATM机具现金钞箱中现金的流向不同可分为加钞和卸钞,为了保证日常营业需要,向ATM柜员和ATM现金钞 箱中增加现金的操作叫加钞,根据管理的需要或在移机、拆机时清空或减少ATM柜员和ATM现金钞箱中现金的操作叫卸钞。
(四)系统加钞
1.系统加钞前提是主管柜员已登陆综合业务系统后做尾箱设臵交易为ATM柜员增加了尾箱,加钞是通过普通柜员执行交易实现的,对应的交易码为“8882”(ATM钱箱管理),其实质是通过ATM柜员和所属网点综合柜员间(普通柜员必须为另一人,若综合柜员同时又是ATM柜员,两个柜员间是不可以直接进行加钞或卸钞的)进行现金交接来实现加钞的,类似于普通综合柜员之间的现金交接;“8882”交易有两种交接类型:加钞和卸钞,选择加钞时,ATM柜员现金增加,普通综合柜员现金减少,选择卸钞时,ATM柜员现金减少,普通综合柜员现金增加。
2.综合柜员输入“8882”交易码,屏幕显示要素如下:交易柜员尾箱号、币种、金额、交接类型、ATM柜员号、ATM柜员密码,正确录入各项内容,系统进行合法性检查后,后台做帐务处理,如成功则在屏幕上显示交接柜员号、交易柜员姓名、交接金额、ATM柜员现金余额、交接柜员现金余额。打印ATM加钞/卸钞单:要素包括交易日期、交易时间、交易柜员号、交易柜员姓名、交接类型、交接金额、ATM柜员号、ATM柜员现金余额。
3.由于ATM柜员不能登陆综合业务系统,所以该交易只能由普通综合柜员来操作。
4、系统加钞时,加钞金额为在原有基础上的增加额。(比如:ATM现金余额为1万元,本次需加钞10万元,8882交易时,交接金额为10万元)
(五)ATM加钞
机器加钞分为两个步骤,第一步是向钞箱中装填现金,将整理 2 好的现金分钞票面值不同分别装入不同的钞箱中;第二步是在ATM加钞界面中分钞箱输入钞票面值和装填数量(ATM加钞时,所加金额为本次业务系统加钞金额加上加钞前ATM钞箱余额,虽未在ATM上做清零过程,但只要进行加钞,ATM会视同清零,即ATM上加钞金额为本次业务系统加钞金额加上加钞前ATM钞箱余额,比如:ATM现金余额为1万元,本次需加钞10万元,8882交易时,交接金额为10万元,而在ATM中输入的金额为11万元),确认后ATM会将所有钞箱中的现金总额与系统中ATM柜员现金余额进行核对,如一致提示加钞成功,如不一致则提示加钞失败,则重复上述操作,直至加钞成功。
(六)卸钞(全部卸钞)
卸钞与加钞的过程基本一致,只是在“8882”交易中交接类型选择“卸钞”,金额输入ATM柜员现金余额;取出ATM钞箱中的现金,在加钞界面中各钞箱钞票数量输入“0”。
一般很少做卸钞交易,特别是部分卸钞基本不用。
(七)说明
1.加钞前必须做清机轧账。
2.ATM钞箱中装填的现金实物总额应等于清机轧账后的ATM柜员现金余额加上本次“8882”交易中两柜员现金交接金额之和,例如:清机轧账后ATM柜员现金余额为1万元,本次拟加钞10万元(即“8882”交接金额为10万元),则此时ATM所有钞箱现金之和应等于11万元。
3.不同钞箱中放臵的现金面值和数量必须与ATM加钞界面中输入的面值和数量保持一致。
4.加钞过程必须是A、B岗操作员在监控录像下共同完成,互相配合,互相监督。
5.为了保证出钞准确度,减少差错的发生,对钞票的要求为:
7-8成新,无破损、无断裂、无透明纸粘贴、无褶皱及卷角;禁止使用原封新钞和潮湿的现钞;自助设备备付现钞在装机前,须经有识别假币功能的点钞机及人工反假、过数。
四、清机轧(对)帐
清机轧账就是定期不定期对ATM内部出钞通道、卡回收箱、钞箱、废钞箱等进行清理,是对ATM在一段时期内所做业务的汇总,与综合业务系统进行账务核对,以查找差错。(检查更换流水纸、凭条纸、色带等)
(一)流程 1.ATM停机;
2.轧(对)账,本交易由操作员在ATM上发起,自动完成,在此过程中,ATM在流水纸上打印吞卡(钞)记录,统计、打印上次清机以来的交易情况,打印交易汇总(内容包括取款总笔数、取款总金额、转账总笔数、转账总金额、现金余额)并与综合业务系统记录的交易进行核对,直至返回处理结果;
3.检查、清点钞箱、回收钞箱、吞没卡; 4.检查、清理出钞通道(如有必要);
5.在综合业务系统中打印本次清机轧(对)账流水(交易码是8884);
6.核对ATM钞箱实际库存现金与系统中ATM柜员余额(8884交易打印的有)是否一致,如不一致,以系统中ATM柜员现金余额为准;
7.如果对账成功,ATM钞箱实际库存现金(包括废钞箱与出钞通道中的现金)与系统中ATM柜员现金余额一致,填写《自助设备轧账加钞登记表》、《自助设备吞没卡登记表》(如有吞没卡);
8.如果对账不成功,或者ATM钞箱现金余额(包括废钞箱与出钞通道中的现金)与系统中ATM柜员现金余额不一致,则说明有差错 4 存在,则填写《自助设备轧账加钞登记表》、《自助设备差错处理登记表》、《自助设备吞没卡登记表》(如有吞没卡),根据本次清机流水清单、ATM流水纸记录内容,并结合监控录像,查找差错,按照《河南省农村信用社银行卡业务差错处理办法(试行)》的规定进行处理。
9.现金钞箱放臵现金,放臵后钞箱中的现金总额应等于系统中ATM柜员现金余额。
10.开机营业。
(二)说明
1.清机轧(对)账可以定期、不定期地进行,按照自助设备管理办法的规定,定期清机轧账,在行式ATM不超过两天,离行式ATM不超过3天,不定期清机轧(对)账可根据需要(比如查账、比如临时加钞等)随时进行。
2.打印的清机轧账流水的内容是上次清机轧(对)账以后到本次清机轧(对)之前综合业务系统处理确认的所有ATM交易。
3.清机轧(对)账不一定加钞,但加钞前必需进行清机轧(对)账。
五、每天ATM需要打印的报表 1、8883中的昨日流水。
这个是所有的在ATM上发生的业务的流水。2、712中的26、27、28、29。
26资金平衡,27清算凭证28清算流水29本机构ATM交易凭证。注意:目前29只能第二天打印,忘记或者遗失不能补打,一定在交易次日进行打印。
清机、对账、加钞的简明流程:
1、停机;
2、ATM机具后台发起对账指令,在ATM流水纸上打印对账资料、吞卡记录;
3、取出钞箱,清点现金(包括废钞箱和出钞通道等地方的现金);
4、核对ATM柜员余额、ATM钞箱余额、ATM钞箱实际库存现金,并做登记;
5、如有吞卡、长短款、账务差错,按相应办法处理(正常可跳过这步),并做登记;
6、综合业务前台8882交易现金给ATM柜员(此处现金为增量);
7、ATM机具后台进行加钞,(此处加钞的金额为ATM柜员余额),并做登记。
8开机营业
注意:如清机对账后,ATM钞箱现金充足,可以不做6、7两步,即不加钞;注意保证开机营业的时候ATM柜员余额、ATM钞箱余额、ATM钞箱实际库存现金3者是相等的。
六、差错原因分析及处理
(一)自助设备错账产生的原因
这里所说的自助设备错账主要是指ATM设备长款、短款和单边帐。
1.造成ATM长款的主要原因有三点:
网络故障 设备故障 客户原因(1)、网络故障
网络故障的情况较为复杂,长款原因可能是由于我社、银联公司、他行(工行、建行、中行等发卡行)任何一方的网络出现问题而造成的扣账未出钞。外行卡在我社ATM取款交易流程如下:
ATM发送交易信息到科技中心前臵机,经判断为外行卡后转到银联网络,再到发卡行确认、扣款,然后原路返回,银联账务处理,我社账务处理,ATM收到交易成功信息后出钞。(从发卡行扣款后任一个环节出现故障,而且冲正失败,均会导致ATM长款)
在这个交易过程中,我社在账务处理后把交易信息返回到ATM时出现网络故障,交易成功的信息就返回不到ATM,这样会造成交易超时,ATM会自动发起冲正交易,如果网络故障冲正失败,从而形成ATM长款。
还有一种情况需要特别说明:经常有跨行客户反映说在你们的ATM上取款手续费怎么扣的手续费和你们行收费标准不一致,其实与我行没有一点关系,从上面讲的交易流程中可以看出来,跨行、跨省的交易最终都是由发卡行的主机来判断完成的,也就是说扣不扣手续费、扣多少手续费都是由发卡行的主机来判断的,持卡人在ATM上取款100元,我们的ATM就出钞100元,持卡人有什么疑问请到发卡行 7 咨询。
(2)、设备故障
设备故障主要是ATM的出钞模块或外接电源出现故障,就是ATM在接到交易成功的返回信息后,在把钞票从对应的钞箱中打出来给客户的过程中出现了异常(卡钞或突然断电),而导致客户没有拿到现金的情况。一般情况下,出现这种情况时ATM会主动的发起冲正交易,冲正交易的流程和刚才所讲的交易流程是一样的,当出现冲正不成功的情况(特别是跨行交易),就会形成ATM长款。
(3)、客户原因
客户原因主要是钞票已经从出钞口出来,但是客户由于某种原因没有及时拿走钞票,这种情况30秒钟以后ATM会自动将钞票回收,从而形成ATM长款。这时自助设备产生的长款现金都在废钞箱中,这种情况下ATM是不会发起冲正的。
发生上述ATM长款时,一般由客户当日到ATM所属网点反映或ATM管理员清机发现。
造成ATM短款的主要原因
设备故障 后台主机问题(1)设备故障
短款时的设备故障主要表现在出钞模块,在出钞时,假如ATM多出1张,但出钞模块中的测量站(测量钞票厚度或重量)或传感器在同时刻正好无法正确测量钞票厚度,造成多出而形成短款。
有一点需要说明的是:交易时,ATM只有在出现硬件故障的时候才会发送冲正交易,而一旦出钞成功,一般情况下是不会再向前臵机发冲正指令的。从技术角度讲,设备故障的概率非常的小,但也存在可能性。
8(2)后台主机问题
在某笔交易中,会因为某种原因造成后台主机向ATM发送正确的出钞指令,但主机并没有扣款;或发送出钞指令后又对该笔交易进行了冲正而形成短款。(已吐钞,未交易/未扣账)
注:短款的原因十分复杂短款不易查找,有时根本就查找不到,在查找短款的时候,除按照下面正确的“错帐查找方法”以外还请注意以下细节(以下ATM后台流水指ATM机具流水打印机打印的ATM交易日志):
1.检查出钞通道及出钞口,查看是否存在卡钞情况;
2.认真核对并统计ATM后台流水和清机轧(对)账流水清单之间,自上次正确清机轧(对)账后,至发现短款问题时间段的全部交易笔数和金额是否一致;
3.认真核对ATM后台流水和清机轧(对)账流水清单之间是否存在异常信息,例如:后台流水显示取款成功,清机轧(对)账流水清单存在该笔的冲正交易,或则后台流水显示取款成功,但清机轧(对)账流水清单没有该笔交易信息(未扣帐)。
ATM单边账的形成原因
ATM单边帐,是指发生ATM交易后,发卡行或受理行一方记账而另一方未记账的账务行为。主要原因是网络故障:
原因同长款,如ATM交易返回到业务系统记账后中断,未出钞就会长款,如返回信息到业务系统记账前中断,就会产生单边帐。它与长款形成原因的区别在于长款时受理行和发卡行都记账,但未出钞。单边帐时不一定出钞,但只有一方记账。
(二)自助设备错账的查找方法
一旦出现自助设备错账,首先要尽可能详细地了解客户的卡号、取款时间、取款过程、取款金额、取款次数及每次分别取了多 9 少钱等详细情况,并作记录,然后从以下几方面进行查找:
核对库款:清点核对现金,一定要认真并坚持双人复核制度。
自助设备后台流水:自助设备后台流水就是ATM打印在白色流水纸卷上的内容,自助设备后台流水详细记录了设备运行情况和客户交易的整个过程(无论交易是否成功,只要客户有相应的动作,流水就会记录),包括插卡时间、取款金额、退卡等。要首先向客户了解其操作过程,我们在核对自助设备后台流水的过程中同时也要核对与客户描述的操作过程是否一致(因为我们面对的形形色色的客户太多了,不能排除客户故意欺骗我们的可能性)。
业务报表:网点每天可以打印的《自助设备交易流水清单》及清机时打印的《自助设备清机轧账流水清单》等报表,清单中记录的是经过综合业务系统处理确认的自助设备交易,应作为我们核对自助设备错账的最主要依据。在将报表和自助设备后台流水相核对时,一般情况下都能找到对应的错账及其对应的卡号。
电视监控:通过电视监控的图像来核对ATM长款、短款是最直观的方法,也是最有效的辅助手段,我们可以通过人面部的图像(包括持卡人取款时的面部表情)和出钞口的图像来查看ATM的工作过程,判断ATM的出钞情况,因此,在日常工作中应充分认识到前台监控的重要性,如果监控不能正常工作,应立即向保卫部门上报请求维修,并申请关闭ATM。
其他说明:在查找自助设备错账的时候,不能仅凭某一点来确定长款的原因,而应该由综合的条件来判断。牵涉到现金的问题一定要谨慎,比如说客户反映说卡上少了200块钱,我们核对库款发现的确多了200元,就放松了警惕,直接把钱给客户补上了,这种做法是坚决要杜绝的,因为这200块钱不一定就是此客户的,有可能是 10 另外一个客户的。
发现ATM差错后的处理
ATM所属网点或管理机构发现ATM账务差错时,应立即对该笔差错款项进行挂账。
在通过清机等程序核实差错存在后,对长款或短款的差错,逐笔进行处理,不得轧差后对净额处理。处理时按照以下流程(注意参照《河南省农村信用社银行卡业务差错处理办法(试行)》
(一)、ATM长款的处理:
1.确认ATM发生长款后,立即对该笔长款对应交易进行交易凭据的整理,主要包括:对应ATM日志复印件等;
2.在核对无误后,并经省银行卡中心确认该笔款项已清算至我社(如果是跨行差错)后,通过综合业务系统的“网点上划交易”,将该笔长款款项进行上划,上划时,认真核对卡号、上划交易金额、上划手续费等关键信息,保证上划交易的准确,避免多划或者少划。并在交易摘要中注明“长款退回”字样;
3.上划后,如果是跨行差错,填制《银行卡业务调账申请》,和对应该笔差错交易ATM工作日志复印件等一并传真至省联社清算中心,向省联社资金清算中心申请账务调整;
4.上划交易完成后次日,柜员打印对应该笔上划交易的凭证作为网点入账凭证;网点上划后次日,省清算中心根据打印的上划交易清单及网点上传的调账申请,进行账务调整。
注意:跨行差错款项的核对须在差错交易的下一工作日方可进行。
(二)ATM短款的处理:
1.柜员按照短款时对ATM清机检查以确认差错的处理流程确认短款后,将短款信息逐级上报至省联社银行卡中心,并积极开展短款 11 款项的追索工作,主动联系发卡方协助联系持卡人协商解决;
2.对系统内短款(本代本),我社发卡机构应积极协助代理网点进行资金的追索。若持卡人同意退还款项的,发卡网点及时将款项以手工方式逐级上划至省清算中心;由省清算中心及时将款项划转至代理网点;对跨系统短款(本代他),由省联社银行卡中心通过例外协商,请求发卡行协助追索,成功时,代理网点根据省清算中心的账务处理,及时打印相关清算凭证及清单,并进行账务核对。对追索不成功的,代理网点按照规定进行处理。
七、吞卡原因分析及处理
(一)吞没卡的产生原因
1、ATM机发生故障产生的吞卡。如:停电(一般情况下现在的ATM都具有断电自动退卡功能,但也不排除这种可能性)、读卡器故障等。
2、持卡人操作失误引起的ATM机吞卡。如:30钞未取走退卡等
3、按发卡行吞卡操作指令ATM机所做的吞卡。如:有作弊嫌疑的卡、挂失卡等。
(二)吞没卡处理方法
每日网点营业前须打开自助设备上箱体,及时取出被吞没的银行卡,登记自助设备吞卡登记表,同时按照《自助设备管理办法》相关规定根据吞卡的原因做相应处理。吞卡处理方法如下:
1、ATM机故障或客户超时未取卡引起的吞卡,在ATM流水纸上进行记录,所吞卡片由网点暂时保管,持卡人可在3个工作日内,凭本人有效身份证件或其他可以证明为卡片持有者的材料到ATM所属网点领卡。ATM所属网点经办人员在核对相关资料无误,且符合以下条件之一的,领卡人签名登记后领取卡片。
(1)持卡人身份证件上的姓名与所领卡片正面字母(拼音)或 12 背面签名一致;
(2)持卡人身份证件及所领卡片通过交易密码验证;(3)能确认所领卡片持卡人身份的其他法律认可的方式。
2、持卡人所持卡为挂失卡或伪卡引起的吞卡,ATM机打印凭条,ATM网点不得将卡片退还持卡人。
3、吞卡后次日起4个工作日内无人认领的卡片,ATM网点须对卡片沿卡片背面左上磁条下沿与水平不大于45度角方向进行剪角处理,填写“河南省农村信用社吞没卡登记表”,一式两份,一份连同被剪角处理后的卡片定期逐级上交县联社会计部门,另一份留存备查。
第三篇:银行账户结算管理系统毕业设计——柜台操作和ATM服务论文
目 录
第一章 引言.........................................1
1.1 课题的背景及意义.........................................................................................1 1.2 完成的内容与设计结果.................................................................................2
1.2.1 设计目标..............................................................................................2 1.2.2 设计内容..............................................................................................2 1.3 实施步骤.........................................................................................................3
第二章 相关技术介绍.................................5
2.1开发模式:B/S模式.........................................................................................5 2.2 Spring MVC.....................................................................................................5 2.3 Bootstrap.......................................................................................................6 2.4 Jquery.............................................................................................................6
第三章 概要设计.....................................8
3.1 系统结构.........................................................................................................8 3.2 系统主要功能.................................................................................................8
第四章 数据库设计..................................10
4.1 系统类图.......................................................................................................10 4.2 系统E-R图...................................................................................................11 4.3系统数据库设计............................................................................................11
第五章 详细设计....................................13
5.1 系统用例图...................................................................................................13 5.2 柜台操作模块...............................................................................................13
5.2.1柜台操作模块功能介绍.....................................................................13
5.2.2柜台操作模块用例图.........................................................................14 5.2.3柜台操作模块时序图.........................................................................15 5.3 ATM服务模块................................................................................................22
5.3.1 ATM服务模块功能介绍.....................................................................22 5.3.2 ATM服务模块用例图.........................................................................23 5.3.3 ATM服务模块时序图.........................................................................24
第六章 程序实现....................................29
6.1 柜台操作模块截图.......................................................................................29 6.2 ATM服务模块截图........................................................................................32 6.3 重点代码.......................................................................................................33
第七章 总结........................................42
第一章 引言
1.1 课题的背景及意义
自1580年第一家银行在意大利威尼斯诞生至今,随着商品交换、货币流通的迅速扩大,以及国际贸易的迅速发展,银行业获得了空前飞速的发展,其地位、作用日益加强,银行的工作效率和货币流通能力更是成为整个经济发展速度的决定性因素之一。而随着电子信息技术的崛起,银行的业务处理能力与日俱增,作为银行支付结算工作的前提和基础,银行结算账户的管理成为了银行管理流程中的至关重要的部分。
银行结算账户是指存款人在经办银行开立的办理资金收付结算的人民币活期存款账户,是集中反映整个社会经济活动中资金流动的基础。银行结算账户管理需经过国务院行政许可授权,是各大银行支付结算管理工作中的一向重要内容,有效的银行结算账户管理可以为经济、金融秩序运行提供强有力的基础支持,营造公平竞争、合规有序的良好氛围,对于促进我国金融业健康、平稳发展有着重要意义。
银行账户管理制度的确立,账户管理系统的设计直接影响着银行在结算管理中的效率,有效的账户管理工作就相当与一面“防火墙”,可以从源头上控制非法金融活动,稳定金融秩序,同时在反洗钱,反贪污中也能发挥关键性作用。以法律形式明确规定存款人在账户开立、使用中应承担的责任、义务,赋予人民银行和商业银行相应的限制权利和措施,提高行政执法效率,进一步规范结算账户的开立和使用,对于完善我国的账户管理制度,提高对账户的管理效率,促进人民银行履行职能具有重要的意义。
由于受到计算机技术的限制,我国银行电子化起步较晚,各方面技术也不太完善。以中国人民银行为例,其银行账户管理系统先后经历了单机版、集中式处理、双层的C/S模式,最终发展到多层的B/S模式。B/S模式也是现今主流的管理系统开发模式。
2004年6月至2005年2月,中国人民银行首次采用面向对象的方法组织开发了全国
统一人民币结算账户管理系统(简称:结算账户管理系统)软件,2005年6月此系统推广到全国,实现了结算账户的全国统一管理。系统投入使用后,能够在全国范围内严格控制核准类账户的开立,监控存款人在全国开立的所有结算账户。结算账户管理系统成为人民银行实施结算账户管理、金融监控业务的一个重要支撑系统,同时也为发现金融犯罪提供了决策依据。
相比中国,美国的银行电子化比中国早了十几年,而同在亚洲的日本银行的电子化管理也早于中国。当今世界,银行账户系统的网络化成了一个流行趋势,所有的信息处理都要求极高的效率,同时还要有极高的安全性,B/S模式在系统开发中越来越重要,而如何实时高效地处理成千上万的数据对系统设计的要求也愈来愈高。
1.2 完成的内容与设计结果
1.2.1 设计目标
本次设计的主要目标是透过银行账户结算管理系统的设计,重点分析银行账户的结算和管理两个过程,对各个业务流程有更好的了解,如:
1、模拟开户时用户提交信息与后台模块的信息数据库中的信息进行比对,来确定是否授予开户准许,通过这一过程来分析了解银行账户开户的审核过程。
2、了解银行计息方式,账户分类,账户的业务状态等来模拟银行账户管理中的不同的业务流程。如银行常用的账户状态处于激活,挂失,销户等不同状态下所对应的操作;不同的存款方式可使用不同的计息方式等。
3、模拟账户管理中操作权限的管理,从而分析银行在账户数据操作中的安全保障措施。
1.2.2 设计内容
该系统主要完成ATM服务模块和柜台操作模块的功能。
1、ATM服务模块功能有:
(1)存款(2)取款(3)查询余额
(4)转账(本地/异地/本行/跨行)(5)修改密码
2、柜台操作模块功能有:(1)开户(2)存款
(3)取款
(4)转账(本地/异地/本行/跨行)(5)挂失(6)销户
(7)用户信息查询(8)修改账户信息
1.3 实施步骤
银行账户结算管理系统,先后经历系统调研、需求分析、系统设计、编码、系统调试、系统再修改等阶段。
1、查阅文献资料,进行系统调研
完成前期需求分析工作,初步确定系统详细开发周期。
2、系统设计
针对前期确定的需求分析得出一个可行的设计方案。概要系统所需的界面和数据表,大致确定系统框架结构与各功能模块的分工。
3、编码
根据系统设计确定的方案编码,具体实现系统。主要是实现系统的框架结构设计、界面布局设计、功能模块设计。
4、对系统的设计进行更完善的修改,并对系统进行分析和可行性实验,在短时间内建立系统应用原型。
主要是大致完成柜台操作模块和ATM服务模块两大功能模块的具体功能。
5、系统调试。
调试系统各模块的功能与健壮性。
6、系统再修改。
根据系统调试出现的问题修改系统,改进相关编码和设计。
第二章 相关技术介绍
2.1开发模式:B/S模式
B/S模式管理信息系统基本上克服了C/S 模式管理信息系统的不足,其主要表现在: 系统开发、维护和升级的经济性,对于大型的管理信息系统,软件开发、维护与升级的费用是非常高的,B/S模式所具有的框架结构可以大大节省这些费用,同时,B/S模式对前台客户机的要求并不高,可以避免盲目进行硬件升级造成的巨大浪费。B/S模式提供了一致的用户界面,B/S模式的应用软件都是基于Web浏览器的,这些浏览器的界面都很相似。对于无用户交互功能的页面,用户接触的界面都是一致的,从而可以降低软件的培训费用。B/S模式具有很强的开放性,在B/S模式下,外部的用户亦可通过通用的浏览器进行访问。B/S模式的结构易于扩展,由于Web的平台无关性,BS模式结构可以任意扩展,可以从一台服务器、几个用户的工作组级扩展成为拥有成千上万用户的大型系统。B/S模式具有更强的信息系统集成性,在B/S模式下,集成了解决企事业单位各种问题的服务,而非零散的单一功能的多系统模式,因而它能提供更高的工作效率。B/S模式提供灵活的信息交流和信息发布服务。B/S模式借助Internet强大的信息发布与信息传送能力可以有效地解决企业内部的大量不规则的信息交流。
2.2 Spring MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI。Spring MVC 框架并不知道使用的
视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC,这边不去讨论项目中是否应用MVC,也不针对MVC的实现原理进行讲解,而是探讨实践中如何从应用SSH, 到Spring MVC + Spring+Hibernate的演化过程。
2.3 Bootstrap Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。Bootstrap是基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件。Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。其中包括以下组件:下拉菜单、按钮组、按钮下拉菜单、导航、导航条、面包屑、分页、排版、缩略图、警告对话框、进度条、媒体对象等。
2.4 Jquery Jquery是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库,它兼容CSS3,还兼容各种浏览器。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。
jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的
javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签。
Uploadify是一款优秀jQuery插件,主要功能是批量上传文件,此插件在项目中已被广泛使用。
第三章 概要设计
3.1 系统结构
银行账户结算管理系统的分为ATM服务模块,柜台操作模块和后台管理模块。我主要完成的是ATM服务模块和柜台操作模块功能的实现。系统结构如图3.1所示
图3.1系统结构图 Fig 3.1 System Structure
3.2 系统主要功能
银行账户结算管理系统的分为ATM服务模块和柜台操作模块。其中,有三个角色,分别是:用户、操作员、管理员。具体功能设计如下:
1、柜台操作模块主要功能要求
(1)开户:用户可以向操作员申请开户,申请成功后经管理员批准则开户成功。(2)存款:用户登录成功后可以选择已绑定的某张银行卡进行存款。
(3)取款:用户登录成功后可以选择已绑定的某张银行卡进行取款。(4)转账(本地/异地/本行/跨行):用户登录成功后可以选择已绑定的某张银行卡进行转账,支持多种方式。
(5)挂失:用户登录成功后可以选择已绑定的某张银行卡进行挂失。(6)销户:操作员可以对用户进行注销。
(7)用户信息查询: 用户登录成功后可以查看自己的用户信息,操作员和管理员可以查看所有用户的用户信息。
(8)修改账户信息: 用于对已有信息进行更改,对于一些错误的数据可以进行及时的修改。用户登录成功后可以修改自己的账户信息,操作员和管理员可以修改所有用户的账户信息。
2、ATM服务模块主要功能要求
(1)存款: 用户登录成功后选择“ATM服务”可以选择已绑定的某张银行卡进行存款。(2)取款: 用户登录成功后选择“ATM服务”可以选择已绑定的某张银行卡进行取款。(3)查询余额: 用户登录成功后选择“ATM服务”可以选择已绑定的某张银行卡进行余额的查询。
(4)转账(本地/异地/本行/跨行): 用户登录成功后选择“ATM服务”可以选择已绑定的某张银行卡进行转账,支持多种方式。
(5)修改密码: 用户登录成功后可以修改自己的密码。
第四章 数据库设计
4.1 系统类图
系统类图如图4.1所示:
图4.1 系统类图 Fig 4.1 System Class Diagram
用户表、权限表、用户权限表是相互关联的关系,用户表和用户权限表是一对多,权限表和用户权限表是一对多;一个用户表可以有多个账户表。
4.2 系统E-R图
系统E-R图如图4.2所示:
图4.2 系统E-R图 Fig 4.2 System E-R Diagram
4.3系统数据库设计
系统数据库利用MySQL创建,数据库是一个信息系统的重要组成部分。所以在做系统需求分析时就必须设计好数据库。本系统涉及的数据表主要有:
1、用户表 t_user:(附表.1)
存储用户信息,包括有用户名和密码等具体信息。
2、账户表 t_account:(附表.2)
存储每个用户的账户信息,每个用户可以有多个账户信息。
3、权限表 t_app:(附表.3)
存储权限信息。
4、用户权限表 t_user_app:(附表.4)
对不同用户不同的权限分配进行管理。
第五章 详细设计
5.1 系统用例图
图5.1 系统用例图 Fig 5.1 System Use Case Diagram
5.2 柜台操作模块
5.2.1柜台操作模块功能介绍
用户可以向操作员申请开户,申请成功后经管理员批准则开户成功;用户登录成功后可以选择已绑定的某张银行卡进行存款、取款、转账和挂失;操作员可以对用户进行注销;用户登录成功后可以查看或修改自己的用户信息,操作员和管理员可以查看或修改所有用户的用户信息。
5.2.2柜台操作模块用例图
图5.2.2 柜台操作模块用例图
Fig 5.2.2 Counter Operation Module Use Case Diagram
5.2.3柜台操作模块时序图
5.2.3.1 开户
柜台管理列表页面普通用户登录系统后点击菜单栏中柜台管理模块点击开户进入开户页面调用柜台保存Service调用柜台保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DB柜台开户页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.1 开户时序图 Fig 5.2.3.1 Opening Sequence Diagram
5.2.3.2 存款
柜台管理列表页面普通用户登录系统后点击菜单栏中柜台管理模块点击存款进入存款页面调用柜台保存Service调用柜台保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DB柜台存款页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.2 存款时序图 Fig 5.2.3.2 Deposit Sequence Diagram
5.2.3.3 取款
柜台管理列表页面普通用户登录系统后点击菜单栏中柜台管理模块点击取款进入取款页面调用柜台保存Service调用柜台保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DB柜台取款页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.3 取款时序图
Fig 5.2.3.3 Withdrawals Sequence Diagram
5.2.3.4 转账
柜台管理列表页面普通用户登录系统后点击菜单栏中柜台管理模块点击转账进入转账页面调用柜台保存Service调用柜台保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DB柜台转账页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.4 转账时序图 Fig 5.2.3.4 Transfer Sequence Diagram
5.2.3.5 挂失
柜台管理列表页面管理员登录系统后点击菜单栏中柜台管理模块点击挂失按钮,调用Controller调用柜台挂失Service调用柜台挂失DAO方法调用账户实体交互MYSQL DBAccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.5 挂失时序图
Fig 5.2.3.5 Loss Report Sequence Diagram
5.2.3.6 销户
柜台管理列表页面管理员登录系统后点击菜单栏中柜台管理模块点击销户按钮,调用Controller调用柜台销户Service调用柜台销户DAO方法调用账户实体交互MYSQL DBAccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.6 销户时序图
Fig 5.2.3.6 Cancel the Account Sequence Diagram
5.2.3.7 用户信息查询
后台管理列表页面管理员登录系统后点击菜单栏中后台管理模块调用后台管理的Controller调用用户的查询Service调用用户信息DAO方法调用用户实体交互MYSQL DBControllerServicesDaoTUserDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.7 用户信息查询时序图
Fig 5.2.3.7 Query User Information Sequence Diagram
5.2.3.8 修改用户信息
柜台管理列表页面管理员登录系统后点击菜单栏中柜台管理模块点击修改进入修改页面调用柜台保存Service调用柜台保存DAO方法录入信息后点击保存,调用Controller调用用户实体交互MYSQL DB后台用户信息修改页面ControllerServicesDaoTUserDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.8 修改用户信息时序图
Fig 5.2.3.8 Modify User InformationSequence Diagram
5.3 ATM服务模块
5.3.1 ATM服务模块功能介绍
用户登录成功后选择“ATM服务”可以选择已绑定的某张银行卡进行存款、取款、转账以及余额的查询;用户登录成功后可以修改自己的密码。
5.3.2 ATM服务模块用例图
图5.3.2 ATM服务模块用例图
Fig 5.3.2 ATM Services Module Use Case Diagram
5.3.3 ATM服务模块时序图
5.3.3.1 存款
ATM管理列表页面普通用户登录系统后点击菜单栏中ATM管理模块点击存款进入存款页面调用ATM保存Service调用ATM保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DB柜台存款页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.3.3.1 存款时序图 Fig 5.3.3.1 Deposit Sequence Diagram
5.3.3.2 取款
ATM管理列表页面普通用户登录系统后点击菜单栏中ATM管理模块点击取款进入取款页面调用ATM保存Service调用ATM保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DBATM取款页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.3.3.2 取款时序图
Fig 5.3.3.2 Withdrawals Sequence Diagram
5.3.3.3 转账
ATM管理列表页面普通用户登录系统后点击菜单栏中ATM管理模块点击转账进入转账页面调用ATM保存Service调用ATM保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DBATM转账页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.3.3.3 转账时序图 Fig 5.3.3.3 Transfer Sequence Diagram
5.3.3.4 查询余额
ATM管理列表页面管理员登录系统后点击菜单栏中ATM管理模块调用ATM管理的Controller调用ATM的查询余额Service调用账户DAO方法调用账户实体交互MYSQL DBAccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.3.3.4 查询余额时序图
Fig 5.3.3.4 Query Balance Sequence Diagram
5.3.3.5 修改密码
ATM管理列表页面管理员登录系统后点击菜单栏中ATM管理模块点击修改密码进入修改页面调用ATM保存Service调用ATM保存DAO方法录入信息后点击保存,调用Controller调用用户实体交互MYSQL DBATM用户信息修改密码页面ControllerServicesDaoTUserDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.3.3.5 修改密码时序图
Fig 5.3.3.5 Change Password Sequence Diagram
第六章 程序实现
6.1 柜台操作模块截图
登陆界面:用户打开浏览器在地址栏输入 http://localhost:8080/
进入到登陆界面输入用户名密码,登录成功后,如图6.1.1所示
输入用户名和密码后,跳转到如图6.1.2的页面中
点击新建账户,即开户操作,跳转到如图6.1.3的页面中,输入信息后,“保存”则
开户成功。
点击存款,跳转到如图6.1.4的页面中,可以输入存款金额进行存款。
点击取款,跳转到如图6.1.5的页面中,可以输入取款金额进行取款。
点击转账,跳转到如图6.1.6的页面中,可以输入转账卡号和转账金额进行转账。
点击修改信息,跳转到如图6.1.7的页面中,可以修改用户信息。用户也可以注销自己。
点击用户信息查询,跳转到如图6.1.8的页面中,可以查看账户信息。
6.2 ATM服务模块截图
用户登录成功,跳转到如图6.2.1的页面中,显示ATM服务的账户信息。
点击显示余额,跳转到如图6.2.2的页面中,可以显示账户的余额。
点击修改密码,跳转到如图6.2.3的页面中,可以输入原密码和新密码。
6.3 重点代码
@Controller @RequestMapping(“/admin/account”)public class AccountController extends BaseController{ @Autowired private AccountService accountService;
@RequestMapping(“/list.do”)
public String list(HttpServletRequest request){
String searchTruename = request.getParameter(“searchTruename”);String type = request.getParameter(“type”);request.setAttribute(“List”, accountService.findAll(searchTruename ,this.getLoginUser().getUsername()));
}
@RequestMapping(“/show.do”)public String show(HttpServletRequest request){
String id = request.getParameter(“id”);if(StringUtils.isNotEmpty(id))request.setAttribute(“entity”, accountService.findByID(Integer.valueOf(id)));request.setAttribute(“searchTruename”, searchTruename);String a = “admin/biz/account/list”;if(type.equals(“1”)){ } if(type.equals(“2”)){ } if(type.equals(“3”)){ } return a;a = “admin/biz/account/list2”;a = “admin/biz/account/list”;a = “admin/biz/account/list1”;
} return “admin/biz/account/show”;@RequestMapping(“/setstate.do”)public String
setState(@RequestParam(“id”)int
id,@RequestParam(“state”)String state,HttpServletRequest request){
}
@RequestMapping(“/edit.do”)public String edit(HttpServletRequest request){
}
@RequestMapping(“/toZhuanzhang.do”)public String toZhuanzhang(HttpServletRequest request){
String id = request.getParameter(“id”);if(StringUtils.isNotEmpty(id)){ request.setAttribute(“entity”, accountService.findByID(Integer.valueOf(id)));request.setAttribute(“accountEntity”, accountService.findOthers(id));String id = request.getParameter(“id”);if(StringUtils.isNotEmpty(id))request.setAttribute(“entity”, accountService.findByID(Integer.valueOf(id)));accountService.setState(id,state);return “redirect:/admin/account/list.do”;return “admin/biz/account/edit”;
} } request.setAttribute(“type”, request.getParameter(“type”));return “admin/biz/account/zhuanzhang”;@RequestMapping(“/changeMoney.do”)public String changeMoney(HttpServletRequest request){
}
/** * 存取款
* @param request * @return */ @RequestMapping(“/updateMoney.do”)public String updateMoney(HttpServletRequest request){
String id = request.getParameter(“id”);String moneyState = request.getParameter(“moneyState”);String changeMoney = request.getParameter(“changeMoney”);String id = request.getParameter(“id”);
if(StringUtils.isNotEmpty(id))request.setAttribute(“entity”, accountService.findByID(Integer.valueOf(id)));request.setAttribute(“moneyState”, request.getParameter(“moneyState”));request.setAttribute(“type”, request.getParameter(“type”));return “admin/biz/account/changeMoney”;
String type = request.getParameter(“type”);//1代表存款 //2代表取款
if(“1”.equals(StringUtils.trim(moneyState))){ TAccount account = accountService.findByID(Integer.valueOf(id));account.setMoney((Double.valueOf(account.getMoney())+ Double.valueOf(changeMoney))* 1.03 +“");
} if(”2“.equals(StringUtils.trim(moneyState))){ TAccount account = accountService.findByID(Integer.valueOf(id));account.setMoney((Double.valueOf(account.getMoney())Double.valueOf(changeMoney))* 1.03 +”“);TAccount toAccount = accountService.findByID(Integer.valueOf(toId));toAccount.setMoney((Double.valueOf(toAccount.getMoney())+ Double.valueOf(changeMoney))* 1.03 +”“);
//
}
@RequestMapping(”/save.do“)public String
save(HttpServletRequest
request)
throws
IllegalAccessException, accountService.saveOrUpdate(account);accountService.saveOrUpdate(toAccount);return ”redirect:/admin/account/listForUserid.do?userId“ + this.getLoginUser().getUserid();return ”redirect:/admin/account/list.do?type=“+type;InvocationTargetException {
TAccount account = new TAccount();String id = request.getParameter(”id“);if(StringUtils.isNotEmpty(id))account = accountService.findByID(Integer.valueOf(id));BeanUtils.populate(account, request.getParameterMap());
} account.setMoney(Double.valueOf(account.getMoney())* 1.03 + ”“);String password = request.getParameter(”password“);if(StringUtils.isNotEmpty(password))account.setPassword(SHAUtil.sha(account.getPassword()));if(account.getId()== 0){
account.setTruename(this.getLoginUser().getRealname());account.setUsername(this.getLoginUser().getUsername());account.setCreUid(Integer.valueOf(this.getLoginUser().getUserid()));account.setCreTime(CalendarUtils.getNowTimeTimestamp());}else{
} accountService.saveOrUpdate(account);return ”redirect:/admin/account/list.do“;account.setEdiTime(CalendarUtils.getNowTimeTimestamp());account.setEdiUid(Integer.valueOf(this.getLoginUser().getUserid()));@RequestMapping(”/goChangepwd.do“)public String goChangepwd(HttpServletRequest request){
}
@RequestMapping(”/changepwd.do“)request.setAttribute(”id“, request.getParameter(”id“));return ”admin/biz/account/changepwd“;
public String changepwd(HttpServletRequest request)throws IllegalAccessException, InvocationTargetException {
// } String id = request.getParameter(”id“);TAccount account = accountService.findByID(Integer.valueOf(id));String oldpwd = request.getParameter(”oldpwd“);String newpwd1 = request.getParameter(”newpwd1“);String newpwd2 = request.getParameter(”newpwd2“);String rs = null;if(StringUtils.isNotEmpty(oldpwd)&& SHAUtil.sha(oldpwd).equals(account.getPassword())){
if(newpwd1.equals(newpwd2)){
account.setPassword(SHAUtil.sha(newpwd1));accountService.saveOrUpdate(account);rs = ”密码修改成功!“;}else{ } rs = ”新密码两次输入不一致!“;}else{ } request.setAttribute(”rs“, rs);return ”admin/biz/account/changepwd“;return ”redirect:/admin/account/listForUserid.do?userId“ + this.getLoginUser().getUserid();rs = ”原密码输入错误!“;
@RequestMapping(”/export.do“)public String export(HttpServletRequest
request,HttpServletResponse
response)
throws UnsupportedEncodingException{
} } /*下载xls名字在这命名*/ String fileName = ”账号信息“;request.setAttribute(”List“, accountService.findAll());response.setContentType(”text/html;charset=utf-8“);try { request.setCharacterEncoding(”UTF-8“);} catch(UnsupportedEncodingException e){ } String excelName = new String(fileName.getBytes(), ”ISO8859-1“)+ ”.xls“;response.setHeader(”Content-disposition“, ”attachment;filename=“+ excelName);/*跳转你自己下载模版路径*/ return ”admin/biz/account/export";e.printStackTrace();
第七章 总结
经过这次开发,我对SpringMVC框架有了更加系统的把握。本系统在开发过程中,我自始至终都着眼于实际应用需求,致力于完善业务逻辑,而把繁琐的实现细节交给了SpringMVC架构完成,较使用普通的jsp开发效率明显提高。整个开发过程充分发挥了SpringMVC作为成熟的应用框架的优势。
从设计角度看本系统合理使用了分层模型,使得代码结构清晰,易于调用和维护。但需要注意的是并不分层越多越好,关键看解决问题的复杂度的考量。由于分层越多,虽然逻辑上会更清晰,更利于开发和维护,但也会带来创建实例的次数增多的问题,随之而来的是代码效率的降低。因此必须需要权衡好分层数目和代码执行效率的关系。从运行效率上看,本次开发对分层模型的层次把握比较成功。
此设计成功实现了功能。但是在业务逻辑灵活性上还有欠缺。在今后的研究中,可以通过添加一张业务逻辑表用于动态定义业务逻辑,使系统的灵活性更强,更利于移植和推广。
第四篇:结算流程
江门市耀翔实业有限公司
采购结算及付款流程
本文针对供应商结算货款,采购部报销等业务的操作指引。1.0 采购前规定:
1.1凡采购的业务,凭据均是已审批的《物料申购单》或《采购单》
1.2采购金额在300元以内的,部门负责人签批后,采购员可先行采购,总经理孔令祺后补签批;采购金额在300元以上的,总经理孔令祺签批后方能外出采购;
1.3凭已审批的《物料申购单》或《采购单》,可填写《借款单》,经采购部负责人签名后,可借支现金外出采购,借支限额最高为3千元,借支周期为一周,即一周内要清还借款,并不允许未清还借款的前提下再借支的行为;
1.4凡采购金额达3千元或以上的,要沟通供应商送货收款,不作借支外购。2.0 付款分类:
2.1 外购付款以及预付款:由采购员凭《采购单》做《供应商计划付款表》交结算员做《付款申请书》;
2.2 月结、货到付款:采购主管不用做付款计划,由结算员按《供应商付款安排表》直接做《付款申请书》。
2.3 采购部与财务部要共同协商,制定一份《供应商付款安排表》。内容包括:
2.3.1 哪些供应商要采购做付款计划,哪些不需要做;
2.3.2 哪些供应商可按70%结算,哪些按100%结算;
2.3.3 哪些供应商做承兑结算,哪些做支票或汇款结算; 3.0 办理支票、汇款结算的程序
3.1 结算员正确填写《付款申请书》项目(并附上供应商收据或发票、送货单结算联等,即结供应商需加附入库单结算联),交相关采购员、采购部负责人复核签名确认后,将付款申请单和票据交财务部往来会计审核。4.0 办理承兑结算程序
4.1 结算员收到各主管的通知后,逐一为各供应商办理付款申请。正确填写《付款申请书》项目(并附上供应商收据或发票、送货单结算联、《承兑合同书》等),交相关采购主管及采购部负责人复核签名确认,于周一前统一交财务部往来会计审核,遇特殊情况的,可即时处理。5.0 付款签批程序及权限
5.1 签名顺序:结算员→采购部(主管及负责人)→往来会计→总经理或董事
长
5.2 往来会计于每天下午6点前完成签核当天所有付款申请,并向采购部、供
应商反馈审核情况的信息;
5.3 往来会计将已审核的《付款申请单》交相应审批权限的管理人员签名后,交出纳员,结算日进行付款。
5.4 付款审批权限:如金额在5万元以内的(含5万):经采购经理审核后,总经理孔令祺审批,即可到财务部出纳员处办理结算手续;如金额在5万元以上的,经总经理孔令祺签名后,须经董事长孔晓燕审批方可办理结算手续。
6.0 结算付款日
6.1 出纳员逢周三做支票、汇款,货到付款的除外,逢周四办理承兑结算。遇
特殊情况的,可即时处理。
6.2 供应商如付款日发现差异的,应核对清楚确认后,于下次付款日再付款。7.0 其他费用的审批及支付
7.1 公司内部人员报销费用的,经董理长孔晓燕签批方能支付;
7.2 出纳员逢周二支付厂内员工的报销费用;
7.3 辞退人员的离职工资,实时支付。
8.0 相关表格
《物料申购单》
《采购单》
《供应商计划付款表》
《供应商付款安排表》
《付款申请单》
《承兑合同书》
第五篇:模拟ATM机流程
模拟ATM机流程
package com.igeekhome.demo2;
import java.util.Scanner;
//银行帐户类
public class Account { // 属性
private int id;private String name;private String pass;private double balance;private static int currentID = 1;// 记录当前的卡
// get/set public int getId(){
return this.id;}
public String getName(){
return this.name;}
public String getPass(){
return this.pass;}
public double getBalance(){
return this.balance;}
//构造函数
public Account(String name,String pass,double money){
this.name = name;
this.pass = pass;
this.balance = money;
this.id = currentID++;}
/*******业务方法*********/
//存款
public void saveMoney(){ Scanner in = new Scanner(System.in);//接收存款的金额
System.out.print(“请输入存款的金额:”);int money = in.nextInt();
//修改余额
this.balance+=money;
//给出提示
System.out.println(“存款成功,当前的余额是:”+this.balance);}
//取款
public void drawMoney(){ Scanner in = new Scanner(System.in);//接收取款的金额
System.out.print(“请输入取款的金额:”);int money = in.nextInt();//判断余额是否大于取款金额,如果满足上面的条件,则修改余额,并给出提示
if(this.balance>money){
this.balance-=money;
System.out.println(“取款成功,当前的余额是:”+this.balance);}else{//如果不满足,则给出取款 失败的动提示
System.out.println(“余额不足,取款失败”);}
}
//修改密码
public void modifyPass(){ Scanner in = new Scanner(System.in);//接收原密码
System.out.print(“请输入原密码:”);String oldPass = in.nextLine();//判断密码是否正确,如果不正确,则给出提示,结束方法
if(this.pass.equals(oldPass)==false){
System.out.println(“原密码不正确,修改密码失败”);
return;//返回,不再往下执行
}
//如果正确,则接收新密码
System.out.print(“请输入新密码:”);String newPass1 = in.nextLine();
//再次接收新密码
System.out.print(“请再次输入新密码:”);
String newPass2 = in.nextLine();
//判断两次新密码是否一致,如果一致,修改密码,给出提示
if(newPass1.equals(newPass2)){
this.pass = newPass1;
System.out.println(“修改密码成功”);
}else{ //如果不一致,给出修改密码失败提示
System.out.println(“两次新密码不一致,修改密码失败”);
}
}
}
package com.igeekhome.demo2;
import java.util.Scanner;
public class Test {
public static void main(String[] args){
//创建一个帐户对象,进行模拟操作
Account a = new Account(“张三”,“888888”,1000);
//System.out.println(a.getId()+“,”+a.getPass());
//调用登录方法,并得到返回结果
boolean flag = Test.login(a.getId(), a.getPass());
if(flag){//如果返回值为true,才进行到主菜单进行相关的操作
Test.showMenu(a);
}
}
//进行登录操作,如果成功,则返回true,否则返回false /*
* 用户在ATM机进行操作时,可以有三次输入密码的机会,如果三次中任何一次输入正确,可以进入到主界面进行相关操作,如果三次都不正确,则输出“请与管理员联系”
*/ public static boolean login(int id,String pass){//id,pass现有卡的卡号和密码
Scanner in = new Scanner(System.in);
for(int i=1;i<=3;i++){
System.out.print(“请输入卡号:”);
String s = in.nextLine();
int curID = Integer.parseInt(s);
System.out.print(“请输入密码:”);
String curPass = in.nextLine();
//如果卡号和密码都正确,则返回 true
if(id==curID && pass.equals(curPass))
return true;
if(i<3)
System.out.println(“卡号或密码不正确,请重新输入!”);
else
System.out.println(“三次输入错误,请与管理员进行联系”);}
return false;}
//显示菜单,进行相关操作
public static void showMenu(Account a){ Scanner in = new Scanner(System.in);
System.out.println(“欢迎使用ATM取款机”);while(true){
System.out.println(“请选择:1.查询余额;2.取款;3.存款;4.修改密码;5.退出:”);
int choose = in.nextInt();//接收用户的选择
if(choose==5)
break;
switch(choose){
case 1:System.out.println(“您的余额是:”+a.getBalance());break;
case 2:a.drawMoney();break;
case 3:a.saveMoney();break;
case 4:a.modifyPass();break;
default:System.out.println(“您的输入有误,请重新输入”);break;
} }
System.out.println(“感谢您再次使用!”);} }