From af75c2bcb1dd501c2df0557f554f852d2fd09a44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8C=AB=E7=8C=ABguowen?= <9290821+guowen-the-cat@user.noreply.gitee.com> Date: Mon, 13 Oct 2025 08:38:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E5=90=8E=E5=8F=B0=E4=B8=8E2d?= =?UTF-8?q?=E7=9B=91=E6=8E=A7js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/ScreenController.java | 124 ++++++++++++++++++ ruoyi-ui/public/monitor/js/index.js | 8 +- 2 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/controller/ScreenController.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ScreenController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ScreenController.java new file mode 100644 index 00000000..83d8e10a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ScreenController.java @@ -0,0 +1,124 @@ +package com.ruoyi.api.controller; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import com.ruoyi.common.annotation.Anonymous; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.device.ssj.domain.DeviceSsj; +import com.ruoyi.device.ssj.service.IDeviceSsjService; +import com.ruoyi.job.domain.MydoJob; +import com.ruoyi.job.service.IMydoJobService; + +/** + * 大屏接口Controller + * + * @author ruoyi + */ +@Anonymous +@RestController +@RequestMapping("/api/screen") +public class ScreenController extends BaseController { + + @Autowired + private IDeviceSsjService deviceSsjService; + + @Autowired + private IMydoJobService mydoJobService; + + // 定义各区域输送机编号数组 + private static final Map> AREA_SSJ_CODES = new HashMap<>(); + + // 静态初始化输送机编号数组 + static { + // 1区域输送机编号 + AREA_SSJ_CODES.put(1, Arrays.asList( + "L2007","L2008","L2005","L2006","L2013" + )); + + // 2区域输送机编号 + AREA_SSJ_CODES.put(2, Arrays.asList( + "L2003","L2004","L2012","L2001","L2002" + )); + + // 3区域输送机编号 + AREA_SSJ_CODES.put(3, Arrays.asList( + "L1001","L1002","L1011" + )); + + // 4区域输送机编号 + AREA_SSJ_CODES.put(4, Arrays.asList( + "L1003","L1004","L1012" + )); + } + + /** + * 根据区域编号查询输送机列表 + * + * @param areaNum 区域编号(1-4) + * @return 输送机数据列表 + */ + @PostMapping("/ssj/{areaNum}") + public AjaxResult getSsjListByArea(@PathVariable("areaNum") Integer areaNum) { + if (areaNum < 1 || areaNum > 4) { + return AjaxResult.error("区域编号必须在1-4之间"); + } + + // 获取该区域的输送机编号数组 + List ssjCodes = AREA_SSJ_CODES.get(areaNum); + if (ssjCodes == null || ssjCodes.isEmpty()) { + return AjaxResult.error("未找到该区域的输送机编号配置"); + } + + // 查询所有输送机 + List allSsjList = deviceSsjService.selectDeviceSsjList(null); + + // 根据编号数组筛选输送机 + List filteredList = allSsjList.stream() + .filter(ssj -> ssj.getDeviceCode() != null && ssjCodes.contains(ssj.getDeviceCode().trim())) + .collect(Collectors.toList()); + + // 转换为前端需要的数据格式 + List> resultList = new ArrayList<>(); + // 创建作业信息列表 + List jobList = new ArrayList<>(); + + for (DeviceSsj ssj : filteredList) { + Map map = new HashMap<>(); + map.put("id", ssj.getDeviceCode()); + map.put("name", ssj.getName()); + map.put("kx", String.valueOf(ssj.getKx())); + map.put("dw", String.valueOf(ssj.getDw())); + map.put("sbzt", ssj.getException()); + // map.put("trayCode", ssj.getTrayCode()); + map.put("allowPut", String.valueOf(ssj.getAllowPut())); + map.put("traySize", String.valueOf(ssj.getTraySize())); + map.put("exception", String.valueOf(ssj.getException())); + map.put("taskNo", ssj.getTaskNo()); + resultList.add(map); + + // 如果taskNo大于0,查询对应的作业信息 + if (ssj.getTaskNo()> 0) { + MydoJob job = mydoJobService.selectMydoJobByTaskNo(Long.valueOf(ssj.getTaskNo())); + if (job != null) { + jobList.add(job); + } + } + } + + // 返回结果包含data和job两个字段 + Map result = new HashMap<>(); + result.put("ssj", resultList); + result.put("job", jobList); + + return AjaxResult.success(result); + } +} \ No newline at end of file diff --git a/ruoyi-ui/public/monitor/js/index.js b/ruoyi-ui/public/monitor/js/index.js index 82da3e78..edb7282c 100644 --- a/ruoyi-ui/public/monitor/js/index.js +++ b/ruoyi-ui/public/monitor/js/index.js @@ -1677,7 +1677,13 @@ function applyContainerStyle(container, style) { function buildAlarmText(alarms) { const alarmTexts = alarms.map(alarm => { const errorCode = alarm.code || alarm.type || '未知'; - return `【${alarm.id}${alarm.name}】错误代码: ${errorCode},报警信息:${ddjSbzt(errorCode)}`; + if(alarm.name=="堆垛机"){ + return `【${alarm.id}${alarm.name}】错误代码: ${errorCode},报警信息:${ddjSbzt(errorCode)}`; + }else if(alarm.name=="输送机"){ + return `【${alarm.id}${alarm.name}】错误代码: ${errorCode},报警信息:${ssjSbzt(errorCode)}`; + }else { + return `【${alarm.id}${alarm.name}】错误代码: ${errorCode},报警信息:未知`; + } }); return alarmTexts.join(ALARM_CONFIG.TEXT.SEPARATOR); }