From e59d2141bc8f9bee8b569deaa54158b3759c431e Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 29 八月 2025 10:42:40 +0800 Subject: [PATCH] bug修改 --- ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java | 88 ++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 81 insertions(+), 7 deletions(-) diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java index f11c269..a947fd2 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java @@ -27,10 +27,7 @@ import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -481,13 +478,13 @@ incomeEntityWrapper.eq("type",2); incomeEntityWrapper.isNotNull("money"); if (start!=null){ + start = start + " 00:00:00"; + end = end + " 23:59:59"; incomeEntityWrapper.ge("insertTime", start); incomeEntityWrapper.le("insertTime", end); } - List<Income> incomes = incomeService.selectList( - incomeEntityWrapper - ); + List<Income> incomes = incomeService.selectList(incomeEntityWrapper); EntityWrapper<TOrderPrivateCar> driverEntityWrapper = new EntityWrapper<>(); driverEntityWrapper.isNotNull("driverId"); if (start!=null){ @@ -529,6 +526,83 @@ return ResultUtil.runErr(); } } + /** + * 司机收益统计 + * @author yxh + * @date 2021/4/2 17:35 + * @return java.lang.Object + */ + @ResponseBody + @RequestMapping(value = "/queryDriverIncomeDataSum", method = RequestMethod.POST) + public Object queryDriverIncomeDataSum(String driverName, String time, Integer companyId){ + try { + String start = null; + String end = null; + if(ToolUtil.isNotEmpty(time)){ + start = time.split(" - ")[0]; + end = time.split(" - ")[1]; + } + List<Map<String, Object>> maps = driverService.queryDriverIncomeDataNoPage( driverName, start, end, companyId); + EntityWrapper<Income> incomeEntityWrapper = new EntityWrapper<>(); + incomeEntityWrapper.eq("type",2); + incomeEntityWrapper.isNotNull("money"); + if (start!=null){ + start = start + " 00:00:00"; + end = end + " 23:59:59"; + incomeEntityWrapper.ge("insertTime", start); + incomeEntityWrapper.le("insertTime", end); + } + + List<Income> incomes = incomeService.selectList(incomeEntityWrapper); + EntityWrapper<TOrderPrivateCar> driverEntityWrapper = new EntityWrapper<>(); + driverEntityWrapper.isNotNull("driverId"); + if (start!=null){ + driverEntityWrapper.ge("insertTime", start); + driverEntityWrapper.le("insertTime", end); + } + List<TOrderPrivateCar> tOrderPrivateCars = orderPrivateCarService.selectList(driverEntityWrapper); + + for (Map<String, Object> map : maps) { + Double driverMoney = 0.0; + Double platformMoney = 0.0; + + // 司机跑单收入 + List<Income> driver = incomes.stream().filter(e -> e.getUserType().equals(2) + &&map.get("id").toString().equals(e.getObjectId().toString())).collect(Collectors.toList()); + for (Income income : driver) { + driverMoney+=income.getMoney(); + } + String driverId = map.get("id").toString(); + // 查询司机订单 + List<Integer> orderIds = tOrderPrivateCars.stream().filter(e -> e.getDriverId().equals(Integer.parseInt(driverId))) + .map(TOrderPrivateCar::getId).collect(Collectors.toList()); + // 平台收入 + List<Income> platform = incomes.stream().filter(e -> e.getUserType().equals(1) + && orderIds.contains(e.getObjectId())).collect(Collectors.toList()); + for (Income income : platform) { + platformMoney+=income.getMoney(); + } + // driverMoney保留两位小数 + driverMoney = new BigDecimal(driverMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + platformMoney = new BigDecimal(platformMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + map.put("driverMoney", driverMoney); + map.put("platformMoney", platformMoney); + } + Map<String, Object> result = new HashMap<>(); + int totalOrderCount = maps.stream().mapToInt(e -> Integer.parseInt(e.get("privateCarTotalNum").toString())).sum(); + result.put("totalOrderCount", totalOrderCount); + double totalPayMoney = maps.stream().mapToDouble(e -> Double.parseDouble(e.get("payMoney").toString())).sum(); + result.put("totalPayMoney", totalPayMoney); + double totalIncome = maps.stream().mapToDouble(e -> Double.parseDouble(e.get("driverMoney").toString())).sum(); + result.put("totalIncome", totalIncome); + double totalPlatformMoney = maps.stream().mapToDouble(e -> Double.parseDouble(e.get("platformMoney").toString())).sum(); + result.put("totalPlatformMoney", totalPlatformMoney); + return result; + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } /** * 导出司机收益排行 -- Gitblit v1.7.1