zhanghl
2025-04-16 480af1ab454d6c13bc94a5ec4919095dd4b880b0
Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
# aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWeldSeamMapper.java
# aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml
已修改6个文件
155 ■■■■■ 文件已修改
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeam.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWeldSeamMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWeldSeamService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWeldSeamServiceImpl.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>