From 694cb2277a3d7ad141ef9f0418d631a77f472673 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 11 九月 2020 17:31:09 +0800
Subject: [PATCH] #优化主流程事务性

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   83 +++++++++++++++++++++++------------------
 1 files changed, 46 insertions(+), 37 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 84614d9..3932449 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -187,17 +187,7 @@
                         && staProtocol.isPakMk()) {
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo());
-                    if (wrkMast == null) {
-                        continue;
-                    }
-
-                    // 鏇存柊宸ヤ綔涓绘。
-                    wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋
-                    wrkMast.setModiTime(new Date());
-                    Integer update = wrkMastMapper.updateById(wrkMast);
-                    if (update == 0) {
-                        throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
-                    }
+                    if (wrkMast == null) { continue; }
 
                     // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
@@ -206,8 +196,15 @@
                     staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                     staProtocol.setPakMk(false);
                     boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    if (!result) {
-                        throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+                    if (result) {
+                        // 鏇存柊宸ヤ綔涓绘。
+                        wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋
+                        wrkMast.setModiTime(new Date());
+                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+                            log.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
+                        }
+                    } else {
+                        log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
                     }
 
                 }
@@ -241,6 +238,29 @@
                         || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo()) ) {
                         continue;
                     }
+                    // 鑾峰彇鐩爣绔�
+                    Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                            .eq("type_no", wrkMast.getIoType() - 50)
+                            .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+                            .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+                    StaDesc staDesc = staDescService.selectOne(wrapper);
+                    if (Cools.isEmpty(staDesc)) {
+                        log.error("鍏ュ簱璺緞涓嶅瓨鍦�");
+                        continue;
+                    }
+
+                    // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+                    staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                    staProtocol.setPakMk(false);
+                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                    if (!result) {
+                        log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+                        continue;
+                    }
+
+                    // todo:luxiaotao
+
                     // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
                     if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
                         throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
@@ -249,15 +269,7 @@
                     if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
                         throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
                     }
-                    // 鑾峰彇鐩爣绔�
-                    Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-                            .eq("type_no", wrkMast.getIoType() - 50)
-                            .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
-                            .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
-                    StaDesc staDesc = staDescService.selectOne(wrapper);
-                    if (Cools.isEmpty(staDesc)) {
-                        throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
-                    }
+
                     // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
                     Integer staNo = staDesc.getCrnStn();
                     // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
@@ -279,14 +291,7 @@
                         throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
                     }
 
-                    // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                    staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
-                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
-                    staProtocol.setPakMk(false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    if (!result) {
-                        throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                    }
+
 
                 }
 
@@ -331,21 +336,21 @@
 
                         // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
-                        // 1.澶嶄綅鍫嗗灈鏈�
-                        crnThread.setResetFlag(true);
-
-                        // 2.涓嬪彂绔欑偣淇℃伅
+                        // 涓嬪彂绔欑偣淇℃伅
                         staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
                         staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                         if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
-                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+                            continue;
                         }
 
                         // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
                         wrkMast.setWrkSts(14L);
                         wrkMast.setCrnEndTime(new Date());
-                        if (wrkMastMapper.updateById(wrkMast) == 0) {
-                            throw new CoolException("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛屽伐浣滃彿"+wrkMast.getWrkNo());
+                        if (wrkMastMapper.updateById(wrkMast) != 0) {
+                            // 澶嶄綅鍫嗗灈鏈�
+                            crnThread.setResetFlag(true);
+                        } else {
+                            log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
                         }
 
                     }
@@ -681,6 +686,8 @@
                     // 妫�绱㈠簱浣�
                     StartupDto startupDto = commonService.getLocNo(1, 10, emptyInSta.getStaNo(), null);
 
+                    // todo:luxiaotao
+
                     // 鎻掑叆宸ヤ綔涓绘。
                     WrkMast wrkMast = new WrkMast();
                     wrkMast.setWrkNo(workNo);
@@ -799,6 +806,8 @@
                 }
             }
 
+            // todo:luxiaotao
+
             // 淇敼涓绘。led鏍囪
             for (WrkMast wrkMast : wrkMasts) {
                 wrkMast.setOveMk("Y");

--
Gitblit v1.9.1