diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvService.java b/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvService.java index 5d789c8..2ef4647 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvService.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvService.java @@ -182,4 +182,7 @@ public interface AgvService { String queryDeviceStation(); + + HttpResponse chargingQuest(JSONObject json); + } diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java b/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java index e60864a..dba7526 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.sf.json.JSONArray; @@ -41,6 +42,7 @@ import org.nl.acs.opc.DeviceType; import org.nl.acs.task.service.TaskService; import org.nl.exception.BadRequestException; import org.nl.logger.BusinessLogger; +import org.nl.modules.system.util.CodeUtil; import org.nl.start.auto.run.NDCSocketConnectionAutoRun; import org.nl.utils.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -354,6 +356,7 @@ public class AgvServiceImpl implements AgvService { JSONArray prija = new JSONArray(); prija.add(prijo); orderjo.put("properties", prija); + } } @@ -1754,6 +1757,56 @@ public class AgvServiceImpl implements AgvService { return jo.toString(); } + @Override + public HttpResponse chargingQuest(JSONObject json) { + log.info("agvCode参数:{}", json); + String inst_no = CodeUtil.getNewCode("INSTRUCT_NO"); + if (ObjectUtil.isEmpty(json)){ + throw new BadRequestException("agv编码为空!"); + } + String agv_code = json.getString("agv_code"); + JSONArray ja = new JSONArray(); + JSONObject orderjo = new JSONObject(); + //指定agv车号 + if (StrUtil.equals(agv_code,"1")){ + orderjo.put("intendedVehicle", "HS 1#AGV"); + }else if (StrUtil.equals(agv_code,"2")){ + orderjo.put("intendedVehicle", "HS 2#AGV"); + } + JSONObject jo = new JSONObject(); + //指定agv充电位置 + jo.put("locationName", "Charge-100"); + //指定agv操作码 + jo.put("operation", "CHARGE"); + ja.add(jo); + orderjo.put("destinations",ja); + System.out.println("orderjo的值:"+orderjo); + log.info("下发agv指令参数:{}", orderjo.toString()); + HttpResponse result = null; + if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.FORKAGV).toString(), "1")) { + String agvurl = acsConfigService.findConfigFromCache().get(AcsConfig.AGVURL); + String agvport = acsConfigService.findConfigFromCache().get(AcsConfig.AGVPORT); + + agvurl = agvurl + ":" + agvport + "/v1/transportOrders/" + inst_no; + + log.info("下发agv指令参数:{}", orderjo.toString()); + + try { + result = HttpRequest.post(agvurl) + .body(String.valueOf(orderjo))//表单内容 + .timeout(20000)//超时,毫秒 + .execute(); + System.out.println(result); + log.info("chargingQuest----返回参数{}", result); + } catch (Exception e) { + throw new RuntimeException("下发agv失败!"); + } + } else { + throw new RuntimeException("系统参数未配置!"); + } + return result; + } + @Override public JSONObject createOrederData(Instruction inst, String inst_type) { String inst_code = inst.getInstruction_code(); @@ -1964,6 +2017,7 @@ public class AgvServiceImpl implements AgvService { } } + @Override public HttpResponse resume() throws Exception { diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java b/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java index 9b83a18..32cf07d 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.sf.json.JSONObject; +import org.nl.acs.agv.server.AgvService; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; @@ -34,6 +35,7 @@ public class TaskController { private final TaskService taskService; private final AcsToWmsService acsToWmsService; + private final AgvService agvService; @GetMapping @Log("查询任务") @@ -171,7 +173,7 @@ public class TaskController { @ApiOperation("请求充电任务") @PostMapping("/chargingTask") //@PreAuthorize("@el.check('task:add')") - public ResponseEntity chargingQuest(@RequestBody String agv_code) { - return new ResponseEntity<>(taskService.chargingQuest(agv_code), HttpStatus.OK); + public ResponseEntity chargingQuest(@RequestBody JSONObject json) { + return new ResponseEntity<>(agvService.chargingQuest(json), HttpStatus.OK); } } diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 3e8e775..c46daf1 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -1630,19 +1630,26 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { @Override public HttpResponse chargingQuest(String agvCode) { + log.info("agvCode参数:{}", agvCode); String inst_no = CodeUtil.getNewCode("INSTRUCT_NO"); if (StrUtil.isEmpty(agvCode)){ throw new BadRequestException("agv编码为空!"); } + com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(agvCode); + String code = jsonObject.getString("agv_code"); JSONArray ja = new JSONArray(); JSONObject orderjo = new JSONObject(); //指定agv车号 - orderjo.put("intendedVehicle", agvCode); + if (StrUtil.equals(code,"1")){ + orderjo.put("intendedVehicle", "HS 1#AGV"); + }else if (StrUtil.equals(code,"2")){ + orderjo.put("intendedVehicle", "HS 2#AGV"); + } JSONObject jo = new JSONObject(); //指定agv充电位置 - jo.put("locationName", "100"); + jo.put("locationName", "Charge-100"); //指定agv操作码 - jo.put("operation", "Charge"); + jo.put("operation", "CHARGE"); ja.add(jo); orderjo.put("destinations",ja); HttpResponse result = null; diff --git a/hd/nladmin-system/src/main/resources/logback-spring.xml b/hd/nladmin-system/src/main/resources/logback-spring.xml index 1478b94..da0be53 100644 --- a/hd/nladmin-system/src/main/resources/logback-spring.xml +++ b/hd/nladmin-system/src/main/resources/logback-spring.xml @@ -67,10 +67,32 @@ https://juejin.cn/post/6844903775631572999 - + + + - + + + + + + + + + + + + + + + + + + + + +