From 65807b1a334e55b0f30dd53df8bdac81d2dc4dbd Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期二, 25 五月 2021 10:50:54 +0800
Subject: [PATCH] 更新试验接口

---
 src/main/java/com/whyc/service/ExperimentService.java |   85 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 77 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/whyc/service/ExperimentService.java b/src/main/java/com/whyc/service/ExperimentService.java
index 1ab0ea2..0e06260 100644
--- a/src/main/java/com/whyc/service/ExperimentService.java
+++ b/src/main/java/com/whyc/service/ExperimentService.java
@@ -13,6 +13,7 @@
 import com.whyc.pojo.ExperimentBaseDataKZ;
 import com.whyc.pojo.ExperimentPoint;
 import com.whyc.pojo.ExperimentPrecondition;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -28,6 +29,7 @@
 import static java.lang.Thread.sleep;
 
 @Service
+@Slf4j
 public class ExperimentService {
 
     @Resource
@@ -270,6 +272,9 @@
 
     /**
      * 鍚姩娴嬭瘯鐐�,骞跺湪娴嬭瘯鏃堕暱杩囧悗,杩斿洖娴嬭瘯缁撴灉
+     * 娴嬭瘯鐐圭殑缁撴潫,缁撴潫鍒嗕袱绉嶆儏鍐�:
+     *  鎯呭喌涓�:缁忚繃棰勫畾鐨勬祴璇曟椂闀�,鍋滄
+     *  鎯呭喌浜�:鏇存柊浜嗘暟鎹簱鐨勬煇涓瓧娈�,浠g爜寰幆鍒ゆ柇杩欎釜瀛楁,濡傛灉涓�2鍒欏仠姝㈠疄楠屽苟杩斿洖缁撴灉
      * @return
      */
     public Response startExperimentPoint(ExperimentPoint point){
@@ -280,34 +285,98 @@
         //绛夊緟duration鏃堕棿
         Integer duration = point.getDuration();
         Integer durationSecond = duration*60;
-        try {
+        final boolean[] threadStatus = {true};
+        //閲囩敤绾跨▼鐨勫師鍥犳槸闈炵嚎绋媠leep鍚庢棤娉曟墽琛屾墜鍔ㄧ粨鏉熸潯浠跺垽鏂唬鐮�
+        Thread t = new Thread(){
+            @Override
+            public void run() {
+                try {
+                    sleep(10000);
+                    threadStatus[0] = false;
+                } catch (InterruptedException e) {
+                    interrupt();
+                    log.warn("t1绾跨▼琚墦鏂�");
+                    //e.printStackTrace();
+                }
+            };
+        };
+        t.start();
+
+        boolean statusFlag =true;
+        //鎵嬪姩鍋滄鍜屾祴璇曠偣棰勮鏃堕棿,1涓潯浠舵垚绔嬪氨缁堟娴嬭瘯
+        while(statusFlag && threadStatus[0]){
+            //鏌ヨ娴嬭瘯鐐圭姸鎬佹槸鍚﹁鎵撴柇
+            QueryWrapper<ExperimentPoint> wrapper = Wrappers.query();
+            wrapper.select("status").eq("id",point.getId());
+            ExperimentPoint currentPoint = pointMapper.selectOne(wrapper);
+            if(currentPoint.getStatus()==3){
+                statusFlag = false;
+            }
+        }
+        log.warn("娴嬭瘯鐐圭粨鏉�");
+        if (t.isAlive()) {
+            t.interrupt();
+        }
+
+        /*try {
             //sleep(durationSecond);
             //婕旂ず闇�瑕�,浣跨敤5s
             sleep(5000);
+
         } catch (InterruptedException e) {
             e.printStackTrace();
-        }
+        }*/
         pointMapper.updateEndTime(point.getId(),new Date());
         //杩斿洖杩欐鏃堕棿鐨勬祴璇曠粨鏋�
         //TODO 杩欐鏃堕棿鍐呯殑鏁版嵁,闇�瑕佽繘琛屽姩鎬佽绠�
         Map<String,String> resMap = new HashMap<>();
         int value = (int) (100 + Math.random() * 10);
         resMap.put("骞冲潎鍔熺巼",value+"kW");
-        setExperimentState(point.getExperimentId(),1);
         return new Response().set(1,resMap);
     }
 
-    public void setExperimentState(String id,int status){
-        Experiment experiment = mapper.selectById(id);
-        experiment.setStatus(status);
-        mapper.updateById(experiment);
-    }
 
     public Response finishExperiment(String experimentId) {
         mapper.updateStatusAndTime(experimentId,2,"end_time",new Date());
         return new Response().setMsg(1,"鐘舵�佹洿鏂版垚鍔�");
     }
 
+    public Response finishExperimentPoint(Integer id) {
+        ExperimentPoint point = new ExperimentPoint();
+        point.setId(id);
+        //涓柇淇″彿
+        point.setStatus(3);
+        pointMapper.updateById(point);
+        return new Response().setMsg(1,"娴嬭瘯鐐逛腑鏂俊鍙锋洿鏂版垚鍔�");
+    }
+
+    public Response setPrecondition(Integer id) {
+        switch (id){
+            case 1:{
+                commonMapper.setPrecondition("`db_3.5mw_motor`.tb_central_monitor_sys_rt","10001","switch_close","0");
+            }
+            case 2:{
+
+            }
+            case 3:{
+
+            }
+            case 4:{
+
+            }
+            case 5:{
+
+            }
+            case 6:{
+
+            }
+            case 7:{
+
+            }
+        }
+        return new Response().setMsg(1,"璁剧疆瀹屾垚");
+    }
+
     /*======History======*/
 
     public Response<PageInfo<Experiment>> getPage(Integer pageNum, Integer pageSize, ExperimentConditionDTO condition) {

--
Gitblit v1.9.1