主单未约未排

This commit is contained in:
cb 2025-04-14 12:01:36 +08:00
parent 89a9c13822
commit 0c015748fc
1 changed files with 71 additions and 28 deletions

View File

@ -97,7 +97,7 @@ public class OrderServiceImpl implements OrderService {
for (OrderMaster orderMaster : orderMasters) { for (OrderMaster orderMaster : orderMasters) {
try { try {
checkTimeout(orderMaster); checkTimeout(orderMaster);
}catch (Exception e){ } catch (Exception e) {
log.error("主单超时定时任务执行:单号:{},错误原因:{}", orderMaster.getCode(), e.getMessage()); log.error("主单超时定时任务执行:单号:{},错误原因:{}", orderMaster.getCode(), e.getMessage());
e.printStackTrace(); e.printStackTrace();
} }
@ -110,14 +110,14 @@ public class OrderServiceImpl implements OrderService {
for (OrderDetail order : orders) { for (OrderDetail order : orders) {
try { try {
checkTimeout(order); checkTimeout(order);
}catch (Exception e){ } catch (Exception e) {
log.error("子单超时定时任务执行:单号:{},错误原因:{}", order.getCode(), e.getMessage()); log.error("子单超时定时任务执行:单号:{},错误原因:{}", order.getCode(), e.getMessage());
e.printStackTrace(); e.printStackTrace();
} }
} }
} }
// @Transactional(rollbackFor = Exception.class) // @Transactional(rollbackFor = Exception.class)
public void checkTimeout(OrderMaster order) { public void checkTimeout(OrderMaster order) {
log.info("主单超时开始:单号:{}, 内容:{}", order.getCode(), order); log.info("主单超时开始:单号:{}, 内容:{}", order.getCode(), order);
Date now = new Date(); Date now = new Date();
@ -128,9 +128,9 @@ public class OrderServiceImpl implements OrderService {
Date overTime30min = getOverTime(createTime, 30 * 60 * 1000); Date overTime30min = getOverTime(createTime, 30 * 60 * 1000);
Date overTime1h = getOverTime(createTime, 30 * 60 * 1000); Date overTime1h = getOverTime(createTime, 30 * 60 * 1000);
boolean flag; boolean flag;
if(order.getUpdateTime() != null){ if (order.getUpdateTime() != null) {
flag = getOverTime(order.getUpdateTime(), 45 * 60 * 1000).before(now); flag = getOverTime(order.getUpdateTime(), 45 * 60 * 1000).before(now);
}else { } else {
flag = getOverTime(createTime, 45 * 60 * 1000).before(now); flag = getOverTime(createTime, 45 * 60 * 1000).before(now);
log.info("判断时间:{},当前时间:{},结果:{}", getOverTime(createTime, 45 * 60 * 1000), now, flag); log.info("判断时间:{},当前时间:{},结果:{}", getOverTime(createTime, 45 * 60 * 1000), now, flag);
} }
@ -143,24 +143,47 @@ public class OrderServiceImpl implements OrderService {
orderMasterService.updateTimeout(order.getId(), 1); orderMasterService.updateTimeout(order.getId(), 1);
timeout = true; timeout = true;
// 通知一次超时 // 通知一次超时
// 通知师傅新订单 // 主订单未约
try { if (order.getIsCall().equals("01")) {
// 推送公众号通知数据 try {
// 消息组装 // 推送公众号通知数据
Map<String, Object> paramsNew = new HashMap<>(); // 消息组装
// 订单编号 Map<String, Object> paramsNew = new HashMap<>();
paramsNew.put("thing9", "您帐号有1条新订单超时未接"); // 订单编号
// 名称 paramsNew.put("thing9", "您有1条订单超时未联系客户");
paramsNew.put("thing10", "请进入【我的订单--新订单】操作处理"); // 名称
CustomerAddress address = customerAddressService.selectByCustomerAddressId(order.getAddressId()); paramsNew.put("thing10", "进入【我的订单--未约未排】操作处理");
paramsNew.put("thing2", address.getName()); 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())); // 预约时间
// 查师傅信息 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); Worker worker = workerService.selectById(order.getWorkerId());
} catch (Exception e) { WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), worker.getWxOpenId(), WxMsgEnum.TIMEOUT_ORDER, paramsNew);
log.error(e.getMessage(), e); } catch (Exception e) {
log.error(e.getMessage(), e);
}
}
//主订单未排
if (order.getIsCall().equals("02")) {
try {
// 推送公众号通知数据
// 消息组装
Map<String, Object> 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()); log.info("主订单[{}]超时30分钟", order.getId());
orderMasterService.updateTimeout(order.getId(), 1); orderMasterService.updateTimeout(order.getId(), 1);
timeout = true; timeout = true;
//主单超时未约未排
try {
// 推送公众号通知数据
// 消息组装
Map<String, Object> 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(); AfterServiceRecord afterParam = new AfterServiceRecord();
afterParam.setOrderDetailId(order.getId()); afterParam.setOrderDetailId(order.getId());
List<AfterServiceRecord> afterServiceRecord = afterServiceRecordService.selectAfterServiceRecordList(afterParam); List<AfterServiceRecord> 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); Date afterTime = getOverTime(afterServiceRecord.get(0).getUpdateTime(), 30 * 60 * 1000);
if (afterTime.before(now)) { if (afterTime.before(now)) {
@ -267,7 +310,7 @@ public class OrderServiceImpl implements OrderService {
if (!timeout) { if (!timeout) {
log.info("单号:{},状态:{},创建时间:{},更新时间:{}", order.getCode(), order.getOrderStatus(), order.getCreateTime(), order.getUpdateTime()); 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超时 // 服务中状态要按预计上门时间计算4h超时
Date overTime = DateUtils.addMilliseconds(order.getExpectTimeStart(), 30 * 60 * 1000); Date overTime = DateUtils.addMilliseconds(order.getExpectTimeStart(), 30 * 60 * 1000);
if (overTime.before(now)) { if (overTime.before(now)) {
@ -344,7 +387,7 @@ public class OrderServiceImpl implements OrderService {
param.setOrderId(order.getId()); param.setOrderId(order.getId());
List<OrderCallRecord> list = orderCallRecordService.selectOrderCallRecordList(param); List<OrderCallRecord> list = orderCallRecordService.selectOrderCallRecordList(param);
// 超时预约通知 // 超时预约通知
if(CollectionUtil.isEmpty(list)){ if (CollectionUtil.isEmpty(list)) {
// 通知师傅新订单 // 通知师傅新订单
try { try {
// 推送公众号通知数据 // 推送公众号通知数据
@ -367,7 +410,7 @@ public class OrderServiceImpl implements OrderService {
} }
} }
// 超时未排单 // 超时未排单
if(CollectionUtil.isNotEmpty(list)){ if (CollectionUtil.isNotEmpty(list)) {
// 通知师傅新订单 // 通知师傅新订单
try { try {
// 推送公众号通知数据 // 推送公众号通知数据
@ -482,7 +525,7 @@ public class OrderServiceImpl implements OrderService {
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.setTime(orderTime); calendar.setTime(orderTime);
int hour = calendar.get(Calendar.HOUR_OF_DAY); int hour = calendar.get(Calendar.HOUR_OF_DAY);
if(hour < 8 || hour > 18){ if (hour < 8 || hour > 18) {
// 设置时间为今天的 8 // 设置时间为今天的 8
Calendar newCalendar = Calendar.getInstance(); Calendar newCalendar = Calendar.getInstance();
newCalendar.set(Calendar.HOUR_OF_DAY, 8); newCalendar.set(Calendar.HOUR_OF_DAY, 8);