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());
|
}
|
|
}
|