diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/enums/TaskStatusEnum.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/enums/TaskStatusEnum.java index 1ecabdf..4717baf 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/enums/TaskStatusEnum.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/enums/TaskStatusEnum.java @@ -18,7 +18,7 @@ public enum TaskStatusEnum { BUSY("1", "BUSY", "执行中"), FINISHED("2", "FINISHED", "完成"), CANCEL("3", "CANCEL", "取消"), - FORCED_COMPLETION("4", "", "强制完成"), + FORCED_COMPLETION("4", "FORCED_COMPLETION", "强制完成"), ERROR("99", "ERROR", "异常"); /** @@ -64,11 +64,30 @@ public enum TaskStatusEnum { public static String getName(String code) { for (TaskStatusEnum c : TaskStatusEnum.values()) { - if (c.code == code) { + if (code.equals(c.code)) { return c.name; } } return null; } + + public static String getNameByIndex(String index) { + for (TaskStatusEnum c : TaskStatusEnum.values()) { + if (index.equals(c.index)) { + return c.name; + } + } + return null; + } + + public static String getCodeByIndex(String index) { + for (TaskStatusEnum c : TaskStatusEnum.values()) { + if (index.equals(c.index)) { + return c.code; + } + } + return null; + } + } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java index 11d00b7..7b141e4 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java @@ -12,6 +12,8 @@ import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.time.LocalDateTime; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; @@ -591,4 +593,8 @@ public interface TaskService extends CommonService { TaskDto findByTaskCode(String task_code); List queryAllHJReadyTask(); + + List> countByStatusAndCreateTimeBetween( + Date start, + Date end); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 1ae68be..e277d4f 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -72,6 +72,7 @@ import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CopyOnWriteArrayList; @@ -1760,6 +1761,13 @@ public class TaskServiceImpl extends CommonServiceImpl impleme .collect(Collectors.toList()); } + @Override + public List> countByStatusAndCreateTimeBetween(Date start, Date end) { + + return taskMapper.countByStatusAndCreateTimeBetween(DateUtil.format(start,"yyyy-MM-dd HH:mm:ss.SSS"), + DateUtil.format(end,"yyyy-MM-dd HH:mm:ss.SSS")); + } + /** * 把多个字符串拼接的inst_nextDevice_code解析成集合 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/mapper/TaskMapper.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/mapper/TaskMapper.java index e591f78..f0b0548 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/mapper/TaskMapper.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/mapper/TaskMapper.java @@ -1,14 +1,30 @@ package org.nl.acs.task.service.mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import org.nl.acs.common.base.CommonMapper; import org.nl.acs.task.domain.Task; +import org.nl.common.annotation.Query; import org.springframework.stereotype.Repository; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; +import java.util.Map; + /** * @author jiaolm * @date 2023-05-09 */ @Repository public interface TaskMapper extends CommonMapper { - + /** + * 按状态和时间范围统计任务数量 + */ + @Select("SELECT t.task_status AS status, COUNT(1) AS count FROM acs_task t " + + "WHERE t.create_time BETWEEN #{start} AND #{end} " + + "GROUP BY t.task_status") + List> countByStatusAndCreateTimeBetween( + @Param("start") String start, + @Param("end") String end); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dashboard/DashboardController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dashboard/DashboardController.java new file mode 100644 index 0000000..cb243da --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dashboard/DashboardController.java @@ -0,0 +1,51 @@ +/* + * Copyright 2019-2020 Zheng Jie + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.nl.system.controller.dashboard; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import lombok.RequiredArgsConstructor; +import org.nl.system.service.dashboard.DashboardService; +import org.nl.system.service.dashboard.dto.ApiResponse; +import org.nl.system.service.monitor.MonitorService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author zhengxuming + * @date 2025年8月15日14:12:53 + */ +@RestController +@RequiredArgsConstructor + +@RequestMapping("/api/dashboard") +public class DashboardController { + + private final DashboardService serverService; + + @GetMapping("/today") + public ApiResponse getTodayTaskStats() { + return ApiResponse.success(serverService.getTodayTaskStats()); + } + + + @GetMapping("/seven-days") + public ApiResponse getSevenDaysTaskStats() { + return ApiResponse.success(serverService.getSevenDaysTaskStats()); + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/trajectory/TrajectoryBackgroundController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/trajectory/TrajectoryBackgroundController.java new file mode 100644 index 0000000..fa146df --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/trajectory/TrajectoryBackgroundController.java @@ -0,0 +1,66 @@ +package org.nl.system.controller.trajectory; + +import cn.dev33.satoken.annotation.SaIgnore; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.system.service.trajectory.TrajectoryBackgroundService; +import org.nl.system.service.trajectory.dto.TrajectoryBackground; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.Set; + +/** + * @author dsh + * 2025/6/19 + */ +@RestController +@RequestMapping("/api/trajectoryBackground") +@RequiredArgsConstructor +@Slf4j +@SaIgnore +public class TrajectoryBackgroundController { + + @Resource + private TrajectoryBackgroundService trajectoryBackgroundService; + + @GetMapping + @Log("查询轨迹背景图") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(trajectoryBackgroundService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @PostMapping + @Log("新增轨迹背景图") + public ResponseEntity create(@Validated @RequestBody TrajectoryBackground trajectoryBackground) { + trajectoryBackgroundService.create(trajectoryBackground); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PutMapping + @Log("修改轨迹背景图") + public ResponseEntity update(@Validated @RequestBody TrajectoryBackground entity) { + trajectoryBackgroundService.update(entity); + return new ResponseEntity<>(HttpStatus.OK); + } + + @DeleteMapping + @Log("删除轨迹背景图") + public ResponseEntity delete(@RequestBody Set ids) { + trajectoryBackgroundService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/queryAllEnable") + @SaIgnore + public ResponseEntity queryAllEnable() { + return new ResponseEntity<>(TableDataInfo.build(trajectoryBackgroundService.queryAllEnable()), HttpStatus.OK); + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/trajectory/TrajectoryConfigurationController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/trajectory/TrajectoryConfigurationController.java new file mode 100644 index 0000000..3e25fa5 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/trajectory/TrajectoryConfigurationController.java @@ -0,0 +1,66 @@ +package org.nl.system.controller.trajectory; + +import cn.dev33.satoken.annotation.SaIgnore; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.system.service.trajectory.TrajectoryConfigurationService; +import org.nl.system.service.trajectory.dto.TrajectoryConfiguration; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.Set; + +/** + * @author dsh + * 2025/6/19 + */ +@RestController +@RequestMapping("/api/trajectoryConfiguration") +@RequiredArgsConstructor +@Slf4j +@SaIgnore +public class TrajectoryConfigurationController { + + @Resource + private TrajectoryConfigurationService trajectoryConfigurationService; + + @GetMapping + @Log("查询轨迹设备配置") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(trajectoryConfigurationService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @PostMapping + @Log("新增轨迹设备配置") + public ResponseEntity create(@Validated @RequestBody TrajectoryConfiguration trajectoryConfiguration) { + trajectoryConfigurationService.create(trajectoryConfiguration); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PutMapping + @Log("修改轨迹设备配置") + public ResponseEntity update(@Validated @RequestBody TrajectoryConfiguration entity) { + trajectoryConfigurationService.update(entity); + return new ResponseEntity<>(HttpStatus.OK); + } + + @DeleteMapping + @Log("删除轨迹设备配置") + public ResponseEntity delete(@RequestBody Set ids) { + trajectoryConfigurationService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/queryAllEnable") + @SaIgnore + public ResponseEntity queryAllEnable() { + return new ResponseEntity<>(TableDataInfo.build(trajectoryConfigurationService.queryAllEnable()), HttpStatus.OK); + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/trajectory/TrajectoryController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/trajectory/TrajectoryController.java new file mode 100644 index 0000000..9b25f4d --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/trajectory/TrajectoryController.java @@ -0,0 +1,37 @@ +package org.nl.system.controller.trajectory; + +import cn.dev33.satoken.annotation.SaIgnore; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.logging.annotation.Log; +import org.nl.system.service.trajectory.TrajectoryService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @author dsh + * 2025/6/19 + */ +@RestController +@RequestMapping("/api/trajectory") +@RequiredArgsConstructor +@Slf4j +@SaIgnore +public class TrajectoryController { + + @Resource + private TrajectoryService trajectoryService; + + @PostMapping("/queryDevice") + @Log(value = "查询设备状态") + @SaIgnore + public ResponseEntity queryDevice(@RequestBody String whereJson) throws Exception { + return new ResponseEntity<>(trajectoryService.queryDevice(whereJson), HttpStatus.OK); + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/DashboardService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/DashboardService.java new file mode 100644 index 0000000..97fc45c --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/DashboardService.java @@ -0,0 +1,40 @@ +/* + * Copyright 2019-2020 Zheng Jie + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.nl.system.service.dashboard; + +import org.nl.system.service.dashboard.dto.DailyTaskStats; +import org.nl.system.service.dashboard.dto.TaskSummary; + +import java.util.List; +import java.util.Map; + +/** + * @author zhengxuming + * @date 2025-8-15 14:03:37 + */ +public interface DashboardService { + + /** + * 获取当天任务统计数据 + */ + List getTodayTaskStats(); + + /** + * 获取近7天任务统计数据 + */ + List getSevenDaysTaskStats(); + +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/dto/ApiResponse.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/dto/ApiResponse.java new file mode 100644 index 0000000..648775b --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/dto/ApiResponse.java @@ -0,0 +1,25 @@ +package org.nl.system.service.dashboard.dto; + +import lombok.Data; + +@Data +public class ApiResponse { + private int code; // 状态码:200成功,其他失败 + private String message; // 消息 + private T data; // 数据 + + public static ApiResponse success(T data) { + ApiResponse response = new ApiResponse<>(); + response.setCode(200); + response.setMessage("success"); + response.setData(data); + return response; + } + + public static ApiResponse error(String message) { + ApiResponse response = new ApiResponse<>(); + response.setCode(500); + response.setMessage(message); + return response; + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/dto/DailyTaskStats.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/dto/DailyTaskStats.java new file mode 100644 index 0000000..b111732 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/dto/DailyTaskStats.java @@ -0,0 +1,15 @@ +package org.nl.system.service.dashboard.dto; + +import lombok.Data; + +@Data +public class DailyTaskStats { + private String date; + private long readyCount; + private long busyCount; + private long finishedCount; + private long cancelCount; + private long forcedCompletionCount; + private long errorCount; + private long totalCount; +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/dto/TaskSummary.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/dto/TaskSummary.java new file mode 100644 index 0000000..007b513 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/dto/TaskSummary.java @@ -0,0 +1,10 @@ +package org.nl.system.service.dashboard.dto; + +import lombok.Data; + +@Data +public class TaskSummary { + private String status; // 任务状态 + private long count; // 数量 + private double percentage; // 百分比(用于饼图) +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/impl/DashboardServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/impl/DashboardServiceImpl.java new file mode 100644 index 0000000..91707f0 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dashboard/impl/DashboardServiceImpl.java @@ -0,0 +1,144 @@ +/* + * Copyright 2019-2020 Zheng Jie + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.nl.system.service.dashboard.impl; + +import cn.hutool.core.date.BetweenFormatter; +import cn.hutool.core.date.DateUtil; +import org.nl.acs.task.enums.TaskStatusEnum; +import org.nl.acs.task.service.TaskService; +import org.nl.common.utils.ElAdminConstant; +import org.nl.common.utils.FileUtil; +import org.nl.common.utils.StringUtils; +import org.nl.config.language.LangProcess; +import org.nl.system.service.dashboard.DashboardService; +import org.nl.system.service.dashboard.dto.DailyTaskStats; +import org.nl.system.service.dashboard.dto.TaskSummary; +import org.nl.system.service.monitor.MonitorService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import oshi.SystemInfo; +import oshi.hardware.CentralProcessor; +import oshi.hardware.GlobalMemory; +import oshi.hardware.HardwareAbstractionLayer; +import oshi.hardware.VirtualMemory; +import oshi.software.os.FileSystem; +import oshi.software.os.OSFileStore; +import oshi.software.os.OperatingSystem; +import oshi.util.FormatUtil; +import oshi.util.Util; + +import java.lang.management.ManagementFactory; +import java.text.DecimalFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author Zheng Jie + * @date 2020-05-02 + */ +@Service +public class DashboardServiceImpl implements DashboardService { + + private final DecimalFormat df = new DecimalFormat("0.00"); + + + @Autowired + private TaskService taskService; + + @Override + public List getTodayTaskStats() { + // 获取今天的起始和结束时间 + Date todayStart = DateUtil.beginOfDay(new Date()); + Date todayEnd = DateUtil.endOfDay(new Date()); + + // 按状态分组统计 + List> statusCounts = taskService.countByStatusAndCreateTimeBetween(todayStart, todayEnd); + + // 计算总任务数 + long total = statusCounts.stream() + .mapToLong(item -> Long.parseLong(item.get("count").toString())) + .sum(); + + // 转换为TaskSummary列表 + return statusCounts.stream() + .map(item -> { + TaskSummary summary = new TaskSummary(); + summary.setStatus(TaskStatusEnum.getNameByIndex(item.get("status").toString())); + summary.setCount(Long.parseLong(item.get("count").toString())); + summary.setPercentage(total > 0 ? (summary.getCount() * 100.0) / total : 0); + return summary; + }) + .collect(Collectors.toList()); + } + + @Override + public List getSevenDaysTaskStats() { + List statsList = new ArrayList<>(); + + // 统计过去7天的数据 + for (int i = 6; i >= 0; i--) { + Date date = DateUtil.offsetDay(new Date(),-i); + Date start = DateUtil.beginOfDay(date); + Date end = DateUtil.endOfDay(date); + + DailyTaskStats dailyStats = new DailyTaskStats(); + dailyStats.setDate(DateUtil.formatDate(date)); + + // 按状态统计 + List> statusCounts = taskService.countByStatusAndCreateTimeBetween(start, end); + + // 计算各状态数量 + long ready = 0, busy = 0, finished = 0, cancel = 0, forced_completion = 0, error = 0; + + for (Map item : statusCounts) { + String status = item.get("status").toString(); + long count = Long.parseLong(item.get("count").toString()); + if(TaskStatusEnum.READY.getIndex().equals(status)){ + ready = count; + } + if(TaskStatusEnum.BUSY.getIndex().equals(status)){ + busy = count; + } + if(TaskStatusEnum.FINISHED.getIndex().equals(status)){ + finished = count; + } + if(TaskStatusEnum.CANCEL.getIndex().equals(status)){ + cancel = count; + } + if(TaskStatusEnum.FORCED_COMPLETION.getIndex().equals(status)){ + forced_completion = count; + } + if(TaskStatusEnum.ERROR.getIndex().equals(status)){ + error = count; + } + } + + dailyStats.setReadyCount(ready); + dailyStats.setBusyCount(busy); + dailyStats.setFinishedCount(finished); + dailyStats.setCancelCount(cancel); + dailyStats.setForcedCompletionCount(forced_completion); + dailyStats.setErrorCount(error); + dailyStats.setTotalCount(ready + busy + finished + cancel + forced_completion +error); + + statsList.add(dailyStats); + } + + return statsList; + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/TrajectoryBackgroundService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/TrajectoryBackgroundService.java new file mode 100644 index 0000000..f85a383 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/TrajectoryBackgroundService.java @@ -0,0 +1,50 @@ +package org.nl.system.service.trajectory; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.acs.common.base.CommonService; +import org.nl.common.domain.query.PageQuery; +import org.nl.system.service.trajectory.dto.TrajectoryBackground; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author dsh + * 2025/6/19 + */ +public interface TrajectoryBackgroundService extends CommonService { + + /** + * 分页 + * @param whereJson + * @param page + * @return + */ + IPage queryAll(Map whereJson, PageQuery page); + + /** + * 创建 + * @param entity + */ + void create(TrajectoryBackground entity); + + /** + * 更新 + * @param entity + */ + void update(TrajectoryBackground entity); + + /** + * 删除 + * @param ids + */ + void deleteAll(Set ids); + + /** + * 查询所有已启用的配置设备 + * @return List + */ + List queryAllEnable(); + +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/TrajectoryConfigurationService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/TrajectoryConfigurationService.java new file mode 100644 index 0000000..b4fd9e8 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/TrajectoryConfigurationService.java @@ -0,0 +1,50 @@ +package org.nl.system.service.trajectory; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.acs.common.base.CommonService; +import org.nl.common.domain.query.PageQuery; +import org.nl.system.service.trajectory.dto.TrajectoryConfiguration; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author dsh + * 2025/6/19 + */ +public interface TrajectoryConfigurationService extends CommonService { + + /** + * 分页 + * @param whereJson + * @param page + * @return + */ + IPage queryAll(Map whereJson, PageQuery page); + + /** + * 创建 + * @param entity + */ + void create(TrajectoryConfiguration entity); + + /** + * 更新 + * @param entity + */ + void update(TrajectoryConfiguration entity); + + /** + * 删除 + * @param ids + */ + void deleteAll(Set ids); + + /** + * 查询所有已启用的配置设备 + * @return List + */ + List queryAllEnable(); + +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/TrajectoryService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/TrajectoryService.java new file mode 100644 index 0000000..11764ec --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/TrajectoryService.java @@ -0,0 +1,18 @@ +package org.nl.system.service.trajectory; + +import java.util.Map; + +/** + * @author dsh + * 2025/6/19 + */ +public interface TrajectoryService { + + /** + * 查询设备状态 + * + * @param jsonObject 条件 + * @return Map + */ + Map queryDevice(String jsonObject) throws Exception; +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/dto/TrajectoryBackground.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/dto/TrajectoryBackground.java new file mode 100644 index 0000000..503c3da --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/dto/TrajectoryBackground.java @@ -0,0 +1,103 @@ +package org.nl.system.service.trajectory.dto; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author liejiu + */ +@Data +@TableName("trajectory_background") +public class TrajectoryBackground implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 背景图标识 + */ + @TableId + private String background_uuid; + + /** + * 背景图名称 + */ + private String background_code; + + /** + * 背景图片编码 + */ + private String image_code; + + /** + * 背景图片地址 + */ + private String image_name; + + /** + * 缩放比例(0-1之间 百分比) + */ + private String zoom_ratio; + + /** + * 坐标原点(1左上 2左下 3右上 4右下) + */ + private String coordinate_origin; + + /** + * X坐标最大值 + */ + private String max_x; + + + /** + * Y坐标最大值 + */ + private String max_y; + + /** + * 刷新时间(秒) + */ + private Integer refresh_time; + + + /** + * 是否启用 + */ + private String is_active; + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 创建者 + */ + private String create_id; + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改者 + */ + private String update_id; + private String update_name; + + /** + * 修改时间 + */ + private String update_time; + + /** + * 备注 + */ + private String remark; + +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/dto/TrajectoryConfiguration.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/dto/TrajectoryConfiguration.java new file mode 100644 index 0000000..c9c35e2 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/dto/TrajectoryConfiguration.java @@ -0,0 +1,86 @@ +package org.nl.system.service.trajectory.dto; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author liejiu + */ +@Data +@TableName("trajectory_configuration") +public class TrajectoryConfiguration implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 配置标识 + */ + @TableId + private String configuration_uuid; + + /** + * 配置名称 + */ + private String configuration_code; + + /** + * 图标编码 + */ + private String image_code; + + /** + * 图标名称 + */ + private String image_name; + + /** + * 图标高度 + */ + private String image_height; + + /** + * 图标宽度 + */ + private String image_width; + + /** + * 绑定设备编码 + */ + private String device_code; + + /** + * 是否启用 + */ + private String is_active; + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 创建者 + */ + private String create_id; + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改者 + */ + private String update_id; + private String update_name; + + /** + * 修改时间 + */ + private String update_time; + +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/impl/TrajectoryBackgroundImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/impl/TrajectoryBackgroundImpl.java new file mode 100644 index 0000000..dc49871 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/impl/TrajectoryBackgroundImpl.java @@ -0,0 +1,92 @@ +package org.nl.system.service.trajectory.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.nl.acs.common.base.impl.CommonServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.system.service.trajectory.TrajectoryBackgroundService; +import org.nl.system.service.trajectory.dto.TrajectoryBackground; +import org.nl.system.service.trajectory.mapper.TrajectoryBackgroundMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author dsh + * 2025/6/19 + */ +@Service +public class TrajectoryBackgroundImpl extends CommonServiceImpl implements TrajectoryBackgroundService { + + @Resource + private TrajectoryBackgroundMapper trajectoryBackgroundMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + trajectoryBackgroundMapper.selectPage(pages,lam); + return pages; + } + + @Override + public void create(TrajectoryBackground entity) { + TrajectoryBackground stage = trajectoryBackgroundMapper.selectOne(new LambdaQueryWrapper().eq(TrajectoryBackground::getBackground_code, entity.getBackground_code())); + if (ObjectUtil.isNotEmpty(stage)) { + throw new BadRequestException("背景图名称[" + entity.getBackground_code() + "]已存在"); + } + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + entity.setIs_active("1"); + entity.setIs_delete("0"); + entity.setBackground_uuid(IdUtil.simpleUUID()); + entity.setCreate_id(currentUserId); + entity.setCreate_name(nickName); + entity.setCreate_time(now); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + trajectoryBackgroundMapper.insert(entity); + } + + @Override + public void update(TrajectoryBackground entity) { + TrajectoryBackground trajectoryBackground = trajectoryBackgroundMapper.selectOne(new LambdaQueryWrapper().eq(TrajectoryBackground::getBackground_uuid, entity.getBackground_uuid())); + if (trajectoryBackground == null) { + throw new BadRequestException("未找到这条数据"); + } + + String currentUsername = SecurityUtils.getCurrentNickName(); + String currentUserId = SecurityUtils.getCurrentUserId(); + String now = DateUtil.now(); + entity.setUpdate_time(now); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(currentUsername); + trajectoryBackgroundMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + trajectoryBackgroundMapper.deleteBatchIds(ids); + } + + @Override + public List queryAllEnable() { + return new LambdaQueryChainWrapper<>(trajectoryBackgroundMapper) + .apply("is_delete= '0' AND is_active= '1'") + .orderByAsc(TrajectoryBackground::getBackground_uuid) + .list(); + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/impl/TrajectoryConfigurationImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/impl/TrajectoryConfigurationImpl.java new file mode 100644 index 0000000..d1d7544 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/impl/TrajectoryConfigurationImpl.java @@ -0,0 +1,91 @@ +package org.nl.system.service.trajectory.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.nl.acs.common.base.impl.CommonServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.system.service.trajectory.TrajectoryConfigurationService; +import org.nl.system.service.trajectory.dto.TrajectoryConfiguration; +import org.nl.system.service.trajectory.mapper.TrajectoryConfigurationMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author dsh + * 2025/6/19 + */ +@Service +public class TrajectoryConfigurationImpl extends CommonServiceImpl implements TrajectoryConfigurationService { + + @Resource + private TrajectoryConfigurationMapper trajectoryConfigurationMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + trajectoryConfigurationMapper.selectPage(pages,lam); + return pages; + } + + @Override + public void create(TrajectoryConfiguration entity) { + TrajectoryConfiguration stage = trajectoryConfigurationMapper.selectOne(new LambdaQueryWrapper().eq(TrajectoryConfiguration::getConfiguration_code, entity.getConfiguration_code())); + if (ObjectUtil.isNotEmpty(stage)) { + throw new BadRequestException("轨迹图配置编码[" + entity.getConfiguration_code() + "]已存在"); + } + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + entity.setIs_delete("0"); + entity.setConfiguration_uuid(IdUtil.simpleUUID()); + entity.setCreate_id(currentUserId); + entity.setCreate_name(nickName); + entity.setCreate_time(now); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + trajectoryConfigurationMapper.insert(entity); + } + + @Override + public void update(TrajectoryConfiguration entity) { + TrajectoryConfiguration trajectoryBackground = trajectoryConfigurationMapper.selectOne(new LambdaQueryWrapper().eq(TrajectoryConfiguration::getConfiguration_uuid, entity.getConfiguration_uuid())); + if (trajectoryBackground == null) { + throw new BadRequestException("未找到这条数据"); + } + + String currentUsername = SecurityUtils.getCurrentNickName(); + String currentUserId = SecurityUtils.getCurrentUserId(); + String now = DateUtil.now(); + entity.setUpdate_time(now); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(currentUsername); + trajectoryConfigurationMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + trajectoryConfigurationMapper.deleteBatchIds(ids); + } + + @Override + public List queryAllEnable() { + return new LambdaQueryChainWrapper<>(trajectoryConfigurationMapper) + .apply("is_delete= '0' AND is_active= '1'") + .orderByAsc(TrajectoryConfiguration::getConfiguration_uuid) + .list(); + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/impl/TrajectoryImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/impl/TrajectoryImpl.java new file mode 100644 index 0000000..939b580 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/impl/TrajectoryImpl.java @@ -0,0 +1,81 @@ +package org.nl.system.service.trajectory.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.nl.acs.device.domain.Device; +import org.nl.acs.device_driver.agv.ndcone.AgvNdcOneDeviceDriver; +import org.nl.acs.opc.DeviceAppService; +import org.nl.common.exception.BadRequestException; +import org.nl.system.service.trajectory.TrajectoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import java.util.Map; +import java.util.Random; + +/** + * @author dsh + * 2025/6/19 + */ +@Service +public class TrajectoryImpl implements TrajectoryService { + + @Autowired + DeviceAppService deviceAppService; + + @Override + public Map queryDevice(String jsonObject) throws Exception { + JSONArray backja = new JSONArray(); + JSONArray datas = JSONArray.parseArray(jsonObject); + //agv + AgvNdcOneDeviceDriver agvNdcOneDeviceDriver; + + if (datas.size() == 0) { + throw new BadRequestException("缺少输入参数!"); + } + + // for (int i = 0; i < datas.size(); i++) { + // JSONObject jo = new JSONObject(); + // JSONObject ja = new JSONObject(); + // JSONObject data = datas.getJSONObject(i); + // String device_code = data.getString("device_code"); + // Device device = deviceAppService.findDeviceByCode(device_code); + // if (ObjectUtil.isEmpty(device)) { + // throw new Exception("未找到对应设备:" + device_code); + // } + // if (device.getDeviceDriver() instanceof AgvNdcOneDeviceDriver) { + // agvNdcOneDeviceDriver = (AgvNdcOneDeviceDriver) device.getDeviceDriver(); + // jo.put("device_code", agvNdcOneDeviceDriver.getDevice().getDevice_code()); + // jo.put("x", agvNdcOneDeviceDriver.getX()); + // jo.put("y", agvNdcOneDeviceDriver.getY()); + // jo.put("angle", agvNdcOneDeviceDriver.getAngle()); + // ja.put(agvNdcOneDeviceDriver.getDevice().getDevice_code(),jo); + // } + // backja.add(ja); + // } + // JSONObject resultJson = new JSONObject(); + // resultJson.put("status", HttpStatus.OK.value()); + // resultJson.put("message", "操作成功"); + // resultJson.put("data", backja); + // return resultJson; + JSONObject resultJson = new JSONObject(); + Random rand = new Random(); + for (int i = 0; i < datas.size(); i++) { + JSONObject jo = new JSONObject(); + JSONObject data = datas.getJSONObject(i); + String device_code = data.getString("device_code"); + jo.put("x", rand.nextInt(1001)); + jo.put("y", rand.nextInt(501)); + jo.put("angle", rand.nextInt(361)); + jo.put("device_code", device_code); + backja.add(jo); + } + resultJson.put("status", HttpStatus.OK.value()); + resultJson.put("message", "操作成功"); + resultJson.put("data", backja); + return resultJson; + } + +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/mapper/TrajectoryBackgroundMapper.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/mapper/TrajectoryBackgroundMapper.java new file mode 100644 index 0000000..ffa4725 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/mapper/TrajectoryBackgroundMapper.java @@ -0,0 +1,12 @@ +package org.nl.system.service.trajectory.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.nl.system.service.trajectory.dto.TrajectoryBackground; + +/** + * @author liejiu + */ +@Mapper +public interface TrajectoryBackgroundMapper extends BaseMapper { +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/mapper/TrajectoryConfigurationMapper.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/mapper/TrajectoryConfigurationMapper.java new file mode 100644 index 0000000..7c031a2 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/trajectory/mapper/TrajectoryConfigurationMapper.java @@ -0,0 +1,11 @@ +package org.nl.system.service.trajectory.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.system.service.trajectory.dto.TrajectoryConfiguration; + +/** + * @author liejiu + */ +public interface TrajectoryConfigurationMapper extends BaseMapper { + +} diff --git a/acs2/nladmin-ui/src/api/acs/dashboard/dashboard.js b/acs2/nladmin-ui/src/api/acs/dashboard/dashboard.js new file mode 100644 index 0000000..b25c7b4 --- /dev/null +++ b/acs2/nladmin-ui/src/api/acs/dashboard/dashboard.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +export function getTodayTaskStats(param) { + return request({ + url: '/api/dashboard/today', + method: 'get', + data: param + }) +} + +export function getSevenDaysTaskStats() { + return request({ + url: '/api/dashboard/seven-days', + method: 'get' + }) +} + +export default { getTodayTaskStats, getSevenDaysTaskStats } diff --git a/acs2/nladmin-ui/src/api/trajectory/configuration/trajectory_configuration.js b/acs2/nladmin-ui/src/api/trajectory/configuration/trajectory_configuration.js new file mode 100644 index 0000000..c0d0c66 --- /dev/null +++ b/acs2/nladmin-ui/src/api/trajectory/configuration/trajectory_configuration.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/trajectoryConfiguration', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/trajectoryConfiguration/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/trajectoryConfiguration', + method: 'put', + data + }) +} + +export default { add, edit, del } diff --git a/acs2/nladmin-ui/src/api/trajectory/trajectory_background.js b/acs2/nladmin-ui/src/api/trajectory/trajectory_background.js new file mode 100644 index 0000000..995fe0c --- /dev/null +++ b/acs2/nladmin-ui/src/api/trajectory/trajectory_background.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/trajectoryBackground', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/trajectoryBackground/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/trajectoryBackground', + method: 'put', + data + }) +} + +export default { add, edit, del } diff --git a/acs2/nladmin-ui/src/assets/images/agvBackground.jpg b/acs2/nladmin-ui/src/assets/images/agvBackground.jpg new file mode 100644 index 0000000..8e36b69 Binary files /dev/null and b/acs2/nladmin-ui/src/assets/images/agvBackground.jpg differ diff --git a/acs2/nladmin-ui/src/assets/images/agvCar.png b/acs2/nladmin-ui/src/assets/images/agvCar.png new file mode 100644 index 0000000..851ccef Binary files /dev/null and b/acs2/nladmin-ui/src/assets/images/agvCar.png differ diff --git a/acs2/nladmin-ui/src/router/routers.js b/acs2/nladmin-ui/src/router/routers.js index 4b854c5..a6ef84d 100644 --- a/acs2/nladmin-ui/src/router/routers.js +++ b/acs2/nladmin-ui/src/router/routers.js @@ -40,7 +40,7 @@ export const constantRouterMap = [ children: [ { path: 'dashboard', - component: (resolve) => require(['@/views/monitor/server/index'], resolve), + component: (resolve) => require(['@/views/dashboard/index'], resolve), name: 'Dashboard', meta: { title: i18n.t('auto.common.home'), icon: 'index', affix: true, noCache: true } } diff --git a/acs2/nladmin-ui/src/views/dashboard/index.vue b/acs2/nladmin-ui/src/views/dashboard/index.vue new file mode 100644 index 0000000..e9c3ba6 --- /dev/null +++ b/acs2/nladmin-ui/src/views/dashboard/index.vue @@ -0,0 +1,575 @@ + + + + + diff --git a/acs2/nladmin-ui/src/views/dashboard/showTrack/index.vue b/acs2/nladmin-ui/src/views/dashboard/showTrack/index.vue new file mode 100644 index 0000000..529752a --- /dev/null +++ b/acs2/nladmin-ui/src/views/dashboard/showTrack/index.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/acs2/nladmin-ui/src/views/dashboard/showTrack/track.js b/acs2/nladmin-ui/src/views/dashboard/showTrack/track.js new file mode 100644 index 0000000..50e22b3 --- /dev/null +++ b/acs2/nladmin-ui/src/views/dashboard/showTrack/track.js @@ -0,0 +1,87 @@ +import request from '@/utils/request' + +export function trackEdit(data) { + return request({ + url: 'api/trajectoryBackground/queryAllEnable', + method: 'post', + data + }) +} + +export function carEdit(data) { + return request({ + url: 'api/trajectoryConfiguration/queryAllEnable', + method: 'post', + data + }) +} + +export function queryDevice(data) { + return request({ + url: 'api/trajectory/queryDevice', + method: 'post', + data + }) +} + +// export function trackEdit() { +// const res = { +// code: 200, +// msg: 'ok', +// content: [{ +// background_code: '图片', +// image_code: 'aaa.jpg', +// zoom_ratio: '0.5', +// coordinate_origin: '4', +// max_x: '1000', +// max_y: '1000', +// refresh_time: 10000 +// }] +// } +// return new Promise((resolve, reject) => { +// resolve(res) +// }) +// } + +// export function carEdit() { +// const res = { +// code: 200, +// msg: 'ok', +// content: [{ +// configuration_code: '1号agv', +// image_code: 'aaa.jpg', +// image_width: '20', +// image_height: '20', +// device_code: '1', +// x: 100, +// y: 100, +// angle: 90 +// }, { +// configuration_code: '2号agv', +// image_code: 'aaa.jpg', +// image_width: '20', +// image_height: '20', +// device_code: '2', +// x: 200, +// y: 200, +// angle: 0 +// }] +// } +// return new Promise((resolve, reject) => { +// resolve(res) +// }) +// } + +// export function queryDevice() { +// const res = { +// data: [{ device_code: '1', x: Math.floor(Math.random() * 10) * 100, y: Math.floor(Math.random() * 10) * 100, angle: 90 }, { device_code: '2', x: Math.floor(Math.random() * 10) * 100, y: Math.floor(Math.random() * 10) * 100, angle: 0 }], +// data1: [{ device_code: '1', x: 100, y: 100, angle: 90 }, { device_code: '2', x: 200, y: 200, angle: 0 }], +// status: '200', +// message: '操作成功' +// } +// return new Promise((resolve, reject) => { +// resolve(res) +// }) +// } + +export default { trackEdit, carEdit, queryDevice } diff --git a/acs2/nladmin-ui/src/views/system/trajectory/configuration/index.vue b/acs2/nladmin-ui/src/views/system/trajectory/configuration/index.vue new file mode 100644 index 0000000..35d5cfb --- /dev/null +++ b/acs2/nladmin-ui/src/views/system/trajectory/configuration/index.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/acs2/nladmin-ui/src/views/system/trajectory/index.vue b/acs2/nladmin-ui/src/views/system/trajectory/index.vue new file mode 100644 index 0000000..e843b15 --- /dev/null +++ b/acs2/nladmin-ui/src/views/system/trajectory/index.vue @@ -0,0 +1,270 @@ + + + + +