根据类型查询库位名称
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.WareHouseLocationRespVO;
|
||||
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.service.houselocation.HouseLocationService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -93,4 +94,11 @@ public class WareHouseLocationController {
|
||||
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轴")
|
||||
private String locationY;
|
||||
|
||||
@Schema(description = "宽(库位上目前所放物品的宽)")
|
||||
@Schema(description = "宽度")
|
||||
private BigDecimal locationWide;
|
||||
|
||||
@Schema(description = "深(库位上目前所放物品的深)")
|
||||
@Schema(description = "深度")
|
||||
private BigDecimal locationDeep;
|
||||
|
||||
@Schema(description = "高(库位上目前所放物品的高)")
|
||||
@Schema(description = "高(库位上目前所放物品的高)--备用")
|
||||
private BigDecimal locationHeight;
|
||||
|
||||
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)")
|
||||
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)--备用")
|
||||
private BigDecimal locationDefaultHeight;
|
||||
|
||||
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
|
||||
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)--备用")
|
||||
private BigDecimal locationTotalHeight;
|
||||
|
||||
@Schema(description = "机车上报的托盘高度")
|
||||
@Schema(description = "机车上报的托盘高度--备用")
|
||||
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 = "层数")
|
||||
private Integer locationStorey;
|
||||
|
||||
|
@ -81,30 +81,42 @@ public class WareHouseLocationRespVO {
|
||||
@ExcelProperty("库位坐标y轴")
|
||||
private String locationY;
|
||||
|
||||
@Schema(description = "宽(库位上目前所放物品的宽)")
|
||||
@ExcelProperty("宽(库位上目前所放物品的宽)")
|
||||
@Schema(description = "宽度")
|
||||
@ExcelProperty("宽度")
|
||||
private BigDecimal locationWide;
|
||||
|
||||
@Schema(description = "深(库位上目前所放物品的深)")
|
||||
@ExcelProperty("深(库位上目前所放物品的深)")
|
||||
@Schema(description = "深度")
|
||||
@ExcelProperty("深度")
|
||||
private BigDecimal locationDeep;
|
||||
|
||||
@Schema(description = "高(库位上目前所放物品的高)")
|
||||
@Schema(description = "高(库位上目前所放物品的高)--备用")
|
||||
@ExcelProperty("高(库位上目前所放物品的高)")
|
||||
private BigDecimal locationHeight;
|
||||
|
||||
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)")
|
||||
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)--备用")
|
||||
@ExcelProperty("库位默认高度(现场有水泥高出地面的高度)")
|
||||
private BigDecimal locationDefaultHeight;
|
||||
|
||||
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
|
||||
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)--备用")
|
||||
@ExcelProperty("机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
|
||||
private BigDecimal locationTotalHeight;
|
||||
|
||||
@Schema(description = "机车上报的托盘高度")
|
||||
@Schema(description = "机车上报的托盘高度--备用")
|
||||
@ExcelProperty("机车上报的托盘高度")
|
||||
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 = "层数")
|
||||
@ExcelProperty("层数")
|
||||
private Integer locationStorey;
|
||||
|
@ -62,22 +62,31 @@ public class WareHouseLocationSaveReqVO {
|
||||
@Schema(description = "库位坐标y轴")
|
||||
private String locationY;
|
||||
|
||||
@Schema(description = "宽(库位上目前所放物品的宽)")
|
||||
@Schema(description = "宽度")
|
||||
private BigDecimal locationWide;
|
||||
|
||||
@Schema(description = "深(库位上目前所放物品的深)")
|
||||
@Schema(description = "深度")
|
||||
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;
|
||||
|
||||
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)")
|
||||
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)--备用")
|
||||
private BigDecimal locationDefaultHeight;
|
||||
|
||||
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
|
||||
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)--备用")
|
||||
private BigDecimal locationTotalHeight;
|
||||
|
||||
@Schema(description = "机车上报的托盘高度")
|
||||
@Schema(description = "机车上报的托盘高度--备用")
|
||||
private BigDecimal locationTrayHeight;
|
||||
|
||||
@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;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
@ -90,27 +91,39 @@ public class WareHouseLocationDO extends BaseDO {
|
||||
*/
|
||||
private String locationY;
|
||||
/**
|
||||
* 宽(库位上目前所放物品的宽)
|
||||
* 宽度
|
||||
*/
|
||||
private BigDecimal locationWide;
|
||||
/**
|
||||
* 深(库位上目前所放物品的深)
|
||||
* 深度
|
||||
*/
|
||||
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 locationDefaultHeight;
|
||||
/**
|
||||
* 机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)
|
||||
* 机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)--备用
|
||||
*/
|
||||
private BigDecimal locationTotalHeight;
|
||||
/**
|
||||
* 机车上报的托盘高度
|
||||
* 机车上报的托盘高度--备用
|
||||
*/
|
||||
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.mapper.BaseMapperX;
|
||||
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 org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -59,7 +61,7 @@ public interface WareHouseLocationMapper extends BaseMapperX<WareHouseLocationDO
|
||||
* @return
|
||||
*/
|
||||
WareHouseLocationDO selectByTypeAndId(@Param("locationUseStatus") Integer locationUseStatus,
|
||||
@Param("type") Integer type,
|
||||
@Param("takeType") Integer takeType,
|
||||
@Param("id") Long id,
|
||||
@Param("locationIds") List<Long> locationIds,
|
||||
@Param("mapIds") Set<Long> mapIds);
|
||||
@ -92,4 +94,11 @@ public interface WareHouseLocationMapper extends BaseMapperX<WareHouseLocationDO
|
||||
|
||||
void updateLocationLockList( @Param("locationIds") List<Long> locationIds,
|
||||
@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 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.WareHouseLocationRespVO;
|
||||
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 java.util.List;
|
||||
|
||||
/**
|
||||
* 库位 Service 接口
|
||||
*
|
||||
@ -51,4 +55,10 @@ public interface HouseLocationService {
|
||||
*/
|
||||
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;
|
||||
|
||||
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.WareHouseLocationVO;
|
||||
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.enums.robot.ReleaseTakeEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
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 java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
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);
|
||||
}
|
||||
|
||||
@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())){
|
||||
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);
|
||||
information.setDeviceStatus(1);
|
||||
|
@ -333,19 +333,19 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
||||
doTakeRelease(robotTaskVo,locationIds);
|
||||
break;
|
||||
case PARK:
|
||||
doPark(robotTaskVo);
|
||||
doPark(robotTaskVo,locationIds);
|
||||
break;
|
||||
case CHARGE:
|
||||
doCharge(robotTaskVo);
|
||||
break;
|
||||
case MOVE:
|
||||
doMove(robotTaskVo);
|
||||
doMove(robotTaskVo,locationIds);
|
||||
break;
|
||||
case TAKE:
|
||||
doTake(robotTaskVo);
|
||||
doTake(robotTaskVo,locationIds);
|
||||
break;
|
||||
case RELEASE:
|
||||
doRelease(robotTaskVo);
|
||||
doRelease(robotTaskVo,locationIds);
|
||||
break;
|
||||
case SCAN:
|
||||
doScan(robotTaskVo);
|
||||
@ -364,7 +364,8 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
||||
* 检测托盘类型
|
||||
* @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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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());
|
||||
locationIds.add(robotTaskVo.getToLocationId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 仅取货
|
||||
* @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());
|
||||
locationIds.add(robotTaskVo.getFromLocationId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 移动
|
||||
* @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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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)
|
||||
public void doTakeRelease(RobotTaskDetailAddVo robotTaskVo,List<Long> locationIds) {
|
||||
Set<Long> mapIds = new HashSet<>();
|
||||
if (ObjectUtil.isNotEmpty(robotTaskVo.getRobotNo())) {
|
||||
mapIds = getMapIdsByRobotNo(robotTaskVo.getRobotNo());
|
||||
}
|
||||
|
||||
//校验放货库位
|
||||
public void setToLocation(RobotTaskDetailAddVo robotTaskVo,Set<Long> mapIds,List<Long> locationIds){
|
||||
if (ReleaseTakeEnum.TO_LOCATION.getType().equals(robotTaskVo.getReleaseType())) {
|
||||
WareHouseLocationDO query = WareHouseLocationDO.builder().id(robotTaskVo.getReleaseId()).build();
|
||||
WareHouseLocationDO locationDO = locationMapper.queryAllByLimit(query);
|
||||
@ -468,8 +473,16 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
||||
robotTaskVo.setToLocationId(wareHouseLocationDO.getId());
|
||||
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())) {
|
||||
WareHouseLocationDO query = WareHouseLocationDO.builder().id(robotTaskVo.getTakeId()).build();
|
||||
WareHouseLocationDO locationDO = locationMapper.queryAllByLimit(query);
|
||||
@ -492,7 +505,27 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
||||
robotTaskVo.setFromLocationId(wareHouseLocationDO.getId());
|
||||
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());
|
||||
|
||||
//验证取货库位是否存在未完成的任务
|
||||
Set<Long> set = new HashSet<>();
|
||||
set.add(robotTaskVo.getFromLocationId());
|
||||
|
@ -513,39 +513,37 @@
|
||||
from
|
||||
ware_house_location
|
||||
<where>
|
||||
<choose>
|
||||
<when test= " locationUseStatus != null ">
|
||||
AND location_use_status = #{locationUseStatus}
|
||||
</when>
|
||||
<when test= " type != null and type == '1'">
|
||||
AND id = #{id}
|
||||
</when>
|
||||
<when test= " type != null and type == '2'">
|
||||
AND lane_id = #{id}
|
||||
</when>
|
||||
<when test= " type != null and type == '3'">
|
||||
AND area_id = #{id}
|
||||
</when>
|
||||
<when test= " locationIds != null and locationIds != ''">
|
||||
AND id not in
|
||||
<foreach collection="locationIds" item="id" index="index" open="(" close=")"
|
||||
separator=",">
|
||||
#{id}
|
||||
</foreach>
|
||||
</when>
|
||||
<when test= " mapIds != null and mapIds != ''">
|
||||
AND map_id in
|
||||
<foreach collection="mapIds" item="mapId" index="index" open="(" close=")"
|
||||
separator=",">
|
||||
#{mapId}
|
||||
</foreach>
|
||||
</when>
|
||||
<when test= "1==1">
|
||||
AND location_enable = '1'
|
||||
AND location_lock = '1'
|
||||
AND location_type = '0'
|
||||
</when>
|
||||
</choose>
|
||||
<if test= " locationUseStatus != null ">
|
||||
AND location_use_status = #{locationUseStatus}
|
||||
</if>
|
||||
<if test= "takeType != null and takeType == '1'.toString()">
|
||||
AND id = #{id}
|
||||
</if>
|
||||
<if test= "takeType != null and takeType == '2'.toString()">
|
||||
AND lane_id = #{id}
|
||||
</if>
|
||||
<if test= "takeType != null and takeType == '3'.toString()">
|
||||
AND area_id = #{id}
|
||||
</if>
|
||||
<if test= " locationIds != null and locationIds.size() > 0">
|
||||
AND id not in
|
||||
<foreach collection="locationIds" item="id" index="index" open="(" close=")"
|
||||
separator=",">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test= " mapIds != null and mapIds.size() > 0">
|
||||
AND map_id in
|
||||
<foreach collection="mapIds" item="mapId" index="index" open="(" close=")"
|
||||
separator=",">
|
||||
#{mapId}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test= '"1"=="1"'>
|
||||
AND location_enable = '1'
|
||||
AND location_lock = '1'
|
||||
AND location_type = '0'
|
||||
</if>
|
||||
</where>
|
||||
order by location_number desc , location_storey asc
|
||||
limit 1
|
||||
@ -655,5 +653,36 @@
|
||||
</if>
|
||||
</where>
|
||||
</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>
|
Loading…
Reference in New Issue
Block a user