From c0efb2e8358f4e7ee0774c340afd453c3d0c2471 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 10 六月 2025 17:19:03 +0800
Subject: [PATCH] 1.待入库煤质维护入正式库 2.电子档案tree

---
 main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java                     |   15 +
 main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java                    |    5 
 main-business/src/main/resources/db/migration/postgresql/V20250610161313__create_table_archive.sql            |   29 ++
 main-business/src/main/java/com/ruoyi/business/dto/TreeDto.java                                               |    8 
 basic-server/src/main/java/com/ruoyi/basic/vo/CoalFieldVo.java                                                |   12 +
 main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java                           |    2 
 main-business/src/main/java/com/ruoyi/business/vo/TreeVo.java                                                 |   14 +
 basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java                                              |    5 
 basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java                             |   41 ----
 main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java                                            |   10 +
 basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java                                |   17 -
 main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql |    2 
 basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java                                       |    3 
 main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java                                  |    5 
 main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java                          |    2 
 main-business/src/main/resources/db/migration/postgresql/V20250610161314__create_table_file.sql               |   37 +++
 basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java                                 |    9 
 basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java                                               |    6 
 basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java                              |    4 
 basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java                              |   31 +++
 main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java                                   |    4 
 basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java                                      |    3 
 basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java                                              |   13 +
 basic-server/src/main/java/com/ruoyi/basic/dto/CoalInfoDto.java                                               |    2 
 main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java              |    7 
 main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql  |    2 
 main-business/src/main/resources/db/migration/postgresql/V20250610161312__create_table_tree.sql               |   27 ++
 main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java                  |   79 +++++++
 basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java                                              |    2 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/MyBaseEntity.java                                     |    1 
 main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java                 |   77 +++++++
 /dev/null                                                                                                     |   35 ---
 basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java                             |    4 
 main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java                                   |   22 ++
 basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java                                               |    6 
 main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java                                  |   11 
 36 files changed, 419 insertions(+), 133 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java
index 363eb06..9cee78e 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java
@@ -5,6 +5,7 @@
 import com.ruoyi.basic.dto.CoalPlanDto;
 import com.ruoyi.basic.entity.CoalPlan;
 import com.ruoyi.basic.service.CoalPlanService;
+import com.ruoyi.basic.vo.CoalFieldVo;
 import com.ruoyi.common.core.domain.R;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
@@ -45,6 +46,14 @@
     }
 
     /**
+     * 鏍规嵁id鏌ヨ鐓よ川鏂规鏌ヨ 杩斿洖
+     */
+    @GetMapping("/coalPlanById")
+    public R<List<CoalFieldVo>> coalPlanById(CoalPlanDto coalPlanDto) {
+        return R.ok(coalPlanService.selectCoalPlanById(coalPlanDto.getId()));
+    }
+
+    /**
      * 鐓よ川鏂规鏂板淇敼
      */
     @PostMapping("/addOrEditCoalPlan")
diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalQualityController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/CoalQualityController.java
deleted file mode 100644
index 4e15628..0000000
--- a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalQualityController.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.ruoyi.basic.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.basic.dto.CoalQualityDto;
-import com.ruoyi.basic.entity.CoalQuality;
-import com.ruoyi.basic.service.CoalQualityService;
-import com.ruoyi.common.core.domain.R;
-import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * <p>
- * 鐓よ川淇℃伅琛紝璁板綍鐓ょ偔璐ㄩ噺妫�娴嬬浉鍏虫暟鎹� 鍓嶇鎺у埗鍣�
- * </p>
- *
- * @author ruoyi
- * @since 2025-06-03
- */
-
-@RestController
-@AllArgsConstructor
-@RequestMapping("/coalQuality")
-public class CoalQualityController {
-
-    private CoalQualityService coalQualityService;
-
-    /**
-     * 鏌ヨ
-     */
-    @GetMapping("/list")
-    public R<IPage<CoalQuality>> list(Page page, CoalQualityDto coalQualityDto) {
-        IPage<CoalQuality> list = coalQualityService.selectCoalQualityList(page,coalQualityDto);
-        return R.ok(list);
-    }
-
-    /**
-     * 鏂板淇敼
-     */
-    @PostMapping("/addOrEditCoalQuality")
-    public R addOrEditCoalQuality(@RequestBody CoalQualityDto coalQualityDto) {
-        return R.ok(coalQualityService.addOrEditCoalQuality(coalQualityDto));
-    }
-
-    /**
-     * 鍒犻櫎
-     */
-    @DeleteMapping("/delCoalQuality")
-    public R remove(@RequestBody Long[] ids) {
-        return R.ok(coalQualityService.delCoalQualityByIds(ids));
-    }
-}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java
index 0a30a4c..de36558 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java
@@ -34,21 +34,4 @@
         return R.ok(list);
     }
 
-
-    /**
-     * 鐓よ川鏂规鍊兼柊澧炰慨鏀�
-     */
-    @PostMapping("/addOrEditCoalValue")
-    public R addOrEditCoalValue(@RequestBody CoalValueDto coalValueDto) {
-        return R.ok(coalValueService.addOrEditCoalValue(coalValueDto));
-    }
-
-    /**
-     * 鐓よ川鏂规瀛楁鍒犻櫎
-     */
-    @DeleteMapping("/delCoalValue")
-    public R remove(@RequestBody Long[] ids) {
-        return R.ok(coalValueService.delCoalValueByIds(ids));
-    }
-
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java
index 6defeca..6824305 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java
@@ -5,4 +5,6 @@
 
 @Data
 public class CoalFieldDto extends CoalField {
+
+    private String searchAll;
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalInfoDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalInfoDto.java
index 89da04b..2217739 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalInfoDto.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalInfoDto.java
@@ -5,4 +5,6 @@
 
 @Data
 public class CoalInfoDto extends CoalInfo {
+
+    private String searchAll;
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java
index 7282531..27f0302 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java
@@ -3,6 +3,12 @@
 import com.ruoyi.basic.entity.CoalPlan;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class CoalPlanDto extends CoalPlan {
+
+    private List<String> fields;
+
+    private String searchAll;
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalQualityDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalQualityDto.java
deleted file mode 100644
index ea6ff9a..0000000
--- a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalQualityDto.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.ruoyi.basic.dto;
-
-import com.ruoyi.basic.entity.CoalQuality;
-import lombok.Data;
-
-@Data
-public class CoalQualityDto extends CoalQuality {
-}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java
index 567a88b..6897630 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java
@@ -33,11 +33,6 @@
     private String fieldName;
 
     /**
-     * 瀛楁鍚嶆暟瀛�
-     */
-    @TableField(value = "field_name")
-    private String fieldNumber;
-    /**
      * 瀛楁鎻忚堪
      */
     @TableField(value = "field_description")
diff --git a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java
index 0c097ff..958edbc 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java
@@ -27,6 +27,12 @@
     @TableField(value = "plan")
     private String plan;
     /**
+     * 鐓よ川鏂规瀛楁id
+     */
+    @TableField(value = "field_ids")
+    private String fieldIds;
+
+    /**
      * 鐓よ川鏂规瀛楁
      */
     @TableField(value = "coal_fields")
diff --git a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalQuality.java b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalQuality.java
deleted file mode 100644
index b3c1fd5..0000000
--- a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalQuality.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.ruoyi.basic.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.ruoyi.common.core.domain.MyBaseEntity;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-/**
- * 鐓よ川淇℃伅琛紝璁板綍鐓ょ偔璐ㄩ噺妫�娴嬬浉鍏虫暟鎹� 瀹炰綋绫�
- *
- * @author ruoyi
- * @date 2025-06-03
- */
-@Data
-@TableName("coal_quality")
-public class CoalQuality extends MyBaseEntity {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 涓婚敭ID
-     */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Long id;
-    /**
-     * 鐓ょ绫诲瀷id
-     */
-    @TableField(value = "coal_id")
-    private Long coalId;
-    /**
-     * 鐓ょ绫诲瀷
-     */
-    @TableField(value = "coal")
-    private String coal;
-    /**
-     * 鍏ㄦ按鍚噺鐧惧垎姣� (%)
-     */
-    @TableField(value = "total_moisture")
-    private BigDecimal totalMoisture;
-    /**
-     * 鍒嗘瀽姘村惈閲忕櫨鍒嗘瘮 (%)
-     */
-    @TableField(value = "analysis_moisture")
-    private BigDecimal analysisMoisture;
-    /**
-     * 鎸ュ彂鍒嗙櫨鍒嗘瘮 (%)
-     */
-    @TableField(value = "volatile_matter")
-    private BigDecimal volatileMatter;
-    /**
-     * 鍥哄畾纰崇櫨鍒嗘瘮 (%)
-     */
-    @TableField(value = "fixed_carbon")
-    private BigDecimal fixedCarbon;
-    /**
-     * 浣庝綅鍙戠儹閲忥紙鍗曚綅锛氬崈鍗�/鍗冨厠锛�
-     */
-    @TableField(value = "lower_heat_value")
-    private BigDecimal lowerHeatValue;
-    /**
-     * 楂樹綅鍙戠儹閲忥紙鍗曚綅锛氬崈鍗�/鍗冨厠锛�
-     */
-    @TableField(value = "higher_heat_value")
-    private BigDecimal higherHeatValue;
-    /**
-     * 鐏板垎鐧惧垎姣� (%)
-     */
-    @TableField(value = "ash_content")
-    private BigDecimal ashContent;
-    /**
-     * 纭惈閲忕櫨鍒嗘瘮 (%)
-     */
-    @TableField(value = "sulfur_content")
-    private BigDecimal sulfurContent;
-}
\ No newline at end of file
diff --git a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java
index 84b2a8c..f52bd3a 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java
@@ -1,8 +1,13 @@
 package com.ruoyi.basic.entity;
 
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.deser.std.NumberDeserializers;
 import com.ruoyi.common.core.domain.MyBaseEntity;
+import lombok.Data;
 
 /**
  * 鐓よ川鏂规瀛楁鍊� 瀹炰綋绫�
@@ -12,7 +17,8 @@
  */
 @Data
 @TableName("coal_value")
-public class CoalValue extends MyBaseEntity {
+public class
+CoalValue extends MyBaseEntity {
 
     private static final long serialVersionUID = 1L;
 
@@ -20,6 +26,7 @@
      * 涓婚敭ID
      */
     @TableId(value = "id", type = IdType.AUTO)
+    @JsonDeserialize(using = NumberDeserializers.LongDeserializer.class)
     private Long id;
 
     /**
diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/CoalQualityMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/CoalQualityMapper.java
deleted file mode 100644
index 2c973f4..0000000
--- a/basic-server/src/main/java/com/ruoyi/basic/mapper/CoalQualityMapper.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.ruoyi.basic.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.basic.entity.CoalQuality;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * <p>
- * 鐓よ川淇℃伅琛紝璁板綍鐓ょ偔璐ㄩ噺妫�娴嬬浉鍏虫暟鎹� Mapper 鎺ュ彛
- * </p>
- *
- * @author ruoyi
- * @since 2025-06-03
- */
-@Mapper
-public interface CoalQualityMapper extends BaseMapper<CoalQuality> {
-
-}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java b/basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java
index 0ff8f37..a52f24b 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java
@@ -5,6 +5,7 @@
 import com.ruoyi.basic.dto.CoalPlanDto;
 import com.ruoyi.basic.entity.CoalPlan;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.basic.vo.CoalFieldVo;
 
 import java.util.List;
 
@@ -25,4 +26,6 @@
     int delCoalPlanByIds(Long[] ids);
 
     List<CoalPlan> selectAllList();
+
+    List<CoalFieldVo> selectCoalPlanById(Long id);
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/CoalQualityService.java b/basic-server/src/main/java/com/ruoyi/basic/service/CoalQualityService.java
deleted file mode 100644
index 4988504..0000000
--- a/basic-server/src/main/java/com/ruoyi/basic/service/CoalQualityService.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.ruoyi.basic.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.basic.dto.CoalQualityDto;
-import com.ruoyi.basic.entity.CoalQuality;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- * 鐓よ川淇℃伅琛紝璁板綍鐓ょ偔璐ㄩ噺妫�娴嬬浉鍏虫暟鎹� 鏈嶅姟绫�
- * </p>
- *
- * @author ruoyi
- * @since 2025-06-03
- */
-public interface CoalQualityService extends IService<CoalQuality> {
-
-    IPage<CoalQuality> selectCoalQualityList(Page page, CoalQualityDto coalQualityDto);
-
-    int addOrEditCoalQuality(CoalQualityDto coalQualityDto);
-
-    int delCoalQualityByIds(Long[] ids);
-}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java b/basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java
index 205c205..b42eff2 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java
@@ -18,7 +18,4 @@
 
     IPage<CoalValue> selectCoalFieldList(Page page, CoalValueDto coalValueDto);
 
-    int addOrEditCoalValue(CoalValueDto coalValueDto);
-
-    int delCoalValueByIds(Long[] ids);
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java
index e01e082..67a6c5e 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java
@@ -39,8 +39,8 @@
     @Override
     public IPage<CoalField> selectCoalFieldList(Page page, CoalFieldDto coalFieldDto) {
         LambdaQueryWrapper<CoalField> queryWrapper = new LambdaQueryWrapper<>();
-        if (StringUtils.hasText(coalFieldDto.getFieldName())) {
-            queryWrapper.like(CoalField::getFieldName, coalFieldDto.getFieldName());
+        if (StringUtils.hasText(coalFieldDto.getSearchAll())) {
+            queryWrapper.like(CoalField::getFieldName, coalFieldDto.getSearchAll());
         }
         queryWrapper.orderByDesc(CoalField::getCreateTime);
         return coalFieldMapper.selectPage(page, queryWrapper);
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java
index a4ffd27..750e6b1 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java
@@ -35,8 +35,8 @@
     @Override
     public IPage<CoalInfo> selectCoalInfoList(Page page, CoalInfoDto coalInfoDto) {
         LambdaQueryWrapper<CoalInfo> queryWrapper = new LambdaQueryWrapper<>();
-        if (StringUtils.hasText(coalInfoDto.getCoal())) {
-            queryWrapper.like(CoalInfo::getCoal,coalInfoDto.getCoal());
+        if (StringUtils.hasText(coalInfoDto.getSearchAll())) {
+            queryWrapper.like(CoalInfo::getCoal,coalInfoDto.getSearchAll());
         }
         queryWrapper.orderByDesc(CoalInfo::getCreateTime);
         return coalInfoMapper.selectPage(page, queryWrapper);
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java
index 7c6e7f5..5aa8eaa 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java
@@ -6,15 +6,21 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.basic.dto.CoalPlanDto;
+import com.ruoyi.basic.entity.CoalField;
 import com.ruoyi.basic.entity.CoalPlan;
+import com.ruoyi.basic.mapper.CoalFieldMapper;
 import com.ruoyi.basic.mapper.CoalPlanMapper;
 import com.ruoyi.basic.service.CoalPlanService;
+import com.ruoyi.basic.vo.CoalFieldVo;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -30,10 +36,15 @@
 
     private final CoalPlanMapper coalPlanMapper;
 
+    private final CoalFieldMapper coalFieldMapper;
+
     @Override
     public IPage<CoalPlan> selectCoalFieldList(Page page, CoalPlanDto coalPlanDto) {
         LambdaQueryWrapper<CoalPlan> queryWrapper = new LambdaQueryWrapper<>();
-        return coalPlanMapper.selectPage(page,queryWrapper);
+        if (StringUtils.hasText(coalPlanDto.getSearchAll())){
+            queryWrapper.like(CoalPlan::getPlan,coalPlanDto.getSearchAll());
+        }
+        return coalPlanMapper.selectPage(page, queryWrapper);
     }
 
     @Override
@@ -65,4 +76,22 @@
     public List<CoalPlan> selectAllList() {
         return coalPlanMapper.selectList(null);
     }
+
+    @Override
+    public List<CoalFieldVo> selectCoalPlanById(Long id) {
+        CoalPlan coalPlan = coalPlanMapper.selectById(id);
+        LambdaQueryWrapper<CoalField> coalFieldLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        List<Long> ids = Arrays.stream(coalPlan.getFieldIds().split(",")).map(String::trim).map(Long::parseLong).collect(Collectors.toList());
+        coalFieldLambdaQueryWrapper.in(CoalField::getId, ids);
+        List<CoalField> coalFields = coalFieldMapper.selectList(coalFieldLambdaQueryWrapper);
+        return coalFields.stream()
+                .map(coalField -> {
+                    CoalFieldVo dto = new CoalFieldVo();
+                    dto.setId(coalField.getId());
+                    dto.setFields(coalField.getFields());
+                    dto.setFieldName(coalField.getFieldName());
+                    return dto;
+                })
+                .collect(Collectors.toList());
+    }
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalQualityServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalQualityServiceImpl.java
deleted file mode 100644
index 25ba17b..0000000
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalQualityServiceImpl.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.ruoyi.basic.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.basic.dto.CoalQualityDto;
-import com.ruoyi.basic.entity.CoalQuality;
-import com.ruoyi.basic.mapper.CoalQualityMapper;
-import com.ruoyi.basic.service.CoalQualityService;
-import com.ruoyi.common.utils.bean.BeanUtils;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Service;
-
-import java.util.Objects;
-
-/**
- * <p>
- * 鐓よ川淇℃伅琛紝璁板綍鐓ょ偔璐ㄩ噺妫�娴嬬浉鍏虫暟鎹� 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author ruoyi
- * @since 2025-06-03
- */
-@Service
-@RequiredArgsConstructor
-public class CoalQualityServiceImpl extends ServiceImpl<CoalQualityMapper, CoalQuality> implements CoalQualityService {
-
-    private final CoalQualityMapper coalQualityMapper;
-
-    @Override
-    public IPage<CoalQuality> selectCoalQualityList(Page page, CoalQualityDto coalQualityDto) {
-        LambdaQueryWrapper<CoalQuality> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.orderByDesc(CoalQuality::getCreateTime);
-        return coalQualityMapper.selectPage(page, queryWrapper);
-    }
-
-    @Override
-    public int addOrEditCoalQuality(CoalQualityDto coalQualityDto) {
-        CoalQuality coalQuality = new CoalQuality();
-        BeanUtils.copyProperties(coalQualityDto, coalQuality);
-        if (Objects.isNull(coalQualityDto.getId())) {
-            return coalQualityMapper.insert(coalQuality);
-        } else {
-            return coalQualityMapper.updateById(coalQuality);
-        }
-    }
-
-    @Override
-    public int delCoalQualityByIds(Long[] ids) {
-        // 妫�鏌ュ弬鏁�
-        if (ids == null || ids.length == 0) {
-            return 0;
-        }
-        // 鏋勯�犳洿鏂版潯浠�
-        UpdateWrapper<CoalQuality> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.in("id", ids)
-                .set("deleted", 1);  // 璁剧疆 deleted 涓� 1 琛ㄧず宸插垹闄�
-        // 鎵ц鎵归噺閫昏緫鍒犻櫎
-        return coalQualityMapper.update(null, updateWrapper);
-    }
-}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java
index b5e4eb4..e922076 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java
@@ -5,18 +5,11 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.basic.dto.CoalValueDto;
-import com.ruoyi.basic.entity.CoalField;
 import com.ruoyi.basic.entity.CoalValue;
-import com.ruoyi.basic.mapper.CoalFieldMapper;
 import com.ruoyi.basic.mapper.CoalValueMapper;
 import com.ruoyi.basic.service.CoalValueService;
-import com.ruoyi.common.utils.bean.BeanUtils;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
 
 /**
  * <p>
@@ -32,43 +25,9 @@
 
     private final CoalValueMapper coalValueMapper;
 
-    private final CoalFieldMapper coalFieldMapper;
-
     @Override
     public IPage<CoalValue> selectCoalFieldList(Page page, CoalValueDto coalValueDto) {
         LambdaQueryWrapper<CoalValue> queryWrapper = new LambdaQueryWrapper<>();
         return coalValueMapper.selectPage(page, queryWrapper);
-    }
-
-    @Override
-    public int addOrEditCoalValue(CoalValueDto coalValueDto) {
-        CoalValue coalValue = new CoalValue();
-        BeanUtils.copyProperties(coalValueDto, coalValue);
-        coalValue.setPlanId(coalValueDto.getPlanId());
-        int i = 0;
-        if (Objects.isNull(coalValueDto.getId())) {
-            List<Map<String, String>> fieldValue = coalValueDto.getFieldValue();
-            for (Map<String, String> field : fieldValue) {
-                for (Map.Entry<String, String> entry : field.entrySet()) {
-                    String key = entry.getKey();   // 鑾峰彇 key锛岃繖閲屼細寰楀埌 "field01"
-                    String value = entry.getValue(); // 鑾峰彇 value锛岃繖閲屼細寰楀埌 "99"
-                    LambdaQueryWrapper<CoalField> queryWrapper = new LambdaQueryWrapper<>();
-                    CoalField coalField = coalFieldMapper.selectOne(queryWrapper.eq(CoalField::getFields, key));
-                    coalValue.setCoalValue(value);
-                    coalValue.setFields(coalField.getFields());
-                    coalValue.setFieldName(coalField.getFieldName());
-                    coalValue.setId(null);
-                    i = coalValueMapper.insert(coalValue);
-                }
-            }
-            return i;
-        } else {
-            return coalValueMapper.updateById(coalValue);
-        }
-    }
-
-    @Override
-    public int delCoalValueByIds(Long[] ids) {
-        return 0;
     }
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/vo/CoalFieldVo.java b/basic-server/src/main/java/com/ruoyi/basic/vo/CoalFieldVo.java
new file mode 100644
index 0000000..b322924
--- /dev/null
+++ b/basic-server/src/main/java/com/ruoyi/basic/vo/CoalFieldVo.java
@@ -0,0 +1,12 @@
+package com.ruoyi.basic.vo;
+
+import lombok.Data;
+
+@Data
+public class CoalFieldVo {
+
+    private Long id;
+    private String fields;
+    private String fieldName;
+
+}
diff --git a/basic-server/src/main/resources/db/migration/postgresql/V20250603151801__create_table_coal_quality.sql b/basic-server/src/main/resources/db/migration/postgresql/V20250603151801__create_table_coal_quality.sql
deleted file mode 100644
index 7ba1669..0000000
--- a/basic-server/src/main/resources/db/migration/postgresql/V20250603151801__create_table_coal_quality.sql
+++ /dev/null
@@ -1,44 +0,0 @@
--- 鍒涘缓鐓よ川淇℃伅琛�
-CREATE TABLE coal_quality
-(
-    id                BIGSERIAL PRIMARY KEY,                              -- 涓婚敭ID锛岃嚜鍔ㄩ�掑
-
-    coal_id           bigint                   DEFAULT 0 NOT NULL,
-    coal              VARCHAR(255) NOT NULL,                              -- 鐓ょ绫诲瀷锛屼笉鍏佽涓虹┖
-
-    total_moisture    DECIMAL(10, 2),                                     -- 鍏ㄦ按鍚噺 (%)
-    analysis_moisture DECIMAL(10, 2),                                     -- 鍒嗘瀽姘村惈閲� (%)
-    volatile_matter   DECIMAL(10, 2),                                     -- 鎸ュ彂鍒� (%)
-    fixed_carbon      DECIMAL(10, 2),                                     -- 鍥哄畾纰� (%)
-    lower_heat_value  DECIMAL(10, 2),                                     -- 浣庝綅鍙戠儹閲� (kcal/kg)
-    higher_heat_value DECIMAL(10, 2),                                     -- 楂樹綅鍙戠儹閲� (kcal/kg)
-    ash_content       DECIMAL(10, 2),                                     -- 鐏板垎 (%)
-    sulfur_content    DECIMAL(10, 2),                                     -- 纭惈閲� (%)
-
-    deleted           INT          NOT NULL    DEFAULT 0,                 -- 杞垹闄ゆ爣蹇楋細0=鏈垹闄わ紝1=宸插垹闄�
-    create_by         VARCHAR(255),                                       -- 鍒涘缓浜虹敤鎴峰悕
-    create_time       TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- 鍒涘缓鏃堕棿锛岄粯璁ゅ綋鍓嶆椂闂�
-    update_by         VARCHAR(255),                                       -- 鏈�鍚庢洿鏂颁汉鐢ㄦ埛鍚�
-    update_time       TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP  -- 鏈�鍚庢洿鏂版椂闂达紝榛樿褰撳墠鏃堕棿
-);
-
--- 琛ㄦ敞閲�
-COMMENT ON TABLE coal_quality IS '鐓よ川淇℃伅琛紝璁板綍鐓ょ偔璐ㄩ噺妫�娴嬬浉鍏虫暟鎹�';
-
--- 瀛楁娉ㄩ噴
-COMMENT ON COLUMN coal_quality.id IS '涓婚敭ID';
-COMMENT ON COLUMN coal_quality.coal_id IS '鐓ょ绫诲瀷id';
-COMMENT ON COLUMN coal_quality.coal IS '鐓ょ绫诲瀷';
-COMMENT ON COLUMN coal_quality.total_moisture IS '鍏ㄦ按鍚噺鐧惧垎姣� (%)';
-COMMENT ON COLUMN coal_quality.analysis_moisture IS '鍒嗘瀽姘村惈閲忕櫨鍒嗘瘮 (%)';
-COMMENT ON COLUMN coal_quality.volatile_matter IS '鎸ュ彂鍒嗙櫨鍒嗘瘮 (%)';
-COMMENT ON COLUMN coal_quality.fixed_carbon IS '鍥哄畾纰崇櫨鍒嗘瘮 (%)';
-COMMENT ON COLUMN coal_quality.lower_heat_value IS '浣庝綅鍙戠儹閲忥紙鍗曚綅锛氬崈鍗�/鍗冨厠锛�';
-COMMENT ON COLUMN coal_quality.higher_heat_value IS '楂樹綅鍙戠儹閲忥紙鍗曚綅锛氬崈鍗�/鍗冨厠锛�';
-COMMENT ON COLUMN coal_quality.ash_content IS '鐏板垎鐧惧垎姣� (%)';
-COMMENT ON COLUMN coal_quality.sulfur_content IS '纭惈閲忕櫨鍒嗘瘮 (%)';
-COMMENT ON COLUMN coal_quality.deleted IS '杞垹闄ゆ爣蹇楋紝0=鏈垹闄わ紝1=宸插垹闄�';
-COMMENT ON COLUMN coal_quality.create_by IS '鍒涘缓璇ヨ褰曠殑鐢ㄦ埛';
-COMMENT ON COLUMN coal_quality.create_time IS '璁板綍鍒涘缓鏃堕棿';
-COMMENT ON COLUMN coal_quality.update_by IS '鏈�鍚庝慨鏀硅璁板綍鐨勭敤鎴�';
-COMMENT ON COLUMN coal_quality.update_time IS '璁板綍鏈�鍚庢洿鏂版椂闂�';
\ No newline at end of file
diff --git a/basic-server/src/main/resources/mapper/CoalQualityMapper.xml b/basic-server/src/main/resources/mapper/CoalQualityMapper.xml
deleted file mode 100644
index 8b9da03..0000000
--- a/basic-server/src/main/resources/mapper/CoalQualityMapper.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.basic.mapper.CoalQualityMapper">
-
-        <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
-        <resultMap id="BaseResultMap" type="com.ruoyi.basic.entity.CoalQuality">
-                    <id column="id" property="id" />
-                <result column="deleted" property="deleted" />
-                <result column="create_by" property="createBy" />
-                <result column="create_time" property="createTime" />
-                <result column="update_by" property="updateBy" />
-                <result column="update_time" property="updateTime" />
-                    <result column="coal_id" property="coalId" />
-                    <result column="coal" property="coal" />
-                    <result column="total_moisture" property="totalMoisture" />
-                    <result column="analysis_moisture" property="analysisMoisture" />
-                    <result column="volatile_matter" property="volatileMatter" />
-                    <result column="fixed_carbon" property="fixedCarbon" />
-                    <result column="lower_heat_value" property="lowerHeatValue" />
-                    <result column="higher_heat_value" property="higherHeatValue" />
-                    <result column="ash_content" property="ashContent" />
-                    <result column="sulfur_content" property="sulfurContent" />
-        </resultMap>
-
-        <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
-        <sql id="Base_Column_List">
-                deleted,
-                create_by,
-                create_time,
-                update_by,
-                update_time,
-            id, coal_id, coal, total_moisture, analysis_moisture, volatile_matter, fixed_carbon, lower_heat_value, higher_heat_value, ash_content, sulfur_content
-        </sql>
-
-</mapper>
\ No newline at end of file
diff --git a/main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java b/main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java
index b9cac2d..9dedce7 100644
--- a/main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java
+++ b/main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java
@@ -3,7 +3,6 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.business.dto.OfficialInventoryDto;
-import com.ruoyi.business.entity.OfficialInventory;
 import com.ruoyi.business.service.OfficialInventoryService;
 import com.ruoyi.common.core.domain.R;
 import lombok.AllArgsConstructor;
@@ -31,8 +30,8 @@
      * 姝e紡搴撳簱琛ㄦ煡璇�
      */
     @GetMapping("/list")
-    public R<IPage<OfficialInventory>> list(Page page, OfficialInventoryDto officialInventoryDto) {
-        IPage<OfficialInventory> list = officialInventoryService.selectOfficialInventoryList(page,officialInventoryDto);
+    public R<IPage<OfficialInventoryDto>> list(Page page, OfficialInventoryDto officialInventoryDto) {
+        IPage<OfficialInventoryDto> list = officialInventoryService.selectOfficialInventoryList(page,officialInventoryDto);
         return R.ok(list);
     }
 
diff --git a/main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java b/main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java
index 0968c40..979fe45 100644
--- a/main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java
+++ b/main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java
@@ -23,25 +23,34 @@
 @RequestMapping("/pendingInventory")
 public class PendingInventoryController {
 
-        private PendingInventoryService pendingInventoryService;
+    private PendingInventoryService pendingInventoryService;
 
     /**
      * 寰呭叆搴撹〃鏌ヨ
      */
     @GetMapping("/list")
     public R<IPage<PendingInventory>> list(Page page, PendingInventoryDto pendingInventoryDto) {
-        IPage<PendingInventory> list = pendingInventoryService.selectPendingInventoryList(page,pendingInventoryDto);
+        IPage<PendingInventory> list = pendingInventoryService.selectPendingInventoryList(page, pendingInventoryDto);
         return R.ok(list);
     }
 
     /**
-     * 鏂板淇敼
+     * 寰呭叆搴撴柊澧炰慨鏀�
      */
     @PostMapping("/addOrEditPending")
     public R addOrEditPending(@RequestBody PendingInventoryDto pendingInventoryDto) {
         return R.ok(pendingInventoryService.addOrEditPending(pendingInventoryDto));
     }
 
+
+    /**
+     * 寰呭叆搴撶叅璐ㄦ柟妗堝�间慨鏀逛繚瀛�
+     */
+    @PostMapping("/addOrEditCoalValue")
+    public R addOrEditCoalValue(@RequestBody PendingInventoryDto pendingInventoryDto) {
+        return R.ok(pendingInventoryService.addOrEditCoalValue(pendingInventoryDto));
+    }
+
     /**
      * 鍒犻櫎
      */
diff --git a/main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java b/main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java
new file mode 100644
index 0000000..e8b57e2
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java
@@ -0,0 +1,10 @@
+package com.ruoyi.business.dto;
+
+import com.ruoyi.business.entity.Archive;
+import lombok.Data;
+
+@Data
+public class ArchiveDto extends Archive {
+
+    private Long treeId;
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java b/main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java
index 9d668b7..0e386e9 100644
--- a/main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java
+++ b/main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java
@@ -3,6 +3,11 @@
 import com.ruoyi.business.entity.OfficialInventory;
 import lombok.Data;
 
+import java.util.List;
+import java.util.Map;
+
 @Data
 public class OfficialInventoryDto extends OfficialInventory {
+
+    private List<Map<String, String>> fields;
 }
diff --git a/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java b/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java
index 01a78a7..2d46d36 100644
--- a/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java
+++ b/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java
@@ -1,8 +1,30 @@
 package com.ruoyi.business.dto;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ruoyi.business.entity.PendingInventory;
 import lombok.Data;
 
+import java.util.List;
+import java.util.Map;
+
 @Data
 public class PendingInventoryDto extends PendingInventory {
+
+    @JsonProperty("pId")
+    private Long pId;
+
+    private List<Map<String, String>> fieldValue;
+
+    /**
+     * 瀛楁鍊�
+     */
+    private String coalValue;
+    /**
+     * 瀛楁
+     */
+    private String fields;
+    /**
+     * 瀛楁鍚�
+     */
+    private String fieldName;
 }
diff --git a/main-business/src/main/java/com/ruoyi/business/dto/TreeDto.java b/main-business/src/main/java/com/ruoyi/business/dto/TreeDto.java
new file mode 100644
index 0000000..3fb3800
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/dto/TreeDto.java
@@ -0,0 +1,8 @@
+package com.ruoyi.business.dto;
+
+import com.ruoyi.business.entity.Tree;
+import lombok.Data;
+
+@Data
+public class TreeDto extends Tree {
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java b/main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java
index d965baf..e97889f 100644
--- a/main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java
+++ b/main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java
@@ -26,7 +26,12 @@
      * 涓婚敭ID
      */
     @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
+    private Long id;
+    /**
+     * 寰呭叆搴搃d
+     */
+    @TableField(value = "pending_id")
+    private Long pendingId;
     /**
      * 渚涜揣鍟嗗悕绉�
      */
@@ -35,8 +40,8 @@
     /**
      * 鐓ょ
      */
-    @TableField(value = "coal_type")
-    private String coalType;
+    @TableField(value = "coal")
+    private String coal;
     /**
      * 鍗曚綅
      */
diff --git a/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java b/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java
index c30d533..9fe9ca2 100644
--- a/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java
+++ b/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java
@@ -20,13 +20,11 @@
 @TableName("pending_inventory")
 public class PendingInventory extends MyBaseEntity {
 
-    private static final long serialVersionUID = 1L;
-
     /**
      * 涓婚敭ID
      */
     @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
+    private Long id;
     /**
      * 渚涜揣鍟嗗悕绉�
      */
diff --git a/main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java b/main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java
index 4d7a915..9b4e444 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java
@@ -16,5 +16,5 @@
  */
 public interface OfficialInventoryService extends IService<OfficialInventory> {
 
-    IPage<OfficialInventory> selectOfficialInventoryList(Page page, OfficialInventoryDto officialInventoryDto);
+    IPage<OfficialInventoryDto> selectOfficialInventoryList(Page page, OfficialInventoryDto officialInventoryDto);
 }
diff --git a/main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java b/main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java
index 1d12d25..5423545 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java
@@ -21,4 +21,6 @@
     int addOrEditPending(PendingInventoryDto pendingInventoryDto);
 
     int delByIds(Long[] ids);
+
+    int addOrEditCoalValue(PendingInventoryDto pendingInventoryDto);
 }
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java
index fdc9186..7be4276 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java
@@ -3,13 +3,25 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.entity.CoalField;
+import com.ruoyi.basic.entity.CoalValue;
+import com.ruoyi.basic.mapper.CoalFieldMapper;
+import com.ruoyi.basic.mapper.CoalValueMapper;
 import com.ruoyi.business.dto.OfficialInventoryDto;
 import com.ruoyi.business.entity.OfficialInventory;
 import com.ruoyi.business.mapper.OfficialInventoryMapper;
+import com.ruoyi.business.mapper.PendingInventoryMapper;
 import com.ruoyi.business.service.OfficialInventoryService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
+import com.ruoyi.common.utils.bean.BeanUtils;
 import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -25,9 +37,66 @@
 
     private final OfficialInventoryMapper officialInventoryMapper;
 
+    private final CoalValueMapper coalValueMapper;
+
+    private final CoalFieldMapper coalFieldMapper;
+
+    private final PendingInventoryMapper pendingInventoryMapper;
+
     @Override
-    public IPage<OfficialInventory> selectOfficialInventoryList(Page page, OfficialInventoryDto officialInventoryDto) {
+    public IPage<OfficialInventoryDto> selectOfficialInventoryList(Page page, OfficialInventoryDto officialInventoryDto) {
+
+        //  鍏堟煡鍑哄師濮嬫暟鎹紙OfficialInventory锛�
         LambdaQueryWrapper<OfficialInventory> queryWrapper = new LambdaQueryWrapper<>();
-        return officialInventoryMapper.selectPage(page, queryWrapper);
+        IPage<OfficialInventory> entityPage = officialInventoryMapper.selectPage(page, queryWrapper);
+
+        //  鍒涘缓涓�涓柊鐨� Dto 鍒嗛〉缁撴灉
+        IPage<OfficialInventoryDto> dtoPage = new Page<>();
+        BeanUtils.copyProperties(entityPage, dtoPage);
+
+        List<OfficialInventoryDto> dtoList = new ArrayList<>();
+
+        //  鏌ヨ鎵�鏈夊彲鐢ㄥ瓧娈碉紙CoalField锛�
+        List<CoalField> coalFields = coalFieldMapper.selectList(null);
+        List<String> allFieldNames = coalFields.stream()
+                .map(CoalField::getFields)
+                .distinct()
+                .collect(Collectors.toList());
+
+        //  閬嶅巻姣忔潯璁板綍锛岃繘琛岃浆鎹㈠苟濉厖 fields
+        for (OfficialInventory entity : entityPage.getRecords()) {
+            OfficialInventoryDto dto = new OfficialInventoryDto();
+            BeanUtils.copyProperties(entity, dto); 
+
+            Long pendingId = entity.getPendingId();
+
+            //  鏌ヨ璇� pendingId 瀵瑰簲鐨� CoalValue 鏁版嵁
+            List<CoalValue> coalValues = coalValueMapper.selectList(
+                    new LambdaQueryWrapper<CoalValue>().eq(CoalValue::getPlanId, pendingId)
+            );
+
+            //  鏋勫缓 Map<fieldName, value>
+            Map<String, String> fieldValueMap = coalValues.stream()
+                    .collect(Collectors.toMap(
+                            CoalValue::getFields,
+                            CoalValue::getCoalValue,
+                            (existing, replacement) -> existing // 閲嶅瀛楁淇濈暀绗竴涓�
+                    ));
+
+            // 鏋勯�犳渶缁� fields 鍒楄〃锛屽寘鍚墍鏈夊瓧娈靛悕锛屽苟璁剧疆榛樿鍊� "-"
+            List<Map<String, String>> fields = new ArrayList<>();
+            for (String field : allFieldNames) {
+                Map<String, String> fieldMap = new HashMap<>();
+                fieldMap.put(field, fieldValueMap.getOrDefault(field, "-"));
+                fields.add(fieldMap);
+            }
+
+            // 璁剧疆鍒� DTO 涓�
+            dto.setFields(fields);
+            dtoList.add(dto);
+        }
+
+        dtoPage.setRecords(dtoList); // 璁剧疆杞崲鍚庣殑 DtoList
+        return dtoPage;
     }
 }
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java
index ac74173..adbc5e9 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java
@@ -3,19 +3,31 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.entity.CoalField;
+import com.ruoyi.basic.entity.CoalValue;
 import com.ruoyi.basic.mapper.CoalFieldMapper;
 import com.ruoyi.basic.mapper.CoalValueMapper;
 import com.ruoyi.business.dto.PendingInventoryDto;
+import com.ruoyi.business.entity.OfficialInventory;
 import com.ruoyi.business.entity.PendingInventory;
+import com.ruoyi.business.mapper.OfficialInventoryMapper;
 import com.ruoyi.business.mapper.PendingInventoryMapper;
 import com.ruoyi.business.service.PendingInventoryService;
+import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
 import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -30,6 +42,8 @@
 public class PendingInventoryServiceImpl extends ServiceImpl<PendingInventoryMapper, PendingInventory> implements PendingInventoryService {
 
     private final PendingInventoryMapper pendingInventoryMapper;
+
+    private final OfficialInventoryMapper officialInventoryMapper;
 
     private final CoalValueMapper coalValueMapper;
 
@@ -66,4 +80,69 @@
         // 鎵ц鎵归噺閫昏緫鍒犻櫎
         return pendingInventoryMapper.update(null, updateWrapper);
     }
+
+    @Transactional
+    @Override
+    public int addOrEditCoalValue(PendingInventoryDto pendingInventoryDto) {
+        // Step 1: 鍒犻櫎鍘熸湁 planId 鐩稿叧鏁版嵁
+        coalValueMapper.delete(new LambdaQueryWrapper<CoalValue>()
+                .eq(CoalValue::getPlanId, pendingInventoryDto.getPId()));
+        // Step 2: 鏋勫缓鍩虹 CoalValue 瀵硅薄
+        CoalValue coalValue = new CoalValue();
+        BeanUtils.copyProperties(coalValue, pendingInventoryDto);
+        coalValue.setPlanId(pendingInventoryDto.getPId());
+        List<Map<String, String>> fieldValue = pendingInventoryDto.getFieldValue();
+        if (CollectionUtils.isEmpty(fieldValue)) {
+            throw new BaseException("瀛楁鍊间笉鑳戒负绌�");
+        }
+        // Step 3: 鎻愬墠鑾峰彇鎵�鏈� field -> CoalField 鏄犲皠锛岄伩鍏嶉噸澶嶆煡搴�
+        Set<String> allFields = fieldValue.stream()
+                .flatMap(map -> map.keySet().stream())
+                .collect(Collectors.toSet());
+        List<CoalField> coalFields = coalFieldMapper.selectList(
+                new LambdaQueryWrapper<CoalField>().in(CoalField::getFields, allFields));
+        Map<String, String> fieldMap = coalFields.stream()
+                .collect(Collectors.toMap(
+                        CoalField::getFields,
+                        CoalField::getFieldName));
+        // Step 4: 鎵归噺鎻掑叆
+        int i = 0;
+        for (Map<String, String> fieldMapEntry : fieldValue) {
+            for (Map.Entry<String, String> entry : fieldMapEntry.entrySet()) {
+                String key = entry.getKey();
+                String value = entry.getValue();
+                String fieldName = fieldMap.get(key);
+                if (fieldName == null) {
+                    throw new BaseException("瀛楁鍚嶄笉瀛樺湪");
+                }
+                coalValue.setId(null); // 娓呯┖ id锛岀‘淇濇瘡娆¢兘鏄柊璁板綍
+                coalValue.setCoalValue(value);
+                coalValue.setFields(key);
+                coalValue.setFieldName(fieldName);
+                i = coalValueMapper.insert(coalValue);
+            }
+        }
+        if (i > 0) {
+            BigDecimal quantity = pendingInventoryDto.getInventoryQuantity();
+            PendingInventory pendingInventory = pendingInventoryMapper.selectById(pendingInventoryDto.getPId());
+            if (pendingInventory == null) {
+                throw new BaseException("寰呭叆搴撹褰曚笉瀛樺湪");
+            }
+            BigDecimal left = pendingInventory.getInventoryQuantity().subtract(quantity);
+            if (left.compareTo(BigDecimal.ZERO) > 0) {
+                pendingInventory.setInventoryQuantity(left);
+                pendingInventoryMapper.updateById(pendingInventory);
+            } else {
+                pendingInventoryMapper.deleteById(pendingInventoryDto.getPId());
+            }
+            officialInventoryMapper.delete(new LambdaQueryWrapper<OfficialInventory>().eq(OfficialInventory::getPendingId, pendingInventoryDto.getPId()));
+            OfficialInventory officialInventory = new OfficialInventory();
+            BeanUtils.copyProperties(pendingInventory, officialInventory);
+            officialInventory.setId(null);
+            officialInventory.setPendingId(pendingInventoryDto.getPId());
+            officialInventory.setInventoryQuantity(quantity);
+            officialInventoryMapper.insert(officialInventory);
+        }
+        return i;
+    }
 }
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java
index 54b2b7b..ec9edcf 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java
@@ -17,6 +17,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 
+import java.math.BigDecimal;
 import java.util.Objects;
 
 /**
@@ -52,7 +53,6 @@
         // 鍒涘缓閲囪喘鐧昏瀹炰綋骞跺鍒跺睘鎬�
         PurchaseRegistration purchaseRegistration = new PurchaseRegistration();
         BeanUtils.copyProperties(purchaseRegistrationDto, purchaseRegistration);
-
         if (Objects.isNull(purchaseRegistrationDto.getId())) {
             // 鏂板閲囪喘鐧昏
             int insertCount = purchaseRegistrationMapper.insert(purchaseRegistration);
@@ -79,9 +79,8 @@
         BeanUtils.copyProperties(purchaseRegistration, pendingInventory);
 
         // 璁剧疆寰呭叆搴撹褰曠壒鏈夌殑灞炴�э紙濡傛灉鏈夛級
-        // pendingInventory.setStatus(InventoryStatus.PENDING);
-        // pendingInventory.setCreateTime(LocalDateTime.now());
-
+         pendingInventory.setInventoryQuantity(purchaseRegistration.getPurchaseQuantity());
+         pendingInventory.setCostPerUnit(new BigDecimal(22));
         return pendingInventory;
     }
 
diff --git a/main-business/src/main/java/com/ruoyi/business/vo/TreeVo.java b/main-business/src/main/java/com/ruoyi/business/vo/TreeVo.java
new file mode 100644
index 0000000..c4eacda
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/vo/TreeVo.java
@@ -0,0 +1,14 @@
+package com.ruoyi.business.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TreeVo {
+    private Long id;
+    private Long parentId;
+    private String name;
+    private String label; // 鐢ㄤ簬鏍戝舰缁撴瀯鐨勬樉绀哄悕绉�
+    private List<TreeVo> children;
+}
diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql b/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql
index 1acb79e..9ee25e8 100644
--- a/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql
+++ b/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql
@@ -1,7 +1,7 @@
 -- 鍒涘缓寰呭叆搴撹〃
 CREATE TABLE pending_inventory
 (
-    id                        SERIAL PRIMARY KEY,                                 -- 涓婚敭ID
+    id                        BIGSERIAL PRIMARY KEY,                                 -- 涓婚敭ID
     supplier_name             VARCHAR(255)   NOT NULL,                            -- 渚涜揣鍟嗗悕绉�
     coal_type                 VARCHAR(50)    NOT NULL,                            -- 鐓ょ
     unit                      VARCHAR(50)    NOT NULL,                            -- 鍗曚綅
diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql b/main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql
index 80587a1..3df2c94 100644
--- a/main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql
+++ b/main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql
@@ -1,7 +1,7 @@
 -- 鍒涘缓姝e紡搴撹〃
 CREATE TABLE official_inventory
 (
-    id                         SERIAL PRIMARY KEY,                                 -- 涓婚敭ID
+    id                         BIGSERIAL PRIMARY KEY,                                 -- 涓婚敭ID
     supplier_name              VARCHAR(255)   NOT NULL,                            -- 渚涜揣鍟嗗悕绉�
     coal_type                  VARCHAR(50)    NOT NULL,                            -- 鐓ょ
     unit                       VARCHAR(50)    NOT NULL,                            -- 鍗曚綅
diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250610161312__create_table_tree.sql b/main-business/src/main/resources/db/migration/postgresql/V20250610161312__create_table_tree.sql
new file mode 100644
index 0000000..ac435ff
--- /dev/null
+++ b/main-business/src/main/resources/db/migration/postgresql/V20250610161312__create_table_tree.sql
@@ -0,0 +1,27 @@
+-- 鍒涘缓妗f琛�
+CREATE TABLE tree
+(
+    id          BIGSERIAL PRIMARY KEY,                              -- 涓婚敭ID锛岃嚜鍔ㄩ�掑
+
+    name        VARCHAR(255) NOT NULL,                              -- 鍚嶇О
+    parent_id   BIGINT,                                             -- 鐖秈d
+
+    deleted     INT          NOT NULL    DEFAULT 0,                 -- 杞垹闄ゆ爣蹇楋細0=鏈垹闄わ紝1=宸插垹闄�
+    create_by   VARCHAR(255),                                       -- 鍒涘缓浜虹敤鎴峰悕
+    create_time TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- 鍒涘缓鏃堕棿锛岄粯璁ゅ綋鍓嶆椂闂�
+    update_by   VARCHAR(255),                                       -- 鏈�鍚庢洿鏂颁汉鐢ㄦ埛鍚�
+    update_time TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP  -- 鏈�鍚庢洿鏂版椂闂达紝榛樿褰撳墠鏃堕棿-- 鐧昏鏃ユ湡
+);
+
+-- 琛ㄦ敞閲�
+COMMENT ON TABLE tree IS '妗f淇℃伅琛紝璁板綍绯荤粺涓悇绫绘。妗堢殑鍩烘湰淇℃伅';
+
+-- 瀛楁娉ㄩ噴
+COMMENT ON COLUMN tree.id IS '涓婚敭ID';
+
+
+COMMENT ON COLUMN tree.deleted IS '杞垹闄ゆ爣蹇楋紝0=鏈垹闄わ紝1=宸插垹闄�';
+COMMENT ON COLUMN tree.create_by IS '鍒涘缓璇ヨ褰曠殑鐢ㄦ埛';
+COMMENT ON COLUMN tree.create_time IS '璁板綍鍒涘缓鏃堕棿';
+COMMENT ON COLUMN tree.update_by IS '鏈�鍚庝慨鏀硅璁板綍鐨勭敤鎴�';
+COMMENT ON COLUMN tree.update_time IS '璁板綍鏈�鍚庢洿鏂版椂闂�';
\ No newline at end of file
diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250610161313__create_table_archive.sql b/main-business/src/main/resources/db/migration/postgresql/V20250610161313__create_table_archive.sql
new file mode 100644
index 0000000..f820f42
--- /dev/null
+++ b/main-business/src/main/resources/db/migration/postgresql/V20250610161313__create_table_archive.sql
@@ -0,0 +1,29 @@
+-- 鍒涘缓妗f琛�
+CREATE TABLE archive
+(
+    id          BIGSERIAL PRIMARY KEY,                              -- 涓婚敭ID锛岃嚜鍔ㄩ�掑
+
+    name        VARCHAR(255) NOT NULL,                              -- 妗f鍚嶇О
+    type        VARCHAR(255) NOT NULL,                              -- 妗f绫诲瀷锛堝锛氬悎鍚屻�佹姤鍛娿�佽瘉浠剁瓑锛�
+    status      VARCHAR(50)  NOT NULL,                              -- 鐘舵�侊紙濡傦細鏈夋晥銆佽繃鏈熴�佷綔搴燂級
+
+    deleted     INT          NOT NULL    DEFAULT 0,                 -- 杞垹闄ゆ爣蹇楋細0=鏈垹闄わ紝1=宸插垹闄�
+    create_by   VARCHAR(255),                                       -- 鍒涘缓浜虹敤鎴峰悕
+    create_time TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- 鍒涘缓鏃堕棿锛岄粯璁ゅ綋鍓嶆椂闂�
+    update_by   VARCHAR(255),                                       -- 鏈�鍚庢洿鏂颁汉鐢ㄦ埛鍚�
+    update_time TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP  -- 鏈�鍚庢洿鏂版椂闂达紝榛樿褰撳墠鏃堕棿-- 鐧昏鏃ユ湡
+);
+
+-- 琛ㄦ敞閲�
+COMMENT ON TABLE archive IS '妗f淇℃伅琛紝璁板綍绯荤粺涓悇绫绘。妗堢殑鍩烘湰淇℃伅';
+
+-- 瀛楁娉ㄩ噴
+COMMENT ON COLUMN archive.id IS '涓婚敭ID';
+COMMENT ON COLUMN archive.name IS '妗f鍚嶇О';
+COMMENT ON COLUMN archive.type IS '妗f绫诲瀷锛屼緥濡傦細鍚堝悓銆佹姤鍛娿�佽瘉浠剁瓑';
+COMMENT ON COLUMN archive.status IS '妗f鐘舵�侊紝渚嬪锛氭湁鏁堛�佽繃鏈熴�佷綔搴�';
+COMMENT ON COLUMN archive.deleted IS '杞垹闄ゆ爣蹇楋紝0=鏈垹闄わ紝1=宸插垹闄�';
+COMMENT ON COLUMN archive.create_by IS '鍒涘缓璇ヨ褰曠殑鐢ㄦ埛';
+COMMENT ON COLUMN archive.create_time IS '璁板綍鍒涘缓鏃堕棿';
+COMMENT ON COLUMN archive.update_by IS '鏈�鍚庝慨鏀硅璁板綍鐨勭敤鎴�';
+COMMENT ON COLUMN archive.update_time IS '璁板綍鏈�鍚庢洿鏂版椂闂�';
\ No newline at end of file
diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250610161314__create_table_file.sql b/main-business/src/main/resources/db/migration/postgresql/V20250610161314__create_table_file.sql
new file mode 100644
index 0000000..4eb5921
--- /dev/null
+++ b/main-business/src/main/resources/db/migration/postgresql/V20250610161314__create_table_file.sql
@@ -0,0 +1,37 @@
+-- 鍒涘缓鏂囦欢琛�
+CREATE TABLE file
+(
+    id            BIGSERIAL PRIMARY KEY,                              -- 涓婚敭ID锛岃嚜鍔ㄩ�掑
+
+    archive_id    BIGINT,                                             -- 鍏宠仈妗f琛� archive.id锛堝彲閫夛級
+    original_name VARCHAR(255) NOT NULL,                              -- 鍘熷鏂囦欢鍚嶏紙鐢ㄦ埛涓婁紶鏃剁殑鍚嶇О锛�
+    preview_url   TEXT,                                               -- 棰勮鍦板潃
+    file_name     VARCHAR(255) NOT NULL,                              -- 瀛樺偍绯荤粺涓殑鍞竴鏂囦欢鍚嶏紙濡� uuid.png锛�
+    file_path     TEXT         NOT NULL,                              -- 鏂囦欢瀛樺偍璺緞鎴朥RL
+    file_type     VARCHAR(50),                                        -- 鏂囦欢绫诲瀷锛堝锛歩mage/png, application/pdf锛�
+    file_size     VARCHAR(50),                                              -- 鏂囦欢澶у皬锛堝崟浣嶏細瀛楄妭锛�
+
+    create_time   TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- 涓婁紶鏃堕棿锛岄粯璁ゅ綋鍓嶆椂闂�
+    update_time   TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- 鏈�鍚庢洿鏂版椂闂达紝榛樿褰撳墠鏃堕棿
+    create_by     VARCHAR(255),                                       -- 涓婁紶浜虹敤鎴峰悕
+    update_by     VARCHAR(255),                                       -- 鏈�鍚庝慨鏀逛汉鐢ㄦ埛鍚�
+    deleted       INT          NOT NULL    DEFAULT 0                  -- 杞垹闄ゆ爣蹇楋細0=鏈垹闄わ紝1=宸插垹闄�
+);
+
+-- 琛ㄦ敞閲�
+COMMENT ON TABLE file IS '涓婁紶鏂囦欢鐨勫熀鏈俊鎭�';
+
+-- 瀛楁娉ㄩ噴
+COMMENT ON COLUMN file.id IS '涓婚敭ID';
+COMMENT ON COLUMN file.archive_id IS '鍏宠仈鐨勬。妗圛D锛屽閿紩鐢� archive.id';
+COMMENT ON COLUMN file.original_name IS '鍘熷鏂囦欢鍚嶏紙鐢ㄦ埛涓婁紶鏃剁殑鍚嶇О锛�';
+COMMENT ON COLUMN file.preview_url IS '棰勮鍦板潃';
+COMMENT ON COLUMN file.file_name IS '绯荤粺瀛樺偍鐨勫敮涓�鏂囦欢鍚�';
+COMMENT ON COLUMN file.file_path IS '鏂囦欢鍦ㄦ湇鍔″櫒涓婄殑瀛樺偍璺緞鎴栬闂甎RL';
+COMMENT ON COLUMN file.file_type IS '鏂囦欢MIME绫诲瀷锛屼緥濡� image/png銆乤pplication/pdf';
+COMMENT ON COLUMN file.file_size IS '鏂囦欢澶у皬锛屽崟浣嶄负瀛楄妭';
+COMMENT ON COLUMN file.create_time IS '鏂囦欢涓婁紶鏃堕棿';
+COMMENT ON COLUMN file.update_time IS '鏂囦欢鏈�鍚庢洿鏂版椂闂�';
+COMMENT ON COLUMN file.create_by IS '涓婁紶璇ユ枃浠剁殑鐢ㄦ埛';
+COMMENT ON COLUMN file.update_by IS '鏈�鍚庝慨鏀硅鏂囦欢鐨勭敤鎴�';
+COMMENT ON COLUMN file.deleted IS '杞垹闄ゆ爣蹇楋紝0=鏈垹闄わ紝1=宸插垹闄�';
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/MyBaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/MyBaseEntity.java
index 48c60f6..e819ecb 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/MyBaseEntity.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/MyBaseEntity.java
@@ -7,7 +7,6 @@
 import lombok.Data;
 
 import java.io.Serializable;
-import java.time.LocalDateTime;
 import java.time.OffsetDateTime;
 
 @Data

--
Gitblit v1.9.3