From fafd2d146a590b46a39de90af3d01c9228f4f68c Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Tue, 15 Jul 2025 08:43:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=BE=E8=B4=A7=E6=9C=89=E8=B4=A7=20?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=88=86=E9=85=8D=E8=B4=A7=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/ToWcsApiController.java | 27 ++- .../api/controller/ToWmsApiController.java | 38 ++++- .../domain/GenAgvSchedulingTaskRequest.java | 156 ++++++++++++++++++ .../ruoyi/api/domain/PositionCodeData.java | 35 ++++ .../com/ruoyi/api/service/IToWcsService.java | 17 ++ .../com/ruoyi/api/service/IToWmsService.java | 4 + .../api/service/impl/ToWcsServiceImpl.java | 60 +++++++ .../api/service/impl/ToWmsServiceImpl.java | 41 +++++ .../mapper/BasCargoSpaceMapper.java | 23 ++- .../service/IBasCargoSpaceService.java | 21 ++- .../impl/BasCargoSpaceServiceImpl.java | 19 ++- .../ruoyi/log/service/IRequestLogService.java | 33 +++- .../service/impl/RequestLogServiceImpl.java | 88 +++++++++- .../bas/cargoSpace/BasCargoSpaceMapper.xml | 7 + 14 files changed, 513 insertions(+), 56 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/domain/GenAgvSchedulingTaskRequest.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/domain/PositionCodeData.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWcsService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWcsApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWcsApiController.java index 58637d9..ef02454 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWcsApiController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWcsApiController.java @@ -1,12 +1,12 @@ package com.ruoyi.api.controller; +import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest; +import com.ruoyi.api.service.IToWcsService; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.job.mydojob.domain.MydoJob; import com.ruoyi.job.mydojob.service.IMydoJobService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -17,16 +17,25 @@ import java.util.List; @RequestMapping("/api2wcs") public class ToWcsApiController { + @Autowired - private IMydoJobService mydoJobService; + private IToWcsService toWcsService; /** - * 获取任务 + * 推送AGV任务 + * @return */ - @GetMapping("/getJob") - public AjaxResult getJob(MydoJob mydoJob) - { - return AjaxResult.success(mydoJobService.selectMydoJobList(mydoJob)); + @PostMapping("/pushOutMydoJob") + public AjaxResult pushOutMydoJob(@RequestBody MydoJob mydoJob) { + return toWcsService.pushOutMydoJob(mydoJob); } + /** + * 推送agv搬运作业 + * @return + */ + @PostMapping("/pushAgvMoveJob") + public AjaxResult pushAgvMoveJob(@RequestBody GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) { + return toWcsService.pushAgvMoveJob(genAgvSchedulingTaskRequest); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java index 06ed460..2a76b58 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java @@ -1,10 +1,14 @@ package com.ruoyi.api.controller; +import cn.hutool.json.JSONUtil; import com.ruoyi.api.domain.WmsJobRequest; import com.ruoyi.api.service.IToWmsService; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.text.Convert; import com.ruoyi.job.mydojob.domain.MydoJob; import com.ruoyi.job.mydojob.service.IMydoJobService; +import com.ruoyi.log.domain.RequestLog; +import com.ruoyi.log.service.IRequestLogService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -17,13 +21,19 @@ public class ToWmsApiController { @Autowired private IToWmsService toWmsService; + @Autowired + private IRequestLogService requestLogService; /** * 入库任务请求 */ @PostMapping("/inJob") public AjaxResult inJob(@RequestBody MydoJob mydoJob) { - return toWmsService.inJob(mydoJob); + AjaxResult ajaxResult = toWmsService.inJob(mydoJob); + RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "InJob"); + requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg"))); + requestLogService.insertRequestLog(requestLog); + return ajaxResult; } /** @@ -39,23 +49,35 @@ public class ToWmsApiController { */ @PostMapping("/jobFinish") public AjaxResult jobFinish(@RequestBody WmsJobRequest wmsJobRequest) { - return toWmsService.jobFinish(wmsJobRequest); + AjaxResult ajaxResult = toWmsService.jobFinish(wmsJobRequest); + RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(wmsJobRequest), "jobFinish"); + requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg"))); + requestLogService.insertRequestLog(requestLog); + return ajaxResult; } /** * 放货有货,重新分配货位 */ - @GetMapping("/reAssign") - public AjaxResult reAssign(MydoJob mydoJob) { - return AjaxResult.success(); + @PostMapping("/reAssign") + public AjaxResult reAssign(@RequestBody MydoJob mydoJob) { + AjaxResult ajaxResult = toWmsService.reAssign(mydoJob); + RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "reAssign"); + requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg"))); + requestLogService.insertRequestLog(requestLog); + return ajaxResult; } /** * 取货无货,重新分配物料 */ - @GetMapping("/reMaterial") - public AjaxResult reMaterial(MydoJob mydoJob) { - return AjaxResult.success(); + @PostMapping("/reMaterial") + public AjaxResult reMaterial(@RequestBody MydoJob mydoJob) { + AjaxResult ajaxResult = toWmsService.reMaterial(mydoJob); + RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "reMaterial"); + requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg"))); + requestLogService.insertRequestLog(requestLog); + return ajaxResult; } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/GenAgvSchedulingTaskRequest.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/GenAgvSchedulingTaskRequest.java new file mode 100644 index 0000000..727834b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/GenAgvSchedulingTaskRequest.java @@ -0,0 +1,156 @@ +package com.ruoyi.api.domain; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; +import java.util.UUID; + +/** + * 【生成AGV任务】请求接口 + */ +@Data +public class GenAgvSchedulingTaskRequest { + /** + * 请求编号 + * 同一个请求重复提交, 使用同一编号 + */ + @NotNull + private String reqCode = UUID.randomUUID().toString(); + /** + * 请求时间 + * 格式: “yyyy-MM-dd HH:mm:ss” + */ + private String reqTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")).toString(); + /** + * 客户端编号 + * 客户端编号,如PDA,HCWMS等 + */ + private String clientCode; + /** + * 令牌号 + * 由调度系统颁发 + */ + private String tokenCode; + /** + * 任务类型 + * 内置任务类型: + * 厂内货架搬运: F01 + * 厂内货架空满交换: F02 + * 辊筒搬运接驳:F03 + * 厂内货架出库AGV待命:F04 + * 旋转货架: F05 + * 厂内电梯任务: F06 + * 以下为叉车专用任务类型 + * 高位货架到工作台: F11 + * 工作台到高位货架: F12 + * 巷道到工作台: F13 + * 工作台到巷道: F14 + * 高位货架到工作台(接驳) : F15 + * 工作台到高位货架 (接驳) : F16 + * 巷道到工作台(接驳) : F17 + * 工作台到巷道(接驳) : F18 + * 叉车电梯主任务: F20 + */ + @NotNull + private String taskTyp; + /** + * 容器类型(叉车/CTU专用) 叉车项目必传 + */ + private String ctnrTyp; + /** + * 容器编号 (叉车/CTU专用) + */ + private String ctnrCode; // + /** + * 容器数量(叉车堆叠专用),默认值1,仅记录堆叠的数量不记录堆叠的每个容器号 + */ + private String ctnrNum; + /** + * 任务模式 + * 0-普通move 1-出库move 2-入库move 3-移库move + */ + private String taskMode; + /** + * 工作位 + * 与RCS-2000端配置的位置名称一致, 工作位名称为字母\数字\或组合 + */ + private String wbCode; + /** + * 位置路径 + * AGV关键路径位置集合,与任务类型中模板配置的位置路径一一对应。待现场地图部署、配置完成后可获取 + */ + private List positionCodePath; + /** + * 货架编号 + * 不指定货架可以为空 + */ + private String podCode; + /** + * 货架方向 + * “180”,”0”,”90”,”-90” 分别对应地图的”左”,”右”,”上”,”下” + * 不指定方向可以为空 + * 如果终点不是工作台或工作台未配置操作方向则货架拣货方向podDir作为终点方向 + * 如果工作台配有操作方向,则系统会根据货架拣货方向podDir和工作台操作方向计算货架终点方向 + */ + private String podDir; + /** + * 货架类型, 传空时表示随机找个货架 + * 找空货架传参方式如下: + * -1: 代表不关心货架类型, 找到空货架即可. + * -2: 代表从工作位获取关联货架类型, 如果未配置, 只找空货架. + * 货架类型编号: 只找该货架类型的空货架 + */ + private String podTyp; + /** + * 物料批次 + * 物料批次或货架上的物料唯一编码,生成任务单时,货架与物料直接绑定时使用. (通过同时传podCode和materialLot来绑定或通过 wbCode 找到位置上的货架和materialLot来绑定) + * 如果是区域/策略内查找货架,可以匹配对应物料批次的货架,支持以下值: + * 0:区域/策略内查找空货架 + * 1:区域/策略内查找满货架 + * 其他值:查找指定物料批次对应的货架 + * 巷道任务通过该字段传入特征值 + */ + private String materialLot; + /** + * 优先级 + * 从(1~127)级,最大优先级最高。为空时,采用任务模板的优先级 + */ + private String priority; + /** + * AGV编号 + * 填写表示指定某一编号的AGV执行该任务 + */ + private String agvCode; + /** + * 任务单号 + * 选填, 不填系统自动生成 + */ + private String taskCode; + /** + * 组编号 + * CTU场景下用于按组出库,同组任务优先拼车。 如业务需要任务组间或组内按顺序出库,则需调用料箱顺序出库(CTU)接口。 + * 潜伏式场景下,通过组号来管理顺序出库的顺序,组号小的优先出库。 + */ + private String groupId; + /** + * 设备类型 + */ + private String agvTyp; + /** + * 选择策略 + * 区域/策略中挑选货架以及根据物料批次挑选货架时的先进先出规则,支持以下4个值: + * 1:按照货架到达储位的时间顺序,先进先出 + * 2:按照货架到达储位的时间顺序,先进后出 + * 9:按照货架绑定物料批次的时间顺序,先进先出 + * 10:按照货架绑定物料批次的时间顺序,先进后出 + */ + private String positionSelStrategy; + /** + * 自定义数据 + */ + private String data; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/PositionCodeData.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/PositionCodeData.java new file mode 100644 index 0000000..d517655 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/PositionCodeData.java @@ -0,0 +1,35 @@ +package com.ruoyi.api.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PositionCodeData { + /** + * 位置编号 - 单个编号不超过64位 + */ + private String positionCode; + /** + * 类型 + * + * 位置类型说明: + * 00表示:位置编号 + * 01表示:物料批次号 + * 02表示:策略编号(含多个区域) 如:第一个区域放不下, 可以放第二个区域 + * 03表示:货架编号,通过货架编号找到货架所在位置 + * 04表示:区域编号,在区域中查找可用位置 + * 05表示:仓位编号(叉车/CTU专用) + * 06表示:巷道编号 + * 07表示:容器编号 + * 08表示:巷道策略 + * 09表示:巷道区域 + * 10表示:巷道仓位 + * 11表示:输送线(机台)编号 + * 12表示:CTU工作台(梳齿工作站)编号 + * 13表示:搬运巷道指定货架出库 + */ + private String type; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWcsService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWcsService.java new file mode 100644 index 0000000..1b55539 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWcsService.java @@ -0,0 +1,17 @@ +package com.ruoyi.api.service; + +import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest; +import com.ruoyi.api.domain.WmsJobRequest; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.job.mydojob.domain.MydoJob; + +/** + * 作业统计 Service 接口 + */ +public interface IToWcsService { + + + AjaxResult pushOutMydoJob(MydoJob mydoJob); + + AjaxResult pushAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java index 86adcf0..d8990ad 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java @@ -14,4 +14,8 @@ public interface IToWmsService { AjaxResult inJob(MydoJob mydoJob); AjaxResult jobFinish(WmsJobRequest wmsJobRequest); + + AjaxResult reAssign(MydoJob mydoJob); + + AjaxResult reMaterial(MydoJob mydoJob); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java new file mode 100644 index 0000000..b4d24a7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java @@ -0,0 +1,60 @@ +package com.ruoyi.api.service.impl; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest; +import com.ruoyi.api.domain.WmsJobRequest; +import com.ruoyi.api.service.IToWcsService; +import com.ruoyi.api.service.IToWmsService; +import com.ruoyi.bas.container.domain.BasContainer; +import com.ruoyi.bas.container.service.IBasContainerService; +import com.ruoyi.bas.tag.domain.BasTag; +import com.ruoyi.bas.tag.service.IBasTagService; +import com.ruoyi.bas.taskNo.service.IBasTaskNoService; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.job.mydojob.domain.MydoJob; +import com.ruoyi.job.mydojob.service.IMydoJobService; +import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail; +import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService; +import com.ruoyi.log.domain.RequestLog; +import com.ruoyi.log.service.IRequestLogService; +import com.ruoyi.out.tagTask.domain.TagTask; +import com.ruoyi.out.tagTask.service.ITagTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 作业统计 Service 实现 + */ +@Service +public class ToWcsServiceImpl implements IToWcsService { + @Autowired + private IRequestLogService requestLogService; + + public static final String PUSH_OUT_MYDO_JOB = "pushOutMydoJob"; + public static final String PUSH_AGV_MOVE_JOB = "pushOutMydoJob"; + + @Autowired + private IMydoJobService mydoJobService; + + @Override + public AjaxResult pushOutMydoJob(MydoJob mydoJob) { + RequestLog requestLog = requestLogService.getRequestLog(PUSH_OUT_MYDO_JOB, JSONUtil.toJsonStr(mydoJob), "推送出库任务"); + if ("1".equals(requestLog.getIsSuccessful())){ + return AjaxResult.success(); + } + return AjaxResult.error(requestLog.getDuration()); + } + + @Override + public AjaxResult pushAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) { + RequestLog requestLog = requestLogService.getRequestLog(PUSH_AGV_MOVE_JOB, JSONUtil.toJsonStr(genAgvSchedulingTaskRequest), "推送出库任务"); + if ("1".equals(requestLog.getIsSuccessful())){ + return AjaxResult.success(); + } + return AjaxResult.error(requestLog.getDuration()); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java index 7b33dd4..c7710b4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java @@ -3,16 +3,21 @@ package com.ruoyi.api.service.impl; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; import com.ruoyi.api.domain.WmsJobRequest; import com.ruoyi.api.mapper.JobStatisticsMapper; import com.ruoyi.api.service.IJobStatisticsService; import com.ruoyi.api.service.IToWmsService; +import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace; import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper; +import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; import com.ruoyi.bas.container.domain.BasContainer; import com.ruoyi.bas.container.service.IBasContainerService; import com.ruoyi.bas.tag.domain.BasTag; import com.ruoyi.bas.tag.service.IBasTagService; import com.ruoyi.bas.taskNo.service.IBasTaskNoService; +import com.ruoyi.bas.warehouse.domain.BasWarehouse; +import com.ruoyi.bas.warehouse.service.IBasWarehouseService; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.job.mydojob.domain.MydoJob; @@ -20,6 +25,8 @@ import com.ruoyi.job.mydojob.mapper.MydoJobMapper; import com.ruoyi.job.mydojob.service.IMydoJobService; import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail; import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService; +import com.ruoyi.log.domain.RequestLog; +import com.ruoyi.log.service.IRequestLogService; import com.ruoyi.out.tagTask.domain.TagTask; import com.ruoyi.out.tagTask.service.ITagTaskService; import org.aspectj.weaver.loadtime.Aj; @@ -50,6 +57,9 @@ public class ToWmsServiceImpl implements IToWmsService { private IBasTaskNoService basTaskNoService; @Autowired private IBasTagService iBasTagService; + @Autowired + private IBasCargoSpaceService basCargoSpaceService; + @Override @@ -155,4 +165,35 @@ public class ToWmsServiceImpl implements IToWmsService { } return AjaxResult.success(); } + + @Override + public AjaxResult reAssign(MydoJob param) { + //重新分配货位 + MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(param.getJobId()); + String warehouseId = mydoJob.getWarehouseId(); + BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(warehouseId); + if (basCargoSpace == null){ + return AjaxResult.error("没有空货位"); + }else { + mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId()); + mydoJob.setFaultFlag("1"); + mydoJobService.updateMydoJob(mydoJob); + return AjaxResult.success("重新分配货位成功", mydoJob); + } + } + + @Override + public AjaxResult reMaterial(MydoJob mydoJob) { + //重新分配物料 + //标记原货位为出库待盘点 + BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId()); + basCargoSpace.setStatus("6"); + basCargoSpaceService.updateBasCargoSpace(basCargoSpace); + //减少单据分配数量 + + // 作废作业 + + //调用自动分配 + return AjaxResult.success(); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java index 47fe9e5..187f725 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java @@ -8,7 +8,7 @@ import java.util.Map; /** * 库存信息Mapper接口 - * + * * @author lsy * @date 2025-05-20 */ @@ -16,7 +16,7 @@ public interface BasCargoSpaceMapper extends BaseMapper { /** * 查询库存信息 - * + * * @param cargoSpaceId 库存信息主键 * @return 库存信息 */ @@ -24,7 +24,7 @@ public interface BasCargoSpaceMapper extends BaseMapper /** * 查询库存信息列表 - * + * * @param basCargoSpace 库存信息 * @return 库存信息集合 */ @@ -32,7 +32,7 @@ public interface BasCargoSpaceMapper extends BaseMapper /** * 新增库存信息 - * + * * @param basCargoSpace 库存信息 * @return 结果 */ @@ -40,7 +40,7 @@ public interface BasCargoSpaceMapper extends BaseMapper /** * 修改库存信息 - * + * * @param basCargoSpace 库存信息 * @return 结果 */ @@ -48,7 +48,7 @@ public interface BasCargoSpaceMapper extends BaseMapper /** * 删除库存信息 - * + * * @param cargoSpaceId 库存信息主键 * @return 结果 */ @@ -56,7 +56,7 @@ public interface BasCargoSpaceMapper extends BaseMapper /** * 批量删除库存信息 - * + * * @param cargoSpaceIds 需要删除的数据主键集合 * @return 结果 */ @@ -64,8 +64,15 @@ public interface BasCargoSpaceMapper extends BaseMapper /** * 查询不同状态的货位数量统计 - * + * * @return 状态统计结果列表 */ public List> selectStatusCount(); + + /** + * 找空货位 + * @param warehouseId + * @return + */ + BasCargoSpace selectEmptyCargoSpaceByWarehouseId(String warehouseId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java index 49e8aca..c307f37 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java @@ -7,7 +7,7 @@ import java.util.List; /** * 库存信息Service接口 - * + * * @author lsy * @date 2025-05-20 */ @@ -15,7 +15,7 @@ public interface IBasCargoSpaceService extends IService { /** * 查询库存信息 - * + * * @param cargoSpaceId 库存信息主键 * @return 库存信息 */ @@ -23,7 +23,7 @@ public interface IBasCargoSpaceService extends IService /** * 查询库存信息列表 - * + * * @param basCargoSpace 库存信息 * @return 库存信息集合 */ @@ -31,7 +31,7 @@ public interface IBasCargoSpaceService extends IService /** * 新增库存信息 - * + * * @param basCargoSpace 库存信息 * @return 结果 */ @@ -39,7 +39,7 @@ public interface IBasCargoSpaceService extends IService /** * 修改库存信息 - * + * * @param basCargoSpace 库存信息 * @return 结果 */ @@ -47,7 +47,7 @@ public interface IBasCargoSpaceService extends IService /** * 批量删除库存信息 - * + * * @param cargoSpaceIds 需要删除的库存信息主键集合 * @return 结果 */ @@ -55,11 +55,16 @@ public interface IBasCargoSpaceService extends IService /** * 删除库存信息信息 - * + * * @param cargoSpaceId 库存信息主键 * @return 结果 */ public int deleteBasCargoSpaceByCargoSpaceId(String cargoSpaceId); - + /** + * 找空货位 + * @param warehouseId + * @return + */ + BasCargoSpace selectEmptyCargoSpaceByWarehouseId(String warehouseId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java index 96583ae..fdc4789 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java @@ -15,7 +15,7 @@ import java.util.List; /** * 库存信息Service业务层处理 - * + * * @author lsy * @date 2025-05-20 */ @@ -27,7 +27,7 @@ public class BasCargoSpaceServiceImpl extends ServiceImpl +