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