From 5d36e1f987ef21e44ded2e8a1d06c28094ec1e76 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期六, 19 四月 2025 12:39:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 zhitan-admin/src/main/java/com/zhitan/web/controller/processenergy/MonthlyProcessEnergyController.java |  135 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 135 insertions(+), 0 deletions(-)

diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/processenergy/MonthlyProcessEnergyController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/processenergy/MonthlyProcessEnergyController.java
new file mode 100644
index 0000000..5b809f0
--- /dev/null
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/processenergy/MonthlyProcessEnergyController.java
@@ -0,0 +1,135 @@
+package com.zhitan.web.controller.processenergy;
+
+import com.zhitan.common.core.controller.BaseController;
+import com.zhitan.common.core.domain.AjaxResult;
+import com.zhitan.model.domain.EnergyIndex;
+import com.zhitan.model.domain.ModelNode;
+import com.zhitan.model.service.IModelNodeService;
+import com.zhitan.processenergy.domain.MonthlyProcessEnergy;
+import com.zhitan.processenergy.service.IMonthlyProcessEnergyService;
+import com.zhitan.realtimedata.domain.DataItem;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.CollectionUtils;
+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.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 宸ュ簭鑳借�� 鏈�
+ */
+@RestController
+@RequestMapping("/processEnergy/monthlyProcessEnergy")
+@Api(value = "宸ュ簭鑳借�楃粺璁★紙鏈堬級", tags = {"宸ュ簭鑳借�楃粺璁�"})
+public class MonthlyProcessEnergyController extends BaseController {
+
+    @Autowired
+    private IModelNodeService modelNodeService;
+    @Autowired
+    private IMonthlyProcessEnergyService monthlyProcessEnergyService;
+
+    /**
+     *
+     * @param dataItem
+     * @return
+     * @throws ParseException
+     */
+    @GetMapping("/list")
+    @ApiOperation(value = "宸ュ簭鑳借�楃粺璁★紙鏈堬級")
+    public AjaxResult list(DataItem dataItem) throws ParseException {
+        List<MonthlyProcessEnergy> dataList = new ArrayList<>();
+
+        Map tableColumn = new HashMap<>();//琛ㄦ暟鎹�
+        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.valueOf(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length() - 2))) {
+            if (i > 9) {
+                bb = aa + "-" + i + " 00:00:00";
+            } else {
+                bb = aa + "-0" + i + " 00:00:00";
+            }
+            MonthlyProcessEnergy report = new MonthlyProcessEnergy();
+            report.setDataTime(sf.parse(bb));
+            report.setValue("value" + i);
+            dataList.add(report);
+            tableColumn.put("value" + i, String.valueOf(i) + "鏃�");
+            i++;
+        }
+        List<Map> table = new ArrayList<>();
+        MonthlyProcessEnergy reportList = new MonthlyProcessEnergy();
+        table.add(tableColumn);
+        reportList.setTablehead(table);
+        List<ModelNode> nodeId = modelNodeService.getModelNodeByModelCode(dataItem.getIndexCode());
+        if (CollectionUtils.isEmpty(nodeId)) {
+            return success(new ArrayList<>());
+        }
+        List<EnergyIndex> energyList = modelNodeService.getSettingIndex(nodeId.get(0).getNodeId());
+        if (CollectionUtils.isEmpty(energyList)) {
+            return success(new ArrayList<>());
+        }
+        List<String> indexIds = energyList.stream().map(EnergyIndex::getIndexId).collect(Collectors.toList());
+
+        List<MonthlyProcessEnergy> list = monthlyProcessEnergyService.getMonthlyProcessEnergy(indexIds, dataList, dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(), dataItem.getEnergyType());
+
+        return success(list);
+    }
+
+    /**
+     *
+     * @param dataItem
+     * @return
+     * @throws ParseException
+     */
+    @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<MonthlyProcessEnergy> list = monthlyProcessEnergyService.getListChart(dataItem.getIndexId(), dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(), dataItem.getEnergyType());
+        return AjaxResult.success(list);
+    }
+
+    /**
+     *
+     * @param yearMonth
+     * @return
+     */
+    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());
+    }
+}

--
Gitblit v1.9.3