2 天以前 3be684af887afe4c0e45f281cc53adfef6f12b78
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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());
    }
 
}