Bladeren bron

Merge remote-tracking branch 'origin/master'

赵越越 2 weken geleden
bovenliggende
commit
31d5289d17

+ 9 - 4
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/material/CostProjectTaskSurveyFdTemplateController.java

@@ -123,13 +123,13 @@ public class CostProjectTaskSurveyFdTemplateController {
         String filename = headList.stream().map(CostSurveyFdTemplateHeaders::getFieldName).collect(Collectors.joining(","));
         String filenids = headList.stream().map(CostSurveyFdTemplateHeaders::getId).collect(Collectors.joining(","));
 
-        // 按 orderNum 分组
-        Map<Integer, List<CostSurveyFdTemplateItems>> groupedByOrderNum = items.stream()
-                .collect(Collectors.groupingBy(CostSurveyFdTemplateItems::getOrderNum));
+        // 修复:按 rowid 分组,确保每个项目都能正确返回
+        Map<String, List<CostSurveyFdTemplateItems>> groupedByRowId = items.stream()
+                .collect(Collectors.groupingBy(CostSurveyFdTemplateItems::getRowid));
 
         List<Map<String, String>> result = new ArrayList<>();
 
-        for (Map.Entry<Integer, List<CostSurveyFdTemplateItems>> entry : groupedByOrderNum.entrySet()) {
+        for (Map.Entry<String, List<CostSurveyFdTemplateItems>> entry : groupedByRowId.entrySet()) {
             List<CostSurveyFdTemplateItems> group = entry.getValue();
             if (group.isEmpty()) continue;
 
@@ -178,6 +178,11 @@ public class CostProjectTaskSurveyFdTemplateController {
             result.add(keyValueMap);
         }
 
+        // 按 orderNum 排序结果,确保返回顺序正确
+        result.sort(Comparator.comparing(map ->
+            Integer.parseInt(map.getOrDefault("orderNum", "0"))
+        ));
+
         CostItemData data = new CostItemData();
         data.setFixedFields(filename);
         data.setItemlist(result);

+ 19 - 8
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/material/CostProjectTaskSurveyGenericController.java

@@ -3281,13 +3281,13 @@ public class CostProjectTaskSurveyGenericController {
         String filename = headList.stream().map(CostSurveyTemplateHeaders::getFieldName).collect(Collectors.joining(","));
         String filenids = headList.stream().map(CostSurveyTemplateHeaders::getId).collect(Collectors.joining(","));
 
-        // 按 orderNum 分组
-        Map<Integer, List<CostSurveyTemplateItems>> groupedByHeadersId = items.stream()
-                .collect(Collectors.groupingBy(CostSurveyTemplateItems::getOrderNum));
+        // 修复:按 rowid 分组,确保每个项目都能正确返回
+        Map<String, List<CostSurveyTemplateItems>> groupedByRowId = items.stream()
+                .collect(Collectors.groupingBy(CostSurveyTemplateItems::getRowid));
 
         List<Map<String, String>> result = new ArrayList<>();
 
-        for (Map.Entry<Integer, List<CostSurveyTemplateItems>> entry : groupedByHeadersId.entrySet()) {
+        for (Map.Entry<String, List<CostSurveyTemplateItems>> entry : groupedByRowId.entrySet()) {
             List<CostSurveyTemplateItems> group = entry.getValue();
             if (group.isEmpty()) continue;
 
@@ -3336,6 +3336,12 @@ public class CostProjectTaskSurveyGenericController {
 
             result.add(keyValueMap);
         }
+
+        // 按 orderNum 排序结果,确保返回顺序正确
+        result.sort(Comparator.comparing(map ->
+            Integer.parseInt(map.getOrDefault("orderNum", "0"))
+        ));
+
         CostItemData data = new CostItemData();
         data.setFixedFields(filename);
         data.setItemlist(result);
@@ -3347,13 +3353,13 @@ public class CostProjectTaskSurveyGenericController {
         String filename = headList.stream().map(CostSurveyFdTemplateHeaders::getFieldName).collect(Collectors.joining(","));
         String filenids = headList.stream().map(CostSurveyFdTemplateHeaders::getId).collect(Collectors.joining(","));
 
-        // 按 orderNum 分组
-        Map<Integer, List<CostSurveyFdTemplateItems>> groupedByOrderNum = items.stream()
-                .collect(Collectors.groupingBy(CostSurveyFdTemplateItems::getOrderNum));
+        // 修复:按 rowid 分组,确保每个项目都能正确返回
+        Map<String, List<CostSurveyFdTemplateItems>> groupedByRowId = items.stream()
+                .collect(Collectors.groupingBy(CostSurveyFdTemplateItems::getRowid));
 
         List<Map<String, String>> result = new ArrayList<>();
 
-        for (Map.Entry<Integer, List<CostSurveyFdTemplateItems>> entry : groupedByOrderNum.entrySet()) {
+        for (Map.Entry<String, List<CostSurveyFdTemplateItems>> entry : groupedByRowId.entrySet()) {
             List<CostSurveyFdTemplateItems> group = entry.getValue();
             if (group.isEmpty()) continue;
 
@@ -3402,6 +3408,11 @@ public class CostProjectTaskSurveyGenericController {
             result.add(keyValueMap);
         }
 
+        // 按 orderNum 排序结果,确保返回顺序正确
+        result.sort(Comparator.comparing(map ->
+            Integer.parseInt(map.getOrDefault("orderNum", "0"))
+        ));
+
         CostItemData data = new CostItemData();
         data.setFixedFields(filename);
         data.setItemlist(result);

+ 19 - 8
assistMg/src/main/java/com/hotent/surveyinfo/controller/CostSurveyFdTemplateItemsController.java

@@ -99,13 +99,13 @@ public class CostSurveyFdTemplateItemsController extends BaseController<CostSurv
 		String fileids = heardlist.stream().map(CostSurveyFdTemplateHeaders::getId).collect(Collectors.joining(","));
 
 
-		// 按 headersId 分组
-		Map<Integer, List<CostSurveyFdTemplateItems>> groupedByHeadersId = items.stream()
-				.collect(Collectors.groupingBy(CostSurveyFdTemplateItems::getOrderNum));
+		// 修复:按 rowid 分组,确保每个项目都能正确返回
+		Map<String, List<CostSurveyFdTemplateItems>> groupedByRowId = items.stream()
+				.collect(Collectors.groupingBy(CostSurveyFdTemplateItems::getRowid));
 
 		List<Map<String, String>> result = new ArrayList<>();
 
-		for (Map.Entry<Integer, List<CostSurveyFdTemplateItems>> entry : groupedByHeadersId.entrySet()) {
+		for (Map.Entry<String, List<CostSurveyFdTemplateItems>> entry : groupedByRowId.entrySet()) {
 			List<CostSurveyFdTemplateItems> group = entry.getValue();
 			if (group.isEmpty()) continue;
 
@@ -156,6 +156,12 @@ public class CostSurveyFdTemplateItemsController extends BaseController<CostSurv
 
 			result.add(keyValueMap);
 		}
+
+		// 按 orderNum 排序结果,确保返回顺序正确
+		result.sort(Comparator.comparing(map ->
+			Integer.parseInt(map.getOrDefault("orderNum", "0"))
+		));
+
 		CostItemData data = new CostItemData();
 		data.setFixedFields(filename);
 		data.setItemlist(result);
@@ -249,13 +255,13 @@ public class CostSurveyFdTemplateItemsController extends BaseController<CostSurv
 				.map(CostSurveyFdTemplateHeaders::getId)
 				.collect(Collectors.joining(","));
 
-		// 按 orderNum 分组
-		Map<Integer, List<CostSurveyFdTemplateItems>> groupedByHeadersId = items.stream()
-				.collect(Collectors.groupingBy(CostSurveyFdTemplateItems::getOrderNum));
+		// 修复:按 rowid 分组,确保每个项目都能正确返回
+		Map<String, List<CostSurveyFdTemplateItems>> groupedByRowId = items.stream()
+				.collect(Collectors.groupingBy(CostSurveyFdTemplateItems::getRowid));
 
 		List<Map<String, String>> result = new ArrayList<>();
 
-		for (Map.Entry<Integer, List<CostSurveyFdTemplateItems>> entry : groupedByHeadersId.entrySet()) {
+		for (Map.Entry<String, List<CostSurveyFdTemplateItems>> entry : groupedByRowId.entrySet()) {
 			List<CostSurveyFdTemplateItems> group = entry.getValue();
 			if (group.isEmpty()) continue;
 
@@ -305,6 +311,11 @@ public class CostSurveyFdTemplateItemsController extends BaseController<CostSurv
 			result.add(keyValueMap);
 		}
 
+		// 按 orderNum 排序结果,确保返回顺序正确
+		result.sort(Comparator.comparing(map ->
+			Integer.parseInt(map.getOrDefault("orderNum", "0"))
+		));
+
 		CostItemData data = new CostItemData();
 		data.setFixedFields(filename);
 		data.setItemlist(result);

+ 18 - 8
assistMg/src/main/java/com/hotent/surveyinfo/controller/CostSurveyTemplateItemsController.java

@@ -118,14 +118,14 @@ public class CostSurveyTemplateItemsController extends BaseController<CostSurvey
 		String fileids = headlist.stream().map(CostSurveyTemplateHeaders::getId).collect(Collectors.joining(","));
 
 
-		// 按 headersId 分组
-		Map<Integer, List<CostSurveyTemplateItems>> groupedByHeadersId = items.stream()
-				.collect(Collectors.groupingBy(CostSurveyTemplateItems::getOrderNum));
+		// 修复:按 rowid 分组,确保每个项目都能正确返回
+		Map<String, List<CostSurveyTemplateItems>> groupedByRowId = items.stream()
+				.collect(Collectors.groupingBy(CostSurveyTemplateItems::getRowid));
 
 		List<Map<String, String>> result = new ArrayList<>();
 
 
-		for (Map.Entry<Integer, List<CostSurveyTemplateItems>> entry : groupedByHeadersId.entrySet()) {
+		for (Map.Entry<String, List<CostSurveyTemplateItems>> entry : groupedByRowId.entrySet()) {
 			List<CostSurveyTemplateItems> group = entry.getValue();
 			if (group.isEmpty()) continue;
 
@@ -183,6 +183,11 @@ public class CostSurveyTemplateItemsController extends BaseController<CostSurvey
 			result.add(keyValueMap);
 		}
 
+		// 按 orderNum 排序结果,确保返回顺序正确
+		result.sort(Comparator.comparing(map ->
+			Integer.parseInt(map.getOrDefault("orderNum", "0"))
+		));
+
 
 		CostItemData data = new CostItemData();
 		data.setFixedFields(filename); // 存储动态字段名
@@ -279,13 +284,13 @@ public class CostSurveyTemplateItemsController extends BaseController<CostSurvey
             String filename = headlist.stream().map(CostSurveyTemplateHeaders::getFieldName).collect(Collectors.joining(","));
             String filenids = headlist.stream().map(CostSurveyTemplateHeaders::getId).collect(Collectors.joining(","));
 
-            // 按 headersId 分组
-            Map<Integer, List<CostSurveyTemplateItems>> groupedByHeadersId = items.stream()
-                    .collect(Collectors.groupingBy(CostSurveyTemplateItems::getOrderNum));
+            // 修复:按 rowid 分组,确保每个项目都能正确返回
+            Map<String, List<CostSurveyTemplateItems>> groupedByRowId = items.stream()
+                    .collect(Collectors.groupingBy(CostSurveyTemplateItems::getRowid));
 
             List<Map<String, String>> result = new ArrayList<>();
 
-            for (Map.Entry<Integer, List<CostSurveyTemplateItems>> entry : groupedByHeadersId.entrySet()) {
+            for (Map.Entry<String, List<CostSurveyTemplateItems>> entry : groupedByRowId.entrySet()) {
                 List<CostSurveyTemplateItems> group = entry.getValue();
                 if (group.isEmpty()) continue;
 
@@ -335,6 +340,11 @@ public class CostSurveyTemplateItemsController extends BaseController<CostSurvey
 
                 result.add(keyValueMap);
             }
+
+            // 按 orderNum 排序结果,确保返回顺序正确
+            result.sort(Comparator.comparing(map ->
+                Integer.parseInt(map.getOrDefault("orderNum", "0"))
+            ));
             CostItemData data = new CostItemData();
             data.setFixedFields(filename); // 存储动态字段名
             data.setItemlist(result);

+ 11 - 4
assistMg/src/main/java/com/hotent/surveyinfo/controller/CostVerifyTemplateController.java

@@ -385,12 +385,19 @@ public class CostVerifyTemplateController extends BaseController<CostVerifyTempl
 		itemsList.sort(Comparator.comparing(CostVerifyTemplateItems::getOrderNum,
 				Comparator.nullsLast(Comparator.naturalOrder())));
 
-		// 创建数据行(按orderNum分组)
-		Map<Integer, List<CostVerifyTemplateItems>> itemsByOrder = itemsList.stream()
-				.collect(Collectors.groupingBy(CostVerifyTemplateItems::getOrderNum));
+		// 修复:按 rowid 分组,确保每个项目都能正确导出
+		Map<String, List<CostVerifyTemplateItems>> itemsByRowId = itemsList.stream()
+				.collect(Collectors.groupingBy(CostVerifyTemplateItems::getRowid));
+
+		// 将分组后的数据按 orderNum 排序
+		List<Map.Entry<String, List<CostVerifyTemplateItems>>> sortedEntries = new ArrayList<>(itemsByRowId.entrySet());
+		sortedEntries.sort(Comparator.comparing(entry -> {
+			List<CostVerifyTemplateItems> items = entry.getValue();
+			return items.isEmpty() ? Integer.MAX_VALUE : items.get(0).getOrderNum();
+		}));
 
 		int rowNum = 1;
-		for (Map.Entry<Integer, List<CostVerifyTemplateItems>> entry : itemsByOrder.entrySet()) {
+		for (Map.Entry<String, List<CostVerifyTemplateItems>> entry : sortedEntries) {
 			Row dataRow = sheet.createRow(rowNum++);
 
 			for (int i = 0; i < headersList.size(); i++) {

+ 20 - 8
assistMg/src/main/java/com/hotent/surveyinfo/controller/CostVerifyTemplateItemsController.java

@@ -106,13 +106,13 @@ public class CostVerifyTemplateItemsController extends BaseController<CostVerify
 		String filename = heardlist.stream().map(CostVerifyTemplateHeaders::getFieldName).collect(Collectors.joining(","));
 		String fileids = heardlist.stream().map(CostVerifyTemplateHeaders::getId).collect(Collectors.joining(","));
 
-		// 按 headersId 分组
-		Map<Integer, List<CostVerifyTemplateItems>> groupedByHeadersId = items.stream()
-				.collect(Collectors.groupingBy(CostVerifyTemplateItems::getOrderNum));
+		// 修复:按 rowid 分组,确保每个项目都能正确返回
+		Map<String, List<CostVerifyTemplateItems>> groupedByRowId = items.stream()
+				.collect(Collectors.groupingBy(CostVerifyTemplateItems::getRowid));
 
 		List<Map<String, String>> result = new ArrayList<>();
 
-		for (Map.Entry<Integer, List<CostVerifyTemplateItems>> entry : groupedByHeadersId.entrySet()) {
+		for (Map.Entry<String, List<CostVerifyTemplateItems>> entry : groupedByRowId.entrySet()) {
 			List<CostVerifyTemplateItems> group = entry.getValue();
 			if (group.isEmpty()) continue;
 
@@ -173,6 +173,12 @@ public class CostVerifyTemplateItemsController extends BaseController<CostVerify
 
 			result.add(keyValueMap);
 		}
+
+		// 按 orderNum 排序结果,确保返回顺序正确
+		result.sort(Comparator.comparing(map ->
+			Integer.parseInt(map.getOrDefault("orderNum", "0"))
+		));
+
 		CostItemData data = new CostItemData();
 		data.setFixedFields(filename);
 		data.setItemlist(result);
@@ -255,13 +261,14 @@ public class CostVerifyTemplateItemsController extends BaseController<CostVerify
 		String fileids = heardlist.stream()
 				.map(CostVerifyTemplateHeaders::getId)
 				.collect(Collectors.joining(","));
-		// 按 orderNum 分组
-		Map<Integer, List<CostVerifyTemplateItems>> groupedByHeadersId = items.stream()
-				.collect(Collectors.groupingBy(CostVerifyTemplateItems::getOrderNum));
+
+		// 修复:按 rowid 分组,确保每个项目都能正确返回
+		Map<String, List<CostVerifyTemplateItems>> groupedByRowId = items.stream()
+				.collect(Collectors.groupingBy(CostVerifyTemplateItems::getRowid));
 
 		List<Map<String, String>> result = new ArrayList<>();
 
-		for (Map.Entry<Integer, List<CostVerifyTemplateItems>> entry : groupedByHeadersId.entrySet()) {
+		for (Map.Entry<String, List<CostVerifyTemplateItems>> entry : groupedByRowId.entrySet()) {
 			List<CostVerifyTemplateItems> group = entry.getValue();
 			if (group.isEmpty()) continue;
 
@@ -314,6 +321,11 @@ public class CostVerifyTemplateItemsController extends BaseController<CostVerify
 			result.add(keyValueMap);
 		}
 
+		// 按 orderNum 排序结果,确保返回顺序正确
+		result.sort(Comparator.comparing(map ->
+			Integer.parseInt(map.getOrDefault("orderNum", "0"))
+		));
+
 		CostItemData data = new CostItemData();
 		data.setFixedFields(filename);
 		data.setItemlist(result);