From 4be7d863a161b64f8592a789d699e807545e7dc6 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期五, 15 十一月 2024 16:46:12 +0800
Subject: [PATCH] 计划数据

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java |   73 ++++++++++++++++++++++--------------
 1 files changed, 44 insertions(+), 29 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
index f2f803f..3ed05e1 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
@@ -1,57 +1,50 @@
 package com.iailab.module.data.api.controller.admin;
 
-import com.iailab.framework.apilog.core.annotation.ApiAccessLog;
 import com.iailab.framework.common.pojo.CommonResult;
 import com.iailab.framework.common.util.date.DateUtils;
 import com.iailab.framework.common.util.object.ConvertUtils;
 import com.iailab.framework.excel.core.util.ExcelUtils;
 import com.iailab.framework.tenant.core.context.TenantContextHolder;
+import com.iailab.module.data.api.dto.DeviceValueDTO;
 import com.iailab.module.data.api.dto.IndexQueryDTO;
 import com.iailab.module.data.api.dto.echarts.BarLineDTO;
 import com.iailab.module.data.api.dto.echarts.SeriesItem;
 import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
 import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
 import com.iailab.module.data.api.plan.PlanItemApi;
+import com.iailab.module.data.api.plan.dto.ApiPlanDataDTO;
 import com.iailab.module.data.api.point.DataPointApi;
 import com.iailab.module.data.api.point.dto.ApiPointValueDTO;
 import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO;
 import com.iailab.module.data.api.point.dto.ApiPointsValueQueryDTO;
 import com.iailab.module.data.common.ApiDataQueryDTO;
 import com.iailab.module.data.common.ApiDataValueDTO;
+import com.iailab.module.data.common.utils.ApiSecurityUtils;
 import com.iailab.module.data.ind.collection.IndItemCollector;
 import com.iailab.module.data.ind.item.vo.IndItemValueVO;
 import com.iailab.module.data.plan.item.entity.PlanItemEntity;
+import com.iailab.module.data.plan.item.service.PlanItemService;
 import com.iailab.module.data.plan.item.vo.PlanItemValueExportVO;
 import com.iailab.module.data.point.common.PointDataTypeEnum;
 import com.iailab.module.data.point.dto.DaPointDTO;
 import com.iailab.module.data.point.service.DaPointService;
-import com.iailab.module.data.api.dto.DeviceValueDTO;
-import com.iailab.module.data.common.utils.ApiSecurityUtils;
-import com.iailab.module.data.plan.item.service.PlanItemService;
-import com.iailab.module.data.point.vo.PointValueExportVO;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.extern.slf4j.Slf4j;
-
-import javax.annotation.Resource;
-
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.annotation.security.PermitAll;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.math.BigDecimal;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static com.iailab.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static com.iailab.framework.common.pojo.CommonResult.success;
 
 /**
@@ -158,8 +151,8 @@
                 queryDto.setPointNo(item.getPointNo());
                 List<ApiPointValueDTO> list = dataPointApi.queryPointHistoryValue(queryDto);
                 List<Object[]> sData = list.stream().map(dataItem -> {
-                    Object[] valueArray = new Object[]{DateUtils.format(dataItem.getDataTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND),
-                            getFormatValue(item.getDataType(), dataItem.getDataValue())};
+                    Object[] valueArray = new Object[]{DateUtils.format(dataItem.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND),
+                            getFormatValue(item.getDataType(), dataItem.getV())};
                     return valueArray;
                 }).collect(Collectors.toList());
                 seriesItem.setData(sData);
@@ -216,8 +209,23 @@
             apiSecurityUtils.validate(request);
             result = planItemApi.queryPlanItemHistoryValue(dto);
             return new CommonResult<List<ApiDataValueDTO>>().setData(result);
-        }  catch (Exception ex) {
+        } catch (Exception ex) {
             return new CommonResult<List<ApiDataValueDTO>>().setMsg(ex.getMessage());
+        }
+    }
+
+    @PermitAll
+    @PostMapping("/query-plan/record-value")
+    @Operation(summary = "查询单个计划历史值")
+    public CommonResult<LinkedHashMap<String, List<ApiPlanDataDTO>>> queryPlanItemRecordValue(HttpServletResponse response, HttpServletRequest
+            request, @RequestBody ApiDataQueryDTO dto) {
+        LinkedHashMap<String, List<ApiPlanDataDTO>> result = new LinkedHashMap<>();
+        try {
+            apiSecurityUtils.validate(request);
+            result = planItemApi.queryPlanItemRecordValue(dto);
+            return new CommonResult<LinkedHashMap<String, List<ApiPlanDataDTO>>>().setData(result);
+        } catch (Exception ex) {
+            return new CommonResult<LinkedHashMap<String, List<ApiPlanDataDTO>>>().setMsg(ex.getMessage());
         }
     }
 
@@ -226,13 +234,16 @@
             request, @RequestBody ApiDataQueryDTO dto) {
 
         BarLineDTO CommonResult = new BarLineDTO();
+
         try {
             apiSecurityUtils.validate(request);
             List<String> legend = new ArrayList<>();
             List<SeriesItem> series = new ArrayList<>();
-            String endDateStr = dto.getEnd() == null ? DateUtils.format(new Date(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) : DateUtils.format(dto.getEnd(),  DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
-            Date endDate = DateUtils.parse(endDateStr, "yyyy-MM-dd HH:mm");
-            Date startDate = dto.getStart() == null ? DateUtils.addDateHours(endDate, -2) : dto.getStart();
+            Calendar calendar = Calendar.getInstance();
+            calendar.set(Calendar.MILLISECOND, 0);
+            calendar.set(Calendar.SECOND, 0);
+            Date endDate = dto.getEnd() == null ? DateUtils.addDateHours(calendar.getTime(), 2) : dto.getEnd();
+            Date startDate = dto.getStart() == null ? calendar.getTime() : dto.getStart();
             List<String> categories = DateUtils.getTimeScale(startDate, endDate, dto.getGranularity() == null ? 60 : dto.getGranularity());
             if (CollectionUtils.isEmpty(dto.getItemNos())) {
                 return new CommonResult<BarLineDTO>().setData(CommonResult);
@@ -268,24 +279,28 @@
         return new CommonResult<BarLineDTO>().setData(CommonResult);
     }
 
-    @GetMapping("/export-plan/history-value")
+    @PostMapping("/export-plan/history-value")
     @Operation(summary = "导出计划数据")
-    public void exportPlanHistoryValue(@RequestParam("itemNo") String itemNo,
-                                 @RequestParam("start") String start,
-                                 @RequestParam("end") String end,
-                                 HttpServletResponse response) throws IOException {
+    public void exportPlanHistoryValue(HttpServletResponse response, HttpServletRequest
+            request, @RequestBody ApiDataQueryDTO dto) throws IOException {
+        //apiSecurityUtils.validate(request);
         Calendar calendar = Calendar.getInstance();
         calendar.set(Calendar.MILLISECOND, 0);
         calendar.set(Calendar.SECOND, 0);
-        Date startDate = StringUtils.isBlank(start) ? DateUtils.addDateHours(calendar.getTime(), 0) : DateUtils.parse(start, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
-        Date endDate = StringUtils.isBlank(end) ? DateUtils.addDateHours(calendar.getTime(), 3) : DateUtils.parse(end, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
+        Date endDate = dto.getEnd() == null ? DateUtils.addDateHours(calendar.getTime(), 2) : dto.getEnd();
+        Date startDate = dto.getStart() == null ? calendar.getTime() : dto.getStart();
         ApiDataQueryDTO queryDto = new ApiDataQueryDTO();
-        queryDto.setItemNo(itemNo);
+        queryDto.setItemNo(dto.getItemNo());
         queryDto.setStart(startDate);
         queryDto.setEnd(endDate);
         List<ApiDataValueDTO> list = planItemApi.queryPlanItemHistoryValue(queryDto);
-        List<PlanItemValueExportVO> exportList = ConvertUtils.sourceToTarget(list, PlanItemValueExportVO.class);
-        ExcelUtils.write(response, "计划数据.xls", "数据", PlanItemValueExportVO.class, exportList);
+        List<PlanItemValueExportVO> exportList = list.stream().map(item -> {
+            PlanItemValueExportVO exportVO = new PlanItemValueExportVO();
+            exportVO.setDataTime(DateUtils.format(item.getDataTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
+            exportVO.setDataValue(BigDecimal.valueOf(item.getDataValue()).setScale(0, RoundingMode.HALF_UP).toString());
+            return exportVO;
+        }).collect(Collectors.toList());
+        ExcelUtils.write(response, "计划数据.xls", "计划数据", PlanItemValueExportVO.class, exportList);
     }
 
     @PermitAll

--
Gitblit v1.9.3