From 2228c73293e419ed249a27c426c0d08ce95d517e Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期五, 14 三月 2025 15:55:13 +0800
Subject: [PATCH] 配置信息

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  229 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 146 insertions(+), 83 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 45bf0dc..88b0fb5 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -7,7 +7,6 @@
 import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.controller.CrnController;
-import com.zy.asrs.controller.OpenController;
 import com.zy.asrs.controller.SiteController;
 import com.zy.asrs.domain.enums.TaskStatusType;
 import com.zy.asrs.domain.enums.WorkNoType;
@@ -16,7 +15,10 @@
 import com.zy.asrs.entity.param.Result;
 import com.zy.asrs.entity.param.StorageEscalationParam;
 import com.zy.asrs.entity.param.TaskOverToWms;
-import com.zy.asrs.mapper.*;
+import com.zy.asrs.mapper.BasCrnErrorMapper;
+import com.zy.asrs.mapper.StaDescMapper;
+import com.zy.asrs.mapper.TaskWrkMapper;
+import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.CommandUtils;
 import com.zy.asrs.utils.Utils;
@@ -30,7 +32,6 @@
 import com.zy.core.model.CrnSlave;
 import com.zy.core.model.DevpSlave;
 import com.zy.core.model.Task;
-import com.zy.core.model.command.CommandPackage;
 import com.zy.core.model.command.CrnCommand;
 import com.zy.core.model.protocol.CrnProtocol;
 import com.zy.core.model.protocol.StaProtocol;
@@ -47,7 +48,10 @@
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.io.IOException;
-import java.util.*;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
@@ -198,68 +202,64 @@
                                     .build()
                                     .doPost();
                             JSONObject jsonObject = JSON.parseObject(response);
-                            if (!Cools.isEmpty(response)&&!Cools.isEmpty(jsonObject.get("ReturnStatus"))&&jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
-                                Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
-                                // 鍒涙柊涓�涓叆搴撳伐浣滄。
-                                TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
-                                if (Cools.isEmpty(taskWrk)) {
-                                    taskWrk = createTask1(result, BoxNo);
-                                    if (Cools.isEmpty(taskWrk)) {
-                                        log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint());
-                                    } else {
-                                        taskWrkService.insert(taskWrk);
-                                        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                                                .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
-                                        staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
-                                        staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
-                                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                                        HashMap<String, Object> hashMap = new HashMap<>();
-                                        hashMap.put("TaskNo",taskWrk.getTaskNo());
-                                        try {
-                                            //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
-                                            response = new HttpHandler.Builder()
-                                                    .setUri(wmsUrl)
-                                                    .setPath(taskStatusFeedbackPath)
-                                                    .setJson(JSON.toJSONString(hashMap))
-                                                    .build()
-                                                    .doPost();
-                                            JSONObject jsonObject1 = JSON.parseObject(response);
-                                            Boolean bool = false;
-                                            if(jsonObject1.get("ReturnStatus").equals(0)){
-                                                bool = true;
-                                            }
-                                            apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
-                                                    , wmsUrl + TaskExecCallback
-                                                    , null
-                                                    , "127.0.0.1"
-                                                    , JSON.toJSONString(hashMap)
-                                                    , response
-                                                    , bool
-                                            );
-                                        } catch (Exception e) {
-
-                                        }
-                                    }
-                                } else {
-//                                    staProtocol.setWorkNo((short) 9991);
-                                    if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){
-                                        staProtocol.setStaNo((short)105);
-                                    } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) {
-                                        staProtocol.setStaNo((short)107);
-                                    }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) {
-                                        staProtocol.setStaNo((short)109);
-                                    }else{
-                                        staProtocol.setStaNo((short)110);
-                                    }
-                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                                }
-
-                            } else {
-//                                staProtocol.setWorkNo((short) 9991);
+                            if (back) {
                                 staProtocol.setStaNo(inSta.getBackSta().shortValue());
                                 devpThread.setPakMk(staProtocol.getSiteId(), false);
                                 MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                            } else {
+                                if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
+                                    Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
+                                    // 鍒涙柊涓�涓叆搴撳伐浣滄。
+                                    TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
+                                    if (Cools.isEmpty(taskWrk)) {
+                                        taskWrk = createTask1(result, BoxNo);
+                                        if (Cools.isEmpty(taskWrk)) {
+                                            log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint());
+                                        } else {
+                                            taskWrkService.insert(taskWrk);
+                                            StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+                                                    .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+                                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                                            staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
+                                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                                            HashMap<String, Object> hashMap = new HashMap<>();
+                                            hashMap.put("TaskNo", taskWrk.getTaskNo());
+                                            try {
+                                                //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+                                                response = new HttpHandler.Builder()
+                                                        .setUri(wmsUrl)
+                                                        .setPath(taskStatusFeedbackPath)
+                                                        .setJson(JSON.toJSONString(hashMap))
+                                                        .build()
+                                                        .doPost();
+                                                JSONObject jsonObject1 = JSON.parseObject(response);
+                                                Boolean bool = false;
+                                                if (jsonObject1.get("ReturnStatus").equals(0)) {
+                                                    bool = true;
+                                                }
+                                                apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
+                                                        , wmsUrl + TaskExecCallback
+                                                        , null
+                                                        , "127.0.0.1"
+                                                        , JSON.toJSONString(hashMap)
+                                                        , response
+                                                        , bool
+                                                );
+                                            } catch (Exception e) {
+
+                                            }
+                                        }
+                                    } else {
+                                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                                    }
+
+                                } else {
+                                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                                }
                             }
                         } catch (Exception e) {
                             log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触");
@@ -744,7 +744,7 @@
                 crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅灞�
                 crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鎺�
                 crnCommand.setCommand((short) 1);
-                log.info("鍫嗗灈鏈哄叆搴撲换鍔′笅鍙�={}",crnCommand);
+                log.info("鍫嗗灈鏈哄叆搴撲换鍔′笅鍙�={}", crnCommand);
                 if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) {
                     log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
                     throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
@@ -784,24 +784,24 @@
                         continue;
                     }
 
-                    LocMast locMast=locMastService.selectByLocNo(taskWrk.getStartPoint());
+                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
                     //鍒ゆ柇鍏跺簱浣嶆槸鍚︿负娣卞簱浣嶏紝濡傛灉涓烘繁搴撲綅鎵惧叾娴呭簱浣嶆槸閮芥湁璐�
-                    if(locMast.getRow1()==1||locMast.getRow1()==5){
-                        LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>()
-                                .eq("row1", (locMast.getRow1()+1))
-                                .eq("bay1",locMast.getBay1())
-                                .eq("lev1",locMast.getLev1()).eq("loc_sts","F"));
-                        if (!Cools.isEmpty(locMast1)){
-                            log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
+                    if (locMast.getRow1() == 1 || locMast.getRow1() == 5) {
+                        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                .eq("row1", (locMast.getRow1() + 1))
+                                .eq("bay1", locMast.getBay1())
+                                .eq("lev1", locMast.getLev1()).eq("loc_sts", "F"));
+                        if (!Cools.isEmpty(locMast1)) {
+                            log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
                             continue;
                         }
-                    }else if(locMast.getRow1()==4||locMast.getRow1()==8){
-                        LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>()
-                                .eq("row1", (locMast.getRow1()-1))
-                                .eq("bay1",locMast.getBay1())
-                                .eq("lev1",locMast.getLev1()).eq("loc_sts","F"));
-                        if (!Cools.isEmpty(locMast1)){
-                            log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
+                    } else if (locMast.getRow1() == 4 || locMast.getRow1() == 8) {
+                        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                .eq("row1", (locMast.getRow1() - 1))
+                                .eq("bay1", locMast.getBay1())
+                                .eq("lev1", locMast.getLev1()).eq("loc_sts", "F"));
+                        if (!Cools.isEmpty(locMast1)) {
+                            log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
                             continue;
                         }
                     }
@@ -849,9 +849,9 @@
                         command.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
                         command.setCommand((short) 1);
 
-                        if(Cools.isEmpty(taskWrk.getMarkStart())||taskWrk.getMarkStart()==0){
+                        if (Cools.isEmpty(taskWrk.getMarkStart()) || taskWrk.getMarkStart() == 0) {
                             HashMap<String, Object> hashMap = new HashMap<>();
-                            hashMap.put("TaskNo",taskWrk.getTaskNo());
+                            hashMap.put("TaskNo", taskWrk.getTaskNo());
                             String response = "";
                             try {
                                 //寮�濮嬩笂鎶�,鍑哄簱浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
@@ -863,7 +863,7 @@
                                         .doPost();
                                 JSONObject jsonObject = JSON.parseObject(response);
                                 Boolean bool = false;
-                                if(jsonObject.get("ReturnStatus").equals(0)){
+                                if (jsonObject.get("ReturnStatus").equals(0)) {
                                     bool = true;
                                     taskWrk.setMarkStart(1);
                                 }
@@ -1102,7 +1102,7 @@
                 crnOperatorParam.setCrnNo(crn.getId());
                 R r = crnController.crnTaskComplete(crnOperatorParam);
                 Thread.sleep(1000);
-                if(!r.get("code").equals(200)){
+                if (!r.get("code").equals(200)) {
                     return;
                 }
                 if (!Cools.isEmpty(taskWrk)) {
@@ -1537,4 +1537,67 @@
         return taskWrk;
     }
 
+    /**
+     * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
+     */
+    public synchronized void ioConvert() {
+        try {
+            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+            for (DevpSlave devp : slaveProperties.getDevp()) {
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+
+                for (DevpSlave.Sta inSta : devp.getInSta()) {
+                    if (inSta.getStaNo() == 2) {
+                        continue;
+                    }
+                    WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo());
+                    switch (inSta.getStaNo()) {
+                        case 203://1F
+                            if (pakout != null) {
+                                if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
+                                    // 鍑哄簱鍒囨崲涓�
+                                    devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
+                                    WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+                                            && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
+                                            && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
+                                        // 鍑哄簱妯″紡
+                                        devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE;
+                                    }
+                                }
+                            } else {
+                                // 鍏ュ簱妯″紡
+                                devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
+                            }
+                            break;
+                        case 401://1F
+                            if (pakout != null) {
+                                if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
+                                    // 鍑哄簱鍒囨崲涓�
+                                    devpThread.ioModeOf4F = IoModeType.PAKOUT_BOOTING;
+                                    WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+                                            && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
+                                            && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
+                                        // 鍑哄簱妯″紡
+                                        devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE;
+                                    }
+                                }
+                            } else {
+                                // 鍏ュ簱妯″紡
+                                devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
+                            }
+                            break;
+                    }
+                }
+
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+
+    }
+
 }

--
Gitblit v1.9.1