From bc0fdd1f0c20ca4737e8f073050f37b27a658694 Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期四, 22 五月 2025 16:31:12 +0800
Subject: [PATCH] 管路&气柜产能负载优化,实现动态row聚合统计

---
 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java |   92 +++++++++++++++++++++++++++-------------------
 1 files changed, 54 insertions(+), 38 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java
index 5444955..faf5e0a 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java
@@ -1,34 +1,36 @@
 package com.aps.core.controller.mainPlan;
 
-import java.util.List;
-
+import com.aps.common.core.utils.poi.ExcelUtil;
+import com.aps.common.core.web.controller.BaseController;
+import com.aps.common.core.web.domain.AjaxResult;
 import com.aps.common.core.web.page.TableDataInfo;
-import com.aps.core.domain.ApsGasPipelineMo;
+import com.aps.common.log.annotation.Log;
+import com.aps.common.log.enums.BusinessType;
+import com.aps.common.security.annotation.RequiresPermissions;
 import com.aps.core.domain.ApsGasPipelinePrediction;
+import com.aps.core.domain.ApsMaterialProductGroupManagement;
 import com.aps.core.service.IApsGasPipelinePredictionService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.servlet.http.HttpServletResponse;
+import lombok.SneakyThrows;
+import org.apache.commons.io.IOUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.aps.common.log.annotation.Log;
-import com.aps.common.log.enums.BusinessType;
-import com.aps.common.security.annotation.RequiresPermissions;
-import com.aps.common.core.web.controller.BaseController;
-import com.aps.common.core.web.domain.AjaxResult;
-import com.aps.common.core.utils.poi.ExcelUtil;
+import org.springframework.core.io.ByteArrayResource;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
 
 /**
  * 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁Controller
- * 
+ *
  * @author ruoyi
  * @date 2025-05-19
  */
@@ -36,8 +38,7 @@
 @Tag(name = "绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁", description = "绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁鎺ュ彛")
 @RestController
 @RequestMapping("/gasPipelinePrediction")
-public class ApsGasPipelinePredictionController extends BaseController
-{
+public class ApsGasPipelinePredictionController extends BaseController {
     @Autowired
     private IApsGasPipelinePredictionService apsGasPipelinePredictionService;
 
@@ -45,10 +46,9 @@
      * 鏌ヨ绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁鍒楄〃
      */
     @Operation(summary = "鏌ヨ绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁鍒楄〃", description = "鍒嗛〉鏌ヨ")
-//    @RequiresPermissions("gasPipeline:prediction:list")
+    @RequiresPermissions("gasPipeline:prediction:list")
     @GetMapping("/list")
-    public TableDataInfo list(ApsGasPipelinePrediction apsGasPipelineMo)
-    {
+    public TableDataInfo list(ApsGasPipelinePrediction apsGasPipelineMo) {
         startPage();
         List<ApsGasPipelinePrediction> list = apsGasPipelinePredictionService.selectApsGasPipelinePredictionList(apsGasPipelineMo);
         return getDataTable(list);
@@ -57,13 +57,34 @@
 
     @Operation(summary = "瀵煎叆鎵嬪伐姘斾綋棰勬祴鏁版嵁", description = "鎵归噺瀵煎叆")
     @Log(title = "瀵煎叆鎵嬪伐姘斾綋棰勬祴鏁版嵁", businessType = BusinessType.IMPORT)
-//    @RequiresPermissions("gasPipeline:mo:import")
+    @RequiresPermissions("gasPipeline:prediction:import")
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file) throws Exception {
 
-        int i = apsGasPipelinePredictionService.batchInsertApsGasPipelinePrediction(file);
-        return  toAjax(i);
+        apsGasPipelinePredictionService.batchInsertApsGasPipelinePrediction(file);
+        return toAjax(true);
     }
+
+    /**
+     * 涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘
+     */
+    @SneakyThrows
+    @Operation(summary = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘", description = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘")
+//    @RequiresPermissions("gasPipeline:prediction:template")
+//    @Log(title = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘", businessType = BusinessType.EXPORT)
+    @GetMapping("/template")
+    public ResponseEntity<ByteArrayResource> exportTemplate() {
+        byte[] file = IOUtils.resourceToByteArray("/templates/姘斾綋棰勬祴鏁版嵁妯℃澘v1.0.xlsx");
+        ByteArrayResource resource = new ByteArrayResource(file);
+        return ResponseEntity.ok()
+                .header("Access-Control-Expose-Headers", HttpHeaders.CONTENT_DISPOSITION)
+                .header(HttpHeaders.CONTENT_DISPOSITION,
+                        String.format("attachment;filename=%s", URLEncoder.encode("姘斾綋棰勬祴鏁版嵁妯℃澘.xlsx", StandardCharsets.UTF_8)))
+                .header(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
+                .contentLength(file.length)
+                .body(resource);
+    }
+
     /**
      * 瀵煎嚭绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁鍒楄〃
      */
@@ -71,8 +92,7 @@
     @RequiresPermissions("gasPipeline:prediction:export")
     @Log(title = "绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, ApsGasPipelinePrediction apsGasPipelinePrediction)
-    {
+    public void export(HttpServletResponse response, ApsGasPipelinePrediction apsGasPipelinePrediction) {
         List<ApsGasPipelinePrediction> list = apsGasPipelinePredictionService.selectApsGasPipelinePredictionList(apsGasPipelinePrediction);
         ExcelUtil<ApsGasPipelinePrediction> util = new ExcelUtil<ApsGasPipelinePrediction>(ApsGasPipelinePrediction.class);
         util.exportExcel(response, list, "绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁鏁版嵁");
@@ -84,8 +104,7 @@
     @Operation(summary = "鑾峰彇绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁璇︾粏淇℃伅", description = "鏍规嵁id鑾峰彇")
     @RequiresPermissions("gasPipeline:prediction:query")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(apsGasPipelinePredictionService.selectApsGasPipelinePredictionById(id));
     }
 
@@ -96,8 +115,7 @@
     @RequiresPermissions("gasPipeline:prediction:add")
     @Log(title = "绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody ApsGasPipelinePrediction apsGasPipelinePrediction)
-    {
+    public AjaxResult add(@RequestBody ApsGasPipelinePrediction apsGasPipelinePrediction) {
         return toAjax(apsGasPipelinePredictionService.insertApsGasPipelinePrediction(apsGasPipelinePrediction));
     }
 
@@ -108,8 +126,7 @@
     @RequiresPermissions("gasPipeline:prediction:edit")
     @Log(title = "绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody ApsGasPipelinePrediction apsGasPipelinePrediction)
-    {
+    public AjaxResult edit(@RequestBody ApsGasPipelinePrediction apsGasPipelinePrediction) {
         return toAjax(apsGasPipelinePredictionService.updateApsGasPipelinePrediction(apsGasPipelinePrediction));
     }
 
@@ -117,11 +134,10 @@
      * 鍒犻櫎绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁
      */
     @Operation(summary = "鍒犻櫎绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁", description = "鎵归噺鍒犻櫎")
-//    @RequiresPermissions("gasPipeline:prediction:remove")
+    @RequiresPermissions("gasPipeline:prediction:remove")
     @Log(title = "绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(apsGasPipelinePredictionService.deleteApsGasPipelinePredictionByIds(ids));
     }
 }

--
Gitblit v1.9.3