From 0c015748fc3a1392686f67ab03b50e1f110c3597 Mon Sep 17 00:00:00 2001 From: cb <275647614@qq.com> Date: Mon, 14 Apr 2025 12:01:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E5=8D=95=E6=9C=AA=E7=BA=A6=E6=9C=AA?= =?UTF-8?q?=E6=8E=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quartz/service/impl/OrderServiceImpl.java | 99 +++++++++++++------ 1 file changed, 71 insertions(+), 28 deletions(-) diff --git a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java index b4880c4c..1728edcb 100644 --- a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java +++ b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java @@ -97,7 +97,7 @@ public class OrderServiceImpl implements OrderService { for (OrderMaster orderMaster : orderMasters) { try { checkTimeout(orderMaster); - }catch (Exception e){ + } catch (Exception e) { log.error("主单超时定时任务执行:单号:{},错误原因:{}", orderMaster.getCode(), e.getMessage()); e.printStackTrace(); } @@ -110,14 +110,14 @@ public class OrderServiceImpl implements OrderService { for (OrderDetail order : orders) { try { checkTimeout(order); - }catch (Exception e){ + } catch (Exception e) { log.error("子单超时定时任务执行:单号:{},错误原因:{}", order.getCode(), e.getMessage()); e.printStackTrace(); } } } -// @Transactional(rollbackFor = Exception.class) + // @Transactional(rollbackFor = Exception.class) public void checkTimeout(OrderMaster order) { log.info("主单超时开始:单号:{}, 内容:{}", order.getCode(), order); Date now = new Date(); @@ -128,9 +128,9 @@ public class OrderServiceImpl implements OrderService { Date overTime30min = getOverTime(createTime, 30 * 60 * 1000); Date overTime1h = getOverTime(createTime, 30 * 60 * 1000); boolean flag; - if(order.getUpdateTime() != null){ + if (order.getUpdateTime() != null) { flag = getOverTime(order.getUpdateTime(), 45 * 60 * 1000).before(now); - }else { + } else { flag = getOverTime(createTime, 45 * 60 * 1000).before(now); log.info("判断时间:{},当前时间:{},结果:{}", getOverTime(createTime, 45 * 60 * 1000), now, flag); } @@ -143,24 +143,47 @@ public class OrderServiceImpl implements OrderService { orderMasterService.updateTimeout(order.getId(), 1); timeout = true; // 通知一次超时 - // 通知师傅新订单 - try { - // 推送公众号通知数据。 - // 消息组装。 - Map paramsNew = new HashMap<>(); - // 订单编号 - paramsNew.put("thing9", "您帐号有1条新订单超时未接"); - // 名称 - paramsNew.put("thing10", "请进入【我的订单--新订单】操作处理"); - CustomerAddress address = customerAddressService.selectByCustomerAddressId(order.getAddressId()); - paramsNew.put("thing2", address.getName()); - // 预约时间 - paramsNew.put("time8", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", new Date())); - // 查师傅信息 - Worker worker = workerService.selectById(order.getWorkerId()); - WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), worker.getWxOpenId(), WxMsgEnum.TIMEOUT_ORDER, paramsNew); - } catch (Exception e) { - log.error(e.getMessage(), e); + // 主订单未约 + if (order.getIsCall().equals("01")) { + try { + // 推送公众号通知数据。 + // 消息组装。 + Map paramsNew = new HashMap<>(); + // 订单编号 + paramsNew.put("thing9", "您有1条订单,超时未联系客户"); + // 名称 + paramsNew.put("thing10", "进入【我的订单--未约未排】操作处理"); + CustomerAddress address = customerAddressService.selectByCustomerAddressId(order.getAddressId()); + paramsNew.put("thing2", address.getName()); + // 预约时间 + paramsNew.put("time8", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", new Date())); + // 查师傅信息 + Worker worker = workerService.selectById(order.getWorkerId()); + WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), worker.getWxOpenId(), WxMsgEnum.TIMEOUT_ORDER, paramsNew); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } + //主订单未排 + if (order.getIsCall().equals("02")) { + try { + // 推送公众号通知数据。 + // 消息组装。 + Map paramsNew = new HashMap<>(); + // 订单编号 + paramsNew.put("thing9", "您有1条订单联系客户后,未排时间"); + // 名称 + paramsNew.put("thing10", "进入【我的订单--未约未排--预约时间】"); + CustomerAddress address = customerAddressService.selectByCustomerAddressId(order.getAddressId()); + paramsNew.put("thing2", address.getName()); + // 预约时间 + paramsNew.put("time8", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", new Date())); + // 查师傅信息 + Worker worker = workerService.selectById(order.getWorkerId()); + WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), worker.getWxOpenId(), WxMsgEnum.TIMEOUT_ORDER, paramsNew); + } catch (Exception e) { + log.error(e.getMessage(), e); + } } } } @@ -190,6 +213,26 @@ public class OrderServiceImpl implements OrderService { log.info("主订单[{}]超时30分钟", order.getId()); orderMasterService.updateTimeout(order.getId(), 1); timeout = true; + //主单超时未约未排 + + try { + // 推送公众号通知数据。 + // 消息组装。 + Map paramsNew = new HashMap<>(); + // 订单编号 + paramsNew.put("thing9", "您有1条订单,超时未联系客户"); + // 名称 + paramsNew.put("thing10", "进入【我的订单--未约未排】操作处理"); + CustomerAddress address = customerAddressService.selectByCustomerAddressId(order.getAddressId()); + paramsNew.put("thing2", address.getName()); + // 预约时间 + paramsNew.put("time8", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", new Date())); + // 查师傅信息 + Worker worker = workerService.selectById(order.getWorkerId()); + WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), worker.getWxOpenId(), WxMsgEnum.TIMEOUT_ORDER, paramsNew); + } catch (Exception e) { + log.error(e.getMessage(), e); + } } } @@ -235,7 +278,7 @@ public class OrderServiceImpl implements OrderService { AfterServiceRecord afterParam = new AfterServiceRecord(); afterParam.setOrderDetailId(order.getId()); List afterServiceRecord = afterServiceRecordService.selectAfterServiceRecordList(afterParam); - if(CollectionUtil.isNotEmpty(afterServiceRecord) && (afterServiceRecord.get(0).getCustomerFinalCheck() == null || afterServiceRecord.get(0).getCustomerFinalCheck() != 1L)){ + if (CollectionUtil.isNotEmpty(afterServiceRecord) && (afterServiceRecord.get(0).getCustomerFinalCheck() == null || afterServiceRecord.get(0).getCustomerFinalCheck() != 1L)) { // 查询一下售后单时间 Date afterTime = getOverTime(afterServiceRecord.get(0).getUpdateTime(), 30 * 60 * 1000); if (afterTime.before(now)) { @@ -267,7 +310,7 @@ public class OrderServiceImpl implements OrderService { if (!timeout) { log.info("单号:{},状态:{},创建时间:{},更新时间:{}", order.getCode(), order.getOrderStatus(), order.getCreateTime(), order.getUpdateTime()); // 待上门超时 - if(order.getOrderStatus().equals(OrderStatus.GOING.code())){ + if (order.getOrderStatus().equals(OrderStatus.GOING.code())) { // 服务中状态要按预计上门时间计算4h超时 Date overTime = DateUtils.addMilliseconds(order.getExpectTimeStart(), 30 * 60 * 1000); if (overTime.before(now)) { @@ -344,7 +387,7 @@ public class OrderServiceImpl implements OrderService { param.setOrderId(order.getId()); List list = orderCallRecordService.selectOrderCallRecordList(param); // 超时预约通知 - if(CollectionUtil.isEmpty(list)){ + if (CollectionUtil.isEmpty(list)) { // 通知师傅新订单 try { // 推送公众号通知数据。 @@ -367,7 +410,7 @@ public class OrderServiceImpl implements OrderService { } } // 超时未排单 - if(CollectionUtil.isNotEmpty(list)){ + if (CollectionUtil.isNotEmpty(list)) { // 通知师傅新订单 try { // 推送公众号通知数据。 @@ -482,7 +525,7 @@ public class OrderServiceImpl implements OrderService { Calendar calendar = Calendar.getInstance(); calendar.setTime(orderTime); int hour = calendar.get(Calendar.HOUR_OF_DAY); - if(hour < 8 || hour > 18){ + if (hour < 8 || hour > 18) { // 设置时间为今天的 8 点 Calendar newCalendar = Calendar.getInstance(); newCalendar.set(Calendar.HOUR_OF_DAY, 8);