更新状态或更新预约时间清除超时标识

This commit is contained in:
donqi 2023-07-09 16:39:49 +08:00
parent 49ca78bdf3
commit 227c7f6896
4 changed files with 20 additions and 0 deletions

View File

@ -101,12 +101,20 @@ public class OrderDetailServiceImpl implements OrderDetailService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int updateOrderDetail(OrderDetail orderDetail) { public int updateOrderDetail(OrderDetail orderDetail) {
if (orderDetail.getOrderStatus() == null) { if (orderDetail.getOrderStatus() == null) {
// 修改预约时间的时候需要清除超时状态
if (orderDetail.getExpectTimeStart() != null && orderDetail.getExpectTimeStart().compareTo(new Date()) > 0) {
orderDetail.setTimeout(0);
}
return orderDetailMapper.updateOrderDetail(orderDetail); return orderDetailMapper.updateOrderDetail(orderDetail);
} }
int orderStatus = orderDetail.getOrderStatus(); int orderStatus = orderDetail.getOrderStatus();
boolean flag = Boolean.TRUE; boolean flag = Boolean.TRUE;
// 查子单信息 // 查子单信息
OrderDetail originOrderDetail = this.orderDetailMapper.selectById(orderDetail.getId()); OrderDetail originOrderDetail = this.orderDetailMapper.selectById(orderDetail.getId());
if (!Objects.equals(originOrderDetail.getOrderStatus(), orderDetail.getOrderStatus())) {
// 修改状态的时候需要清除超时状态
orderDetail.setTimeout(0);
}
int result = orderDetailMapper.updateOrderDetail(orderDetail); int result = orderDetailMapper.updateOrderDetail(orderDetail);
// 查询主单关联商品 // 查询主单关联商品
List<OrderGoods> masterOrderGoodsList = orderGoodsService.selectByOrderMasterId(originOrderDetail.getOrderMasterId()); List<OrderGoods> masterOrderGoodsList = orderGoodsService.selectByOrderMasterId(originOrderDetail.getOrderMasterId());
@ -149,6 +157,10 @@ public class OrderDetailServiceImpl implements OrderDetailService {
boolean allAssign = orderMasterService.isAllAssign(detailInfo.getOrderMasterId()); boolean allAssign = orderMasterService.isAllAssign(detailInfo.getOrderMasterId());
if (flag && allAssign) { if (flag && allAssign) {
OrderMaster orderMaster = orderMasterMapper.selectById(detailInfo.getOrderMasterId()); OrderMaster orderMaster = orderMasterMapper.selectById(detailInfo.getOrderMasterId());
if (!Objects.equals(orderMaster.getOrderStatus(), orderStatus)) {
// 修改状态的时候需要清除超时状态
orderMaster.setTimeout(0);
}
if (ObjectUtils.isEmpty(orderDetail.getExpectTimeStart())) { if (ObjectUtils.isEmpty(orderDetail.getExpectTimeStart())) {
orderMaster.setOrderStatus(orderStatus); orderMaster.setOrderStatus(orderStatus);
orderMasterMapper.updateOrderMaster(orderMaster); orderMasterMapper.updateOrderMaster(orderMaster);

View File

@ -98,6 +98,12 @@ public class OrderMasterServiceImpl implements OrderMasterService {
@Override @Override
public int updateOrderMaster(OrderMaster orderMaster) { 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); return orderMasterMapper.updateOrderMaster(orderMaster);
} }

View File

@ -336,6 +336,7 @@
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="ledgerAccountStatus != null">ledger_account_status = #{ledgerAccountStatus},</if> <if test="ledgerAccountStatus != null">ledger_account_status = #{ledgerAccountStatus},</if>
<if test="timeout != null">timeout_ = #{timeout},</if>
update_time = SYSDATE() update_time = SYSDATE()
</set> </set>
WHERE id = #{id} WHERE id = #{id}

View File

@ -315,6 +315,7 @@
<if test="resetAllSelfAssigned">all_self_assigned = null,</if> <if test="resetAllSelfAssigned">all_self_assigned = null,</if>
<if test="hasDispatchedAll != null">has_dispatched_all = #{hasDispatchedAll},</if> <if test="hasDispatchedAll != null">has_dispatched_all = #{hasDispatchedAll},</if>
<if test="isCall != null">is_call = #{isCall},</if> <if test="isCall != null">is_call = #{isCall},</if>
<if test="timeout != null">timeout_ = #{timeout},</if>
update_time = SYSDATE() update_time = SYSDATE()
</set> </set>
WHERE id = #{id} WHERE id = #{id}