主单未约未排
This commit is contained in:
parent
89a9c13822
commit
0c015748fc
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue