定期一本通打印重复
2013年6月6日 记录:
定期一本通打印重复记录的原因找到了。
由于某种原因,柜员做了更换凭证操作,而更换凭证操作和开户打印走的是不同的分支。所以会有打印数据的怪异和错误。
打印数据怪异和错误的地方有两个:
1、对于由废户销户造成的废户(没有任何金融性交易)是不需要在存折上体现的。但是更换凭证的时候,会将这样的数据打印出来。
2、由于在20110907要处理部提和销户抹帐的打印,所以当时将对rtxnnbr的比较改成了txnseqnbr。而数据库中竟然在该记录txnseqnbr的地方记录着rtxnnbr。(当然,由于更换凭证打印的,所以这也就是可以理解的了)。
对于柜员为什么要做更换凭证,目前不清楚,能想到更换凭证的正常情况有两种:
1、挂失更换,但是查询挂失记录,并没有查到200000187290的挂失历史。
2、折满换折,但是根据查询,此凭证还没有打满。
至于为什么更换,仍然搞不懂。(分析数据,肯定是系统提示换折,因为从记录的时间和数据上符合。但是系统为什么提示换折?)
柜员换折的原因仍然不清楚。
但是已经可以重现这个问题了。
续开账户并存完钱之后,在概览那一屏不点击确定,而是直接退出,或什么都不做(因为点击确定才会打印存折,并更新mediaacctpcb表)。然后进行更换凭证,然后再续开,这样就可以重新问题。
================================
发现问题:
1、对于将rtxnnbr改造成txnseqnbr后,对于自动转存和结息的记录是有问题的,例如在txnseqnbr启用之前结息,结息记录没有txnseqnbr,而根据代码,就不会打印这条记录,而这条记录也确实没有打印过呢。这就造成这条记录不会再被打印。
2、对于折满换折的情况,业务上是否要求打印历史记录,如果要求打印的话,则将死循环。如果不要求打印的话,那都是什么情况不打印历史记录?
3、更换凭证打印存折,对历史数据是原样打印,还是部分更改。例如更换凭证是由281柜员更换的,但是之前的历史数据是由285柜员操作并打印的,那么记录柜员的字段,是仍然用285,还是更新成281,还是表设计的不合理,应该都有所体现,还是这些不重要。目前的系统,会将这些信息都改成当前柜员的信息,造成查看历史的时候,会迷惑。
============================解决方案=======================
在一切都没有官方需求和指导的情况下,提供解决方案如下:
1、改造更换凭证打印定期一本通的代码。
1.1、将rtxnnbr照开户打印方式替换成txnseqnbr。
1.2、将对已销户(CLS)状态的账户,如果没有任何金融性交易,则不再取出此记录。(对于正常开户,但是正常销户的账户还是要保留的)。
1.3、对于之前的历史记录,原样打印。(其实不能实现,因为MediaAcctPcb表里只记录了打印到哪里了,并没有记录打印的具体信息,例如利率,而这些东西只能去重新取,而且,一旦发生利率调整之后,补打的是正在起作用的。例如某人于2007年开户二年期定存,当时利率是3.5,两年期利率于2008年调整成4.0,然后客户来更换凭证,目前系统取的是最新的4.0的利率,而不是当时的利率)。
2013-06-19 这样的处理方式有问题:因为有可能换折后,记录的行数,和实际的行数并不一致,就会造成打空行的问题。