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); } } 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) 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,5 +73,7 @@ public int deleteApsWeldSeamByIds(String[] ids); List<ApsWeldSeamStatistics> weldSeamStat(List<ApsWeldSeamTemp> apsWeldSeamTemps); List<Map> weldSeamEcharts(ApsWeldSeam apsWeldSeam); int removeLastBatch(); } 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); } 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; } } aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml
@@ -166,4 +166,40 @@ <update id="removeLastBatch" parameterType="String"> update aps_weld_seam set del_flag='1' where del_flag='0' </update> <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>