| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | 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); |
| | |
| | | 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()); |
| | | } |
| | | } |
| | | |
| | |
| | | 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); |
| | |
| | | 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 |