Commit 7a6dd2db3c30eac906d04482e55e8628974be855
1 parent
5f0ac20f
手动分页功能代码重构;
Showing
4 changed files
with
67 additions
and
79 deletions
src/main/java/com/objecteye/service/impl/HumanVehicleAssociationServiceImpl.java
@@ -303,66 +303,41 @@ public class HumanVehicleAssociationServiceImpl implements HumanVehicleAssociati | @@ -303,66 +303,41 @@ public class HumanVehicleAssociationServiceImpl implements HumanVehicleAssociati | ||
303 | } | 303 | } |
304 | 304 | ||
305 | double currentFea = compareDistance.getDistance(currentFeature); | 305 | double currentFea = compareDistance.getDistance(currentFeature); |
306 | - | ||
307 | -// //遍历mongodb所有的车辆信息 | 306 | + //遍历mongodb所有的车辆信息 |
308 | List<PicVehicleCompare> pvc = new ArrayList<PicVehicleCompare>(); | 307 | List<PicVehicleCompare> pvc = new ArrayList<PicVehicleCompare>(); |
309 | - | ||
310 | - int numberCount = 0; | ||
311 | - for (int i = 0; i < allRabbitMQVehicleList.size(); i++) { | ||
312 | - numberCount++; | ||
313 | - RabbitMQVehicle rmqv = allRabbitMQVehicleList.get(i); | ||
314 | - int vehicle_special_type = rmqv.getVehicle_special_type(); | ||
315 | - | ||
316 | - double[] dbFeature = rmqv.getVehicle_fea_feature(); | 308 | + for (RabbitMQVehicle rabbitMQVehicle : allRabbitMQVehicleList) { |
309 | + int vehicle_special_type = rabbitMQVehicle.getVehicle_special_type(); | ||
310 | + double[] dbFeature = rabbitMQVehicle.getVehicle_fea_feature(); | ||
317 | //进行比对 | 311 | //进行比对 |
318 | double dbFea = compareDistance.getDistance(dbFeature); | 312 | double dbFea = compareDistance.getDistance(dbFeature); |
319 | double similar = compareDistance.simDistance(currentFeature, currentFea, dbFeature, dbFea); | 313 | double similar = compareDistance.simDistance(currentFeature, currentFea, dbFeature, dbFea); |
320 | if (threshold <= similar) { | 314 | if (threshold <= similar) { |
321 | similar = (double) Math.round(similar * 100) / 100; | 315 | similar = (double) Math.round(similar * 100) / 100; |
322 | similar = similar >= 1 ? 1 : similar; | 316 | similar = similar >= 1 ? 1 : similar; |
323 | - | ||
324 | PicVehicleCompare picVehicleCompare = new PicVehicleCompare(); | 317 | PicVehicleCompare picVehicleCompare = new PicVehicleCompare(); |
325 | picVehicleCompare.setSimilar(similar); | 318 | picVehicleCompare.setSimilar(similar); |
326 | - picVehicleCompare.setRabbitMQVehicle(rmqv); | 319 | + picVehicleCompare.setRabbitMQVehicle(rabbitMQVehicle); |
327 | pvc.add(picVehicleCompare); | 320 | pvc.add(picVehicleCompare); |
328 | } | 321 | } |
329 | - | ||
330 | } | 322 | } |
331 | 323 | ||
332 | //对row进行排序 | 324 | //对row进行排序 |
333 | - pvc.sort(new Comparator<PicVehicleCompare>() { | ||
334 | - @Override | ||
335 | - public int compare(PicVehicleCompare o1, PicVehicleCompare o2) { | ||
336 | - if (o2.getSimilar() == o1.getSimilar()) { | ||
337 | - return 0; | ||
338 | - } else { | ||
339 | - return (o2.getSimilar() > o1.getSimilar()) ? 1 : -1; | ||
340 | - } | 325 | + pvc.sort((o1, o2) -> { |
326 | + if (o2.getSimilar() == o1.getSimilar()) { | ||
327 | + return 0; | ||
328 | + } else { | ||
329 | + return (o2.getSimilar() > o1.getSimilar()) ? 1 : -1; | ||
341 | } | 330 | } |
342 | }); | 331 | }); |
343 | 332 | ||
344 | //对row进行分页查询 | 333 | //对row进行分页查询 |
345 | - ArrayList<PicVehicleCompare> picVehicleComparesNew = new ArrayList<>(); | ||
346 | - int startNumber = (currentpage - 1) * pagevolume; | ||
347 | - int endNumber = startNumber + pagevolume; | ||
348 | - endNumber = pagevolume > (pvc.size() - startNumber) ? pvc.size() : endNumber; | ||
349 | - for (int m = startNumber; m < endNumber; m++) { | ||
350 | - PicVehicleCompare picVehicleCompare = pvc.get(m); | ||
351 | - picVehicleComparesNew.add(picVehicleCompare); | ||
352 | - } | ||
353 | - | ||
354 | - //获取total(总条数) | ||
355 | - int total = pvc.size(); | 334 | + List<PicVehicleCompare> picVehicleComparesNew = UserTools.getPagedResultByBaseList(pvc, currentpage, pagevolume); |
356 | //根据总条数获取总页数 | 335 | //根据总条数获取总页数 |
357 | - int totalPage = (int) Math.ceil(((double) total) / pagevolume); | ||
358 | - | ||
359 | - data = new JSONObject(); | 336 | + int totalPage = UserTools.getPageTotalByBaseList(pvc, pagevolume); |
360 | 337 | ||
361 | //获取row数据 | 338 | //获取row数据 |
362 | JSONArray row = new JSONArray(); | 339 | JSONArray row = new JSONArray(); |
363 | - Iterator<PicVehicleCompare> it = picVehicleComparesNew.iterator(); | ||
364 | - while (it.hasNext()) { | ||
365 | - PicVehicleCompare next = it.next(); | 340 | + for (PicVehicleCompare next : picVehicleComparesNew) { |
366 | JSONObject rowData = new JSONObject(); | 341 | JSONObject rowData = new JSONObject(); |
367 | //获取id | 342 | //获取id |
368 | RabbitMQVehicle rabbitMQVehicle1 = next.getRabbitMQVehicle(); | 343 | RabbitMQVehicle rabbitMQVehicle1 = next.getRabbitMQVehicle(); |
@@ -381,7 +356,8 @@ public class HumanVehicleAssociationServiceImpl implements HumanVehicleAssociati | @@ -381,7 +356,8 @@ public class HumanVehicleAssociationServiceImpl implements HumanVehicleAssociati | ||
381 | rowData.put("picurl", rabbitMQVehicle1.getPicurl()); | 356 | rowData.put("picurl", rabbitMQVehicle1.getPicurl()); |
382 | row.add(rowData); | 357 | row.add(rowData); |
383 | } | 358 | } |
384 | - if (total > 0 && row != null && row.size() > 0) { | 359 | + data = new JSONObject(); |
360 | + if (pvc.size() > 0 && row.size() > 0) { | ||
385 | data.put("total", totalPage); | 361 | data.put("total", totalPage); |
386 | data.put("row", row); | 362 | data.put("row", row); |
387 | } | 363 | } |
src/main/java/com/objecteye/service/impl/SpecialtyServicesImpl.java
@@ -129,15 +129,9 @@ public class SpecialtyServicesImpl implements SpecialtyServices { | @@ -129,15 +129,9 @@ public class SpecialtyServicesImpl implements SpecialtyServices { | ||
129 | }); | 129 | }); |
130 | 130 | ||
131 | //对row进行分页查询 | 131 | //对row进行分页查询 |
132 | - int startNumber = (currentpage - 1) * pagevolume; | ||
133 | - int endNumber = startNumber + pagevolume; | ||
134 | - endNumber = Math.min(endNumber, pvc.size()); | ||
135 | - List<PicVehicleCompare> picVehicleComparesNew = pvc.subList(startNumber, endNumber); | ||
136 | - | ||
137 | - //获取total(总条数) | ||
138 | - int total = pvc.size(); | ||
139 | - //根据总条数获取总页数 | ||
140 | - int totalPage = (int) Math.ceil(((double) total) / pagevolume); | 132 | + List<PicVehicleCompare> picVehicleComparesNew = UserTools.getPagedResultByBaseList(pvc, currentpage, pagevolume); |
133 | + //总页数 | ||
134 | + int totalPage = UserTools.getPageTotalByBaseList(pvc, pagevolume); | ||
141 | 135 | ||
142 | JSONObject data = new JSONObject(); | 136 | JSONObject data = new JSONObject(); |
143 | 137 | ||
@@ -163,14 +157,14 @@ public class SpecialtyServicesImpl implements SpecialtyServices { | @@ -163,14 +157,14 @@ public class SpecialtyServicesImpl implements SpecialtyServices { | ||
163 | 157 | ||
164 | data.put("total", totalPage); | 158 | data.put("total", totalPage); |
165 | data.put("row", row); | 159 | data.put("row", row); |
166 | - if (total > 0 && row.size() > 0) { | 160 | + if (pvc.size() > 0 && row.size() > 0) { |
167 | result.put("code", 200); | 161 | result.put("code", 200); |
168 | result.put("message", "操作成功"); | 162 | result.put("message", "操作成功"); |
169 | result.put("data", data); | 163 | result.put("data", data); |
170 | } else { | 164 | } else { |
171 | result.put("code", 201); | 165 | result.put("code", 201); |
172 | result.put("message", "没有符合要求的数据"); | 166 | result.put("message", "没有符合要求的数据"); |
173 | - data.put("total", total); | 167 | + data.put("total", pvc.size()); |
174 | data.put("row", row); | 168 | data.put("row", row); |
175 | result.put("data", data); | 169 | result.put("data", data); |
176 | } | 170 | } |
src/main/java/com/objecteye/service/impl/VehicleCurrencyServiceImpl.java
@@ -273,19 +273,9 @@ public class VehicleCurrencyServiceImpl implements VehicleCurrencyService { | @@ -273,19 +273,9 @@ public class VehicleCurrencyServiceImpl implements VehicleCurrencyService { | ||
273 | }); | 273 | }); |
274 | 274 | ||
275 | //对row进行分页查询 | 275 | //对row进行分页查询 |
276 | - ArrayList<PicVehicleCompare> picVehicleComparesNew = new ArrayList<>(); | ||
277 | - int startNumber = (currentpage - 1) * pagevolume; | ||
278 | - int endNumber = startNumber + pagevolume; | ||
279 | - endNumber = pagevolume > (pvc.size() - startNumber) ? pvc.size() : endNumber; | ||
280 | - for (int m = startNumber; m < endNumber; m++) { | ||
281 | - PicVehicleCompare picVehicleCompare = pvc.get(m); | ||
282 | - picVehicleComparesNew.add(picVehicleCompare); | ||
283 | - } | ||
284 | - | ||
285 | - //获取total(总条数) | ||
286 | - int total = pvc.size(); | ||
287 | - //根据总条数获取总页数 | ||
288 | - int totalPage = (int) Math.ceil(((double) total) / pagevolume); | 276 | + List<PicVehicleCompare> picVehicleComparesNew = UserTools.getPagedResultByBaseList(pvc, currentpage, pagevolume); |
277 | + //总页数 | ||
278 | + int totalPage = UserTools.getPageTotalByBaseList(pvc, pagevolume); | ||
289 | 279 | ||
290 | ArrayList<PicVehicleRow> picVehicleRows = new ArrayList<>(); | 280 | ArrayList<PicVehicleRow> picVehicleRows = new ArrayList<>(); |
291 | for (PicVehicleCompare next : picVehicleComparesNew) { | 281 | for (PicVehicleCompare next : picVehicleComparesNew) { |
@@ -294,12 +284,9 @@ public class VehicleCurrencyServiceImpl implements VehicleCurrencyService { | @@ -294,12 +284,9 @@ public class VehicleCurrencyServiceImpl implements VehicleCurrencyService { | ||
294 | // 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN | 284 | // 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN |
295 | double similar = next.getSimilar(); | 285 | double similar = next.getSimilar(); |
296 | String picurl = rabbitMqVehicle1.getPicurl(); | 286 | String picurl = rabbitMqVehicle1.getPicurl(); |
297 | - | ||
298 | //获取到快照路径 | 287 | //获取到快照路径 |
299 | String snapshoturl = rabbitMqVehicle1.getSnapshoturl(); | 288 | String snapshoturl = rabbitMqVehicle1.getSnapshoturl(); |
300 | - | ||
301 | String bg = String.format("%.3f", similar); | 289 | String bg = String.format("%.3f", similar); |
302 | - | ||
303 | //因为需要将快照图的值给picurl所以需要下面的返回方式 | 290 | //因为需要将快照图的值给picurl所以需要下面的返回方式 |
304 | PicVehicleRow picVehicleRow = new PicVehicleRow(rabbitMqVehicle1.getId(), rabbitMqVehicle1.getRecordid(), rabbitMqVehicle1.getVehicle_plate_hphm(), | 291 | PicVehicleRow picVehicleRow = new PicVehicleRow(rabbitMqVehicle1.getId(), rabbitMqVehicle1.getRecordid(), rabbitMqVehicle1.getVehicle_plate_hphm(), |
305 | snapshoturl, picurl, bg, | 292 | snapshoturl, picurl, bg, |
@@ -309,7 +296,6 @@ public class VehicleCurrencyServiceImpl implements VehicleCurrencyService { | @@ -309,7 +296,6 @@ public class VehicleCurrencyServiceImpl implements VehicleCurrencyService { | ||
309 | } | 296 | } |
310 | 297 | ||
311 | PicVehicleDataResult picVehicleDataResult = new PicVehicleDataResult(totalPage, picVehicleRows); | 298 | PicVehicleDataResult picVehicleDataResult = new PicVehicleDataResult(totalPage, picVehicleRows); |
312 | - | ||
313 | if (picVehicleDataResult.getRow().size() <= 0) { | 299 | if (picVehicleDataResult.getRow().size() <= 0) { |
314 | return CommonResult.success(201, "没有查询到任何数据", null); | 300 | return CommonResult.success(201, "没有查询到任何数据", null); |
315 | } else { | 301 | } else { |
src/main/java/com/objecteye/utils/UserTools.java
@@ -28,30 +28,62 @@ public class UserTools { | @@ -28,30 +28,62 @@ public class UserTools { | ||
28 | * 统一手动分页 | 28 | * 统一手动分页 |
29 | * | 29 | * |
30 | * @param baseList 原始数据集合 | 30 | * @param baseList 原始数据集合 |
31 | - * @param currentpage 页码 | ||
32 | - * @param pagevolume 页面容量 | 31 | + * @param currentPage 页码 |
32 | + * @param pageVolume 页面容量 | ||
33 | * @return 结果集 | 33 | * @return 结果集 |
34 | */ | 34 | */ |
35 | - public static PageResult makePageResultByBaseList(List<?> baseList, Integer currentpage, Integer pagevolume) { | ||
36 | - // 总页数 | ||
37 | - int pageTotal = (baseList.size() / pagevolume) + ((baseList.size() % pagevolume > 0) ? 1 : 0); | 35 | + public static PageResult makePageResultByBaseList(List baseList, int currentPage, int pageVolume) { |
36 | + return new PageResult<>(getPageTotalByBaseList(baseList, pageVolume), | ||
37 | + getPagedResultByBaseList(baseList, currentPage, pageVolume)); | ||
38 | + } | ||
39 | + | ||
40 | + /** | ||
41 | + * 手动分页获取页码数量 | ||
42 | + * | ||
43 | + * @param baseList 原始数据集合 | ||
44 | + * @param pageVolume 页面容量 | ||
45 | + * @return 页数 | ||
46 | + */ | ||
47 | + public static int getPageTotalByBaseList(List baseList, int pageVolume) { | ||
48 | + return getPageTotalByBaseList(baseList.size(), pageVolume); | ||
49 | + } | ||
50 | + | ||
51 | + /** | ||
52 | + * 手动分页获取页码数量 | ||
53 | + * | ||
54 | + * @param size 集合数量 | ||
55 | + * @param pageVolume 页面容量 | ||
56 | + * @return 页数 | ||
57 | + */ | ||
58 | + public static int getPageTotalByBaseList(int size, int pageVolume) { | ||
59 | + return (size / pageVolume) + ((size % pageVolume > 0) ? 1 : 0); | ||
60 | + } | ||
38 | 61 | ||
39 | - int fromIndex = (currentpage - 1) * pagevolume; | 62 | + /** |
63 | + * 手动获取分页对应页面的数据 | ||
64 | + * | ||
65 | + * @param baseList 原始数据集合 | ||
66 | + * @param currentPage 页码 | ||
67 | + * @param pageVolume 页面容量 | ||
68 | + * @return 数据集合 | ||
69 | + */ | ||
70 | + public static List getPagedResultByBaseList(List baseList, int currentPage, int pageVolume) { | ||
71 | + int pageTotal = getPageTotalByBaseList(baseList, pageVolume); | ||
72 | + int fromIndex = (currentPage - 1) * pageVolume; | ||
40 | int toIndex; | 73 | int toIndex; |
41 | - if (currentpage == pageTotal) { | 74 | + if (currentPage == pageTotal) { |
42 | toIndex = baseList.size(); | 75 | toIndex = baseList.size(); |
43 | } else if (pageTotal == 0) { | 76 | } else if (pageTotal == 0) { |
44 | - return new PageResult<>(pageTotal, new ArrayList<>()); | 77 | + return new ArrayList<>(); |
45 | } else { | 78 | } else { |
46 | - toIndex = currentpage * pagevolume; | 79 | + toIndex = currentPage * pageVolume; |
47 | if (toIndex > baseList.size()) { | 80 | if (toIndex > baseList.size()) { |
48 | toIndex = baseList.size(); | 81 | toIndex = baseList.size(); |
49 | } | 82 | } |
50 | if (fromIndex >= toIndex) { | 83 | if (fromIndex >= toIndex) { |
51 | - return new PageResult<>(pageTotal, new ArrayList<>()); | 84 | + return new ArrayList<>(); |
52 | } | 85 | } |
53 | } | 86 | } |
54 | - | ||
55 | - return new PageResult<>(pageTotal, baseList.subList(fromIndex, toIndex)); | 87 | + return baseList.subList(fromIndex, toIndex); |
56 | } | 88 | } |
57 | } | 89 | } |