|
@@ -208,11 +208,21 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
|
|
|
// 起始和目标库位
|
|
|
baseLocationFrom = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationFrom, warehouseId);
|
|
|
if (baseLocationFrom.getZoneId().equals(Constant.ZONE_TYPE.ZONE_VIRTUAL.getValue())) {
|
|
|
- return AjaxResult.error("起始库位虚拟库位不可叫车!");
|
|
|
+ return AjaxResult.error("起始库位虚拟库位不可移库!");
|
|
|
}
|
|
|
baseLocationTo = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationTo, warehouseId);
|
|
|
if (baseLocationTo.getZoneId().equals(Constant.ZONE_TYPE.ZONE_VIRTUAL.getValue())) {
|
|
|
- return AjaxResult.error("目标库位虚拟库位不可叫车!");
|
|
|
+ // 如果起始库位是出库位 目标库位是线边 直接移动库存
|
|
|
+ if (baseLocationFrom.getZoneId().equals(Constant.ZONE_TYPE.ZONE_OUT.getValue())
|
|
|
+ && baseLocationTo.getId().compareTo(Constant.LOC_SORTATION02_CACHE) == 0) {
|
|
|
+ return moveDirect(invLotLocIdMoveForm);
|
|
|
+ }
|
|
|
+ return AjaxResult.error("目标库位虚拟库位不可移库!");
|
|
|
+ }
|
|
|
+ // 如果起始区域位出库位 目标位回库位 直接移动库存
|
|
|
+ if (baseLocationFrom.getZoneId().equals(Constant.ZONE_TYPE.ZONE_OUT.getValue())
|
|
|
+ && baseLocationTo.getZoneId().equals(Constant.ZONE_TYPE.ZONE_RE.getValue())) {
|
|
|
+ return moveDirect(invLotLocIdMoveForm);
|
|
|
}
|
|
|
|
|
|
// 验证起始库位
|
|
@@ -316,8 +326,9 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
|
|
|
return AjaxResult.error("目标库位需要空闲状态!");
|
|
|
}
|
|
|
Boolean isInStock = baseLocationInfoService.verifyLocationIsInStock(locationTo, warehouseId);
|
|
|
- if (isInStock) {
|
|
|
-// return AjaxResult.error("目标库位有货!");
|
|
|
+ if (isInStock
|
|
|
+ && !baseLocationTo.getZoneId().equals(Constant.ZONE_TYPE.ZONE_VIRTUAL.getValue())) {
|
|
|
+ return AjaxResult.error("目标库位有货!");
|
|
|
}
|
|
|
|
|
|
// 验证起始库位必须有货
|
|
@@ -876,7 +887,7 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public AjaxResult releaseLocation(String locationFrom,Long locationTo,Long warehouseId, String updateBy) {
|
|
|
+ public AjaxResult releaseLocation(String locationFrom, Long locationTo, Long warehouseId, String updateBy) {
|
|
|
|
|
|
BaseLocationInfo baseLocationInfo = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationFrom, Constant.WAREHOUSE_ID);
|
|
|
if (null == baseLocationInfo) return AjaxResult.error("查无库位信息");
|
|
@@ -941,7 +952,7 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
|
|
|
// return AjaxResult.error("备货库存库位释放请用【PDA备货库位释放】功能");
|
|
|
// 转移库存到线边区
|
|
|
return invLotLocIdService.releaseLocation(basLocationForm.getLocationNo(), Constant.LOC_SORTATION02_CACHE
|
|
|
- ,Constant.WAREHOUSE_ID, "PDA");
|
|
|
+ , Constant.WAREHOUSE_ID, "PDA");
|
|
|
}
|
|
|
if (StringUtils.isEmpty(invLotLocIdLotattVOS.get(0).getLotatt15())) {
|
|
|
// 说明是移库,直接删除库存
|
|
@@ -950,7 +961,7 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
|
|
|
}
|
|
|
// 转移库存到出库虚拟区
|
|
|
return invLotLocIdService.releaseLocation(basLocationForm.getLocationNo(), Constant.LOC_SORTATION_CACHE
|
|
|
- ,Constant.WAREHOUSE_ID, "PDA");
|
|
|
+ , Constant.WAREHOUSE_ID, "PDA");
|
|
|
}
|
|
|
|
|
|
@Transactional
|