diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java index 73860fa..d433d6b 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java @@ -22,6 +22,7 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.opc.DeviceType; import org.nl.exception.BadRequestException; +import org.nl.start.auto.run.NDCSocketConnectionAutoRun; import org.nl.utils.SpringContextHolder; import org.slf4j.MDC; import org.springframework.stereotype.Service; @@ -181,7 +182,7 @@ public class NDCAgvServiceImpl implements NDCAgvService { }; log.info("下发AGV作业指令--{}", str1); -// NDCSocketConnectionAutoRun.write(b); + NDCSocketConnectionAutoRun.write(b); System.out.println("下发agv指令数据:" + Bytes2HexString(b)); } } finally { @@ -240,63 +241,8 @@ public class NDCAgvServiceImpl implements NDCAgvService { byte indexlow = (byte) IntToHexLow(index); byte phasehigh = (byte) IntToHexHigh(phase); byte phaselow = (byte) IntToHexLow(phase); - byte resulthigh = (byte) IntToHexHigh(result); - byte resultlow = (byte) IntToHexLow(result); - int type = Integer.parseInt(acsConfigService.findConfigFromCache().get(AcsConfig.BUSINESSTYPE)); - byte[] b = new byte[]{}; - switch (type) { - case 0: - b = new byte[]{(byte) 0X87, (byte) 0XCD, - (byte) 0X00, (byte) 0X08, - (byte) 0X00, (byte) 0X0A, - (byte) 0X00, (byte) 0X01, - (byte) 0X00, (byte) 0X6D, - (byte) 0X00, (byte) 0X06, - (byte) indexhigh, (byte) indexlow, - (byte) 0X01, (byte) 0X12, - (byte) phasehigh, (byte) phaselow - }; - break; - case 1: - b = new byte[]{(byte) 0X87, (byte) 0XCD, - (byte) 0X00, (byte) 0X08, - (byte) 0X00, (byte) 0X0D, - (byte) 0X00, (byte) 0X01, - (byte) 0X00, (byte) 0X6D, - (byte) 0X00, (byte) 0X08, - (byte) indexhigh, (byte) indexlow, - (byte) 0X01, (byte) 0X12, - (byte) phasehigh, (byte) phaselow, - (byte) resulthigh, (byte) resultlow - }; - break; - case 2: - b = new byte[]{(byte) 0X87, (byte) 0XCD, - (byte) 0X00, (byte) 0X08, - (byte) 0X00, (byte) 0X0A, - (byte) 0X00, (byte) 0X01, - (byte) 0X00, (byte) 0X6D, - (byte) 0X00, (byte) 0X06, - (byte) indexhigh, (byte) indexlow, - (byte) 0X01, (byte) 0X12, - (byte) phasehigh, (byte) phaselow - }; - break; - case 5: - b = new byte[]{(byte) 0X87, (byte) 0XCD, - (byte) 0X00, (byte) 0X08, - (byte) 0X00, (byte) 0X0A, - (byte) 0X00, (byte) 0X01, - (byte) 0X00, (byte) 0X6D, - (byte) 0X00, (byte) 0X06, - (byte) indexhigh, (byte) indexlow, - (byte) 0X01, (byte) 0X12, - (byte) phasehigh, (byte) phaselow - }; - break; - case 7: - b = new byte[]{(byte) 0X87, (byte) 0XCD, + byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD, (byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X0A, (byte) 0X00, (byte) 0X01, @@ -306,8 +252,7 @@ public class NDCAgvServiceImpl implements NDCAgvService { (byte) 0X01, (byte) 0X12, (byte) phasehigh, (byte) phaselow }; - break; - } + log.info("反馈agv动作数据--index:" + hexToString(indexhigh & 0xFF) + hexToString(indexlow & 0xFF) + ",phase:" + hexToString(phasehigh & 0xFF) + hexToString(phaselow & 0xFF)); System.out.println("反馈agv动作数据:" + Bytes2HexString(b)); diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/config/server/impl/AcsConfigServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/config/server/impl/AcsConfigServiceImpl.java index 31ab0ac..000cd09 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/config/server/impl/AcsConfigServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/config/server/impl/AcsConfigServiceImpl.java @@ -67,7 +67,7 @@ public class AcsConfigServiceImpl implements AcsConfigService, ApplicationAutoIn public List queryAll(Map whereJson) { WQLObject wo = WQLObject.getWQLObject("sys_param"); JSONArray arr = wo.query().getResultJSONArray(0); - List list =arr.toJavaList(AcsConfigDto.class); + List list = arr.toJavaList(AcsConfigDto.class); return list; } @@ -83,8 +83,11 @@ public class AcsConfigServiceImpl implements AcsConfigService, ApplicationAutoIn public AcsConfigDto findByCode(String code) { WQLObject wo = WQLObject.getWQLObject("sys_param"); JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0); - final AcsConfigDto obj = json.toJavaObject(AcsConfigDto.class); - return obj; + if (ObjectUtil.isNotEmpty(json)) { + final AcsConfigDto obj = json.toJavaObject(AcsConfigDto.class); + return obj; + } + return null; } @Override diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java index 5c7a4fe..fb1e88b 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java @@ -28,6 +28,7 @@ import org.nl.acs.device_driver.standard_scanner.StandardScannerDeviceDriver; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; +import org.nl.acs.opc.DeviceType; import org.nl.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.start.auto.initial.ApplicationAutoInitial; @@ -238,7 +239,12 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial log.info("设备删除成功!"); if (deviceByCode != null) { - if (StrUtil.equals("storage", deviceByCode.getDeviceDriverDefination().getFitDeviceTypes().get(0).name())) { + DeviceDriverDefination deviceDriverDefination = deviceByCode.getDeviceDriverDefination(); + String name = ""; + if (ObjectUtil.isNotEmpty(deviceDriverDefination)){ + name = deviceByCode.getDeviceDriverDefination().getFitDeviceTypes().get(0).name(); + } + if (StrUtil.equals("storage", name)) { storageTab.delete("substring_index( storage_code,'-',1)= '" + device_code + "'"); } else { diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsController.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsController.java index 124461c..ddda911 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsController.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsController.java @@ -129,4 +129,11 @@ public class AcsToWmsController { public ResponseEntity feedbackDeviceStatus(@RequestBody String device_code, String code, String value) { return new ResponseEntity<>(acstowmsService.feedbackDeviceStatus(device_code, code, value), HttpStatus.OK); } + + @PostMapping("/feedbackAgvTakePutStatus") + @Log("反馈agv取放货状态") + @ApiOperation("反馈agv取放货状态") + public ResponseEntity feedbackAgvTakePutStatus(@RequestBody JSONObject param) { + return new ResponseEntity<>(acstowmsService.feedbackAgvTakePutStatus(param), HttpStatus.OK); + } } diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java index eb40bbc..7f74bd1 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java @@ -132,6 +132,14 @@ public interface AcsToWmsService { */ HttpResponse feedbackDeviceStatus(String device_code, String code, String value); + /** + * 反馈AGV取放货状态 + * + * @param param + * @return + */ + HttpResponse feedbackAgvTakePutStatus(JSONObject param); + /** * 反馈AGV设备信息 * diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index cfedf7d..3b3db64 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -50,8 +50,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Value("${acsTowms.token}") public String token; - private String log_file_type="log_file_type"; - private String log_type="ACS请求WMS"; + private String log_file_type = "log_file_type"; + private String log_type = "ACS请求WMS"; @Override public String applyTaskToWms(String device_code, String container_code, int height, int weight) { @@ -96,7 +96,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // logServer.log("", "applyTaskToWms", type, jo.toString(), result2.body(), String.valueOf(result2.getStatus()), url, container_code); log.info("applyTaskToWms-----输出参数{}", result2.body()); return result2.body(); - } finally { + } finally { MDC.remove(log_file_type); } @@ -136,7 +136,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } log.info("applyTaskManipulatorToWms-----输出参数{}", result2.body()); return result2; - } finally { + } finally { MDC.remove(log_file_type); } @@ -177,7 +177,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } log.info("applyOuttoKiln-----输出参数{}", result2.body()); return result2; - } finally { + } finally { MDC.remove(log_file_type); } @@ -218,14 +218,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } log.info("lnshApplyTaskToWms-----输出参数{}", result2.body()); return result2; - } finally { + } finally { MDC.remove(log_file_type); } } - @Override public HttpResponse applyBarcode(JSONObject json) { try { @@ -261,7 +260,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } log.info("lnshApplyTaskToWms-----输出参数{}", result2.body()); return result2; - } finally { + } finally { MDC.remove(log_file_type); } @@ -302,7 +301,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } log.info("lnshApplyTaskToWms-----输出参数{}", result2.body()); return result2; - } finally { + } finally { MDC.remove(log_file_type); } @@ -332,7 +331,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONObject jo = JSONObject.parseObject(result.body()); return jo; - } finally { + } finally { MDC.remove(log_file_type); } @@ -361,7 +360,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { log.info("getVehicleTokiln----返回参数{}", result.body()); JSONObject jo = JSONObject.parseObject(result.body()); return jo; - } finally { + } finally { MDC.remove(log_file_type); } @@ -390,7 +389,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { log.info("getVehicleTokiln----返回参数{}", result.body()); return result; - } finally { + } finally { MDC.remove(log_file_type); } @@ -419,7 +418,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } log.info("outKiln----返回参数{}", result.body()); return result; - } finally { + } finally { MDC.remove(log_file_type); } @@ -448,7 +447,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { log.info("enterOrder----返回参数{}", result.body()); return result; - } finally { + } finally { MDC.remove(log_file_type); } @@ -459,7 +458,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { try { MDC.put(log_file_type, log_type); - } finally { + } finally { MDC.remove(log_file_type); } String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); @@ -468,7 +467,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String url = wmsurl + methods_url; JSONObject json = new JSONObject(); - json.put("device_code",device_code); + json.put("device_code", device_code); log.info("getVehicleCode----请求参数{}", json.toString()); HttpResponse result = null; @@ -490,7 +489,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { try { MDC.put(log_file_type, log_type); - } finally { + } finally { MDC.remove(log_file_type); } String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); @@ -499,7 +498,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String url = wmsurl + methods_url; JSONObject json = new JSONObject(); - json.put("vehicle_code",vehicle_code); + json.put("vehicle_code", vehicle_code); log.info("getVehiclePoint----请求参数{}", json.toString()); HttpResponse result = null; @@ -519,49 +518,39 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public HttpResponse feedbackTaskStatusToWms(JSONArray data) { + log.info("feedbackTaskStatusToWms-----请求参数{}", data.toString()); try { MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + HttpResponse result2 = null; + AddressDto addressDto = addressService.findByCode("feedbackTaskStatusToWms"); + String methods_url = addressDto.getMethods_url(); + try { + result2 = HttpRequest.post(wmsurl + methods_url) + .header("Authorization", token).body(String.valueOf(data)) + .execute(); + System.out.println(result2); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } - } finally { - MDC.remove(log_file_type); - } - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - - String task_code = ""; - for (int i = 0; i < data.size(); i++) { - JSONObject json = (JSONObject) data.get(i); - task_code = json.getString("task_code"); - } - TaskDto taskDto = taskService.findByCode(task_code); - String vehicle_code = taskDto.getVehicle_code(); - - HttpResponse result2 = null; - log.info("feedbackTaskStatusToWms-----请求参数{}", data.toString()); - - AddressDto addressDto = addressService.findByCode("feedbackTaskStatusToWms"); - String methods_url = addressDto.getMethods_url(); - try { - result2 = HttpRequest.post(wmsurl + methods_url) - .header("Authorization", token).body(String.valueOf(data)) - .execute(); - System.out.println(result2); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); - } + String type = ""; + if (result2.getStatus() == 200) { + type = "info"; + } else { + type = "error"; + } - String type = ""; - if (result2.getStatus() == 200) { - type = "info"; - } else { - type = "error"; +// logServer.log(task_code, "feedbackTaskStatusToWms", type, data.toString(), result2.body(), String.valueOf(result2.getStatus()), wmsurl + methods_url, vehicle_code); + JSONObject jo = JSONObject.parseObject(result2.body()); + log.info("feedbackTaskStatusToWms-----输出参数{}", jo.toString()); + return result2; + } finally { + MDC.remove(log_file_type); } -// logServer.log(task_code, "feedbackTaskStatusToWms", type, data.toString(), result2.body(), String.valueOf(result2.getStatus()), wmsurl + methods_url, vehicle_code); - JSONObject jo = JSONObject.parseObject(result2.body()); - log.info("feedbackTaskStatusToWms-----输出参数{}", jo.toString()); - return result2; } @Override @@ -597,7 +586,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { resultJson.put("data", new JSONArray()); log.info("feedbackPointStatusToWms----输出参数{}", resultJson.toString()); return resultJson; - } finally { + } finally { MDC.remove(log_file_type); } @@ -605,26 +594,26 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public JSONArray getDeviceStatusToWms() { - try { - MDC.put(log_file_type,log_type); - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - AddressDto addressDto = addressService.findByCode("getDeviceStatusToWms"); - String methods_url = addressDto.getMethods_url(); - String url = wmsurl + methods_url; - String result = ""; - try { - result = HttpRequest.get(url) - .execute().body(); - System.out.println(result); - log.info("getTaskStatusToWms----返回参数{}", result); - } catch (Exception e) { - System.out.println(e.getMessage()); - } - JSONArray jsonArray = JSONArray.parseArray(result); - return jsonArray; - }finally { - MDC.remove(log_file_type); - } + try { + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + AddressDto addressDto = addressService.findByCode("getDeviceStatusToWms"); + String methods_url = addressDto.getMethods_url(); + String url = wmsurl + methods_url; + String result = ""; + try { + result = HttpRequest.get(url) + .execute().body(); + System.out.println(result); + log.info("getTaskStatusToWms----返回参数{}", result); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + JSONArray jsonArray = JSONArray.parseArray(result); + return jsonArray; + } finally { + MDC.remove(log_file_type); + } } @@ -656,7 +645,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } return result; - } finally { + } finally { MDC.remove(log_file_type); } @@ -692,7 +681,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { System.out.println(msg); } return result2; - } finally { + } finally { MDC.remove(log_file_type); } @@ -733,7 +722,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { System.out.println(msg); } return result2; - } finally { + } finally { MDC.remove(log_file_type); } @@ -765,7 +754,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { System.out.println(msg); } return result2; - } finally { + } finally { MDC.remove(log_file_type); } @@ -800,7 +789,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { System.out.println(msg); } return result; - } finally { + } finally { MDC.remove(log_file_type); } @@ -839,7 +828,38 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { System.out.println(msg); } return result; - } finally { + } finally { + MDC.remove(log_file_type); + } + + } + + @Override + public HttpResponse feedbackAgvTakePutStatus(JSONObject param) { + try { + MDC.put(log_file_type, log_type); + String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + JSONArray ja = new JSONArray(); + ja.add(param); + AddressDto addressDto = addressService.findByCode("feedbackAgvTakePutStatus"); + String methods_url = addressDto.getMethods_url(); + String url = wmsUrl + methods_url; + HttpResponse result = null; + log.info("feedbackDeviceStatus----请求参数{}", param); + + try { + result = HttpRequest.post(url) + .body(String.valueOf(ja)) + .execute(); + System.out.println(result); + log.info("feedbackDeviceStatus----返回参数{}", result); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + return result; + } finally { MDC.remove(log_file_type); } @@ -868,7 +888,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { System.out.println(msg); } return result; - } finally { + } finally { MDC.remove(log_file_type); } @@ -899,7 +919,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { System.out.println(msg); } return result; - } finally { + } finally { MDC.remove(log_file_type); } @@ -927,7 +947,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } return result; - } finally { + } finally { MDC.remove(log_file_type); } diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 014e5ac..698f957 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.acs.ext.wms.service.impl; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -64,6 +65,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String task_code = task.getString("task_code"); String start_point_code = task.getString("start_device_code"); String next_point_code = task.getString("next_device_code"); + String priority = task.getString("priority"); String start_device_code = ""; String next_device_code = ""; String start_parent_code = ""; @@ -77,6 +79,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { if (StrUtil.isEmpty(next_point_code)) { throw new WDKException("终点不能为空"); } + if (StrUtil.isEmpty(priority)){ + throw new WDKException("优先级不能为空"); + } JSONObject start_device_json = WQLObject.getWQLObject("acs_storage_cell").query("parent_storage_code ='" + start_point_code + "'").uniqueResult(0); if (!ObjectUtil.isEmpty(start_device_json)) { @@ -88,7 +93,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { next_point_code = (String) next_device_json.get("parent_storage_code") == null ? next_point_code : (String) next_device_json.get("storage_code"); next_parent_code = next_device_json.get("parent_storage_code") == null ? next_point_code : (String) next_device_json.get("parent_storage_code"); } - String priority = task.getString("priority"); + String vehicle_code = task.getString("vehicle_code"); String vehicle_type = task.getString("vehicle_type"); String route_plan_code = task.getString("route_plan_code"); @@ -129,6 +134,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { } } JSONObject jo = new JSONObject(); + jo.put("task_id", IdUtil.simpleUUID()); jo.put("task_code", task_code); jo.put("ext_task_uuid", ext_task_uuid); jo.put("start_point_code", start_point_code); @@ -207,17 +213,18 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { log.info("cancelFromWms--------------:输入参数" + tasks.toString()); for (int i = 0; i < tasks.size(); i++) { JSONObject task = tasks.getJSONObject(i); - String task_uuid = task.getString("task_id"); + //String task_uuid = task.getString("task_id"); String task_code = task.getString("task_code"); String vehicle_code = task.getString("vehicle_code"); String params = task.getString("params"); - - if (StrUtil.isEmpty(task_uuid)) { - throw new WDKException("任务标识不能为空"); - } if (StrUtil.isEmpty(task_code)) { throw new WDKException("任务号不能为空"); } + TaskDto taskDto = TaskService.findByCode(task_code); + String task_uuid = taskDto.getTask_id(); + if (StrUtil.isEmpty(task_uuid)) { + throw new WDKException("任务标识不能为空"); + } String cancelTaskCheck = acsConfigService.findConfigFromCache().get(AcsConfig.CANCELTASKCHECK); if (StrUtil.equals(cancelTaskCheck, "1")) { TaskService.cancel(task_uuid); diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index 4dab6b7..4651f25 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -508,7 +508,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu @Transactional(rollbackFor = Exception.class) public void finish(String id) throws Exception { Instruction entity = this.findById(id); - //if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); + if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); String currentUsername = SecurityUtils.getCurrentUsername(); String now = DateUtil.now(); entity.setUpdate_time(now); diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 12f3429..fcb4e42 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -605,10 +605,10 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code()); JSONObject feed_jo = new JSONObject(); Instruction inst = instructionservice.findByTaskcodeToWms(entity.getTask_code()); - feed_jo.put("ext_task_uuid", entity.getExt_task_uuid()); + //feed_jo.put("ext_task_uuid", entity.getExt_task_uuid()); feed_jo.put("task_code", entity.getTask_code()); feed_jo.put("task_status", entity.getTask_status()); - feed_jo.put("car_no", inst.getCarno()); + //feed_jo.put("car_no", inst.getCarno()); JSONArray ja = new JSONArray(); ja.add(feed_jo); String message = null; @@ -729,13 +729,19 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { //判断是否为WMS下发的任务,如果是反馈任务状态给WMS String hasWms = acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS); if (!StrUtil.startWith(entity.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { + //反馈wms任务状态---取消 JSONObject feed_jo = new JSONObject(); - feed_jo.put("ext_task_uuid", entity.getExt_task_uuid()); feed_jo.put("task_code", entity.getTask_code()); feed_jo.put("task_status", entity.getTask_status()); JSONArray ja = new JSONArray(); ja.add(feed_jo); - acstowmsService.feedbackTaskStatusToWms(ja); + try { + acstowmsService.feedbackTaskStatusToWms(ja); + log.info("agv取消任务反馈成功,任务号{}",entity.getTask_code()); + } catch (Exception e){ + log.info("agv取消任务反馈失败,任务号{}",entity.getTask_code()); + e.printStackTrace(); + } } List shortPathsList = routeLineService.getShortPathLines(entity.getStart_device_code(), entity.getNext_device_code(), entity.getRoute_plan_code()); String type = shortPathsList.get(0).getType(); diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java b/acs/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java index 7b9cec0..1d9ce11 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java @@ -3,9 +3,9 @@ package org.nl.start.auto.run; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; import org.nl.acs.agv.server.NDCAgvService; import org.nl.acs.agv.server.dto.AgvDto; import org.nl.acs.config.AcsConfig; @@ -17,6 +17,7 @@ import org.nl.acs.device_driver.standard_autodoor.StandardAutodoorDeviceDriver; import org.nl.acs.device_driver.standard_conveyor_control.StandardCoveyorControlDeviceDriver; import org.nl.acs.device_driver.standard_emptypallet_site.StandardEmptyPalletSiteDeviceDriver; import org.nl.acs.device_driver.standard_inspect_site.StandardInspectSiteDeviceDriver; +import org.nl.acs.device_driver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; import org.nl.acs.device_driver.standard_storage.StandardStorageDeviceDriver; import org.nl.acs.device_driver.traffic_light.TrafficLightDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; @@ -26,10 +27,6 @@ import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.instruction.service.impl.InstructionServiceImpl; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; -import org.nl.acs.opc.DeviceAppServiceImpl; -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.utils.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -93,6 +90,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { port = Integer.parseInt(acsConfigService.findConfigFromCache().get(AcsConfig.AGVPORT)); byte[] b = new byte[1028]; s = new Socket(ip, port); + System.out.println("Agv链接成功"); dos = new DataOutputStream(s.getOutputStream()); dis = new DataInputStream(s.getInputStream()); @@ -159,18 +157,28 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { StandardStorageDeviceDriver standardStorageDeviceDriver; StandardAutodoorDeviceDriver standardAutodoorDeviceDriver; StandardEmptyPalletSiteDeviceDriver standardEmptyPalletSiteDeviceDriver; + StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver; OumulongPlcDeviceDriver oumulongPlcDeviceDriver; TrafficLightDeviceDriver trafficLightDeviceDriver; - int type = Integer.parseInt(acsConfigService.findConfigFromCache().get(AcsConfig.BUSINESSTYPE)); if (phase == 0x01) { - data = AgvService.sendAgvOneModeInst(phase, index); + //data = AgvService.sendAgvOneModeInst(phase, index); if (!ObjectUtil.isEmpty(inst)) { inst.setInstruction_status("1"); inst.setAgv_jobno(String.valueOf(index)); inst.setSend_status("1"); instructionService.update(inst); data = AgvService.sendAgvOneModeInst(phase, index, 0); + // 反馈wms任务状态---执行中 + JSONObject feed_jo = new JSONObject(); + feed_jo.put("task_code", inst.getTask_code()); + feed_jo.put("task_status", "1"); + JSONArray ja = new JSONArray(); + ja.add(feed_jo); + + acsToWmsService.feedbackTaskStatusToWms(ja); + log.info("agv任务状态-执行中反馈成功,设备号{},任务号{}", device_code, inst.getTask_code()); + } flag = true; } @@ -187,6 +195,29 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { log.info("未找到指令号{}对应的指令", ikey); break; } + + //普通站点 + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + JSONObject map = new JSONObject(); + map.put("task_code", inst.getTask_code()); + map.put("status", "1"); + map.put("device_code", device_code); + map.put("vehicle_code", inst.getVehicle_code()); + HttpResponse httpResponse = acsToWmsService.feedbackAgvTakePutStatus(map); + String body = httpResponse.body(); + JSONObject resJson = JSONObject.parseObject(body); + String message = resJson.getString("message"); + int status = Integer.parseInt(resJson.getString("status")); + if (status == 200) { + inst.setExecute_status("1"); + instructionService.update(inst); + data = AgvService.sendAgvOneModeInst(phase, index, 0); + flag = true; + log.info("agv请求取货反馈成功,设备号{},任务号{}", device_code, inst.getTask_code()); + } else { + log.info("agv请求取货,wms系统不允许取货,设备号{},任务号{},原因{}", device_code, inst.getTask_code(), message); + } + } //检测站点 if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); @@ -238,6 +269,29 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { break; } + //普通站点 + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + JSONObject map = new JSONObject(); + map.put("task_code", inst.getTask_code()); + map.put("status", "2"); + map.put("device_code", device_code); + map.put("vehicle_code", inst.getVehicle_code()); + HttpResponse httpResponse = acsToWmsService.feedbackAgvTakePutStatus(map); + String body = httpResponse.body(); + JSONObject resJson = JSONObject.parseObject(body); + String message = resJson.getString("message"); + int status = Integer.parseInt(resJson.getString("status")); + if (status == 200) { + inst.setExecute_status("5"); + instructionService.update(inst); + data = AgvService.sendAgvOneModeInst(phase, index, 0); + flag = true; + log.info("agv取货完成反馈成功,设备号{},任务号{}", device_code, inst.getTask_code()); + } else { + log.info("agv请求取货完成请求离开,wms系统不允许离开,设备号{},任务号{},原因{}", device_code, inst.getTask_code(), message); + } + } + if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); if (standardInspectSiteDeviceDriver.getMove() == 0) { @@ -288,6 +342,30 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { log.info("未找到指令号{}对应的指令", ikey); break; } + + //普通站点 + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + JSONObject map = new JSONObject(); + map.put("task_code", inst.getTask_code()); + map.put("status", "3"); + map.put("device_code", device_code); + map.put("vehicle_code", inst.getVehicle_code()); + HttpResponse httpResponse = acsToWmsService.feedbackAgvTakePutStatus(map); + String body = httpResponse.body(); + JSONObject resJson = JSONObject.parseObject(body); + String message = resJson.getString("message"); + int status = Integer.parseInt(resJson.getString("status")); + if (status == 200) { + inst.setExecute_status("3"); + instructionService.update(inst); + data = AgvService.sendAgvOneModeInst(phase, index, 0); + flag = true; + log.info("agv请求放货反馈成功,设备号{},任务号{}", device_code, inst.getTask_code()); + } else { + log.info("agv请求放货,wms系统不允许放货,设备号{},任务号{},原因{}", device_code, inst.getTask_code(), message); + } + } + if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); if (standardInspectSiteDeviceDriver.getMove() == 0) { @@ -325,6 +403,29 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { break; } + //普通站点 + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + JSONObject map = new JSONObject(); + map.put("task_code", inst.getTask_code()); + map.put("status", "4"); + map.put("device_code", device_code); + map.put("vehicle_code", inst.getVehicle_code()); + HttpResponse httpResponse = acsToWmsService.feedbackAgvTakePutStatus(map); + String body = httpResponse.body(); + JSONObject resJson = JSONObject.parseObject(body); + String message = resJson.getString("message"); + int status = Integer.parseInt(resJson.getString("status")); + if (status == 200) { + inst.setExecute_status("6"); + instructionService.update(inst); + data = AgvService.sendAgvOneModeInst(phase, index, 0); + flag = true; + log.info("agv放货完成反馈成功,设备号{},任务号{}", device_code, inst.getTask_code()); + } else { + log.info("agv放货完成请求离开,wms系统不允许离开,设备号{},任务号{},原因{}", device_code, inst.getTask_code(), message); + } + } + if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); if (standardInspectSiteDeviceDriver.getMove() != 0) { @@ -363,6 +464,15 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { if (!ObjectUtil.isEmpty(inst)) { inst.setInstruction_status("2"); instructionService.finish(inst); + + //反馈wms任务状态---完成 + JSONObject feed_jo = new JSONObject(); + feed_jo.put("task_code", inst.getTask_code()); + feed_jo.put("task_status", "2"); + JSONArray ja = new JSONArray(); + ja.add(feed_jo); + acsToWmsService.feedbackTaskStatusToWms(ja); + log.info("agv任务完成反馈成功,设备号{},任务号{}", device_code, inst.getTask_code()); } data = AgvService.sendAgvOneModeInst(phase, index, 0); } @@ -503,6 +613,9 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { dto.setName(String.valueOf(carno)); dto.setEnergyLevel(String.valueOf(ikey)); } + if (!ObjectUtil.isEmpty(data)) { + write(data); + } } else { System.out.println("agv上报不是0073类型动作,不处理"); diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NdcAutoReconnection.java b/acs/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NdcAutoReconnection.java new file mode 100644 index 0000000..f124a2c --- /dev/null +++ b/acs/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NdcAutoReconnection.java @@ -0,0 +1,32 @@ +package org.nl.start.auto.run; + +import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.config.AcsConfig; +import org.nl.acs.config.server.AcsConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * ndc掉线自动重连 + */ +@Slf4j +@Component +public class NdcAutoReconnection { + + @Autowired + AcsConfigService acsConfigService; + + @Autowired + AutoRunService autoRunService; + + public void run(String threadCode) throws Exception { + if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.NDC_RECONNECTION).toString(), "1")) { + + if (!autoRunService.getThreadByCode(threadCode).isAlive()) { + autoRunService.startThread(threadCode); + } + + } + } +} diff --git a/acs/hd/nladmin-system/src/main/resources/config/application-dev.yml b/acs/hd/nladmin-system/src/main/resources/config/application-dev.yml index 4314651..d01c320 100644 --- a/acs/hd/nladmin-system/src/main/resources/config/application-dev.yml +++ b/acs/hd/nladmin-system/src/main/resources/config/application-dev.yml @@ -8,11 +8,11 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:hl_two_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:szhr}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true # url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:rljn_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} # password: ${DB_PWD:P@ssw0rd} - password: ${DB_PWD:Root.123456} + password: ${DB_PWD:password} # password: ${DB_PWD:123456} # 初始连接数 initial-size: 5 diff --git a/acs/qd/.env.development b/acs/qd/.env.development index d3d2806..42ce1c5 100644 --- a/acs/qd/.env.development +++ b/acs/qd/.env.development @@ -1,7 +1,7 @@ ENV = 'development' # 接口地址 -VUE_APP_BASE_API = 'http://192.168.81.140:8010' +VUE_APP_BASE_API = 'http://127.0.0.1:8010' VUE_APP_WS_API = 'ws://127.0.0.1:8010' # 是否启用 babel-plugin-dynamic-import-node插件