流利架 入库出库逻辑

This commit is contained in:
liuhanqing
2025-07-28 11:33:51 +08:00
parent 528af35039
commit c7513187d2
7 changed files with 75 additions and 4 deletions

View File

@@ -27,6 +27,14 @@ public class ToWcsApiController {
toWcsService.pushOutMydoJob();
}
/**
* 推送CTU流利架空料箱入库任务
*/
@PostMapping("/pushInMydoJob")
public void pushInMydoJob(String trayCode) {
toWcsService.pushInMydoJob(trayCode);
}
/**
* 推送agv搬运作业
* @return

View File

@@ -14,4 +14,6 @@ public interface IToWcsService {
void pushOutMydoJob();
AjaxResult pushAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest);
void pushInMydoJob(String trayCode);
}

View File

@@ -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);
}
}
}
}

View File

@@ -129,6 +129,7 @@ public class ToWmsServiceImpl implements IToWmsService {
//查询拣选工位绑定的电子标签
BasTag tagParam = new BasTag();
tagParam.setPickAdd(wmsJobRequest.getPickSsj());
tagParam.setSpare3("1");
List<BasTag> tags = iBasTagService.selectBasTagList(tagParam);
if (tags.isEmpty()){
return AjaxResult.error("没有该拣选工位绑定的电子标签");

View File

@@ -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();
}
}

View File

@@ -62,5 +62,7 @@ public interface ITagTaskService
/**
* 电子标签管理
*/
void tagManager();
void tagOutManager();
void tagInManager();
}

View File

@@ -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<BasTag> 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
*