根据类型查询库位名称
This commit is contained in:
parent
d9ac7b7cb6
commit
d8576fca65
@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.controller.admin.houselocation;
|
|||||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationPageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationPageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationRespVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationRespVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
|
||||||
import cn.iocoder.yudao.module.system.service.houselocation.HouseLocationService;
|
import cn.iocoder.yudao.module.system.service.houselocation.HouseLocationService;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -93,4 +94,11 @@ public class WareHouseLocationController {
|
|||||||
BeanUtils.toBean(list, WareHouseLocationRespVO.class));
|
BeanUtils.toBean(list, WareHouseLocationRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getLocationByName")
|
||||||
|
@Operation(summary = "创建库位")
|
||||||
|
@PreAuthorize("@ss.hasPermission('ware:house-location:getLocationByName')")
|
||||||
|
public CommonResult<List<WareHouseLocationRespVO>> getLocationByName(@Valid @RequestBody WareHouseLocationVO requestVO) {
|
||||||
|
return success(houseLocationService.getLocationByName(requestVO));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -65,24 +65,33 @@ public class WareHouseLocationPageReqVO extends PageParam {
|
|||||||
@Schema(description = "库位坐标y轴")
|
@Schema(description = "库位坐标y轴")
|
||||||
private String locationY;
|
private String locationY;
|
||||||
|
|
||||||
@Schema(description = "宽(库位上目前所放物品的宽)")
|
@Schema(description = "宽度")
|
||||||
private BigDecimal locationWide;
|
private BigDecimal locationWide;
|
||||||
|
|
||||||
@Schema(description = "深(库位上目前所放物品的深)")
|
@Schema(description = "深度")
|
||||||
private BigDecimal locationDeep;
|
private BigDecimal locationDeep;
|
||||||
|
|
||||||
@Schema(description = "高(库位上目前所放物品的高)")
|
@Schema(description = "高(库位上目前所放物品的高)--备用")
|
||||||
private BigDecimal locationHeight;
|
private BigDecimal locationHeight;
|
||||||
|
|
||||||
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)")
|
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)--备用")
|
||||||
private BigDecimal locationDefaultHeight;
|
private BigDecimal locationDefaultHeight;
|
||||||
|
|
||||||
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
|
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)--备用")
|
||||||
private BigDecimal locationTotalHeight;
|
private BigDecimal locationTotalHeight;
|
||||||
|
|
||||||
@Schema(description = "机车上报的托盘高度")
|
@Schema(description = "机车上报的托盘高度--备用")
|
||||||
private BigDecimal locationTrayHeight;
|
private BigDecimal locationTrayHeight;
|
||||||
|
|
||||||
|
@Schema(description = "库位方向(1:单向、2:双向、3:三向、4:四向)")
|
||||||
|
private Integer direction;
|
||||||
|
|
||||||
|
@Schema(description = "进入方向(0:尾入、1:头入)")
|
||||||
|
private Integer inDirection;
|
||||||
|
|
||||||
|
@Schema(description = "离开方向(0:尾出、1:头出)")
|
||||||
|
private Integer outDirection;
|
||||||
|
|
||||||
@Schema(description = "层数")
|
@Schema(description = "层数")
|
||||||
private Integer locationStorey;
|
private Integer locationStorey;
|
||||||
|
|
||||||
|
@ -81,30 +81,42 @@ public class WareHouseLocationRespVO {
|
|||||||
@ExcelProperty("库位坐标y轴")
|
@ExcelProperty("库位坐标y轴")
|
||||||
private String locationY;
|
private String locationY;
|
||||||
|
|
||||||
@Schema(description = "宽(库位上目前所放物品的宽)")
|
@Schema(description = "宽度")
|
||||||
@ExcelProperty("宽(库位上目前所放物品的宽)")
|
@ExcelProperty("宽度")
|
||||||
private BigDecimal locationWide;
|
private BigDecimal locationWide;
|
||||||
|
|
||||||
@Schema(description = "深(库位上目前所放物品的深)")
|
@Schema(description = "深度")
|
||||||
@ExcelProperty("深(库位上目前所放物品的深)")
|
@ExcelProperty("深度")
|
||||||
private BigDecimal locationDeep;
|
private BigDecimal locationDeep;
|
||||||
|
|
||||||
@Schema(description = "高(库位上目前所放物品的高)")
|
@Schema(description = "高(库位上目前所放物品的高)--备用")
|
||||||
@ExcelProperty("高(库位上目前所放物品的高)")
|
@ExcelProperty("高(库位上目前所放物品的高)")
|
||||||
private BigDecimal locationHeight;
|
private BigDecimal locationHeight;
|
||||||
|
|
||||||
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)")
|
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)--备用")
|
||||||
@ExcelProperty("库位默认高度(现场有水泥高出地面的高度)")
|
@ExcelProperty("库位默认高度(现场有水泥高出地面的高度)")
|
||||||
private BigDecimal locationDefaultHeight;
|
private BigDecimal locationDefaultHeight;
|
||||||
|
|
||||||
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
|
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)--备用")
|
||||||
@ExcelProperty("机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
|
@ExcelProperty("机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
|
||||||
private BigDecimal locationTotalHeight;
|
private BigDecimal locationTotalHeight;
|
||||||
|
|
||||||
@Schema(description = "机车上报的托盘高度")
|
@Schema(description = "机车上报的托盘高度--备用")
|
||||||
@ExcelProperty("机车上报的托盘高度")
|
@ExcelProperty("机车上报的托盘高度")
|
||||||
private BigDecimal locationTrayHeight;
|
private BigDecimal locationTrayHeight;
|
||||||
|
|
||||||
|
@Schema(description = "库位方向(1:单向、2:双向、3:三向、4:四向)")
|
||||||
|
@ExcelProperty("库位方向(1:单向、2:双向、3:三向、4:四向)")
|
||||||
|
private Integer direction;
|
||||||
|
|
||||||
|
@Schema(description = "进入方向(0:尾入、1:头入)")
|
||||||
|
@ExcelProperty("进入方向(0:尾入、1:头入)")
|
||||||
|
private Integer inDirection;
|
||||||
|
|
||||||
|
@Schema(description = "离开方向(0:尾出、1:头出)")
|
||||||
|
@ExcelProperty("离开方向(0:尾出、1:头出)")
|
||||||
|
private Integer outDirection;
|
||||||
|
|
||||||
@Schema(description = "层数")
|
@Schema(description = "层数")
|
||||||
@ExcelProperty("层数")
|
@ExcelProperty("层数")
|
||||||
private Integer locationStorey;
|
private Integer locationStorey;
|
||||||
|
@ -62,22 +62,31 @@ public class WareHouseLocationSaveReqVO {
|
|||||||
@Schema(description = "库位坐标y轴")
|
@Schema(description = "库位坐标y轴")
|
||||||
private String locationY;
|
private String locationY;
|
||||||
|
|
||||||
@Schema(description = "宽(库位上目前所放物品的宽)")
|
@Schema(description = "宽度")
|
||||||
private BigDecimal locationWide;
|
private BigDecimal locationWide;
|
||||||
|
|
||||||
@Schema(description = "深(库位上目前所放物品的深)")
|
@Schema(description = "深度")
|
||||||
private BigDecimal locationDeep;
|
private BigDecimal locationDeep;
|
||||||
|
|
||||||
@Schema(description = "高(库位上目前所放物品的高)")
|
@Schema(description = "库位方向(1:单向、2:双向、3:三向、4:四向)")
|
||||||
|
private Integer direction;
|
||||||
|
|
||||||
|
@Schema(description = "进入方向(0:尾入、1:头入)")
|
||||||
|
private Integer inDirection;
|
||||||
|
|
||||||
|
@Schema(description = "离开方向(0:尾出、1:头出)")
|
||||||
|
private Integer outDirection;
|
||||||
|
|
||||||
|
@Schema(description = "高(库位上目前所放物品的高)--备用")
|
||||||
private BigDecimal locationHeight;
|
private BigDecimal locationHeight;
|
||||||
|
|
||||||
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)")
|
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)--备用")
|
||||||
private BigDecimal locationDefaultHeight;
|
private BigDecimal locationDefaultHeight;
|
||||||
|
|
||||||
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
|
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)--备用")
|
||||||
private BigDecimal locationTotalHeight;
|
private BigDecimal locationTotalHeight;
|
||||||
|
|
||||||
@Schema(description = "机车上报的托盘高度")
|
@Schema(description = "机车上报的托盘高度--备用")
|
||||||
private BigDecimal locationTrayHeight;
|
private BigDecimal locationTrayHeight;
|
||||||
|
|
||||||
@Schema(description = "层数")
|
@Schema(description = "层数")
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
package cn.iocoder.yudao.module.system.controller.admin.houselocation.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class WareHouseLocationVO {
|
||||||
|
@Schema(description = "放货类型(1:库位、2:线库、 3:区域)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||||
|
@NotNull(message = "类型(1:库位、2:线库、 3:区域)不能为空")
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
@Schema(description = "位置", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||||
|
@NotEmpty(message = "位置不能为空")
|
||||||
|
private String locationNo;
|
||||||
|
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.system.dal.dataobject.houselocation;
|
package cn.iocoder.yudao.module.system.dal.dataobject.houselocation;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
@ -90,27 +91,39 @@ public class WareHouseLocationDO extends BaseDO {
|
|||||||
*/
|
*/
|
||||||
private String locationY;
|
private String locationY;
|
||||||
/**
|
/**
|
||||||
* 宽(库位上目前所放物品的宽)
|
* 宽度
|
||||||
*/
|
*/
|
||||||
private BigDecimal locationWide;
|
private BigDecimal locationWide;
|
||||||
/**
|
/**
|
||||||
* 深(库位上目前所放物品的深)
|
* 深度
|
||||||
*/
|
*/
|
||||||
private BigDecimal locationDeep;
|
private BigDecimal locationDeep;
|
||||||
/**
|
/**
|
||||||
* 高(库位上目前所放物品的高)
|
* 库位方向(1:单向、2:双向、3:三向、4:四向)
|
||||||
|
*/
|
||||||
|
private Integer direction;
|
||||||
|
/**
|
||||||
|
* 进入方向(0:尾入、1:头入)
|
||||||
|
*/
|
||||||
|
private Integer inDirection;
|
||||||
|
/**
|
||||||
|
* 离开方向(0:尾出、1:头出)
|
||||||
|
*/
|
||||||
|
private Integer outDirection;
|
||||||
|
/**
|
||||||
|
* 高(库位上目前所放物品的高) --备用
|
||||||
*/
|
*/
|
||||||
private BigDecimal locationHeight;
|
private BigDecimal locationHeight;
|
||||||
/**
|
/**
|
||||||
* 库位默认高度(现场有水泥高出地面的高度)
|
* 库位默认高度(现场有水泥高出地面的高度)--备用
|
||||||
*/
|
*/
|
||||||
private BigDecimal locationDefaultHeight;
|
private BigDecimal locationDefaultHeight;
|
||||||
/**
|
/**
|
||||||
* 机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)
|
* 机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)--备用
|
||||||
*/
|
*/
|
||||||
private BigDecimal locationTotalHeight;
|
private BigDecimal locationTotalHeight;
|
||||||
/**
|
/**
|
||||||
* 机车上报的托盘高度
|
* 机车上报的托盘高度--备用
|
||||||
*/
|
*/
|
||||||
private BigDecimal locationTrayHeight;
|
private BigDecimal locationTrayHeight;
|
||||||
/**
|
/**
|
||||||
|
@ -4,6 +4,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationPageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationRespVO;
|
||||||
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@ -59,7 +61,7 @@ public interface WareHouseLocationMapper extends BaseMapperX<WareHouseLocationDO
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
WareHouseLocationDO selectByTypeAndId(@Param("locationUseStatus") Integer locationUseStatus,
|
WareHouseLocationDO selectByTypeAndId(@Param("locationUseStatus") Integer locationUseStatus,
|
||||||
@Param("type") Integer type,
|
@Param("takeType") Integer takeType,
|
||||||
@Param("id") Long id,
|
@Param("id") Long id,
|
||||||
@Param("locationIds") List<Long> locationIds,
|
@Param("locationIds") List<Long> locationIds,
|
||||||
@Param("mapIds") Set<Long> mapIds);
|
@Param("mapIds") Set<Long> mapIds);
|
||||||
@ -92,4 +94,11 @@ public interface WareHouseLocationMapper extends BaseMapperX<WareHouseLocationDO
|
|||||||
|
|
||||||
void updateLocationLockList( @Param("locationIds") List<Long> locationIds,
|
void updateLocationLockList( @Param("locationIds") List<Long> locationIds,
|
||||||
@Param("taskId") Long taskId);
|
@Param("taskId") Long taskId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据类型查库位/线库/区域
|
||||||
|
* @param requestVO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<WareHouseLocationRespVO> getLocationByName(WareHouseLocationVO requestVO);
|
||||||
}
|
}
|
@ -3,9 +3,13 @@ package cn.iocoder.yudao.module.system.service.houselocation;
|
|||||||
import javax.validation.*;
|
import javax.validation.*;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationPageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationRespVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 库位 Service 接口
|
* 库位 Service 接口
|
||||||
*
|
*
|
||||||
@ -51,4 +55,10 @@ public interface HouseLocationService {
|
|||||||
*/
|
*/
|
||||||
PageResult<WareHouseLocationDO> getHouseLocationPage(WareHouseLocationPageReqVO pageReqVO);
|
PageResult<WareHouseLocationDO> getHouseLocationPage(WareHouseLocationPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param requestVO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<WareHouseLocationRespVO> getLocationByName(WareHouseLocationVO requestVO);
|
||||||
}
|
}
|
@ -1,9 +1,12 @@
|
|||||||
package cn.iocoder.yudao.module.system.service.houselocation;
|
package cn.iocoder.yudao.module.system.service.houselocation;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationPageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationRespVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.houselocation.WareHouseLocationMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.houselocation.WareHouseLocationMapper;
|
||||||
|
import cn.iocoder.yudao.module.system.enums.robot.ReleaseTakeEnum;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@ -12,6 +15,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.HOUSE_LOCATION_NOT_EXISTS;
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.HOUSE_LOCATION_NOT_EXISTS;
|
||||||
|
|
||||||
@ -69,4 +74,9 @@ public class HouseLocationServiceImpl implements HouseLocationService {
|
|||||||
return houseLocationMapper.selectPage(pageReqVO);
|
return houseLocationMapper.selectPage(pageReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<WareHouseLocationRespVO> getLocationByName(WareHouseLocationVO requestVO) {
|
||||||
|
return houseLocationMapper.getLocationByName(requestVO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -45,15 +45,6 @@ public class DeviceInformationServiceImpl implements DeviceInformationService {
|
|||||||
if(ObjectUtil.isNotEmpty(pageResult.getList())){
|
if(ObjectUtil.isNotEmpty(pageResult.getList())){
|
||||||
throw exception(INFORMATION_MAC_EXIST);
|
throw exception(INFORMATION_MAC_EXIST);
|
||||||
}
|
}
|
||||||
//AGV需要判断机车是否接收到此Mac地址
|
|
||||||
if(DeviceInformationEnum.PALLETIZER.getType().equals(createReqVO.getDeviceType())
|
|
||||||
&& ObjectUtil.isEmpty(createReqVO.getMacAddress())){
|
|
||||||
throw exception(INFORMATION_MAC_INPUT);
|
|
||||||
}
|
|
||||||
if(DeviceInformationEnum.PALLETIZER.getType().equals(createReqVO.getDeviceType())){
|
|
||||||
// String jiCheResponse = grpcServiceApi.robotExecption();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 插入
|
// 插入
|
||||||
DeviceInformationDO information = BeanUtils.toBean(createReqVO, DeviceInformationDO.class);
|
DeviceInformationDO information = BeanUtils.toBean(createReqVO, DeviceInformationDO.class);
|
||||||
information.setDeviceStatus(1);
|
information.setDeviceStatus(1);
|
||||||
|
@ -333,19 +333,19 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
doTakeRelease(robotTaskVo,locationIds);
|
doTakeRelease(robotTaskVo,locationIds);
|
||||||
break;
|
break;
|
||||||
case PARK:
|
case PARK:
|
||||||
doPark(robotTaskVo);
|
doPark(robotTaskVo,locationIds);
|
||||||
break;
|
break;
|
||||||
case CHARGE:
|
case CHARGE:
|
||||||
doCharge(robotTaskVo);
|
doCharge(robotTaskVo);
|
||||||
break;
|
break;
|
||||||
case MOVE:
|
case MOVE:
|
||||||
doMove(robotTaskVo);
|
doMove(robotTaskVo,locationIds);
|
||||||
break;
|
break;
|
||||||
case TAKE:
|
case TAKE:
|
||||||
doTake(robotTaskVo);
|
doTake(robotTaskVo,locationIds);
|
||||||
break;
|
break;
|
||||||
case RELEASE:
|
case RELEASE:
|
||||||
doRelease(robotTaskVo);
|
doRelease(robotTaskVo,locationIds);
|
||||||
break;
|
break;
|
||||||
case SCAN:
|
case SCAN:
|
||||||
doScan(robotTaskVo);
|
doScan(robotTaskVo);
|
||||||
@ -364,7 +364,8 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
* 检测托盘类型
|
* 检测托盘类型
|
||||||
* @param robotTaskVo
|
* @param robotTaskVo
|
||||||
*/
|
*/
|
||||||
private void doDetectingTrays(RobotTaskDetailAddVo robotTaskVo) {
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void doDetectingTrays(RobotTaskDetailAddVo robotTaskVo) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -372,7 +373,8 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
* 扫描码
|
* 扫描码
|
||||||
* @param robotTaskVo
|
* @param robotTaskVo
|
||||||
*/
|
*/
|
||||||
private void doScan(RobotTaskDetailAddVo robotTaskVo) {
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void doScan(RobotTaskDetailAddVo robotTaskVo) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -380,31 +382,39 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
* 仅放货
|
* 仅放货
|
||||||
* @param robotTaskVo
|
* @param robotTaskVo
|
||||||
*/
|
*/
|
||||||
private void doRelease(RobotTaskDetailAddVo robotTaskVo) {
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void doRelease(RobotTaskDetailAddVo robotTaskVo, List<Long> locationIds) {
|
||||||
|
setToLocation(robotTaskVo,getMapIdsByRobotNo(robotTaskVo.getRobotNo()),locationIds);
|
||||||
locationMapper.updateLocationLockStatus(robotTaskVo.getToLocationId(),0,robotTaskVo.getRobotTaskId());
|
locationMapper.updateLocationLockStatus(robotTaskVo.getToLocationId(),0,robotTaskVo.getRobotTaskId());
|
||||||
|
locationIds.add(robotTaskVo.getToLocationId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 仅取货
|
* 仅取货
|
||||||
* @param robotTaskVo
|
* @param robotTaskVo
|
||||||
*/
|
*/
|
||||||
private void doTake(RobotTaskDetailAddVo robotTaskVo) {
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void doTake(RobotTaskDetailAddVo robotTaskVo, List<Long> locationIds) {
|
||||||
locationMapper.updateLocationLockStatus(robotTaskVo.getFromLocationId(),0,robotTaskVo.getRobotTaskId());
|
locationMapper.updateLocationLockStatus(robotTaskVo.getFromLocationId(),0,robotTaskVo.getRobotTaskId());
|
||||||
|
locationIds.add(robotTaskVo.getFromLocationId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 移动
|
* 移动
|
||||||
* @param robotTaskVo
|
* @param robotTaskVo
|
||||||
*/
|
*/
|
||||||
private void doMove(RobotTaskDetailAddVo robotTaskVo) {
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void doMove(RobotTaskDetailAddVo robotTaskVo, List<Long> locationIds) {
|
||||||
|
setToLocation(robotTaskVo,getMapIdsByRobotNo(robotTaskVo.getRobotNo()),locationIds);
|
||||||
|
locationIds.add(robotTaskVo.getToLocationId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 充电
|
* 充电
|
||||||
* @param robotTaskVo
|
* @param robotTaskVo
|
||||||
*/
|
*/
|
||||||
private void doCharge(RobotTaskDetailAddVo robotTaskVo) {
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void doCharge(RobotTaskDetailAddVo robotTaskVo) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -412,8 +422,10 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
* 停车
|
* 停车
|
||||||
* @param robotTaskVo
|
* @param robotTaskVo
|
||||||
*/
|
*/
|
||||||
private void doPark(RobotTaskDetailAddVo robotTaskVo) {
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void doPark(RobotTaskDetailAddVo robotTaskVo, List<Long> locationIds) {
|
||||||
|
setToLocation(robotTaskVo,getMapIdsByRobotNo(robotTaskVo.getRobotNo()),locationIds);
|
||||||
|
locationIds.add(robotTaskVo.getToLocationId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -435,17 +447,10 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取放
|
* 设置停车/目标库位
|
||||||
* @param robotTaskVo
|
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void doTakeRelease(RobotTaskDetailAddVo robotTaskVo,List<Long> locationIds) {
|
public void setToLocation(RobotTaskDetailAddVo robotTaskVo,Set<Long> mapIds,List<Long> locationIds){
|
||||||
Set<Long> mapIds = new HashSet<>();
|
|
||||||
if (ObjectUtil.isNotEmpty(robotTaskVo.getRobotNo())) {
|
|
||||||
mapIds = getMapIdsByRobotNo(robotTaskVo.getRobotNo());
|
|
||||||
}
|
|
||||||
|
|
||||||
//校验放货库位
|
|
||||||
if (ReleaseTakeEnum.TO_LOCATION.getType().equals(robotTaskVo.getReleaseType())) {
|
if (ReleaseTakeEnum.TO_LOCATION.getType().equals(robotTaskVo.getReleaseType())) {
|
||||||
WareHouseLocationDO query = WareHouseLocationDO.builder().id(robotTaskVo.getReleaseId()).build();
|
WareHouseLocationDO query = WareHouseLocationDO.builder().id(robotTaskVo.getReleaseId()).build();
|
||||||
WareHouseLocationDO locationDO = locationMapper.queryAllByLimit(query);
|
WareHouseLocationDO locationDO = locationMapper.queryAllByLimit(query);
|
||||||
@ -468,8 +473,16 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
robotTaskVo.setToLocationId(wareHouseLocationDO.getId());
|
robotTaskVo.setToLocationId(wareHouseLocationDO.getId());
|
||||||
robotTaskVo.setToLocationStorey(wareHouseLocationDO.getLocationStorey());
|
robotTaskVo.setToLocationStorey(wareHouseLocationDO.getLocationStorey());
|
||||||
}
|
}
|
||||||
locationIds.add(robotTaskVo.getToLocationId());
|
}
|
||||||
//校验取货库位
|
|
||||||
|
/**
|
||||||
|
* 设置取货库位
|
||||||
|
* @param robotTaskVo
|
||||||
|
* @param mapIds
|
||||||
|
* @param locationIds
|
||||||
|
*/
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void setFromLocation(RobotTaskDetailAddVo robotTaskVo,Set<Long> mapIds,List<Long> locationIds) {
|
||||||
if (ReleaseTakeEnum.TO_LOCATION.getType().equals(robotTaskVo.getTakeType())) {
|
if (ReleaseTakeEnum.TO_LOCATION.getType().equals(robotTaskVo.getTakeType())) {
|
||||||
WareHouseLocationDO query = WareHouseLocationDO.builder().id(robotTaskVo.getTakeId()).build();
|
WareHouseLocationDO query = WareHouseLocationDO.builder().id(robotTaskVo.getTakeId()).build();
|
||||||
WareHouseLocationDO locationDO = locationMapper.queryAllByLimit(query);
|
WareHouseLocationDO locationDO = locationMapper.queryAllByLimit(query);
|
||||||
@ -492,7 +505,27 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
robotTaskVo.setFromLocationId(wareHouseLocationDO.getId());
|
robotTaskVo.setFromLocationId(wareHouseLocationDO.getId());
|
||||||
robotTaskVo.setFromLocationStorey(wareHouseLocationDO.getLocationStorey());
|
robotTaskVo.setFromLocationStorey(wareHouseLocationDO.getLocationStorey());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取放
|
||||||
|
* @param robotTaskVo
|
||||||
|
*/
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void doTakeRelease(RobotTaskDetailAddVo robotTaskVo,List<Long> locationIds) {
|
||||||
|
Set<Long> mapIds = new HashSet<>();
|
||||||
|
if (ObjectUtil.isNotEmpty(robotTaskVo.getRobotNo())) {
|
||||||
|
mapIds = getMapIdsByRobotNo(robotTaskVo.getRobotNo());
|
||||||
|
}
|
||||||
|
|
||||||
|
//校验放货库位
|
||||||
|
setToLocation(robotTaskVo, mapIds,locationIds);
|
||||||
|
locationIds.add(robotTaskVo.getToLocationId());
|
||||||
|
|
||||||
|
//校验取货库位
|
||||||
|
setFromLocation(robotTaskVo,mapIds,locationIds);
|
||||||
locationIds.add(robotTaskVo.getFromLocationId());
|
locationIds.add(robotTaskVo.getFromLocationId());
|
||||||
|
|
||||||
//验证取货库位是否存在未完成的任务
|
//验证取货库位是否存在未完成的任务
|
||||||
Set<Long> set = new HashSet<>();
|
Set<Long> set = new HashSet<>();
|
||||||
set.add(robotTaskVo.getFromLocationId());
|
set.add(robotTaskVo.getFromLocationId());
|
||||||
|
@ -513,39 +513,37 @@
|
|||||||
from
|
from
|
||||||
ware_house_location
|
ware_house_location
|
||||||
<where>
|
<where>
|
||||||
<choose>
|
<if test= " locationUseStatus != null ">
|
||||||
<when test= " locationUseStatus != null ">
|
AND location_use_status = #{locationUseStatus}
|
||||||
AND location_use_status = #{locationUseStatus}
|
</if>
|
||||||
</when>
|
<if test= "takeType != null and takeType == '1'.toString()">
|
||||||
<when test= " type != null and type == '1'">
|
AND id = #{id}
|
||||||
AND id = #{id}
|
</if>
|
||||||
</when>
|
<if test= "takeType != null and takeType == '2'.toString()">
|
||||||
<when test= " type != null and type == '2'">
|
AND lane_id = #{id}
|
||||||
AND lane_id = #{id}
|
</if>
|
||||||
</when>
|
<if test= "takeType != null and takeType == '3'.toString()">
|
||||||
<when test= " type != null and type == '3'">
|
AND area_id = #{id}
|
||||||
AND area_id = #{id}
|
</if>
|
||||||
</when>
|
<if test= " locationIds != null and locationIds.size() > 0">
|
||||||
<when test= " locationIds != null and locationIds != ''">
|
AND id not in
|
||||||
AND id not in
|
<foreach collection="locationIds" item="id" index="index" open="(" close=")"
|
||||||
<foreach collection="locationIds" item="id" index="index" open="(" close=")"
|
separator=",">
|
||||||
separator=",">
|
#{id}
|
||||||
#{id}
|
</foreach>
|
||||||
</foreach>
|
</if>
|
||||||
</when>
|
<if test= " mapIds != null and mapIds.size() > 0">
|
||||||
<when test= " mapIds != null and mapIds != ''">
|
AND map_id in
|
||||||
AND map_id in
|
<foreach collection="mapIds" item="mapId" index="index" open="(" close=")"
|
||||||
<foreach collection="mapIds" item="mapId" index="index" open="(" close=")"
|
separator=",">
|
||||||
separator=",">
|
#{mapId}
|
||||||
#{mapId}
|
</foreach>
|
||||||
</foreach>
|
</if>
|
||||||
</when>
|
<if test= '"1"=="1"'>
|
||||||
<when test= "1==1">
|
AND location_enable = '1'
|
||||||
AND location_enable = '1'
|
AND location_lock = '1'
|
||||||
AND location_lock = '1'
|
AND location_type = '0'
|
||||||
AND location_type = '0'
|
</if>
|
||||||
</when>
|
|
||||||
</choose>
|
|
||||||
</where>
|
</where>
|
||||||
order by location_number desc , location_storey asc
|
order by location_number desc , location_storey asc
|
||||||
limit 1
|
limit 1
|
||||||
@ -655,5 +653,36 @@
|
|||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getLocationByName" resultType="cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationRespVO">
|
||||||
|
<choose>
|
||||||
|
<when test="type == 1">
|
||||||
|
select
|
||||||
|
id,
|
||||||
|
location_no as locationNo
|
||||||
|
from
|
||||||
|
ware_house_location
|
||||||
|
where
|
||||||
|
location_no like concat('%', #{locationNo}, '%')
|
||||||
|
</when>
|
||||||
|
<when test="type == 2">
|
||||||
|
select
|
||||||
|
lane_id as id,
|
||||||
|
lane_name as locationNo
|
||||||
|
from
|
||||||
|
ware_house_lane
|
||||||
|
where
|
||||||
|
lane_name like concat('%', #{locationNo}, '%')
|
||||||
|
</when>
|
||||||
|
<when test="type == 3">
|
||||||
|
select
|
||||||
|
area_id as id,
|
||||||
|
area_name as locationNo
|
||||||
|
from
|
||||||
|
ware_house_area
|
||||||
|
where
|
||||||
|
area_name like concat('%', #{locationNo}, '%')
|
||||||
|
</when>
|
||||||
|
</choose>
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
Loading…
Reference in New Issue
Block a user