feat: 增加ACS外部调用服务(任务2/4)

This commit is contained in:
zhouz
2026-08-22 12:03:00 +08:00
parent 51843586c4
commit 5dcc9f43f4
2 changed files with 56 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
package cn.code.nl.module.wms.service.external.acs;
import cn.code.nl.module.wms.controller.acs.vo.AcsEmptyBoxInboundApplyReqVO;
import cn.code.nl.module.wms.controller.acs.vo.AcsEmptyBoxInboundApplyRespVO;
/**
* ACS 外部系统调用服务。
*/
public interface AcsExternalService {
/**
* 申请空木箱入库任务。
*
* @param reqVO ACS 入库申请
* @return 任务、虚拟木箱及目标仓位
*/
AcsEmptyBoxInboundApplyRespVO applyEmptyBoxInbound(AcsEmptyBoxInboundApplyReqVO reqVO);
}

View File

@@ -0,0 +1,38 @@
package cn.code.nl.module.wms.service.external.acs;
import cn.code.nl.framework.common.exception.ServiceException;
import cn.code.nl.module.wms.api.emptybox.dto.EmptyBoxInboundCreateReq;
import cn.code.nl.module.wms.api.emptybox.dto.EmptyBoxInboundCreateResp;
import cn.code.nl.module.wms.controller.acs.vo.AcsEmptyBoxInboundApplyReqVO;
import cn.code.nl.module.wms.controller.acs.vo.AcsEmptyBoxInboundApplyRespVO;
import cn.code.nl.module.wms.enums.acs.AcsInboundTaskTypeEnum;
import cn.code.nl.module.wms.service.emptybox.EmptyBoxService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
/**
* ACS 外部系统调用服务实现。
*/
@Service
public class AcsExternalServiceImpl implements AcsExternalService {
/** 空木箱出入库领域服务。 */
@Resource
private EmptyBoxService emptyBoxService;
/**
* 校验 ACS 业务类型并复用现有空木箱入库链路。
*/
@Override
public AcsEmptyBoxInboundApplyRespVO applyEmptyBoxInbound(AcsEmptyBoxInboundApplyReqVO reqVO) {
if (!AcsInboundTaskTypeEnum.EMPTY_BOX.getCode().equals(reqVO.getTaskType())) {
throw new ServiceException(500, "当前接口仅支持申请空木箱入库");
}
EmptyBoxInboundCreateReq request = new EmptyBoxInboundCreateReq();
request.setDeviceCode(reqVO.getDeviceCode());
request.setMaterialCode(reqVO.getMaterialCode());
EmptyBoxInboundCreateResp result = emptyBoxService.createInbound(request);
return new AcsEmptyBoxInboundApplyRespVO(
result.getTaskId(), result.getBoxNo(), result.getTargetStructCode());
}
}