| | |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.sale.ErpSaleOrderDO; |
| | | import cn.iocoder.yudao.module.erp.dal.mysql.sale.ErpSaleOrderMapper; |
| | | import cn.iocoder.yudao.module.mes.api.event.ProductionFinishedEvent; |
| | | import cn.iocoder.yudao.module.mes.api.event.ProductionCanceledEvent; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.context.event.EventListener; |
| | |
| | | log.info("[onProductionFinished] 销售订单 {} 生产状态已更新为完成", event.getSaleOrderId()); |
| | | } |
| | | |
| | | } |
| | | @EventListener |
| | | @Async |
| | | public void onProductionCanceled(ProductionCanceledEvent event) { |
| | | log.info("[onProductionCanceled] 收到生产取消事件,销售订单ID: {}", event.getSaleOrderId()); |
| | | // 使用显式 update wrapper 才能把已存在的完成时间真正更新为 NULL |
| | | saleOrderMapper.update(null, new LambdaUpdateWrapper<ErpSaleOrderDO>() |
| | | .eq(ErpSaleOrderDO::getId, event.getSaleOrderId()) |
| | | .set(ErpSaleOrderDO::getProductionStatus, 0) |
| | | .set(ErpSaleOrderDO::getProductionFinishTime, null)); |
| | | log.info("[onProductionCanceled] 销售订单 {} 生产状态已恢复为未完成", event.getSaleOrderId()); |
| | | } |
| | | |
| | | } |