工作中系统bug解决过程——split分割/substring截取字符串

工作记录

总结工作经验

本人是公司实习菜鸟,一般会安排一些比较基础与简单的任务让我来做。这次公司前辈就安排给我一个系统bug我来解决,这个系统是前后端分离,前端vue,后端Java。
而我上一分钟刚刚学习一个全是js的系统前端,突然转回来看另一个系统的后端代码,就有一丢丢蒙圈;再加上任务安排了刚有一会,公司就通知我要去做一些比较零碎的技术无关的事情,昨天快要脑壳痛死了,不过还好幸运,向各位大佬们学习,这个问题很快就迎刃而解了。

系统问题排查

1、从前端测试系统,发现浏览器network中返回的数据requireCount这个数值不正确。数据是从另一个系统导入的,库里的数据确定不会出错,应该是后端处理数据出了问题。

工作中系统bug解决过程——split分割/substring截取字符串_第1张图片

工作中系统bug解决过程——split分割/substring截取字符串_第2张图片

2、后端对此处计算的特殊处理。可以看到特殊处理是getTourName然后对里面的0-9数字进行replaceAll操作。

if (originSalesDTOList.get(0).getCompanyNo().equals("xx团编号")) {
            ...
            ...
                String tourDateStr = "2019" + z.getTourName().replaceAll("[^0-9]","");
                try {
                   ...
                   ...
                } catch (Exception e) {
                    return false;
                }
            }).collect(Collectors.toList());
           ...
           ...
        }

3、查看前端返回的tourName中的数据。可以看到,字段中的所有数字不光是代表日期。例如PVG-1227-J2M:J2M中还有个2。
工作中系统bug解决过程——split分割/substring截取字符串_第3张图片
在这里插入图片描述

在这里插入图片描述

问题出现的原因

String tourDateStr = "2019" + z.getTourName().replaceAll("[^0-9]","");

tourName中有多余数字的,例如PVG-1227-J2M,通过以上处理过后,所有数字为201912272,多出2,并不是代表日期的一段数字,解析失败,try catch返回false。

解决方法

工作中系统bug解决过程——split分割/substring截取字符串_第4张图片
split通过“-”分割字符串,例如PVG-1227-J2M,分割开为PVG、1227与J2M,通过索引取第二个字段,索引为1,取到1227,再加上2019,可以得出正确的日期20191227。

String tourDateStr = "2019" + z.getTourName().split("-")[1];

此处建议使用substring,原因tourName是用户人为录入,格式不固定,不能确定一直有“-”,所以直接substring截取字符串,保持固定长度,减小出错概率。

if (originSalesDTOList.get(0).getCompanyNo().equals("xx团编号")) {
            ...
            ...
				//substring截取4-8位
                String tourDateStr = "2019" + z.getTourName().substring(4,8);
                try {
                   ...
                   ...
                } catch (Exception e) {
                    return false;
                }
            }).collect(Collectors.toList());
            ...
            ...
        }

总结

这样改过bug解决,测试通过。还需努力,多多向大佬们学习!
工作中系统bug解决过程——split分割/substring截取字符串_第5张图片

你可能感兴趣的:(项目经验)