From 19d106566a98d12a3de3ef7f6816d88c99355ed4 Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期三, 04 一月 2023 10:39:21 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/SteController.java |  176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 171 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/SteController.java b/src/main/java/com/zy/asrs/controller/SteController.java
index 803842b..409c972 100644
--- a/src/main/java/com/zy/asrs/controller/SteController.java
+++ b/src/main/java/com/zy/asrs/controller/SteController.java
@@ -2,28 +2,42 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.annotations.ManagerAuth;
+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.enums.CrnStatusType;
+import com.zy.asrs.domain.param.CrnDemoParam;
+import com.zy.asrs.domain.param.SteModeParam;
+import com.zy.asrs.domain.param.SteOperatorParam;
 import com.zy.asrs.domain.vo.SteMsgTableVo;
 import com.zy.asrs.domain.vo.SteStateTableVo;
+import com.zy.asrs.domain.vo.SteDataVo;
 import com.zy.asrs.entity.BasSte;
+import com.zy.asrs.entity.BasSteErr;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.mapper.BasSteErrMapper;
 import com.zy.asrs.service.BasSteService;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
+import com.zy.core.enums.SteTaskModeType;
+import com.zy.core.model.CrnSlave;
+import com.zy.core.model.SteSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.command.SteCommand;
 import com.zy.core.model.protocol.SteProtocol;
 import com.zy.core.properties.SlaveProperties;
+import com.zy.core.properties.SystemProperties;
 import com.zy.core.thread.SteThread;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -41,6 +55,8 @@
     private BasSteService basSteService;
     @Autowired
     private WrkMastService wrkMastService;
+    @Autowired
+    private BasSteErrMapper basSteErrMapper;
 
     @PostMapping("/table/ste/state")
     @ManagerAuth(memo = "绌挎杞︿俊鎭〃")
@@ -61,7 +77,8 @@
             if (steProtocol == null) {
                 continue;
             }
-            vo.setTaskNo(steProtocol.getTaskNo());  //  浠诲姟鍙�
+            vo.setTaskNo(steProtocol.getTaskNo().intValue());  //  浠诲姟鍙�
+            vo.setStatusVal(steProtocol.getMode().intValue());  // 鍦ㄧ嚎鐘舵��
             vo.setStatusType(steProtocol.mode == 0 ? "绂荤嚎" : "鍦ㄧ嚎");   //  妯″紡鐘舵��
             if (!Cools.isEmpty(steProtocol.getStatus())) {
                 vo.setStatus(steProtocol.getStatusType().desc);     //  鐘舵��
@@ -87,6 +104,14 @@
             if (!Cools.isEmpty(steProtocol.getTrack())) {
                 vo.setTrack(steProtocol.getTrack()==0?"鉁�":"脳");
             }
+            if (!Cools.isEmpty(steProtocol.getChargeStatus())) {
+                vo.setChargeStatus(steProtocol.getChargeStatus()==1?"鉁�":"脳");
+            }
+            if(steProtocol.getAlarm() > 0){
+                BasSteErr steErr = basSteErrMapper.selectById(steProtocol.getAlarm());
+                vo.setAlarm1(steErr==null?"鏈煡寮傚父":steErr.getErrName());
+            }
+            vo.setAlarm2(steProtocol.getAlarm0().toString());
         }
         return R.ok().add(list);
     }
@@ -111,7 +136,7 @@
                 continue;
             }
 
-            vo.setWorkNo(steProtocol.getTaskNo());  //  浠诲姟鍙�
+            vo.setWorkNo(steProtocol.getTaskNo().intValue());  //  浠诲姟鍙�
             if (steProtocol.getTaskNo() > 0) {
                 WrkMast wrkMast = wrkMastService.selectById(steProtocol.getTaskNo());
                 if (wrkMast != null) {
@@ -126,6 +151,7 @@
             }
             vo.setSpeed(steProtocol.getSpeed());  // 閫熷害
             vo.setCloser(steProtocol.getCloser());  // 杩戠偣璺濈
+            vo.setPakMk(steProtocol.getPakMk());    // 浣滀笟鏍囪
         }
         return R.ok().add(list);
     }
@@ -143,4 +169,144 @@
         return R.ok().add(str.toString());
     }
 
+    @GetMapping("/detl/{steNo}")
+    public R steDetl(@PathVariable("steNo") Integer steNo){
+        SteDataVo vo = new SteDataVo();
+        for (SteSlave ste : slaveProperties.getSte()) {
+            if (steNo.equals(ste.getId())) {
+                vo.setSteNo(ste.getId());
+                BasSte basSte = basSteService.selectById(ste.getId());
+                if (!Cools.isEmpty(basSte)) {
+                    vo.setRow(basSte.getRow());
+                    vo.setBay(basSte.getBay());
+                    vo.setLev(basSte.getLev());
+                    vo.setCrnNo(basSte.getCrnNo());
+                    vo.setWorkNo(basSte.getWrkNo());
+                    vo.setPakMk(basSte.getPakMk());
+                }
+                break;
+            }
+        }
+        return R.ok().add(vo);
+    }
+
+    @PostMapping("/detl/update")
+    @ManagerAuth
+    public R steUpdate(SteDataVo vo){
+        BasSte basSte = basSteService.selectById(vo.getSteNo());
+        if (basSte == null) {
+            return R.error();
+        }
+        // 鑾峰彇绌挎杞︿俊鎭�
+        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, vo.getSteNo());
+        SteProtocol steProtocol = steThread.getSteProtocol();
+        if (steProtocol == null) {
+           throw new CoolException(vo.getSteNo() + "鍙风┛姊溅涓嶅湪绾匡紝鏃犳硶淇濆瓨");
+        }
+        if (!Cools.isEmpty(vo.getRow(), vo.getBay(), vo.getLev())) {
+            if (!steThread.modifyPosHandle(vo.getRow(), vo.getBay(), vo.getLev())) {
+                throw new CoolException("鏈嶅姟鍣ㄩ敊璇�");
+            }
+        }
+        SteCommand steCommand = new SteCommand();
+        steCommand.setTaskNo(vo.getWorkNo());
+        if (MessageQueue.offer(SlaveType.Ste, vo.getSteNo(), new Task(2, steCommand))) {
+        } else {
+            throw new CoolException("鍛戒护涓嬪彂澶辫触");
+        }
+        basSte.setPakMk(vo.getPakMk());
+        basSte.setWrkNo(vo.getWorkNo());
+        basSte.setCrnNo(vo.getCrnNo());
+        basSte.setUpdateTime(new Date());
+        if (!basSteService.updateById(basSte)) {
+            throw new CoolException("淇敼澶辫触");
+        }
+        return R.ok();
+    }
+
+
+    /****************************************************************/
+    /************************** 鎵嬪姩鎿嶄綔 ******************************/
+    /****************************************************************/
+
+    @PostMapping("/mode/switch")
+    @ManagerAuth
+    public R crnDemo(SteModeParam param) throws InterruptedException {
+        if (Cools.isEmpty(param.getSteNo())){
+            return R.error();
+        }
+        if (Cools.isEmpty(param.getPassword())){
+            return R.error("璇疯緭鍏ュ彛浠�");
+        }
+        if (!param.getPassword().equals(SystemProperties.WCS_PASSWORD)){
+            return R.error("鍙d护閿欒");
+        }
+        Thread.sleep(200L);
+        for (SteSlave steSlave : slaveProperties.getSte()) {
+            if (steSlave.getId().equals(param.getSteNo())) {
+                // 鑾峰彇绌挎杞︿俊鎭�
+                SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steSlave.getId());
+                SteProtocol steProtocol = steThread.getSteProtocol();
+                if (steProtocol == null) { continue; }
+                SteCommand steCommand = new SteCommand();
+                steCommand.setSteNo(param.getSteNo()); // 绌挎杞︾紪鍙�
+                if (steProtocol.getMode() == 0) {
+                    steCommand.setControlMode((short) 1);
+                } else {
+                    steCommand.setControlMode((short) 0);
+                }
+                if (MessageQueue.offer(SlaveType.Ste, param.getSteNo(), new Task(2, steCommand))) {
+                    return R.ok();
+                } else {
+                    throw new CoolException("鍛戒护涓嬪彂澶辫触");
+                }
+            }
+        }
+        return R.ok();
+    }
+
+    @ManagerAuth(memo = "鎵嬪姩鎿嶄綔")
+    @PostMapping("/operator/ste")
+    public R steOperator(SteOperatorParam param){
+        if (Cools.isEmpty(param.getSteNo(), param.getSteTaskMode())) {
+            return R.parse(BaseRes.PARAM);
+        }
+
+        for (SteSlave ste : slaveProperties.getSte()) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            if (param.getSteNo().equals(ste.getId())) {
+                SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
+                if (steThread == null) {
+                    throw new CoolException("绌挎杞︿笉鍦ㄧ嚎");
+                }
+                SteProtocol steProtocol = steThread.getSteProtocol();
+                if (steProtocol == null) {
+                    throw new CoolException("绌挎杞︿笉鍦ㄧ嚎");
+                }
+                SteTaskModeType steTaskModeType = SteTaskModeType.get(param.getSteTaskMode());
+                SteCommand steCommand = new SteCommand();
+                steCommand.setSteNo(ste.getId()); // 绌挎杞︾紪鍙�
+                if (param.getSteTaskMode() == 16) {
+                    steCommand.setComplete(true);
+                } else if (param.getSteTaskMode() == 99) {
+                    steCommand.setControlMode((short) 1);
+                } else if (param.getSteTaskMode() == 100) {
+                    steCommand.setControlMode((short) 0);
+                } else {
+                    if (steTaskModeType == null) {
+                        throw new CoolException("浠诲姟绫诲瀷閿欒");
+                    }
+                    steCommand.setTaskNo(param.getTaskNo()); // 宸ヤ綔鍙�
+                    steCommand.setTaskMode(steTaskModeType);
+                }
+                if (MessageQueue.offer(SlaveType.Ste, ste.getId(), new Task(2, steCommand))) {
+                    return R.ok();
+                } else {
+                    throw new CoolException("鍛戒护涓嬪彂澶辫触");
+                }
+            }
+        }
+        return R.error();
+    }
+
 }

--
Gitblit v1.9.1