This commit is contained in:
YiFei Kuang 2025-02-16 19:20:51 +08:00
parent 68023b8cc0
commit e8fd8d49d2
11 changed files with 61 additions and 4 deletions

View File

@ -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());

View File

@ -1150,6 +1150,8 @@ public class OrderMasterController extends BaseController {
orderStandardDetail.setDrawCashStatus(orderDetail.getDrawCashStatus());
orderStandardDetail.setDrawCashTime(orderDetail.getDrawCashTime());
orderStandardDetail.setAfterTimeout(orderDetail.getAfterTimeout());
orderStandardDetails.add(orderStandardDetail);
}

View File

@ -163,6 +163,8 @@ public class OrderListResponse {
*/
private Integer timeoutFineTimes;
private Integer afterTimeout;
private String orderMode;
/*是否合约订单*/

View File

@ -80,4 +80,6 @@ public class OrderStandardDetail {
*/
private Integer timeoutFineTimes;
private Integer afterTimeout;
}

View File

@ -172,6 +172,11 @@ public class OrderDetail extends BaseEntity {
*/
private Integer timeout;
/**
* 售后是否超时 1= 0=
* */
private Integer afterTimeout;
/**
* 超时扣款次数
*/

View File

@ -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

View File

@ -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);
/**

View File

@ -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();

View File

@ -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);

View File

@ -31,6 +31,7 @@
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
<result property="timeout" column="timeout_"/>
<result property="afterTimeout" column="after_timeout"/>
<result property="timeoutFineTimes" column="timeout_fine_times"/>
</resultMap>
@ -60,7 +61,8 @@
update_time,
remark,
timeout_,
timeout_fine_times
timeout_fine_times,
after_timeout
FROM order_detail
</sql>
@ -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>
<update id="updateAfterTimeout">
UPDATE order_detail
SET after_timeout = #{timeout},
timeout_fine_times = #{timeoutFineTimes}
WHERE id = #{id}
</update>
<update id="updateByOrderMasterId">
UPDATE order_detail
<set>

View File

@ -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<Integer> timeoutOrderStatus;
private static final List<Integer> 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> 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());