diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 4ad5e93..93bf94c 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -112,14 +112,6 @@ ${project.artifactId} - - org.apache.maven.plugins - maven-compiler-plugin - - 17 - 17 - - ${project.artifactId} 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 0102b49..3e0d774 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 @@ -151,7 +151,7 @@ public class ToWmsServiceImpl implements IToWmsService { } MydoJob outJob = outMydoJobs.get(0); //料箱出库 需同步电子标签 - if("23".equals(outJob.getInOut())){ + if("23".equals(outJob.getInOrOut())){ //查询拣选工位绑定的电子标签 BasTag tagParam = new BasTag(); tagParam.setPickAdd(wmsJobRequest.getPickSsj()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java index e2a8d35..41e6c81 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java @@ -6,6 +6,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; +import cn.hutool.core.util.StrUtil; import com.ruoyi.bas.basJobId.service.IBasJobIdService; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.core.domain.AjaxResult; @@ -182,7 +183,7 @@ public class OutStockoutServiceImpl implements IOutStockoutService } } } - if (!stringBuilder.isEmpty()){ + if (!StrUtil.isEmpty(stringBuilder.toString())){ return AjaxResult.warn(stringBuilder.toString()); } return AjaxResult.success(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/thread/TagReadThread.java b/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/thread/TagReadThread.java index aa81127..ae937f8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/thread/TagReadThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/thread/TagReadThread.java @@ -41,55 +41,59 @@ public class TagReadThread implements Runnable{ for (Long tagId : tagGroup.keySet()) { BasTag basTag = basTagService.selectBasTagById(tagId); try (Socket socket = getSocket(basTag)){ - /** 接收电子标签指令 */ - String content = ElectronicTagClient.receiveHexData(socket,0);//读取值 - if (!content.isEmpty()) { - System.out.println("读取电子标签值:" + content); - } - for (TagTask tagTask : tagGroup.get(tagId)) { - //将拍灯指令整理成数组 - 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为 绿色拍灯指令 - int address = new BigInteger(s.substring(2, 4), 16).intValue(); - if (address == basTag.getId()) { - //更新当前子任务状态 - tagTask.setStatus("2"); - tagTaskMapper.updateTagTask(tagTask); - System.out.println("更新任务状态:" + tagTask.getProductId() + ",id:" + tagTask.getId()); - TagTask param = new TagTask(); - param.setTagId(tagId); - List tagTasks = tagTaskMapper.selectTagTaskList(param); - if (CollUtil.isNotEmpty(tagTasks)){ - if (tagTasks.stream().allMatch(x-> "2".equals(x.getStatus()))){ - //全部拣选完成 灭灯逻辑 - //灭灯 - boolean b = sendDzbqOff(basTag); - if (b) { - //出库确认 - TrayCodeMakeSure trayCodeMakeSure = new TrayCodeMakeSure(); - trayCodeMakeSure.setTrayCode(basTag.getTrayCode()); - AjaxResult ajaxResult = pdaService.outMakeSure(trayCodeMakeSure); - if (ajaxResult.isSuccess()){ - //删除标签绑定信息 - basTag.setSendCompleted("0"); - basTag.setTrayCode(""); - basTagService.updateBasTag(basTag); - //删除tagList - tagTaskMapper.deleteTagTaskByIds(tagTasks.stream().map(TagTask::getId).toArray(Long[]::new)); + while (true){ + /** 接收电子标签指令 */ + String content = ElectronicTagClient.receiveHexData(socket,0);//读取值 + if (!content.isEmpty()) { + System.out.println("读取电子标签值:" + content); + } + for (TagTask tagTask : tagGroup.get(tagId)) { + //将拍灯指令整理成数组 + 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为 绿色拍灯指令 + int address = new BigInteger(s.substring(2, 4), 16).intValue(); + if (address == basTag.getId()) { + //更新当前子任务状态 + tagTask.setStatus("2"); + tagTaskMapper.updateTagTask(tagTask); + System.out.println("更新任务状态:" + tagTask.getProductId() + ",id:" + tagTask.getId()); + TagTask param = new TagTask(); + param.setTagId(tagId); + List tagTasks = tagTaskMapper.selectTagTaskList(param); + if (CollUtil.isNotEmpty(tagTasks)){ + if (tagTasks.stream().allMatch(x-> "2".equals(x.getStatus()))){ + //全部拣选完成 灭灯逻辑 + //灭灯 + boolean b = sendDzbqOff(basTag); + if (b) { + //出库确认 + TrayCodeMakeSure trayCodeMakeSure = new TrayCodeMakeSure(); + trayCodeMakeSure.setTrayCode(basTag.getTrayCode()); + AjaxResult ajaxResult = pdaService.outMakeSure(trayCodeMakeSure); + if (ajaxResult.isSuccess()){ + //删除标签绑定信息 + basTag.setSendCompleted("0"); + basTag.setTrayCode(""); + basTagService.updateBasTag(basTag); + //删除tagList + tagTaskMapper.deleteTagTaskByIds(tagTasks.stream().map(TagTask::getId).toArray(Long[]::new)); + break; + } } } - } + } } } } } } } + } catch (IOException e) { throw new RuntimeException(e); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/util/ElectronicTagClient.java b/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/util/ElectronicTagClient.java index 8324bc9..301c3d7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/util/ElectronicTagClient.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/tagTask/util/ElectronicTagClient.java @@ -1,9 +1,9 @@ package com.ruoyi.out.tagTask.util; +import javax.xml.bind.DatatypeConverter; import java.io.*; import java.net.*; import java.util.Arrays; -import java.util.HexFormat; public class ElectronicTagClient { @@ -85,11 +85,11 @@ public class ElectronicTagClient { // 16进制字符串转字节数组 public static byte[] hexStringToByteArray(String hexString) { - return HexFormat.of().parseHex(hexString); + return DatatypeConverter.parseHexBinary(hexString); } // 字节数组转16进制字符串 private static String byteArrayToHexString(byte[] bytes) { - return HexFormat.of().formatHex(bytes).toUpperCase(); + return DatatypeConverter.printHexBinary(bytes).toUpperCase(); } }