package com.zy.asrs.wms.utils; import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wms.asrs.entity.Order; import com.zy.asrs.wms.asrs.entity.OrderDetl; import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType; import com.zy.asrs.wms.asrs.service.OrderDetlService; import com.zy.asrs.wms.asrs.service.OrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.util.Date; @Component public class OrderUtils { @Autowired private OrderService orderService; @Autowired private OrderDetlService orderDetlService; @Transactional public void updateWorkQty(Long orderDetlId, Double qty) { OrderDetl orderDetl = orderDetlService.getById(orderDetlId); if(orderDetl == null) { throw new CoolException("订单明细不存在"); } Order order = orderService.getById(orderDetl.getOrderId()); if(order == null) { throw new CoolException("订单不存在"); } if (order.getOrderSettle() == OrderSettleType.COMPLETE.val() || order.getOrderSettle() == OrderSettleType.CANCEL.val() || order.getOrderSettle() == OrderSettleType.WAIT_CANCEL.val() || order.getOrderSettle() == OrderSettleType.REPORT_COMPLETE.val()) { throw new CoolException("订单当前状态不可修改"); } Double workQty = orderDetl.getWorkQty(); orderDetl.setWorkQty(workQty + qty); orderDetl.setUpdateTime(new Date()); if (!orderDetlService.updateById(orderDetl)) { throw new CoolException("订单明细更新失败"); } order.setOrderSettle(OrderSettleType.WORKING.val()); order.setUpdateTime(new Date()); if(!orderService.updateById(order)) { throw new CoolException("订单更新失败"); } } }