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