liyong
4 天以前 be5783c8a7e13bbc76d33c95643d75779cce21db
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package cn.iocoder.yudao.module.mes.api.wms;
 
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.api.wms.dto.WmsTransactionCreateReqDTO;
import cn.iocoder.yudao.module.mes.api.wms.transaction.WmsTransactionApi;
import cn.iocoder.yudao.module.mes.service.wm.transaction.MesWmTransactionService;
import cn.iocoder.yudao.module.mes.service.wm.transaction.dto.MesWmTransactionSaveReqDTO;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
 
import java.util.List;
 
/**
 * WMS 库存事务 API 实现类
 *
 * 在 MES 模块中实现,内部调用 MesWmTransactionService
 */
@Service
@Validated
@Slf4j
public class WmsTransactionApiImpl implements WmsTransactionApi {
 
    @Resource
    private MesWmTransactionService transactionService;
 
    @Override
    public Long createTransaction(WmsTransactionCreateReqDTO reqDTO) {
        log.info("[createTransaction] 创建库存事务,type={}, bizType={}, itemId={}",
                reqDTO.getType(), reqDTO.getBizType(), reqDTO.getItemId());
        MesWmTransactionSaveReqDTO mesTransaction = convertToMesTransaction(reqDTO);
        return transactionService.createTransaction(mesTransaction);
    }
 
    @Override
    public void createTransactionBatch(List<WmsTransactionCreateReqDTO> reqDTOs) {
        if (CollUtil.isEmpty(reqDTOs)) {
            return;
        }
        log.info("[createTransactionBatch] 批量创建库存事务,count={}", reqDTOs.size());
        List<MesWmTransactionSaveReqDTO> mesTransactions = reqDTOs.stream()
                .map(this::convertToMesTransaction)
                .toList();
        transactionService.createTransactionList(mesTransactions);
    }
 
    /**
     * 转换WMS事务DTO为MES事务DTO
     */
    private MesWmTransactionSaveReqDTO convertToMesTransaction(WmsTransactionCreateReqDTO reqDTO) {
        return BeanUtils.toBean(reqDTO, MesWmTransactionSaveReqDTO.class);
    }
}