From e65081ae692617a1a15a2be41ddb36d0f748e00f Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 14 Jul 2025 16:15:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=A9=BF=E6=8B=94=E8=BD=B4=E5=8C=BA?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AE=BE=E5=A4=87=E5=BC=82=E5=B8=B8=E6=8A=A5?= =?UTF-8?q?=E8=AD=A6=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tasks/slitter/constant/SlitterEnum.java | 12 ++++-- .../slitter/controller/SlitterController.java | 37 ++++++++++++++++++- .../tasks/slitter/util/SlitterTaskUtil.java | 33 +++++++++++++++++ 3 files changed, 77 insertions(+), 5 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java index be868717d..fe4f6c9b2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterEnum.java @@ -19,10 +19,14 @@ public enum SlitterEnum { /** * 任务类型 */ - TASK_TYPE(MapOf.of("穿拔轴缓存<>穿拔轴位", "010801", "穿拔轴缓存<>分切对接位", "010802", "穿拔轴位<>气胀轴缓存位", "010803" - , "分切机下料AGV任务", "010804", "分切机上气胀轴", "010805", "分切机下气胀轴", "010806", "备货区送载具", "010807" - , "备货区送纸管", "010808", "分切机下料桁架任务", "010809", "分切机下料AGV到内包间", "010810", "套轴异常处理AGV任务", "010811" - , "套轴异常处理桁架任务", "010812", "送气胀轴到分切机任务", "010813", "拔轴完毕出轴", "010814", "穿拔轴缓存<>气胀轴缓存位", "010815", "备货区单独送空载具", "010816")); + TASK_TYPE(MapOf.of("穿拔轴缓存<>穿拔轴位", "010801", "穿拔轴缓存<>分切对接位", "010802" + , "穿拔轴位<>气胀轴缓存位", "010803", "分切机下料AGV任务", "010804" + , "分切机上气胀轴", "010805", "分切机下气胀轴", "010806", "备货区送载具", "010807" + , "备货区送纸管", "010808", "分切机下料桁架任务", "010809", "分切机下料AGV到内包间", "010810" + , "套轴异常处理AGV任务", "010811", "套轴异常处理桁架任务", "010812", "送气胀轴到分切机任务", "010813" + , "拔轴完毕出轴", "010814", "穿拔轴缓存<>气胀轴缓存位", "010815", "备货区单独送空载具", "010816") + ); + private Map code; public String code(String desc) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java index d2113a883..7399f82ca 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java @@ -1,11 +1,17 @@ package org.nl.b_lms.sch.tasks.slitter.controller; import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterEnum; import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; +import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.logging.annotation.Log; +import org.nl.system.service.dict.ISysDictService; +import org.nl.system.service.dict.dao.Dict; +import org.nl.wms.ext.acs.service.WmsToAcsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -14,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @Author: lyd * @Description: @@ -28,6 +36,10 @@ public class SlitterController { private SlitterService slitterService; @Autowired private RedisUtils redisUtils; + @Autowired + private WmsToAcsService wmsToAcsService; + @Autowired + private ISysDictService dictService; @PostMapping("/calPaperNum") @Log("扣除纸管库存") @SaIgnore @@ -44,7 +56,30 @@ public class SlitterController { @Log("套轴BCP透明链路2") @SaIgnore public ResponseEntity tzInfo2(@RequestBody JSONObject entity){ - return new ResponseEntity<>(redisUtils.get("ERROR" + entity.getString("device_code")), HttpStatus.CREATED); + List list = SlitterTaskUtil.objectToList(redisUtils.get("ERROR" + entity.getString("device_code"))); + try { + // 获取字典数据 + List bcbjError = dictService.getDictByName("CBJ_ERROR"); + // 判断气胀轴是否有轴 + JSONArray device_rows = new JSONArray(); + JSONObject device_obj = new JSONObject(); + device_rows.add(device_obj); + device_obj.put("device_code", entity.getString("device_code")); + // todo: 暂时都是B1 + device_obj.put("product_area", "B1"); + JSONObject pointStatus = wmsToAcsService.getPointStatus(device_rows); + JSONObject data = pointStatus.getJSONArray("data").getJSONObject(0); + Dict error = bcbjError.stream() + .filter(p -> p.getValue().equals(data.getString("error"))) + .findFirst() + .orElse(null); + list.add(">>>实时获取电气上报异常信息:" + (error != null + ? error.getLabel() + : (data.getString("error") + "对应异常信息未定义"))); + } catch (Exception e) { + list.add(">>>获取电气上报异常信息失败(此记录不影响流程)..."); + } + return new ResponseEntity<>(list, HttpStatus.CREATED); } @PostMapping("/v2/tzTaskINfo") @Log("套轴BCP透明链路2") diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java index ba1a267ad..827138d94 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java @@ -1,5 +1,6 @@ package org.nl.b_lms.sch.tasks.slitter.util; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; @@ -573,4 +574,36 @@ public class SlitterTaskUtil { Integer::sum )); } + + + public static List mapList(Collection from, Function func) { + if (CollUtil.isEmpty(from)) { + return new ArrayList<>(); + } + return from.stream().map(func).collect(Collectors.toList()); + } + + /** + * 转换List + * @param obj + * @return + */ + public static List objectToList(Object obj) { + // 安全转换为List + List errorList = new ArrayList<>(); + if (obj instanceof List) { + for (Object item : (List) obj) { + if (item instanceof String) { + errorList.add((String) item); + } else { + // 非字符串元素处理(按需调整) + errorList.add(item.toString()); + } + } + } else if (obj != null) { + // 如果存储的不是List(如JSON字符串),需额外处理 + throw new IllegalStateException("Expected List type from Redis, but got: " + obj.getClass()); + } + return errorList; + } }