From 687c9b21d0c8aedbd0c3f2d64b11cfaad5e38e85 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期五, 23 五月 2025 15:42:34 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java                                   |    6 +-
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java             |   24 ++++++++
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java |   19 ++---
 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java            |    2 
 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java    |    2 
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java          |   16 ++--
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialProductGroupManagement.java                  |   87 +++-------------------------
 7 files changed, 55 insertions(+), 101 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java
index 10d4244..2d52df6 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java
@@ -64,7 +64,7 @@
 
     @Operation(summary = "瀵煎叆绠¤矾鎵嬪伐姘斾綋宸ュ崟鏁版嵁", description = "鎵归噺瀵煎叆")
     @Log(title = "瀵煎叆绠¤矾鎵嬪伐姘斾綋宸ュ崟鏁版嵁", businessType = BusinessType.IMPORT)
-//    @RequiresPermissions("gasPipeline:mo:import")
+    @RequiresPermissions("gasPipeline:mo:import")
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file) throws Exception {
 
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 1200905..54354ff 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
@@ -62,7 +62,7 @@
 
     @Operation(summary = "瀵煎叆鎵嬪伐姘斾綋棰勬祴鏁版嵁", description = "鎵归噺瀵煎叆")
     @Log(title = "瀵煎叆鎵嬪伐姘斾綋棰勬祴鏁版嵁", businessType = BusinessType.IMPORT)
-//    @RequiresPermissions("gasPipeline:prediction:import")
+    @RequiresPermissions("gasPipeline:prediction:import")
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file) throws Exception {
 
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java
index d031ba2..a41f824 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java
@@ -46,10 +46,10 @@
     @Schema(description = "鏂欏彿")
     private String materialCode;
 
-    /** 璁″垝瀹屽伐鏃ユ湡 */
+    /** 璁″垝瀹屽伐鏃� */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "璁″垝瀹屽伐鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    @Schema(description = "璁″垝瀹屽伐鏃ユ湡")
+    @Excel(name = "璁″垝瀹屽伐鏃�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "璁″垝瀹屽伐鏃�")
     private Date planEnd;
 
     /** 鏁伴噺 */
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialProductGroupManagement.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialProductGroupManagement.java
index a51836c..2fc7dea 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialProductGroupManagement.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialProductGroupManagement.java
@@ -1,14 +1,12 @@
 package com.aps.core.domain;
 
+import com.aps.common.core.annotation.Excel;
 import com.aps.common.core.web.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.aps.common.core.annotation.Excel;
 import org.springframework.data.annotation.Id;
 
 /**
@@ -31,7 +29,7 @@
     /**
      * 閫傜敤宸ュ巶  鍙傝�� aps_factory
      */
-    @Excel(name = "閫傜敤宸ュ巶  鍙傝�� aps_factory")
+    @Excel(name = "閫傜敤宸ュ巶")
     @Schema(description = "閫傜敤宸ュ巶  鍙傝�� aps_factory")
     private String factory;
 
@@ -45,20 +43,26 @@
     /**
      * 涓撲笟 鍙傝��	aps_domain
      */
-    @Excel(name = "涓撲笟 鍙傝��	aps_domain")
+    @Excel(name = "涓撲笟褰掑睘")
     @Schema(description = "涓撲笟 鍙傝��	aps_domain")
     private String domain;
 
     /**
      * 鏄惁涓轰富闃� 鏄�/鍚�
      */
-    @Excel(name = "鏄惁涓轰富闃� 鏄�/鍚�")
+    @Excel(name = "鏄惁涓婚樁鏂欏彿")
     @Schema(description = "鏄惁涓轰富闃� 鏄�/鍚�")
     private String isMain;
 
     @JsonIgnore
     @TableField(exist = false)
     private String key;
+    /**
+     * 鏂欏彿绫诲埆 鍒堕�犱欢/閲囪喘浠�
+     */
+    @Excel(name = "鏂欏彿绫诲埆")
+    @Schema(description = "鏂欏彿绫诲埆 鍒堕�犱欢/閲囪喘浠�")
+    private String materialType;
 
     @JsonIgnore
     public String getKey() {
@@ -66,76 +70,5 @@
             key = getFactory() + "##" + getMaterialCode();
         }
         return key;
-    }
-
-    /**
-     * 鏂欏彿绫诲埆 鍒堕�犱欢/閲囪喘浠�
-     */
-    @Excel(name = "鏂欏彿绫诲埆 鍒堕�犱欢/閲囪喘浠�")
-    @Schema(description = "鏂欏彿绫诲埆 鍒堕�犱欢/閲囪喘浠�")
-    private String materialType;
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setFactory(String factory) {
-        this.factory = factory;
-    }
-
-    public String getFactory() {
-        return factory;
-    }
-
-    public void setMaterialCode(String materialCode) {
-        this.materialCode = materialCode;
-    }
-
-    public String getMaterialCode() {
-        return materialCode;
-    }
-
-    public void setDomain(String domain) {
-        this.domain = domain;
-    }
-
-    public String getDomain() {
-        return domain;
-    }
-
-    public void setIsMain(String isMain) {
-        this.isMain = isMain;
-    }
-
-    public String getIsMain() {
-        return isMain;
-    }
-
-    public void setMaterialType(String materialType) {
-        this.materialType = materialType;
-    }
-
-    public String getMaterialType() {
-        return materialType;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
-                .append("id", getId())
-                .append("factory", getFactory())
-                .append("materialCode", getMaterialCode())
-                .append("domain", getDomain())
-                .append("createBy", getCreateBy())
-                .append("createTime", getCreateTime())
-                .append("updateBy", getUpdateBy())
-                .append("updateTime", getUpdateTime())
-                .append("isMain", getIsMain())
-                .append("materialType", getMaterialType())
-                .toString();
     }
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java
index c9f6153..7ed42e1 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java
@@ -110,15 +110,15 @@
             item.setCreateBy(SecurityUtils.getUsername());
             item.setCreateTime(DateUtils.getNowDate());
         });
-        Collections.reverse(list);
-        list = list.stream().filter(item -> {
-            item.setKey(null);
-            if (!keys.contains(item.getKey())) {
-                keys.add(item.getKey());
-                return true;
+
+        for (int i = list.size() - 1; i >= 0; --i) {
+            list.get(i).setKey(null);
+            if (!keys.contains(list.get(i).getKey())) {
+                keys.add(list.get(i).getKey());
+            } else {
+                list.remove(i);
             }
-            return false;
-        }).collect(Collectors.toList());
+        }
 
         if (!list.isEmpty()) {
             List<Map<String, Object>> facCodeKey = apsGasPipelinePredictionMapper.selectByFacOrMaterial(keys);
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java
index 53dd3b5..8102872 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java
@@ -1854,6 +1854,30 @@
         result.put("timePoints", timePoints);
         result.put("rowGroupBy", rowGroupBy);
         
+        // 鏍规嵁鏂囨。娉ㄦ剰鐐�3锛屾坊鍔犳帓搴忛�昏緫
+        if (!plantTable.isEmpty()) {
+            // 瀵硅仛鍚堢粨鏋滆繘琛屾帓搴�
+            Collections.sort(plantTable, (map1, map2) -> {
+                String key1 = map1.keySet().iterator().next();
+                String key2 = map2.keySet().iterator().next();
+                
+                // 棣栧厛鎸塺owGroupBy鎺掑簭锛坧rocessName鎴杦orkshop锛�
+                int result1 = key1.compareTo(key2);
+                if (result1 != 0) {
+                    return result1;
+                }
+                
+                // 濡傛灉rowGroupBy鐩稿悓锛屽啀鎸塸lant鎺掑簭
+                Map<String, Object> detail1 = (Map<String, Object>) map1.get(key1);
+                Map<String, Object> detail2 = (Map<String, Object>) map2.get(key2);
+                
+                String plant1 = detail1.containsKey("plant") ? (String) detail1.get("plant") : "";
+                String plant2 = detail2.containsKey("plant") ? (String) detail2.get("plant") : "";
+                
+                return plant1.compareTo(plant2);
+            });
+        }
+        
         return result;
     }
     
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java
index b89e432..c6cec92 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java
@@ -115,17 +115,14 @@
             item.setCreateBy(SecurityUtils.getUsername());
             item.setCreateTime(DateUtils.getNowDate());
         });
-        Collections.reverse(list);
-        list = list.stream()
-                .filter(item -> {
-                    item.setKey(null);
-                    if (!keys.contains(item.getKey())) {
-                        keys.add(item.getKey());
-                        return true;
-                    }
-                    return false;
-                })
-                .collect(Collectors.toList());
+        for (int i = list.size() - 1; i >= 0; --i) {
+            list.get(i).setKey(null);
+            if (!keys.contains(list.get(i).getKey())) {
+                keys.add(list.get(i).getKey());
+            } else {
+                list.remove(i);
+            }
+        }
 
         if (!list.isEmpty()) {
             Set<String> facCodeKey = apsMaterialProductGroupManagementMapper.selectByFacOrMaterial(keys);

--
Gitblit v1.9.3