From 9fd5e6fbcb1d8badf1835478d862ac40bfb60f3c Mon Sep 17 00:00:00 2001
From: zzgtfwq <zzgtfwq>
Date: 星期三, 10 十二月 2025 16:59:09 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  340 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 305 insertions(+), 35 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 8c6dc95..1a455ab 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.*;
 import com.core.exception.CoolException;
+import com.zy.asrs.controller.TaskWrkController;
 import com.zy.asrs.domain.enums.LedErrorAreaType;
 import com.zy.asrs.domain.enums.TaskStatusType;
 import com.zy.asrs.entity.*;
@@ -66,19 +67,15 @@
     @Autowired
     private WrkDetlService wrkDetlService;
     @Autowired
-    private LocMastService locMastService;
+    private BasDevpOptService basDevpOptService;
     @Autowired
-    private StaDescService staDescService;
+    private LocMastService locMastService;
     @Autowired
     private BasCrnpService basCrnpService;
     @Autowired
     private BasDevpService basDevpService;
     @Autowired
     private LocDetlService locDetlService;
-    @Autowired
-    private BasErrLogService basErrLogService;
-    @Autowired
-    private BasCrnErrorMapper basCrnErrorMapper;
     @Autowired
     private WrkMastService wrkMastService;
     @Autowired
@@ -140,16 +137,6 @@
                 if (barcodeThread == null) {
                     continue;
                 }
-                String barcode = barcodeThread.getBarcode();
-
-                if (!Cools.isEmpty(barcode)) {
-//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-                    if ("00000000".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
-                        continue;
-                    }
-                } else {
-                    continue;
-                }
 
                 // 鑾峰彇鍏ュ簱绔欎俊鎭�
 //                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -159,6 +146,17 @@
                     continue;
                 } else {
                     staProtocol = staProtocol.clone();
+                }
+
+                String barcode = barcodeThread.getBarcode();
+
+                if (!Cools.isEmpty(barcode)) {
+//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+                    if ("00000000".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
+                        continue;
+                    }
+                } else {
+                    continue;
                 }
 
                 // 灏哄妫�娴嬪紓甯�
@@ -194,6 +192,15 @@
                 }
                 // 閫�鍥�
                 if (back) {
+                    barcodeThread.setBarcode("");
+                    // 鑾峰彇宸ヤ綔鍙�
+                    int workNo = commonService.getWorkNo(3);
+
+                    staProtocol.setWorkNo(workNo);
+                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
+
+                    devpThread.setPakMk(staProtocol.getSiteId(), false,201);
+                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                     // led 寮傚父鏄剧ず
                     LedErrorThreadUtil.ledErrorThread(errMsg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc());
                     continue;
@@ -232,7 +239,7 @@
 //                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
                         barcodeThread.setBarcode("");
                         staProtocol.setWorkNo(wrkMast.getWrkNo());
-                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                        staProtocol.setStaNo(wrkMast.getStaNoSou$().shortValue());
 
                         devpThread.setPakMk(staProtocol.getSiteId(), false,238);
                         boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -277,7 +284,9 @@
 //                            if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) {
 //                                staProtocol.setStaNo(607);//607
 //                            } else {//濡傛灉瀛樺湪RGV缂栧彿锛岃鏄庨渶瑕丷GV鎺ラ┏锛屽厛涓嬪彂浠诲姟鍒癛GV婧愮珯
-                            staProtocol.setStaNo(dto.getRgvSstaNo().shortValue());
+//                            staProtocol.setStaNo(dto.getRgvSstaNo().shortValue());
+                            staProtocol.setStaNo(wrkMast.getStaNoSou$().shortValue());
+
 //                            }
 
                             devpThread.setPakMk(staProtocol.getSiteId(), false,283);
@@ -287,6 +296,14 @@
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
                             }
                         } else {
+                            // 鑾峰彇宸ヤ綔鍙�
+                            int workNo = commonService.getWorkNo(3);
+
+                            staProtocol.setWorkNo(workNo);
+                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
+
+                            devpThread.setPakMk(staProtocol.getSiteId(), false,201);
+                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                             // led 寮傚父鏄剧ず
                             LedErrorThreadUtil.ledErrorThread("鍏ュ簱璇锋眰澶辫触"+jsonObject.getInteger("code"),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
                             log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
@@ -307,7 +324,7 @@
      */
     public synchronized void storeEmptyPlt() {
         for (DevpSlave devp : slaveProperties.getDevp()) {
-            if (devp.getId()==1) continue;
+//            if (devp.getId()==1) continue;
             // 閬嶅巻绌烘澘鍏ュ簱鍙�
             for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
                 // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
@@ -341,7 +358,7 @@
 
                             // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
                             staProtocol.setWorkNo(dto.getWorkNo());
-                            staProtocol.setStaNo(dto.getStaNo().shortValue());
+                            staProtocol.setStaNo(dto.getStaNoSou$(dto.getStaNo(),staProtocol.getSiteId()).shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false,4087);
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                             if (!result) {
@@ -733,7 +750,7 @@
             }
 
             // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-            if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
+            if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo()) && crnProtocol.getCrnNo()!=3) {
                 String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
                 LocMast shallowLoc = locMastService.selectById(shallowLocNo);
                 // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
@@ -880,7 +897,7 @@
                 }
 
                 // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-                if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
+                if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo()) && crnProtocol.getCrnNo()!=3) {
                     String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
                     LocMast shallowLoc = locMastService.selectById(shallowLocNo);
                     // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
@@ -890,10 +907,10 @@
                             log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
                         } else {
                             if (waitWrkMast.getWrkSts() == 11) {
-                                if (waitWrkMast.getIoPri() + 100000D < 999999999D) {
-                                    waitWrkMast.setIoPri(waitWrkMast.getIoPri()+100000D);
+                                if (waitWrkMast.getIoPri() + 10D < 9999D) {
+                                    waitWrkMast.setIoPri(waitWrkMast.getIoPri()+10D);
                                 } else {
-                                    waitWrkMast.setIoPri(999999999D);
+                                    waitWrkMast.setIoPri(9999D);
                                 }
                                 waitWrkMast.setModiTime(new Date());
                                 if (wrkMastMapper.updateById(waitWrkMast) == 0) {
@@ -1149,6 +1166,192 @@
         }
     }
 
+
+    /**
+     * 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
+     */
+    public synchronized void ledExecute() {
+        for (LedSlave led : slaveProperties.getLed()) {
+            // 鑾峰彇杈撻�佺嚎plc绾跨▼
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
+            // 鍛戒护闆嗗悎
+            List<LedCommand> commands = new ArrayList<>();
+            // 宸ヤ綔妗i泦鍚�
+            List<WrkMast> wrkMasts = new ArrayList<>();
+            for (Integer staNo : led.getStaArr()) {
+                // 鑾峰彇鍙夎溅绔欑偣
+                StaProtocol staProtocol = devpThread.getStation().get(staNo);
+                if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                // 鑾峰彇宸ヤ綔妗f暟鎹�
+                WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+                if (null == wrkMast) {
+                    if(staProtocol.getWorkNo() > 9999){ //寮傚父閫�鍑�
+                        String err = basDevpOptService.getErr(staProtocol.getWorkNo());
+                        MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, err));
+                    }
+                    continue;
+                }
+                wrkMasts.add(wrkMast);
+                // 缁勮鍛戒护
+                LedCommand ledCommand = new LedCommand();
+                ledCommand.setWorkNo(wrkMast.getWrkNo());
+                ledCommand.setIoType(wrkMast.getIoType());
+                // 鍑哄簱妯″紡
+                switch (wrkMast.getIoType()) {
+                    case 1:
+                        ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+                        break;
+                    case 10:
+                        ledCommand.setTitle("绌烘澘鍏ュ簱");
+                        break;
+                    case 12:
+                        ledCommand.setTitle("鐗╂枡琛旀帴");
+                        break;
+                    case 57:
+                        ledCommand.setTitle("鐩樼偣鍐嶅叆搴�");
+                        break;
+                    case 53:
+                        ledCommand.setTitle("鎷f枡鍐嶅叆搴�");
+                        break;
+                    case 101:
+                        ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
+                        break;
+                    case 103:
+                        ledCommand.setTitle("鎷f枡鍑哄簱");
+                        break;
+                    case 104:
+                        ledCommand.setTitle("骞舵澘鍑哄簱");
+                        break;
+                    case 107:
+                        ledCommand.setTitle("鐩樼偣鍑哄簱");
+                        break;
+                    case 110:
+                        ledCommand.setTitle("绌烘澘鍑哄簱");
+                        ledCommand.setEmptyMk(true);
+                        break;
+                    default:
+                        News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+                        break;
+                }
+                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
+                ledCommand.setStaNo(wrkMast.getStaNo());
+                ledCommand.setBarcode(wrkMast.getBarcode());
+                if(wrkMast.getIoType() == 12){
+                    List<WrkDetl> wrkDetls = wrkDetlService.findByBarcode(wrkMast.getBarcode());
+                    wrkDetls.forEach(wrkDetl -> {
+                        Double total = 0.0;
+                        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+                        LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+                        if (Cools.isEmpty(locDetl)) {
+                            total = wrkDetl.getAnfme();
+                        } else {
+                            total = locDetl.getAnfme();
+                        }
+                        ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+                    });
+                }
+                if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
+                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
+
+                    wrkDetls.forEach(wrkDetl -> {
+                        Double total = 0.0;
+                        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+                        LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+                        if (Cools.isEmpty(locDetl)) {
+                            total = wrkDetl.getAnfme();
+                        } else {
+                            total = locDetl.getAnfme();
+                        }
+                        if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+                        }
+                        if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+                        }
+                        if (wrkMast.getIoType() == 107) {
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+                        }
+                    });
+                }
+                commands.add(ledCommand);
+            }
+            Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
+            // 鑾峰彇LED绾跨▼
+            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+            // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
+            if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
+                continue;
+            }
+            // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
+            if (!commands.isEmpty()) {
+                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
+                    News.error("{}鍙稬ED鏄剧ず鍐呭鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+                    continue;
+                }
+            }
+
+            try {
+                // 淇敼涓绘。led鏍囪
+                for (WrkMast wrkMast : wrkMasts) {
+                    wrkMast.setOveMk("Y");
+                    wrkMast.setModiTime(new Date());
+                    if (wrkMastMapper.updateById(wrkMast) == 0) {
+                        throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+                    }
+                }
+
+                // 鏇存柊绾跨▼褰撳墠宸ヤ綔鍙烽泦鍚�
+                ledThread.setWorkNos(workNos);
+
+            } catch (Exception e) {
+                e.printStackTrace();
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            }
+
+        }
+    }
+
+    /**
+     * 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
+     */
+    public synchronized void ledReset() {
+        for (LedSlave led : slaveProperties.getLed()) {
+            // 鑾峰彇杈撻�佺嚎plc绾跨▼
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
+            // 鍛戒护闆嗗悎
+            boolean reset = true;
+            for (Integer staNo : led.getStaArr()) {
+//                System.out.println("staArr = " + staNo);
+
+                // 鑾峰彇鍙夎溅绔欑偣
+                StaProtocol staProtocol = devpThread.getStation().get(staNo);
+                if (staProtocol == null) { continue; }
+                if (staProtocol.getWorkNo() != 0 || staProtocol.isErr()) {
+                    reset = false;
+                    break;
+                }
+            }
+            // 鑾峰彇led绾跨▼
+            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+            // led鏄剧ず榛樿鍐呭
+            if (reset) {
+                if (ledThread == null) {
+                    continue;
+                }
+                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
+                    News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+                }
+//                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
+//                    News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+//                }
+            }
+        }
+    }
+
     /**
      * 鍫嗗灈鏈�5鍒嗛挓鏃犱换鍔″垯鍥炲埌婧愮偣
      */
@@ -1180,7 +1383,7 @@
                         if (!WrkMastLogList.isEmpty()) {
                             boolean signT = false;
                             for (WrkMast wrkMast : WrkMastLogList){
-                                Date completeTime = wrkMast.getIoTime();
+                                Date completeTime = wrkMast.getModiTime();
                                 if (completeTime==null){
                                     continue;
                                 }
@@ -1242,6 +1445,45 @@
 
     /////////////////////////////////////RGV璋冨害/////////////////////////////////////
 
+    public synchronized void taskCreate() {
+        for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+            try {
+                for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) {
+                    WrkMast wrkMast = deviceDetectionCreate(inSta);
+                    if (!Cools.isEmpty(wrkMast)) {
+                        TaskWrk taskWrk = new TaskWrk(wrkMast);
+                        taskWrkService.insert(taskWrk);
+                    }
+                }
+            } catch (Exception e){
+
+            }
+        }
+    }
+
+    public synchronized void taskCancel() {
+        try {
+            List<String> taskList = new ArrayList<>();
+            for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+                TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+                ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+                for (TaskProtocol taskProtocol : allTaskProtocol.values()){
+                    taskList.add(taskProtocol.getTaskNo().toString());
+                }
+            }
+            Wrapper<TaskWrk> wrkWrapper = new EntityWrapper<TaskWrk>().eq("status", 5);
+            for (String taskNo : taskList){
+                wrkWrapper.ne("task_no", taskNo);
+            }
+            int count = taskWrkService.selectCount(wrkWrapper);
+            if (count>0){
+                taskWrkService.delete(wrkWrapper);
+            }
+        } catch (Exception e){
+
+        }
+    }
     public synchronized void taskStart() {
         for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
             try {
@@ -1724,6 +1966,34 @@
         return true;
     }
 
+    public WrkMast deviceDetectionCreate(RgvSlave.RgvStn inSta) {
+        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId());
+        StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+        if (staProtocol == null) {
+            return null;
+        }
+
+        // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢
+        if (staProtocol.isAutoing()
+//                && staProtocol.isLoading()
+//                && staProtocol.isStaOk()
+                && staProtocol.getWorkNo() != 0) {
+            WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
+            if (!Cools.isEmpty(wrkMast)){
+                if (inSta.getStaNo()==117 || inSta.getStaNo()==120 || inSta.getStaNo()==123
+                        || inSta.getStaNo()==217 || inSta.getStaNo()==220 || inSta.getStaNo()==223){
+                    if (wrkMast.getIoType()>100){
+                        return null;
+                    }
+                }
+                TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo());
+                if (Cools.isEmpty(taskWrk)){
+                    return wrkMast;
+                }
+            }
+        }
+        return null;
+    }
     public TaskWrk deviceDetection(RgvSlave.RgvStn inSta) {
 
         DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId());
@@ -1741,7 +2011,7 @@
 //                && staProtocol.isLoading()
 //                && staProtocol.isStaOk()
                 && staProtocol.getWorkNo() != 0) {
-            TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo());
+            TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo());
             if (taskWrk != null) {
                 Integer stano = staProtocol.getStaNo().intValue();
                 if (staProtocol.getSiteId() == 1004 || staProtocol.getSiteId()==1020){
@@ -1859,7 +2129,7 @@
                 // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢
                 if (staProtocolOther.isAutoing()
                         && staProtocolOther.getWorkNo() != 0) {
-                    TaskWrk taskWrkOther = taskWrkService.selectByWrkNo(staProtocolOther.getWorkNo());
+                    TaskWrk taskWrkOther = taskWrkService.selectByTaskNo(staProtocolOther.getWorkNo());
                     if (taskWrkOther != null) {
                         return taskWrkOther;
                     }
@@ -1969,6 +2239,7 @@
                 issuedTake.setTaskNo(Long.valueOf(taskWrk.getWrkNo()));
                 issuedTake.setTaskStatus(2);
                 issuedTake.setTargetPositionStaNo(basDevpPositionSou.getDevNo());
+                issuedTake.setTargetPositionStaNoEnd(basDevpPositionSou.getDevNo$());
                 issuedTake.setTargetPositionStaNoPlcId(basDevpPositionSou.getPlcId());
                 issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
                 issuedTake.setTargetPosition(basDevpPositionSou.getPlcPosition());
@@ -1979,6 +2250,7 @@
                 issuedPut.setTaskNo(Long.valueOf(taskWrk.getWrkNo()));
                 issuedPut.setTaskStatus(3);
                 issuedPut.setTargetPositionStaNo(basDevpPositionEnd.getDevNo());
+                issuedPut.setTargetPositionStaNoEnd(basDevpPositionEnd.getDevNo$());
                 issuedPut.setTargetPositionStaNoPlcId(basDevpPositionEnd.getPlcId());
                 issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
                 issuedPut.setTargetPosition(basDevpPositionEnd.getPlcPosition());
@@ -1986,13 +2258,11 @@
                 issuedPut.setDirection(basDevpPositionEnd.getRgvSign()==1);
 
                 try{
-                    if (taskWrk.getIoType()==2 && basDevpPositionEnd.getRgvSign()==1){
-                        Date now = new Date();
-                        taskWrk.setStatus(TaskStatusType.OVER.id);
-                        taskWrk.setModiTime(now);//鏇存柊鏃堕棿
-                        taskWrk.setCompleteTime(now);//瀹岀粨鏃堕棿
-                        taskWrkService.updateById(taskWrk);
-                    }
+                    Date now = new Date();
+                    taskWrk.setStatus(TaskStatusType.OVER.id);
+                    taskWrk.setModiTime(now);//鏇存柊鏃堕棿
+                    taskWrk.setCompleteTime(now);//瀹岀粨鏃堕棿
+                    taskWrkService.updateById(taskWrk);
                 } catch (Exception e){
 
                 }

--
Gitblit v1.9.1