Parcourir la source

fit:上传时间维护

zzw il y a 3 semaines
Parent
commit
3649f33eb1

+ 3 - 0
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/material/CostProjectTaskSurveyFdTemplateController.java

@@ -35,6 +35,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import java.io.InputStream;
 import java.net.URLEncoder;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -240,6 +241,7 @@ public class CostProjectTaskSurveyFdTemplateController {
             CostProjectTaskMaterial material = costProjectTaskMaterialManager.getById(materialId);
             if (material != null) {
                 material.setIsUpload("1");
+                material.setUploadTime(LocalDateTime.now());
                 costProjectTaskMaterialManager.updateById(material);
             }
         }
@@ -603,6 +605,7 @@ public class CostProjectTaskSurveyFdTemplateController {
             uploadDataManager.saveData(dataList);
             CostProjectTaskMaterial material = costProjectTaskMaterialManager.getById(materialId);
             material.setIsUpload("1");
+            material.setUploadTime(LocalDateTime.now());
             costProjectTaskMaterialManager.updateById(material);
 
             return CommonResult.<String>ok().message("导入成功,共导入 " + dataRowCount + " 行数据");

+ 31 - 9
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/material/CostProjectTaskSurveyGenericController.java

@@ -45,6 +45,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.InputStream;
 import java.net.URLEncoder;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -331,6 +332,7 @@ public class CostProjectTaskSurveyGenericController {
             CostProjectTaskMaterial material = costProjectTaskMaterialManager.getById(refId);
             if (material != null) {
                 material.setIsUpload("1");
+                material.setUploadTime(LocalDateTime.now());
                 costProjectTaskMaterialManager.updateById(material);
             }
         }
@@ -2631,7 +2633,7 @@ public class CostProjectTaskSurveyGenericController {
     }
 
     /**
-     * 按父子关系排序rowId
+     * 按父子关系排序rowId(参考核定表实现,按 orderNum 排序)
      */
     private List<String> sortRowIdsByParentChild(Map<String, List<CostSurveyTemplateItems>> itemsByRowId) {
         List<String> result = new ArrayList<>();
@@ -2647,40 +2649,60 @@ public class CostProjectTaskSurveyGenericController {
             }
         }
 
-        // 找出所有根节点(parentid为空或不存在的)
+        // 找出所有根节点(parentid为空或不存在的),按 orderNum 排序
         Set<String> allRowIds = new HashSet<>(itemsByRowId.keySet());
         List<String> rootRowIds = allRowIds.stream()
                 .filter(rowId -> {
                     String parentId = rowIdToParentId.get(rowId);
                     return StringUtil.isEmpty(parentId) || !allRowIds.contains(parentId);
                 })
-                .sorted()
+                .sorted((id1, id2) -> {
+                    List<CostSurveyTemplateItems> items1 = itemsByRowId.get(id1);
+                    List<CostSurveyTemplateItems> items2 = itemsByRowId.get(id2);
+                    if (items1 == null || items1.isEmpty()) return 1;
+                    if (items2 == null || items2.isEmpty()) return -1;
+                    Integer order1 = items1.get(0).getOrderNum();
+                    Integer order2 = items2.get(0).getOrderNum();
+                    if (order1 == null) return 1;
+                    if (order2 == null) return -1;
+                    return order1.compareTo(order2);
+                })
                 .collect(Collectors.toList());
 
         // 递归添加节点及其子节点
         for (String rootRowId : rootRowIds) {
-            addRowIdWithChildren(rootRowId, rowIdToParentId, allRowIds, result);
+            addRowIdWithChildren(rootRowId, rowIdToParentId, allRowIds, result, itemsByRowId);
         }
 
         return result;
     }
 
     /**
-     * 递归添加rowId及其所有子节点
+     * 递归添加rowId及其所有子节点(参考核定表实现,按 orderNum 排序)
      */
     private void addRowIdWithChildren(String rowId, Map<String, String> rowIdToParentId,
-                                      Set<String> allRowIds, List<String> result) {
+                                      Set<String> allRowIds, List<String> result, Map<String, List<CostSurveyTemplateItems>> itemsByRowId) {
         result.add(rowId);
 
-        // 找出所有子节点
+        // 找出所有子节点,按 orderNum 排序
         List<String> children = allRowIds.stream()
                 .filter(id -> rowId.equals(rowIdToParentId.get(id)))
-                .sorted()
+                .sorted((id1, id2) -> {
+                    List<CostSurveyTemplateItems> items1 = itemsByRowId.get(id1);
+                    List<CostSurveyTemplateItems> items2 = itemsByRowId.get(id2);
+                    if (items1 == null || items1.isEmpty()) return 1;
+                    if (items2 == null || items2.isEmpty()) return -1;
+                    Integer order1 = items1.get(0).getOrderNum();
+                    Integer order2 = items2.get(0).getOrderNum();
+                    if (order1 == null) return 1;
+                    if (order2 == null) return -1;
+                    return order1.compareTo(order2);
+                })
                 .collect(Collectors.toList());
 
         // 递归处理子节点
         for (String childRowId : children) {
-            addRowIdWithChildren(childRowId, rowIdToParentId, allRowIds, result);
+            addRowIdWithChildren(childRowId, rowIdToParentId, allRowIds, result, itemsByRowId);
         }
     }
 

+ 3 - 0
assistMg/src/main/java/com/hotent/project/controller/CostProjectTaskMaterialController.java

@@ -7,6 +7,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
+
+import java.time.LocalDateTime;
 import java.util.List;
 import com.hotent.base.model.CommonResult;
 import com.hotent.base.util.StringUtil;
@@ -55,6 +57,7 @@ public class CostProjectTaskMaterialController extends BaseController<CostProjec
 		String msg = StringUtil.isEmpty(costProjectTaskMaterial.getId()) ? "添加任务定制-报送资料要求成功" : "更新任务定制-报送资料要求成功";
 		if(StringUtils.isNotBlank(costProjectTaskMaterial.getFileUrl())) {
 			costProjectTaskMaterial.setIsUpload("1");
+			costProjectTaskMaterial.setUploadTime(LocalDateTime.now());
 		}
 		baseService.createOrUpdate(costProjectTaskMaterial);
 		return CommonResult.<String>ok().message(msg);

+ 14 - 1
assistMg/src/main/java/com/hotent/project/model/CostProjectTaskMaterial.java

@@ -118,6 +118,11 @@ public class CostProjectTaskMaterial extends BaseModel<CostProjectTaskMaterial>
     @TableField("is_upload")
     private String isUpload;
 
+    @ApiModelProperty(value = "上传时间")
+    @TableField("upload_time")
+    @JsonProperty("uploadTime")
+    private LocalDateTime uploadTime;
+
     @ApiModelProperty(value = "文件地址")
     @JsonProperty("fileUrl")
     @TableField("file_url")
@@ -294,7 +299,15 @@ public class CostProjectTaskMaterial extends BaseModel<CostProjectTaskMaterial>
 		this.informationTypeName = informationTypeName;
 	}
 
-	@Override
+    public LocalDateTime getUploadTime() {
+        return uploadTime;
+    }
+
+    public void setUploadTime(LocalDateTime uploadTime) {
+        this.uploadTime = uploadTime;
+    }
+
+    @Override
     public String toString() {
         return "CostProjectTaskMaterial{" +
             "id=" + id +