From c7513187d2e272717da13482d3c5f3151825c96b Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Mon, 28 Jul 2025 11:33:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E5=88=A9=E6=9E=B6=20=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=87=BA=E5=BA=93=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/ToWcsApiController.java | 8 ++++ .../com/ruoyi/api/service/IToWcsService.java | 2 + .../api/service/impl/ToWcsServiceImpl.java | 14 +++++++ .../api/service/impl/ToWmsServiceImpl.java | 1 + .../tagTask/controller/TagTaskController.java | 9 +++- .../out/tagTask/service/ITagTaskService.java | 4 +- .../service/impl/TagTaskServiceImpl.java | 41 ++++++++++++++++++- 7 files changed, 75 insertions(+), 4 deletions(-) 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 f615128..c0a0d8d 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 @@ -27,6 +27,14 @@ public class ToWcsApiController { toWcsService.pushOutMydoJob(); } + /** + * 推送CTU流利架空料箱入库任务 + */ + @PostMapping("/pushInMydoJob") + public void pushInMydoJob(String trayCode) { + toWcsService.pushInMydoJob(trayCode); + } + /** * 推送agv搬运作业 * @return 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 index ed20961..1fcb16a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWcsService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWcsService.java @@ -14,4 +14,6 @@ public interface IToWcsService { void pushOutMydoJob(); AjaxResult pushAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest); + + void pushInMydoJob(String trayCode); } 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 index f5b0b2e..d9ed9e5 100644 --- 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 @@ -1,6 +1,7 @@ package com.ruoyi.api.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest; @@ -39,6 +40,7 @@ public class ToWcsServiceImpl implements IToWcsService { private IMydoJobService mydoJobService; public static final String PUSH_OUT_MYDO_JOB = "http://localhost:8081/agv/api/receiveOutMydoJob"; + public static final String PUSH_IN_MYDO_JOB = "http://localhost:8081/agv/api/receiveInMydoJob"; public static final String PUSH_AGV_MOVE_JOB = "http://localhost:8081/agv/api/receiveAgvMoveJob"; @@ -71,4 +73,16 @@ public class ToWcsServiceImpl implements IToWcsService { } return AjaxResult.error(requestLog.getDuration()); } + + @Override + public void pushInMydoJob(String trayCode) { + MydoJob mydoJob = mydoJobService.selectMydoJobByTrayCode(trayCode); + if (ObjUtil.isNotNull(mydoJob)){ + RequestLog requestLog = requestLogService.getRequestLog(PUSH_IN_MYDO_JOB, JSONUtil.toJsonStr(mydoJob), "推送出库任务"); + if ("1".equals(requestLog.getIsSuccessful())){ + mydoJob.setStatus("2"); + mydoJobService.updateMydoJob(mydoJob); + } + } + } } 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 5e9c7dc..e6fcc4b 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 @@ -129,6 +129,7 @@ public class ToWmsServiceImpl implements IToWmsService { //查询拣选工位绑定的电子标签 BasTag tagParam = new BasTag(); tagParam.setPickAdd(wmsJobRequest.getPickSsj()); + tagParam.setSpare3("1"); List tags = iBasTagService.selectBasTagList(tagParam); if (tags.isEmpty()){ return AjaxResult.error("没有该拣选工位绑定的电子标签"); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/controller/TagTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/controller/TagTaskController.java index 383579e..63d594b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/controller/TagTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/controller/TagTaskController.java @@ -108,7 +108,12 @@ public class TagTaskController extends BaseController * 传入电子标签信息 */ //@Scheduled(fixedDelay = 2000) - public void tagManager(){ - tagTaskService.tagManager(); + public void tagOutManager(){ + tagTaskService.tagOutManager(); + } + + + public void tagInManager(){ + tagTaskService.tagInManager(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/service/ITagTaskService.java b/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/service/ITagTaskService.java index 1838fe7..20d5163 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/service/ITagTaskService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/service/ITagTaskService.java @@ -62,5 +62,7 @@ public interface ITagTaskService /** * 电子标签管理 */ - void tagManager(); + void tagOutManager(); + + void tagInManager(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/service/impl/TagTaskServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/service/impl/TagTaskServiceImpl.java index 16c8247..fba808a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/service/impl/TagTaskServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/service/impl/TagTaskServiceImpl.java @@ -13,12 +13,14 @@ import java.util.Optional; import java.util.stream.Collectors; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.IdUtil; import com.ruoyi.bas.tag.domain.BasTag; import com.ruoyi.bas.tag.service.IBasTagService; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.text.Convert; import com.ruoyi.out.tagTask.domain.ExecuteSocket; import com.ruoyi.pda.domain.TrayCodeMakeSure; +import com.ruoyi.pda.domain.TrayCodeMsg; import com.ruoyi.pda.service.PdaService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -114,7 +116,7 @@ public class TagTaskServiceImpl implements ITagTaskService { } @Override - public void tagManager() { + public void tagOutManager() { //查询所有的电子标签任务 TagTask tagTaskParam = new TagTask(); //tagTaskParam.setStatus("0"); @@ -220,6 +222,43 @@ public class TagTaskServiceImpl implements ITagTaskService { } + @Override + public void tagInManager() { + BasTag param = new BasTag(); + param.setSpare3("2"); + List basTags = basTagService.selectBasTagList(param); + for (BasTag basTag : basTags) { + Socket socket = getSocket(basTag); + try { + /** 接收电子标签指令 */ + String content = readData(socket);//读取值 + if (!content.isEmpty()) { + log.info("读取电子标签值:" + content); + } + //将拍灯指令整理成数组 + String[] split = content.split("5a"); + for (String s : split) { + if (s.length() == 10) { + String type = s.substring(4, 6);//指令类型 01是下发成功反馈 12是拍灭绿灯指令 + if ("12".equals(type)) { + //12为 绿色拍灯指令 + //生成agv空料箱入库作业 + TrayCodeMsg trayCodeMsg = new TrayCodeMsg(); + trayCodeMsg.setTrayCode(IdUtil.fastSimpleUUID()); + trayCodeMsg.setWarehouseId("02"); + trayCodeMsg.setEntranceId(basTag.getPickAdd()); + pdaService.emptyBoxIn(trayCodeMsg); + //推送空料箱入库作业 生成ctu队列 + + } + } + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } + } + /** * 获取socket *