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