Fork me on GitHub

第四个任务

第四个任务

​ 昨天刚刚解决了困扰好久的bug,今天果然又迎来了新的bug:

img

​ 又是在生产环境下的问题,好吧,只能硬着头皮上了!

​ 看了一下好像跟一开始第一个任务一样,都是在带宽型批量校验模板上的问题,可以直接找到上次的源文件进行分析。

定位问题

img

​ 做了好久的逻辑业务资源,忽然找不到批量受理的入口了。。还是没有做好笔记的锅!

​ 然后打开了OrderVerifyImportProcessor.java这个文件,找到对应的位置:

img

​ 加上了如下的判断语句:

img

好了,接下来要如何测试呢?又是在生产环境下的问题。

​ 对的,又要从数据库入手,让我们先来看看是如何跟数据库打交道的:

1
2
3
4
5
6
7
8
9
List<Map<String,Object>> moList = queryDeviceBySql(value);
//因为账号的数据权限没有光缆专业,所以改为sql查询
private List<Map<String,Object>> queryDeviceBySql(Object value) throws Exception{
if(value==null) return null;
String sql = "SELECT (SELECT S.OBD_LEVEL FROM CE_DEVICE_OBD_CCS S WHERE S.DEVICE_ID = D.ID) OBD_LEVEL,"
+ "D.* FROM CM_DEVICE D WHERE D.SHARDING_ID = ? AND D.NAME = ?";
return metaService.query(sql, new Object[]{SecurityUtils.getCurrentShardingId(),value});
}

让我们用这条查询语句去数据库看看,在控制台可以看到是sw_sz0923数据库,在pom.xml文件中查询账户密码,进入数据库,查询对应语句:

1
2
SELECT (SELECT S.OBD_LEVEL FROM CE_DEVICE_OBD_CCS S WHERE S.DEVICE_ID = D.ID) OBD_LEVEL,
D.* FROM CM_DEVICE D WHERE D.SHARDING_ID = '755' AND D.NAME = '香港VDICHINALIMITED深圳代表处用户机房/99-02';

img

​ 可以看到查询到一条记录,既然想代码走我写的那个逻辑,就必须是查询到多条语句,好的方向对了,现在来准备向CM_DEVICE表中插入相同NAME,ID,Sharding_ID的一条记录。

img

​ 然后在eclipse中重新设置断点,看看有没有在我写的代码中断,检测出多条记录。

​ 在这里浪费了好多时间,数据库修改完毕之后一定要重启数据库,重启服务器,重启浏览器并清空缓存 !!!!

全部重启之后,导出结果文件,在Excel文件中出现了我写的结果。

ok,问题完成。

svn更新上传代码,在pms网站提交补丁:

img

坚持原创技术分享,您的支持将鼓励我继续创作!
-------------本文结束 感谢您的阅读-------------