From dcc7df9eb5227c797a1faed53bc9fdad62aa1950 Mon Sep 17 00:00:00 2001
From: letsgocoding <sdxt_0802@163.com>
Date: 星期二, 11 二月 2025 14:42:21 +0800
Subject: [PATCH] !59 添加综合指标统计(月、年)接口 Merge pull request !59 from letsgocoding/wt_from_develop1.0
---
zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/MonthlyComprehensiveController.java | 205 ++++++
zhitan-system/src/main/resources/mapper/comprehensivestatistics/MonthlyComprehensiveMapper.xml | 101 +++
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/DailyReport.java | 321 ++++++++++
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/MonthlyComprehensiveMapper.java | 51 +
zhitan-system/src/main/resources/mapper/comprehensivestatistics/YearComprehensiveMapper.xml | 81 ++
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/MonthlyComprehensive.java | 415 +++++++++++++
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/MonthlyComprehensiveServiceImpl.java | 42 +
zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/YearComprehensiveController.java | 152 +++++
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/YearComprehensiveServiceImpl.java | 68 ++
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/YearComperhensive.java | 214 +++++++
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/ImonthlyComprehensive.java | 41 +
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/IyearComprehensive.java | 42 +
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/YearComprehensiveMapper.java | 51 +
13 files changed, 1,784 insertions(+), 0 deletions(-)
diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/MonthlyComprehensiveController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/MonthlyComprehensiveController.java
new file mode 100644
index 0000000..8e41cf7
--- /dev/null
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/MonthlyComprehensiveController.java
@@ -0,0 +1,205 @@
+package com.zhitan.web.controller.comprehensivestatistics;
+
+import com.zhitan.common.core.controller.BaseController;
+import com.zhitan.common.core.domain.AjaxResult;
+import com.zhitan.common.utils.poi.ExcelUtil;
+import com.zhitan.comprehensivestatistics.domain.MonthlyComprehensive;
+import com.zhitan.comprehensivestatistics.service.ImonthlyComprehensive;
+import com.zhitan.model.domain.ModelNode;
+import com.zhitan.model.service.IModelNodeService;
+import com.zhitan.realtimedata.domain.DataItem;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.lang.reflect.Field;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * electricityPriceController
+ *
+ * @author sys
+ * @date 2020-02-18
+ */
+@Slf4j
+@RestController
+@RequestMapping("/comprehensive/monthlyComprehensive")
+@Api(value = "缁煎悎鎸囨爣鍒嗘瀽锛堟湀锛塩ontroller",tags = {"缁煎悎鎸囨爣鍒嗘瀽"})
+public class MonthlyComprehensiveController extends BaseController {
+
+ @Autowired
+ private IModelNodeService modelNodeService;
+ @Autowired
+ private ImonthlyComprehensive monthlyComprehensive;
+
+ /*鍏ㄥ巶鑳借�楃粺璁�*/
+ @ApiOperation(value = "鑾峰彇缁煎悎鎸囨爣鍒嗘瀽锛堟湀锛夊垪琛�")
+ @GetMapping("/list")
+ public AjaxResult list(DataItem dataItem) {
+ try {
+
+ Map tableColumn =new HashMap<>();//琛ㄦ暟鎹�
+ List<MonthlyComprehensive> dataList=new ArrayList<>();
+ DateFormat df = new SimpleDateFormat("yyyy-MM");
+ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String aa= df.format(dataItem.getDataTime());
+ String bb="";
+ int i = 1;
+ String beginTime=aa+"-01 00:00:00";
+ dataItem.setBeginTime(sf.parse(beginTime));
+ String endTime=aa+"-"+Integer.valueOf(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length()-2))+" 00:00:00";
+ dataItem.setEndTime(sf.parse(endTime));
+ while (i <= Integer.parseInt(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length() - 2))) {
+ if (i > 9) {
+ bb = aa + "-" + i + " 00:00:00";
+ } else {
+ bb = aa + "-0" + i + " 00:00:00";
+ }
+ MonthlyComprehensive report = new MonthlyComprehensive();
+ report.setDataTime(sf.parse(bb));
+ report.setValue("value" + i);
+ dataList.add(report);
+ tableColumn.put("value" + i, String.valueOf(i) + "鏃�");
+ i++;
+ }
+
+ MonthlyComprehensive reportList = new MonthlyComprehensive();
+ List<Map> table = new ArrayList<>();
+ table.add(tableColumn);
+ reportList.setTablehead(table);
+
+ ModelNode modelNode = modelNodeService.getModelNodeByModelCodeByIndexCode(dataItem.getIndexCode());
+ if (ObjectUtils.isEmpty(modelNode)) {
+ return AjaxResult.success(reportList);
+ }
+ List<MonthlyComprehensive> list = monthlyComprehensive.getMonthlyComprehensiveList(modelNode.getNodeId(),
+ dataList, dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(), dataItem.getIndexStorageId());
+ int count = Integer.parseInt(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length() - 2));
+ list.forEach(monthlyReport -> monthlyReport.setCount(count));
+ reportList.setTabledata(list);
+
+ return AjaxResult.success(reportList);
+ } catch (Exception ex) {
+ logger.error("鑾峰彇鍑洪敊锛�", ex);
+ return AjaxResult.error("鑾峰彇鍑洪敊!");
+ }
+ }
+/**/
+ /**
+ * 鍏ㄥ巶缁煎悎鑳借�楃粺璁″浘
+ */
+ @GetMapping("/listChart")
+ @ApiOperation(value = "鑾峰彇缁煎悎鎸囨爣鍒嗘瀽鍥捐〃锛堟湀锛夋暟鎹�")
+ public AjaxResult listChart(DataItem dataItem) throws ParseException {
+ DateFormat df = new SimpleDateFormat("yyyy-MM");
+ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String aa= df.format(dataItem.getDataTime());
+ String beginTime=aa+"-01 00:00:00";
+ dataItem.setBeginTime(sf.parse(beginTime));
+ String endTime=aa+"-"+Integer.valueOf(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length()-2))+" 00:00:00";
+ dataItem.setEndTime(sf.parse(endTime));
+ List<MonthlyComprehensive> list = monthlyComprehensive.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId());
+ return AjaxResult.success(list);
+ }
+ public static String getLastDayOfMonth(String yearMonth) {
+ int year = Integer.parseInt(yearMonth.split("-")[0]); //骞�
+ int month = Integer.parseInt(yearMonth.split("-")[1]); //鏈�
+ Calendar cal = Calendar.getInstance();
+ // 璁剧疆骞翠唤
+ cal.set(Calendar.YEAR, year);
+ // 璁剧疆鏈堜唤
+ // cal.set(Calendar.MONTH, month - 1);
+ cal.set(Calendar.MONTH, month); //璁剧疆褰撳墠鏈堢殑涓婁竴涓湀
+ // 鑾峰彇鏌愭湀鏈�澶уぉ鏁�
+ //int lastDay = cal.getActualMaximum(Calendar.DATE);
+ int lastDay = cal.getMinimum(Calendar.DATE); //鑾峰彇鏈堜唤涓殑鏈�灏忓�硷紝鍗崇涓�澶�
+ // 璁剧疆鏃ュ巻涓湀浠界殑鏈�澶уぉ鏁�
+ //cal.set(Calendar.DAY_OF_MONTH, lastDay);
+ cal.set(Calendar.DAY_OF_MONTH, lastDay - 1); //涓婃湀鐨勭涓�澶╁噺鍘�1灏辨槸褰撴湀鐨勬渶鍚庝竴澶�
+ // 鏍煎紡鍖栨棩鏈�
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ return sdf.format(cal.getTime());
+ }
+ /*缁煎悎鏈堟姤琛ㄥ鍑�*/
+// @Log(title = "缁煎悎鏈堟姤琛ㄥ鍑�", businessType = BusinessType.EXPORT)
+ @GetMapping("/export")
+ @ApiOperation(value = "缁煎悎鏈堟姤琛ㄥ鍑�")
+ public AjaxResult export(DataItem dataItem) {
+ try {
+
+ Map tableColumn =new HashMap<>();//琛ㄦ暟鎹�
+ List<MonthlyComprehensive> dataList=new ArrayList<>();
+ DateFormat df = new SimpleDateFormat("yyyy-MM");
+ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String aa= df.format(dataItem.getDataTime());
+ String bb="";
+ int i = 1;
+ String beginTime=aa+"-01 00:00:00";
+ dataItem.setBeginTime(sf.parse(beginTime));
+ String endTime=aa+"-"+Integer.valueOf(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length()-2))+" 00:00:00";
+ dataItem.setEndTime(sf.parse(endTime));
+ while (i <= Integer.parseInt(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length() - 2))) {
+ if (i > 9) {
+ bb = aa + "-" + i + " 00:00:00";
+ } else {
+ bb = aa + "-0" + i + " 00:00:00";
+ }
+ MonthlyComprehensive report = new MonthlyComprehensive();
+ report.setDataTime(sf.parse(bb));
+ report.setValue("value" + i);
+ dataList.add(report);
+ tableColumn.put("value" + i, i + "鏃�");
+ i++;
+ }
+
+ MonthlyComprehensive reportList = new MonthlyComprehensive();
+ List<Map> table = new ArrayList<>();
+ table.add(tableColumn);
+ reportList.setTablehead(table);
+
+ ModelNode modelNode = modelNodeService.getModelNodeByModelCodeByIndexCode(dataItem.getIndexCode());
+ if (ObjectUtils.isEmpty(modelNode)) {
+ return AjaxResult.success(reportList);
+ }
+ List<MonthlyComprehensive> list = monthlyComprehensive.getMonthlyComprehensiveList(modelNode.getNodeId(), dataList,
+ dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(), dataItem.getIndexStorageId());
+ int count = Integer.parseInt(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length() - 2));
+ list.forEach(monthlyReport -> monthlyReport.setCount(count));
+ if (CollectionUtils.isNotEmpty(list)) {
+ list.forEach(this::valueRep);
+ }
+ ExcelUtil<MonthlyComprehensive> util = new ExcelUtil<>(MonthlyComprehensive.class);
+ return util.exportExcel(list, "缁煎悎鎸囨爣鍒嗘瀽鏈�");
+ } catch (Exception ex) {
+ logger.error("鑾峰彇鍑洪敊锛�", ex);
+ return AjaxResult.error("鑾峰彇鍑洪敊!");
+ }
+ }
+ public void valueRep(Object dr){
+ Field[] fields = dr.getClass().getDeclaredFields();
+ for(Field field:fields){
+ field.setAccessible(true);
+ Object obj = field.getType();
+ if(field.getType().getName().equals("java.lang.Double")){
+ String name = field.getName();
+ try {
+ if(ObjectUtils.isEmpty(field.get(dr)))
+ {
+ field.set(dr,0.00);
+ }
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+}
diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/YearComprehensiveController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/YearComprehensiveController.java
new file mode 100644
index 0000000..32f4443
--- /dev/null
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/YearComprehensiveController.java
@@ -0,0 +1,152 @@
+package com.zhitan.web.controller.comprehensivestatistics;
+
+import com.zhitan.common.annotation.Log;
+import com.zhitan.common.core.controller.BaseController;
+import com.zhitan.common.core.domain.AjaxResult;
+import com.zhitan.common.enums.BusinessType;
+import com.zhitan.common.utils.poi.ExcelUtil;
+import com.zhitan.comprehensivestatistics.domain.YearComperhensive;
+import com.zhitan.comprehensivestatistics.service.IyearComprehensive;
+import com.zhitan.model.domain.ModelNode;
+import com.zhitan.model.service.IModelNodeService;
+import com.zhitan.realtimedata.domain.DataItem;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.lang.reflect.Field;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * electricityPriceController
+ *
+ * @author sys
+ * @date 2020-02-18
+ */
+@RestController
+@RequestMapping("/comprehensive/yearComprehensive")
+@Api(value = "缁煎悎鎸囨爣鍒嗘瀽锛堝勾锛塩ontroller",tags = {"缁煎悎鎸囨爣鍒嗘瀽"})
+public class YearComprehensiveController extends BaseController {
+
+ @Autowired
+ private IModelNodeService modelNodeService;
+ @Autowired
+ private IyearComprehensive yearComprehensive;
+
+ /*鍏ㄥ巶鑳借�楃粺璁�*/
+ @GetMapping("/list")
+ @ApiOperation(value = "鑾峰彇缁煎悎鎸囨爣鍒嗘瀽锛堝勾锛夊垪琛�")
+ public AjaxResult list(DataItem dataItem) {
+ try {
+ ModelNode modelNode = modelNodeService.getModelNodeByModelCodeByIndexCode(dataItem.getIndexCode());
+ if (ObjectUtils.isEmpty(modelNode)) {
+ return AjaxResult.success("鏆傛棤鏁版嵁");
+ }
+ List<YearComperhensive> dataList = new ArrayList<>();
+ DateFormat df = new SimpleDateFormat("yyyy");
+ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String aa= df.format(dataItem.getBeginTime());
+ String bb="";
+ int i = 1;
+ while (i <= 12) {
+ if(i>9){
+ bb=aa+"-"+i+"-01 00:00:00";
+ }else{
+ bb=aa+"-0"+i+"-01 00:00:00";
+ }
+ YearComperhensive report = new YearComperhensive();
+ report.setDataTime(sf.parse(bb));
+ report.setValue("value"+i);
+ dataList.add(report);
+ i++;
+ }
+ List<YearComperhensive> list = yearComprehensive.getYearComprehensiveList(modelNode.getNodeId(),
+ dataList,dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId());
+ return AjaxResult.success(list);
+ } catch (Exception ex) {
+ logger.error("鑾峰彇鍑洪敊锛�", ex);
+ return AjaxResult.error("鑾峰彇鍑洪敊!");
+ }
+ }
+
+ /**
+ * 鍏ㄥ巶缁煎悎鑳借�楃粺璁″浘
+ */
+ @GetMapping("/listChart")
+ @ApiOperation(value = "鑾峰彇缁煎悎鎸囨爣鍒嗘瀽鍥捐〃锛堝勾锛夋暟鎹�")
+ public AjaxResult listChart(DataItem dataItem){
+ List<YearComperhensive> list = yearComprehensive.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId());
+ return AjaxResult.success(list);
+ }
+
+ /**
+ * 瀵煎嚭宸ュ簭鍗曡�楃粺璁℃寚鏍囪缃姛鑳藉垪琛�
+ */
+ @Log(title = "缁煎悎鎶ヨ〃", businessType = BusinessType.EXPORT)
+ @GetMapping("/export")
+ @ApiOperation(value = "缁煎悎骞存姤琛ㄥ鍑�")
+ public AjaxResult export(DataItem dataItem) {
+ try {
+ ModelNode modelNode = modelNodeService.getModelNodeByModelCodeByIndexCode(dataItem.getIndexCode());
+ if (ObjectUtils.isEmpty(modelNode)) {
+ return AjaxResult.success("鏆傛棤鏁版嵁");
+ }
+ List<YearComperhensive> dataList = new ArrayList<>();
+ DateFormat df = new SimpleDateFormat("yyyy");
+ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String aa = df.format(dataItem.getBeginTime());
+ String bb = "";
+ int i = 1;
+ while (i <= 12) {
+ if(i>9){
+ bb=aa+"-"+i+"-01 00:00:00";
+ }else{
+ bb=aa+"-0"+i+"-01 00:00:00";
+ }
+ YearComperhensive report=new YearComperhensive();
+ report.setDataTime(sf.parse(bb));
+ report.setValue("value"+i);
+ dataList.add(report);
+ i++;
+ }
+ List<YearComperhensive> list = yearComprehensive.getYearComprehensiveList(modelNode.getNodeId(),
+ dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId());
+ if(CollectionUtils.isNotEmpty(list)){
+ list.forEach(this::valueRep);
+ }
+ ExcelUtil<YearComperhensive> util = new ExcelUtil<>(YearComperhensive.class);
+ return util.exportExcel(list, "缁煎悎鎸囨爣鍒嗘瀽骞�");
+ } catch (Exception ex) {
+ logger.error("鑾峰彇鍑洪敊锛�", ex);
+ return AjaxResult.error("鑾峰彇鍑洪敊!");
+ }
+ }
+
+ public void valueRep(Object dr){
+ Field[] fields = dr.getClass().getDeclaredFields();
+ for(Field field:fields){
+ field.setAccessible(true);
+ Object obj = field.getType();
+ if(field.getType().getName().equals("java.lang.Double")){
+ String name = field.getName();
+ try {
+ if(ObjectUtils.isEmpty(field.get(dr)))
+ {
+ field.set(dr,0.00);
+ }
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/DailyReport.java b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/DailyReport.java
new file mode 100644
index 0000000..4bd3d04
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/DailyReport.java
@@ -0,0 +1,321 @@
+package com.zhitan.comprehensivestatistics.domain;
+
+
+import com.zhitan.common.annotation.Excel;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ * @author sys
+ * @date 2020-03-25
+ */
+public class DailyReport implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private String indexId;
+ @Excel(name = "鎸囨爣鍚嶇О")
+ private String indexName;
+ private String value;
+ private Date dataTime;
+ private String timeType;
+ @Excel(name = "0鏃�")
+ private Double value0;
+ @Excel(name = "1鏃�")
+ private Double value1;
+ @Excel(name = "2鏃�")
+ private Double value2;
+ @Excel(name = "3鏃�")
+ private Double value3;
+ @Excel(name = "4鏃�")
+ private Double value4;
+ @Excel(name = "5鏃�")
+ private Double value5;
+ @Excel(name = "6鏃�")
+ private Double value6;
+ @Excel(name = "7鏃�")
+ private Double value7;
+ @Excel(name = "8鏃�")
+ private Double value8;
+ @Excel(name = "9鏃�")
+ private Double value9;
+ @Excel(name = "10鏃�")
+ private Double value10;
+ @Excel(name = "11鏃�")
+ private Double value11;
+ @Excel(name = "12鏃�")
+ private Double value12;
+ @Excel(name = "13鏃�")
+ private Double value13;
+ @Excel(name = "14鏃�")
+ private Double value14;
+ @Excel(name = "15鏃�")
+ private Double value15;
+ @Excel(name = "16鏃�")
+ private Double value16;
+ @Excel(name = "17鏃�")
+ private Double value17;
+ @Excel(name = "18鏃�")
+ private Double value18;
+ @Excel(name = "19鏃�")
+ private Double value19;
+ @Excel(name = "20鏃�")
+ private Double value20;
+ @Excel(name = "21鏃�")
+ private Double value21;
+ @Excel(name = "22鏃�")
+ private Double value22;
+ @Excel(name = "23鏃�")
+ private Double value23;
+ private List<Map> tablehead =new ArrayList<>();
+ private List<DailyReport> tabledata =new ArrayList<>();
+ public String getIndexId() {
+ return indexId;
+ }
+
+ public void setIndexId(String indexId) {
+ this.indexId = indexId;
+ }
+
+ public String getIndexName() {
+ return indexName;
+ }
+
+ public void setIndexName(String indexName) {
+ this.indexName = indexName;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ public String getTimeType() {
+ return timeType;
+ }
+
+ public void setTimeType(String timeType) {
+ this.timeType = timeType;
+ }
+
+ public Date getDataTime() {
+ return dataTime;
+ }
+
+ public void setDataTime(Date dataTime) {
+ this.dataTime = dataTime;
+ }
+
+ public Double getValue1() {
+ return value1;
+ }
+
+ public void setValue1(Double value1) {
+ this.value1 = value1;
+ }
+
+ public Double getValue2() {
+ return value2;
+ }
+
+ public void setValue2(Double value2) {
+ this.value2 = value2;
+ }
+
+ public Double getValue3() {
+ return value3;
+ }
+
+ public void setValue3(Double value3) {
+ this.value3 = value3;
+ }
+
+ public Double getValue4() {
+ return value4;
+ }
+
+ public void setValue4(Double value4) {
+ this.value4 = value4;
+ }
+
+ public Double getValue5() {
+ return value5;
+ }
+
+ public void setValue5(Double value5) {
+ this.value5 = value5;
+ }
+
+ public Double getValue6() {
+ return value6;
+ }
+
+ public void setValue6(Double value6) {
+ this.value6 = value6;
+ }
+
+ public Double getValue7() {
+ return value7;
+ }
+
+ public void setValue7(Double value7) {
+ this.value7 = value7;
+ }
+
+ public Double getValue8() {
+ return value8;
+ }
+
+ public void setValue8(Double value8) {
+ this.value8 = value8;
+ }
+
+ public Double getValue9() {
+ return value9;
+ }
+
+ public void setValue9(Double value9) {
+ this.value9 = value9;
+ }
+
+ public Double getValue10() {
+ return value10;
+ }
+
+ public void setValue10(Double value10) {
+ this.value10 = value10;
+ }
+
+ public Double getValue11() {
+ return value11;
+ }
+
+ public void setValue11(Double value11) {
+ this.value11 = value11;
+ }
+
+ public Double getValue12() {
+ return value12;
+ }
+
+ public void setValue12(Double value12) {
+ this.value12 = value12;
+ }
+
+ public Double getValue13() {
+ return value13;
+ }
+
+ public void setValue13(Double value13) {
+ this.value13 = value13;
+ }
+
+ public Double getValue14() {
+ return value14;
+ }
+
+ public void setValue14(Double value14) {
+ this.value14 = value14;
+ }
+
+ public Double getValue15() {
+ return value15;
+ }
+
+ public void setValue15(Double value15) {
+ this.value15 = value15;
+ }
+
+ public Double getValue16() {
+ return value16;
+ }
+
+ public void setValue16(Double value16) {
+ this.value16 = value16;
+ }
+
+ public Double getValue17() {
+ return value17;
+ }
+
+ public void setValue17(Double value17) {
+ this.value17 = value17;
+ }
+
+ public Double getValue18() {
+ return value18;
+ }
+
+ public void setValue18(Double value18) {
+ this.value18 = value18;
+ }
+
+ public Double getValue19() {
+ return value19;
+ }
+
+ public void setValue19(Double value19) {
+ this.value19 = value19;
+ }
+
+ public Double getValue20() {
+ return value20;
+ }
+
+ public void setValue20(Double value20) {
+ this.value20 = value20;
+ }
+
+ public Double getValue21() {
+ return value21;
+ }
+
+ public void setValue21(Double value21) {
+ this.value21 = value21;
+ }
+
+ public Double getValue22() {
+ return value22;
+ }
+
+ public void setValue22(Double value22) {
+ this.value22 = value22;
+ }
+
+ public Double getValue23() {
+ return value23;
+ }
+
+ public void setValue23(Double value23) {
+ this.value23 = value23;
+ }
+
+ public Double getValue0() {
+ return value0;
+ }
+
+ public void setValue0(Double value0) {
+ this.value0 = value0;
+ }
+
+ public List<Map> getTablehead() {
+ return tablehead;
+ }
+
+ public void setTablehead(List<Map> tablehead) {
+ this.tablehead = tablehead;
+ }
+ public List<DailyReport> getTabledata() {
+ return tabledata;
+ }
+
+ public void setTabledata(List<DailyReport> tabledata) {
+ this.tabledata = tabledata;
+ }
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/MonthlyComprehensive.java b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/MonthlyComprehensive.java
new file mode 100644
index 0000000..4f29498
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/MonthlyComprehensive.java
@@ -0,0 +1,415 @@
+package com.zhitan.comprehensivestatistics.domain;
+
+import com.zhitan.common.annotation.Excel;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ * @author sys
+ * @date 2020-12-31
+ */
+public class MonthlyComprehensive implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private String indexId;
+ @Excel(name = "鎸囨爣鍚嶇О")
+ private String indexName;
+ private String value;
+ private Date dataTime;
+ private String timeType;
+ private String unitId;
+ @Excel(name = "1鏃�")
+ private Double value1;
+ @Excel(name = "2鏃�")
+ private Double value2;
+ @Excel(name = "3鏃�")
+ private Double value3;
+ @Excel(name = "4鏃�")
+ private Double value4;
+ @Excel(name = "5鏃�")
+ private Double value5;
+ @Excel(name = "6鏃�")
+ private Double value6;
+ @Excel(name = "7鏃�")
+ private Double value7;
+ @Excel(name = "8鏃�")
+ private Double value8;
+ @Excel(name = "9鏃�")
+ private Double value9;
+ @Excel(name = "10鏃�")
+ private Double value10;
+ @Excel(name = "11鏃�")
+ private Double value11;
+ @Excel(name = "12鏃�")
+ private Double value12;
+ @Excel(name = "13鏃�")
+ private Double value13;
+ @Excel(name = "14鏃�")
+ private Double value14;
+ @Excel(name = "15鏃�")
+ private Double value15;
+ @Excel(name = "16鏃�")
+ private Double value16;
+ @Excel(name = "17鏃�")
+ private Double value17;
+ @Excel(name = "18鏃�")
+ private Double value18;
+ @Excel(name = "19鏃�")
+ private Double value19;
+ @Excel(name = "20鏃�")
+ private Double value20;
+ @Excel(name = "21鏃�")
+ private Double value21;
+ @Excel(name = "22鏃�")
+ private Double value22;
+ @Excel(name = "23鏃�")
+ private Double value23;
+ @Excel(name = "24鏃�")
+ private Double value24;
+ @Excel(name = "25鏃�")
+ private Double value25;
+ @Excel(name = "26鏃�")
+ private Double value26;
+ @Excel(name = "27鏃�")
+ private Double value27;
+ @Excel(name = "28鏃�")
+ private Double value28;
+ @Excel(name = "29鏃�")
+ private Double value29;
+ @Excel(name = "30鏃�")
+ private Double value30;
+ @Excel(name = "31鏃�")
+ private Double value31;
+ private String timeCode;
+ private Integer count;
+ private List<Map> tablehead =new ArrayList<>();
+ private List<MonthlyComprehensive> tabledata =new ArrayList<>();
+ public String getIndexId() {
+ return indexId;
+ }
+
+ public void setIndexId(String indexId) {
+ this.indexId = indexId;
+ }
+
+ public String getIndexName() {
+ return indexName;
+ }
+
+ public void setIndexName(String indexName) {
+ this.indexName = indexName;
+ }
+ public String getUnitId() {
+ return unitId;
+ }
+
+ public void setUnitId(String unitId) {
+ this.unitId = unitId;
+ }
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ public String getTimeType() {
+ return timeType;
+ }
+
+ public void setTimeType(String timeType) {
+ this.timeType = timeType;
+ }
+
+ public Date getDataTime() {
+ return dataTime;
+ }
+
+ public void setDataTime(Date dataTime) {
+ this.dataTime = dataTime;
+ }
+
+ public Double getValue1() {
+ return value1;
+ }
+
+ public void setValue1(Double value1) {
+ this.value1 = value1;
+ }
+
+ public Double getValue2() {
+ return value2;
+ }
+
+ public void setValue2(Double value2) {
+ this.value2 = value2;
+ }
+
+ public Double getValue3() {
+ return value3;
+ }
+
+ public void setValue3(Double value3) {
+ this.value3 = value3;
+ }
+
+ public Double getValue4() {
+ return value4;
+ }
+
+ public void setValue4(Double value4) {
+ this.value4 = value4;
+ }
+
+ public Double getValue5() {
+ return value5;
+ }
+
+ public void setValue5(Double value5) {
+ this.value5 = value5;
+ }
+
+ public Double getValue6() {
+ return value6;
+ }
+
+ public void setValue6(Double value6) {
+ this.value6 = value6;
+ }
+
+ public Double getValue7() {
+ return value7;
+ }
+
+ public void setValue7(Double value7) {
+ this.value7 = value7;
+ }
+
+ public Double getValue8() {
+ return value8;
+ }
+
+ public void setValue8(Double value8) {
+ this.value8 = value8;
+ }
+
+ public Double getValue9() {
+ return value9;
+ }
+
+ public void setValue9(Double value9) {
+ this.value9 = value9;
+ }
+
+ public Double getValue10() {
+ return value10;
+ }
+
+ public void setValue10(Double value10) {
+ this.value10 = value10;
+ }
+
+ public Double getValue11() {
+ return value11;
+ }
+
+ public void setValue11(Double value11) {
+ this.value11 = value11;
+ }
+
+ public Double getValue12() {
+ return value12;
+ }
+
+ public void setValue12(Double value12) {
+ this.value12 = value12;
+ }
+
+ public Double getValue13() {
+ return value13;
+ }
+
+ public void setValue13(Double value13) {
+ this.value13 = value13;
+ }
+
+ public Double getValue14() {
+ return value14;
+ }
+
+ public void setValue14(Double value14) {
+ this.value14 = value14;
+ }
+
+ public Double getValue15() {
+ return value15;
+ }
+
+ public void setValue15(Double value15) {
+ this.value15 = value15;
+ }
+
+ public Double getValue16() {
+ return value16;
+ }
+
+ public void setValue16(Double value16) {
+ this.value16 = value16;
+ }
+
+ public Double getValue17() {
+ return value17;
+ }
+
+ public void setValue17(Double value17) {
+ this.value17 = value17;
+ }
+
+ public Double getValue18() {
+ return value18;
+ }
+
+ public void setValue18(Double value18) {
+ this.value18 = value18;
+ }
+
+ public Double getValue19() {
+ return value19;
+ }
+
+ public void setValue19(Double value19) {
+ this.value19 = value19;
+ }
+
+ public Double getValue20() {
+ return value20;
+ }
+
+ public void setValue20(Double value20) {
+ this.value20 = value20;
+ }
+
+ public Double getValue21() {
+ return value21;
+ }
+
+ public void setValue21(Double value21) {
+ this.value21 = value21;
+ }
+
+ public Double getValue22() {
+ return value22;
+ }
+
+ public void setValue22(Double value22) {
+ this.value22 = value22;
+ }
+
+ public Double getValue23() {
+ return value23;
+ }
+
+ public void setValue23(Double value23) {
+ this.value23 = value23;
+ }
+
+ public Double getValue24() {
+ return value24;
+ }
+
+ public void setValue24(Double value24) {
+ this.value24 = value24;
+ }
+
+ public Double getValue25() {
+ return value25;
+ }
+
+ public void setValue25(Double value25) {
+ this.value25 = value25;
+ }
+
+ public Double getValue26() {
+ return value26;
+ }
+
+ public void setValue26(Double value26) {
+ this.value26 = value26;
+ }
+
+ public Double getValue27() {
+ return value27;
+ }
+
+ public void setValue27(Double value27) {
+ this.value27 = value27;
+ }
+
+ public Double getValue28() {
+ return value28;
+ }
+
+ public void setValue28(Double value28) {
+ this.value28 = value28;
+ }
+
+ public Double getValue29() {
+ return value29;
+ }
+
+ public void setValue29(Double value29) {
+ this.value29 = value29;
+ }
+
+ public Double getValue30() {
+ return value30;
+ }
+
+ public void setValue30(Double value30) {
+ this.value30 = value30;
+ }
+
+ public Double getValue31() {
+ return value31;
+ }
+
+ public void setValue31(Double value31) {
+ this.value31 = value31;
+ }
+
+ public List<Map> getTablehead() {
+ return tablehead;
+ }
+
+ public void setTablehead(List<Map> tablehead) {
+ this.tablehead = tablehead;
+ }
+ public List<MonthlyComprehensive> getTabledata() {
+ return tabledata;
+ }
+
+ public void setTabledata(List<MonthlyComprehensive> tabledata) {
+ this.tabledata = tabledata;
+ }
+
+ public String getTimeCode() {
+ return timeCode;
+ }
+
+ public void setTimeCode(String timeCode) {
+ this.timeCode = timeCode;
+ }
+
+ public Integer getCount() {
+ return count;
+ }
+
+ public void setCount(Integer count) {
+ this.count = count;
+ }
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/YearComperhensive.java b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/YearComperhensive.java
new file mode 100644
index 0000000..aa177cd
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/YearComperhensive.java
@@ -0,0 +1,214 @@
+package com.zhitan.comprehensivestatistics.domain;
+
+import com.zhitan.common.annotation.Excel;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ * @author sys
+ * @date 2020-03-25
+ */
+public class YearComperhensive implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private String indexId;
+ @Excel(name = "鎸囨爣鍚嶇О")
+ private String indexName;
+ private String value;
+ private Date dataTime;
+ private String timeType;
+ private String unitId;
+ @Excel(name = "1鏈�")
+ private Double value1;
+ @Excel(name = "2鏈�")
+ private Double value2;
+ @Excel(name = "3鏈�")
+ private Double value3;
+ @Excel(name = "4鏈�")
+ private Double value4;
+ @Excel(name = "5鏈�")
+ private Double value5;
+ @Excel(name = "6鏈�")
+ private Double value6;
+ @Excel(name = "7鏈�")
+ private Double value7;
+ @Excel(name = "8鏈�")
+ private Double value8;
+ @Excel(name = "9鏈�")
+ private Double value9;
+ @Excel(name = "10鏈�")
+ private Double value10;
+ @Excel(name = "11鏈�")
+ private Double value11;
+ @Excel(name = "12鏈�")
+ private Double value12;
+ private String timeCode;
+ private List<Map> tablehead =new ArrayList<>();
+ private List<DailyReport> tabledata =new ArrayList<>();
+ public String getIndexId() {
+ return indexId;
+ }
+
+ public void setIndexId(String indexId) {
+ this.indexId = indexId;
+ }
+
+ public String getIndexName() {
+ return indexName;
+ }
+
+ public void setIndexName(String indexName) {
+ this.indexName = indexName;
+ }
+ public String getUnitId() {
+ return unitId;
+ }
+
+ public void setUnitId(String unitId) {
+ this.unitId = unitId;
+ }
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ public String getTimeType() {
+ return timeType;
+ }
+
+ public void setTimeType(String timeType) {
+ this.timeType = timeType;
+ }
+
+ public Date getDataTime() {
+ return dataTime;
+ }
+
+ public void setDataTime(Date dataTime) {
+ this.dataTime = dataTime;
+ }
+
+ public Double getValue1() {
+ return value1;
+ }
+
+ public void setValue1(Double value1) {
+ this.value1 = value1;
+ }
+
+ public Double getValue2() {
+ return value2;
+ }
+
+ public void setValue2(Double value2) {
+ this.value2 = value2;
+ }
+
+ public Double getValue3() {
+ return value3;
+ }
+
+ public void setValue3(Double value3) {
+ this.value3 = value3;
+ }
+
+ public Double getValue4() {
+ return value4;
+ }
+
+ public void setValue4(Double value4) {
+ this.value4 = value4;
+ }
+
+ public Double getValue5() {
+ return value5;
+ }
+
+ public void setValue5(Double value5) {
+ this.value5 = value5;
+ }
+
+ public Double getValue6() {
+ return value6;
+ }
+
+ public void setValue6(Double value6) {
+ this.value6 = value6;
+ }
+
+ public Double getValue7() {
+ return value7;
+ }
+
+ public void setValue7(Double value7) {
+ this.value7 = value7;
+ }
+
+ public Double getValue8() {
+ return value8;
+ }
+
+ public void setValue8(Double value8) {
+ this.value8 = value8;
+ }
+
+ public Double getValue9() {
+ return value9;
+ }
+
+ public void setValue9(Double value9) {
+ this.value9 = value9;
+ }
+
+ public Double getValue10() {
+ return value10;
+ }
+
+ public void setValue10(Double value10) {
+ this.value10 = value10;
+ }
+
+ public Double getValue11() {
+ return value11;
+ }
+
+ public void setValue11(Double value11) {
+ this.value11 = value11;
+ }
+
+ public Double getValue12() {
+ return value12;
+ }
+
+ public void setValue12(Double value12) {
+ this.value12 = value12;
+ }
+ public String getTimeCode() {
+ return timeCode;
+ }
+
+ public void setTimeCode(String timeCode) {
+ this.timeCode = timeCode;
+ }
+ public List<Map> getTablehead() {
+ return tablehead;
+ }
+
+ public void setTablehead(List<Map> tablehead) {
+ this.tablehead = tablehead;
+ }
+ public List<DailyReport> getTabledata() {
+ return tabledata;
+ }
+
+ public void setTabledata(List<DailyReport> tabledata) {
+ this.tabledata = tabledata;
+ }
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/MonthlyComprehensiveMapper.java b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/MonthlyComprehensiveMapper.java
new file mode 100644
index 0000000..ca9a75c
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/MonthlyComprehensiveMapper.java
@@ -0,0 +1,51 @@
+package com.zhitan.comprehensivestatistics.mapper;
+
+import com.zhitan.common.enums.TimeType;
+import com.zhitan.comprehensivestatistics.domain.MonthlyComprehensive;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鍏ㄥ巶缁煎悎鑳借�楃粺璁� 鏈�
+ *
+ * @author sys
+ * @date 2020-03-25
+ */
+public interface MonthlyComprehensiveMapper {
+ /**
+ * 鑾峰彇缁煎悎鎸囨爣鍒嗘瀽锛堟湀锛夊垪琛�
+ *
+ * @param nodeId
+ * @param dataList
+ * @param beginTime
+ * @param endTime
+ * @param timeType
+ * @param indexStorageId
+ * @return
+ */
+ public List<MonthlyComprehensive> getMonthlyComprehensiveList(@Param("nodeId") String nodeId,
+ @Param("dataList") List<MonthlyComprehensive> dataList,
+ @Param("beginTime") Date beginTime,
+ @Param("endTime") Date endTime,
+ @Param("timeType") TimeType timeType,
+ @Param("indexStorageId") String indexStorageId);
+
+ /**
+ * 鑾峰彇缁煎悎鎸囨爣鍒嗘瀽鍥捐〃锛堟湀锛夋暟鎹�
+ *
+ * @param indexId
+ * @param beginTime
+ * @param endTime
+ * @param timeType
+ * @param indexStorageId
+ * @return
+ */
+ List<MonthlyComprehensive> getListChart(@Param("indexId") String indexId,
+ @Param("beginTime") Date beginTime,
+ @Param("endTime") Date endTime,
+ @Param("timeType") TimeType timeType,
+ @Param("indexStorageId") String indexStorageId);
+
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/YearComprehensiveMapper.java b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/YearComprehensiveMapper.java
new file mode 100644
index 0000000..7293dd7
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/YearComprehensiveMapper.java
@@ -0,0 +1,51 @@
+package com.zhitan.comprehensivestatistics.mapper;
+
+import com.zhitan.common.enums.TimeType;
+import com.zhitan.comprehensivestatistics.domain.YearComperhensive;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鍏ㄥ巶缁煎悎鑳借�楃粺璁� 骞�
+ *
+ * @author sys
+ * @date 2020-03-25
+ */
+public interface YearComprehensiveMapper {
+ /**
+ * 鑾峰彇骞存暟鎹�
+ *
+ * @param nodeId
+ * @param dataList
+ * @param beginTime
+ * @param endTime
+ * @param timeType
+ * @param indexStorageId
+ * @return
+ */
+ public List<YearComperhensive> getYearComprehensiveList(@Param("nodeId") String nodeId,
+ @Param("dataList") List<YearComperhensive> dataList,
+ @Param("beginTime") Date beginTime,
+ @Param("endTime") Date endTime,
+ @Param("timeType") TimeType timeType,
+ @Param("indexStorageId") String indexStorageId);
+
+ /**
+ * 鑾峰彇骞存暟鎹�-chart
+ *
+ * @param indexId
+ * @param beginTime
+ * @param endTime
+ * @param timeType
+ * @param indexStorageId
+ * @return
+ */
+ List<YearComperhensive> getListChart(@Param("indexId") String indexId,
+ @Param("beginTime") Date beginTime,
+ @Param("endTime") Date endTime,
+ @Param("timeType") TimeType timeType,
+ @Param("indexStorageId") String indexStorageId);
+
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/ImonthlyComprehensive.java b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/ImonthlyComprehensive.java
new file mode 100644
index 0000000..13221a0
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/ImonthlyComprehensive.java
@@ -0,0 +1,41 @@
+package com.zhitan.comprehensivestatistics.service;
+
+
+import com.zhitan.common.enums.TimeType;
+import com.zhitan.comprehensivestatistics.domain.MonthlyComprehensive;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鍏ㄥ巶缁煎悎鑳借�楃粺璁� 鏈�
+ *
+ * @author sys
+ * @date 2020-03-25
+ */
+public interface ImonthlyComprehensive {
+ /**
+ * 鍏ㄥ巶缁煎悎鑳借�楃粺璁� 鏈�
+ *
+ * @param nodeId
+ * @param dataList
+ * @param beginTime
+ * @param endTime
+ * @param timeType
+ * @param indexStorageId
+ * @return
+ */
+ List<MonthlyComprehensive> getMonthlyComprehensiveList(String nodeId, List<MonthlyComprehensive> dataList, Date beginTime, Date endTime, TimeType timeType, String indexStorageId);
+
+ /**
+ * 鍏ㄥ巶缁煎悎鑳借�楃粺璁� 鏈�
+ *
+ * @param indexId
+ * @param beginTime
+ * @param endTime
+ * @param timeType
+ * @param indexStorageId
+ * @return
+ */
+ List<MonthlyComprehensive> getListChart(String indexId, Date beginTime, Date endTime, TimeType timeType, String indexStorageId);
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/IyearComprehensive.java b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/IyearComprehensive.java
new file mode 100644
index 0000000..2c3a979
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/IyearComprehensive.java
@@ -0,0 +1,42 @@
+package com.zhitan.comprehensivestatistics.service;
+
+
+import com.zhitan.common.enums.TimeType;
+import com.zhitan.comprehensivestatistics.domain.YearComperhensive;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鍏ㄥ巶缁煎悎鑳借�楃粺璁� 骞�
+ *
+ * @author sys
+ * @date 2020-03-25
+ */
+public interface IyearComprehensive {
+ /**
+ * 鑾峰彇缁煎悎鎸囨爣鍒嗘瀽锛堝勾锛夊垪琛�
+ *
+ * @param nodeId
+ * @param dataList
+ * @param beginTime
+ * @param endTime
+ * @param timeType
+ * @param indexStorageId
+ * @return
+ */
+ List<YearComperhensive> getYearComprehensiveList(String nodeId, List<YearComperhensive> dataList,
+ Date beginTime, Date endTime, TimeType timeType, String indexStorageId);
+
+ /**
+ * 鑾峰彇缁煎悎鎸囨爣鍒嗘瀽锛堝勾锛夊浘琛ㄦ暟鎹�
+ *
+ * @param indexId
+ * @param beginTime
+ * @param endTime
+ * @param timeType
+ * @param indexStorageId
+ * @return
+ */
+ List<YearComperhensive> getListChart(String indexId, Date beginTime, Date endTime, TimeType timeType, String indexStorageId);
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/MonthlyComprehensiveServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/MonthlyComprehensiveServiceImpl.java
new file mode 100644
index 0000000..04beef7
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/MonthlyComprehensiveServiceImpl.java
@@ -0,0 +1,42 @@
+package com.zhitan.comprehensivestatistics.service.impl;
+
+import com.zhitan.common.enums.TimeType;
+import com.zhitan.comprehensivestatistics.domain.MonthlyComprehensive;
+import com.zhitan.comprehensivestatistics.mapper.MonthlyComprehensiveMapper;
+import com.zhitan.comprehensivestatistics.service.ImonthlyComprehensive;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 涓氬姟灞傚鐞�
+ *
+ * @author sys
+ * @date 2020-03-25
+ */
+@Service
+public class MonthlyComprehensiveServiceImpl implements ImonthlyComprehensive {
+ @Resource
+ private MonthlyComprehensiveMapper monthMapper;
+
+ public List<MonthlyComprehensive> getMonthlyComprehensiveList(String nodeId, List<MonthlyComprehensive> dataList,
+ Date beginTime, Date endTime, TimeType timeType, String indexStorageId){
+ if (StringUtils.isNotEmpty(nodeId)) {
+ return monthMapper.getMonthlyComprehensiveList(nodeId, dataList, beginTime, endTime, timeType, indexStorageId);
+ }
+ return Collections.emptyList();
+ }
+
+ @Override
+ public List<MonthlyComprehensive> getListChart(String indexId, Date beginTime, Date endTime, TimeType timeType, String indexStorageId){
+ if (indexId != null && !indexId.isEmpty()) {
+ return monthMapper.getListChart(indexId,beginTime,endTime,timeType,indexStorageId);
+ }
+ return Collections.emptyList();
+ }
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/YearComprehensiveServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/YearComprehensiveServiceImpl.java
new file mode 100644
index 0000000..df2ac97
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/YearComprehensiveServiceImpl.java
@@ -0,0 +1,68 @@
+package com.zhitan.comprehensivestatistics.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.zhitan.common.constant.CommonConst;
+import com.zhitan.common.enums.TimeType;
+import com.zhitan.common.utils.DateTimeUtil;
+import com.zhitan.comprehensivestatistics.domain.YearComperhensive;
+import com.zhitan.comprehensivestatistics.mapper.YearComprehensiveMapper;
+import com.zhitan.comprehensivestatistics.service.IyearComprehensive;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 涓氬姟灞傚鐞�
+ *
+ * @author sys
+ * @date 2020-03-25
+ */
+@Service
+public class YearComprehensiveServiceImpl implements IyearComprehensive {
+ @Resource
+ private YearComprehensiveMapper yearMapper;
+
+ @Override
+ public List<YearComperhensive> getYearComprehensiveList(String nodeId, List<YearComperhensive> dataList,
+ Date beginTime, Date endTime, TimeType timeType, String indexStorageId){
+ if (StringUtils.isNotEmpty(nodeId)) {
+ return yearMapper.getYearComprehensiveList(nodeId, dataList, beginTime, endTime, timeType, indexStorageId);
+ }
+ return Collections.emptyList();
+ }
+ @Override
+ public List<YearComperhensive> getListChart(String indexId, Date beginTime, Date endTime, TimeType timeType, String indexStorageId){
+ List<YearComperhensive> dataList = new ArrayList<>();
+ if (StringUtils.isNotEmpty(indexId)) {
+ List<YearComperhensive> listChart = yearMapper.getListChart(indexId, beginTime, endTime, timeType, indexStorageId);
+ if (CollectionUtils.isNotEmpty(listChart)) {
+ Date date = new Date();
+ YearComperhensive first = listChart.get(CommonConst.DIGIT_0);
+ Map<String, YearComperhensive> listChartMap = yearMapper.getListChart(indexId, beginTime, endTime, timeType, indexStorageId)
+ .stream().collect(Collectors.toMap(YearComperhensive::getTimeCode, prot -> prot));
+ while (beginTime.before(date)) {
+ YearComperhensive yearComperhensive = new YearComperhensive();
+ String format = CommonConst.WORD_M + DateUtil.format(beginTime, DateTimeUtil.COMMON_PATTERN_MONTH);
+ YearComperhensive item = listChartMap.get(format);
+ if (ObjectUtils.isNotEmpty(item)) {
+ yearComperhensive = item;
+ } else {
+ yearComperhensive.setTimeCode(format);
+ yearComperhensive.setIndexId(indexId);
+ yearComperhensive.setTimeType(timeType.name());
+ yearComperhensive.setUnitId(first.getUnitId());
+ yearComperhensive.setIndexName(first.getIndexName());
+ }
+ dataList.add(yearComperhensive);
+ beginTime = DateUtil.offsetMonth(beginTime, CommonConst.DIGIT_1);
+ }
+ }
+ }
+ return dataList;
+ }
+}
diff --git a/zhitan-system/src/main/resources/mapper/comprehensivestatistics/MonthlyComprehensiveMapper.xml b/zhitan-system/src/main/resources/mapper/comprehensivestatistics/MonthlyComprehensiveMapper.xml
new file mode 100644
index 0000000..7de48b9
--- /dev/null
+++ b/zhitan-system/src/main/resources/mapper/comprehensivestatistics/MonthlyComprehensiveMapper.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhitan.comprehensivestatistics.mapper.MonthlyComprehensiveMapper">
+ <resultMap id="dataItemMap" type="com.zhitan.comprehensivestatistics.domain.MonthlyComprehensive">
+ <result column="index_id" property="indexId"/>
+ <result column="index_name" property="indexName"/>
+ <result column="time_type" property="timeType"/>
+ <result column="time_code" property="timeCode"/>
+ <result column="unit_id" property="unitId"/>
+ <result column="value1" property="value1"/>
+ <result column="value2" property="value2"/>
+ <result column="value3" property="value3"/>
+ <result column="value4" property="value4"/>
+ <result column="value5" property="value5"/>
+ <result column="value6" property="value6"/>
+ <result column="value7" property="value7"/>
+ <result column="value8" property="value8"/>
+ <result column="value9" property="value9"/>
+ <result column="value10" property="value10"/>
+ <result column="value11" property="value11"/>
+ <result column="value12" property="value12"/>
+ <result column="value13" property="value13"/>
+ <result column="value14" property="value14"/>
+ <result column="value15" property="value15"/>
+ <result column="value16" property="value16"/>
+ <result column="value17" property="value17"/>
+ <result column="value18" property="value18"/>
+ <result column="value19" property="value19"/>
+ <result column="value20" property="value20"/>
+ <result column="value21" property="value21"/>
+ <result column="value22" property="value22"/>
+ <result column="value23" property="value23"/>
+ <result column="value24" property="value24"/>
+ <result column="value25" property="value25"/>
+ <result column="value26" property="value26"/>
+ <result column="value27" property="value27"/>
+ <result column="value28" property="value28"/>
+ <result column="value29" property="value29"/>
+ <result column="value30" property="value30"/>
+ <result column="value31" property="value31"/>
+ </resultMap>
+ <!--鍏ㄥ巶鑳借�楃粺璁�-->
+ <select id="getMonthlyComprehensiveList" resultMap="dataItemMap">
+ SELECT
+ aa.index_id,
+ aa.index_name,
+ <foreach item="item" index="index" collection="dataList">
+ COALESCE ( MAX ( CASE WHEN data_time = #{item.dataTime} THEN "value" END ), null ) AS ${item.value},
+ </foreach>
+ aa.time_type,
+ aa.order_num orderNum
+ FROM
+ (
+ SELECT
+ ni.index_id,
+ ei."name" AS "index_name",
+ di."value",
+ di.data_time,
+ di.time_type,
+ mn.order_num
+ FROM
+ model_node mn
+ LEFT JOIN node_index ni ON ni.node_id = mn.node_id
+ LEFT JOIN energy_index ei ON ei.index_id = ni.index_id
+ LEFT JOIN data_item di ON ni.index_id = di.index_id
+ WHERE
+ mn.parent_id = #{nodeId}
+ AND di.data_time >= #{beginTime}
+ AND di.data_time <= #{endTime}
+ AND di.time_type = #{timeType}
+ <if test="indexStorageId !='' and indexStorageId !=null">
+ and ei.energy_id=#{indexStorageId}
+ </if>
+ ) aa
+ GROUP BY
+ aa.index_id, aa.index_name, aa.time_type, aa.order_num
+ ORDER BY aa.order_num ASC
+ </select>
+
+ <select id="getListChart" resultMap="dataItemMap">
+ SELECT
+ di.index_id,
+ ci.name AS "index_name",
+ ci.unit_id,
+ di."value",
+ di.data_time,
+ di.time_type,
+ di.time_code
+ FROM
+ data_item di LEFT JOIN energy_index ci ON di.index_id = ci.index_id
+ WHERE
+ di.index_id =#{indexId}
+ AND di.data_time <= #{endTime}
+ AND di.data_time >= #{beginTime}
+ AND di.time_type = #{timeType}
+ ORDER BY
+ di.time_code;
+ </select>
+</mapper>
diff --git a/zhitan-system/src/main/resources/mapper/comprehensivestatistics/YearComprehensiveMapper.xml b/zhitan-system/src/main/resources/mapper/comprehensivestatistics/YearComprehensiveMapper.xml
new file mode 100644
index 0000000..e36e03c
--- /dev/null
+++ b/zhitan-system/src/main/resources/mapper/comprehensivestatistics/YearComprehensiveMapper.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhitan.comprehensivestatistics.mapper.YearComprehensiveMapper">
+ <resultMap id="dataItemMap" type="com.zhitan.comprehensivestatistics.domain.YearComperhensive">
+ <result column="index_id" property="indexId"/>
+ <result column="index_name" property="indexName"/>
+ <result column="time_type" property="timeType"/>
+ <result column="time_code" property="timeCode"/>
+ <result column="unit_id" property="unitId"/>
+ <result column="value1" property="value1"/>
+ <result column="value2" property="value2"/>
+ <result column="value3" property="value3"/>
+ <result column="value4" property="value4"/>
+ <result column="value5" property="value5"/>
+ <result column="value6" property="value6"/>
+ <result column="value7" property="value7"/>
+ <result column="value8" property="value8"/>
+ <result column="value9" property="value9"/>
+ <result column="value10" property="value10"/>
+ <result column="value11" property="value11"/>
+ <result column="value12" property="value12"/>
+ </resultMap>
+ <!--鍏ㄥ巶鑳借�楃粺璁�-->
+ <select id="getYearComprehensiveList" resultMap="dataItemMap">
+ SELECT
+ aa.index_id,
+ aa.index_name,
+ <foreach item="item" index="index" collection="dataList">
+ COALESCE ( MAX ( CASE WHEN data_time = #{item.dataTime} THEN "value" END ), null ) AS ${item.value},
+ </foreach>
+ aa.time_type,
+ aa.order_num orderNum
+ FROM
+ (
+ SELECT
+ ni.index_id,
+ ei."name" AS "index_name",
+ di."value",
+ di.data_time,
+ di.time_type,
+ mn.order_num
+ FROM
+ model_node mn
+ LEFT JOIN node_index ni ON ni.node_id = mn.node_id
+ LEFT JOIN energy_index ei ON ei.index_id = ni.index_id
+ LEFT JOIN data_item di ON ni.index_id = di.index_id
+ WHERE
+ mn.parent_id = #{nodeId}
+ AND di.data_time >= #{beginTime}
+ AND di.data_time <= #{endTime}
+ AND di.time_type = #{timeType}
+ <if test="indexStorageId !='' and indexStorageId !=null">
+ and ei.energy_id=#{indexStorageId}
+ </if>
+ ) aa
+ GROUP BY aa.index_id, aa.index_name, aa.time_type, aa.order_num
+ ORDER BY aa.order_num ASC
+ </select>
+
+ <select id="getListChart" resultMap="dataItemMap">
+ SELECT
+ di.index_id,
+ ci.name AS "index_name",
+ ci.unit_id,
+ di."value",
+ di.data_time,
+ di.time_type,
+ di.time_code
+ FROM
+ data_item di LEFT JOIN energy_index ci ON di.index_id = ci.index_id
+ WHERE
+ di.index_id =#{indexId}
+ AND di.data_time < #{endTime}
+ AND di.data_time >= #{beginTime}
+ AND di.time_type = #{timeType}
+ ORDER BY
+ di.time_code;
+ </select>
+</mapper>
--
Gitblit v1.9.3