From 4d6bae90f7a2075a5522c7eb0213dbdf5e37a7ff Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 12 六月 2024 10:13:25 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateInTaskParam.java | 20 +++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateOutTaskParam.java | 3
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/task/ShuttlePowerEarlyWarning.java | 117 +++++++++++++++++++++++++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateManualTakeTaskParam.java | 3
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java | 76 ++++++++++++++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateMoveTaskParam.java | 3
6 files changed, 219 insertions(+), 3 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
index 0aab8fc..3e9339b 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.common.SnowflakeIdWorker;
+import com.zy.asrs.wcs.core.domain.param.CreateInTaskParam;
import com.zy.asrs.wcs.core.domain.param.CreateManualTakeTaskParam;
import com.zy.asrs.wcs.core.domain.param.CreateMoveTaskParam;
import com.zy.asrs.wcs.core.domain.param.CreateOutTaskParam;
@@ -49,6 +50,57 @@
@Autowired
private LocService locService;
+ //鐢熸垚鍏ュ簱浠诲姟
+ @PostMapping("/createInTask")
+ public R createInTask(@RequestBody CreateInTaskParam param) {
+ //鑾峰彇鍏ュ簱浠诲姟绫诲瀷
+ TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
+ .eq(TaskCtg::getFlag, "IN")
+ .eq(TaskCtg::getStatus, 1));
+ if (taskCtg == null) {
+ return R.error("浠诲姟绫诲瀷寮傚父");
+ }
+
+ Loc loc = locService.selectByLocNo(param.getDestLoc());
+ if (loc == null) {
+ return R.error("搴撲綅鍙蜂笉瀛樺湪");
+ }
+
+ if (!loc.getLocStsFlag().equals("O")) {
+ return R.error("搴撲綅鐘舵�佷笉婊¤冻鍏ュ簱鏉′欢");
+ }
+
+ //浼樺厛绾�
+ Integer priority = 10;
+ if (param.getPriority() != null) {
+ priority = param.getPriority();
+ }
+
+ Task task = new Task();
+ task.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+ task.setTaskNo(String.valueOf(Utils.getTaskNo("IN")));
+ task.setTaskSts(TaskStsType.NEW_INBOUND.sts);
+ task.setTaskCtg(taskCtg.getId());
+ task.setPriority(priority);
+ task.setOriginSite(param.getOriginSite());
+ task.setOriginLoc(null);
+ task.setDestSite(param.getDestSite());
+ task.setDestLoc(param.getDestLoc());
+ task.setIoTime(new Date());
+ task.setStartTime(new Date());
+ task.setStatus(1);
+ task.setMemo("");
+ task.setShuttleNo(null);//绛夊緟涓荤嚎绋嬪垎閰嶅皬杞�
+ task.setRecordLoc("Y");//璁板綍搴撳瓨淇℃伅
+ task.setHostId(1L);//涓存椂鎺у埗鍙厑璁竓ost涓�1
+
+ boolean result = taskService.save(task);
+ if (!result) {
+ return R.error("鐢熸垚鍏ュ簱浠诲姟澶辫触锛�");
+ }
+ return R.ok();
+ }
+
//鐢熸垚鍑哄簱浠诲姟
@PostMapping("/createOutTask")
public R createOutTask(@RequestBody CreateOutTaskParam param) {
@@ -69,12 +121,18 @@
return R.error("搴撲綅鐘舵�佷笉婊¤冻鍑哄簱鏉′欢");
}
+ //浼樺厛绾�
+ Integer priority = 10;
+ if (param.getPriority() != null) {
+ priority = param.getPriority();
+ }
+
Task task = new Task();
task.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT")));
task.setTaskSts(TaskStsType.NEW_OUTBOUND.sts);
task.setTaskCtg(taskCtg.getId());
- task.setPriority(10);
+ task.setPriority(priority);
task.setOriginSite(param.getOriginSite());
task.setOriginLoc(param.getOriginLoc());
task.setDestSite(param.getDestSite());
@@ -105,12 +163,18 @@
return R.error("浠诲姟绫诲瀷寮傚父");
}
+ //浼樺厛绾�
+ Integer priority = 10;
+ if (param.getPriority() != null) {
+ priority = param.getPriority();
+ }
+
Task task = new Task();
task.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT")));
task.setTaskSts(TaskStsType.NEW_MANUAL.sts);
task.setTaskCtg(taskCtg.getId());
- task.setPriority(10);
+ task.setPriority(priority);
task.setOriginSite(null);
task.setOriginLoc(param.getOriginLoc());//婧愬簱浣�
task.setDestSite(null);
@@ -158,12 +222,18 @@
return R.error("绌挎杞﹀拰鐩爣浣嶇疆涓嶅湪鍚屼竴妤煎眰");
}
+ //浼樺厛绾�
+ Integer priority = 10;
+ if (param.getPriority() != null) {
+ priority = param.getPriority();
+ }
+
Task task = new Task();
task.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT")));
task.setTaskSts(TaskStsType.NEW_MOVE.sts);
task.setTaskCtg(taskCtg.getId());
- task.setPriority(10);
+ task.setPriority(priority);
task.setOriginSite(null);
task.setOriginLoc(null);
task.setDestSite(param.getDestSite());
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateInTaskParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateInTaskParam.java
new file mode 100644
index 0000000..19ed5ad
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateInTaskParam.java
@@ -0,0 +1,20 @@
+package com.zy.asrs.wcs.core.domain.param;
+
+import lombok.Data;
+
+@Data
+public class CreateInTaskParam {
+
+ //鍏ュ簱搴撲綅
+ private String destLoc;
+
+ //婧愮珯
+ private String originSite;
+
+ //鐩爣绔�
+ private String destSite;
+
+ //浼樺厛绾�
+ private Integer priority;
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateManualTakeTaskParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateManualTakeTaskParam.java
index 96fc209..01d7338 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateManualTakeTaskParam.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateManualTakeTaskParam.java
@@ -14,4 +14,7 @@
//鏄惁璁板綍搴撳瓨淇℃伅
private Boolean record;
+ //浼樺厛绾�
+ private Integer priority;
+
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateMoveTaskParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateMoveTaskParam.java
index 76c45cc..e3d609b 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateMoveTaskParam.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateMoveTaskParam.java
@@ -11,4 +11,7 @@
//鐩爣搴撲綅
private String destSite;
+ //浼樺厛绾�
+ private Integer priority;
+
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateOutTaskParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateOutTaskParam.java
index 49285ab..d7d86f0 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateOutTaskParam.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateOutTaskParam.java
@@ -14,4 +14,7 @@
//鐩爣绔�
private String destSite;
+ //浼樺厛绾�
+ private Integer priority;
+
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/task/ShuttlePowerEarlyWarning.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/task/ShuttlePowerEarlyWarning.java
new file mode 100644
index 0000000..ffb3a37
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/task/ShuttlePowerEarlyWarning.java
@@ -0,0 +1,117 @@
+package com.zy.asrs.wcs.core.task;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.utils.HttpHandler;
+import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
+import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
+import com.zy.asrs.wcs.rcs.entity.Device;
+import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
+import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
+import com.zy.asrs.wcs.rcs.service.DeviceService;
+import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
+import com.zy.asrs.wcs.system.entity.Dict;
+import com.zy.asrs.wcs.system.service.DictService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * 灏忚溅鐢甸噺棰勮妫�娴� => 寮哄埗棰勮
+ */
+@Component
+@Slf4j
+public class ShuttlePowerEarlyWarning {
+
+ @Autowired
+ private DictService dictService;
+ @Autowired
+ private DeviceService deviceService;
+
+ /**
+ * 灏忚溅鐢甸噺棰勮妫�娴� => 寮哄埗棰勮
+ * 姣�30鍒嗛挓鎵弿涓�娆�
+ */
+ @Scheduled(cron = "0 30 * * * ? ")
+ public synchronized void shuttlePowerEarlyWarning() {
+ Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "dingdingReportUrl"));
+ if (dict == null) {
+ return;
+ }
+
+ if (dict.getStatus() == 0) {
+ return;//閫氱煡绂佺敤
+ }
+
+ //灏忚溅鐢甸噺棰勮闃堝��
+ int shuttlePowerEarlyValue = 20;//榛樿20
+ Dict shuttlePowerEarlyConfig = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttlePowerEarlyValue"));
+ if (shuttlePowerEarlyConfig != null) {
+ shuttlePowerEarlyValue = Integer.parseInt(shuttlePowerEarlyConfig.getValue());
+ }
+
+ String title = "銆愰�氱煡銆戝洓鍚戝簱";
+ Dict shuttlePowerEarlyTitle = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttlePowerEarlyTitle"));
+ if (shuttlePowerEarlyTitle != null) {
+ title = shuttlePowerEarlyTitle.getValue();
+ }
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(title);
+ buffer.append("\n");//娑堟伅鏍囬
+
+ boolean hasReport = false;//鏄惁鏈夐渶瑕佹姤鍛婄殑鏁版嵁
+ List<Device> list = deviceService.list(new LambdaQueryWrapper<Device>()
+ .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
+ .eq(Device::getStatus, 1));
+ for (Device device : list) {
+ //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue());
+ if (shuttleThread == null) {
+ continue;
+ }
+
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ continue;
+ }
+
+ if (shuttleProtocol.getHasCharge()) {
+ continue;//鍏呯數涓紝鏃犻渶閫氱煡
+ }
+
+ if (Double.parseDouble(shuttleProtocol.getBatteryPower()) < shuttlePowerEarlyValue) {
+ buffer.append(shuttleProtocol.getShuttleNo()).append("鍙峰皬杞︼紝鐢甸噺").append(shuttleProtocol.getBatteryPower()).append("锛岃娉ㄦ剰銆俓n");
+ hasReport = true;
+ }
+ }
+
+ if (hasReport) {
+ try {
+ HashMap<String, Object> param = new HashMap<>();
+ HashMap<String, Object> data = new HashMap<>();
+ data.put("content", buffer.toString());
+ param.put("msgtype", "text");
+ param.put("text", data);
+ String response = new HttpHandler.Builder()
+ .setUri(dict.getValue())
+ .setJson(JSON.toJSONString(param))
+ .setHttps(true)
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.get("errmsg").equals("ok")) {
+ return;//鍙戦�佹垚鍔�
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+}
--
Gitblit v1.9.1