From a672a436711f512c05ee100700d863a654a7c69d Mon Sep 17 00:00:00 2001
From: tzsk <Administrator@qq.com>
Date: 星期五, 10 五月 2024 15:38:17 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/AgvOpenController.java |  216 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 120 insertions(+), 96 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvOpenController.java b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
index e825c78..1d108a5 100644
--- a/src/main/java/com/zy/asrs/controller/AgvOpenController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -1,14 +1,15 @@
 package com.zy.asrs.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.annotations.AppAuth;
 import com.core.common.Cools;
 import com.core.common.R;
 import com.zy.asrs.entity.AgvWrkMast;
-import com.zy.asrs.entity.ApiLog;
 import com.zy.asrs.entity.param.AgvTaskCallBackParam;
 import com.zy.asrs.service.*;
+import com.zy.asrs.utils.AppAuthUtil;
 import com.zy.common.web.BaseController;
 import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
@@ -21,10 +22,11 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.PostConstruct;
+import javax.servlet.http.HttpServletRequest;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.util.Date;
 import java.util.EnumSet;
+import java.util.Map;
 
 /**
  * 涓婃姤浜嬩欢绫诲瀷锛坋ventType锛夛細
@@ -54,25 +56,39 @@
 
     @PostMapping("/task/event/status")
     @AppAuth(memo = "ESS浠诲姟鍥炶皟")
-    public R taskEventStaus(@RequestBody AgvTaskCallBackParam param){
+    public R taskEventStaus(@RequestBody AgvTaskCallBackParam param, HttpServletRequest request){
 
-        //淇濆瓨姣忔璋冪敤璇ユ帴鍙g殑鍙傛暟锛屼綔涓哄巻鍙插彲鏌ヨ
-        //saveApiLog(param);
+        apiLogService.save(
+                "ESS浠诲姟鍥炶皟",
+                "/tzskwms/agv/task/event/status",
+                null,
+                null,
+                JSON.toJSONString(JSONObject.toJSONString(param)),
+                null,
+                true
+        );
 
-        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", param.getTaskCode()));
-        if(Cools.isEmpty(agvWrkMast)){
-            return R.error("浠诲姟缂栧彿閿欒");
+
+        //save api log (appkey 鍚庣画娣诲姞)
+
+        AppAuthUtil.auth("",param, request);
+        int wrkNo = Integer.parseInt(param.getTaskCode());
+        if(wrkNo < 0){
+            wrkNo = -wrkNo;
         }
-
-        if(!checkParam(param,agvWrkMast)){
-            return R.error("浠诲姟鍙傛暟涓庡伐浣滄。鍙傛暟涓嶇鍚�");
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", wrkNo));
+        if(Cools.isEmpty(agvWrkMast)){
+            agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode",param.getContainerCode()));
+            if (Cools.isEmpty(agvWrkMast)){
+                return R.error("浠诲姟缂栧彿閿欒");
+            }
         }
 
         AgvTask agvTask = AgvTask.valueOf(param.getEventType());
         Class<AgvTask> clz = AgvTask.class;
         try {
-            Method method = clz.getDeclaredMethod(param.getStatus(),AgvTaskCallBackParam.class);
-            method.invoke(agvTask,param);
+            Method method = clz.getDeclaredMethod(param.getStatus(), AgvWrkMast.class, AgvTaskCallBackParam.class);
+            method.invoke(agvTask,agvWrkMast,param);
         } catch (NoSuchMethodException e) {
             return R.error("浠诲姟鐘舵�乻tatus鍙傛暟鏈夎");
         } catch (InvocationTargetException e) {
@@ -85,25 +101,12 @@
         return R.ok();
     }
 
-    private boolean checkParam(AgvTaskCallBackParam param, AgvWrkMast agvWrkMast){
-        if(!agvWrkMast.getLocNo().equals(param.getLocationCode())){
-            return false;
-        }
-        if(!agvWrkMast.getSourceLocNo().equals(param.getStationCode())){
-            return false;
-        }
-        return true;
-    }
+    @PostMapping("/conveyor/loadContainerFinish ")
+    @AppAuth(memo = "鍙栧鍣ㄥ畬鎴愰�氱煡")
+    public R loadContainerFinish(@RequestBody Map<String,Object> params){
 
-    private void saveApiLog(AgvTaskCallBackParam param){
-        ApiLog apiLog = new ApiLog();
-        apiLog.setNamespace("ESS浠诲姟鍥炶皟");
-        apiLog.setUrl("/agv/task/event/status");
-        apiLog.setRequest(JSONObject.toJSONString(param));
-        apiLog.setCreateTime(new Date());
-        apiLogService.insert(apiLog);
+        return R.ok();
     }
-
 }
 
 enum AgvTask{
@@ -113,39 +116,57 @@
      */
     task{
         @Transactional
-        public void success(AgvTaskCallBackParam param) {
+        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
+
+            //閽堝鍚屼竴涓枡绠卞叆搴撴椂浜х敓涓ゆ潯涓嶅悓鐩爣搴撲綅鐨勫叆搴撳伐浣滄。
+            if(agvWrkMast.getIoType() == 1 && !Cools.eq(agvWrkMast.getLocNo(),param.getLocationCode())){
+
+                //鏌ヨ鏂扮殑宸ヤ綔妗�
+                AgvWrkMast agvWrkMast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>()
+                        .eq("barcode", param.getContainerCode())
+                        .eq("loc_no",param.getLocationCode()));
+
+                if(!Cools.isEmpty(agvWrkMast1)){
+                    //鍙栨秷宸ヤ綔妗�
+                    String locNo = agvWrkMast.getLocNo();
+                    agvLocMastService.updateLocStsByLocNo(locNo,"O","");
+                    agvWrkMastService.deleteByWrkNo(agvWrkMast.getWrkNo());
+                    agvWrkDetlService.deleteByWrkNo(agvWrkMast.getWrkNo());
+
+                    agvWrkMast = agvWrkMast1;
+                }
+            }
+
 
             //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚
-            agvWrkMastService.updateWrkStsByWrkNo(Integer.valueOf(param.getTaskCode()),205);
+            agvWrkMast.setWrkSts(205L);
+            if(param.getLocationCode().contains("@") && param.getLocationCode().contains("CS")){
+                agvWrkMast.setLocNo(param.getLocationCode());
+            }
+            //agvWrkMast.setLocNo(param.getLocationCode());
+            agvWrkMastService.updateById(agvWrkMast);
+            //agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),205);
 
-            /*
-            int wrkNo = Integer.valueOf(param.getTaskCode());
-            String barcode = agvWrkMastService.selectById(wrkNo).getBarcode();
-            //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
-            agvWrkMastLogService.save(wrkNo);
-            //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
-            agvWrkDetlLogService.save(wrkNo);
-            //鍒犻櫎AGV宸ヤ綔妗�
-            agvWrkMastService.deleteById(wrkNo);
-            //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
-            agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
-            //鐢熸垚鍏ュ簱閫氱煡鍘嗗彶妗�
-            agvWaitPakinLogService.save(barcode);
-            //鍒犻櫎鍏ュ簱閫氱煡妗�
-            agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("zpallet",barcode));
-             */
+            //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱
+            if(agvWrkMast.getIoType() == 101 || agvWrkMast.getIoType() == 103 || agvWrkMast.getIoType() == 107){
+                //淇敼鍑哄簱绔欑偣鐘舵��
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode());
+            }
+            //鍑哄簱浠诲姟 110.绌烘澘鍑哄簱
+            if(agvWrkMast.getIoType() == 110){
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode());
+            }
+        }
+
+        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void fail(AgvTaskCallBackParam param) {
+        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void cancel(AgvTaskCallBackParam param) {
-
-        }
-
-        public void suspend(AgvTaskCallBackParam param) {
+        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
     },
@@ -154,19 +175,19 @@
      */
     task_allocated{
         @Transactional
-        public void success(AgvTaskCallBackParam param) {
+        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void fail(AgvTaskCallBackParam param) {
+        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void cancel(AgvTaskCallBackParam param) {
+        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void suspend(AgvTaskCallBackParam param) {
+        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
     },
@@ -175,25 +196,30 @@
      */
     tote_load{
         @Transactional
-        public void success(AgvTaskCallBackParam param) {
-            //淇敼婧愮珯鐐圭姸鎬佷负O.绌猴紝浠ュ強瑙g粦鎵樼洏鏉$爜
-            agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getStationCode(),"O","");
+        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
+
+            //鍏ュ簱浠诲姟 || 鎷f枡鍏ュ簱浠诲姟 ||鐩樼偣鍐嶅叆搴� ||绌烘澘鍏ュ簱
+            if(agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 || agvWrkMast.getIoType() == 10){
+                //淇敼婧愮珯鐐圭姸鎬佷负O.绌猴紝浠ュ強瑙g粦鎵樼洏鏉$爜
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","");
+            }
+
             //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负203.RCS鏀捐揣涓�
-            agvWrkMastService.updateWrkStsByWrkNo(Integer.valueOf(param.getTaskCode()),203);
-            //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬�
-            //agvWaitPakinService.updateIoStatus(Integer.valueOf(param.getTaskCode()),"Y");
+            agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),203);
+
+
 
         }
 
-        public void fail(AgvTaskCallBackParam param) {
+        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void cancel(AgvTaskCallBackParam param) {
+        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void suspend(AgvTaskCallBackParam param) {
+        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
     },
@@ -202,92 +228,90 @@
      */
     tote_unload{
         @Transactional
-        public void success(AgvTaskCallBackParam param) {
-            int wrkNo = Integer.valueOf(param.getTaskCode());
-            String barcode = agvWrkMastService.selectById(wrkNo).getBarcode();
-            //淇敼鐩爣搴撲綅鐘舵�佷负F.鍦ㄥ簱
-            //agvLocMastService.updateLocStsByLocNo(param.getLocationCode(),"F");
-            //鏇存柊鐩爣搴撲綅鏄庣粏
-            //agvLocDetlService.addLocDetlInfo(param.getLocationCode(),wrkNo);
+        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
             //淇敼宸ヤ綔妗g姸鎬佷负204.鏀捐揣瀹屾垚
-            agvWrkMastService.updateWrkStsByWrkNo(wrkNo,204);
-        }
-
-        public void fail(AgvTaskCallBackParam param) {
+            agvWrkMast.setWrkSts(204L);
+            //agvWrkMast.setLocNo(param.getLocationCode());
+            agvWrkMastService.updateById(agvWrkMast);
+            //agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),204);
 
         }
 
-        public void cancel(AgvTaskCallBackParam param) {
+        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void suspend(AgvTaskCallBackParam param) {
+        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
+
+        }
+
+        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
     },
     robot_reach{
         @Transactional
-        public void success(AgvTaskCallBackParam param) {
+        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void fail(AgvTaskCallBackParam param) {
+        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void cancel(AgvTaskCallBackParam param) {
+        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void suspend(AgvTaskCallBackParam param) {
+        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
     },
     weight{
         @Transactional
-        public void success(AgvTaskCallBackParam param) {
+        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void fail(AgvTaskCallBackParam param) {
+        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void cancel(AgvTaskCallBackParam param) {
+        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void suspend(AgvTaskCallBackParam param) {
+        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
     },
     rfid{
         @Transactional
-        public void success(AgvTaskCallBackParam param) {
+        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void fail(AgvTaskCallBackParam param) {
+        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void cancel(AgvTaskCallBackParam param) {
+        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
 
-        public void suspend(AgvTaskCallBackParam param) {
+        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
 
         }
     };
 
     //浠诲姟鐘舵�佷负鎴愬姛
-    public abstract void success(AgvTaskCallBackParam param);
+    public abstract void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param);
     //浠诲姟鐘舵�佷负澶辫触
-    public abstract void fail(AgvTaskCallBackParam param);
+    public abstract void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param);
     //浠诲姟鐘舵�佷负鍙栨秷
-    public abstract void cancel(AgvTaskCallBackParam param);
+    public abstract void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param);
     //浠诲姟鐘舵�佷负鎸傝捣
-    public abstract void suspend(AgvTaskCallBackParam param);
+    public abstract void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param);
 
     @Setter
     AgvBasDevpService agvBasDevpService;

--
Gitblit v1.9.1