|
@@ -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);
|
|
|
|
|
|
// 最新一条报警信息
|