feat: 增加ACS外部调用服务(任务2/4)
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user