7-28改的几个BUG和遇见问题该有的解题思路

76 阅读2分钟

7-28改的几个BUG ps:估计他们做也就一两个小时,我搞了两天哈哈,心碎

1690532574860.png

1690532447234.png 人社资金监督子系统那几个系统的组件;

最终的解决方法

  1. 没有数据,也是报错Java.lang.NumberFormatException,这句话的意思是数据类型转化错误,出错的地方在于代码有一块是把JD0203这个字段的数据转化为new BigDecimal(JD0203),BigDecimal:高精度的int 暂时这么理解。而JD0203中有好多数据是空,BigDecimal面对Null的数据就直接G了,所以解决办法是在上面的查询数据的时候就直接把JD0203的数据为Null的数据给滤出去。(其实后面把空的数据给补上了)

  2. 同上,但是这个再上传组件的时候有一个内部类,我还是跟SB一样只上传两个,导致当时报别的错。卡了半天,啥也不会,做东西太死了

7.造数据的时候写错了,JD02表的0202 0203没插进去,导致2023没数据,解决方法是用updata把2023年的数据再更新一下把0202 0203给填上去

UPDATE JD02 
SET JD0203 = FLOOR(DBMS_RANDOM.VALUE(10000, 100000)) 
WHERE JD0101 IN (SELECT JD0101 FROM JD01 WHERE JD0103 > TO_DATE('2022-12-01', 'yyyy-MM-dd') AND JD0103 < TO_DATE('2022-12-30', 'yyyy-MM-dd'))
UPDATE JD02
SET JD0202 = 
  CASE FLOOR(DBMS_RANDOM.VALUE(0, 14))
    WHEN 0 THEN '省级领军人才梯队建设经费'
    WHEN 1 THEN '省级领军人才后备带头人专项资助资金'
    WHEN 2 THEN '博士后资助经费'
    WHEN 3 THEN '留学回国人员科研启动金'
    WHEN 4 THEN '离退休人员档案整理保管经费'
    WHEN 5 THEN '技工学校发展专项资金'
    WHEN 6 THEN '养老保险权益单邮寄费'
    WHEN 7 THEN '两院院士津贴'
    WHEN 8 THEN '自主择业军转干部社会保障费用'
    WHEN 9 THEN '国家级有突出贡献中青年专家补贴'
    WHEN 10 THEN '引智资金'
    WHEN 11 THEN '中小企业赴瑞士系统培训专项经费'
    WHEN 12 THEN '社保经办机构专项业务费'
    WHEN 13 THEN '养老保险权益单邮寄费'
    ELSE '省级领军人才梯队建设经费'
  END
WHERE JD0101 IN (SELECT JD0101 FROM JD01 WHERE JD0103 > TO_DATE('2022-12-01', 'yyyy-MM-dd') AND JD0103 < TO_DATE('2022-12-30', 'yyyy-MM-dd'))

其中,DBMS_RANDOM.VALUE是oracle的,rand是mysql的,别弄混了

8.也是因为2023数据有问题

遇见问题的思路

出现问题,别看到英文就难受,一定要搞清楚他到底是啥问题,比如说Java.lang.NumberFormatException,这个英文是类型转换,那么到对应的组件里,专门盯着类型转换的字段看就可以了(或者在组件日志里看看是哪一行有问题)遇见问题,看看接口,然后去页面看看出问题的那个地方用的是那个功能然后在组件里看对应的功能。而7和8出现的某些数据不怎么显示的问题,他没报错,证明代码部分出毛病的几率较小,那就是数据库有问题。

遇见问题一定要快速抓住主要矛盾,知道大概是哪里出现问题了,不要无头苍蝇,无从下手