package cn.iocoder.yudao.module.erp.service.sale.listener; 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 jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; /** * 生产完成事件监听器 * * 监听 MES 模块发布的 ProductionFinishedEvent,更新销售订单的生产状态 * * @author 芋道源码 */ @Component @Slf4j public class ProductionFinishedListener { @Resource private ErpSaleOrderMapper saleOrderMapper; @EventListener @Async public void onProductionFinished(ProductionFinishedEvent event) { log.info("[onProductionFinished] 收到生产完成事件,销售订单ID: {}", event.getSaleOrderId()); // 更新销售订单的生产状态 saleOrderMapper.updateById(new ErpSaleOrderDO() .setId(event.getSaleOrderId()) .setProductionStatus(1) .setProductionFinishTime(event.getFinishTime())); log.info("[onProductionFinished] 销售订单 {} 生产状态已更新为完成", event.getSaleOrderId()); } }