|
@@ -14,6 +14,7 @@ import com.ruoyi.ams.inv.service.IInvLotLocIdService;
|
|
|
import com.ruoyi.ams.task.domain.WcsTask;
|
|
|
import com.ruoyi.ams.task.mapper.WcsTaskMapper;
|
|
|
import com.ruoyi.base.domain.BaseLocationInfo;
|
|
|
+import com.ruoyi.base.domain.vo.BaseLocationLotattVO;
|
|
|
import com.ruoyi.base.service.IBaseLocationInfoService;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
@@ -93,7 +94,7 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
outWarehouseDTO.setLotattDTO(agvCallDTO.getLotattDTO());
|
|
|
outWarehouseDTO.setWarehouseId(agvCallDTO.getWarehouseId());
|
|
|
BaseLocationInfo locationFrom = outInvAllocation(outWarehouseDTO);
|
|
|
- if(locationFrom == null) {
|
|
|
+ if (locationFrom == null) {
|
|
|
throw new RuntimeException("没有可分配的库存");
|
|
|
}
|
|
|
//3.生成任务
|
|
@@ -101,7 +102,7 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
WcsTask wcsTask = new WcsTask();
|
|
|
wcsTask.setTaskNo(taskNo);
|
|
|
wcsTask.setAreaFrom(locationFrom.getZoneId().toString());
|
|
|
- wcsTask.setLocationFrom(agvCallDTO.getLocationFrom());
|
|
|
+ wcsTask.setLocationFrom(locationFrom.getId().toString());
|
|
|
wcsTask.setAreaTo(locationTo.getZoneId() + "");
|
|
|
wcsTask.setLocationTo(locationTo.getId().toString());
|
|
|
wcsTask.setState(9L);
|
|
@@ -152,7 +153,9 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
// 如果指定区域没有配置策略则随意分配一个可用的空库位
|
|
|
List<BaseLocationInfo> locationInfoList = baseLocationInfoService.selectSortedLocatinListByZoneId(zoneId, inWarehouseDTO.getWarehouseId());
|
|
|
resultLocation = locationAllocationStrategy.filterLockLocation(locationInfoList);
|
|
|
-
|
|
|
+ }
|
|
|
+ if (resultLocation != null) {
|
|
|
+ return resultLocation;
|
|
|
}
|
|
|
}
|
|
|
return resultLocation;
|
|
@@ -174,8 +177,10 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
if (!StringUtils.isEmpty(outWarehouseDTO.getLocationZoneFrom())) {
|
|
|
zoneIdList.add(Long.parseLong(outWarehouseDTO.getLocationZoneFrom()));
|
|
|
} else {
|
|
|
- List<Long> zoneList = invLotLocIdMapper.selectInvZoneBySkuOrSkuType(outWarehouseDTO.getSku(), outWarehouseDTO.getSkuType());
|
|
|
- zoneIdList.addAll(zoneList);
|
|
|
+ List<BaseLocationLotattVO> zoneList = invLotLocIdMapper.selectInvZoneBySkuOrSkuType(outWarehouseDTO.getSku(), outWarehouseDTO.getSkuType());
|
|
|
+ for (BaseLocationLotattVO vo : zoneList) {
|
|
|
+ zoneIdList.add(vo.getZoneId());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
for (Long zoneId : zoneIdList) {
|