From 3d3477dc4a070a48e21f1625914f55a321a6c096 Mon Sep 17 00:00:00 2001
From: dy <dingyang@lnfxkj.tech>
Date: 星期三, 16 四月 2025 19:37:48 +0800
Subject: [PATCH] 焊缝统计图提交

---
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWeldSeamMapper.java            |    2 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml                |   13 +-----
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeam.java                  |   28 --------------
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWeldSeamServiceImpl.java |   56 +++++++++++++++++++++------
 4 files changed, 47 insertions(+), 52 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeam.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeam.java
index 8ab9545..e32a1ab 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeam.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeam.java
@@ -1,7 +1,6 @@
 package com.aps.core.domain;
 
 import java.util.Date;
-import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -102,14 +101,6 @@
     /** 宸ュ巶 */
 //    @Excel(name = "宸ュ巶")
     private String plant;
-
-    /** 缁熻鐢熶骇骞翠唤 */
-    @Excel(name = "鐢熶骇骞翠唤List")
-    private List<Long> produceYears;
-
-    /** 缁熻鐢熶骇鏈堜唤 */
-    @Excel(name = "鐢熶骇鏈堜唤List")
-    private List<Long> produceMonths;
 
     public void setId(String id) 
     {
@@ -321,25 +312,6 @@
         return plant;
     }
 
-    public void setProduceYears(List<Long> produceYears)
-    {
-        this.produceYears = produceYears;
-    }
-
-    public List<Long> getProduceYears()
-    {
-        return produceYears;
-    }
-
-    public void setProduceMonths(List<Long> produceMonths)
-    {
-        this.produceMonths = produceMonths;
-    }
-
-    public List<Long> getProduceMonths()
-    {
-        return produceMonths;
-    }
 
     @Override
     public String toString() {
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWeldSeamMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWeldSeamMapper.java
index deb54db..9859ae7 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWeldSeamMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWeldSeamMapper.java
@@ -74,6 +74,6 @@
 
     List<ApsWeldSeamStatistics> weldSeamStat(List<ApsWeldSeamTemp> apsWeldSeamTemps);
 
-    List<Map> weldSeamEcharts(ApsWeldSeam apsWeldSeam);
+    List<Map> weldSeamEcharts(List<ApsWeldSeam> apsWeldSeams);
     int removeLastBatch();
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWeldSeamServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWeldSeamServiceImpl.java
index 397dcd5..55d336c 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWeldSeamServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWeldSeamServiceImpl.java
@@ -17,6 +17,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -230,24 +231,22 @@
     @Override
     public List<List<String>> weldSeamEchartsList(ApsWeldSeam apsWeldSeam) {
 
+        List<ApsWeldSeam> queryDataList = new ArrayList<>();
         Map<String, Object> params = apsWeldSeam.getParams();
         if(ObjectUtils.isNotEmpty(params)){
             String startDay = params.get("startDay").toString();
             String endDay = params.get("endDay").toString();
-            List<Long> produceYears = new ArrayList<>();
-            List<Long> produceMonths = new ArrayList<>();
-            String startQueryYear = startDay.substring(0,4);
-            String endQueryYear = endDay.substring(0,4);
-            String startQueryDay = startDay.substring(6,7);
-            String endQueryDay = endDay.substring(6,7);
-            produceYears.add(Long.valueOf(startQueryYear));
-            produceYears.add(Long.valueOf(endQueryYear));
-            produceMonths.add(Long.valueOf(startQueryDay));
-            produceMonths.add(Long.valueOf(endQueryDay));
-            apsWeldSeam.setProduceYears(produceYears);
-            apsWeldSeam.setProduceMonths(produceMonths);
+            List<String> dateList = getMonthBetweenDate(startDay,endDay);
+            dateList.forEach(item->{
+                ApsWeldSeam weldSeam = new ApsWeldSeam();
+                String queryYear = item.substring(0,4);
+                String queryMonth = item.substring(6,7);
+                weldSeam.setProduceYear(Long.valueOf(queryYear));
+                weldSeam.setProduceMonth(Long.valueOf(queryMonth));
+                queryDataList.add(weldSeam);
+            });
         }
-        List<Map> mapList =apsWeldSeamMapper.weldSeamEcharts(apsWeldSeam);
+        List<Map> mapList =apsWeldSeamMapper.weldSeamEcharts(queryDataList);
         Set monthSet=mapList.stream().map(e->e.get("produce_month").toString()).collect(Collectors.toSet());
         List monthList = new ArrayList(monthSet);
         Collections.sort(monthList);
@@ -289,4 +288,35 @@
         });
         return echartsList;
     }
+
+    public static List<String> getMonthBetweenDate(String startTime, String endTime) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+        // 澹版槑淇濆瓨鏃ユ湡闆嗗悎
+        List<String> list = new ArrayList<>();
+        try {
+            // 杞寲鎴愭棩鏈熺被鍨�
+            Date startDate = sdf.parse(startTime);
+            Date endDate = sdf.parse(endTime);
+
+            //鐢–alendar 杩涜鏃ユ湡姣旇緝鍒ゆ柇
+            Calendar calendar = Calendar.getInstance();
+            while (startDate.getTime() <= endDate.getTime()) {
+
+                // 鎶婃棩鏈熸坊鍔犲埌闆嗗悎
+                list.add(sdf.format(startDate));
+
+                // 璁剧疆鏃ユ湡
+                calendar.setTime(startDate);
+
+                //鎶婃湀鏁板鍔� 1
+                calendar.add(Calendar.MONTH, 1);
+
+                // 鑾峰彇澧炲姞鍚庣殑鏃ユ湡
+                startDate = calendar.getTime();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return list;
+    }
 }
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml
index dfd139d..5770b88 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml
@@ -184,16 +184,9 @@
             AND classification.dict_type = 'aps_weld_classification'
             <where>
                 seam.del_flag = '0'
-                <if test="produceYears != null "> and produce_year in
-                    <foreach item="produceYear" collection="produceYears" open="(" separator="," close=")">
-                        #{produceYear}
-                    </foreach>
-                </if>
-                <if test="produceMonths != null "> and produce_month in
-                    <foreach item="produceMonth" collection="produceMonths" open="(" separator="," close=")">
-                        #{produceMonth}
-                    </foreach>
-                </if>
+                <foreach item="item" index="index" collection="list" separator=" OR " open="and (" close=") ">
+                    produce_year = #{item.produceYear} and produce_month = #{item.produceMonth}
+                </foreach>
             </where>
         GROUP BY
             seam.produce_year,

--
Gitblit v1.9.3