From 8bdf45375fe0fc69fd6402307add13e36759d5a1 Mon Sep 17 00:00:00 2001 From: FT577-Server Date: Mon, 19 Oct 2026 11:00:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=90=E8=A1=8C=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/api/service/impl/ApiWcsService.java | 3 +- .../service/impl/OutStockoutServiceImpl.java | 3 +- .../pda/service/impl/PdaServiceImpl.java | 24 ++++++++ .../ruoyi/scheduleTask/RequestWcsHandler.java | 55 ++++++++++--------- .../mapper/bas/BasCargoSpaceMapper.xml | 2 +- 5 files changed, 59 insertions(+), 28 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiWcsService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiWcsService.java index d15fb45..a1d0395 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiWcsService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiWcsService.java @@ -505,7 +505,8 @@ public class ApiWcsService implements IApiWcsService { /*-----------------推送wcs移库任务----------------- */ HashMap paramMap = new HashMap<>(); paramMap.put("reqCode", UUID.randomUUID().toString());//请求码 - paramMap.put("jobId", moveJob.getJobId());//容器编号 + paramMap.put("jobId", moveJob.getJobId());//作业号 + paramMap.put("taskNo", moveJob.getTaskNo());//任务号 paramMap.put("trayCode", moveJob.getTrayCode().trim());//容器编号 paramMap.put("cargoSpaceId", moveJob.getCargoSpaceId());//货位 paramMap.put("targetCargoSpaceId", moveJob.getTargetCargoSpaceId());//目标货位 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/stockout/service/impl/OutStockoutServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/out/stockout/service/impl/OutStockoutServiceImpl.java index 0a1c3e4..3eb9eca 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/stockout/service/impl/OutStockoutServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/stockout/service/impl/OutStockoutServiceImpl.java @@ -509,7 +509,8 @@ public class OutStockoutServiceImpl implements IOutStockoutService /*-----------------推送wcs移库任务----------------- */ HashMap paramMap = new HashMap<>(); paramMap.put("reqCode", UUID.randomUUID().toString());//请求码 - paramMap.put("jobId", moveJob.getJobId());//容器编号 + paramMap.put("jobId", moveJob.getJobId());//作业号 + paramMap.put("taskNo", moveJob.getTaskNo());//任务号 paramMap.put("trayCode", moveJob.getTrayCode().trim());//容器编号 paramMap.put("cargoSpaceId", moveJob.getCargoSpaceId());//货位 paramMap.put("targetCargoSpaceId", moveJob.getTargetCargoSpaceId());//目标货位 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/impl/PdaServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/impl/PdaServiceImpl.java index c883801..cea296c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/impl/PdaServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/impl/PdaServiceImpl.java @@ -551,6 +551,13 @@ public class PdaServiceImpl implements IPdaService { @Override public AjaxResult addEmptyTrayJob(AddInJobRequest request) { + String trayCode = request.getTrayCode(); + + if (StrUtil.isBlank(trayCode)){ + log.warn("【空托入库】绑定失败,条码不能为空,执行绑定的托盘号:{}", request.getTrayCode()); + return AjaxResult.error("条码不能为空,执行绑定的托盘号:" + request.getTrayCode()); + } + //查托盘是否已经执行绑定操作 - 扫码处再次校验后入库 List msg = inTrayMsgService.selectInTrayMsgList( new InTrayMsg().builder().trayCode(request.getTrayCode()).build() @@ -560,6 +567,21 @@ public class PdaServiceImpl implements IPdaService { return AjaxResult.error("该空托盘已经执行过绑定操作,托盘号:" + request.getTrayCode()); } + //检查入库绑定时该托盘是否有未完成的任务 + MydoJob mydoJobExist = mydoJobService.selectMydoJobByTrayCode(trayCode); + if (ObjUtil.isNotNull(mydoJobExist)){ + log.warn("【入库绑定失败】当前条码有未结束的任务,无法执行绑定操作,请检查该托盘的任务状态,条码:{}", trayCode); + return AjaxResult.error("【入库绑定失败】当前条码有未结束的任务,无法执行绑定操作,请检查该托盘的任务状态,当前条码:" + trayCode); + } + + List cargoExist = basCargoSpaceService.selectBasCargoSpaceList( + new BasCargoSpace().builder().trayCode(trayCode).build() + ); + if (!cargoExist.isEmpty()){ + log.warn("【入库绑定失败】存在当前条码的货位信息,无法执行绑定操作,请检查该托盘的任务状态,条码:{}", trayCode); + return AjaxResult.error("【入库绑定失败】存在当前条码的货位信息,无法执行绑定操作,请检查该托盘的任务状态,当前条码:" + trayCode); + } + int trayType = mydoJobService.getTrayTypeByTrayCode(request.getTrayCode()); inTrayMsgService.insertInTrayMsg( @@ -576,6 +598,8 @@ public class PdaServiceImpl implements IPdaService { .build() ); + log.info("【绑定信息】<空托入库>操作成功,生成绑定信息,托盘号:{},物料名称:{}", request.getTrayCode(), "空托盘"); + return AjaxResult.success(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/scheduleTask/RequestWcsHandler.java b/ruoyi-admin/src/main/java/com/ruoyi/scheduleTask/RequestWcsHandler.java index 2b95967..8471cfd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/scheduleTask/RequestWcsHandler.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/scheduleTask/RequestWcsHandler.java @@ -154,16 +154,17 @@ public class RequestWcsHandler { if (mydoJobs.isEmpty()) return; - List moveJobs = mydoJobService.selectMydoJobList( - new MydoJob().builder() - .inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE) - .build() - ); - - if (!moveJobs.isEmpty()) return; - for (MydoJob mydoJob : mydoJobs) { + List moveJobs = mydoJobService.selectMydoJobList( + new MydoJob().builder() + .inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE) + .roadwayId(mydoJob.getRoadwayId()) + .build() + ); + + if (!moveJobs.isEmpty()) return; + //初始化参数 HashMap paramMap = new HashMap<>(); paramMap.put("reqCode", UUID.randomUUID().toString());//请求码 @@ -212,16 +213,17 @@ public class RequestWcsHandler { if (mydoJobs.isEmpty()) return; - List moveJobs = mydoJobService.selectMydoJobList( - new MydoJob().builder() - .inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE) - .build() - ); - - if (!moveJobs.isEmpty()) return; - for (MydoJob mydoJob : mydoJobs) { + List moveJobs = mydoJobService.selectMydoJobList( + new MydoJob().builder() + .inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE) + .roadwayId(mydoJob.getRoadwayId()) + .build() + ); + + if (!moveJobs.isEmpty()) return; + //初始化参数 HashMap paramMap = new HashMap<>(); paramMap.put("reqCode", UUID.randomUUID().toString());//请求码 @@ -270,15 +272,17 @@ public class RequestWcsHandler { if (mydoJobs.isEmpty()) return; - List moveJobs = mydoJobService.selectMydoJobList( - new MydoJob().builder() - .inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE) - .build() - ); - - if (!moveJobs.isEmpty()) return; - for (MydoJob mydoJob : mydoJobs){ + + List moveJobs = mydoJobService.selectMydoJobList( + new MydoJob().builder() + .inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE) + .roadwayId(mydoJob.getRoadwayId()) + .build() + ); + + if (!moveJobs.isEmpty()) return; + //初始化参数 HashMap paramMap = new HashMap<>(); paramMap.put("reqCode", UUID.randomUUID().toString());//请求码 @@ -392,8 +396,9 @@ public class RequestWcsHandler { paramMap.put("jobId", mydoJob.getJobId()); paramMap.put("inOrOut", mydoJob.getInOrOut()); paramMap.put("cargoSpaceId", mydoJob.getCargoSpaceId()); + paramMap.put("targetCargoSpaceId", mydoJob.getTargetCargoSpaceId()); - AjaxResult ajaxResult = apiWcsService.sendBackMydoJob(paramMap); + AjaxResult ajaxResult = apiWcsService.sendMoveMydoJob(paramMap); if (ajaxResult.isSuccess()){ log.info("【推送移库】推送移库作业,更新货位和库存预占用状态,wms作业号:{},货位:{},托盘号:{}", mydoJob.getJobId(), mydoJob.getCargoSpaceId(), mydoJob.getTrayCode()); diff --git a/ruoyi-admin/src/main/resources/mapper/bas/BasCargoSpaceMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/BasCargoSpaceMapper.xml index 9624c58..fb1e412 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/BasCargoSpaceMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/BasCargoSpaceMapper.xml @@ -52,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and the_floor = #{theFloor} and status = #{status} and locked = #{locked} - and tray_code = #{trayCode} + and tray_code like concat('%', #{trayCode}, '%') and iss_double = #{issDouble} and group_coding_no = #{groupCodingNo} and group_coding = #{groupCoding}