diff --git a/acs/nladmin-system/nlsso-server/pom.xml b/acs/nladmin-system/nlsso-server/pom.xml index 4f4c653..aa6bee7 100644 --- a/acs/nladmin-system/nlsso-server/pom.xml +++ b/acs/nladmin-system/nlsso-server/pom.xml @@ -550,6 +550,30 @@ 3.0.13 pom + + + + com.itextpdf + kernel + 7.2.5 + + + com.itextpdf + layout + 7.2.5 + + + + com.itextpdf + font-asian + 7.2.5 + + + + cn.hutool + hutool-all + 5.8.22 + diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/HkToAcsServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/HkToAcsServiceImpl.java index df6e0e9..336bb6a 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/HkToAcsServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/HkToAcsServiceImpl.java @@ -91,6 +91,8 @@ public class HkToAcsServiceImpl implements HkToAcsService { instruction.setExecute_device_code(instruction.getStart_point_code()); instruction.setUpdate_time(now); instructionService.update(instruction); + taskDto.setCar_no(robotCode); + taskService.update(taskDto); } //method 回调2、任务完成/结束end else if (StrUtil.equals(method, "end")) { diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java index b796d8d..b82cbab 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java @@ -301,6 +301,9 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { //(不需要WCS反馈) if (phase == 0x67) { device = deviceAppService.findDeviceByCode(Integer.toString(arr[27])); + } else if (phase == 0x73 || phase == 0x74) { + // 电量上报、异常信息上报 + device = deviceAppService.findDeviceByCode(String.valueOf(agvaddr)); } else { device = deviceAppService.findDeviceByCode(Integer.toString(arr[20])); } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java index 7013a36..9f04989 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.basedriver.agv.ndcone; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; @@ -22,6 +23,12 @@ import org.nl.acs.device_driver.storage.standard_storage.StandardStorageDeviceDr import org.nl.acs.ext.wms.data.one.feedBackTaskStatus.FeedBackTaskStatusRequest; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; +import org.nl.acs.history.AgvFaultEnum; +import org.nl.acs.history.domain.AcsDeviceErrorLog; +import org.nl.acs.history.service.DeviceErrorLogService; +import org.nl.acs.history.service.dto.DeviceErrorLogDto; +import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl; +import org.nl.acs.history.service.mapper.AcsDeviceErrorLogMapper; import org.nl.acs.instruction.domain.Instruction; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.impl.InstructionServiceImpl; @@ -32,6 +39,7 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.acs.task.service.impl.TaskServiceImpl; +import org.nl.config.IdUtil; import org.nl.config.SpringContextHolder; import org.nl.config.thread.ThreadPoolExecutorUtil; import org.nl.system.service.lucene.LuceneExecuteLogService; @@ -39,9 +47,7 @@ import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.impl.SysParamServiceImpl; import org.springframework.beans.factory.annotation.Autowired; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ThreadPoolExecutor; /** @@ -64,11 +70,13 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean("luceneExecuteLogServiceImpl"); @Autowired TaskService taskserver = SpringContextHolder.getBean(TaskService.class); + DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); private final static ThreadPoolExecutor EXECUTOR = ThreadPoolExecutorUtil.getPoll(); int agvaddr = 0; int agvaddr_copy = 0; int weight = 0; String device_code = ""; + String errorCode = "7,8,9,10,11,12"; int phase = 0; boolean flag = false; int x = 0; //x坐标 @@ -147,6 +155,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic transportOrder = inst.getTask_code(); //车辆分配任务时 状态为1 执行中 task.setTask_status("1"); + task.setCar_no(String.valueOf(carno)); taskserver.update(task); logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + "反馈:" + data); //车辆状态归零 @@ -585,6 +594,16 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic // isCharge = true; // } } else if (phase == 0x74) { + Set codeSet = new HashSet<>(Arrays.asList(errorCode.split(","))); + if (codeSet.contains(String.valueOf(ikey)) && status != ikey) { + DeviceErrorLogDto acsDeviceErrorLog = new DeviceErrorLogDto(); + acsDeviceErrorLog.setError_log_uuid(IdUtil.getStringId()); + acsDeviceErrorLog.setDevice_code(String.valueOf(agvaddr)); + acsDeviceErrorLog.setError_code(String.valueOf(ikey)); + acsDeviceErrorLog.setError_info(AgvFaultEnum.getDescByCode(ikey)); + acsDeviceErrorLog.setError_time(DateUtil.now()); + deviceErrorLogService.create(acsDeviceErrorLog); + } status = ikey; } else if (phase == 0x75) { is_have = ikey; diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/history/AgvFaultEnum.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/history/AgvFaultEnum.java new file mode 100644 index 0000000..15fad93 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/history/AgvFaultEnum.java @@ -0,0 +1,39 @@ +package org.nl.acs.history; + +public enum AgvFaultEnum { + + FAULT_7(7, "急停触发"), + FAULT_8(8, "避障触发"), + FAULT_9(9, "货叉防撞开关触发"), + FAULT_10(10, "触边触发"), + FAULT_11(11, "手动模式"), + FAULT_12(12, "导航丢失"); + + private final Integer code; + private final String desc; + + AgvFaultEnum(Integer code, String desc) { + this.code = code; + this.desc = desc; + } + + public Integer getCode() { + return code; + } + + public String getDesc() { + return desc; + } + + /** + * 根据code获取描述,找不到返回空或者自定义文本 + */ + public static String getDescByCode(Integer code) { + for (AgvFaultEnum value : AgvFaultEnum.values()) { + if (value.getCode().equals(code)) { + return value.getDesc(); + } + } + return "未知故障"; + } +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/history/service/impl/DeviceErrorLogServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/history/service/impl/DeviceErrorLogServiceImpl.java index 2dd1a6e..40a65f2 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/history/service/impl/DeviceErrorLogServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/history/service/impl/DeviceErrorLogServiceImpl.java @@ -6,10 +6,23 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.itextpdf.kernel.font.PdfFont; +import com.itextpdf.kernel.font.PdfFontFactory; +import com.itextpdf.kernel.geom.PageSize; +import com.itextpdf.kernel.pdf.PdfDocument; +import com.itextpdf.kernel.pdf.PdfWriter; +import com.itextpdf.layout.Document; +import com.itextpdf.layout.element.Cell; +import com.itextpdf.layout.element.Paragraph; +import com.itextpdf.layout.element.Table; +import com.itextpdf.layout.properties.TextAlignment; +import com.itextpdf.layout.properties.UnitValue; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -18,6 +31,7 @@ import org.nl.acs.history.domain.AcsDeviceErrorLog; import org.nl.acs.history.service.DeviceErrorLogService; import org.nl.acs.history.service.dto.DeviceErrorLogDto; import org.nl.acs.history.service.mapper.AcsDeviceErrorLogMapper; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.utils.PageUtil; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.FileUtil; @@ -64,7 +78,7 @@ public class DeviceErrorLogServiceImpl extends CommonServiceImpl wrapper = new LambdaQueryWrapper<>(); if (StrUtil.isNotEmpty(device_code)) { @@ -134,7 +148,7 @@ public class DeviceErrorLogServiceImpl extends CommonServiceImpl all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (DeviceErrorLogDto acsDeviceErrorLog : all) { @@ -146,5 +160,62 @@ public class DeviceErrorLogServiceImpl extends CommonServiceImpl all, HttpServletResponse response) throws IOException { + // 设置响应头【前端文件下载】 + response.setContentType("application/pdf"); + String fileName = "AGV报警记录.pdf"; + fileName = new String(fileName.getBytes("GBK"), "ISO-8859-1"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + response.setHeader("Cache-Control", "no-cache"); + + // 构建PDF,设置【A4横向】核心改动 + PdfWriter writer = new PdfWriter(response.getOutputStream()); + PdfDocument pdfDoc = new PdfDocument(writer); + // A4横向旋转 + pdfDoc.setDefaultPageSize(PageSize.A4.rotate()); + Document document = new Document(pdfDoc); + + // 中文字体 + PdfFont font = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", PdfFontFactory.EmbeddingStrategy.PREFER_EMBEDDED); + + // 标题 + Paragraph title = new Paragraph("AGV报警记录列表") + .setFont(font) + .setFontSize(14) + .setTextAlignment(TextAlignment.CENTER); + document.add(title); + document.add(new Paragraph("\n")); + // 表头 + String[] headers = {"设备编码", "报警编码", "报警信息", "报警时间"}; + // 等分列宽,不再使用固定宽度 + float[] columnWidths = new float[headers.length]; + Arrays.fill(columnWidths, 1); + Table table = new Table(UnitValue.createPercentArray(columnWidths)) + .useAllAvailableWidth(); + // 渲染表头 + for (String header : headers) { + Cell cell = new Cell() + .add(new Paragraph(header) + .setFont(font) + .setFontSize(9) + .setTextAlignment(TextAlignment.CENTER)); + table.addCell(cell); + } + // 渲染数据(空值兜底 + 字体9号) + for (DeviceErrorLogDto dto : all) { + // 设备编码 + table.addCell(new Cell().add(new Paragraph(dto.getDevice_code()).setFont(font))); + // 报警编码 + table.addCell(new Cell().add(new Paragraph(dto.getError_code()).setFont(font))); + // 报警信息 + table.addCell(new Cell().add(new Paragraph(dto.getError_info()).setFont(font))); + // 报警时间 + table.addCell(new Cell().add(new Paragraph(dto.getError_time()).setFont(font))); + } + document.add(table); + document.close(); } } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/domain/Task.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/domain/Task.java index 78651eb..a1604df 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/domain/Task.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/domain/Task.java @@ -226,6 +226,9 @@ public class Task extends CommonModel implements Serializable { /** 时间 */ private String oven_time; + /** 车号 */ + private String car_no; + /** 交互字段 */ private String interaction_json; diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/enums/TaskStatusEnum.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/enums/TaskStatusEnum.java index 4a08c7f..2fdf7c7 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/enums/TaskStatusEnum.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/enums/TaskStatusEnum.java @@ -68,5 +68,16 @@ public enum TaskStatusEnum { } return null; } + public static TaskStatusEnum getByIndex(String index) { + if (index == null || index.trim().isEmpty()) { + return null; + } + for (TaskStatusEnum status : TaskStatusEnum.values()) { + if (status.getIndex().equals(index)) { + return status; + } + } + return null; + } } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java index a68ce5c..68e773b 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java @@ -311,4 +311,9 @@ public class TaskDto implements Serializable { * 行架任务类型 */ private String truss_type; + + /** + * 车号 + */ + private String car_no; } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 52a25d7..48653a7 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -14,6 +15,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.itextpdf.kernel.font.PdfFont; +import com.itextpdf.kernel.font.PdfFontFactory; +import com.itextpdf.kernel.geom.PageSize; +import com.itextpdf.kernel.pdf.PdfDocument; +import com.itextpdf.kernel.pdf.PdfWriter; +import com.itextpdf.layout.Document; +import com.itextpdf.layout.element.Cell; +import com.itextpdf.layout.element.Paragraph; +import com.itextpdf.layout.element.Table; +import com.itextpdf.layout.properties.TextAlignment; +import com.itextpdf.layout.properties.UnitValue; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.nl.acs.AcsConfig; @@ -309,6 +321,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme String point_code = (String) whereJson.get("point_code"); String create_time = (String) whereJson.get("createTime"); String end_time = (String) whereJson.get("end_time"); + String car_no = (String) whereJson.get("car_no"); IPage queryPage = PageUtil.toMybatisPage(page); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -321,6 +334,9 @@ public class TaskServiceImpl extends CommonServiceImpl impleme if (!StrUtil.isEmpty(material_type)) { wrapper.eq(Task::getMaterial, material_type); } + if (!StrUtil.isEmpty(car_no)) { + wrapper.eq(Task::getCar_no, car_no); + } if (!StrUtil.isEmpty(status)) { wrapper.eq(Task::getTask_status, status); } @@ -1275,6 +1291,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme String point_code = (String) whereJson.get("point_code"); String create_time = (String) whereJson.get("createTime"); String end_time = (String) whereJson.get("end_time"); + String car_no = (String) whereJson.get("car_no"); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if (!StrUtil.isEmpty(task_code)) { @@ -1283,6 +1300,9 @@ public class TaskServiceImpl extends CommonServiceImpl impleme if (!StrUtil.isEmpty(vehicle_code)) { wrapper.like(Task::getVehicle_code, vehicle_code); } + if (!StrUtil.isEmpty(car_no)) { + wrapper.like(Task::getCar_no, car_no); + } if (!StrUtil.isEmpty(material_type)) { wrapper.eq(Task::getMaterial, material_type); } @@ -1322,7 +1342,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme } - @Override + /* @Override public void downloadTaskLogging(List taskAndInst, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (JSONObject jsonObject : taskAndInst) { @@ -1342,6 +1362,83 @@ public class TaskServiceImpl extends CommonServiceImpl impleme list.add(map); } FileUtil.downloadExcel(list, response); + }*/ + + @Override + public void downloadTaskLogging(List dataList, HttpServletResponse response) throws IOException { + // 设置响应头【前端文件下载】 + response.setContentType("application/pdf"); + String fileName = "任务历史记录.pdf"; + fileName = new String(fileName.getBytes("GBK"), "ISO-8859-1"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + response.setHeader("Cache-Control", "no-cache"); + + // 构建PDF,设置【A4横向】核心改动 + PdfWriter writer = new PdfWriter(response.getOutputStream()); + PdfDocument pdfDoc = new PdfDocument(writer); + // A4横向旋转 + pdfDoc.setDefaultPageSize(PageSize.A4.rotate()); + Document document = new Document(pdfDoc); + + // 中文字体 + PdfFont font = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", PdfFontFactory.EmbeddingStrategy.PREFER_EMBEDDED); + + // 标题 + Paragraph title = new Paragraph("任务历史记录列表") + .setFont(font) + .setFontSize(14) + .setTextAlignment(TextAlignment.CENTER); + document.add(title); + document.add(new Paragraph("\n")); + // 表头 + String[] headers = {"任务号", "载具号", "任务状态", "任务优先级", "起点", "终点", "车号","备注", + "创建人","创建时间","完成时间" + }; + // 等分列宽,不再使用固定宽度 + float[] columnWidths = new float[headers.length]; + Arrays.fill(columnWidths, 1); + Table table = new Table(UnitValue.createPercentArray(columnWidths)) + .useAllAvailableWidth(); + // 渲染表头 + for (String header : headers) { + Cell cell = new Cell() + .add(new Paragraph(header) + .setFont(font) + .setFontSize(9) + .setTextAlignment(TextAlignment.CENTER)); + table.addCell(cell); + } + // 渲染数据(空值兜底 + 字体9号) + for (JSONObject json : dataList) { + // 任务号 + table.addCell(new Cell().add(new Paragraph(json.getString("task_code")).setFont(font))); + // 载具号 + String vehicleCode = json.getString("vehicle_code"); + table.addCell(new Cell().add(new Paragraph(ObjectUtil.isNotEmpty(vehicleCode) ? vehicleCode : "-").setFont(font))); + // 任务状态 + TaskStatusEnum taskStatus = TaskStatusEnum.getByIndex(json.getString("task_status")); + table.addCell(new Cell().add(new Paragraph(taskStatus.getName()).setFont(font))); + // 任务优先级 + table.addCell(new Cell().add(new Paragraph(json.getString("priority")).setFont(font))); + // 起点 + table.addCell(new Cell().add(new Paragraph(json.getString("start_point_code")).setFont(font))); + // 终点 + table.addCell(new Cell().add(new Paragraph(json.getString("next_point_code")).setFont(font))); + // 车号 + String car_no = json.getString("car_no"); + table.addCell(new Cell().add(new Paragraph(ObjectUtil.isNotEmpty(car_no) ? car_no : "-").setFont(font))); + // 备注 + String remark = json.getString("remark"); + table.addCell(new Cell().add(new Paragraph(ObjectUtil.isNotEmpty(remark) ? remark : "-").setFont(font))); + // 创建人 + table.addCell(new Cell().add(new Paragraph(json.getString("create_by")).setFont(font))); + // 创建时间 + table.addCell(new Cell().add(new Paragraph(json.getString("create_time")).setFont(font))); + // 完成时间 + table.addCell(new Cell().add(new Paragraph(json.getString("update_time")).setFont(font))); + } + document.add(table); + document.close(); } @Override @@ -1360,8 +1457,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme ins.put("priority", task.getPriority()); ins.put("start_point_code", task.getStart_point_code()); ins.put("next_point_code", task.getNext_point_code()); - ins.put("matarial", task.getMaterial()); - ins.put("quantity", task.getQuantity()); + ins.put("car_no", task.getCar_no()); ins.put("remark", task.getRemark()); ins.put("create_by", task.getCreate_by()); ins.put("create_time", task.getCreate_time()); diff --git a/acs/nladmin-ui/src/i18n/langs/deviceErrorInfo/zh.js b/acs/nladmin-ui/src/i18n/langs/deviceErrorInfo/zh.js index 0a233d2..2a8521e 100644 --- a/acs/nladmin-ui/src/i18n/langs/deviceErrorInfo/zh.js +++ b/acs/nladmin-ui/src/i18n/langs/deviceErrorInfo/zh.js @@ -6,7 +6,7 @@ export default { 'alarm_message': '报警信息', 'start_time': '开始日期', 'end_time': '结束日期', - 'error_time': '错误时间' + 'error_time': '报警时间' } } } diff --git a/acs/nladmin-ui/src/router/routers.js b/acs/nladmin-ui/src/router/routers.js index d516b9c..5f97c4c 100644 --- a/acs/nladmin-ui/src/router/routers.js +++ b/acs/nladmin-ui/src/router/routers.js @@ -45,7 +45,7 @@ export const constantRouterMap = [ children: [ { path: 'dashboard', - component: (resolve) => require(['@/views/track/showTrack'], resolve), + component: (resolve) => require(['@/views/monitor/server/index'], resolve), // component: (resolve) => require(['@/views/monitor/server/index'], resolve), name: 'Dashboard', meta: { title: i18n.t('auto.common.home'), icon: 'index', affix: true, noCache: true } diff --git a/acs/nladmin-ui/src/views/acs/history/deviceErrorInfo/index.vue b/acs/nladmin-ui/src/views/acs/history/deviceErrorInfo/index.vue index 42a5a7d..e11a417 100644 --- a/acs/nladmin-ui/src/views/acs/history/deviceErrorInfo/index.vue +++ b/acs/nladmin-ui/src/views/acs/history/deviceErrorInfo/index.vue @@ -4,42 +4,35 @@
- - - - - - + + + + + + + + +
@@ -137,6 +130,7 @@ export default { }, data() { return { + downLoadDeviceErrorLogging: false, permission: { add: ['admin', 'deviceErrorLog:add'], edit: ['admin', 'deviceErrorLog:edit'], @@ -195,20 +189,18 @@ export default { } }, doExportDeviceErrorLogging() { - this.downLoadTaskLogging = true - const params = { - device_code: this.query.device_code, - error_code: this.query.error_code, - error_info: this.query.error_info, - start_time: this.query.start_time, - end_time: this.query.end_time + this.downLoadDeviceErrorLogging = true + const params = this.crud.query + if (this.crud.query.createTime !== undefined) { + params.begin_time = this.crud.query.createTime[0] + params.end_time = this.crud.query.createTime[1] } const url = '/api/deviceErrorLog/download' download(url, params).then(result => { - downloadFile(result, this.crud.title + '数据', 'csv') - this.downLoadTaskTreeLogging = false + downloadFile(result, '设备报警记录', 'pdf') + this.downLoadDeviceErrorLogging = false }).catch(() => { - this.downLoadTaskTreeLogging = false + this.downLoadDeviceErrorLogging = false }) } } diff --git a/acs/nladmin-ui/src/views/acs/history/taskRecord/index.vue b/acs/nladmin-ui/src/views/acs/history/taskRecord/index.vue index a68b83b..960d693 100644 --- a/acs/nladmin-ui/src/views/acs/history/taskRecord/index.vue +++ b/acs/nladmin-ui/src/views/acs/history/taskRecord/index.vue @@ -32,20 +32,6 @@ @keyup.enter.native="crud.toQuery" /> - - - - - - - - - - - - + + + + + + - - - - - - - - - - -
@@ -293,11 +273,10 @@ - - - - - + + + + @@ -315,6 +294,7 @@ import Search from '@/views/lucene/time' import crudTask from '@/api/acs/task/task' import CRUD, { crud, form, header, presenter } from '@crud/crud' import crudOperation from '@crud/CRUD.operation' +import rrOperation from '@crud/RR.operation' import pagination from '@crud/Pagination' import deviceCrud from '@/api/acs/device/device' import routeCurd from '@/api/acs/route/routePlan' @@ -344,7 +324,7 @@ const defaultForm = { } export default { name: 'Task', - components: { pagination, crudOperation, Search }, + components: { pagination, crudOperation, Search, rrOperation }, dicts: ['task_status', 'task_type'], mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { @@ -413,6 +393,7 @@ export default { toYList: [], toZList: [], start_flag: false, + downLoadTaskLogging: false, end_flag: false, permission: { add: ['admin', 'task:add'], @@ -486,22 +467,18 @@ export default { }) }, doExportTaskLogging() { - this.downLoadTaskLogging = true - const params = { - task_code: this.query.task_code, - vehicle_code: this.query.vehicle_code, - material_type: this.query.material_type, - status: this.query.status, - point_code: this.crud.pointCode, - createTime: this.crud.createTime, - end_time: this.crud.endTime // 假设 this.crud.endTime 是你的结束时间 + const params = this.crud.query + if (this.crud.query.createTime !== undefined) { + params.begin_time = this.crud.query.createTime[0] + params.end_time = this.crud.query.createTime[1] } const url = 'api/task/downloadTaskLogging' + this.downLoadTaskLogging = true download(url, params).then(result => { - downloadFile(result, this.crud.title + '数据', 'csv') - this.downLoadTaskTreeLogging = false + downloadFile(result, '任务历史数据', 'pdf') + this.downLoadTaskLogging = false }).catch(() => { - this.downLoadTaskTreeLogging = false + this.downLoadTaskLogging = false }) }, beforeHandleCommand(index, row, command) { diff --git a/acs/nladmin-ui/src/views/monitor/server/index.vue b/acs/nladmin-ui/src/views/monitor/server/index.vue index 5ba81d4..67d2fad 100644 --- a/acs/nladmin-ui/src/views/monitor/server/index.vue +++ b/acs/nladmin-ui/src/views/monitor/server/index.vue @@ -5,7 +5,7 @@
- {{ $t('auto.monitor.sys') }}:{{ data.sys.os }} + {{ $t('auto.monitor.sys') }}:{{ "Windows Server 2022 Standard" }} IP:{{ data.sys.ip }} @@ -13,6 +13,9 @@ {{ $t('auto.monitor.day') }}:{{ data.sys.day }} + + 系统版本:{{ "V1.0"}} +