ソースを参照

全程曲线获取,开始时间的获取进行更改

dongjh 1 年間 前
コミット
4d41c37f86

+ 1 - 1
jeecg-module-system/jeecg-system-start/src/main/resources/logback-spring.xml

@@ -67,7 +67,7 @@
 	<logger name="java.sql.PreparedStatement" level="DEBUG" />
 
 	<!-- 日志输出级别 -->
-	<root level="WARN">
+	<root level="INFO">
 		<appender-ref ref="STDOUT" />
 		<appender-ref ref="FILE" />
 		<appender-ref ref="HTML" />

+ 12 - 0
module-guan/src/main/java/org/jeecg/modules/webaccess/controller/WebAccessController.java

@@ -8,6 +8,7 @@ import net.sf.json.JSONObject;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.modules.webaccess.dto.WaLogDTO;
+import org.jeecg.modules.webaccess.entity.GuanTest;
 import org.jeecg.modules.webaccess.service.WebAccessService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -162,4 +163,15 @@ public class WebAccessController {
 
         return Result.OK("获取成功", rtn);
     }
+
+    /**
+     * 获取全程曲线
+     */
+    @ApiOperation(value = "获取全程曲线", notes = "获取全程曲线")
+    @RequestMapping(value = "/getQcqx", method = RequestMethod.GET)
+    public Result getQcqx(GuanTest guanTest) {
+        JSONArray rtn = webAccessService.getDashboardDataLog(guanTest.getStarttime());
+
+        return Result.OK("获取成功", rtn);
+    }
 }

+ 6 - 0
module-guan/src/main/java/org/jeecg/modules/webaccess/entity/GuanTest.java

@@ -41,6 +41,12 @@ public class GuanTest {
     @ApiModelProperty(value = "联系人")
     private String linker;
 
+    /**试验开始时间*/
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "试验开始时间")
+    private Date starttime;
+
     /**创建时间*/
     @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")

+ 1 - 0
module-guan/src/main/java/org/jeecg/modules/webaccess/mapper/xml/GuanTestMapper.xml

@@ -14,6 +14,7 @@
         <result property="updateTime"    column="update_time"    />
         <result property="updateBy"    column="update_by"    />
         <result property="remark"    column="remark"    />
+        <result property="starttime"    column="starttime"    />
     </resultMap>
 
 

+ 80 - 23
module-guan/src/main/java/org/jeecg/modules/webaccess/service/WebAccessService.java

@@ -613,7 +613,7 @@ public class WebAccessService {
      *
      * @return
      */
-    public JSONArray getDashboardDataLog() {
+    public JSONArray getDashboardDataLog(Date startTime) {
         // 获取大屏参数设置
         GuanDashboardParam paramat = new GuanDashboardParam();
         paramat.setStatus("1"); // 状态为启用
@@ -634,20 +634,23 @@ public class WebAccessService {
             Date now = new Date();
 
             // 获取试验运行时间
-            List<WaLogDTO> tags = new ArrayList<>();
-            WaLogDTO waLogDTO = new WaLogDTO("试验运行时间");
-            tags.add(waLogDTO);
-            JSONObject waparams = generateGetObject(tags);
-            Integer syyxsj = Integer.parseInt(getTagNameValues(waparams)); // 获取试验运行时间
-
-            // 防止试验运行时间太长,导致查询不到数据(3个月*30天*24小时*60分钟*60秒 = 7,776,000)
-            syyxsj = syyxsj < 7776000 ? syyxsj : 7776000;
-
-            // 开始时间
+//            List<WaLogDTO> tags = new ArrayList<>();
+//            WaLogDTO waLogDTO = new WaLogDTO("试验运行时间");
+//            tags.add(waLogDTO);
+//            JSONObject waparams = generateGetObject(tags);
+//            Integer syyxsj = Integer.parseInt(getTagNameValues(waparams)); // 获取试验运行时间
+//
+//            // 防止试验运行时间太长,导致查询不到数据(3个月*30天*24小时*60分钟*60秒 = 7,776,000)
+//            syyxsj = syyxsj < 7776000 ? syyxsj : 7776000;
+//
+//            // 开始时间
             Calendar calendar = Calendar.getInstance();
             calendar.setTime(now); // 设置当前的时间戳
-            calendar.add(Calendar.SECOND, -syyxsj);
-            Date startTime = calendar.getTime(); // 试验开始时间(也是 全程曲线开始时间)
+//            calendar.add(Calendar.SECOND, -syyxsj);
+//            Date startTime = calendar.getTime(); // 试验开始时间(也是 全程曲线开始时间)
+            GuanTest guanTest = guanTestMapper.selectTop1Test();
+            startTime = startTime == null ? guanTest.getStarttime() : startTime; // 试验开始时间(也是 全程曲线开始时间)
+            Integer syyxsj = Integer.parseInt(((now.getTime() - startTime.getTime()) / 1000) + "");
             Date realityTime = null; // 实时曲线开始时间
 
             for (GuanDashboardParam param : dashboardParamList) {
@@ -743,14 +746,14 @@ public class WebAccessService {
             }
 
             // 获取实时曲线时间分布
-            List<String> stimes = genTime(realityTime, now, ssIntervals);
+            List<String> stimes = genTime(realityTime, now, ssIntervals, "HH:mm");
             JSONObject stimeObject = new JSONObject();
             stimeObject.put("Name", "实时曲线-时间分布");
             stimeObject.put("Values", stimes);
             list.add(stimeObject);
 
             // 获取全程曲线时间分布
-            List<String> qtimes = genTime(startTime, now, qcIntervals);
+            List<String> qtimes = genTime(startTime, now, qcIntervals, "MM-dd HH:mm");
             JSONObject qtimeObject = new JSONObject();
             qtimeObject.put("Name", "全程曲线-时间分布");
             qtimeObject.put("Values", qtimes);
@@ -767,14 +770,14 @@ public class WebAccessService {
      * @param startTime 开始时间
      * @param intervals 间隔频率(分钟)
      */
-    private List<String> genTime(Date startTime, Date endTime, Integer intervals) {
+    private List<String> genTime(Date startTime, Date endTime, Integer intervals, String dateformat) {
         List<String> times = new ArrayList<>();
 
         // 循环获取时间
         Calendar calendar = Calendar.getInstance();
         while (startTime.before(endTime)) {
 //            times.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(startTime));
-            times.add(new SimpleDateFormat("HH:mm").format(startTime));
+            times.add(new SimpleDateFormat(dateformat).format(startTime));
             // 设置当前的时间戳
             calendar.setTime(startTime);
             calendar.add(Calendar.MINUTE, intervals);
@@ -792,18 +795,72 @@ public class WebAccessService {
      */
     public List<CirculateDTO> getYzcx(List<String> duans) {
         List<CirculateDTO> circulates = new ArrayList<>();
-        // 获取4个内部循环定义信息(启始段、结束段、次数)
-        circulates = getNbxh();
 
-        // 获取循环详细信息(温度、湿度、时间)
-        getCxsd(circulates, duans);
+        // 先获取 运行方式设定
+        List<WaLogDTO> tags = new ArrayList<>();
+        WaLogDTO tag = new WaLogDTO("运行方式设定");
+        tags.add(tag);
+        JSONObject jsonObject = generateGetObject(tags);
+        String tagValue = getTagNameValues(jsonObject);
+
+        // 程序方式
+        if ("1".equals(tagValue)) {
+            // 获取4个内部循环定义信息(启始段、结束段、次数)
+            circulates = getNbxh();
 
-        circulates.remove(circulates.size() - 1);
+            // 获取循环详细信息(温度、湿度、时间)
+            getCxsd(circulates, duans);
+
+            circulates.remove(circulates.size() - 1);
+        }
+        // 定值方式
+        else if ("2".equals(tagValue)) {
+            getDzfsInfo(circulates);
+        }
 
         return circulates;
     }
 
     /**
+     * 获取定值方式的数据
+     * @param circulates
+     */
+    private void getDzfsInfo(List<CirculateDTO> circulates) {
+        // 获取 温度设定值
+        List<WaLogDTO> tags = new ArrayList<>();
+        WaLogDTO tag = new WaLogDTO("温度设定值");
+        tags.add(tag);
+        JSONObject jsonObject = generateGetObject(tags);
+        String temp = getTagNameValues(jsonObject);
+
+        // 获取 湿度设定值
+        tags = new ArrayList<>();
+        tag = new WaLogDTO("湿度设定值");
+        tags.add(tag);
+        jsonObject = generateGetObject(tags);
+        String humi = getTagNameValues(jsonObject);
+
+        CirculateDTO circulate = new CirculateDTO();
+        circulate.setBegintime("1");
+        circulate.setEndtime("10");
+        circulate.setBeginsec(1);
+        circulate.setEndsec(10);
+        circulate.setCircname("定值运行");
+
+        List<SectionDTO> sections = new ArrayList<>();
+        for(int i = 1; i <= 10; i++) {
+            SectionDTO section = new SectionDTO();
+            section.setTemperature(Float.parseFloat(temp));
+            section.setHumidity(Float.parseFloat(humi));
+            section.setTime(i + "");
+            sections.add(section);
+        }
+
+        circulate.setSections(sections);
+        circulates.add(circulate);
+    }
+
+    /**
      * 获取循环详细信息(温度、湿度、时间)
      * @param circulates 循环信息
      * @param duans 段标识
@@ -1133,7 +1190,7 @@ public class WebAccessService {
         jsonObject.put("设备实时值", tagArray);
 
         // 设备历史值
-        JSONArray logArray = getDashboardDataLog();
+        JSONArray logArray = getDashboardDataLog(null);
         jsonObject.put("设备历史值", logArray);
 
         // 最新一条报警信息