From dec8951aae400e54f6ee83a8f95867dba9da8af1 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期五, 23 五月 2025 17:17:33 +0800 Subject: [PATCH] [钣金计划大表] 优化:焊缝统计导出Excel样式 --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWeldSeamServiceImpl.java | 80 +++++++++++++++++++++++++++------------ 1 files changed, 55 insertions(+), 25 deletions(-) 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 b6217a2..761f9b4 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; @@ -110,22 +111,23 @@ List<ApsWeldSeamTemp> apsWeldSeamTemps = apsWeldSeamTempMapper.selectApsWeldSeamTempList(apsWeldSeamTemp); int count = 0; String[] ids = new String[apsWeldSeamTemps.size()]; + apsWeldSeamMapper.removeLastBatch(); for (int i = 0; i < apsWeldSeamTemps.size(); i++) { //璁板綍涓存椂琛╥d ids[i] = apsWeldSeamTemps.get(i).getId(); ApsWeldSeam apsWeldSeam = new ApsWeldSeam(); BeanUtils.copyProperties(apsWeldSeamTemps.get(i), apsWeldSeam); //閫氳繃宸ュ崟鍙锋煡璇㈡槸鍚﹀瓨鍦ㄦ暟鎹� - ApsWeldSeam apsWeldSeam1 = apsWeldSeamMapper.selectApsWeldSeamByWorkOrderNo(apsWeldSeam.getWorkOrderNo()); + /*ApsWeldSeam apsWeldSeam1 = apsWeldSeamMapper.selectApsWeldSeamByWorkOrderNo(apsWeldSeam.getWorkOrderNo()); //褰撳伐鍗曞彿瀛樺湪鍒欐洿鏂版暟鎹惁鍒欐彃鍏ユ暟鎹� if (apsWeldSeam1!=null&&apsWeldSeam1.getId()!=null) { apsWeldSeam.setId(apsWeldSeam1.getId()); apsWeldSeamMapper.updateApsWeldSeam(apsWeldSeam); - } else { + } else {*/ //鎻掑叆姝e紡琛紝骞惰褰� - apsWeldSeam.setId(IdUtils.fastUUID()); - apsWeldSeamMapper.insertApsWeldSeam(apsWeldSeam); - } + apsWeldSeam.setId(IdUtils.fastUUID()); + apsWeldSeamMapper.insertApsWeldSeam(apsWeldSeam); + //} count++; } //鎻掑叆鏁伴噺涓庝复鏃惰〃鏌ヨ涓�鐩村垯鍒犻櫎涓存椂琛ㄦ暟鎹� @@ -229,33 +231,29 @@ @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); - Set monthSet=mapList.stream().map(e->e.get("produce_month").toString()).collect(Collectors.toSet()); + List<Map> mapList =apsWeldSeamMapper.weldSeamEcharts(queryDataList); + Set monthSet=mapList.stream().map(e->e.get("produce_month")).collect(Collectors.toSet()); List monthList = new ArrayList(monthSet); Collections.sort(monthList); List<List<String>> echartsList = new ArrayList<>(); Set<String> titleSet = new HashSet<>(); - List<String> title = new ArrayList<>(titleSet); - title.add("product"); mapList.forEach(item->{ StringBuilder sb = new StringBuilder(); sb.append(item.get("production_base")); @@ -263,11 +261,12 @@ sb.append(item.get("work_order_name")); sb.append("-"); sb.append(item.get("classification_name")); - title.add(sb.toString()); - + titleSet.add(sb.toString()); }); + List<String> title = new ArrayList<>(); + title.add("product"); + title.addAll(titleSet); echartsList.add(title); - System.out.println(monthList); monthList.forEach(month->{ List<String> table = new ArrayList<>(); table.add(month+"鏈�"); @@ -280,7 +279,7 @@ sb.append(value.get("work_order_name")); sb.append("-"); sb.append(value.get("classification_name")); - if(sb.toString().equals(title.get(i))){//鍒楁槑 + if(sb.toString().equals(title.get(i)) && month==value.get("produce_month")){ table.add(value.get("total_weld_seam").toString()); } } @@ -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; + } } -- Gitblit v1.9.3