guoyuji
2024-03-25 a5bd926acdd8817a2da4b755b57a1d7e334a383a
订单首页显示流程卡数据,根据流程顺序显示工序位置
6个文件已修改
95 ■■■■ 已修改文件
north-glass-erp/.idea/dataSources.local.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderProcessDetailMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetail.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/target/classes/mapper/sd/OrderProcessDetail.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/.idea/dataSources.local.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="dataSourceStorageLocal" created-in="IU-232.8660.185">
  <component name="dataSourceStorageLocal" created-in="IU-232.9559.62">
    <data-source name="@localhost [2]" uuid="165c5447-d19a-4aaf-af5f-cee92ae696c2">
      <database-info product="MySQL" version="8.0.22" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-java-8.0.25 (Revision: 08be9e9b4cba6aa115f9b27b215887af40b159e0)" dbms="MYSQL" exact-version="8.0.22" exact-driver-version="8.0">
        <extra-name-characters>#@</extra-name-characters>
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue
@@ -85,8 +85,8 @@
        item.reportWorkQuantity=JSON.parse(item.reportWorkQuantity)
        item.reportWorkQuantityCount=JSON.parse(item.reportWorkQuantityCount)
      })
      mergeCells.value = res.data.mergeCells
      console.log(res.data.mergeCells)
      mergeCells.value = res.data.mergeCell
      console.log(res.data.title)
      xGrid.value.loadData(res.data.data)
    } else {
      ElMessage.warning(res.msg)
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderProcessDetailMapper.java
@@ -19,4 +19,6 @@
    List<Map<String,String>> filterOrderProcess(String orderId);
    List<Map<String,Integer>> getGlassLRow(String orderId);
    List<Map<String, String>> filterLastProcess(String orderId, String orderNumber, String technologyNumber,String id);
}
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -12,10 +12,8 @@
import org.springframework.stereotype.Service;
import java.sql.Date;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Service
@DS("pp")
@@ -29,11 +27,58 @@
        this.orderProcessDetailMapper = orderProcessDetailMapper;
    }
    //流程卡进度方法
    public Map<String, Object> processCardProgressSv(String orderId, List<Integer> columns) {
        Map<String, Object> map = new HashMap<>();
        //获取表格内容数据
        map.put("data", reportMapper.processCardProgressMp(orderId));
        map.put("title", orderProcessDetailMapper.filterOrderProcess(orderId));
        //获取表头工序筛选数据
        List<Map<String,String>> processFilterList = orderProcessDetailMapper.filterOrderProcess(orderId);
        List<Map<String,String>> processList = processFilterList;
        List<String> filterList = new ArrayList<>();
        //循环遍历数组,判断此序号当前的工序
        for (int i = 1; i < processFilterList.size(); i++) {
            filterList.add(processFilterList.get(i).get("process"));
            List<Map<String,String>> lastProcessList =
                    orderProcessDetailMapper.filterLastProcess(
                            orderId,
                            String.valueOf(processFilterList.get(i).get("order_number")),
                            String.valueOf(processFilterList.get(i).get("technology_number")),
                            String.valueOf(processFilterList.get(i).get("id"))
                            );
            if(!lastProcessList.isEmpty()){
                int finalI = i;
                lastProcessList.forEach(lastProcess -> {
                    if(filterList.contains(lastProcess.get("process"))){
                        processList.add(lastProcess);
                    }
                });
            }
        }
        // 使用HashSet来记录已经遇到的value值
        Set<String> seenValues = new HashSet<>();
        // 创建一个新的List来存储结果
        List<Map<String, String>> uniqueList = new ArrayList<>();
        // 反向遍历原始List
        for (int i = processList.size() - 1; i >= 0; i--) {
            Map<String, String> maps = processList.get(i);
            String value = maps.values().iterator().next(); // 假设每个Map只有一个value
            // 如果value还没有被看到过,就添加到结果List和HashSet中
            if (!seenValues.contains(value)) {
                uniqueList.add(0, maps); // 添加到结果List的开头,以保持原顺序
                seenValues.add(value);
            }
        }
        map.put("title", uniqueList );
        List<Map<String,Integer>> getRowCount =  orderProcessDetailMapper.getGlassLRow(orderId);
        List<Map<String,Integer>> rowCount = new ArrayList<>();
        columns.forEach(col ->{
north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetail.xml
@@ -71,12 +71,25 @@
    <!--查询筛选后唯一的流程卡号-->
    <select id="filterOrderProcess">
        select process
        select id,process,order_number,technology_number
        from order_process_detail
        where order_id = #{orderId}
        group by process
    </select>
    <select id="filterLastProcess">
        select id,process,order_number,technology_number
        from order_process_detail
        where order_id = #{orderId}
        and order_number = #{orderNumber}
        and technology_number = #{technologyNumber}
        and id &gt; #{id}
        group by process
    </select>
    <select id="getGlassLRow">
        select
             max(a.technology_number) as rowCount,
north-glass-erp/target/classes/mapper/sd/OrderProcessDetail.xml
@@ -71,12 +71,25 @@
    <!--查询筛选后唯一的流程卡号-->
    <select id="filterOrderProcess">
        select process
        select id,process,order_number,technology_number
        from order_process_detail
        where order_id = #{orderId}
        group by process
    </select>
    <select id="filterLastProcess">
        select id,process,order_number,technology_number
        from order_process_detail
        where order_id = #{orderId}
        and order_number = #{orderNumber}
        and technology_number = #{technologyNumber}
        and id &gt; #{id}
        group by process
    </select>
    <select id="getGlassLRow">
        select
             max(a.technology_number) as rowCount,