从制造到创造
软件工程师成长之路
posts - 292,  comments - 96,  trackbacks - 0

問題一

季帳單的金額欄位, 請四捨五入到, 不要帶出小數位數字

之前季帳單沒有這樣的問題存在, 為什麼交付的新程式會出現這個問題呢?

 


 我们先查询第一笔记录:
再保項目 弱體等級 資料別 被保人性別 金額
Rein. premium 標準體 新件   1901.5949

看看数据库中的情况是怎样的,因为金额“1901.5949”是加总后的结果。

通过下面的SQL语句查询结果:
条件:1、2006年第二季度,即会计年月为:200604、200605、200606;
            2、再保公司为CRC,即为“01”;
            3、年度为“2006”,即PREM_YEAR为:2006;
            4、资料别为新件,即MONTHLY_FLAG为:N、NC;
            5、报表险种群为ICE,即再保类别为“12”
            6、弱体等级为标准体,即BODY_FLAG为“1”

SELECT mt.Q_PREMIUM
FROM RIS.MONTHLY_TEMP mt
WHERE 1=1
AND mt.ACCOUNT_YM_DATE in ('200604','200605','200606')
AND mt.RE_COMPANY_CODE='01'
AND mt.PREM_YEAR=2006
AND mt.MONTHLY_FLAG in ('N','NC')
AND mt.REINSURANCE_CLASS='12'
AND mt.BODY_FLAG='1'
;

然后我们将得到的记录拷贝到Excel档中,


通过结果下面的SQL同样可以得到结果:1901.5949
SELECT sum(mt.Q_PREMIUM) Q_PREMIUM
FROM RIS.MONTHLY_TEMP mt
WHERE 1=1
AND mt.ACCOUNT_YM_DATE in ('200604','200605','200606')
AND mt.RE_COMPANY_CODE='01'
AND mt.PREM_YEAR=2006
AND mt.MONTHLY_FLAG in ('N','NC')
AND mt.REINSURANCE_CLASS='12'
AND mt.BODY_FLAG='1'
GROUP BY mt.PREM_YEAR
;

从Excel档可以看到数据的小数部分没有处理,而我们的记录都放在一个Map中,Map的键为对象的Id,即SeasonAccountDetailAmountId,而值为SeasonAccountDetailAmount,我们要处理的属性金额在Map的值中。我们只需遍历Map,然后处理(四舍五入)值中对象的某个属性,然后将这个“键值对”放到Map中,它会自动覆盖以前的同Key的记录。
    /**
     * 將Map中SeasonAccountDetailAmount對象的amount的值四舍五入
     * 
     * 
@author XuLin
     * 
     * 2008.01.15
     * 
     * 
@param detailMap
     
*/
    
private void roundingMap(Map detailMap) {// TODO
        Map map = (FastHashMap) detailMap;
        Iterator it 
= map.entrySet().iterator();
        SeasonAccountDetailAmountId sadaId 
= null;
        SeasonAccountDetailAmount sada 
= null;
        
while (it.hasNext()) {
            Map.Entry entry 
= (Map.Entry) it.next();
            sadaId 
= (SeasonAccountDetailAmountId) entry.getKey();
            sada 
= (SeasonAccountDetailAmount) entry.getValue();
            
if (sada.getAmount() != null) {
                sada.setAmount(Common.roundingBigDecimal(sada.getAmount(),
                        Constant.MONEY_SCALE));
//四舍五入到整數位
                seasonAccontDetailCache.put(sadaId, sada);
            }
        }
    }


問題二

新增的季帳單(CRC-2006-384)再保項目-Return Rein. Commission Last Year 一筆金額100,000

為何反應在季帳單PDF上會有兩筆記錄??

Return Rein. Commission Last Year-2006  NTS 空白??

Return Rein. Commission Last Year-2005  NTS 100,000



處理方法:
交給第三方處理,我們的報表做法是我們生成文本格式的txtFile,然后由第三方處理。
出現問題的原因是該“再保險種”的值為,應該不顯示在PDF上,他應該多加一層判斷。
posted on 2008-01-16 11:34 CoderDream 阅读(305) 评论(0)  编辑  收藏 所属分类: 再保系统

只有注册用户登录后才能发表评论。


网站导航:
 

<2008年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(9)

我参与的团队

随笔分类(245)

随笔档案(239)

文章分类(3)

文章档案(3)

收藏夹(576)

友情链接

搜索

  •  

积分与排名

  • 积分 - 454156
  • 排名 - 115

最新评论

阅读排行榜

评论排行榜