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 reqDTOs) { if (CollUtil.isEmpty(reqDTOs)) { return; } log.info("[createTransactionBatch] 批量创建库存事务,count={}", reqDTOs.size()); List 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); } }