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 > #{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 > #{id} group by process </select> <select id="getGlassLRow"> select max(a.technology_number) as rowCount,