大屏后台与2d监控js

This commit is contained in:
猫猫guowen
2025-10-13 08:38:34 +08:00
parent 4d4a381b0c
commit af75c2bcb1
2 changed files with 131 additions and 1 deletions

View File

@@ -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<Integer, List<String>> 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<String> ssjCodes = AREA_SSJ_CODES.get(areaNum);
if (ssjCodes == null || ssjCodes.isEmpty()) {
return AjaxResult.error("未找到该区域的输送机编号配置");
}
// 查询所有输送机
List<DeviceSsj> allSsjList = deviceSsjService.selectDeviceSsjList(null);
// 根据编号数组筛选输送机
List<DeviceSsj> filteredList = allSsjList.stream()
.filter(ssj -> ssj.getDeviceCode() != null && ssjCodes.contains(ssj.getDeviceCode().trim()))
.collect(Collectors.toList());
// 转换为前端需要的数据格式
List<Map<String, Object>> resultList = new ArrayList<>();
// 创建作业信息列表
List<MydoJob> jobList = new ArrayList<>();
for (DeviceSsj ssj : filteredList) {
Map<String, Object> 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<String, Object> result = new HashMap<>();
result.put("ssj", resultList);
result.put("job", jobList);
return AjaxResult.success(result);
}
}

View File

@@ -1677,7 +1677,13 @@ function applyContainerStyle(container, style) {
function buildAlarmText(alarms) { function buildAlarmText(alarms) {
const alarmTexts = alarms.map(alarm => { const alarmTexts = alarms.map(alarm => {
const errorCode = alarm.code || alarm.type || '未知'; 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); return alarmTexts.join(ALARM_CONFIG.TEXT.SEPARATOR);
} }