diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java
index e431eddb..d903f18f 100644
--- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java
+++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java
@@ -1085,7 +1085,11 @@ public class OrderController extends BaseController {
break;
}
}
+ long count = detailAfterListOfMasters.stream().filter(x->(x.getAfterTimeout()!=null && x.getAfterTimeout() == 1)).count();
if (isKeep) {
+ if(count > 0){
+ master.setAfterTimeout(1);
+ }
filteredMasterList.add(master);
}
}
@@ -1367,6 +1371,7 @@ public class OrderController extends BaseController {
orderListResponse.setCustomerRemark(orderMaster.getRemark());
orderListResponse.setOrderType(detail.getOrderType());
orderListResponse.setTimeout(detail.getTimeout());
+ orderListResponse.setAfterTimeout(detail.getAfterTimeout());
orderListResponse.setAfterServiceRecordList(detailRecordMap.get(detail.getId()));
orderListResponse.setChangeMoney(changeMoney);
orderListResponse.setDrawCashStatus(detail.getDrawCashStatus());
@@ -1660,6 +1665,7 @@ public class OrderController extends BaseController {
orderListResponse.setOrderType(detail.getOrderType());
orderListResponse.setTimeout(detail.getTimeout());
orderListResponse.setTimeoutFineTimes(detail.getTimeoutFineTimes());
+ orderListResponse.setAfterTimeout(detail.getAfterTimeout());
orderListResponse.setChangeMoney(changeMoney);
orderListResponse.setCreateTime(detail.getCreateTime());
orderListResponse.setUpdateTime(detail.getUpdateTime());
diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java
index f33c2c3b..718add64 100644
--- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java
+++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java
@@ -1150,6 +1150,8 @@ public class OrderMasterController extends BaseController {
orderStandardDetail.setDrawCashStatus(orderDetail.getDrawCashStatus());
orderStandardDetail.setDrawCashTime(orderDetail.getDrawCashTime());
+ orderStandardDetail.setAfterTimeout(orderDetail.getAfterTimeout());
+
orderStandardDetails.add(orderStandardDetail);
}
diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java
index a77d45d3..84d716df 100644
--- a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java
+++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java
@@ -163,6 +163,8 @@ public class OrderListResponse {
*/
private Integer timeoutFineTimes;
+ private Integer afterTimeout;
+
private String orderMode;
/*是否合约订单*/
diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java
index 7569d0d6..57b447a6 100644
--- a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java
+++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java
@@ -80,4 +80,6 @@ public class OrderStandardDetail {
*/
private Integer timeoutFineTimes;
+ private Integer afterTimeout;
+
}
diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java
index fc4f76b1..429d5020 100644
--- a/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java
+++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java
@@ -172,6 +172,11 @@ public class OrderDetail extends BaseEntity {
*/
private Integer timeout;
+ /**
+ * 售后是否超时 1=是 0=否
+ * */
+ private Integer afterTimeout;
+
/**
* 超时扣款次数
*/
diff --git a/ghy-order/src/main/java/com/ghy/order/mapper/OrderDetailMapper.java b/ghy-order/src/main/java/com/ghy/order/mapper/OrderDetailMapper.java
index 26c08cd0..7cace753 100644
--- a/ghy-order/src/main/java/com/ghy/order/mapper/OrderDetailMapper.java
+++ b/ghy-order/src/main/java/com/ghy/order/mapper/OrderDetailMapper.java
@@ -87,6 +87,8 @@ public interface OrderDetailMapper {
*/
int updateTimeout(@Param("id") Long id, @Param("timeout") int timeout, @Param("timeoutFineTimes") int timeoutFineTimes);
+ int updateAfterTimeout(@Param("id") Long id, @Param("timeout") int timeout, @Param("timeoutFineTimes") int timeoutFineTimes);
+
/**
* 通过主订单ID批量更新子订单
* 可更新字段: orderStatus
diff --git a/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java b/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java
index 6348df36..0b88286d 100644
--- a/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java
+++ b/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java
@@ -175,6 +175,8 @@ public interface OrderDetailService {
*/
int updateTimeout(Long id, int timeout, int timeoutFineTimes);
+ int updateAfterTimeout(Long id, int timeout, int timeoutFineTimes);
+
int deleteByMaster(Long masterId);
/**
diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java
index 77164e53..313a3924 100644
--- a/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java
+++ b/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java
@@ -160,7 +160,11 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
} else {
agreeRefund(afterServiceRecord);
}
+ // 更新为售后未超时
+ orderDetailService.updateAfterTimeout(afterServiceRecord.getOrderDetailId(), 0, 0);
} else if (one.equals(afterServiceRecord.getWorkerFeedbackResult()) && param.getCustomerFinalCheck() == null) {
+ // 更新为售后未超时
+ orderDetailService.updateAfterTimeout(afterServiceRecord.getOrderDetailId(), 0, 0);
// 师傅同意 且 客户未处理
afterServiceRecordMapper.updateAfterServiceRecord(param);
return drawCash ? AjaxResult.error("本单银联已确认货款结算完毕(订单支付完成),款项已到达或即将到达您所绑定帐户,需同意退款的同意后您线下与客户另行操作,系统无法提供原路返回退款!") : AjaxResult.success();
diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java
index df6bc2b6..4063efbb 100644
--- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java
+++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java
@@ -1105,6 +1105,11 @@ public class OrderDetailServiceImpl implements OrderDetailService {
return orderDetailMapper.updateTimeout(id, timeout, timeoutFineTimes);
}
+ @Override
+ public int updateAfterTimeout(Long id, int timeout, int timeoutFineTimes) {
+ return orderDetailMapper.updateAfterTimeout(id, timeout, timeoutFineTimes);
+ }
+
@Override
public int deleteByMaster(Long masterId) {
return orderDetailMapper.deleteByMaster(masterId);
diff --git a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml
index b308e01c..655f6d91 100644
--- a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml
+++ b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml
@@ -31,6 +31,7 @@
+
@@ -60,7 +61,8 @@
update_time,
remark,
timeout_,
- timeout_fine_times
+ timeout_fine_times,
+ after_timeout
FROM order_detail
@@ -91,7 +93,8 @@
od.remark,
od.draw_cash_status,
od.timeout_,
- od.timeout_fine_times
+ od.timeout_fine_times,
+ od.after_timeout
FROM order_detail od
LEFT JOIN order_master om ON om.id = od.order_master_id
LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id
@@ -373,6 +376,13 @@
WHERE id = #{id}
+
+ UPDATE order_detail
+ SET after_timeout = #{timeout},
+ timeout_fine_times = #{timeoutFineTimes}
+ WHERE id = #{id}
+
+
UPDATE order_detail
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 052ee9d9..40d54ee8 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
@@ -1,8 +1,11 @@
package com.ghy.quartz.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import com.ghy.common.enums.OrderStatus;
+import com.ghy.order.domain.AfterServiceRecord;
import com.ghy.order.domain.OrderDetail;
import com.ghy.order.domain.OrderMaster;
+import com.ghy.order.service.IAfterServiceRecordService;
import com.ghy.order.service.OrderDetailService;
import com.ghy.order.service.OrderMasterService;
import com.ghy.payment.domain.FinancialDetail;
@@ -42,7 +45,7 @@ public class OrderServiceImpl implements OrderService {
*
* @see OrderStatus
*/
- @Value("${order.timeout.status:-4,-3,-2,0,2,1,3}")
+ @Value("${order.timeout.status:-4,-3,-2,-1,0,2,1,3}")
private List timeoutOrderStatus;
private static final List orderMasterTimeoutStatus = Arrays.asList(0, 1);
@@ -60,6 +63,8 @@ public class OrderServiceImpl implements OrderService {
private FinancialMasterService financialMasterService;
@Resource
private ISysDeptConfigService sysDeptConfigService;
+ @Resource
+ private IAfterServiceRecordService afterServiceRecordService;
@Override
public void overTimeOrder(String orderStatus) {
@@ -187,6 +192,18 @@ public class OrderServiceImpl implements OrderService {
boolean timeout = ONE.equals(order.getTimeout());
// 超时扣款次数
Integer times = order.getTimeoutFineTimes();
+ // 判断是否是售后订单
+ 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)){
+ // 查询一下售后单时间
+ Date afterTime = getOverTime(afterServiceRecord.get(0).getUpdateTime(), 30 * 60 * 1000);
+ if (afterTime.before(now)) {
+ log.info("售后订单[{}]超时30分钟", order.getId());
+ orderDetailService.updateAfterTimeout(order.getId(), 1, 0);
+ }
+ }
if (!timeout) {
log.info("单号:{},状态:{},创建时间:{},更新时间:{}", order.getCode(), order.getOrderStatus(), order.getCreateTime(), order.getUpdateTime());
// 待上门超时
@@ -205,7 +222,7 @@ public class OrderServiceImpl implements OrderService {
// 未超时的单
else if (order.getOrderStatus().equals(OrderStatus.SERVER.code())) {
// 服务中状态要按预计上门时间计算4h超时
- Date overTime = DateUtils.addMilliseconds(order.getExpectTimeStart(), 4 * 60 * 60 * 1000);
+ Date overTime = DateUtils.addMilliseconds(order.getUpdateTime(), 4 * 60 * 60 * 1000);
if (overTime.before(now)) {
log.info("订单[{}]服务中状态超时4小时 扣款", order.getId());
OrderTimeoutRecord record = new OrderTimeoutRecord(order.getId(), order.getWorkerId(), order.getDeptId(), order.getOrderStatus());