From 385a7a63f86903b74c4a878ab22b69a63a8f5e54 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期四, 15 五月 2025 15:54:23 +0800 Subject: [PATCH] 外置输送线wms通知输送线流动 --- src/main/java/com/zy/asrs/domain/param/ApplyInDevpDto.java | 23 ++ src/main/java/com/zy/asrs/controller/OpenController.java | 286 ------------------------- src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 285 ++----------------------- src/main/java/com/zy/asrs/service/OpenService.java | 15 4 files changed, 62 insertions(+), 547 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java index a508bdb..29f9c40 100644 --- a/src/main/java/com/zy/asrs/controller/OpenController.java +++ b/src/main/java/com/zy/asrs/controller/OpenController.java @@ -2,15 +2,14 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.core.annotations.AppAuth; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; import com.core.exception.CoolException; +import com.zy.asrs.domain.param.ApplyInDevpDto; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.CrnStatusParam; import com.zy.asrs.entity.param.TaskCreateParam; -import com.zy.asrs.entity.param.TaskOverParam; import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; import com.zy.asrs.service.*; import com.zy.common.web.BaseController; @@ -20,11 +19,8 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; -import java.lang.reflect.Field; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; @Slf4j @RestController @@ -55,55 +51,6 @@ private LocMastService locMastService; @Autowired private BasCrnErrorService basCrnErrorService; - - - public static <T> List<T> convertListMapToListObject(List<HashMap<String, Object>> listMap, Class<T> clazz) throws Exception { - List<T> list = new ArrayList<>(); - - for (Map<String, Object> map : listMap) { - T obj = clazz.getDeclaredConstructor().newInstance(); - - for (Map.Entry<String, Object> entry : map.entrySet()) { - String key = entry.getKey(); - Object value = entry.getValue(); - - try { - Field field = clazz.getDeclaredField(key); - field.setAccessible(true); - setFieldValue(obj, field, value); - } catch (NoSuchFieldException e) { - System.out.println("No such field: " + key + " in class " + clazz.getName()); - } - } - - list.add(obj); - } - - return list; - } - - private static void setFieldValue(Object obj, Field field, Object value) throws IllegalAccessException { - Class<?> fieldType = field.getType(); - - if (fieldType.isAssignableFrom(value.getClass())) { - field.set(obj, value); - } else if (fieldType == int.class || fieldType == Integer.class) { - field.set(obj, ((Number) value).intValue()); - } else if (fieldType == long.class || fieldType == Long.class) { - field.set(obj, ((Number) value).longValue()); - } else if (fieldType == double.class || fieldType == Double.class) { - field.set(obj, ((Number) value).doubleValue()); - } else if (fieldType == float.class || fieldType == Float.class) { - field.set(obj, ((Number) value).floatValue()); - } else if (fieldType == boolean.class || fieldType == Boolean.class) { - field.set(obj, (Boolean) value); - } else if (fieldType == String.class) { - field.set(obj, String.valueOf(value)); - } else { - System.out.println("Unsupported field type: " + fieldType.getName()); - } - } - //鍒涘缓浠诲姟 @PostMapping("/taskCreate") @@ -247,45 +194,6 @@ return R.ok(crnStatusParams); } - //鍙栨斁璐х敵璇� - @PostMapping("/pick/and/place/v1") - @AppAuth(memo = "agv鍙栨斁璐х敵璇�") - public R getAgvPickAndPlaceV1(@RequestHeader String appkey, - @RequestBody TaskOverParam param, - HttpServletRequest request) { - auth(appkey, param, request); - if (Cools.isEmpty(param)) { - return R.parse(BaseRes.PARAM); - } - if (Cools.isEmpty(param.getStartPoint())) { - return R.error("鐮佸ご[staNo]涓嶈兘涓虹┖"); - } - if (Cools.isEmpty(param.getType())) { - return R.error("绫诲瀷[type]涓嶈兘涓虹┖"); - } - return openService.getAgvPickAndPlaceV1(param); - } - - //鍙栨斁璐у畬鎴愬弽棣� - @PostMapping("/pick/and/place/v2") - @AppAuth(memo = "agv鍙栨斁璐у畬鎴愬弽棣�") - public R getAgvPickAndPlaceV2(@RequestHeader String appkey, - @RequestBody TaskOverParam param, - HttpServletRequest request) { - auth(appkey, param, request); - if (Cools.isEmpty(param)) { - return R.parse(BaseRes.PARAM); - } - if (Cools.isEmpty(param.getStartPoint())) { - return R.error("鐮佸ご[staNo]涓嶈兘涓虹┖"); - } - if (Cools.isEmpty(param.getType())) { - return R.error("绫诲瀷[type]涓嶈兘涓虹┖"); - } - return openService.getAgvPickAndPlaceV2(param); - } - - private void auth(String appkey, Object obj, HttpServletRequest request) { log.info("{}鎺ュ彛琚闂紱appkey:{}锛涜姹傛暟鎹細{}", request.getServletPath(), appkey, JSON.toJSONString(obj)); request.setAttribute("cache", obj); @@ -314,6 +222,7 @@ @GetMapping("/queryTaskCommand") public R queryTaskCommand(@RequestHeader String appkey, @RequestParam String taskNo, + HttpServletRequest request) { auth(appkey, taskNo, request); TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo); @@ -325,188 +234,13 @@ return R.ok().add(commandInfos); } + // 澶栫疆杈撻�佺嚎wms閫氱煡杈撻�佺嚎娴佸姩,涓婃姤鏃跺�欎笂鎶ョ珯鐐瑰嵆鍙� + @PostMapping("/applyInDevp") + public R applyInDevp(@RequestHeader String appkey, + @RequestBody ApplyInDevpDto param, + HttpServletRequest request) { + auth(appkey, param, request); + return openService.applyInDevp(param); + } - //浠诲姟涓嬪彂鎺ュ彛 -// @PostMapping("/outboundTaskSend") -// @Transactional -// public HashMap<String, Object> outboundTaskSend(@RequestBody List<CarryParam> params) { -// HashMap<String, Object> map = new HashMap<>(); -// for (CarryParam param : params) { -// if (Cools.isEmpty(param)) { -// map.put("Code", "0"); -// map.put("Msg", "鍙傛暟涓虹┖锛�"); -// return map; -// } else if (Cools.isEmpty(param.getTaskNo())) { -// map.put("Code", "0"); -// map.put("Msg", "浠诲姟鍙蜂负绌猴紒"); -// return map; -// } else if (Cools.isEmpty(param.getStereoscopicTaskType())) { -// map.put("Code", "0"); -// map.put("Msg", "浠诲姟绫诲瀷涓虹┖锛�"); -// return map; -// } -// String fusion = Utils.Fusion(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo()); -// param.setStartPoint(fusion); -// LocMast locMast = locMastService.selectByLocNo(param.getStartPoint()); -// if (Cools.isEmpty(locMast)) { -// map.put("Code", "0"); -// map.put("Msg", "鍒濆搴撲綅鏃犳硶鎵惧埌锛�"); -// return map; -// } -// -// HashMap<String, Object> r = new HashMap<>(); -// -// if (param.getStereoscopicTaskType() == 2) { -// //鍑哄簱浠诲姟鍒涘缓 -// StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() -// .eq("type_no", 2) -// .eq("crn_no", locMast.getCrnNo()) -// .eq("stn_no", param.getTerminalNo())); -// if (Cools.isEmpty(staDesc)) { -// map.put("Code", "0"); -// map.put("Msg", "鍑哄簱璺緞涓嶅瓨鍦紒"); -// return map; -// } -// r = openService.taskCreate(new TaskCreateParam(param, staDesc.getCrnNo())); -// if (r.get("Code").equals("0")) { -// return r; -// } -// } else if (param.getStereoscopicTaskType() == 3) { -// String fusion1 = Utils.Fusion(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo()); -// param.setTerminalNo(fusion1); -// //绉诲簱浠诲姟鍒涘缓 -// r = openService.taskCreate(new TaskCreateParam(param, locMast.getCrnNo())); -// if (r.get("Code").equals("0")) { -// return r; -// } -// } -// apiLogService.save("Wms浠诲姟涓嬪彂鎺ュ彛" -// , request.getRemoteAddr() + request.getRequestURI() -// , "" -// , request.getRemoteAddr() -// , JSON.toJSONString(param) -// , r.toString() -// , true -// ); -// } -// map.put("Code", "1"); -// map.put("Msg", "ok"); -// return map; -// } - - //AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛 -// @PostMapping("/targetWharfApply") -// @AppAuth(memo = "AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛") -// public R targetWharfApply(@RequestHeader String appkey, -// @RequestBody WMSAndAGVInterfaceParam param, -// HttpServletRequest request) throws IOException { -// auth(appkey, param, request); -// -// if (Cools.isEmpty(param)) { -// return R.error("鍙傛暟涓虹┖锛�"); -// } else if (Cools.isEmpty(param.getTaskNo())) { -// return R.error("宸ヤ綔鍙蜂负绌猴紒"); -// } else if (Cools.isEmpty(param.getContainerCode())) { -// return R.error("鎵樼洏缂栫爜涓虹┖锛�"); -// } else if (Cools.isEmpty(param.getWharfSource())) { -// return R.error("婧愮爜澶翠负绌猴紒"); -// } else if (Cools.isEmpty(param.getFreeWharfs()) || param.getFreeWharfs().size() == 0) { -// return R.error("绌洪棽鐨勫叆搴撶爜澶达紙AGV锛変负绌猴紒"); -// } -// R r = openService.AgvToWCSToWms(param); -// apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛" -// , request.getRemoteAddr() + request.getRequestURI() -// , appkey -// , request.getRemoteAddr() -// , JSON.toJSONString(param) -// , r.toString() -// , true -// ); -// return r; -// } -// -// //AGV璇锋眰鍔ㄤ綔鎺ュ彛 -// @PostMapping("/agvTaskRequest") -// @AppAuth(memo = "AGV璇锋眰鍔ㄤ綔鎺ュ彛") -// public R agvTaskRequest(@RequestHeader String appkey, -// @RequestBody WMSAndAGVInterfaceParam param, -// HttpServletRequest request) { -// auth(appkey, param, request); -// if (Cools.isEmpty(param)) { -// return R.error("鍙傛暟涓虹┖锛�"); -// } else if (Cools.isEmpty(param.getRequestType())) { -// return R.error("璇锋眰绫诲瀷涓虹┖锛�"); -// } else if (Cools.isEmpty(param.getWharfCode())) { -// return R.error("鐮佸ご缂栧彿涓虹┖锛�"); -// } -// -// Map<String, Integer> map = new HashMap<>(); -// map.put("J-1102", 102); -// map.put("J-1101", 101); -// map.put("J-1103", 105); -// map.put("J-1104", 106); -// map.put("J-1105", 109); -// map.put("J-1106", 110); -// map.put("J-1107", 113); -// map.put("J-1108", 114); -// map.put("J-1109", 117); -// map.put("J-1110", 118); -// map.put("J-1111", 121); -// map.put("J-1112", 122); -// map.put("H-1102", 300); -// map.put("H-1101", 305); -// map.put("G-1102", 400); -// map.put("G-1101", 405); -//// StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() -//// .eq("stn_desc", param.getWharfCode())); -//// -//// if (Cools.isEmpty(staDesc)){ -//// return R.error("绋嬪簭鎶ラ敊锛屾湭鏌ヨ鍒扮珯鐐�"); -//// } -// if (Cools.isEmpty(map.get(param.getWharfCode()))) { -// return R.error("鏈煡璇㈠埌绔欑偣"); -// } -// BasDevp basDevp = basDevpService.selectById(map.get(param.getWharfCode())); -// if (basDevp.getAutoing().equals("Y") && (basDevp.getInEnable().equals("Y") || basDevp.getOutEnable().equals("Y"))) { -// apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛" -// , request.getRemoteAddr() + request.getRequestURI() -// , appkey -// , request.getRemoteAddr() -// , JSON.toJSONString(param) -// , R.ok().toString() -// , true -// ); -// return R.ok("鍙叆"); -// } else { -// apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛" -// , request.getRemoteAddr() + request.getRequestURI() -// , appkey -// , request.getRemoteAddr() -// , JSON.toJSONString(param) -// , R.error("绔欑偣鐘舵�佷笉鍙叆").toString() -// , true -// ); -// return R.error("绔欑偣鐘舵�佷笉鍙叆"); -// } -// -// -// } -// @PostMapping("/toAgvTaskOver") -// @AppAuth(memo = "agv浠诲姟瀹屾垚鎺ュ彛") -// public R getAgvTaskOver(@RequestHeader String appkey, -// @RequestBody TaskOverParam param, -// HttpServletRequest request) { -// auth(appkey, param, request); -// if (Cools.isEmpty(param)) { -// return R.parse(BaseRes.PARAM); -// } -// if (Cools.isEmpty(param.getStartPoint())) { -// return R.error("鐮佸ご[wharfCode]涓嶈兘涓虹┖"); -// } -// if (Cools.isEmpty(param.getStatus())) { -// return R.error("瀹屾垚鏍囪[status]涓嶈兘涓虹┖"); -// } -// openService.getAgvTaskOver(param); -// return R.ok(); -// } } diff --git a/src/main/java/com/zy/asrs/domain/param/ApplyInDevpDto.java b/src/main/java/com/zy/asrs/domain/param/ApplyInDevpDto.java new file mode 100644 index 0000000..88efd12 --- /dev/null +++ b/src/main/java/com/zy/asrs/domain/param/ApplyInDevpDto.java @@ -0,0 +1,23 @@ +package com.zy.asrs.domain.param; + +import lombok.Data; + +/** + * @author pang.jiabao + * @description 閫氱煡杈撻�佺嚎娴佸姩 + * @createDate 2025/5/15 14:27 + */ +@Data +public class ApplyInDevpDto { + + /** + * 婧愮珯鐐� + */ + private Integer sourceSite; + + /** + * 鐩爣绔欑偣 + */ + private Integer targetSite; + +} diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java index 7071d38..79463a0 100644 --- a/src/main/java/com/zy/asrs/service/OpenService.java +++ b/src/main/java/com/zy/asrs/service/OpenService.java @@ -1,11 +1,9 @@ package com.zy.asrs.service; import com.core.common.R; +import com.zy.asrs.domain.param.ApplyInDevpDto; import com.zy.asrs.entity.param.TaskCreateParam; -import com.zy.asrs.entity.param.TaskOverParam; -import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; -import java.io.IOException; import java.util.HashMap; public interface OpenService { @@ -13,11 +11,8 @@ //鍒涘缓浠诲姟 HashMap<String, Object> taskCreate(TaskCreateParam param); - R AgvToWCSToWms(WMSAndAGVInterfaceParam param) throws IOException; - - void getAgvTaskOver(TaskOverParam param); - - R getAgvPickAndPlaceV1(TaskOverParam param); - - R getAgvPickAndPlaceV2(TaskOverParam param); + /** + * 澶栫疆杈撻�佺嚎wms閫氱煡杈撻�佺嚎娴佸姩 + */ + R applyInDevp(ApplyInDevpDto param); } diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java index 9b2c22e..0c73e47 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -1,25 +1,22 @@ package com.zy.asrs.service.impl; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.R; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.domain.enums.WorkNoType; -import com.zy.asrs.entity.*; +import com.zy.asrs.domain.param.ApplyInDevpDto; +import com.zy.asrs.entity.BasDevp; +import com.zy.asrs.entity.LocMast; +import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.entity.param.TaskCreateParam; -import com.zy.asrs.entity.param.TaskOverParam; -import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; import com.zy.common.service.CommonService; -import com.zy.common.utils.HttpHandler; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; -import com.zy.core.model.DevpSlave; import com.zy.core.model.Task; import com.zy.core.model.protocol.StaProtocol; import com.zy.core.properties.SlaveProperties; @@ -27,22 +24,12 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.io.IOException; -import java.util.*; +import java.util.Date; +import java.util.HashMap; @Service public class OpenServiceImpl implements OpenService { - public ArrayList<String> wharfCode1 = new ArrayList<String>() {{ - add("J-1101"); - add("J-1103"); - add("J-1105"); - add("J-1107"); - add("J-1109"); - add("J-1111"); - add("H-1101"); - add("G-1101"); - }}; @Autowired private TaskWrkService taskWrkService; @Autowired @@ -131,251 +118,27 @@ } @Override - public R AgvToWCSToWms(WMSAndAGVInterfaceParam param) throws IOException { - ToWmsDTO toWmsDTO = new ToWmsDTO(); - Map<String, Object> map = new HashMap<>(); - map.put("x-api-key", "7a15b5db-29b6-552c-8cff-0cfec3756da2"); - List<Integer> list = new ArrayList<>(); - if (param.getWharfSource().contains("J")) { - list = getInEnableRoadway(); + public R applyInDevp(ApplyInDevpDto param) { + Integer sourceSite = param.getSourceSite(); + BasDevp basDevp = basDevpService.selectById(sourceSite); + if (basDevp == null) { + return R.error("婧愮珯鐐逛笉瀛樺湪:" + param); + } + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2); + StaProtocol staProtocol = devpThread.getStation().get(sourceSite); + if (staProtocol == null) { + return R.parse(sourceSite + "绾跨▼涓虹┖!"); } else { - list = getInEnableRoadway2(); + staProtocol = staProtocol.clone(); } - - - //TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo()); - toWmsDTO.setWarehouseId("1688469798893297665"); - toWmsDTO.setContainerCode(param.getContainerCode()); - toWmsDTO.setApplyType("TUNNEL"); - toWmsDTO.setWharfSource(null); - toWmsDTO.setCanInboundTunnels(list); - String response = null; - try { - response = new HttpHandler.Builder() - .setHeaders(map) - .setUri(wmsUrl) - .setPath("wcsManager/wcsInterface/inboundTaskApply") - .setJson(JSON.toJSONString(toWmsDTO)) - .build() - .doPost(); - } catch (Exception e) { - return R.error("wms杩炴帴澶辫触" + e.getMessage()); - } - - JSONObject jsonObject = JSON.parseObject(response); - - apiLogService.save("wms璇锋眰鍏ュ簱鐮佸ご鎺ュ彛" - , wmsUrl + "wcsManager/wcsInterface/inboundTaskApply" - , null - , "127.0.0.1" - , JSON.toJSONString(toWmsDTO) - , response - , true - ); - - if (jsonObject.getInteger("code").equals(200)) { - //瑙f瀽 - List<WMSAndAGVInterfaceParam> params = new ArrayList<>(); - params.add(param); - WMSAndAGVInterfaceParam data = JSONObject.parseObject(jsonObject.get("data").toString(), WMSAndAGVInterfaceParam.class); - String msg = null; - try { - taskCreate(new TaskCreateParam(data)); - } catch (Exception e) { - msg = e.getMessage(); - } - if (msg != null) { - return R.error(msg); - } - Map<String, String> map1 = new HashMap<>(); - StaDesc staDesc = new StaDesc(); - if (param.getWharfSource().contains("J")) { - staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", data.getTaskTunnel()) - .eq("type_no", 1) - .lt("stn_no", 200)); - } else if (param.getWharfSource().contains("H")) { - staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", data.getTaskTunnel()) - .eq("type_no", 1) - .lt("stn_no", 400) - .gt("stn_no", 200)); - } else { - staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", data.getTaskTunnel()) - .eq("type_no", 1) - .lt("stn_no", 500) - .ge("stn_no", 400)); - } - map1.put("taskTunnel", staDesc.getStnDesc()); - //map1.put("taskTunnel", "J-1104"); - return R.ok(map1); - } - return R.error((String) jsonObject.get("msg")); - } - - @Override - public void getAgvTaskOver(TaskOverParam param) { - // 鏍规嵁杈撻�佺嚎plc閬嶅巻 - for (DevpSlave devp : slaveProperties.getDevp()) { - StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("stn_desc", param.getStartPoint())); - if (Cools.isEmpty(staDesc)) { - throw new RuntimeException("鏈煡璇㈠埌绔欑偣淇℃伅"); - } - // 鑾峰彇鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(staDesc.getStnNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - Short workNo = staProtocol.getWorkNo(); - if (wharfCode1.contains(param.getStartPoint())) { - if (!staProtocol.isLoading() && !staProtocol.isCar() && staProtocol.getWorkNo() > 0) { - //AGV鍑哄簱瀹屾垚浠ュ悗 - staProtocol.setWorkNo((short) 0); - staProtocol.setStaNo((short) 0); - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); - if (result) { - - } else { - throw new RuntimeException("agv杩斿洖瀹屾垚鍚庯紝鍛戒护涓嬪彂澶辫触"); - } - } - } else { - for (DevpSlave.Sta inSta : devp.getInSta()) { - if (inSta.getBackSta().equals(staDesc.getStnNo())) { - - if (staProtocol.isLoading() && !staProtocol.isCar() && workNo == 0) { - //AGV鍏ュ簱瀹屾垚浠ュ悗 - staProtocol.setWorkNo((short) 9999); - staProtocol.setStaNo(inSta.getStaNo().shortValue()); - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); - if (result) { - - } else { - throw new RuntimeException("agv杩斿洖瀹屾垚鍚庯紝鍛戒护涓嬪彂澶辫触"); - } - } - - } - } - } - } - - } - - @Override - public R getAgvPickAndPlaceV1(TaskOverParam param) { - BasDevp basDevp = basDevpService.selectById(param.getStartPoint()); - if (Cools.isEmpty(basDevp)) { - return R.error("绔欑偣鍙锋湁璇�" + param.getStartPoint()); - } - if (Cools.isEmpty(param.getHeight())) { - return R.error("楂樺害涓嶈兘涓虹┖" + param.getStartPoint()); - } - if (param.getType() == 0 && basDevp.getAgvStartPick() == 1) { - basDevp.setInreq2(param.getHeight().toString()); - return R.ok(); - } else if (param.getType() == 1 && basDevp.getAgvStartPlace() == 1) { - return R.ok(); + staProtocol.setWorkNo((short) commonService.getWorkNo(WorkNoType.PICK.type)); + staProtocol.setStaNo(param.getTargetSite().shortValue()); + basDevpService.updateById(basDevp); + boolean result = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocol)); + if (result) { + return R.ok("鎴愬姛"); } else { - return R.error("涓嶅厑璁�"); + return R.error("涓嬪彂鍛戒护澶辫触:" + param); } } - - @Override - public R getAgvPickAndPlaceV2(TaskOverParam param) { - BasDevp basDevp = basDevpService.selectById(param.getStartPoint()); - if (Cools.isEmpty(basDevp)) { - return R.error("绔欑偣鍙锋湁璇�" + param.getStartPoint()); - } - if (param.getType() == 0) { - basDevp.setAgvTargetPick(1); - basDevpService.updateById(basDevp); - return R.ok(); - } else if (param.getType() == 1) { - basDevp.setAgvTargetPlace(1); - basDevpService.updateById(basDevp); - return R.ok(); - } else { - return R.error("璇锋眰绫诲瀷寮傚父" + param.getType()); - } - } - - public List<Integer> getInEnableRoadway() { - int[] roadway = null; - List<Integer> list = new ArrayList<>(); - Map<Integer, Integer> map = new HashMap<>(); - map.put(103, 1); - map.put(107, 2); - map.put(111, 3); - map.put(115, 4); - map.put(119, 5); - map.put(123, 6); - //put(301,7); - // 鏍规嵁杈撻�佺嚎plc閬嶅巻 - for (DevpSlave devp : slaveProperties.getDevp()) { - // 閬嶅巻鍏ュ簱鍙� - for (DevpSlave.Sta inSta : devp.getInSta()) { - // 鑾峰彇鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(inSta.getBackSta()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - Short workNo = staProtocol.getWorkNo(); - if (workNo == 0 && !staProtocol.isLoading()) { - if (Cools.isEmpty(map.get(inSta.getStaNo()))) { - continue; - } - list.add(map.get(inSta.getStaNo())); - } - } - } - //roadway = list.stream().mapToInt(Integer::intValue).toArray(); - return list; - } - - public List<Integer> getInEnableRoadway2() { - int[] roadway = null; - List<Integer> list = new ArrayList<>(); - Map<Integer, Integer> map = new HashMap<>(); - map.put(205, 1); - map.put(211, 2); - map.put(217, 3); - map.put(223, 4); - map.put(229, 5); - map.put(235, 6); - //put(301,7); - // 鏍规嵁杈撻�佺嚎plc閬嶅巻 - for (DevpSlave devp : slaveProperties.getDevp()) { - // 閬嶅巻鍏ュ簱鍙� - for (DevpSlave.Sta inSta : devp.getInSta()) { - // 鑾峰彇鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(inSta.getBackSta()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - Short workNo = staProtocol.getWorkNo(); - if (workNo == 0 && !staProtocol.isLoading()) { - if (Cools.isEmpty(map.get(inSta.getStaNo()))) { - continue; - } - list.add(map.get(inSta.getStaNo())); - } - } - } - //roadway = list.stream().mapToInt(Integer::intValue).toArray(); - return list; - } - - } -- Gitblit v1.9.1