From 0cf3d212d1bd71aa49328f46e5173018d07ee968 Mon Sep 17 00:00:00 2001 From: tuqiang <437016993@qq.com> Date: Thu, 23 Apr 2026 17:54:50 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E7=8E=B0=E5=9C=BA=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../acs/device/service/TaskConfigService.java | 10 ++- .../service/impl/TaskConfigServiceImpl.java | 11 ++++ .../StandardInspectSiteDeviceDriver.java | 1 - .../StandardOrdinarySiteDeviceDriver.java | 1 - .../acs/ext/wms/service/NDCToAcsService.java | 10 +++ .../wms/service/impl/NDCToAcsServiceImpl.java | 59 +++++++++++++++++ .../org/nl/acs/task/rest/TaskController.java | 5 +- .../org/nl/acs/task/service/TaskService.java | 6 +- .../nl/acs/task/service/dto/TaskQuery.java | 16 +++++ .../task/service/impl/TaskServiceImpl.java | 65 +++++++++++++++++-- .../java/org/nl/hand/rest/PadController.java | 26 ++++++-- .../nl/hand/service/impl/PadServiceImpl.java | 26 +++++--- .../controller/AgvLayoutMapController.java | 46 +++++++------ acs/nladmin-ui/.env.production | 4 +- acs/nladmin-ui/public/config.js | 2 +- .../views/acs/history/instRecord/index.vue | 1 + .../views/acs/history/taskRecord/index.vue | 55 +++++++++++++++- .../acs/history/taskTreeRecord/index.vue | 1 + .../src/views/acs/instruction/index.vue | 1 + acs/nladmin-ui/src/views/acs/task/index.vue | 1 + 20 files changed, 295 insertions(+), 52 deletions(-) create mode 100644 acs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskQuery.java diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device/service/TaskConfigService.java b/acs/nladmin-system/src/main/java/org/nl/acs/device/service/TaskConfigService.java index 9ee0c98..07229ca 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device/service/TaskConfigService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device/service/TaskConfigService.java @@ -29,10 +29,18 @@ public interface TaskConfigService { * 根据ID查询 * * @param task_config_id ID - * @return Address + * @return TaskConfigDto */ TaskConfigDto findById(String task_config_id); + /** + * 根据ID查询 + * + * @param startCode + * @return TaskConfigDto + */ + TaskConfigDto findByStartCode(String startCode); + /** diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/TaskConfigServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/TaskConfigServiceImpl.java index 9a4b4ad..c30d3a3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/TaskConfigServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/TaskConfigServiceImpl.java @@ -54,6 +54,17 @@ public class TaskConfigServiceImpl implements TaskConfigService { return obj; } + @Override + public TaskConfigDto findByStartCode(String startCode) { + WQLObject wo = WQLObject.getWQLObject("task_config"); + JSONObject json = wo.query("point_code1 ='" + startCode + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(json)) { + return null; + } + final TaskConfigDto obj = json.toJavaObject(TaskConfigDto.class); + return obj; + } + @Override public void create(TaskConfigDto dto) { diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java index 3be114a..f8d541d 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java @@ -156,7 +156,6 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp public void execute() { try { - Thread.sleep(2000); this.devicecode = this.getDevice().getDevice_code(); if (this.reqTakeRequireSuccess && ObjectUtil.isNotEmpty(this.reqTakeInstCode)) { Instruction instruction = instructionService.findByCodeFromCache(this.reqTakeInstCode); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java index f7014c7..e4002e3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java @@ -140,7 +140,6 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple @Override public void execute() { try { - Thread.sleep(2000); this.devicecode = this.getDevice().getDevice_code(); if (this.reqTakeRequireSuccess && ObjectUtil.isNotEmpty(this.reqTakeInstCode)) { Instruction instruction = instructionService.findByCodeFromCache(this.reqTakeInstCode); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/NDCToAcsService.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/NDCToAcsService.java index 7387c7f..b9653a3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/NDCToAcsService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/NDCToAcsService.java @@ -1,6 +1,9 @@ package org.nl.acs.ext.wms.service; import com.alibaba.fastjson.JSONObject; +import org.nl.modules.layout.mapLayout.dto.AgvStatus; + +import java.util.Map; public interface NDCToAcsService { @@ -10,4 +13,11 @@ public interface NDCToAcsService { * @return */ JSONObject agvCallback(JSONObject requestParam) throws Exception; + + /** + * 查询所有AGV + * + * @return + */ + Map findAllAgvFromCache(); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/NDCToAcsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/NDCToAcsServiceImpl.java index 5bd924b..c88edd8 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/NDCToAcsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/NDCToAcsServiceImpl.java @@ -19,9 +19,14 @@ import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; +import org.nl.modules.layout.mapLayout.dto.AgvStatus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.HashMap; +import java.util.Map; +import java.util.Random; + @Service @RequiredArgsConstructor @Slf4j @@ -34,6 +39,8 @@ public class NDCToAcsServiceImpl implements NDCToAcsService { @Autowired private DeviceAppService deviceAppService; + Map AGVDeviceStatus = new HashMap(); + @Override public JSONObject agvCallback(JSONObject requestParam) throws Exception{ JSONObject resp = new JSONObject(); @@ -99,10 +106,30 @@ public class NDCToAcsServiceImpl implements NDCToAcsService { case RELEASE_COMPLETE: if (TaskPhaseEnum.PICKUP_REQUEST_OR_RESPONSE.getValue().equals(taskPhase) || TaskPhaseEnum.PICKUP_COMPLETE.getValue().equals(taskPhase)){ device = deviceAppService.findDeviceByCode(instruction.getStart_point_code()); + AgvStatus agvStatus = AgvStatus.builder() + .carId(instruction.getCarno()) + .action(TaskPhaseEnum.PICKUP_REQUEST_OR_RESPONSE.getValue().equals(taskPhase)?"AGV请求取货上报" : "AGV取货完成上报") + .actionInfo(TaskPhaseEnum.PICKUP_REQUEST_OR_RESPONSE.getValue().equals(taskPhase)?"AGV请求取货上报" : "AGV取货完成上报").build(); + if (AGVDeviceStatus.containsKey(instruction.getCarno())){ + AGVDeviceStatus.remove(instruction.getCarno()); + AGVDeviceStatus.put(instruction.getCarno(),agvStatus); + }else { + AGVDeviceStatus.put(instruction.getCarno(),agvStatus); + } } //taskPhase 请求放货上报,放货完成上报 if (TaskPhaseEnum.RELEASE_REQUEST_OR_RESPONSE.getValue().equals(taskPhase)||TaskPhaseEnum.RELEASE_COMPLETE.getValue().equals(taskPhase)){ device = deviceAppService.findDeviceByCode(instruction.getNext_point_code()); + AgvStatus agvStatus = AgvStatus.builder() + .carId(instruction.getCarno()) + .action(TaskPhaseEnum.RELEASE_REQUEST_OR_RESPONSE.getValue().equals(taskPhase)?"AGV请求放货上报":"AGV放货完成上报") + .actionInfo(TaskPhaseEnum.RELEASE_REQUEST_OR_RESPONSE.getValue().equals(taskPhase)?"AGV请求放货上报":"AGV放货完成上报").build(); + if (AGVDeviceStatus.containsKey(instruction.getCarno())){ + AGVDeviceStatus.remove(instruction.getCarno()); + AGVDeviceStatus.put(instruction.getCarno(),agvStatus); + }else { + AGVDeviceStatus.put(instruction.getCarno(),agvStatus); + } } if (device == null){ resp.put("code", "400"); @@ -183,6 +210,17 @@ public class NDCToAcsServiceImpl implements NDCToAcsService { else if (MsgTypeEnum.AGV_POWER_RPT.getValue().equals(type)){ int agvId = params.getIntValue("agvId"); int stateValue = params.getIntValue("stateValue"); + AgvStatus agvStatus = AgvStatus.builder() + .carId(String.valueOf(agvId)) + .action("AGV电量上报") + .actionInfo("AGV电量上报") + .power(stateValue).build(); + if (AGVDeviceStatus.containsKey(String.valueOf(agvId))){ + AGVDeviceStatus.remove(String.valueOf(agvId)); + AGVDeviceStatus.put(String.valueOf(agvId),agvStatus); + }else { + AGVDeviceStatus.put(String.valueOf(agvId),agvStatus); + } resp.put("code", "200"); resp.put("message", "更新指令执行中成功"); log.info("---响应kit请求---"+resp.toString()); @@ -195,6 +233,22 @@ public class NDCToAcsServiceImpl implements NDCToAcsService { int yLocation = params.getIntValue("yLocation"); int angle = params.getIntValue("angle"); int speed = params.getIntValue("speed"); + AgvStatus agvStatus = AgvStatus.builder() + .status(String.valueOf(stateValue)) + .carId(String.valueOf(agvId)) + .action("AGV状态上报") + .actionInfo("AGV状态上报") + .icon("/Users/mima0000/Desktop/car.png") + .fileId("3029") + .x(new Random().nextInt(1189) + 100) + .y(new Random().nextInt(1189) + 100) + .angle(new Random().nextInt(160) + 10).build(); + if (AGVDeviceStatus.containsKey(String.valueOf(agvId))){ + AGVDeviceStatus.remove(String.valueOf(agvId)); + AGVDeviceStatus.put(String.valueOf(agvId),agvStatus); + }else { + AGVDeviceStatus.put(String.valueOf(agvId),agvStatus); + } resp.put("code", "200"); resp.put("message", "更新指令执行中成功"); log.info("---响应kit请求---"+resp.toString()); @@ -213,4 +267,9 @@ public class NDCToAcsServiceImpl implements NDCToAcsService { log.info("---响应kit请求---"+resp.toString()); return resp; } + + @Override + public Map findAllAgvFromCache() { + return AGVDeviceStatus; + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java index 9b37cfc..47ab431 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java @@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.acs.task.service.dto.TaskQuery; import org.nl.modules.logging.annotation.Log; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; @@ -135,8 +136,8 @@ public class TaskController { @ApiOperation("导出任务") @GetMapping(value = "/download") //@PreAuthorize("@el.check('task:list')") - public void download(HttpServletResponse response, Map whereJson) throws IOException { - taskService.download(taskService.queryAll(whereJson), response); + public void download(HttpServletResponse response, TaskQuery query) throws IOException { + taskService.download1(query, response); } @Log("一体机触发任务") diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java index 2921ce2..556fb4a 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java @@ -5,6 +5,7 @@ package org.nl.acs.task.service; import com.alibaba.fastjson.JSONObject; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.acs.task.service.dto.TaskQuery; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; @@ -26,7 +27,7 @@ public interface TaskService { * @param page 分页参数 * @return Map */ - Map queryAll(Map whereJson, Pageable page); + Map queryAll(Map whereJson,Pageable page); /** * 在缓存中查询所有任务列表 @@ -66,7 +67,7 @@ public interface TaskService { * @param whereJson 条件参数 * @return List */ - List queryAll(Map whereJson); + List queryAll(TaskQuery query); /** * 根据ID查询 @@ -349,4 +350,5 @@ public interface TaskService { List queryAllByCache(); + void download1(TaskQuery query, HttpServletResponse response) throws IOException; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskQuery.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskQuery.java new file mode 100644 index 0000000..3eb3872 --- /dev/null +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskQuery.java @@ -0,0 +1,16 @@ +package org.nl.acs.task.service.dto; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class TaskQuery implements Serializable { + private String task_code; + private String vehicle_code; + private String material_type; + private String status; + private String point_code; + private String createTime; + private String end_time; +} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 239efc4..6884591 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.acs.task.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; @@ -35,6 +36,7 @@ import org.nl.acs.task.TaskInstructionLock; import org.nl.acs.task.service.TaskFeedbackService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.acs.task.service.dto.TaskQuery; import org.nl.common.utils.MapOf; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; @@ -281,10 +283,41 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } @Override - public List queryAll(Map whereJson) { - WQLObject wo = WQLObject.getWQLObject("acs_task"); - JSONArray arr = wo.query().getResultJSONArray(0); - List list = arr.toJavaList(TaskDto.class); + public List queryAll(TaskQuery query) { + HashMap map = new HashMap<>(); + map.put("flag", "2"); + String task_code = query.getTask_code(); + String vehicle_code = query.getVehicle_code(); + String material_type = query.getMaterial_type(); + String status = query.getStatus(); + String point_code = query.getPoint_code(); + String create_time = query.getCreateTime(); + String end_time = query.getEnd_time(); + if (!StrUtil.isEmpty(task_code)) { + map.put("task_code", task_code); + } + if (!StrUtil.isEmpty(vehicle_code)) { + map.put("vehicle_code", vehicle_code); + } + if (!StrUtil.isEmpty(material_type)) { + map.put("material_type", material_type); + } + if (!StrUtil.isEmpty(status)) { + map.put("status", status); + } + if (!StrUtil.isEmpty(point_code)) { + map.put("point_code", point_code); + } + if (!StrUtil.isEmpty(create_time) && !StrUtil.isEmpty(end_time)) { + map.put("create_time", create_time); + map.put("end_time", end_time); + } + JSONObject jsonObject1 = + WQL.getWO("QTASK_QUERY") + .addParamMap(map) + .pageQuery(0,1000, "create_time desc"); + JSONArray array = jsonObject1.getJSONArray("content"); + List list = array.toJavaList(TaskDto.class); return list; } @@ -1693,4 +1726,28 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { public List queryAllByCache() { return this.tasks; } + + @Override + public void download1(TaskQuery query, HttpServletResponse response) throws IOException { + List taskDtos = taskService.queryAll(query); + if (CollUtil.isEmpty(taskDtos)){ + throw new RuntimeException("没有数据!"); + } + List> list = new ArrayList<>(); + for (int i = 0; i < taskDtos.size(); i++) { + TaskDto taskDto = taskDtos.get(i); + Device startDevice = deviceAppService.findDeviceByCode(taskDto.getStart_device_code()); + Device nextDevice = deviceAppService.findDeviceByCode(taskDto.getNext_device_code()); + Map mp = new LinkedHashMap<>(); + mp.put("任务编号", taskDto.getTask_code()); + mp.put("起点编码", taskDto.getStart_device_code()); + mp.put("起点名称", startDevice.getDevice_name()); + mp.put("终点编码", taskDto.getNext_device_code()); + mp.put("终点名称", nextDevice.getDevice_name()); + mp.put("创建时间", taskDto.getCreate_time()); + mp.put("完成时间", taskDto.getUpdate_time()); + list.add(mp); + } + FileUtil.downloadExcel(list, response); + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/hand/rest/PadController.java b/acs/nladmin-system/src/main/java/org/nl/hand/rest/PadController.java index 07f119d..65af370 100644 --- a/acs/nladmin-system/src/main/java/org/nl/hand/rest/PadController.java +++ b/acs/nladmin-system/src/main/java/org/nl/hand/rest/PadController.java @@ -1,11 +1,14 @@ package org.nl.hand.rest; import cn.dev33.satoken.annotation.SaIgnore; +import cn.hutool.core.util.ObjectUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.nl.acs.device.service.TaskConfigService; +import org.nl.acs.device.service.dto.TaskConfigDto; import org.nl.common.utils.MapOf; import org.nl.common.utils.TableDataInfo; import org.nl.hand.service.PadService; @@ -27,6 +30,7 @@ import java.util.Map; public class PadController { private final PadService padService; + private final TaskConfigService taskConfigService; @PostMapping("/list") @Log("任务列表") @@ -86,15 +90,27 @@ public class PadController { @PostMapping("/slj") @Log("三联件配送") public ResponseEntity sendSLJ(@RequestBody TaskPad taskPad) { - HashMap mapping = MapOf.of("E504020-04", "E504021-04", "E504021-04", "E504020-04", - "E504020-02", "E504022-04", "E504020-02", "E504022-04"); String point = taskPad.getPoint(); - String endPoint = mapping.get(point); - if (StringUtils.isEmpty(endPoint)){ + TaskConfigDto taskConfigDto = taskConfigService.findByStartCode(point); + if (ObjectUtil.isEmpty(taskConfigDto)){ throw new BadRequestException(point+"当前点位没有对应映射点"); } taskPad.setStart(point); - taskPad.setEnd(endPoint); + taskPad.setEnd(taskConfigDto.getPoint_code2()); + padService.callTask(taskPad); + return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK); + } + + @PostMapping("/ycxb") + @Log("油车线边配送") + public ResponseEntity sendYCXB(@RequestBody TaskPad taskPad) { + String point = taskPad.getPoint(); + TaskConfigDto taskConfigDto = taskConfigService.findByStartCode(point); + if (ObjectUtil.isEmpty(taskConfigDto)){ + throw new BadRequestException(point+"当前点位没有对应映射点"); + } + taskPad.setStart(point); + taskPad.setEnd(taskConfigDto.getPoint_code2()); padService.callTask(taskPad); return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK); } diff --git a/acs/nladmin-system/src/main/java/org/nl/hand/service/impl/PadServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/hand/service/impl/PadServiceImpl.java index 2470320..f016f45 100644 --- a/acs/nladmin-system/src/main/java/org/nl/hand/service/impl/PadServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/hand/service/impl/PadServiceImpl.java @@ -199,30 +199,36 @@ public class PadServiceImpl implements PadService { @Override public void signalInteract(TaskPad pad) { - String 安全交互位 = pad.getPoint(); - String 载具号 = pad.getVehicle_code(); - String 交互类型 = pad.getType(); - Device device = deviceAppService.findDeviceByCode(安全交互位); + String point = pad.getPoint(); + String vehicle_code = pad.getVehicle_code(); + String type = pad.getType(); + Device device = deviceAppService.findDeviceByCode(point); if (device ==null){ - throw new BadRequestException("当前安全交互位未配置驱动信息"+安全交互位); + throw new BadRequestException("当前安全交互位未配置驱动信息"+point); } Object url = device.getExtraValue().get("address"); if (url == null) { - throw new BadRequestException("当前安全交互位未配置交互地址"+安全交互位); + throw new BadRequestException("当前安全交互位未配置交互地址"+point); } - HashMap of = MapOf.of("point", 安全交互位 - , "type", 交互类型 - , "containerCode", 载具号 + HashMap of = MapOf.of("point", point + , "type", type + , "containerCode", vehicle_code , "url", url); //1.请求取货2取货完成3请求放货4放货完成 HttpResponse result = null; - switch (交互类型){ + switch (type){ case "1": case "3": + if (type.equals("3")){ + of.put("type", "2"); + } result = acsToHJXService.actionRequest(new JSONObject(of)); break; case "2": case "4": + if (type.equals("2")){ + of.put("type", "3"); + } result = acsToHJXService.actionFinish(new JSONObject(of)); break; default: diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/layout/mapLayout/controller/AgvLayoutMapController.java b/acs/nladmin-system/src/main/java/org/nl/modules/layout/mapLayout/controller/AgvLayoutMapController.java index c0c87cd..91ffa1b 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/layout/mapLayout/controller/AgvLayoutMapController.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/layout/mapLayout/controller/AgvLayoutMapController.java @@ -3,6 +3,7 @@ package org.nl.modules.layout.mapLayout.controller; import cn.dev33.satoken.annotation.SaIgnore; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.commons.lang3.StringUtils; +import org.nl.acs.ext.wms.service.NDCToAcsService; import org.nl.common.utils.query.PageQuery; import org.nl.modules.layout.mapLayout.dao.AgvLayoutMapQuery; import org.nl.modules.layout.mapLayout.dto.AgvLayoutMapDto; @@ -15,10 +16,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Random; +import java.util.*; /** * 地图布局Controller @@ -30,6 +28,8 @@ public class AgvLayoutMapController { @Autowired private AgvLayoutMapService agvLayoutMapService; + @Autowired + private NDCToAcsService ndcToAcsService; /** * 分页查询 @@ -81,27 +81,33 @@ public class AgvLayoutMapController { @SaIgnore public ResponseEntity initLayout(Long id) { AgvLayoutMapDto agvLayoutMapDto = agvLayoutMapService.initLayoutMap(id); - return new ResponseEntity<>(agvLayoutMapDto,HttpStatus.OK); + return new ResponseEntity<>(agvLayoutMapDto, HttpStatus.OK); } + @GetMapping("status") @SaIgnore public ResponseEntity status(String carId) { + Map map = ndcToAcsService.findAllAgvFromCache(); +// Map map = new HashMap<>(); List list = new ArrayList<>(); - for (int i = 0; i < 4; i++) { - AgvStatus build = AgvStatus.builder() - .status("2") - .carId(String.valueOf(i + 1)) - .action("请求取货") - .actionInfo("申请取货中") - .taskCode("33876") - .icon("/Users/mima0000/Desktop/car.png") - .fileId("3029") - .x(new Random().nextInt(1189) + 100) - .y(new Random().nextInt(1189) + 100) - .power(66) - .angle(new Random().nextInt(160) + 10).build(); - list.add(build); + for (AgvStatus status : map.values()) { + list.add(status); } - return new ResponseEntity<>(list,HttpStatus.OK); +// for (int i = 0; i < 4; i++) { +// AgvStatus build = AgvStatus.builder() +// .status("2") +// .carId(String.valueOf(i + 1)) +// .action("请求取货") +// .actionInfo("申请取货中") +// .taskCode("33876") +// .icon("/Users/mima0000/Desktop/car.png") +// .fileId("3029") +// .x(new Random().nextInt(1189) + 100) +// .y(new Random().nextInt(1189) + 100) +// .power(66) +// .angle(new Random().nextInt(160) + 10).build(); +// list.add(build); +// } + return new ResponseEntity<>(list, HttpStatus.OK); } } diff --git a/acs/nladmin-ui/.env.production b/acs/nladmin-ui/.env.production index 63486fd..69019ce 100644 --- a/acs/nladmin-ui/.env.production +++ b/acs/nladmin-ui/.env.production @@ -2,6 +2,6 @@ ENV = 'production' # 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置 # 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http -VUE_APP_BASE_API = 'http:// 10.4.46.150:8011' +VUE_APP_BASE_API = 'http:// 172.30.15.231:8011' # 如果接口是 http 形式, wss 需要改为 ws -VUE_APP_WS_API = 'ws:// 10.4.46.150:8011' +VUE_APP_WS_API = 'ws:// 172.30.15.231:8011' diff --git a/acs/nladmin-ui/public/config.js b/acs/nladmin-ui/public/config.js index cd226c1..cde4865 100644 --- a/acs/nladmin-ui/public/config.js +++ b/acs/nladmin-ui/public/config.js @@ -3,7 +3,7 @@ window.g = { VUE_APP_BASE_API: 'http://127.0.0.1:8011' }, prod: { - VUE_APP_BASE_API: 'http://10.4.46.150:8011' + VUE_APP_BASE_API: 'http://172.30.15.231:8011' } diff --git a/acs/nladmin-ui/src/views/acs/history/instRecord/index.vue b/acs/nladmin-ui/src/views/acs/history/instRecord/index.vue index e5cf3a9..6dc3782 100644 --- a/acs/nladmin-ui/src/views/acs/history/instRecord/index.vue +++ b/acs/nladmin-ui/src/views/acs/history/instRecord/index.vue @@ -104,6 +104,7 @@ 就绪 执行中 完成 + 取消 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 5f3a42f..09b1f68 100644 --- a/acs/nladmin-ui/src/views/acs/history/taskRecord/index.vue +++ b/acs/nladmin-ui/src/views/acs/history/taskRecord/index.vue @@ -66,10 +66,31 @@ class="filter-item" @keyup.enter.native="crud.toQuery" /> - + + - + + + 导出 + + 就绪 执行中 完成 + 取消 @@ -259,10 +281,13 @@ import Search from '@/views/monitor/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' import { getDicts } from '@/api/system/dict' +import { download } from '@/api/data' +import { downloadFile } from '@/utils' const defaultForm = { task_id: null, @@ -286,7 +311,7 @@ const defaultForm = { } export default { name: 'Task', - components: { pagination, crudOperation, Search }, + components: { pagination, crudOperation, rrOperation, Search }, dicts: ['task_status'], mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { @@ -356,6 +381,7 @@ export default { toZList: [], start_flag: false, end_flag: false, + showDtlLoading: false, permission: { add: ['admin', 'task:add'], edit: ['admin', 'task:edit'], @@ -538,6 +564,29 @@ export default { this.form.to_y = '' this.form.to_z = '' } + }, + downdtl() { + if (this.currentRow !== null) { + crud.downloadLoading = true + const data = { + 'task_code': this.crud.query.task_code, + 'vehicle_code': this.crud.query.vehicle_code, + 'material_type': this.crud.query.material_type, + 'status': this.crud.query.status, + 'point_code': this.crud.query.point_code, + 'createTime': this.crud.query.createTime[0], + 'end_time': this.crud.query.createTime[1] + } + this.showDtlLoading = true + download('/api/task/download', data).then(result => { + downloadFile(result, '任务详情', 'xlsx') + crud.downloadLoading = false + this.showDtlLoading = false + }).catch(() => { + crud.downloadLoading = false + this.showDtlLoading = false + }) + } } } } diff --git a/acs/nladmin-ui/src/views/acs/history/taskTreeRecord/index.vue b/acs/nladmin-ui/src/views/acs/history/taskTreeRecord/index.vue index ac8fd51..bd69360 100644 --- a/acs/nladmin-ui/src/views/acs/history/taskTreeRecord/index.vue +++ b/acs/nladmin-ui/src/views/acs/history/taskTreeRecord/index.vue @@ -94,6 +94,7 @@ 就绪 执行中 完成 + 取消 diff --git a/acs/nladmin-ui/src/views/acs/instruction/index.vue b/acs/nladmin-ui/src/views/acs/instruction/index.vue index 215bc6c..ecc004c 100644 --- a/acs/nladmin-ui/src/views/acs/instruction/index.vue +++ b/acs/nladmin-ui/src/views/acs/instruction/index.vue @@ -134,6 +134,7 @@ 就绪 执行中 完成 + 取消 diff --git a/acs/nladmin-ui/src/views/acs/task/index.vue b/acs/nladmin-ui/src/views/acs/task/index.vue index 8302850..2407127 100644 --- a/acs/nladmin-ui/src/views/acs/task/index.vue +++ b/acs/nladmin-ui/src/views/acs/task/index.vue @@ -338,6 +338,7 @@ 就绪 执行中 完成 + 取消