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 367e17eb..5991da03 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 @@ -101,12 +101,20 @@ public class OrderDetailServiceImpl implements OrderDetailService { @Transactional(rollbackFor = Exception.class) public int updateOrderDetail(OrderDetail orderDetail) { if (orderDetail.getOrderStatus() == null) { + // 修改预约时间的时候需要清除超时状态 + if (orderDetail.getExpectTimeStart() != null && orderDetail.getExpectTimeStart().compareTo(new Date()) > 0) { + orderDetail.setTimeout(0); + } return orderDetailMapper.updateOrderDetail(orderDetail); } int orderStatus = orderDetail.getOrderStatus(); boolean flag = Boolean.TRUE; // 查子单信息 OrderDetail originOrderDetail = this.orderDetailMapper.selectById(orderDetail.getId()); + if (!Objects.equals(originOrderDetail.getOrderStatus(), orderDetail.getOrderStatus())) { + // 修改状态的时候需要清除超时状态 + orderDetail.setTimeout(0); + } int result = orderDetailMapper.updateOrderDetail(orderDetail); // 查询主单关联商品 List masterOrderGoodsList = orderGoodsService.selectByOrderMasterId(originOrderDetail.getOrderMasterId()); @@ -149,6 +157,10 @@ public class OrderDetailServiceImpl implements OrderDetailService { boolean allAssign = orderMasterService.isAllAssign(detailInfo.getOrderMasterId()); if (flag && allAssign) { OrderMaster orderMaster = orderMasterMapper.selectById(detailInfo.getOrderMasterId()); + if (!Objects.equals(orderMaster.getOrderStatus(), orderStatus)) { + // 修改状态的时候需要清除超时状态 + orderMaster.setTimeout(0); + } if (ObjectUtils.isEmpty(orderDetail.getExpectTimeStart())) { orderMaster.setOrderStatus(orderStatus); orderMasterMapper.updateOrderMaster(orderMaster); diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java index 164d7c82..f54d0851 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java @@ -98,6 +98,12 @@ public class OrderMasterServiceImpl implements OrderMasterService { @Override public int updateOrderMaster(OrderMaster orderMaster) { + OrderMaster oldOrder = this.selectById(orderMaster.getId()); + if ((orderMaster.getOrderStatus() != null && !Objects.equals(oldOrder.getOrderStatus(), orderMaster.getOrderStatus())) + || orderMaster.getExpectTimeStart() != null && orderMaster.getExpectTimeStart().compareTo(new Date()) > 0) { + // 状态变更或者预约时间大于当前时间便清除超时状态 + orderMaster.setTimeout(0); + } return orderMasterMapper.updateOrderMaster(orderMaster); } diff --git a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml index 0a620a2b..07f3c449 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml @@ -336,6 +336,7 @@ remark = #{remark}, update_by = #{updateBy}, ledger_account_status = #{ledgerAccountStatus}, + timeout_ = #{timeout}, update_time = SYSDATE() WHERE id = #{id} diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index 988c1d54..07066b4a 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -315,6 +315,7 @@ all_self_assigned = null, has_dispatched_all = #{hasDispatchedAll}, is_call = #{isCall}, + timeout_ = #{timeout}, update_time = SYSDATE() WHERE id = #{id}