diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java index c13fbcbec..b710aa3b2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java @@ -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> getLocationByName(@Valid @RequestBody WareHouseLocationVO requestVO) { + return success(houseLocationService.getLocationByName(requestVO)); + } + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationPageReqVO.java index 7434cf14f..5c6be2148 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationPageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationPageReqVO.java @@ -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; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationRespVO.java index e76824b9f..f7b4953b7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationRespVO.java @@ -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; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationSaveReqVO.java index e4e865680..25d151697 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationSaveReqVO.java @@ -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 = "层数") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationVO.java new file mode 100644 index 000000000..b1f25bf12 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationVO.java @@ -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; + +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseLocationDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseLocationDO.java index 4d6fc5aa5..737a60e38 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseLocationDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseLocationDO.java @@ -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; /** diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselocation/WareHouseLocationMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselocation/WareHouseLocationMapper.java index 0e3542989..72f19024a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselocation/WareHouseLocationMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselocation/WareHouseLocationMapper.java @@ -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 locationIds, @Param("mapIds") Set mapIds); @@ -92,4 +94,11 @@ public interface WareHouseLocationMapper extends BaseMapperX locationIds, @Param("taskId") Long taskId); + + /** + * 根据类型查库位/线库/区域 + * @param requestVO + * @return + */ + List getLocationByName(WareHouseLocationVO requestVO); } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java index 08f94ef7c..7b0e0cf89 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java @@ -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 getHouseLocationPage(WareHouseLocationPageReqVO pageReqVO); + /** + * + * @param requestVO + * @return + */ + List getLocationByName(WareHouseLocationVO requestVO); } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java index 2ff652886..c76b965a4 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java @@ -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 getLocationByName(WareHouseLocationVO requestVO) { + return houseLocationMapper.getLocationByName(requestVO); + } + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java index 49569f01c..2d5ae39b8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java @@ -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); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotTaskServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotTaskServiceImpl.java index e48474712..102aa675c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotTaskServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotTaskServiceImpl.java @@ -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 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 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 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 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 locationIds) { - Set mapIds = new HashSet<>(); - if (ObjectUtil.isNotEmpty(robotTaskVo.getRobotNo())) { - mapIds = getMapIdsByRobotNo(robotTaskVo.getRobotNo()); - } - - //校验放货库位 + public void setToLocation(RobotTaskDetailAddVo robotTaskVo,Set mapIds,List 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 mapIds,List 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 locationIds) { + Set 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 set = new HashSet<>(); set.add(robotTaskVo.getFromLocationId()); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselocation/WareHouseLocationMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselocation/WareHouseLocationMapper.xml index 5c9a1cc0b..8d6c4e9ed 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselocation/WareHouseLocationMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselocation/WareHouseLocationMapper.xml @@ -513,39 +513,37 @@ from ware_house_location - - - AND location_use_status = #{locationUseStatus} - - - AND id = #{id} - - - AND lane_id = #{id} - - - AND area_id = #{id} - - - AND id not in - - #{id} - - - - AND map_id in - - #{mapId} - - - - AND location_enable = '1' - AND location_lock = '1' - AND location_type = '0' - - + + AND location_use_status = #{locationUseStatus} + + + AND id = #{id} + + + AND lane_id = #{id} + + + AND area_id = #{id} + + + AND id not in + + #{id} + + + + AND map_id in + + #{mapId} + + + + AND location_enable = '1' + AND location_lock = '1' + AND location_type = '0' + order by location_number desc , location_storey asc limit 1 @@ -655,5 +653,36 @@ + \ No newline at end of file