From 431e937773ca692190e94b326bd4c4201154f661 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 23 十月 2024 08:58:53 +0800
Subject: [PATCH] 1、解决请求入库失败后,状态恢复问题

---
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java |  162 ++++++++++++++++++++++++++---------------------------
 1 files changed, 79 insertions(+), 83 deletions(-)

diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
index 60d0403..1c93ee7 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
@@ -10,7 +10,6 @@
 import com.mes.engineering.mapper.EngineeringMapper;
 import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
 import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
-import com.mes.rawglassstation.service.RawGlassStorageStationService;
 import com.mes.rawglasstask.entity.RawGlassStorageTask;
 import com.mes.rawglasstask.service.RawGlassStorageTaskService;
 import com.mes.uppattenusage.entity.vo.UpPattenUsageVO;
@@ -34,8 +33,6 @@
 @Component
 public class RawGlassTask {
 
-    @Autowired
-    private RawGlassStorageStationService rawGlassStorageStationService;
     @Autowired
     private RawGlassStorageDetailsService rawGlassStorageDetailsService;
 
@@ -63,22 +60,23 @@
 
     @Scheduled(fixedDelay = 1000)
     public void rawStorageTask() throws Exception {
-        ReadWriteEntity requestWord = miloService.readFromOpcUa("storage-device.dev.Task Request");
-        ReadWriteEntity confireWord = miloService.readFromOpcUa("storage-device.dev.Task Confirmation Word");
-        ReadWriteEntity taskWord = miloService.readFromOpcUa("storage-device.dev.Task sending word");
+        ReadWriteEntity requestWord = miloService.readFromOpcUa("A01-CC.dev.request");
+        ReadWriteEntity confireWord = miloService.readFromOpcUa("A01-CC.dev.confirmationWord");
+        ReadWriteEntity reportWord = miloService.readFromOpcUa("A01-CC.dev.reportWord");
+        ReadWriteEntity taskWord = miloService.readFromOpcUa("A01-CC.dev.taskWord");
         String requestValue = requestWord.getValue() + "";
         if ("0".equals(requestValue)) {
-            if ("1".equals(confireWord.getValue() + "")) {
+            if ("1".equals(confireWord.getValue() + "") && "0".equals(reportWord.getValue() + "")) {
                 List<ReadWriteEntity> list = new ArrayList<>();
-                list.add(generateReadWriteEntity("storage-device.dev.Task Confirmation Word", 0));
+                list.add(generateReadWriteEntity("A01-CC.dev.confirmationWord", 0));
                 miloService.writeToOpcWord(list);
             }
             if ("1".equals(taskWord.getValue() + "")) {
                 List<ReadWriteEntity> list = new ArrayList<>();
-                list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 0));
-                list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 0));
-                list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", 0));
-                list.add(generateReadWriteEntity("storage-device.dev.End shelf number", 0));
+                list.add(generateReadWriteEntity("A01-CC.dev.taskWord", 0));
+                list.add(generateReadWriteEntity("A01-CC.dev.taskSending", 0));
+                list.add(generateReadWriteEntity("A01-CC.dev.startSlot", 0));
+                list.add(generateReadWriteEntity("A01-CC.dev.endSlot", 0));
                 miloService.writeToOpcWord(list);
             }
             return;
@@ -114,16 +112,17 @@
 
     @Scheduled(fixedDelay = 1000)
     public void rawStorageInCar() throws Exception {
-        ReadWriteEntity entity = miloService.readFromOpcUa("storage-device.dev.Loading rack");
+        ReadWriteEntity entity = miloService.readFromOpcUa("A01-CC.dev.inCar");
         String value = entity.getValue() + "";
         if (!"1".equals(value)) {
-            log.info("澶ц溅蹇欑");
+            log.info("澶ц溅涓婃病鏈夋灦瀛�");
             return;
         }
         //鏌ヨ浠诲姟
         RawGlassStorageDetails one = rawGlassStorageDetailsService.getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
                 .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
         if (one == null) {
+            log.info("娌℃湁姝e湪鎵ц鐨勪换鍔�");
             return;
         }
         rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getId, one.getId())
@@ -133,7 +132,7 @@
 
     @Scheduled(fixedDelay = 1000)
     public void rawStorageFinish() throws Exception {
-        ReadWriteEntity entity = miloService.readFromOpcUa("storage-device.dev.Task report letter");
+        ReadWriteEntity entity = miloService.readFromOpcUa("A01-CC.dev.reportWord");
         String value = entity.getValue() + "";
         if ("0".equals(value)) {
             log.info("褰撳墠浠诲姟鏈眹鎶ワ紝缁撴潫鏈浠诲姟");
@@ -150,51 +149,52 @@
         RawGlassStorageDetails targetDetails = generateDetails(details, task.getEndSlot());
         Integer taskType = task.getTaskType();
         if ("1".equals(value)) {
+            log.info("灏嗚鎯呰〃鐨勭姸鎬佹敼涓哄凡鍑哄簱");
+            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
+                    .eq(RawGlassStorageDetails::getSlot, task.getStartSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_CAR));
+            log.info("浠诲姟鐘舵�佸凡鏇存敼涓猴細宸插畬鎴�");
+            rawGlassStorageTaskService.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
+                    .eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                    .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_SUCCESS));
             switch (taskType) {
                 case 1:
-                    log.info("杩涚墖浠诲姟");
-                    rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
-                            .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
-                            .eq(RawGlassStorageDetails::getSlot, task.getStartSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_CAR));
-                    //todo:鐢熸垚鍏ュ簱璇︽儏琛細鍏朵粬淇℃伅涓嶅彉锛�
-                    rawGlassStorageDetailsService.save(targetDetails);
+                    log.info("1銆佸叆搴擄紝3銆佽皟搴︿换鍔°�倇}", taskType);
+                    if (targetDetails.getRemainQuantity() > 0) {
+                        rawGlassStorageDetailsService.save(targetDetails);
+                    }
                     break;
                 case 2:
-                    log.info("鍑虹墖浠诲姟");
-                    rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
-                            .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
-                            .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
-                            .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_CAR));
+                case 4:
+                    log.info("2銆佸嚭鐗�,4銆佸叆搴撹姹傘�倇}", taskType);
                     targetDetails = new RawGlassStorageDetails();
                     targetDetails.setSlot(task.getEndSlot());
                     targetDetails.setShelf(task.getStartSlot());
                     targetDetails.setState(Const.RAW_GLASS_STATE_IN);
                     rawGlassStorageDetailsService.save(targetDetails);
                     break;
-                case 3:
-                    log.info("璋冨害浠诲姟");
-                    rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
-                            .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
-                            .eq(RawGlassStorageDetails::getSlot, task.getStartSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_CAR));
-                    rawGlassStorageDetailsService.save(targetDetails);
-                    break;
                 default:
                     break;
             }
-            rawGlassStorageTaskService.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
-                    .eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW)
-                    .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_SUCCESS));
         } else {
+            if (taskType.equals(Const.RAW_GLASS_TASK_TYPE_IN_REQUEST)) {
+                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                        .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
+                        .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+                        .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
+            } else {
+                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                        .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                        .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+                        .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
+            }
             rawGlassStorageTaskService.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
                     .eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW)
                     .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_FAILURE));
-            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
-                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
-                    .eq(RawGlassStorageDetails::getSlot, task.getStartSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_CAR));
-        }
 
+        }
         List<ReadWriteEntity> list = new ArrayList<>();
-        list.add(generateReadWriteEntity("storage-device.dev.Task Confirmation Word", 1));
+        list.add(generateReadWriteEntity("A01-CC.dev.confirmationWord", 1));
         miloService.writeToOpcWord(list);
     }
 
@@ -252,12 +252,12 @@
         //鐢熸垚鍑哄簱浠诲姟
         rawGlassStorageDetailsService.generateTask(startSlot, lefting, startSlot, rawGlassList.get(0).getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT);
 
-        List<ReadWriteEntity> list = new ArrayList<>();
-        list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
-        list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
-        list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", startSlot));
-        list.add(generateReadWriteEntity("storage-device.dev.End shelf number", lefting));
-        miloService.writeToOpcWord(list);
+//        List<ReadWriteEntity> list = new ArrayList<>();
+//        list.add(generateReadWriteEntity("A01-CC.dev.taskWord", 1));
+//        list.add(generateReadWriteEntity("A01-CC.dev.taskSending", 1));
+//        list.add(generateReadWriteEntity("A01-CC.dev.startSlot", startSlot));
+//        list.add(generateReadWriteEntity("A01-CC.dev.endSlot", lefting));
+//        miloService.writeToOpcWord(list);
 
         //淇敼鍑虹墖浠诲姟鐘舵��
         rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
@@ -286,12 +286,12 @@
         RawGlassStorageDetails details = rawGlassList.get(0);
         rawGlassStorageDetailsService.generateTask(details.getSlot(), details.getShelf(), details.getShelf(),
                 details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_IN);
-        List<ReadWriteEntity> list = new ArrayList<>();
-        list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
-        list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
-        list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", details.getSlot()));
-        list.add(generateReadWriteEntity("storage-device.dev.End shelf number", details.getShelf()));
-        miloService.writeToOpcWord(list);
+//        List<ReadWriteEntity> list = new ArrayList<>();
+//        list.add(generateReadWriteEntity("A01-CC.dev.taskWord", 1));
+//        list.add(generateReadWriteEntity("A01-CC.dev.taskSending", 1));
+//        list.add(generateReadWriteEntity("A01-CC.dev.startSlot", details.getSlot()));
+//        list.add(generateReadWriteEntity("A01-CC.dev.endSlot", details.getShelf()));
+//        miloService.writeToOpcWord(list);
         //鐢熸垚宸ヤ綅浠诲姟锛屽皢鍚婅浣嶇殑鐜荤拑鐘舵�佹敼浣嶈繘绗间腑
         //淇敼鍚婅浣嶇殑鍘熺墖鐘舵�佷负103 鍑虹墖涓�
         //淇敼鍑虹墖浠诲姟鐘舵��
@@ -341,12 +341,6 @@
             );
             rawGlassStorageDetailsService.generateTask(details.getSlot(), endSlot, details.getSlot(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
 
-            List<ReadWriteEntity> list = new ArrayList<>();
-            list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
-            list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
-            list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", details.getSlot()));
-            list.add(generateReadWriteEntity("storage-device.dev.End shelf number", endSlot));
-            miloService.writeToOpcWord(list);
             //缁撴潫璋冨害浠诲姟 淇敼宸ヤ綅鐘舵��(璧峰浣嶏級鐘舵�佷负103 RAW_GLASS_STATE_RUNNING 浠诲姟瀹屾垚鍚庡皢鐘舵�佹敼涓�101  鐩爣浣嶆柊澧炰竴鏉℃暟鎹紝鏋跺瓙鍙蜂负锛堣捣濮嬩綅锛�
             rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                     .eq(RawGlassStorageDetails::getSlot, details.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
@@ -362,12 +356,12 @@
                     && glassStorageDetails.getRemainQuantity() == 0)) {
                 //灏嗘灦瀛愭斁鍥炲師宸ヤ綅涓�
                 rawGlassStorageDetailsService.generateTask(endSlot, glassStorageDetails.getShelf(), glassStorageDetails.getShelf(), 0, Const.RAW_GLASS_TASK_TYPE_DISPATCH);
-                List<ReadWriteEntity> list = new ArrayList<>();
-                list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
-                list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
-                list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", endSlot));
-                list.add(generateReadWriteEntity("storage-device.dev.End shelf number", glassStorageDetails.getShelf()));
-                miloService.writeToOpcWord(list);
+//                List<ReadWriteEntity> list = new ArrayList<>();
+//                list.add(generateReadWriteEntity("A01-CC.dev.taskWord", 1));
+//                list.add(generateReadWriteEntity("A01-CC.dev.taskSending", 1));
+//                list.add(generateReadWriteEntity("A01-CC.dev.startSlot", endSlot));
+//                list.add(generateReadWriteEntity("A01-CC.dev.endSlot", glassStorageDetails.getShelf()));
+//                miloService.writeToOpcWord(list);
                 rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                         .eq(RawGlassStorageDetails::getSlot, glassStorageDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                         .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
@@ -385,12 +379,12 @@
                     && glassStorageDetails.getRemainQuantity() == 0)) {
                 //灏嗘灦瀛愭斁鍥炲師宸ヤ綅涓�
                 rawGlassStorageDetailsService.generateTask(endSlot02, glassStorageDetails.getShelf(), glassStorageDetails.getShelf(), 0, Const.RAW_GLASS_TASK_TYPE_DISPATCH);
-                List<ReadWriteEntity> list = new ArrayList<>();
-                list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
-                list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
-                list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", endSlot02));
-                list.add(generateReadWriteEntity("storage-device.dev.End shelf number", glassStorageDetails.getShelf()));
-                miloService.writeToOpcWord(list);
+//                List<ReadWriteEntity> list = new ArrayList<>();
+//                list.add(generateReadWriteEntity("A01-CC.dev.taskWord", 1));
+//                list.add(generateReadWriteEntity("A01-CC.dev.taskSending", 1));
+//                list.add(generateReadWriteEntity("A01-CC.dev.startSlot", endSlot02));
+//                list.add(generateReadWriteEntity("A01-CC.dev.endSlot", glassStorageDetails.getShelf()));
+//                miloService.writeToOpcWord(list);
                 rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                         .eq(RawGlassStorageDetails::getSlot, glassStorageDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                         .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
@@ -434,12 +428,12 @@
                         .eq(RawGlassStorageDetails::getSlot, details.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                         .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
 
-                List<ReadWriteEntity> list = new ArrayList<>();
-                list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
-                list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
-                list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", glassStorageDetails.getShelf()));
-                list.add(generateReadWriteEntity("storage-device.dev.End shelf number", endSlot02));
-                miloService.writeToOpcWord(list);
+//                List<ReadWriteEntity> list = new ArrayList<>();
+//                list.add(generateReadWriteEntity("A01-CC.dev.taskWord", 1));
+//                list.add(generateReadWriteEntity("A01-CC.dev.taskSending", 1));
+//                list.add(generateReadWriteEntity("A01-CC.dev.startSlot", glassStorageDetails.getShelf()));
+//                list.add(generateReadWriteEntity("A01-CC.dev.endSlot", endSlot02));
+//                miloService.writeToOpcWord(list);
 
                 return Boolean.TRUE;
             } else {
@@ -449,12 +443,12 @@
                         .eq(RawGlassStorageDetails::getSlot, endSlot).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                         .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
 
-                List<ReadWriteEntity> list = new ArrayList<>();
-                list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
-                list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
-                list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", endSlot));
-                list.add(generateReadWriteEntity("storage-device.dev.End shelf number", glassStorageDetails.getShelf()));
-                miloService.writeToOpcWord(list);
+//                List<ReadWriteEntity> list = new ArrayList<>();
+//                list.add(generateReadWriteEntity("A01-CC.dev.taskWord", 1));
+//                list.add(generateReadWriteEntity("A01-CC.dev.taskSending", 1));
+//                list.add(generateReadWriteEntity("A01-CC.dev.startSlot", endSlot));
+//                list.add(generateReadWriteEntity("A01-CC.dev.endSlot", glassStorageDetails.getShelf()));
+//                miloService.writeToOpcWord(list);
                 return Boolean.TRUE;
             }
         }
@@ -476,11 +470,13 @@
         return targetDetails;
     }
 
+
     private ReadWriteEntity generateReadWriteEntity(String identifier, int value) {
         ReadWriteEntity readWriteEntity = new ReadWriteEntity();
         readWriteEntity.setIdentifier(identifier);
         readWriteEntity.setValue(value);
         return readWriteEntity;
     }
+
 }
 

--
Gitblit v1.8.0