From e93c5d64b16a7b3271e81937f1df1b37ff5919cc Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 22 五月 2023 09:07:16 +0800 Subject: [PATCH] BUG修改 --- management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java | 53 ++++++++++++++++++++++---- management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java | 33 ++++++++++++++-- 2 files changed, 73 insertions(+), 13 deletions(-) diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java index f1bc1a1..7a85671 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java @@ -327,13 +327,13 @@ driverResp.setNotOnlineCount(0); }else { Period period = Period.between(DateUtil.dateToLocalDate(tDriverWork.getOffWorkTime()), LocalDate.now()); - driverResp.setNotOnlineCount(Math.abs(period.getDays())); + driverResp.setNotOnlineCount(period.getYears()*365 + period.getMonths()*30 + Math.abs(period.getDays())); } }else { if(Objects.nonNull(driverResp.getApprovalTime())){ // 没有上班记录,计算审核时间 Period period = Period.between(DateUtil.dateToLocalDate(driverResp.getApprovalTime()), LocalDate.now()); - driverResp.setNotOnlineCount(Math.abs(period.getDays())); + driverResp.setNotOnlineCount(period.getYears()*365 + period.getMonths()*30 + Math.abs(period.getDays())); }else { driverResp.setNotOnlineCount(0); } @@ -365,7 +365,31 @@ wrapper.eq("isException",2); wrapper.orderBy("createTime",false); List<TDriver> tDrivers = tDriverService.selectList(wrapper); - return tDriverService.getTDriverResp(tDrivers); + List<TDriverResp> tDriverResp = tDriverService.getTDriverResp(tDrivers); + for (TDriverResp driverResp : tDriverResp) { + TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>() + .eq("driverId", driverResp.getId()) + .orderBy("workTime", false) + .last("LIMIT 1")); + if(Objects.nonNull(tDriverWork)){ + // 如果是下班状态,计算未上线天数,,如果为上班状态,则设置为0 + if(tDriverWork.getStatus() == 1){ + driverResp.setNotOnlineCount(0); + }else { + Period period = Period.between(DateUtil.dateToLocalDate(tDriverWork.getOffWorkTime()), LocalDate.now()); + driverResp.setNotOnlineCount(period.getYears()*365 + period.getMonths()*30 + Math.abs(period.getDays())); + } + }else { + if(Objects.nonNull(driverResp.getApprovalTime())){ + // 没有上班记录,计算审核时间 + Period period = Period.between(DateUtil.dateToLocalDate(driverResp.getApprovalTime()), LocalDate.now()); + driverResp.setNotOnlineCount(period.getYears()*365 + period.getMonths()*30 + Math.abs(period.getDays())); + }else { + driverResp.setNotOnlineCount(0); + } + } + } + return tDriverResp; } /** @@ -558,7 +582,8 @@ tRechargeRecord.setPayTime(new Date()); tRechargeRecord.setPayStatus(2); tRechargeRecord.setCreateTime(new Date()); - tRechargeRecord.setAgentId(Objects.requireNonNull(ShiroKit.getUser()).getId()); + Integer id1 = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); + tRechargeRecord.setAgentId(id1); tRechargeRecordService.insert(tRechargeRecord); return SUCCESS_TIP; } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java index b70420a..0f03a3e 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java @@ -84,14 +84,23 @@ for (TAppUser tAppUser : appUserList) { TOrder tOrder = orderService.selectOne(new EntityWrapper<TOrder>() .eq("userId", tAppUser.getId()) + .orderBy("createTime",false) .last("LIMIT 1")); int day; if(Objects.nonNull(tOrder)){ // 客户一个月未下单,状态异常 Period period = Period.between(DateUtil.dateToLocalDate(tOrder.getCreateTime()), LocalDate.now()); + int month = Math.abs(period.getMonths()); + if(month > 0){ + tAppUser.setIsException(2); + } day = Math.abs(period.getDays()); }else { Period period = Period.between(DateUtil.dateToLocalDate(tAppUser.getCreateTime()), LocalDate.now()); + int month = Math.abs(period.getMonths()); + if(month > 0){ + tAppUser.setIsException(2); + } day = Math.abs(period.getDays()); } if(day > 29){ @@ -105,20 +114,14 @@ } /** - * 每半天检测司机是否有异常 + * 每半天检测司机未上线天数是否有异常 */ @Scheduled(cron = "0 0 9,21 * * ? ") public void queryDriverIsException(){ try { - List<TDriver> driverList = driverService.selectList(new EntityWrapper<TDriver>().ne("status", 3)); + List<TDriver> driverList = driverService.selectList(new EntityWrapper<TDriver>().ne("status", 3) + .eq("approvalStatus",2)); for (TDriver driver : driverList) { - // 15天未上线异常,当月有效订单低于30单,异常 - Integer count = orderService.getValidOrderCount(driver.getId(),new BigDecimal(14),new SimpleDateFormat("yyyy-MM").format(new Date())); - if(count < 30){ - driver.setIsException(2); - }else { - driver.setIsException(1); - } TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>() .eq("driverId", driver.getId()) .orderBy("workTime", false) @@ -127,6 +130,10 @@ // 如果是下班状态,计算未上线天数,,如果为上班状态,则设置为0 if(tDriverWork.getStatus() == 2){ Period period = Period.between(DateUtil.dateToLocalDate(tDriverWork.getOffWorkTime()), LocalDate.now()); + int month = Math.abs(period.getMonths()); + if(month > 0){ + driver.setIsException(2); + } int day = Math.abs(period.getDays()); if(day>14){ driver.setIsException(2); @@ -136,6 +143,10 @@ if(Objects.nonNull(driver.getApprovalTime())){ // 没有上班记录,计算审核时间 Period period = Period.between(DateUtil.dateToLocalDate(driver.getApprovalTime()), LocalDate.now()); + int month = Math.abs(period.getMonths()); + if(month > 0){ + driver.setIsException(2); + } int day = Math.abs(period.getDays()); if(day>14){ driver.setIsException(2); @@ -149,4 +160,28 @@ } } + /** + * 每月检测司机有效订单是否有异常 + * 每月最后一天中午12点检测 + */ + @Scheduled(cron = "0 0 12 L * ? ") + public void queryDriverIsExceptionMonth(){ + try { + List<TDriver> driverList = driverService.selectList(new EntityWrapper<TDriver>().ne("status", 3) + .eq("approvalStatus",2)); + for (TDriver driver : driverList) { + // 15天未上线异常,当月有效订单低于30单,异常 + Integer count = orderService.getValidOrderCount(driver.getId(),new BigDecimal(14),new SimpleDateFormat("yyyy-MM").format(new Date())); + if(count < 30){ + driver.setIsException(2); + }else { + driver.setIsException(1); + } + } + driverService.updateBatchById(driverList); + }catch (Exception e){ + e.printStackTrace(); + } + } + } -- Gitblit v1.7.1