From 0f69561e397093b5165c4aac58530721d5c62178 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 25 十一月 2024 11:03:16 +0800
Subject: [PATCH] #led

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java |  133 ++++++++++++++++++++++++++++---------------
 1 files changed, 86 insertions(+), 47 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index 5acaf07..6a5ef93 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -8,15 +8,18 @@
 import com.zy.asrs.common.domain.param.SearchLocParam;
 import com.zy.asrs.common.utils.HttpHandler;
 import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.R;
 import com.zy.asrs.framework.common.SnowflakeIdWorker;
 import com.zy.asrs.wcs.core.domain.dto.MatDto;
 import com.zy.asrs.wcs.core.domain.dto.RedisMapDto;
 import com.zy.asrs.wcs.core.domain.dto.StaDto;
+import com.zy.asrs.wcs.core.domain.param.CreateInTaskParam;
 import com.zy.asrs.wcs.core.entity.*;
 import com.zy.asrs.wcs.core.kernel.AnalyzeService;
 import com.zy.asrs.wcs.core.model.MapNode;
 import com.zy.asrs.wcs.core.model.enums.*;
 import com.zy.asrs.wcs.core.service.*;
+import com.zy.asrs.wcs.core.utils.OpenUtils;
 import com.zy.asrs.wcs.core.utils.RedisUtil;
 import com.zy.asrs.wcs.core.utils.ShuttleDispatcher;
 import com.zy.asrs.wcs.core.utils.Utils;
@@ -86,6 +89,8 @@
     private DeviceBarcodeService deviceBarcodeService;
     @Autowired
     private ShuttleChargeStaService shuttleChargeStaService;
+    @Autowired
+    private OpenUtils openUtils;
 
     /**
      * 缁勬墭
@@ -160,6 +165,7 @@
                     if (staProtocol.isAutoing() && staProtocol.isLoading()
                             && staProtocol.isInEnable()
                             && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999))
+                            && staProtocol.isPakMk()
                     ) {
 
                         // 鑾峰彇鏉$爜鎵弿浠俊鎭�
@@ -191,19 +197,18 @@
                             }
                         }
 
-                        //鑾峰彇鍏ュ簱浠诲姟绫诲瀷
-                        TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
-                                .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN))
-                                .eq(TaskCtg::getStatus, 1));
-
                         // 鍒ゆ柇閲嶅宸ヤ綔妗�
                         Task task1 = taskService.getOne(new LambdaQueryWrapper<Task>()
                                 .eq(Task::getOriginSite, inSta.getStaNo())
-                                .eq(Task::getTaskCtg, taskCtg.getId())
-                                .in(Task::getTaskSts, 1, 2, 3)
+                                .in(Task::getTaskSts, TaskStsType.NEW_INBOUND.sts, TaskStsType.ANALYZE_INBOUND.sts, TaskStsType.EXECUTE_INBOUND.sts)
                                 .eq(Task::getZpallet, barcode));
                         if (task1 != null) {
                             News.error("宸ヤ綔妗e凡瀛樺湪,宸ヤ綔鍙�={}", task1.getTaskNo());
+                            if (staProtocol.getWorkNo().intValue() != Integer.parseInt(task1.getTaskNo())) {
+                                devpThread.writeWorkSta(staProtocol.getSiteId(), Short.parseShort(task1.getTaskNo()), Short.parseShort(task1.getDestSite()));
+                                devpThread.setPakMk(staProtocol.getSiteId(), false);
+                                News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(task1));
+                            }
                             continue;
                         }
 
@@ -220,7 +225,7 @@
                             param.setBarcode(barcode);
                             param.setIoType(1);
                             param.setSourceStaNo(inSta.getStaNo());
-                            param.setLocType1((short) 1);
+                            param.setLocType1(staProtocol.getLocType1().shortValue());
                             String response = new HttpHandler.Builder()
                                     .setUri(wmsUrl)
                                     .setPath("/rpc/pakin/loc/v1")
@@ -233,17 +238,50 @@
                             if (code.equals(200)) {
                                 StartupDto dto = jsonObject.getObject("data", StartupDto.class);
 
-                                //鑾峰彇杈撻�佽矾寰�
-                                BasConveyorPath conveyorPath = basConveyorPathService.getOne(new LambdaQueryWrapper<BasConveyorPath>()
-                                        .eq(BasConveyorPath::getTypeNo, TaskCtgType.IN.val())
-                                        .eq(BasConveyorPath::getDeviceId, devp.getId())
-                                        .eq(BasConveyorPath::getStnNo, staProtocol.getSiteId()));
-                                if (conveyorPath == null) {
-                                    News.error("杈撻�佽矾寰勪笉瀛樺湪");
-                                }else {
-                                    devpThread.writeWorkSta(staProtocol.getSiteId(), dto.getWorkNo().shortValue(), conveyorPath.getDeviceStn().shortValue());
-                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                                String wmsLocNo = dto.getLocNo();
+                                int row = Integer.parseInt(wmsLocNo.substring(0, 2));
+                                int bay = Integer.parseInt(wmsLocNo.substring(2, 5));
+                                int lev = Integer.parseInt(wmsLocNo.substring(5, 7));
+                                row -= 16;
+                                String wcsLocNo = Utils.getLocNo(row, bay, lev);
+
+                                CreateInTaskParam createInTaskParam = new CreateInTaskParam();
+                                createInTaskParam.setTaskNo(String.valueOf(dto.getWorkNo()));
+                                createInTaskParam.setDestLoc(wcsLocNo);
+                                createInTaskParam.setOriginSite("31002");
+                                createInTaskParam.setDestSite("31004");
+                                createInTaskParam.setPriority(11);
+                                createInTaskParam.setBarcode(barcode);
+
+                                R result = openUtils.createInTask(createInTaskParam);
+                                News.info("鍒涘缓鍏ュ簱浠诲姟锛屼换鍔℃暟鎹�={}锛學MS鍝嶅簲={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject), JSON.toJSON(result));
+                                try{
+                                    String msg = "";
+                                    HashMap<String, String> hashMap = new HashMap<>();
+                                    hashMap.put("msg", msg);
+                                    hashMap.put("sta", "31001");
+                                    new HttpHandler.Builder()
+                                            .setUri(wmsUrl)
+                                            .setPath("/rpc/led/getError")
+                                            .setJson(JSON.toJSONString(hashMap))
+                                            .build()
+                                            .doPost();
+                                }catch (Exception e){
+
                                 }
+
+                            }else {
+                                String msg = jsonObject.getString("msg");
+                                HashMap<String, String> hashMap = new HashMap<>();
+                                hashMap.put("msg", msg);
+                                hashMap.put("sta", "31001");
+                                new HttpHandler.Builder()
+                                        .setUri(wmsUrl)
+                                        .setPath("/rpc/led/getError")
+                                        .setJson(JSON.toJSONString(hashMap))
+                                        .build()
+                                        .doPost();
+                                News.error("鍏ュ簱鐢宠澶辫触锛屼换鍔℃暟鎹�={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject));
                             }
                         } catch (Exception e) {
                             e.printStackTrace();
@@ -455,7 +493,7 @@
             if (Cools.isEmpty(basConveyorSta.getTaskNo())){
                 continue;
             }
-            if (!basConveyorSta.getTaskNo().toString().equals(task.getWmsTaskNo())){
+            if (!basConveyorSta.getTaskNo().toString().equals(task.getTaskNo())){
                 continue;
             }
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
@@ -472,6 +510,14 @@
                 continue;
             }
 
+            //瑙f瀽鍓嶅垽鏂唴閮ㄧ洰鏍囧�兼槸鍚︽湁鐗� 鏈夊伐浣滃彿
+            StaProtocol staProtocolInside = devpThread.getStation().get(Utils.getStaByLev(Utils.getLev(task.getDestLoc())));
+            if (staProtocolInside == null) {
+                continue;
+            }
+            if (staProtocolInside.isLoading() || staProtocolInside.getWorkNo() !=0) {
+                continue;
+            }
 
             if (Cools.isEmpty(task.getShuttleNo())) {
                 //鍒嗛厤灏忚溅
@@ -884,7 +930,8 @@
                     .eq(BasLed::getDeviceId, ledDevice.getId()));
             List<Integer> staArr = JSON.parseArray(led.getSta(), Integer.class);
 
-            BasConveyor basConveyor = basConveyorService.getById(led.getConveyorId().intValue());
+            BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>()
+                    .eq(BasConveyor::getDeviceId, led.getConveyorId().intValue()));
             if (basConveyor == null) {
                 continue;
             }
@@ -898,26 +945,26 @@
             for (Integer staNo : staArr) {
                 // 鑾峰彇鍙夎溅绔欑偣
                 StaProtocol staProtocol = devpThread.getStation().get(staNo);
-                if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
+                if (null == staProtocol || null == staProtocol.getWorkNo()) {
                     continue;
                 } else {
                     staProtocol = staProtocol.clone();
                 }
-                // 鑾峰彇宸ヤ綔妗f暟鎹�
-                Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, staProtocol.getWorkNo()));
-                if (null == task) {
-                    continue;
-                }
+                String taskNo = "0";
+                if (staProtocol.isOutEnable() && staProtocol.getSiteId() == 31001 ){
+                    if (0 != staProtocol.getWorkNo()){
+                        Motion motion = motionService.getOne(new LambdaQueryWrapper<Motion>().eq(Motion::getMotionCtg, 9).eq(Motion::getTemp, staProtocol.getWorkNo()));
+                        // 鑾峰彇宸ヤ綔妗f暟鎹�
+                        Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, motion.getTaskNo()));
+                        if (null == task) {
+                            continue;
+                        }
+                        taskNo = task.getWmsTaskNo();
+                    }
 
-                tasks.add(task);
-                // 缁勮鍛戒护
-                LedCommand ledCommand = new LedCommand();
-                ledCommand.setWorkNo(task.getTaskNo());
-                ledCommand.setIoType(task.getTaskCtg().intValue());
-                ledCommand.setTitle(task.getTaskCtg$());
-                ledCommand.setSourceLocNo(task.getOriginLoc());
-                ledCommand.setLocNo(task.getDestLoc());
-                ledCommand.setStaNo(Integer.parseInt(task.getDestSite()));
+                } else if (staProtocol.isInEnable() && staProtocol.getSiteId() == 31002) {
+                    taskNo = staProtocol.getStaNo().toString();
+                }
 
                 try {
                     //鑾峰彇WMS鍦板潃
@@ -926,32 +973,24 @@
                         String wmsUrl = dict.getValue();
 
                         HashMap<String, Object> param = new HashMap<>();
-                        param.put("taskNo", task.getTaskNo());
+                        param.put("taskNo", taskNo);
+                        param.put("sta",staNo);
                         String response = new HttpHandler.Builder()
                                 .setUri(wmsUrl)
-                                .setPath("/queryTask")
+                                .setPath("/rpc/led/getTask")
                                 .setJson(JSON.toJSONString(param))
                                 .build()
                                 .doPost();
                         JSONObject jsonObject = JSON.parseObject(response);
                         Integer code = jsonObject.getInteger("code");
                         if (code.equals(200)) {
-                            List<MatDto> matDtos = JSON.parseArray(jsonObject.getString("data"), MatDto.class);
-                            ledCommand.setMatDtos(matDtos);
+
                         }
                     }
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
 
-                commands.add(ledCommand);
-            }
-            // 鑾峰彇LED绾跨▼
-            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, ledDevice.getId().intValue());
-            // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
-            if (!commands.isEmpty()) {
-                ledThread.write(commands);
-                ledThread.setLedMk(false);
             }
         }
     }

--
Gitblit v1.9.1