From 83a348d85de2c04183211b0f464f82c33a77deea Mon Sep 17 00:00:00 2001 From: dy <dingyang@lnfxkj.tech> Date: 星期三, 16 四月 2025 17:27:57 +0800 Subject: [PATCH] 焊缝统计表提交 --- aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWeldSeamMapper.java | 4 + aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml | 36 ++++++++++++ aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeam.java | 36 ++++++++++-- aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamController.java | 10 +++ aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWeldSeamService.java | 2 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWeldSeamServiceImpl.java | 67 ++++++++++++++++++++++ 6 files changed, 148 insertions(+), 7 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamController.java index 50e8760..ccaa95c 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamController.java @@ -170,4 +170,14 @@ public AjaxResult confirmWeldSeam(@RequestBody ApsWeldSeamTemp apsWeldSeamTemp) { return toAjax(apsWeldSeamService.confirmWeldSeam(apsWeldSeamTemp)); } + + /** + * 鏌ヨ鐒婄紳鍥捐〃 + */ + @RequiresPermissions("weldSeam:weldSeam:weldSeamEchartsList") + @GetMapping("/weldSeamEchartsList") + public AjaxResult weldSeamEchartsList(ApsWeldSeam apsWeldSeam) { + List<List<String>> list = apsWeldSeamService.weldSeamEchartsList(apsWeldSeam); + return AjaxResult.success(list); + } } 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 d828866..8ab9545 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,6 +1,8 @@ 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; import org.apache.commons.lang3.builder.ToStringStyle; @@ -97,15 +99,17 @@ @Excel(name = "鎬荤剨缂�") private Long totalWeldSeam; - - - - - - /** 宸ュ巶 */ // @Excel(name = "宸ュ巶") private String plant; + + /** 缁熻鐢熶骇骞翠唤 */ + @Excel(name = "鐢熶骇骞翠唤List") + private List<Long> produceYears; + + /** 缁熻鐢熶骇鏈堜唤 */ + @Excel(name = "鐢熶骇鏈堜唤List") + private List<Long> produceMonths; public void setId(String id) { @@ -317,6 +321,26 @@ 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() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) 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 11e6cb0..53f1360 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 @@ -1,6 +1,8 @@ package com.aps.core.mapper; import java.util.List; +import java.util.Map; + import com.aps.core.domain.ApsWeldSeam; import com.aps.core.domain.ApsWeldSeamStatistics; import com.aps.core.domain.ApsWeldSeamTemp; @@ -71,4 +73,6 @@ public int deleteApsWeldSeamByIds(String[] ids); List<ApsWeldSeamStatistics> weldSeamStat(List<ApsWeldSeamTemp> apsWeldSeamTemps); + + List<Map> weldSeamEcharts(ApsWeldSeam apsWeldSeam); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWeldSeamService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWeldSeamService.java index 0b590cc..6d2c8d0 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWeldSeamService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWeldSeamService.java @@ -61,4 +61,6 @@ public int deleteApsWeldSeamById(String id); int confirmWeldSeam(ApsWeldSeamTemp apsWeldSeamTemp); + + List<List<String>> weldSeamEchartsList(ApsWeldSeam apsWeldSeam); } 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 417fdf7..b6217a2 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,7 +17,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * 鐒婄紳Service涓氬姟灞傚鐞� @@ -224,4 +225,68 @@ }*/ return 1; } + + @Override + public List<List<String>> weldSeamEchartsList(ApsWeldSeam apsWeldSeam) { + + 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<Map> mapList =apsWeldSeamMapper.weldSeamEcharts(apsWeldSeam); + Set monthSet=mapList.stream().map(e->e.get("produce_month").toString()).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")); + sb.append("-"); + sb.append(item.get("work_order_name")); + sb.append("-"); + sb.append(item.get("classification_name")); + title.add(sb.toString()); + + }); + echartsList.add(title); + System.out.println(monthList); + monthList.forEach(month->{ + List<String> table = new ArrayList<>(); + table.add(month+"鏈�"); + for (int i=1;i<title.size();i++){ + for(int j=0;j<mapList.size();j++){ + Map value =mapList.get(j); + StringBuilder sb = new StringBuilder(); + sb.append(value.get("production_base")); + sb.append("-"); + sb.append(value.get("work_order_name")); + sb.append("-"); + sb.append(value.get("classification_name")); + if(sb.toString().equals(title.get(i))){//鍒楁槑 + table.add(value.get("total_weld_seam").toString()); + } + } + } + echartsList.add(table); + }); + return echartsList; + } } 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 453ae4d..a291648 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 @@ -163,4 +163,40 @@ FROM aps_weld_seam GROUP BY produce_year, produce_month, production_base, work_order_type, classification </select> + + <select id="weldSeamEcharts" parameterType="java.util.List" resultType="map"> + + SELECT + seam.produce_year, + seam.produce_month, + seam.production_base, + workOrderType.dict_label AS work_order_name, + classification.dict_label AS classification_name, + SUM ( seam.total_weld_seam ) AS total_weld_seam + FROM + aps_weld_seam seam + LEFT JOIN sys_dict_data workOrderType ON seam.work_order_type = workOrderType.dict_value + AND workOrderType.dict_type = 'aps_weld_work_order_type' + LEFT JOIN sys_dict_data classification ON seam.classification = classification.dict_value + AND classification.dict_type = 'aps_weld_classification' + <where> + <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> + </where> + GROUP BY + seam.produce_year, + seam.produce_month, + seam.production_base, + workOrderType.dict_label, + classification.dict_label + + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3