From 10e6a9a8adad2226f13a4e4704ca5b2ad5b9ef9a Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 21 十二月 2025 18:49:59 +0800
Subject: [PATCH] 刀具库WMS功能完善

---
 src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java |  441 ++++++++++++++++++++++++-------------------------------
 1 files changed, 192 insertions(+), 249 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
index 2b93d99..1c92379 100644
--- a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -4,10 +4,12 @@
 import com.alibaba.excel.util.StringUtils;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.core.common.R;
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.digitaltwin.DtLocDetailVo;
 import com.zy.asrs.entity.mes.*;
 import com.zy.asrs.entity.param.CombParam;
 import com.zy.asrs.entity.rcs.*;
@@ -132,11 +134,7 @@
             // 瑙勫垯瀹氫箟锛氶粯璁ょ3灞備负鍚屾鐨勭墿鏂欑被鍨�
             long secondPath = 2;
             String secondParentName = WMS_CURRENT_NAME;
-//        long locType = 1;
             long userId = defaultUserId;
-//            if (mesMatInfo.getModified_operator1() != null && !mesMatInfo.getModified_operator1().isEmpty()) {
-//                userId = Long.parseLong(mesMatInfo.getModified_operator1());
-//            }
             Date now = new Date();
             if (mesMatInfo.getModified_date1() != null && !mesMatInfo.getModified_date1().isEmpty()) {
                 now = Date.from(OffsetDateTime.parse(mesMatInfo.getModified_date1()).toInstant());
@@ -167,35 +165,29 @@
             // 鐗╂枡鏇存柊
             long tagId = tagService.selectByName(mesMatInfo.getItem_type(), 3).getId();
             Mat mat = matService.selectByMatnr(mesMatInfo.getItem_no());
-            Mat newMat = new Mat();
-            newMat.setMatnr(mesMatInfo.getItem_no());
-            newMat.setMaktx(mesMatInfo.getDescription());
-            newMat.setTagId(tagId);
-            newMat.setLocType(tagId);   //locType
-            newMat.setSpecs(mesMatInfo.getSpecification());
-            newMat.setUnit("浠�");   //缁熶竴涓轰欢锛宮esMatInfo.getUnit_of_measure()
-            newMat.setModel(mesMatInfo.getClassification_code());
-            newMat.setMemo(JSONObject.toJSONString(mesMatInfo));
-            newMat.setCreateBy(userId);
-            newMat.setCreateTime(now);
-            newMat.setUpdateBy(userId);
-            newMat.setUpdateTime(now);
-            newMat.setStatus(1);
             if (mat == null) {
-                if (!matService.insert(newMat))
-                    return -2;
+                Mat newMat = new Mat();
+                newMat.setMatnr(mesMatInfo.getItem_no());
+                newMat.setMaktx(mesMatInfo.getDescription());
+                newMat.setTagId(tagId);
+                newMat.setLocType(tagId);   //locType
+                newMat.setSpecs(mesMatInfo.getSpecification());
+                newMat.setUnit(mesMatInfo.getUnit_of_measure());
+                newMat.setModel(mesMatInfo.getClassification_code());
+//            newMat.setMemo(JSONObject.toJSONString(mesMatInfo));
+                newMat.setCreateBy(userId);
+                newMat.setCreateTime(now);
+                newMat.setUpdateBy(userId);
+                newMat.setUpdateTime(now);
+                newMat.setStatus(1);
+                matService.insert(newMat);
             } else {
-                JSONObject dbMemo = JSONObject.parseObject(mat.getMemo());
-//            dbMemo.remove("OrderNo");
-//            dbMemo.remove("qty");
-            JSONObject newMemo = JSONObject.parseObject(newMat.getMemo());
-//            newMemo.remove("OrderNo");
-//            newMemo.remove("qty");
-                if (!dbMemo.equals(newMemo)) {
-                    newMat.setId(mat.getId());
-                    if (!matService.updateById(newMat))
-                        return -2;
-                }
+                mat.setMaktx(mesMatInfo.getDescription());
+                mat.setSpecs(mesMatInfo.getSpecification());
+                mat.setUnit(mesMatInfo.getUnit_of_measure());
+                mat.setModel(mesMatInfo.getClassification_code());
+                mat.setUpdateTime(now);
+                matService.updateById(mat);
             }
 
             return 1;
@@ -265,6 +257,9 @@
         return 0;
     }
 
+    @Resource
+    private BasStationService basStationService;
+
     /**
      * 鍑哄簱鐢宠
      * 鍔犲伐搴撱�佸垁鍏峰簱
@@ -272,22 +267,39 @@
      * @param mesOutApply
      * @return 1 鎴愬姛锛�-1 璁㈠崟閲嶅锛�
      */
-    public int outBoundOrder(MesInApply mesOutApply){
+    @Transactional
+    public MesReturn outBoundOrder(MesInApply mesOutApply) {
+        MesReturn mesReturn = new MesReturn();
+        // 缁堢偣涓虹┖锛岃绠楁帴椹充綅
+        BasStation basStation = null;
+        if (Cools.isEmpty(mesOutApply.getNextStationId())) {
+            List<BasStation> basStations = basStationService.selectList(new EntityWrapper<BasStation>().eq("loc_sts", "O"));
+            if (basStations.isEmpty()) {
+                mesReturn.setSuccess("2");
+                mesReturn.setMessage("鏃犵┖鎺ラ┏浣嶏紝璇风◢鍚庡啀璇�!");
+                return mesReturn;
+            }
+            // 鎺ラ┏鐐�
+            basStation = basStations.get(0);
+            mesOutApply.setNextStationId(basStation.getDevNo());
+        }
 
         // docType鏍规嵁搴撶被鍨嬬‘瀹�
-        long docType = 7;
+        long docType = Long.parseLong(mesOutApply.getBillType());
         long settle = 1;
 
         // 鏍¢獙璁㈠崟鏄惁閲嶅
         OrderPakout order = orderPakoutService.selectByNo(mesOutApply.getOrderNo());
         if (order != null && !StringUtils.isEmpty(order.getOrderNo())) {
-            return -1;
+            mesReturn.setSuccess("2");
+            mesReturn.setMessage("orderNo閲嶅锛�" + mesOutApply.getOrderNo());
+            return mesReturn;
         }
 
         // 鐢熸垚璁㈠崟
         Date now = new Date();
         OrderPakout orderPakout = new OrderPakout();
-        orderPakout.setUuid( String.valueOf(snowflakeIdWorker.nextId()));
+        orderPakout.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
         orderPakout.setOrderNo(mesOutApply.getOrderNo());
         orderPakout.setOrderTime(com.core.common.DateUtils.convert(now));
         orderPakout.setDocType(docType);
@@ -300,7 +312,7 @@
         orderPakout.setMemo(JSONObject.toJSONString(mesOutApply));
         orderPakout.setPakinPakoutStatus(2);
         if (!orderPakoutService.insert(orderPakout)) {
-            log.error("MES淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
+            log.error("MES淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触:{}", orderPakout);
             throw new CoolException("淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
         }
 
@@ -310,7 +322,7 @@
             OrderDetlPakout orderDetlPakout = new OrderDetlPakout();
             orderDetlPakout.setOrderId(orderPakout.getId());
             orderDetlPakout.setOrderNo(orderPakout.getOrderNo());
-            orderDetlPakout.setAnfme(Double.valueOf(item.getAnfme()));
+            orderDetlPakout.setAnfme(item.getAnfme());
             orderDetlPakout.setQty(0.0);
             orderDetlPakout.setMatnr(mat.getMatnr());
             orderDetlPakout.setMaktx(mat.getMaktx());
@@ -323,98 +335,43 @@
             orderDetlPakout.setStatus(1);
             orderDetlPakout.setPakinPakoutStatus(2);
             if (!orderDetlPakoutService.insert(orderDetlPakout)) {
-                log.error("MES淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
+                log.error("MES淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�:{}", orderDetlPakout);
                 throw new CoolException("淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
             }
         }
 
-        // TODO锛欳TU鍑哄簱鍔ㄤ綔
-
-        // todo 鍛煎彨agv浜х嚎鍙栫┖鏂欐灦
-        // TODO锛氳嫢AGV鍜岃緭閫佺嚎娌℃湁瀹夊叏浜や簰锛屽垯瑕佷繚璇佺珛搴撳嚭璐у畬鎴愬悗鍐嶅懠鍙獳GV銆�
         // 绔嬪簱鐢熸垚璁㈠崟鍚庯紝鑷姩璋冨害AGV浠庝骇绾胯繍杈撶┖鍒�鏋惰嚦绔嬪簱缂撳瓨鍖恒��
-        try {
-            if (!StringUtils.isEmpty(mesOutApply.getTaskNo()) && !StringUtils.isEmpty(mesOutApply.getStationId())) {
-                TransTask transTask = new TransTask();
-                transTask.setTaskno(mesOutApply.getTaskNo());
-//                        transTask.setTaskname(mesOutApply.getTaskname());
-                transTask.setOrderNo(mesOutApply.getOrderNo());
-                transTask.setTransType("02");    //杩愬洖鍒�鏋舵椂榛樿02锛堜笅绌烘墭锛� mesOutApply.getTransType()
-                transTask.setCurProcess(mesOutApply.getProductLineId());
-                transTask.setCurStationId(mesOutApply.getStationId());
-//                        transTask.setNextProcess();
-                transTask.setNextStationId(WMS_TRANS_START_STATION_1);
-//                transTask.setItemno(mesOutApply.getItemNo());
-                transTask.setQty(0);
-                transTask.setProductLineId(mesOutApply.getProductLineId());
-//                        transTask.setItemBarcode(codes);
-//                        transTask.setTuoPanId(entry.getKey());
-                transTask.setOperateType(1);
-                transTask.setAgvFactory(1);
-                JSONObject sendAgvTask = submitTask(transTask);
-                if (!"1".equals(sendAgvTask.getString("Success"))) {
-                    log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触", JSONObject.toJSONString(transTask));
-                }
-
-
-//                // 鎸夐浂浠朵簩缁寸爜鏌ヨ鏈夊嚑涓墭锛屽鎵樼敓鎴愬涓换鍔★紝姣忔墭瀵瑰簲闆朵欢浜岀淮鐮�
-////                String barCode = barCodeListToStr(mesOutApply.getItemBarcode());
-//                EntityWrapper<MatItemBarcode> matItemBarcodeEntityWrapper = new EntityWrapper<>();
-//                matItemBarcodeEntityWrapper.in("item_barcode", barCode);
-//                List<MatItemBarcode> barcodes = matItemBarcodeMapper.selectList(matItemBarcodeEntityWrapper);
-//                if (barcodes != null) {
-//                    Map<String, List<MatItemBarcode>> map = barcodes.stream().collect(Collectors.groupingBy(MatItemBarcode::getZapplet));
-//                    for (Map.Entry<String, List<MatItemBarcode>> entry : map.entrySet()) {
-//                        List<MatItemBarcode> list = entry.getValue();
-//                        List<String> codes = new ArrayList<>();
-//                        for (MatItemBarcode zapllet : list) {
-//                            codes.add(zapllet.getItemBarcode());
-//                        }
-//
-//
-//                    }
-//                }
+        TransTask transTask = new TransTask();
+        transTask.setTaskno(mesOutApply.getTaskNo());
+        transTask.setTaskname(mesOutApply.getTaskname());
+        transTask.setOrderNo(mesOutApply.getOrderNo());
+        transTask.setTransType("02");    //杩愬洖鍒�鏋舵椂榛樿02锛堜笅绌烘墭锛� mesOutApply.getTransType()
+        transTask.setCurProcess(mesOutApply.getProductLineId());
+        transTask.setCurStationId(mesOutApply.getStationId());
+        transTask.setNextProcess(mesOutApply.getProductLineId());
+        transTask.setNextStationId(mesOutApply.getNextStationId());
+        transTask.setQty(1);
+        transTask.setProductLineId(mesOutApply.getProductLineId());
+        transTask.setDjNo(mesOutApply.getDjNo());
+        transTask.setOperateType(1);
+        transTask.setAgvFactory(1);
+        JSONObject sendAgvTask = submitTask(transTask);
+        if ("1".equals(sendAgvTask.getString("Success"))) {
+            // 鏂版帴椹崇偣鐘舵��
+            if (basStation != null) {
+                basStation.setModiTime(new Date());
+                basStation.setLocSts("S");
+                basStation.setBarcode(mesOutApply.getDjNo());
+                basStationService.updateById(basStation);
             }
-        } catch (Exception e) {
-            log.error("涓嬪彂AGV杩愯緭浠诲姟澶辫触", e);
+
+            mesReturn.setSuccess("1");
+            mesReturn.setMessage("璁㈠崟涓嬪彂鎴愬姛锛宎gv寮�濮嬭繍杈擄細" + transTask.getTaskno());
+            return mesReturn;
+        } else {
+            log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触锛歿}", JSONObject.toJSONString(transTask));
+            throw new CoolException("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触");
         }
-        return 1;
-    }
-
-    public int transDj(String taskNo,String djNo) {
-        try {
-            EntityWrapper<Task> wapper = new EntityWrapper<>();
-            wapper.eq("task_no", taskNo).orderBy("wrk_date");
-            Task task = taskService.selectOne(wapper);
-            if (task != null) {
-                JSONObject memo = JSONObject.parseObject(task.getMemo());
-
-                TransTask transTask = new TransTask();
-                transTask.setTaskno(taskNo + "_1");
-//                        transTask.setTaskname(mesOutApply.getTaskname());
-                transTask.setOrderNo(memo.getString("OrderNo"));
-                transTask.setTransType("05");    //閫佸垁鏃堕粯璁�05锛堜笂鍒�锛�
-                transTask.setCurStationId(WMS_TRANS_START_STATION_1);
-                transTask.setNextProcess(memo.getString("ProductLineId"));
-                transTask.setNextStationId(memo.getString("CurStationId"));
-//                transTask.setItemno(mesOutApply.getItemNo());
-//                transTask.setQty(0);
-                transTask.setProductLineId(memo.getString("ProductLineId"));
-//                        transTask.setItemBarcode(codes);
-//                        transTask.setTuoPanId(entry.getKey());
-                transTask.setOperateType(1);
-                transTask.setAgvFactory(1);
-                transTask.setDjNo(djNo);
-                JSONObject sendAgvTask = submitTask(transTask);
-                if (!"1".equals(sendAgvTask.getString("Success"))) {
-                    log.error("涓婂垁涓嬪彂agv杩愯緭浠诲姟澶辫触", JSONObject.toJSONString(transTask));
-                }
-            }
-        } catch (Exception e) {
-            log.error("涓婂垁涓嬪彂AGV杩愯緭浠诲姟澶辫触", e);
-        }
-
-        return 1;
     }
 
     /**
@@ -423,6 +380,7 @@
      * @param mesInApply
      * @return 1 鎴愬姛锛�-1 鍏ュ簱璁㈠崟閲嶅锛�0 閮ㄥ垎澶辫触锛�
      */
+    @Transactional
     public int inBoundOrder(MesInApply mesInApply, int check){
 
         // docType鏍规嵁搴撶被鍨嬬‘瀹�
@@ -461,7 +419,7 @@
             OrderDetlPakin orderDetlPakin = new OrderDetlPakin();
             orderDetlPakin.setOrderId(orderPakin.getId());
             orderDetlPakin.setOrderNo(orderPakin.getOrderNo());
-            orderDetlPakin.setAnfme(Double.valueOf(item.getAnfme()));
+            orderDetlPakin.setAnfme(item.getAnfme());
             orderDetlPakin.setQty(0.0);
             orderDetlPakin.setMatnr(mat.getMatnr());
             orderDetlPakin.setMaktx(mat.getMaktx());
@@ -483,6 +441,28 @@
             }
         }
 
+        // 鍛煎彨agv鎼繍
+        if (!StringUtils.isEmpty(mesInApply.getTaskNo())) {
+            TransTask transTask = new TransTask();
+            transTask.setTaskno(mesInApply.getTaskNo());
+            transTask.setTaskname(mesInApply.getTaskNo());
+            transTask.setOrderNo(mesInApply.getOrderNo());
+            transTask.setTransType(mesInApply.getTransType());
+            transTask.setCurProcess(mesInApply.getProductLineId());
+            transTask.setCurStationId(mesInApply.getStationId());
+            transTask.setNextStationId(WMS_TRANS_START_STATION_1);
+//            transTask.setItemno(mesInApply.get());
+//            transTask.setQty(mesInApply.getQty());
+            transTask.setProductLineId(mesInApply.getProductLineId());
+//            transTask.setItemBarcode(itemBarcode);
+            transTask.setDjNo(mesInApply.getDjNo());
+            transTask.setOperateType(1);
+            transTask.setAgvFactory(1);
+            JSONObject sendAgvTask = submitTask(transTask);
+            if (!"1".equals(sendAgvTask.getString("Success"))) {
+                log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触:{}", JSONObject.toJSONString(transTask));
+            }
+        }
 
 
 //        // TODO:鏄惁缁戝畾璐х墿鍜屾墭鐩�?
@@ -709,7 +689,6 @@
 
     /**
      * 9.1涓嬪彂杩愯緭浠诲姟
-     * TODO:鍏朵粬搴撶殑浠诲姟鍏ㄩ儴杞埌婊戝潡搴撶粺涓�璋冨害
      *
      * @param transTask
      * @return
@@ -726,11 +705,36 @@
         List<Task> tasks = taskService.selectList(wrapper);
         if (tasks != null && !tasks.isEmpty()) {
             result.put("Success", "2");
-            result.put("Message", "浠诲姟閲嶅鍙戦��");
+            result.put("Message", "浠诲姟鍙烽噸澶嶅彂閫侊細" + transTask.getTaskno());
             return result;
         }
 
-        try {
+        // 涓嬪彂缁橰CS
+        RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
+        // 妯℃澘鍚�
+        if(transTask.getCurStationId().startsWith("LL") || transTask.getCurStationId().startsWith("LG")) { // 璧风偣浜х嚎
+            rcsTaskSubmit.setTaskType("DJ1");
+        } else if(transTask.getNextStationId().startsWith("LL") || transTask.getNextStationId().startsWith("LG")) { // 缁堢偣浜х嚎
+            rcsTaskSubmit.setTaskType("DJ2");
+        }
+        rcsTaskSubmit.setRobotTaskCode(transTask.getTaskno());
+        rcsTaskSubmit.setInitPriority(10);  //榛樿10
+        List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>();
+        RcsTaskTargetRoute startRoute = new RcsTaskTargetRoute();
+        startRoute.setSeq(0);
+        startRoute.setCode(transTask.getCurStationId());
+        startRoute.setOperation("COLLECT");
+        targetRouteList.add(startRoute);
+        RcsTaskTargetRoute endRoute = new RcsTaskTargetRoute();
+        endRoute.setSeq(1);
+        endRoute.setCode(transTask.getNextStationId());
+        endRoute.setOperation("DELIVERY");
+        targetRouteList.add(endRoute);
+        rcsTaskSubmit.setTargetRoute(targetRouteList);
+
+        // 杞彂缁欐捣搴锋垨鍗庢檽RCS
+        RcsReturn rcsReturn = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
+        if (rcsReturn.getCode().equals("SUCCESS")) {
             int workNo = commonService.getWorkNo(WorkNoType.OTHER.type);
             Date now = new Date();
             Task task = new Task();
@@ -747,87 +751,30 @@
             task.setAppeUser(defaultUserId);
             task.setAppeTime(now);
             task.setTaskNo(transTask.getTaskno());
+            task.setBarcode(transTask.getDjNo()); // 鍒�鏋跺彿
             task.setMemo(JSONObject.toJSONString(transTask));
+            taskService.insert(task);
 
-            if (taskService.insert(task)) {
-                Mat mat = matService.selectByMatnr("emptyDj");
-                TaskDetl taskDetl = new TaskDetl();
-                taskDetl.setWrkNo(task.getWrkNo());
-                taskDetl.setIoTime(task.getIoTime());
-                taskDetl.setMatnr(mat.getMatnr());
-                taskDetl.setAnfme(0.0);
-                taskDetl.setStandby1(String.valueOf(transTask.getQty()));
-                taskDetl.setMaktx(mat.getMaktx());
-                taskDetl.setSpecs(mat.getSpecs());
-                taskDetl.setOrderNo(transTask.getOrderNo());
-                taskDetl.setModiUser(defaultUserId);
-                taskDetl.setModiTime(now);
-                taskDetl.setAppeUser(defaultUserId);
-                taskDetl.setAppeTime(now);
-                taskDetlService.insert(taskDetl);
+            Mat mat = matService.selectByMatnr("emptyDj");
+            TaskDetl taskDetl = new TaskDetl();
+            taskDetl.setWrkNo(task.getWrkNo());
+            taskDetl.setIoTime(task.getIoTime());
+            taskDetl.setMatnr(mat.getMatnr());
+            taskDetl.setAnfme(1.0);
+            taskDetl.setMaktx(mat.getMaktx());
+            taskDetl.setSpecs(mat.getSpecs());
+            taskDetl.setOrderNo(transTask.getOrderNo());
+            taskDetl.setModiUser(defaultUserId);
+            taskDetl.setModiTime(now);
+            taskDetl.setAppeUser(defaultUserId);
+            taskDetl.setAppeTime(now);
+            taskDetlService.insert(taskDetl);
+            result.put("Success", "1");
+            result.put("Message", "浠诲姟鎺ユ敹鎴愬姛");
 
-//                EntityWrapper<WaitPakin> wrapper1 = new EntityWrapper<>();
-//                wrapper1.eq("order_no", transTask.getTaskno())
-//                        .eq("matnr", mat.getMatnr())
-//                        .eq("anfme", transTask.getQty());
-//                WaitPakin waitPakin = waitPakinService.selectOne(wrapper1);
-//                if (waitPakin != null)
-//                {
-//                    TaskDetl taskDetl = new TaskDetl();
-//                    taskDetl.setWrkNo(task.getWrkNo());
-//                    taskDetl.setIoTime(task.getIoTime());
-//                    taskDetl.setMatnr(transTask.getItemno());
-//                taskDetl.setAnfme(Double.valueOf(transTask.getQty()));
-//                    taskDetl.setAnfme(0.0);
-//                    taskDetl.setStandby1(String.valueOf(transTask.getQty()));
-//                    taskDetl.setZpallet(waitPakin.getZpallet());
-//                    taskDetl.setMaktx(mat.getMaktx());
-//                    taskDetl.setSpecs(mat.getSpecs());
-//                    taskDetl.setOrderNo(transTask.getOrderNo());
-//                    taskDetl.setModiUser(defaultUserId);
-//                    taskDetl.setModiTime(now);
-//                    taskDetl.setAppeUser(defaultUserId);
-//                    taskDetl.setAppeTime(now);
-//                    taskDetlService.insert(taskDetl);
-//                }
-//                else {
-//                    result.put("Success", "2");
-//                    result.put("Message", "鎺ユ敹浠诲姟澶辫触");
-//                    // Throw
-//                }
-
-                // 涓嬪彂缁橰CS
-                RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
-                rcsTaskSubmit.setRobotTaskCode(transTask.getTaskno());
-                rcsTaskSubmit.setInitPriority(10);  //榛樿10
-                List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>();
-                RcsTaskTargetRoute startRoute = new RcsTaskTargetRoute();
-                startRoute.setSeq(0);
-                startRoute.setCode(transTask.getCurStationId());
-                startRoute.setOperation("COLLECT");
-                targetRouteList.add(startRoute);
-                RcsTaskTargetRoute endRoute = new RcsTaskTargetRoute();
-                endRoute.setSeq(1);
-                endRoute.setCode(transTask.getNextStationId());
-                endRoute.setOperation("DELIVERY");
-                targetRouteList.add(endRoute);
-                rcsTaskSubmit.setTargetRoute(targetRouteList);
-
-                // 杞彂缁欐捣搴锋垨鍗庢檽RCS
-                int success = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
-                if (success == 1) {
-                    result.put("Success", "1");
-                    result.put("Message", "浠诲姟鎺ユ敹鎴愬姛");
-                } else {
-                    result.put("Success", "2");
-                    result.put("Message", "浠诲姟涓嬪彂缁橰CS澶辫触");
-                }
-            } else {
-                result.put("Success", "2");
-                result.put("Message", "鎺ユ敹浠诲姟澶辫触");
-            }
-        } catch (Exception e) {
-            log.error("涓嬪彂杩愯緭浠诲姟閿欎綅 - {}", transTask, e);
+        } else {
+            result.put("Success", "2");
+            result.put("Message", "浠诲姟涓嬪彂缁橰CS澶辫触");
         }
 
         return result;
@@ -1025,52 +972,47 @@
         return 0;
     }
 
-    @Override
-    public R tkt(String taskNo) {
-        boolean flag = false;
-        try {
-            EntityWrapper<Task> wapper = new EntityWrapper<>();
-            wapper.eq("task_no", taskNo).orderBy("wrk_date",false);
-            Task task = taskService.selectOne(wapper);
-            // 涓嬪彂缁橰CS
-            RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
-            rcsTaskSubmit.setRobotTaskCode(taskNo + "-1");
-            rcsTaskSubmit.setInitPriority(10);  //榛樿10
-            List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>();
-            RcsTaskTargetRoute startRoute = new RcsTaskTargetRoute();
-            startRoute.setSeq(0);
-            startRoute.setCode(task.getStaNo());
-            startRoute.setOperation("COLLECT");
-            targetRouteList.add(startRoute);
-            RcsTaskTargetRoute endRoute = new RcsTaskTargetRoute();
-            endRoute.setSeq(1);
-            endRoute.setCode(task.getSourceStaNo());
-            endRoute.setOperation("DELIVERY");
-            targetRouteList.add(endRoute);
-            rcsTaskSubmit.setTargetRoute(targetRouteList);
-            // 鏇存柊璧风偣鍜岀粓鐐�
-            String memo = task.getMemo();
-            TransTask transTask = JSONObject.parseObject(memo, TransTask.class);
-            transTask.setCurStationId(task.getSourceStaNo());
-            transTask.setNextStationId(task.getStaNo());
-            transTask.setTransType("01"); // 涓嬬┖鎵�
-            // 鏇存柊agv浠诲姟璧风偣鍜岀粓鐐�
-            task.setTaskNo(taskNo + "-1");
-            task.setSourceStaNo(transTask.getCurStationId());
-            task.setStaNo(transTask.getNextStationId());
-            task.setMemo(JSONObject.toJSONString(transTask));
-            taskService.updateById(task);
-            // 杞彂缁欐捣搴锋垨鍗庢檽RCS
-            int success = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
+    @Resource
+    private LocDetlService locDetlService;
 
-            if (success == 1) {
-                flag = true;
-            }
-        } catch (Exception e) {
-            log.error("绌烘墭鍥炰骇绾垮彂AGV杩愯緭浠诲姟澶辫触", e);
+    @Resource
+    private LocMastService locMastService;
+
+    @Override
+    public R queryStock(String matnr) {
+        List<LocDetl> locDetls;
+        if (Cools.isEmpty(matnr)) {
+            locDetls = locDetlService.selectList(new EntityWrapper<>());
+        } else {
+            locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr",matnr));
         }
 
-        return flag ?R.ok() : R.parse("绌烘墭鍥炰骇绾垮懠鍙玜gv澶辫触");
+        List<String> locNoList = locDetls.stream().map(LocDetl::getLocNo).distinct().collect(Collectors.toList());
+        List<DtLocDetailVo> dtLocDetailVoList = new ArrayList<>();
+        for (String locNo: locNoList) {
+
+            LocMast locMast = locMastService.selectById(locNo);
+            DtLocDetailVo dtLocDetailVo = new DtLocDetailVo();
+            dtLocDetailVo.setLocNo(locNo);
+            dtLocDetailVo.setLocSts(locMast.getLocSts());
+            dtLocDetailVo.setRow1(locMast.getRow1());
+            dtLocDetailVo.setBay1(locMast.getBay1());
+            dtLocDetailVo.setLev1(locMast.getLev1());
+
+            List<LocDetl> locDetlList2 = locDetls.parallelStream().filter(o-> o.getLocNo().equals(locNo)).collect(Collectors.toList());
+            List<StockDetl> stockDetls = new ArrayList<>();
+            for(LocDetl locDetl:locDetlList2) {
+                StockDetl stockDetl = new StockDetl();
+                stockDetl.setMatnr(locDetl.getMatnr());
+                stockDetl.setMaktx(locDetl.getMaktx());
+                stockDetl.setAnfme(locDetl.getAnfme());
+                stockDetls.add(stockDetl);
+            }
+            dtLocDetailVo.setLocDetl(stockDetls);
+            dtLocDetailVoList.add(dtLocDetailVo);
+        }
+
+        return R.ok(dtLocDetailVoList);
     }
 
     // endregion
@@ -1083,8 +1025,9 @@
      */
     private int checkRcsFactory(String agvNo) {
 
-        AgvInfo agvInfo = agvInfoMapper.selectById(agvNo);
-        return agvInfo.getAgvFactory();
+//        AgvInfo agvInfo = agvInfoMapper.selectById(agvNo);
+//        return agvInfo.getAgvFactory();
+        return 1;
     }
 
 }

--
Gitblit v1.9.1