From 34b2641f4a039d4e1dcf8f4a93dd7928616c4b11 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期四, 15 一月 2026 15:17:09 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/OpenController.java | 448 +++++++++++++++++++++++--------------------------------
1 files changed, 186 insertions(+), 262 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index de31363..abc031f 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,37 +1,39 @@
package com.zy.asrs.controller;
-import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
import com.core.common.R;
-import com.zy.asrs.domain.ShuttleGatherResult;
-import com.zy.asrs.domain.enums.NotifyMsgType;
+import com.core.exception.CoolException;
import com.zy.asrs.domain.param.*;
-import com.zy.asrs.entity.ApiLog;
+import com.zy.asrs.entity.DeviceConfig;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.DeviceConfigService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.utils.NotifyUtils;
import com.zy.common.annotations.OpenApiLog;
import com.zy.common.service.CommonService;
import com.zy.core.cache.SlaveConnection;
-import com.zy.core.dispatcher.ShuttleDispatchUtils;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.WrkIoType;
-import com.zy.core.model.ForkLiftSlave;
-import com.zy.core.model.ShuttleSlave;
-import com.zy.core.model.protocol.ForkLiftProtocol;
-import com.zy.core.model.protocol.ShuttleProtocol;
-import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.ForkLiftThread;
-import com.zy.core.thread.ShuttleThread;
+import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.protocol.DualCrnProtocol;
+import com.zy.core.model.protocol.RgvProtocol;
+import com.zy.core.model.protocol.StationProtocol;
+import com.zy.core.thread.CrnThread;
+import com.zy.core.thread.DualCrnThread;
+import com.zy.core.thread.RgvThread;
+import com.zy.core.thread.StationThread;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
+
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
-import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -40,51 +42,24 @@
@RequestMapping("/openapi")
public class OpenController {
+ @Value("${mainProcessPlugin}")
+ private String mainProcessPlugin;
+ @Value("${app.version:1.0.0}")
+ private String appVersion;
+ @Value("${app.version-type:stable}")
+ private String appVersionType;
@Autowired
private CommonService commonService;
- @Autowired
- private ShuttleDispatchUtils shuttleDispatchUtils;
- @Autowired
- private NotifyUtils notifyUtils;
- @Autowired
- private SlaveProperties slaveProperties;
- @Autowired
- private ApiLogService apiLogService;
@Autowired
private LocMastService locMastService;
@Autowired
private WrkMastService wrkMastService;
+ @Autowired
+ private ConfigService configService;
+ @Autowired
+ private DeviceConfigService deviceConfigService;
- @PostMapping("/createMoveTask")
- @OpenApiLog(memo = "灏忚溅绉诲姩浠诲姟")
- public R createMoveTask(@RequestBody CreateMoveTaskParam param) {
- if (param == null) {
- return R.error("鍙傛暟涓嶈兘涓虹┖");
- }
- boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(null, param.getLocNo(), param.getShuttleNo());
- apiLogService.insert(new ApiLog(
- null
- , "灏忚溅绉诲姩浠诲姟"
- , "/createMoveTask"
- , null
- , null
- , null
- , JSON.toJSONString(param)
- , null
- , null
- , dispatchShuttle ? 1 : 0
- , 1
- , new Date()
- , null
- , null
- ));
- if (dispatchShuttle) {
- return R.ok();
- }
- return R.error("鐢熸垚澶辫触");
- }
-
- //绉诲簱浠诲姟
+ // 绉诲簱浠诲姟
@PostMapping("/createLocMoveTask")
@OpenApiLog(memo = "绉诲簱浠诲姟")
public R createLocMoveTask(@RequestBody CreateLocMoveTaskParam param) {
@@ -92,59 +67,27 @@
return R.error("鍙傛暟涓嶈兘涓虹┖");
}
boolean result = commonService.createLocMoveTask(param);
- apiLogService.insert(new ApiLog(
- null
- , "绉诲簱浠诲姟"
- , "/createLocMoveTask"
- , null
- , null
- , null
- , JSON.toJSONString(param)
- , null
- , null
- , result ? 1 : 0
- , 1
- , new Date()
- , null
- , null
- ));
if (result) {
return R.ok();
}
return R.error("鐢熸垚绉诲簱浠诲姟澶辫触");
}
- //鍏ュ簱浠诲姟
+ // 鍏ュ簱浠诲姟
@PostMapping("/createInTask")
@OpenApiLog(memo = "鍏ュ簱浠诲姟")
public R createInTask(@RequestBody CreateInTaskParam param) {
if (param == null) {
return R.error("鍙傛暟涓嶈兘涓虹┖");
}
- boolean result = commonService.createInTask(param);
- apiLogService.insert(new ApiLog(
- null
- , "鍏ュ簱浠诲姟"
- , "/createInTask"
- , null
- , null
- , null
- , JSON.toJSONString(param)
- , null
- , null
- , result ? 1 : 0
- , 1
- , new Date()
- , null
- , null
- ));
- if (result) {
+ WrkMast wrkMast = commonService.createInTask(param);
+ if (wrkMast != null) {
return R.ok();
}
return R.error("鐢熸垚鍏ュ簱浠诲姟澶辫触");
}
- //鍑哄簱浠诲姟
+ // 鍑哄簱浠诲姟
@PostMapping("/createOutTask")
@OpenApiLog(memo = "鍑哄簱浠诲姟")
public R createOutTask(@RequestBody CreateOutTaskParam param) {
@@ -152,26 +95,33 @@
return R.error("鍙傛暟涓嶈兘涓虹┖");
}
boolean result = commonService.createOutTask(param);
- apiLogService.insert(new ApiLog(
- null
- , "鍑哄簱浠诲姟"
- , "/createOutTask"
- , null
- , null
- , null
- , JSON.toJSONString(param)
- , null
- , null
- , result ? 1 : 0
- , 1
- , new Date()
- , null
- , null
- ));
if (result) {
return R.ok();
}
return R.error("鐢熸垚鍑哄簱浠诲姟澶辫触");
+ }
+
+ // 鎵归噺鍑哄簱浠诲姟
+ @PostMapping("/createOutTaskBatch")
+ @OpenApiLog(memo = "鎵归噺鍑哄簱浠诲姟")
+ @Transactional
+ public R createOutTaskBatch(@RequestBody CreateOutTaskBatchParam param) {
+ if (param == null) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ List<CreateOutTaskParam> taskList = param.getTaskList();
+ if (taskList == null || taskList.size() == 0) {
+ return R.error("浠诲姟鍒楄〃涓嶈兘涓虹┖");
+ }
+
+ for (CreateOutTaskParam createOutTaskParam : taskList) {
+ if (createOutTaskParam == null) {
+ throw new CoolException("浠诲姟鍙傛暟涓嶈兘涓虹┖");
+ }
+ commonService.createOutTask(createOutTaskParam);
+ }
+ return R.ok();
}
@PostMapping("/completeTask")
@@ -181,22 +131,6 @@
return R.error("鍙傛暟涓嶈兘涓虹┖");
}
boolean completeTask = commonService.completeTask(param);
- apiLogService.insert(new ApiLog(
- null
- , "浠诲姟瀹屾垚"
- , "/completeTask"
- , null
- , null
- , null
- , JSON.toJSONString(param)
- , null
- , null
- , completeTask ? 1 : 0
- , 1
- , new Date()
- , null
- , null
- ));
if (completeTask) {
return R.ok();
}
@@ -210,82 +144,88 @@
return R.error("鍙傛暟涓嶈兘涓虹┖");
}
boolean completeTask = commonService.cancelTask(param);
- apiLogService.insert(new ApiLog(
- null
- , "浠诲姟鍙栨秷"
- , "/cancelTask"
- , null
- , null
- , null
- , JSON.toJSONString(param)
- , null
- , null
- , completeTask ? 1 : 0
- , 1
- , new Date()
- , null
- , null
- ));
if (completeTask) {
return R.ok();
}
return R.error("浠诲姟鍙栨秷澶辫触");
}
- @PostMapping("/deviceStatus")
- @OpenApiLog(memo = "鑾峰彇璁惧鐘舵��")
+ @RequestMapping("/deviceStatus")
+ // @OpenApiLog(memo = "鑾峰彇璁惧鐘舵��")
public R getDeviceStatus() {
HashMap<String, Object> map = new HashMap<>();
- //鑾峰彇灏忚溅鏁版嵁
- ArrayList<ShuttleProtocol> shuttleProtocols = new ArrayList<>();
- for (ShuttleSlave slave : slaveProperties.getShuttle()) {
- ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId());
- if (shuttleThread == null) {
+ // 鑾峰彇鍫嗗灈鏈烘暟鎹�
+ ArrayList<CrnProtocol> crnProtocols = new ArrayList<>();
+ List<DeviceConfig> crnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+ .eq("device_type", String.valueOf(SlaveType.Crn)));
+ for (DeviceConfig device : crnList) {
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, device.getDeviceNo());
+ if (crnThread == null) {
continue;
}
- ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
- if (shuttleProtocol == null) {
+ CrnProtocol crnProtocol = crnThread.getStatus();
+ if (crnProtocol == null) {
continue;
}
- shuttleProtocols.add(shuttleProtocol);
+ crnProtocols.add(crnProtocol);
}
- //鑾峰彇璐у弶鎻愬崌鏈烘暟鎹�
- ArrayList<ForkLiftProtocol> forkLiftProtocols = new ArrayList<>();
- for (ForkLiftSlave slave : slaveProperties.getForkLift()) {
- ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, slave.getId());
- if (forkLiftThread == null) {
+ // 鑾峰彇RGV鏁版嵁
+ ArrayList<RgvProtocol> rgvProtocols = new ArrayList<>();
+ List<DeviceConfig> rgvList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+ .eq("device_type", String.valueOf(SlaveType.Rgv)));
+ for (DeviceConfig device : rgvList) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, device.getDeviceNo());
+ if (rgvThread == null) {
continue;
}
- ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
- if (forkLiftProtocol == null) {
+ RgvProtocol rgvProtocol = rgvThread.getStatus();
+ if (rgvProtocol == null) {
continue;
}
- forkLiftProtocols.add(forkLiftProtocol);
+ rgvProtocols.add(rgvProtocol);
}
- map.put("shuttle", shuttleProtocols);
- map.put("forkLift", forkLiftProtocols);
+ // 鑾峰彇鍙屽伐浣嶅爢鍨涙満鏁版嵁
+ ArrayList<DualCrnProtocol> dualCrnProtocols = new ArrayList<>();
+ List<DeviceConfig> dualCrnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+ .eq("device_type", String.valueOf(SlaveType.DualCrn)));
+ for (DeviceConfig device : dualCrnList) {
+ DualCrnThread dualCrnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, device.getDeviceNo());
+ if (dualCrnThread == null) {
+ continue;
+ }
- apiLogService.insert(new ApiLog(
- null
- , "鑾峰彇璁惧鐘舵��"
- , "/deviceStatus"
- , null
- , null
- , null
- , null
- , JSON.toJSONString(map)
- , null
- , null
- , 1
- , new Date()
- , null
- , null
- ));
+ DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
+ if (dualCrnProtocol == null) {
+ continue;
+ }
+ dualCrnProtocols.add(dualCrnProtocol);
+ }
+ // 鑾峰彇杈撻�佺珯鐐规暟鎹�
+ ArrayList<StationProtocol> stationProtocols = new ArrayList<>();
+ List<DeviceConfig> stationList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+ .eq("device_type", String.valueOf(SlaveType.Devp)));
+ for (DeviceConfig device : stationList) {
+ StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, device.getDeviceNo());
+ if (stationThread == null) {
+ continue;
+ }
+
+ List<StationProtocol> stationProtocolList = stationThread.getStatus();
+ if (stationProtocolList == null) {
+ continue;
+ }
+ stationProtocols.addAll(stationProtocolList);
+ }
+
+ map.put("crnList", crnProtocols);
+ map.put("rgvList", rgvList);
+ map.put("dualCrnList", dualCrnProtocols);
+ map.put("stationList", stationProtocols);
return R.ok().add(map);
}
@@ -303,128 +243,112 @@
HashMap<String, Object> map = new HashMap<>();
map.put("locNo", locMast.getLocNo());
map.put("locSts", locMast.getLocSts());
-
- apiLogService.insert(new ApiLog(
- null
- , "鑾峰彇鎸囧畾搴撲綅淇℃伅"
- , "/getLocInformation"
- , null
- , null
- , null
- , JSON.toJSONString(param)
- , JSON.toJSONString(map)
- , null
- , null
- , 1
- , new Date()
- , null
- , null
- ));
-
+ map.put("barcode", locMast.getBarcode());
return R.ok().add(map);
}
@PostMapping("/getAllLocInformation")
@OpenApiLog(memo = "鑾峰彇鍏ㄩ儴搴撲綅淇℃伅")
- public R getAllLocInformation() {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>());
- if (locMasts.isEmpty()) {
- return R.error("搴撲綅淇℃伅涓嶅瓨鍦�");
+ public R getAllLocInformation(@RequestBody GetAllLocInformationParam param) {
+ List<HashMap<String, Object>> list = new ArrayList<>();
+ EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
+
+ if (!Cools.isEmpty(param.getRow())) {
+ wrapper.eq("row1", param.getRow());
}
- ArrayList<HashMap<String, Object>> list = new ArrayList<>();
+ if (!Cools.isEmpty(param.getLev())) {
+ wrapper.eq("lev1", param.getLev());
+ }
+
+ List<LocMast> locMasts = locMastService.selectList(wrapper);
+ if (locMasts.isEmpty()) {
+ return R.ok().add(list);
+ }
+
for (LocMast locMast : locMasts) {
HashMap<String, Object> map = new HashMap<>();
map.put("locNo", locMast.getLocNo());
map.put("locSts", locMast.getLocSts());
+ map.put("barcode", locMast.getBarcode());
+ map.put("row", locMast.getRow1());
+ map.put("bay", locMast.getBay1());
+ map.put("lev", locMast.getLev1());
list.add(map);
}
- apiLogService.insert(new ApiLog(
- null
- , "鑾峰彇鍏ㄩ儴搴撲綅淇℃伅"
- , "/getAllLocInformation"
- , null
- , null
- , null
- , null
- , JSON.toJSONString(list)
- , null
- , null
- , 1
- , new Date()
- , null
- , null
- ));
-
return R.ok().add(list);
- }
-
- @PostMapping("/shuttleGather")
- @OpenApiLog(memo = "灏忚溅闆嗗悎")
- public R shuttleGather(@RequestBody ShuttleGatherParam param) {
- List<ShuttleGatherResult> shuttleGather = shuttleDispatchUtils.shuttleGather(param);
-
- apiLogService.insert(new ApiLog(
- null
- , "灏忚溅闆嗗悎"
- , "/shuttleGather"
- , null
- , null
- , null
- , null
- , JSON.toJSONString(shuttleGather)
- , null
- , null
- , 1
- , new Date()
- , null
- , null
- ));
-
- return R.ok().add(shuttleGather);
}
@PostMapping("/queryTask")
@OpenApiLog(memo = "鏌ヨ浠诲姟")
public R queryTask(@RequestBody QueryTaskParam param) {
EntityWrapper<WrkMast> wrapper = new EntityWrapper<>();
- if(param.getTaskNo() != null) {
+ if (param.getTaskNo() != null) {
wrapper.eq("wms_wrk_no", param.getTaskNo());
}
- if(param.getTaskType() != null) {
+ if (param.getTaskType() != null) {
WrkIoType ioType = WrkIoType.get(param.getTaskType());
- if(ioType == null) {
+ if (ioType == null) {
return R.error("浠诲姟绫诲瀷涓嶅瓨鍦�");
}
wrapper.eq("io_type", ioType.id);
}
List<WrkMast> wrkMasts = wrkMastService.selectList(wrapper);
- apiLogService.insert(new ApiLog(
- null
- , "鏌ヨ浠诲姟"
- , "/queryTask"
- , null
- , null
- , null
- , null
- , JSON.toJSONString(wrkMasts)
- , null
- , null
- , 1
- , new Date()
- , null
- , null
- ));
-
return R.ok().add(wrkMasts);
}
- @GetMapping("/test")
- public R test() {
- notifyUtils.notify("task", 1, "9999", "W9999", NotifyMsgType.SHUTTLE_MOVING, "data");
- notifyUtils.notify(String.valueOf(SlaveType.Shuttle), 2, "9999", "W9999", NotifyMsgType.SHUTTLE_MOVE_COMPLETE);
+ @GetMapping("/systemStatus")
+ public R systemStatus() {
+ return R.ok();
+ }
+
+ @GetMapping("/getSystemVersion")
+ public R getSystemVersion() {
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("version", appVersion);
+ map.put("versionType", appVersionType);
+ return R.ok().add(map);
+ }
+
+ @GetMapping("/getFakeSystemRunStatus")
+ public R getFakeSystemRunStatus() {
+ HashMap<String, Object> map = new HashMap<>();
+ if (mainProcessPlugin.contains("Fake")) {
+ map.put("running", false);
+ map.put("isFake", true);
+ Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "enableFake"));
+ if (config != null) {
+ if (config.getValue().equals("Y")) {
+ map.put("running", true);
+ }
+ }
+ } else {
+ map.put("isFake", false);
+ }
+ return R.ok().add(map);
+ }
+
+ @PostMapping("/startFakeSystem")
+ @OpenApiLog(memo = "鍚姩浠跨湡妯℃嫙")
+ public R startFakeSystem() {
+ Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "enableFake"));
+ if (config != null) {
+ config.setValue("Y");
+ configService.updateById(config);
+ }
+ return R.ok();
+ }
+
+ @PostMapping("/stopFakeSystem")
+ @OpenApiLog(memo = "鍋滄浠跨湡妯℃嫙")
+ public R stopFakeSystem() {
+ Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "enableFake"));
+ if (config != null) {
+ config.setValue("N");
+ configService.updateById(config);
+ }
return R.ok();
}
--
Gitblit v1.9.1