From 276d837c0bb808e6d93ac7c7ba6abe654c75552e Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 09 二月 2026 08:45:45 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/OpenController.java | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 153 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index a07109a..35b839a 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -9,23 +9,35 @@
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.param.ArmPrecomputeParam;
import com.zy.asrs.service.OpenService;
+import com.zy.asrs.service.impl.WrkMastServiceImpl;
import com.zy.common.web.BaseController;
+import com.zy.core.cache.RgvStatusCache;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.CrnSlave;
+import com.zy.core.model.DevpSlave;
+import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.protocol.RgvProtocol;
+import com.zy.core.model.protocol.StaProtocol;
+import com.zy.core.properties.SlaveProperties;
+import com.zy.core.thread.SiemensCrnThread;
+import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+
+import com.zy.asrs.entity.param.TaskCreateParam;
/**
* Created by vincent on 2024/10/16
*/
@Slf4j
@RestController
-@RequestMapping("open/hd")
+@RequestMapping("open/")
public class OpenController extends BaseController {
private static final boolean auth = true;
@@ -35,6 +47,11 @@
@Autowired
private OpenService openService;
+
+ @Autowired
+ private SlaveProperties slaveProperties;
+ @Autowired
+ private WrkMastServiceImpl wrkMastService;
/**
* 娣诲姞鍑哄簱鍗�
@@ -65,6 +82,138 @@
return R.ok().add(param);
}
+ /**
+ * 璁惧鐘舵��
+ */
+ @PostMapping("/deviceStatus")
+ @AppAuth(memo = "璁惧鐘舵�佽幏鍙�")
+ public R deviceStatus(
+ @RequestHeader(required = false) String appkey,
+ HttpServletRequest request) {
+
+ try {
+ auth(appkey, null, request);
+ } catch (Exception e) {
+ return new R(403, e.getMessage());
+ }
+
+ // 1. 绔欑偣
+ List<Map<String, Object>> devList = new ArrayList<>();
+ if (slaveProperties.getDevp() != null) {
+ for (DevpSlave devpSlave : slaveProperties.getDevp()) {
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId());
+ if (devpThread != null && devpThread.getStation() != null) {
+ for (StaProtocol staProtocol : devpThread.getStation().values()) {
+ Map<String, Object> dev = new HashMap<>();
+ dev.put("devNo", staProtocol.getSiteId());
+ dev.put("inEnable", staProtocol.isInEnable() ? "1" : "0");
+ dev.put("outEnable", staProtocol.isOutEnable() ? "1" : "0");
+ dev.put("autoing", staProtocol.isAutoing() ? "1" : "0");
+ dev.put("loading", staProtocol.isLoading() ? "1" : "0");
+ dev.put("wrkNo", staProtocol.getWorkNo());
+ dev.put("barcode", staProtocol.getBarcode());
+ dev.put("devErr", staProtocol.getErrorDev$());
+ dev.put("devErrM", staProtocol.getExceptions());
+ devList.add(dev);
+ }
+ }
+ }
+ }
+ devList.sort(Comparator.comparingInt(m -> (Integer) m.get("devNo")));
+
+ // 2. 鍫嗗灈鏈�
+ List<Map<String, Object>> crnList = new ArrayList<>();
+ if (slaveProperties.getCrn() != null) {
+ for (CrnSlave crnSlave : slaveProperties.getCrn()) {
+ SiemensCrnThread crnThread = (SiemensCrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId());
+ if (crnThread != null && crnThread.getCrnProtocol() != null) {
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ Map<String, Object> crn = new HashMap<>();
+ crn.put("crnNo", crnProtocol.getCrnNo());
+ crn.put("crnNoH", crnProtocol.getCrnNo());
+ crn.put("crnSts", crnProtocol.getMode());
+ crn.put("wrkNo", crnProtocol.getTaskNo());
+ crn.put("crnErr", crnProtocol.getAlarm());
+ crn.put("crnErrM", crnProtocol.getExceptions());
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",crnProtocol.getTaskNo()));
+ crn.put("frmLocno",wrkMast != null ? wrkMast.getSourceLocNo():null);
+ crn.put("frmSta",wrkMast != null ? wrkMast.getSourceStaNo():0);
+ crn.put("toSta", wrkMast != null? wrkMast.getStaNo():0);
+ crn.put("toLocno", wrkMast != null ? wrkMast.getLocNo():null);
+ crnList.add(crn);
+ }
+ }
+ }
+ crnList.sort(Comparator.comparingInt(m -> (Integer) m.get("crnNo")));
+
+ // 3. 绌挎杞�
+ List<Map<String, Object>> steList = new ArrayList<>();
+ Map<Integer, RgvProtocol> rgvMap = RgvStatusCache.getAllRgvStatus();
+ if (rgvMap != null) {
+ for (RgvProtocol rgvProtocol : rgvMap.values()) {
+ Map<String, Object> ste = new HashMap<>();
+ ste.put("steNo", rgvProtocol.getRgvNo());
+ ste.put("crnSts", rgvProtocol.getStatusType() != null ? rgvProtocol.getStatusType().id : 1);
+ ste.put("wrkNo", rgvProtocol.getTaskNo());
+ ste.put("steErr", rgvProtocol.getAlarm$());
+ ste.put("steErrM", rgvProtocol.getAlarmM());
+ steList.add(ste);
+ }
+ }
+ steList.sort(Comparator.comparingInt(m -> (Integer) m.get("steNo")));
+
+ R r = R.ok();
+ r.put("devList", devList);
+ r.put("crnList", crnList);
+ r.put("steList", steList);
+ return r;
+ }
+
+
+
+ /**
+ * 浠诲姟涓嬪彂
+ */
+ @PostMapping("/taskCreate")
+ @AppAuth(memo = "浠诲姟涓嬪彂")
+ public R taskCreate(@RequestHeader(required = false) String appkey,
+ @RequestBody TaskCreateParam param,
+ HttpServletRequest request) {
+ try {
+ auth(appkey, param, request);
+ } catch (Exception e) {
+ return new R(403, e.getMessage());
+ }
+
+ if (Cools.isEmpty(param)) {
+ return R.parse(BaseRes.PARAM);
+ }
+
+ if (Cools.isEmpty(param.getTaskNo())) {
+ return R.error("宸ヤ綔鍙穂taskNo]涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getBarcode())) {
+ return R.error("瀹瑰櫒缂栫爜[barcode]涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getStartPoint())) {
+ return R.error("璧风偣[startPoint]涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getTargetPoint())) {
+ return R.error("鐩爣鐐筟targetPoint]涓嶈兘涓虹┖");
+ }
+
+ try {
+ boolean result = openService.taskCreate(param);
+ if (result) {
+ return R.ok("浠诲姟涓嬪彂鎴愬姛");
+ } else {
+ return R.error("浠诲姟涓嬪彂澶辫触");
+ }
+ } catch (Exception e) {
+ log.error("浠诲姟涓嬪彂寮傚父", e);
+ return R.error("浠诲姟涓嬪彂寮傚父: " + e.getMessage());
+ }
+ }
private void auth(String appkey, Object obj, HttpServletRequest request) {
// log.info("{}鎺ュ彛琚闂紱appkey:{}锛涜姹傛暟鎹細{}", "open/sensorType/list/auth/v1", appkey, JSON.toJSONString(obj));
--
Gitblit v1.9.1