From 7cf455d9e9dd66a13c01b3e5d6536a4b3ce7bfbf Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 16 十月 2025 18:09:00 +0800
Subject: [PATCH] 项目管理代码生成

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/CaseTypeService.java                      |   16 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageController.java          |  111 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainController.java                |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainService.java                      |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateTypeService.java          |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskServiceImpl.java             |   33 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskMapper.java                        |   24 
 ruoyi-system/src/main/java/com/ruoyi/system/model/YearTask.java                               |   83 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectMainService.java                   |   24 
 ruoyi-system/src/main/resources/mapper/system/ContractTemplateTypeMapper.xml                  |   31 
 ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageService.java                |   22 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateTypeServiceImpl.java |   32 
 ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInventoryService.java              |   16 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInventoryController.java        |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskDetailServiceImpl.java       |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageDetailVO.java                    |   26 
 ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorageItem.java                     |   74 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseTypeController.java                |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInventoryMapper.java                |   16 
 ruoyi-system/src/main/resources/mapper/system/CaseMainMapper.xml                              |   24 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainMapper.java                        |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectSettleItemService.java             |   16 
 ruoyi-system/src/main/resources/mapper/system/ProjectInventoryMapper.xml                      |   26 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageItemMapper.java              |   16 
 ruoyi-system/src/main/resources/mapper/system/ContractTemplateMapper.xml                      |   33 
 ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInventory.java                       |   86 +
 ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectStorageListQuery.java                |   18 
 ruoyi-system/src/main/resources/mapper/system/ProjectMainMapper.xml                           |   74 +
 ruoyi-system/src/main/resources/mapper/system/ProjectSettleItemMapper.xml                     |   32 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectSettleItemController.java       |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainFileMapper.java                    |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageMapper.java                  |   23 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInventoryServiceImpl.java     |   20 
 ruoyi-system/src/main/resources/mapper/system/ProjectStorageMapper.xml                        |   38 
 ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorage.java                         |   87 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainFileServiceImpl.java         |   20 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainFileController.java            |   20 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskController.java                |  127 ++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseTypeServiceImpl.java             |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPhaseListQuery.java                  |   22 
 ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskService.java                      |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainServiceImpl.java             |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplateType.java                   |   60 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectMainServiceImpl.java          |   81 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageServiceImpl.java       |   97 +
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateTypeMapper.java            |   23 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectMainListVO.java                         |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainFileService.java                  |   16 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageItemController.java      |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectSettleItem.java                      |  110 +
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPhaseListVO.java                        |   21 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/YearTaskAuditDTO.java                         |   29 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/YearTaskListVO.java                            |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInvestmentServiceImpl.java    |   20 
 ruoyi-system/src/main/resources/mapper/system/ProjectStorageItemMapper.xml                    |   23 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateController.java        |   70 +
 ruoyi-system/src/main/resources/mapper/system/CaseMainFileMapper.xml                          |   23 
 ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplate.java                       |   68 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInvestmentService.java             |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateService.java              |   19 
 ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMainFile.java                           |   68 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInvestmentController.java       |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectSettleItemMapper.java               |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInvestment.java                      |  114 +
 ruoyi-system/src/main/java/com/ruoyi/system/query/YearTaskListQuery.java                      |   19 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageListVO.java                      |   22 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateTypeController.java    |   63 +
 ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectMainListQuery.java                   |   21 
 ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskDetailService.java                |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskDetailMapper.java                  |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseTypeMapper.java                        |   16 
 ruoyi-system/src/main/resources/mapper/system/YearTaskDetailMapper.xml                        |   30 
 ruoyi-system/src/main/resources/mapper/system/YearTaskMapper.xml                              |   36 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateMapper.java                |   22 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectSettleItemServiceImpl.java    |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectMainMapper.java                     |   29 
 ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateTypeListQuery.java          |   19 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskDetailController.java          |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageItemService.java            |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateServiceImpl.java     |   33 
 ruoyi-system/src/main/java/com/ruoyi/system/model/YearTaskDetail.java                         |  107 +
 ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMain.java                               |   72 +
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInvestmentMapper.java               |   16 
 ruoyi-system/src/main/resources/mapper/system/CaseTypeMapper.xml                              |   21 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectMainController.java             |  188 +++
 ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectMain.java                            |  157 ++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageItemServiceImpl.java   |   20 
 ruoyi-system/src/main/resources/mapper/system/ProjectInvestmentMapper.xml                     |   33 
 ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateListQuery.java              |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/model/CaseType.java                               |   60 +
 90 files changed, 3,456 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainController.java
new file mode 100644
index 0000000..0c80778
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.web.controller.api;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 案件管理 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@RequestMapping("/case-main")
+public class CaseMainController {
+
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainFileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainFileController.java
new file mode 100644
index 0000000..96d6fc2
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainFileController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.web.controller.api;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 案件分类附件明细 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@RequestMapping("/case-main-file")
+public class CaseMainFileController {
+
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseTypeController.java
new file mode 100644
index 0000000..8d67b85
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseTypeController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.web.controller.api;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 案件分类 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@RequestMapping("/case-type")
+public class CaseTypeController {
+
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateController.java
new file mode 100644
index 0000000..e2b07a3
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateController.java
@@ -0,0 +1,70 @@
+package com.ruoyi.web.controller.api;
+
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.model.ContractTemplate;
+import com.ruoyi.system.model.ContractTemplateType;
+import com.ruoyi.system.query.ContractTemplateListQuery;
+import com.ruoyi.system.query.ContractTemplateTypeListQuery;
+import com.ruoyi.system.service.ContractTemplateService;
+import com.ruoyi.system.service.ContractTemplateTypeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * <p>
+ * 合同模板库 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@Api(tags = "合同模板库")
+@RequestMapping("/contract-template")
+public class ContractTemplateController {
+
+    @Resource
+    private ContractTemplateService contractTemplateService;
+    @Resource
+    private ContractTemplateTypeService contractTemplateTypeService;
+    @ApiOperation(value = "合同分类类型不分页列表")
+    @PostMapping(value = "/listType")
+    public R<List<ContractTemplateType>> listType() {
+        return R.ok(contractTemplateTypeService.list());
+    }
+
+    @ApiOperation(value = "合同模板分页列表")
+    @PostMapping(value = "/pageList")
+    public R<PageInfo<ContractTemplate>> pageList(@RequestBody ContractTemplateListQuery query) {
+        return R.ok(contractTemplateService.pageList(query));
+    }
+    @ApiOperation(value = "添加")
+    @Log(title = "合同模板-添加", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/add")
+    public R<Boolean> save(@RequestBody ContractTemplate entity) {
+        return R.ok(contractTemplateService.save(entity));
+    }
+    @ApiOperation(value = "修改")
+    @Log(title = "合同模板-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/edit")
+    public R<Boolean> edit(@RequestBody ContractTemplate entity) {
+        return R.ok(contractTemplateService.updateById(entity));
+    }
+    @Log(title = "合同模板-删除", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "合同模板-删除")
+    @DeleteMapping(value = "/delete")
+    public R delete(@RequestParam String ids) {
+        contractTemplateService.removeBatchByIds(Arrays.asList(ids.split(",")));
+        return R.ok();
+    }
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateTypeController.java
new file mode 100644
index 0000000..7e56e7a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateTypeController.java
@@ -0,0 +1,63 @@
+package com.ruoyi.web.controller.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.model.AssetHouseInspectionDetail;
+import com.ruoyi.system.model.ContractTemplateType;
+import com.ruoyi.system.query.ContractTemplateTypeListQuery;
+import com.ruoyi.system.service.ContractTemplateTypeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+
+/**
+ * <p>
+ * 合同模板分类 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@Api(tags = "合同模板分类")
+@RequestMapping("/contract-template-type")
+public class ContractTemplateTypeController {
+
+    @Resource
+    private ContractTemplateTypeService contractTemplateTypeService;
+
+    @ApiOperation(value = "合同模板分类分页列表")
+    @PostMapping(value = "/pageList")
+    public R<PageInfo<ContractTemplateType>> pageList(@RequestBody ContractTemplateTypeListQuery query) {
+        return R.ok(contractTemplateTypeService.pageList(query));
+    }
+    @ApiOperation(value = "添加")
+    @Log(title = "合同模板分类-添加", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/add")
+    public R<Boolean> save(@RequestBody ContractTemplateType entity) {
+        return R.ok(contractTemplateTypeService.save(entity));
+    }
+    @ApiOperation(value = "修改")
+    @Log(title = "合同模板分类-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/edit")
+    public R<Boolean> edit(@RequestBody ContractTemplateType entity) {
+        return R.ok(contractTemplateTypeService.updateById(entity));
+    }
+    @Log(title = "合同模板分类-删除", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "合同模板分类-删除")
+    @DeleteMapping(value = "/delete")
+    public R delete(@RequestParam String ids) {
+        contractTemplateTypeService.removeBatchByIds(Arrays.asList(ids.split(",")));
+        return R.ok();
+    }
+
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInventoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInventoryController.java
new file mode 100644
index 0000000..469bdb6
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInventoryController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.web.controller.api;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 存量项目管理 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@RequestMapping("/project-inventory")
+public class ProjectInventoryController {
+
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInvestmentController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInvestmentController.java
new file mode 100644
index 0000000..7c15b7d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInvestmentController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.web.controller.api;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 项目投资情况明细表 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@RequestMapping("/project-investment")
+public class ProjectInvestmentController {
+
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectMainController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectMainController.java
new file mode 100644
index 0000000..5dda629
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectMainController.java
@@ -0,0 +1,188 @@
+package com.ruoyi.web.controller.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.model.ContractTemplate;
+import com.ruoyi.system.model.ProjectInvestment;
+import com.ruoyi.system.model.ProjectMain;
+import com.ruoyi.system.model.ProjectSettleItem;
+import com.ruoyi.system.query.ContractTemplateListQuery;
+import com.ruoyi.system.query.ProjectMainListQuery;
+import com.ruoyi.system.query.ProjectPhaseListQuery;
+import com.ruoyi.system.service.ProjectInventoryService;
+import com.ruoyi.system.service.ProjectInvestmentService;
+import com.ruoyi.system.service.ProjectMainService;
+import com.ruoyi.system.service.ProjectSettleItemService;
+import com.ruoyi.system.vo.ProjectMainListVO;
+import com.ruoyi.system.vo.ProjectPhaseListVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.util.Arrays;
+
+/**
+ * <p>
+ * 项目主表 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@Api(tags = "项目管理")
+@RequestMapping("/project-main")
+public class ProjectMainController {
+    @Resource
+    private ProjectMainService projectMainService;
+    @Resource
+    private ProjectInvestmentService projectInvestmentService;
+    @Resource
+    private ProjectSettleItemService projectSettleItemService;
+    @ApiOperation(value = "储备项目分页列表")
+    @PostMapping(value = "/pageList")
+    public R<PageInfo<ProjectMainListVO>> pageList(@RequestBody ProjectMainListQuery query) {
+        return R.ok(projectMainService.pageList(query));
+    }
+    @ApiOperation(value = "添加")
+    @Transactional
+    @Log(title = "储备项目-添加", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/add")
+    public R<Boolean> save(@RequestBody ProjectMain entity) {
+        projectMainService.save(entity);
+        ProjectInvestment projectInvestment1 = entity.getProjectInvestment1();
+        projectInvestment1.setInvestmentType(1);
+        projectInvestment1.setProjectId(entity.getId());
+        projectInvestmentService.save(projectInvestment1);
+        if (entity.getProjectInvestment2() !=null){
+            ProjectInvestment projectInvestment2 = entity.getProjectInvestment2();
+            projectInvestment2.setProjectId(entity.getId());
+            projectInvestment2.setInvestmentType(2);
+            projectInvestmentService.save(projectInvestment2);
+        }
+        return R.ok();
+    }
+    @ApiOperation(value = "修改")
+    @Transactional
+    @Log(title = "储备项目-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/edit")
+    public R<Boolean> edit(@RequestBody ProjectMain entity) {
+        projectMainService.updateById(entity);
+        ProjectInvestment projectInvestment = entity.getProjectInvestment1();
+        projectInvestment.setProjectId(entity.getId());
+        projectInvestmentService.updateById(projectInvestment);
+        if (entity.getProjectInvestment2() !=null){
+            ProjectInvestment projectInvestment2 = entity.getProjectInvestment2();
+            projectInvestment2.setProjectId(entity.getId());
+            projectInvestment2.setInvestmentType(2);
+            projectInvestmentService.updateById(projectInvestment2);
+        }
+        return R.ok();
+    }
+    @ApiOperation(value = "储备项目启动")
+    @Log(title = "储备项目-启动", businessType = BusinessType.UPDATE)
+    @GetMapping(value = "/start")
+    public R<Boolean> start(Integer id) {
+        ProjectMain projectMain = projectMainService.getById(id);
+        if (projectMain.getStatus()!=1){
+            return R.fail("项目已经启动!");
+        }
+        projectMain.setStatus(3);
+        projectMainService.updateById(projectMain);
+        return R.ok();
+    }
+    @ApiOperation(value = "储备项目详情")
+    @GetMapping(value = "/detail")
+    public R<ProjectMain> detail(Integer id ) {
+        ProjectMain projectMain = projectMainService.getById(id);
+        ProjectInvestment projectInvestment1 = projectInvestmentService.lambdaQuery()
+                .eq(ProjectInvestment::getProjectId, id)
+                .eq(ProjectInvestment::getInvestmentType, 1)
+                .last("limit 1").one();
+        projectMain.setProjectInvestment1(projectInvestment1);
+
+        ProjectInvestment projectInvestment2 = projectInvestmentService.lambdaQuery()
+                .eq(ProjectInvestment::getProjectId, id)
+                .eq(ProjectInvestment::getInvestmentType, 2)
+                .last("limit 1").one();
+        projectMain.setProjectInvestment1(projectInvestment2);
+        return R.ok(projectMain);
+    }
+    @Log(title = "储备项目-删除", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "储备项目-删除")
+    @Transactional
+    @DeleteMapping(value = "/delete")
+    public R delete(@RequestParam String ids) {
+        projectInvestmentService.remove(new LambdaQueryWrapper<ProjectInvestment>()
+                .in(ProjectInvestment::getProjectId, Arrays.asList(ids.split(","))));
+        projectMainService.removeByIds(Arrays.asList(ids.split(",")));
+        return R.ok();
+    }
+    @ApiOperation(value = "项目阶段分页列表")
+    @PostMapping(value = "/pageListPhase")
+    public R<PageInfo<ProjectPhaseListVO>> pageListPhase(@RequestBody ProjectPhaseListQuery query) {
+        return R.ok(projectMainService.pageListPhase(query));
+    }
+    @ApiOperation(value = "项目阶段-添加事项")
+    @Log(title = "项目阶段-添加事项", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/addSettleItem")
+    public R<Boolean> addSettleItem(@RequestBody ProjectSettleItem entity) {
+        if (StringUtils.hasLength(entity.getFileUrl())){
+            entity.setStatus(3);
+        }else{
+            if (entity.getSettleTime().isBefore(LocalDate.now())) {
+                entity.setStatus(2);
+            }
+        }
+        projectSettleItemService.save(entity);
+        return R.ok();
+    }
+    @ApiOperation(value = "项目阶段-编辑事项")
+    @Log(title = "项目阶段-编辑事项", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/editSettleItem")
+    public R<Boolean> editSettleItem(@RequestBody ProjectSettleItem entity) {
+        if (StringUtils.hasLength(entity.getFileUrl())){
+            entity.setStatus(3);
+        }else{
+            if (entity.getSettleTime().isBefore(LocalDate.now())) {
+                entity.setStatus(2);
+            }
+        }
+        projectSettleItemService.updateById(entity);
+        return R.ok();
+    }
+    @ApiOperation(value = "项目阶段-事项详情")
+    @GetMapping(value = "/detailSettleItem")
+    public R<ProjectSettleItem> detailSettleItem(Integer id) {
+        return R.ok(projectSettleItemService.getById(id));
+    }
+    @Log(title = "项目阶段-删除事项", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "项目阶段-删除事项")
+    @DeleteMapping(value = "/deleteSettleItem")
+    public R deleteSettleItem(@RequestParam String ids) {
+        projectSettleItemService.removeByIds(Arrays.asList(ids.split(",")));
+        return R.ok();
+    }
+    @ApiOperation(value = "项目进入下一阶段")
+    @Log(title = "项目进入下一阶段", businessType = BusinessType.UPDATE)
+    @GetMapping(value = "/next")
+    public R<Boolean> next(Integer id) {
+        ProjectMain projectMain = projectMainService.getById(id);
+        if (projectMain.getStatus()==5){
+            return R.fail("当前项目已到最后阶段!");
+        }
+        projectMain.setStatus(projectMain.getStatus()+1);
+        projectMainService.updateById(projectMain);
+        return R.ok();
+    }
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectSettleItemController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectSettleItemController.java
new file mode 100644
index 0000000..e07e3ba
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectSettleItemController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.web.controller.api;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 项目阶段办结事项 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@RequestMapping("/project-settle-item")
+public class ProjectSettleItemController {
+
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageController.java
new file mode 100644
index 0000000..46ffad7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageController.java
@@ -0,0 +1,111 @@
+package com.ruoyi.web.controller.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.model.ProjectStorage;
+import com.ruoyi.system.model.ProjectMain;
+import com.ruoyi.system.model.ProjectStorageItem;
+import com.ruoyi.system.query.ProjectStorageListQuery;
+import com.ruoyi.system.query.YearTaskListQuery;
+import com.ruoyi.system.service.*;
+import com.ruoyi.system.vo.ProjectStorageDetailVO;
+import com.ruoyi.system.vo.ProjectStorageListVO;
+import com.ruoyi.system.vo.YearTaskListVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * <p>
+ * 在库项目管理 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@Api(tags = "在库项目管理")
+@RequestMapping("/project-storage")
+public class ProjectStorageController {
+    @Resource
+    private ProjectStorageService projectStorageService;
+
+    @Resource
+    private ProjectStorageItemService projectStorageItemService;
+
+    @ApiOperation(value = "在库项目分页列表")
+    @PostMapping(value = "/pageList")
+    public R<PageInfo<ProjectStorageListVO>> pageList(@RequestBody ProjectStorageListQuery query) {
+        return R.ok(projectStorageService.pageList(query));
+    }
+    @ApiOperation(value = "在库项目-添加")
+    @Log(title = "在库项目-添加", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/add")
+    public R<Boolean> save(@RequestBody ProjectStorage entity) {
+        return R.ok(projectStorageService.save(entity));
+    }
+    @ApiOperation(value = "在库项目-修改")
+    @Log(title = "在库项目-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/edit")
+    public R<Boolean> edit(@RequestBody ProjectStorage entity) {
+        return R.ok(projectStorageService.updateById(entity));
+    }
+    @ApiOperation(value = "详情")
+    @GetMapping(value = "/detail")
+    public R<ProjectStorageDetailVO> detail(Integer id) {
+        ProjectStorageDetailVO res = new ProjectStorageDetailVO();
+        ProjectStorage projectStorage = projectStorageService.getById(id);
+        List<ProjectStorageItem> list = projectStorageItemService.lambdaQuery().eq(ProjectStorageItem::getProjectStorageId, id)
+                .list();
+        res.setProjectName(projectStorage.getProjectName());
+        res.setInTime(projectStorage.getInTime());
+        res.setList(list);
+        return R.ok(res);
+    }
+    @Log(title = "在库项目-投资明细-删除", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "在库项目-投资明细-删除")
+    @Transactional
+    @DeleteMapping(value = "/deleteDetail")
+    public R deleteDetail(@RequestParam String ids) {
+        projectStorageItemService.remove(
+                new LambdaQueryWrapper<ProjectStorageItem>()
+                        .in(ProjectStorageItem::getId, Arrays.asList(ids.split(",")))
+        );
+        return R.ok();
+    }
+    @ApiOperation(value = "在库项目-投资明细-新增")
+    @Log(title = "在库项目-投资明细-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/addDetail")
+    public R<Boolean> addDetail(@RequestBody ProjectStorageItem entity) {
+        return R.ok(projectStorageItemService.save(entity));
+    }
+    @ApiOperation(value = "在库项目-投资明细-修改")
+    @Log(title = "在库项目-投资明细-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/editDetail")
+    public R<Boolean> editDetail(@RequestBody ProjectStorageItem entity) {
+        return R.ok(projectStorageItemService.updateById(entity));
+    }
+    @Log(title = "在库项目-删除", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "在库项目-删除")
+    @Transactional
+    @DeleteMapping(value = "/delete")
+    public R delete(@RequestParam String ids) {
+        projectStorageItemService.remove(
+                new LambdaQueryWrapper<ProjectStorageItem>()
+                        .in(ProjectStorageItem::getProjectStorageId, Arrays.asList(ids.split(",")))
+        );
+        projectStorageService.removeBatchByIds(Arrays.asList(ids.split(",")));
+        return R.ok();
+    }
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageItemController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageItemController.java
new file mode 100644
index 0000000..fffb4d2
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageItemController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.web.controller.api;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 在库项目管理投资明细 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@RequestMapping("/project-storage-item")
+public class ProjectStorageItemController {
+
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskController.java
new file mode 100644
index 0000000..2bdda5f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskController.java
@@ -0,0 +1,127 @@
+package com.ruoyi.web.controller.api;
+
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.dto.YearTaskAuditDTO;
+import com.ruoyi.system.model.ProjectInvestment;
+import com.ruoyi.system.model.ProjectMain;
+import com.ruoyi.system.model.YearTask;
+import com.ruoyi.system.model.YearTaskDetail;
+import com.ruoyi.system.query.ProjectMainListQuery;
+import com.ruoyi.system.query.YearTaskListQuery;
+import com.ruoyi.system.service.*;
+import com.ruoyi.system.vo.ProjectMainListVO;
+import com.ruoyi.system.vo.YearTaskListVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 年度任务主表 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@Api(tags = "年度任务")
+@RequestMapping("/year-task")
+public class YearTaskController {
+    @Resource
+    private YearTaskService yearTaskService;
+    @Resource
+    private ISysUserService sysUserService;
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private YearTaskDetailService yearTaskDetailService;
+    @Resource
+    private ProjectMainService projectMainService;
+
+    @ApiOperation(value = "项目不分页列表")
+    @PostMapping(value = "/listProject")
+    public R<List<ProjectMain>> listProject() {
+        return R.ok(projectMainService.list());
+    }
+    @ApiOperation(value = "年度任务分页列表")
+    @PostMapping(value = "/pageList")
+    public R<PageInfo<YearTaskListVO>> pageList(@RequestBody YearTaskListQuery query) {
+        return R.ok(yearTaskService.pageList(query));
+    }
+    @ApiOperation(value = "添加")
+    @Transactional
+    @Log(title = "年度任务-添加", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/add")
+    public R<Boolean> save(@RequestBody YearTask entity) {
+        yearTaskService.save(entity);
+        List<YearTaskDetail> yearTaskDetails = entity.getYearTaskDetails();
+        for (YearTaskDetail yearTaskDetail : yearTaskDetails) {
+            yearTaskDetail.setYearTaskId(entity.getId());
+        }
+        yearTaskDetailService.saveBatch(yearTaskDetails);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "修改")
+    @Transactional
+    @Log(title = "年度任务-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/edit")
+    public R<Boolean> edit(@RequestBody ProjectMain entity) {
+        projectMainService.updateById(entity);
+        return R.ok();
+    }
+    @ApiOperation(value = "年度任务投资目标-审核")
+    @Transactional
+    @Log(title = "年度任务投资目标-审核", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/audit")
+    public R<Boolean> audit(@RequestBody YearTaskAuditDTO  entity) {
+        YearTaskDetail yearTaskDetail = yearTaskDetailService.getById(entity.getId());
+        yearTaskDetail.setIsAudit( true);
+        yearTaskDetail.setAuditUserId(tokenService.getLoginUser().getUser().getUserId().intValue());
+        yearTaskDetailService.updateById(yearTaskDetail);
+        return R.ok();
+    }
+    @ApiOperation(value = "年度任务投资目标-修改")
+    @Transactional
+    @Log(title = "年度任务投资目标-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/editYearTaskDetail")
+    public R<Boolean> edit(@RequestBody YearTaskDetail  entity) {
+        YearTaskDetail yearTaskDetail = yearTaskDetailService.getById(entity.getId());
+        yearTaskDetail.setIsAudit( true);
+        yearTaskDetail.setCompeleteUserId(tokenService.getLoginUser().getUser().getUserId().intValue());
+        yearTaskDetailService.updateById(yearTaskDetail);
+        return R.ok();
+    }
+    @ApiOperation(value = "年度任务详情")
+    @GetMapping(value = "/detail")
+    public R<YearTask> detail(Integer id ) {
+        YearTask yearTask = yearTaskService.getById(id);
+        List<YearTaskDetail> list = yearTaskDetailService.lambdaQuery()
+                .eq(YearTaskDetail::getYearTaskId, id).list();
+        Map<Long, String> userMaps = sysUserService.selectAllList().stream()
+                .collect(Collectors.toMap(SysUser::getUserId, SysUser::getNickName));
+        for (YearTaskDetail yearTaskDetail : list) {
+            if (yearTaskDetail.getAuditUserId()!=null){
+                yearTaskDetail.setAuditUserName(userMaps.get(Long.valueOf(yearTaskDetail.getAuditUserId())));
+            }
+            if (yearTaskDetail.getCompeleteUserId()!=null){
+                yearTaskDetail.setCompeleteUserName(userMaps.get(Long.valueOf(yearTaskDetail.getCompeleteUserId())));
+            }
+        }
+        yearTask.setYearTaskDetails(list);
+        return R.ok(yearTask);
+    }
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskDetailController.java
new file mode 100644
index 0000000..9da06f1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskDetailController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.web.controller.api;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 年度任务月度目标 前端控制器
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@RestController
+@RequestMapping("/year-task-detail")
+public class YearTaskDetailController {
+
+}
+
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/YearTaskAuditDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/YearTaskAuditDTO.java
new file mode 100644
index 0000000..0a35e0f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/YearTaskAuditDTO.java
@@ -0,0 +1,29 @@
+package com.ruoyi.system.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "年度任务投资目标审核DTO")
+public class YearTaskAuditDTO implements Serializable {
+
+
+    @ApiModelProperty(value = "年度任务投资目标id")
+    private Integer id;
+
+    @ApiModelProperty(value = "审核备注")
+    private String remark;
+
+
+
+
+
+
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainFileMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainFileMapper.java
new file mode 100644
index 0000000..fb187eb
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainFileMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.CaseMainFile;
+
+/**
+ * <p>
+ * 案件分类附件明细 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface CaseMainFileMapper extends BaseMapper<CaseMainFile> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainMapper.java
new file mode 100644
index 0000000..281ecb7
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.CaseMain;
+
+/**
+ * <p>
+ * 案件管理 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface CaseMainMapper extends BaseMapper<CaseMain> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseTypeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseTypeMapper.java
new file mode 100644
index 0000000..9f139dd
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseTypeMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.CaseType;
+
+/**
+ * <p>
+ * 案件分类 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface CaseTypeMapper extends BaseMapper<CaseType> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateMapper.java
new file mode 100644
index 0000000..9fa9675
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateMapper.java
@@ -0,0 +1,22 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.ContractTemplate;
+import com.ruoyi.system.query.ContractTemplateListQuery;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 合同模板库 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ContractTemplateMapper extends BaseMapper<ContractTemplate> {
+
+    List<ContractTemplate> pageList(@Param("query")ContractTemplateListQuery query, @Param("pageInfo")PageInfo<ContractTemplate> pageInfo);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateTypeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateTypeMapper.java
new file mode 100644
index 0000000..9a7c6bb
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateTypeMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.ContractTemplateType;
+import com.ruoyi.system.query.ContractTemplateTypeListQuery;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 合同模板分类 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ContractTemplateTypeMapper extends BaseMapper<ContractTemplateType> {
+
+    List<ContractTemplateType> pageList(@Param("query")ContractTemplateTypeListQuery query, @Param("pageInfo")PageInfo<ContractTemplateType> pageInfo);
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInventoryMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInventoryMapper.java
new file mode 100644
index 0000000..23ca5eb
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInventoryMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.ProjectInventory;
+
+/**
+ * <p>
+ * 存量项目管理 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectInventoryMapper extends BaseMapper<ProjectInventory> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInvestmentMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInvestmentMapper.java
new file mode 100644
index 0000000..876d688
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInvestmentMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.ProjectInvestment;
+
+/**
+ * <p>
+ * 项目投资情况明细表 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectInvestmentMapper extends BaseMapper<ProjectInvestment> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectMainMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectMainMapper.java
new file mode 100644
index 0000000..2fa80b3
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectMainMapper.java
@@ -0,0 +1,29 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.ProjectMain;
+import com.ruoyi.system.query.ProjectMainListQuery;
+import com.ruoyi.system.query.ProjectPhaseListQuery;
+import com.ruoyi.system.vo.ProjectMainListVO;
+import com.ruoyi.system.vo.ProjectPhaseListVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 项目主表 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectMainMapper extends BaseMapper<ProjectMain> {
+
+    List<ProjectMainListVO> pageList(@Param("query")ProjectMainListQuery query,@Param("pageInfo") PageInfo<ProjectMainListVO> pageInfo);
+
+
+    List<ProjectPhaseListVO> pageListPhase(@Param("query")ProjectPhaseListQuery query, @Param("pageInfo")PageInfo<ProjectPhaseListVO> pageInfo);
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectSettleItemMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectSettleItemMapper.java
new file mode 100644
index 0000000..9fcf564
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectSettleItemMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.ProjectSettleItem;
+
+/**
+ * <p>
+ * 项目阶段办结事项 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectSettleItemMapper extends BaseMapper<ProjectSettleItem> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageItemMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageItemMapper.java
new file mode 100644
index 0000000..0678b47
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageItemMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.ProjectStorageItem;
+
+/**
+ * <p>
+ * 在库项目管理投资明细 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectStorageItemMapper extends BaseMapper<ProjectStorageItem> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageMapper.java
new file mode 100644
index 0000000..b8a7037
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.ProjectStorage;
+import com.ruoyi.system.query.ProjectStorageListQuery;
+import com.ruoyi.system.vo.ProjectStorageListVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 在库项目管理 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectStorageMapper extends BaseMapper<ProjectStorage> {
+
+    List<ProjectStorageListVO> pageList(@Param("query")ProjectStorageListQuery query, @Param("pageInfo")PageInfo<ProjectStorageListVO> pageInfo);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskDetailMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskDetailMapper.java
new file mode 100644
index 0000000..652a987
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskDetailMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.YearTaskDetail;
+
+/**
+ * <p>
+ * 年度任务月度目标 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface YearTaskDetailMapper extends BaseMapper<YearTaskDetail> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskMapper.java
new file mode 100644
index 0000000..669abb7
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskMapper.java
@@ -0,0 +1,24 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.YearTask;
+import com.ruoyi.system.query.YearTaskListQuery;
+import com.ruoyi.system.vo.YearTaskListVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 年度任务主表 Mapper 接口
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface YearTaskMapper extends BaseMapper<YearTask> {
+
+    List<YearTaskListVO> pageList(@Param("query")YearTaskListQuery query, @Param("pageInfo")PageInfo<YearTaskListVO> pageInfo);
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMain.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMain.java
new file mode 100644
index 0000000..7908be4
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMain.java
@@ -0,0 +1,72 @@
+package com.ruoyi.system.model;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 案件管理
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("case_main")
+@ApiModel(value="CaseMain对象", description="案件管理")
+public class CaseMain implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "案件名称")
+    @TableField("case_name")
+    private String caseName;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+    @ApiModelProperty(value = "案件年份")
+    @TableField("case_year")
+    private String caseYear;
+
+    @ApiModelProperty(value = "案件类型id")
+    @TableField("type_id")
+    private Integer typeId;
+
+    @ApiModelProperty(value = "所属部门")
+    @TableField("dept_id")
+    private Integer deptId;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMainFile.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMainFile.java
new file mode 100644
index 0000000..6ef9b07
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMainFile.java
@@ -0,0 +1,68 @@
+package com.ruoyi.system.model;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 案件分类附件明细
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("case_main_file")
+@ApiModel(value="CaseMainFile对象", description="案件分类附件明细")
+public class CaseMainFile implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "名称")
+    @TableField("file_name")
+    private String fileName;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+    @ApiModelProperty(value = "案件id")
+    @TableField("case_id")
+    private Integer caseId;
+
+    @ApiModelProperty(value = "文件地址")
+    @TableField("file_url")
+    private String fileUrl;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/CaseType.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/CaseType.java
new file mode 100644
index 0000000..efd3aca
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/CaseType.java
@@ -0,0 +1,60 @@
+package com.ruoyi.system.model;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 案件分类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("case_type")
+@ApiModel(value="CaseType对象", description="案件分类")
+public class CaseType implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "案件分类名称")
+    @TableField("type_name")
+    private String typeName;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplate.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplate.java
new file mode 100644
index 0000000..ed8bd1f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplate.java
@@ -0,0 +1,68 @@
+package com.ruoyi.system.model;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 合同模板库
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("contract_template")
+@ApiModel(value="ContractTemplate对象", description="合同模板库")
+public class ContractTemplate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "合同模板名称")
+    @TableField("template_name")
+    private String templateName;
+
+    @ApiModelProperty(value = "合同分类id")
+    @TableField("type_id")
+    private Integer typeId;
+
+    @ApiModelProperty(value = "合同模板文件")
+    @TableField("file_url")
+    private String fileUrl;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplateType.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplateType.java
new file mode 100644
index 0000000..db1dc63
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplateType.java
@@ -0,0 +1,60 @@
+package com.ruoyi.system.model;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 合同模板分类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("contract_template_type")
+@ApiModel(value="ContractTemplateType对象", description="合同模板分类")
+public class ContractTemplateType implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "合同模板名称")
+    @TableField("type_name")
+    private String typeName;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInventory.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInventory.java
new file mode 100644
index 0000000..2f0022a
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInventory.java
@@ -0,0 +1,86 @@
+package com.ruoyi.system.model;
+
+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.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 存量项目管理
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("project_inventory")
+@ApiModel(value="ProjectInventory对象", description="存量项目管理")
+public class ProjectInventory implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "固定资产投资任务(万元)")
+    @TableField("investment_task")
+    private BigDecimal investmentTask;
+
+    @ApiModelProperty(value = "固定资产已完成情况(万元)")
+    @TableField("investment_task_finish")
+    private BigDecimal investmentTaskFinish;
+
+    @ApiModelProperty(value = "固定资产完成比例")
+    @TableField("investment_task_rating")
+    private BigDecimal investmentTaskRating;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+    @ApiModelProperty(value = "新增入库任务(万元)")
+    @TableField("storage_task")
+    private BigDecimal storageTask;
+
+    @ApiModelProperty(value = "新增入库完成情况(万元)")
+    @TableField("storage_task_finish")
+    private BigDecimal storageTaskFinish;
+
+    @ApiModelProperty(value = "新增入库完成比例")
+    @TableField("storage_task_rating")
+    private BigDecimal storageTaskRating;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInvestment.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInvestment.java
new file mode 100644
index 0000000..71cb9ed
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInvestment.java
@@ -0,0 +1,114 @@
+package com.ruoyi.system.model;
+
+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.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 项目投资情况明细表
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("project_investment")
+@ApiModel(value="ProjectInvestment对象", description="项目投资情况明细表")
+public class ProjectInvestment implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+    @ApiModelProperty(value = "中央预算内投资")
+    @TableField("central_budget_investment")
+    private BigDecimal centralBudgetInvestment;
+
+    @ApiModelProperty(value = "中央补助金")
+    @TableField("central_subsidy_funds")
+    private BigDecimal centralSubsidyFunds;
+
+    @ApiModelProperty(value = "省级补助金")
+    @TableField("provincial_subsidy_funds")
+    private BigDecimal provincialSubsidyFunds;
+
+    @ApiModelProperty(value = "地方政府转向债券资金")
+    @TableField("special_bond_funds")
+    private BigDecimal specialBondFunds;
+
+    @ApiModelProperty(value = "地方政府一般债券资金")
+    @TableField("general_bond_funds")
+    private BigDecimal generalBondFunds;
+
+    @ApiModelProperty(value = "政策性开发性金融工具(基金)")
+    @TableField("fund")
+    private BigDecimal fund;
+
+    @ApiModelProperty(value = "超长期特别国债")
+    @TableField("stbs")
+    private BigDecimal stbs;
+
+    @ApiModelProperty(value = "自有资金")
+    @TableField("own_funds")
+    private BigDecimal ownFunds;
+
+    @ApiModelProperty(value = "银行贷款")
+    @TableField("bank_loans")
+    private BigDecimal bankLoans;
+
+    @ApiModelProperty(value = "其他")
+    @TableField("other")
+    private BigDecimal other;
+
+    @ApiModelProperty(value = "合计(万元)")
+    @TableField("total_amount")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty(value = "类型 1资金计划 2已到位资金")
+    @TableField("investment_type")
+    private Integer investmentType;
+
+    @ApiModelProperty(value = "项目id")
+    @TableField("project_id")
+    private Integer projectId;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectMain.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectMain.java
new file mode 100644
index 0000000..cae9899
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectMain.java
@@ -0,0 +1,157 @@
+package com.ruoyi.system.model;
+
+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.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 项目主表
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("project_main")
+@ApiModel(value="ProjectMain对象", description="项目主表")
+public class ProjectMain implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "项目名称")
+    @TableField("project_name")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目类型")
+    @TableField("project_type")
+    private String projectType;
+
+    @ApiModelProperty(value = "投资项目代码")
+    @TableField("project_code")
+    private String projectCode;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+    @ApiModelProperty(value = "审批监管平台项目名称:")
+    @TableField("platform_name")
+    private String platformName;
+
+    @ApiModelProperty(value = "建设性质")
+    @TableField("build_type")
+    private String buildType;
+
+    @ApiModelProperty(value = "国别")
+    @TableField("different_countries")
+    private String differentCountries;
+
+    @ApiModelProperty(value = "建设地点")
+    @TableField("build")
+    private String build;
+
+    @ApiModelProperty(value = "建设地点详细地址")
+    @TableField("build_address_detail")
+    private String buildAddressDetail;
+
+    @ApiModelProperty(value = "建设地点详情")
+    @TableField("build_detail")
+    private String buildDetail;
+
+    @ApiModelProperty(value = "国标行业")
+    @TableField("national_standard_industry")
+    private String nationalStandardIndustry;
+
+    @ApiModelProperty(value = "所属行业")
+    @TableField("industry")
+    private String industry;
+
+    @ApiModelProperty(value = "是否有民间投资0否1是")
+    @TableField("is_private_investment")
+    private Boolean isPrivateInvestment;
+
+    @ApiModelProperty(value = "民间投资金额 单位(万元)")
+    @TableField("private_investment_amount")
+    private BigDecimal privateInvestmentAmount;
+
+    @ApiModelProperty(value = "总投资金额(万元)")
+    @TableField("investment_amount")
+    private BigDecimal investmentAmount;
+
+    @ApiModelProperty(value = "开工或拟开工日期")
+    @TableField("start_time")
+    private LocalDate startTime;
+
+    @ApiModelProperty(value = "竣工日期")
+    @TableField("end_time")
+    private LocalDate endTime;
+
+    @ApiModelProperty(value = "主要建设规模")
+    @TableField("construction_scale")
+    private String constructionScale;
+
+    @ApiModelProperty(value = "建设内容(年度)")
+    @TableField("construction_content")
+    private String constructionContent;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
+
+    @ApiModelProperty(value = "日常监管直接责任单位")
+    @TableField("responsible_unit")
+    private String responsibleUnit;
+
+    @ApiModelProperty(value = "项目(法人)单位")
+    @TableField("project_unit")
+    private String projectUnit;
+
+    @ApiModelProperty(value = "项目阶段 1储备(未动工) 2前期 3实施 4验收 5运营")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "投资情况")
+    @TableField(exist = false)
+    private ProjectInvestment projectInvestment1;
+
+    @ApiModelProperty(value = "已到位资金")
+    @TableField(exist = false)
+    private ProjectInvestment projectInvestment2;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectSettleItem.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectSettleItem.java
new file mode 100644
index 0000000..29cc22d
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectSettleItem.java
@@ -0,0 +1,110 @@
+package com.ruoyi.system.model;
+
+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.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 项目阶段办结事项
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("project_settle_item")
+@ApiModel(value="ProjectSettleItem对象", description="项目阶段办结事项")
+public class ProjectSettleItem implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "项目id")
+    @TableField("project_id")
+    private Integer projectId;
+
+    @ApiModelProperty(value = "所属项目阶段 1前期2实施3验收4运营")
+    @TableField("stage")
+    private Integer stage;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+    @ApiModelProperty(value = "事项名称")
+    @TableField("settle_name")
+    private String settleName;
+
+    @ApiModelProperty(value = "责任部门id")
+    @TableField("dept_id")
+    private Integer deptId;
+
+    @ApiModelProperty(value = "经办人员id")
+    @TableField("user_id")
+    private Integer userId;
+
+    @ApiModelProperty(value = "办结时限(应办结时间)")
+    @TableField("settle_time")
+    private LocalDate settleTime;
+
+    @ApiModelProperty(value = "事项办结附件信息")
+    @TableField("file_url")
+    private String fileUrl;
+
+    @ApiModelProperty(value = "办结时间")
+    @TableField("settle_finish_time")
+    private LocalDateTime settleFinishTime;
+
+    @ApiModelProperty(value = "办结状态 1待办结 2已逾期 3已办结")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "事项类型 1项目事项 2款项记录")
+    @TableField("settle_type")
+    private Integer settleType;
+
+    @ApiModelProperty(value = "进度 事项类型为2存储")
+    @TableField("speed_of_progress")
+    private String speedOfProgress;
+
+    @ApiModelProperty(value = "金额 事项类型为2存储")
+    @TableField("amount")
+    private BigDecimal amount;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorage.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorage.java
new file mode 100644
index 0000000..66d3ac5
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorage.java
@@ -0,0 +1,87 @@
+package com.ruoyi.system.model;
+
+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.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 在库项目管理
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("project_storage")
+@ApiModel(value="ProjectStorage对象", description="在库项目管理")
+public class ProjectStorage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "项目名称")
+    @TableField("project_name")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目编号")
+    @TableField("project_code")
+    private String projectCode;
+
+    @ApiModelProperty(value = "项目总投资")
+    @TableField("total_amount")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+    @ApiModelProperty(value = "入库时间")
+    @TableField("in_time")
+    private LocalDate inTime;
+
+    @ApiModelProperty(value = "状态 1在库 2出库")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "出库时间")
+    @TableField("out_time")
+    private LocalDate outTime;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorageItem.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorageItem.java
new file mode 100644
index 0000000..43e073c
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorageItem.java
@@ -0,0 +1,74 @@
+package com.ruoyi.system.model;
+
+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.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 在库项目管理投资明细
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("project_storage_item")
+@ApiModel(value="ProjectStorageItem对象", description="在库项目管理投资明细")
+public class ProjectStorageItem implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "月份 yyyy-MM")
+    @TableField("month")
+    private String month;
+
+    @ApiModelProperty(value = "月上报资金")
+    @TableField("amount")
+    private BigDecimal amount;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+    @ApiModelProperty(value = "在库项目id")
+    @TableField("project_storage_id")
+    private Integer projectStorageId;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/YearTask.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/YearTask.java
new file mode 100644
index 0000000..be783b1
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/YearTask.java
@@ -0,0 +1,83 @@
+package com.ruoyi.system.model;
+
+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.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 年度任务主表
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("year_task")
+@ApiModel(value="YearTask对象", description="年度任务主表")
+public class YearTask implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "年份")
+    @TableField("year")
+    private String year;
+
+    @ApiModelProperty(value = "项目id")
+    @TableField("project_id")
+    private Integer projectId;
+
+    @ApiModelProperty(value = "年度任务目标")
+    @TableField("target")
+    private String target;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+    @ApiModelProperty(value = "总体投资目标(万元)")
+    @TableField("total_amount")
+    private BigDecimal totalAmount;
+    @ApiModelProperty(value = "月度目标")
+    @TableField(exist = false)
+    private List<YearTaskDetail> yearTaskDetails;
+
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/YearTaskDetail.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/YearTaskDetail.java
new file mode 100644
index 0000000..abc8797
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/YearTaskDetail.java
@@ -0,0 +1,107 @@
+package com.ruoyi.system.model;
+
+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.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 年度任务月度目标
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("year_task_detail")
+@ApiModel(value="YearTaskDetail对象", description="年度任务月度目标")
+public class YearTaskDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "月份")
+    @TableField("month")
+    private Integer month;
+
+    @ApiModelProperty(value = "年度任务id")
+    @TableField("year_task_id")
+    private Integer yearTaskId;
+
+    @ApiModelProperty(value = "计划进度")
+    @TableField("progress")
+    private String progress;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "是否删除 0-否,1-是")
+    @TableField("disabled")
+    private Boolean disabled;
+
+    @ApiModelProperty(value = "月投资计划(万元)")
+    @TableField("amount")
+    private BigDecimal amount;
+
+    @ApiModelProperty(value = "实际完成情况")
+    @TableField("real_progress")
+    private String realProgress;
+
+    @ApiModelProperty(value = "实际月投资情况")
+    @TableField("real_amount")
+    private BigDecimal realAmount;
+
+    @ApiModelProperty(value = "完成人")
+    @TableField("compelete_user_id")
+    private Integer compeleteUserId;
+
+    @ApiModelProperty(value = "审核情况0未审核 2已审核")
+    @TableField("is_audit")
+    private Boolean isAudit;
+
+    @ApiModelProperty(value = "审核人id")
+    @TableField("audit_user_id")
+    private Integer auditUserId;
+
+    @ApiModelProperty(value = "审核备注")
+    @TableField("remark")
+    private String remark;
+
+    @ApiModelProperty(value = "完成人")
+    @TableField(exist = false)
+    private String compeleteUserName;
+    @ApiModelProperty(value = "完成人")
+    @TableField(exist = false)
+    private String auditUserName;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateListQuery.java
new file mode 100644
index 0000000..8d49382
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateListQuery.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "合同分类分页列表query")
+public class ContractTemplateListQuery extends BasePage {
+
+
+    @ApiModelProperty(value = "分类名称")
+    private String templateName;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateTypeListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateTypeListQuery.java
new file mode 100644
index 0000000..7a857e3
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateTypeListQuery.java
@@ -0,0 +1,19 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@ApiModel(value = "合同分类类型分页列表query")
+public class ContractTemplateTypeListQuery extends BasePage {
+
+
+    @ApiModelProperty(value = "分类名称")
+    private String typeName;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectMainListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectMainListQuery.java
new file mode 100644
index 0000000..b14a16f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectMainListQuery.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.query;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "储备项目列表分页列表query")
+public class ProjectMainListQuery extends BasePage {
+
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+    @ApiModelProperty(value = "投资项目代码")
+    private String projectCode;
+    @ApiModelProperty(value = "项目类型")
+    private String projectType;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPhaseListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPhaseListQuery.java
new file mode 100644
index 0000000..035f134
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPhaseListQuery.java
@@ -0,0 +1,22 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "项目阶段事项列表分页列表query")
+public class ProjectPhaseListQuery extends BasePage {
+
+
+    @ApiModelProperty(value = "项目名称")
+    private Integer status;
+    @ApiModelProperty(value = "项目id")
+    private String projectId;
+    @ApiModelProperty(value = "事项标题")
+    private String settleName;
+    @ApiModelProperty(value = "所属项目阶段 1前期2实施3验收4运营")
+    private Integer stage;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectStorageListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectStorageListQuery.java
new file mode 100644
index 0000000..b13eea4
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectStorageListQuery.java
@@ -0,0 +1,18 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "在库项目列表分页列表query")
+public class ProjectStorageListQuery extends BasePage {
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+    @ApiModelProperty(value = "年度")
+    private String year;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/YearTaskListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/YearTaskListQuery.java
new file mode 100644
index 0000000..f2af181
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/YearTaskListQuery.java
@@ -0,0 +1,19 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "年度任务列表分页列表query")
+public class YearTaskListQuery extends BasePage {
+
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+    @ApiModelProperty(value = "年度")
+    private String year;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainFileService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainFileService.java
new file mode 100644
index 0000000..645c2fc
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainFileService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.CaseMainFile;
+
+/**
+ * <p>
+ * 案件分类附件明细 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface CaseMainFileService extends IService<CaseMainFile> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainService.java
new file mode 100644
index 0000000..cc6df47
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.CaseMain;
+
+/**
+ * <p>
+ * 案件管理 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface CaseMainService extends IService<CaseMain> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/CaseTypeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/CaseTypeService.java
new file mode 100644
index 0000000..d19bcf1
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/CaseTypeService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.CaseType;
+
+/**
+ * <p>
+ * 案件分类 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface CaseTypeService extends IService<CaseType> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateService.java
new file mode 100644
index 0000000..0273348
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateService.java
@@ -0,0 +1,19 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.ContractTemplate;
+import com.ruoyi.system.query.ContractTemplateListQuery;
+
+/**
+ * <p>
+ * 合同模板库 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ContractTemplateService extends IService<ContractTemplate> {
+
+    PageInfo<ContractTemplate> pageList(ContractTemplateListQuery query);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateTypeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateTypeService.java
new file mode 100644
index 0000000..04d1ef8
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateTypeService.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.ContractTemplateType;
+import com.ruoyi.system.query.ContractTemplateTypeListQuery;
+
+/**
+ * <p>
+ * 合同模板分类 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ContractTemplateTypeService extends IService<ContractTemplateType> {
+
+    PageInfo<ContractTemplateType> pageList(ContractTemplateTypeListQuery query);
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInventoryService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInventoryService.java
new file mode 100644
index 0000000..217d02e
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInventoryService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.ProjectInventory;
+
+/**
+ * <p>
+ * 存量项目管理 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectInventoryService extends IService<ProjectInventory> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInvestmentService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInvestmentService.java
new file mode 100644
index 0000000..081999e
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInvestmentService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.ProjectInvestment;
+
+/**
+ * <p>
+ * 项目投资情况明细表 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectInvestmentService extends IService<ProjectInvestment> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectMainService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectMainService.java
new file mode 100644
index 0000000..115719f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectMainService.java
@@ -0,0 +1,24 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.ProjectMain;
+import com.ruoyi.system.query.ProjectMainListQuery;
+import com.ruoyi.system.query.ProjectPhaseListQuery;
+import com.ruoyi.system.vo.ProjectMainListVO;
+import com.ruoyi.system.vo.ProjectPhaseListVO;
+
+/**
+ * <p>
+ * 项目主表 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectMainService extends IService<ProjectMain> {
+
+    PageInfo<ProjectMainListVO> pageList(ProjectMainListQuery query);
+
+    PageInfo<ProjectPhaseListVO> pageListPhase(ProjectPhaseListQuery query);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectSettleItemService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectSettleItemService.java
new file mode 100644
index 0000000..b2f653d
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectSettleItemService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.ProjectSettleItem;
+
+/**
+ * <p>
+ * 项目阶段办结事项 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectSettleItemService extends IService<ProjectSettleItem> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageItemService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageItemService.java
new file mode 100644
index 0000000..d0205b5
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageItemService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.ProjectStorageItem;
+
+/**
+ * <p>
+ * 在库项目管理投资明细 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectStorageItemService extends IService<ProjectStorageItem> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageService.java
new file mode 100644
index 0000000..c5dbe0f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageService.java
@@ -0,0 +1,22 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.ProjectStorage;
+import com.ruoyi.system.query.ProjectStorageListQuery;
+import com.ruoyi.system.query.YearTaskListQuery;
+import com.ruoyi.system.vo.ProjectStorageListVO;
+import com.ruoyi.system.vo.YearTaskListVO;
+
+/**
+ * <p>
+ * 在库项目管理 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface ProjectStorageService extends IService<ProjectStorage> {
+
+    PageInfo<ProjectStorageListVO> pageList(ProjectStorageListQuery query);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskDetailService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskDetailService.java
new file mode 100644
index 0000000..630f93e
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskDetailService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.YearTaskDetail;
+
+/**
+ * <p>
+ * 年度任务月度目标 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface YearTaskDetailService extends IService<YearTaskDetail> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskService.java
new file mode 100644
index 0000000..6cce18c
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskService.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.YearTask;
+import com.ruoyi.system.query.YearTaskListQuery;
+import com.ruoyi.system.vo.YearTaskListVO;
+
+/**
+ * <p>
+ * 年度任务主表 服务类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+public interface YearTaskService extends IService<YearTask> {
+
+    PageInfo<YearTaskListVO> pageList(YearTaskListQuery query);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainFileServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainFileServiceImpl.java
new file mode 100644
index 0000000..12cd082
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainFileServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.CaseMainFileMapper;
+import com.ruoyi.system.model.CaseMainFile;
+import com.ruoyi.system.service.CaseMainFileService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 案件分类附件明细 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class CaseMainFileServiceImpl extends ServiceImpl<CaseMainFileMapper, CaseMainFile> implements CaseMainFileService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainServiceImpl.java
new file mode 100644
index 0000000..116ede6
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.CaseMainMapper;
+import com.ruoyi.system.model.CaseMain;
+import com.ruoyi.system.service.CaseMainService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 案件管理 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class CaseMainServiceImpl extends ServiceImpl<CaseMainMapper, CaseMain> implements CaseMainService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseTypeServiceImpl.java
new file mode 100644
index 0000000..0026cc0
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseTypeServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.CaseTypeMapper;
+import com.ruoyi.system.model.CaseType;
+import com.ruoyi.system.service.CaseTypeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 案件分类 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class CaseTypeServiceImpl extends ServiceImpl<CaseTypeMapper, CaseType> implements CaseTypeService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateServiceImpl.java
new file mode 100644
index 0000000..cc9e643
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateServiceImpl.java
@@ -0,0 +1,33 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.mapper.ContractTemplateMapper;
+import com.ruoyi.system.model.ContractTemplate;
+import com.ruoyi.system.model.ContractTemplateType;
+import com.ruoyi.system.query.ContractTemplateListQuery;
+import com.ruoyi.system.service.ContractTemplateService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 合同模板库 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class ContractTemplateServiceImpl extends ServiceImpl<ContractTemplateMapper, ContractTemplate> implements ContractTemplateService {
+
+    @Override
+    public PageInfo<ContractTemplate> pageList(ContractTemplateListQuery query) {
+        PageInfo<ContractTemplate> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<ContractTemplate> list = this.baseMapper.pageList(query,pageInfo);
+
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateTypeServiceImpl.java
new file mode 100644
index 0000000..da6f72a
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateTypeServiceImpl.java
@@ -0,0 +1,32 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.mapper.ContractTemplateTypeMapper;
+import com.ruoyi.system.model.ContractTemplateType;
+import com.ruoyi.system.query.ContractTemplateTypeListQuery;
+import com.ruoyi.system.service.ContractTemplateTypeService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 合同模板分类 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class ContractTemplateTypeServiceImpl extends ServiceImpl<ContractTemplateTypeMapper, ContractTemplateType> implements ContractTemplateTypeService {
+
+    @Override
+    public PageInfo<ContractTemplateType> pageList(ContractTemplateTypeListQuery query) {
+        PageInfo<ContractTemplateType> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<ContractTemplateType> list = this.baseMapper.pageList(query,pageInfo);
+
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInventoryServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInventoryServiceImpl.java
new file mode 100644
index 0000000..1afbdbb
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInventoryServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.ProjectInventoryMapper;
+import com.ruoyi.system.model.ProjectInventory;
+import com.ruoyi.system.service.ProjectInventoryService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 存量项目管理 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class ProjectInventoryServiceImpl extends ServiceImpl<ProjectInventoryMapper, ProjectInventory> implements ProjectInventoryService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInvestmentServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInvestmentServiceImpl.java
new file mode 100644
index 0000000..836255e
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInvestmentServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.ProjectInvestmentMapper;
+import com.ruoyi.system.model.ProjectInvestment;
+import com.ruoyi.system.service.ProjectInvestmentService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 项目投资情况明细表 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class ProjectInvestmentServiceImpl extends ServiceImpl<ProjectInvestmentMapper, ProjectInvestment> implements ProjectInvestmentService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectMainServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectMainServiceImpl.java
new file mode 100644
index 0000000..ceca24b
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectMainServiceImpl.java
@@ -0,0 +1,81 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.mapper.ProjectMainMapper;
+import com.ruoyi.system.model.ContractTemplate;
+import com.ruoyi.system.model.ProjectMain;
+import com.ruoyi.system.query.ProjectMainListQuery;
+import com.ruoyi.system.query.ProjectPhaseListQuery;
+import com.ruoyi.system.service.ProjectMainService;
+import com.ruoyi.system.vo.ProjectMainListVO;
+import com.ruoyi.system.vo.ProjectPhaseListVO;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.List;
+
+/**
+ * <p>
+ * 项目主表 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class ProjectMainServiceImpl extends ServiceImpl<ProjectMainMapper, ProjectMain> implements ProjectMainService {
+
+    @Override
+    public PageInfo<ProjectMainListVO> pageList(ProjectMainListQuery query) {
+        PageInfo<ProjectMainListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<ProjectMainListVO> list = this.baseMapper.pageList(query, pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+
+    public static void main(String[] args) {
+        LocalDate date1 = LocalDate.of(2023, 1, 10);
+        LocalDate date2 = LocalDate.of(2023, 1, 1);
+
+        long daysBetween = ChronoUnit.DAYS.between(date1, date2);
+        System.out.println(daysBetween); // 输出: 9
+    }
+
+    @Override
+    public PageInfo<ProjectPhaseListVO> pageListPhase(ProjectPhaseListQuery query) {
+        PageInfo<ProjectPhaseListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<ProjectPhaseListVO> list = this.baseMapper.pageListPhase(query, pageInfo);
+        for (ProjectPhaseListVO projectPhaseListVO : list) {
+            LocalDate createTime = projectPhaseListVO.getCreateTime().toLocalDate();
+            LocalDate settleTime = projectPhaseListVO.getSettleTime();
+            if (createTime.isAfter(settleTime)){
+                projectPhaseListVO.setSettleTimeRange(0);
+            }else{
+                long daysBetween = ChronoUnit.DAYS.between(createTime, settleTime)+1;
+                projectPhaseListVO.setSettleTimeRange((int) daysBetween);
+            }
+            // 根据settleTime 赋值warningStatus,红灯:办结时限前一周橙灯:办结时限前15天 黄灯:办结时限前30天 绿灯:正常状态,未到办结事项预警时限或已办结
+            if (StringUtils.hasLength(projectPhaseListVO.getFileUrl())){
+                projectPhaseListVO.setWarningStatus(1);
+            }else{
+                if (projectPhaseListVO.getSettleTime().isBefore(LocalDate.now().plusDays(7))) {
+                    projectPhaseListVO.setWarningStatus(4);
+                } else if (projectPhaseListVO.getSettleTime().isBefore(LocalDate.now().plusDays(15))) {
+                    projectPhaseListVO.setWarningStatus(3);
+                } else if (projectPhaseListVO.getSettleTime().isBefore(LocalDate.now().plusDays(30))) {
+                    projectPhaseListVO.setWarningStatus(2);
+                } else {
+                    projectPhaseListVO.setWarningStatus(1);
+                }
+            }
+
+
+        }
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectSettleItemServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectSettleItemServiceImpl.java
new file mode 100644
index 0000000..2e32570
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectSettleItemServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.ProjectSettleItemMapper;
+import com.ruoyi.system.model.ProjectSettleItem;
+import com.ruoyi.system.service.ProjectSettleItemService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 项目阶段办结事项 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class ProjectSettleItemServiceImpl extends ServiceImpl<ProjectSettleItemMapper, ProjectSettleItem> implements ProjectSettleItemService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageItemServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageItemServiceImpl.java
new file mode 100644
index 0000000..549d181
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageItemServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.ProjectStorageItemMapper;
+import com.ruoyi.system.model.ProjectStorageItem;
+import com.ruoyi.system.service.ProjectStorageItemService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 在库项目管理投资明细 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class ProjectStorageItemServiceImpl extends ServiceImpl<ProjectStorageItemMapper, ProjectStorageItem> implements ProjectStorageItemService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageServiceImpl.java
new file mode 100644
index 0000000..dc1400f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageServiceImpl.java
@@ -0,0 +1,97 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.mapper.ProjectStorageItemMapper;
+import com.ruoyi.system.mapper.ProjectStorageMapper;
+import com.ruoyi.system.model.ContractTemplate;
+import com.ruoyi.system.model.ProjectStorage;
+import com.ruoyi.system.model.ProjectStorageItem;
+import com.ruoyi.system.query.ProjectStorageListQuery;
+import com.ruoyi.system.query.YearTaskListQuery;
+import com.ruoyi.system.service.ProjectStorageItemService;
+import com.ruoyi.system.service.ProjectStorageService;
+import com.ruoyi.system.vo.ProjectStorageListVO;
+import com.ruoyi.system.vo.YearTaskListVO;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 在库项目管理 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class ProjectStorageServiceImpl extends ServiceImpl<ProjectStorageMapper, ProjectStorage> implements ProjectStorageService {
+
+
+    @Autowired
+    private ProjectStorageItemMapper projectStorageItemMapper;
+    @Override
+    public PageInfo<ProjectStorageListVO> pageList(ProjectStorageListQuery query) {
+        PageInfo<ProjectStorageListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<ProjectStorageListVO> list = this.baseMapper.pageList(query,pageInfo);
+        List<Integer> storageIds = list.stream().map(ProjectStorage::getId).collect(Collectors.toList());
+
+        int year = LocalDate.now().getYear();
+        if (storageIds.isEmpty()){
+            return new PageInfo<>();
+        }
+        // 本年
+        Map<Integer, List<ProjectStorageItem>> itemMaps = projectStorageItemMapper.selectList(new LambdaQueryWrapper<ProjectStorageItem>()
+                        .like(ProjectStorageItem::getMonth, year)
+                        .in(ProjectStorageItem::getProjectStorageId, storageIds)).stream()
+                .collect(Collectors.groupingBy(ProjectStorageItem::getProjectStorageId));
+        // 所有
+        Map<Integer, List<ProjectStorageItem>> itemMaps1 = projectStorageItemMapper.selectList(new LambdaQueryWrapper<ProjectStorageItem>()
+                        .in(ProjectStorageItem::getProjectStorageId, storageIds)).stream()
+                .collect(Collectors.groupingBy(ProjectStorageItem::getProjectStorageId));
+        // 查询
+        Map<Integer, List<ProjectStorageItem>> itemMaps2 = projectStorageItemMapper.selectList(new LambdaQueryWrapper<ProjectStorageItem>()
+                        .like(StringUtils.hasLength(query.getYear()),ProjectStorageItem::getMonth, query.getYear())
+                        .in(ProjectStorageItem::getProjectStorageId, storageIds)).stream()
+                .collect(Collectors.groupingBy(ProjectStorageItem::getProjectStorageId));
+
+        for (ProjectStorageListVO projectStorageListVO : list) {
+             BigDecimal yearAmount          = new BigDecimal("0");
+             BigDecimal allAmount           = new BigDecimal("0");
+            List<ProjectStorageItem> projectStorageItems2 = itemMaps2.get(projectStorageListVO.getId());
+            for (ProjectStorageItem projectStorageItem : projectStorageItems2) {
+                if (StringUtils.hasLength(query.getYear())){
+                        allAmount = allAmount.add(projectStorageItem.getAmount());
+                        yearAmount = yearAmount.add(projectStorageItem.getAmount());
+                }else{
+                    // 本年所有
+                    List<ProjectStorageItem> projectStorageItems1 = itemMaps1.get(projectStorageListVO.getId());
+                    for (ProjectStorageItem storageItem : projectStorageItems1) {
+                        allAmount = allAmount.add(storageItem.getAmount());
+                    }
+                    // 本年
+                    List<ProjectStorageItem> projectStorageItems = itemMaps.get(projectStorageListVO.getId());
+                    for (ProjectStorageItem storageItem : projectStorageItems) {
+                        yearAmount = yearAmount.add(storageItem.getAmount());
+                    }
+
+                }
+            }
+            projectStorageListVO.setAllAmount(allAmount);
+            projectStorageListVO.setYearAmount(yearAmount);
+            projectStorageListVO.setRemainingAmount(projectStorageListVO.getTotalAmount().subtract(allAmount));
+
+        }
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskDetailServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskDetailServiceImpl.java
new file mode 100644
index 0000000..bfdeb4c
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskDetailServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.YearTaskDetailMapper;
+import com.ruoyi.system.model.YearTaskDetail;
+import com.ruoyi.system.service.YearTaskDetailService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 年度任务月度目标 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class YearTaskDetailServiceImpl extends ServiceImpl<YearTaskDetailMapper, YearTaskDetail> implements YearTaskDetailService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskServiceImpl.java
new file mode 100644
index 0000000..57693d6
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskServiceImpl.java
@@ -0,0 +1,33 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.mapper.YearTaskMapper;
+import com.ruoyi.system.model.YearTask;
+import com.ruoyi.system.query.YearTaskListQuery;
+import com.ruoyi.system.service.YearTaskService;
+import com.ruoyi.system.vo.ProjectMainListVO;
+import com.ruoyi.system.vo.YearTaskListVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 年度任务主表 服务实现类
+ * </p>
+ *
+ * @author WuGuanFengYue
+ * @since 2025-10-16
+ */
+@Service
+public class YearTaskServiceImpl extends ServiceImpl<YearTaskMapper, YearTask> implements YearTaskService {
+
+    @Override
+    public PageInfo<YearTaskListVO> pageList(YearTaskListQuery query) {
+        PageInfo<YearTaskListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<YearTaskListVO> list = this.baseMapper.pageList(query, pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectMainListVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectMainListVO.java
new file mode 100644
index 0000000..4089219
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectMainListVO.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.system.model.ProjectMain;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@ApiModel(value = "储备项目列表返回VO")
+public class ProjectMainListVO extends ProjectMain {
+    @ApiModelProperty(value = "项目进度")
+    private String projectProgress;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPhaseListVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPhaseListVO.java
new file mode 100644
index 0000000..43c5a7c
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPhaseListVO.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.system.model.ProjectMain;
+import com.ruoyi.system.model.ProjectSettleItem;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "项目阶段事项列表返回VO")
+public class ProjectPhaseListVO extends ProjectSettleItem {
+    @ApiModelProperty(value = "预警状态 1绿 2黄 3橙 4红")
+    private Integer warningStatus;
+    @ApiModelProperty(value = "责任部门名称")
+    private String deptName;
+    @ApiModelProperty(value = "经办人员名称")
+    private String nickName;
+    @ApiModelProperty(value = "办结时限(天)")
+    private Integer settleTimeRange;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageDetailVO.java
new file mode 100644
index 0000000..c7cc17b
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageDetailVO.java
@@ -0,0 +1,26 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.system.model.ProjectStorage;
+import com.ruoyi.system.model.ProjectStorageItem;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
+
+@Data
+@ApiModel(value = "在库项目详情返回VO")
+public class ProjectStorageDetailVO implements Serializable {
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+    @ApiModelProperty(value = "入库时间")
+    @JsonFormat(pattern = "yyyy-MM-dd ", timezone = "GMT+8")
+    private LocalDate inTime;
+
+    @ApiModelProperty(value = "投资明细")
+    private List<ProjectStorageItem> list;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageListVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageListVO.java
new file mode 100644
index 0000000..cc5549a
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageListVO.java
@@ -0,0 +1,22 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.system.model.ProjectStorage;
+import com.ruoyi.system.model.YearTask;
+import com.tencentcloudapi.zj.v20190121.models.PaasStrategyItem;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "在库项目分页列表返回VO")
+public class ProjectStorageListVO extends ProjectStorage {
+    @ApiModelProperty(value = "存量投资")
+    private BigDecimal remainingAmount;
+    @ApiModelProperty(value = "本年度已上报投资")
+    private BigDecimal yearAmount;
+    @ApiModelProperty(value = "已上报投资")
+    private BigDecimal allAmount;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/YearTaskListVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/YearTaskListVO.java
new file mode 100644
index 0000000..b68d7f8
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/YearTaskListVO.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.system.model.ProjectMain;
+import com.ruoyi.system.model.YearTask;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "年度任务分页列表返回VO")
+public class YearTaskListVO extends YearTask {
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/CaseMainFileMapper.xml b/ruoyi-system/src/main/resources/mapper/system/CaseMainFileMapper.xml
new file mode 100644
index 0000000..d08d027
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/CaseMainFileMapper.xml
@@ -0,0 +1,23 @@
+<?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.system.mapper.CaseMainFileMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.CaseMainFile">
+        <id column="id" property="id" />
+        <result column="file_name" property="fileName" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+        <result column="case_id" property="caseId" />
+        <result column="file_url" property="fileUrl" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, file_name, create_time, create_by, update_time, update_by, disabled, case_id, file_url
+    </sql>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/CaseMainMapper.xml b/ruoyi-system/src/main/resources/mapper/system/CaseMainMapper.xml
new file mode 100644
index 0000000..f13b08b
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/CaseMainMapper.xml
@@ -0,0 +1,24 @@
+<?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.system.mapper.CaseMainMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.CaseMain">
+        <id column="id" property="id" />
+        <result column="case_name" property="caseName" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+        <result column="case_year" property="caseYear" />
+        <result column="type_id" property="typeId" />
+        <result column="dept_id" property="deptId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, case_name, create_time, create_by, update_time, update_by, disabled, case_year, type_id, dept_id
+    </sql>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/CaseTypeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/CaseTypeMapper.xml
new file mode 100644
index 0000000..b03296a
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/CaseTypeMapper.xml
@@ -0,0 +1,21 @@
+<?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.system.mapper.CaseTypeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.CaseType">
+        <id column="id" property="id" />
+        <result column="type_name" property="typeName" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, type_name, create_time, create_by, update_time, update_by, disabled
+    </sql>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/ContractTemplateMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ContractTemplateMapper.xml
new file mode 100644
index 0000000..a99787e
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/ContractTemplateMapper.xml
@@ -0,0 +1,33 @@
+<?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.system.mapper.ContractTemplateMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.ContractTemplate">
+        <id column="id" property="id" />
+        <result column="template_name" property="templateName" />
+        <result column="type_id" property="typeId" />
+        <result column="file_url" property="fileUrl" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, template_name, type_id, file_url, create_time, create_by, update_time, update_by, disabled
+    </sql>
+    <select id="pageList" resultType="com.ruoyi.system.model.ContractTemplate">
+        select * from contract_template
+        where 1=1
+        <if test="query.templateName != null and query.templateName != ''">
+            and template_name like concat('%',#{query.templateName},'%')
+        </if>
+        and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+
+        order by create_time  desc
+    </select>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/ContractTemplateTypeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ContractTemplateTypeMapper.xml
new file mode 100644
index 0000000..3edc074
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/ContractTemplateTypeMapper.xml
@@ -0,0 +1,31 @@
+<?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.system.mapper.ContractTemplateTypeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.ContractTemplateType">
+        <id column="id" property="id" />
+        <result column="type_name" property="typeName" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, type_name, create_time, create_by, update_time, update_by, disabled
+    </sql>
+    <select id="pageList" resultType="com.ruoyi.system.model.ContractTemplateType">
+        select * from contract_template_type
+        where 1=1
+        <if test="query.typeName != null and query.typeName != ''">
+            and type_name like concat('%',#{query.typeName},'%')
+        </if>
+        and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+
+        order by create_time  desc
+    </select>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/ProjectInventoryMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ProjectInventoryMapper.xml
new file mode 100644
index 0000000..96317ed
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/ProjectInventoryMapper.xml
@@ -0,0 +1,26 @@
+<?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.system.mapper.ProjectInventoryMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.ProjectInventory">
+        <id column="id" property="id" />
+        <result column="investment_task" property="investmentTask" />
+        <result column="investment_task_finish" property="investmentTaskFinish" />
+        <result column="investment_task_rating" property="investmentTaskRating" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+        <result column="storage_task" property="storageTask" />
+        <result column="storage_task_finish" property="storageTaskFinish" />
+        <result column="storage_task_rating" property="storageTaskRating" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, investment_task, investment_task_finish, investment_task_rating, create_time, create_by, update_time, update_by, disabled, storage_task, storage_task_finish, storage_task_rating
+    </sql>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/ProjectInvestmentMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ProjectInvestmentMapper.xml
new file mode 100644
index 0000000..91a3bde
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/ProjectInvestmentMapper.xml
@@ -0,0 +1,33 @@
+<?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.system.mapper.ProjectInvestmentMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.ProjectInvestment">
+        <id column="id" property="id" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+        <result column="central_budget_investment" property="centralBudgetInvestment" />
+        <result column="central_subsidy_funds" property="centralSubsidyFunds" />
+        <result column="provincial_subsidy_funds" property="provincialSubsidyFunds" />
+        <result column="special_bond_funds" property="specialBondFunds" />
+        <result column="general_bond_funds" property="generalBondFunds" />
+        <result column="fund" property="fund" />
+        <result column="stbs" property="stbs" />
+        <result column="own_funds" property="ownFunds" />
+        <result column="bank_loans" property="bankLoans" />
+        <result column="other" property="other" />
+        <result column="total_amount" property="totalAmount" />
+        <result column="investment_type" property="investmentType" />
+        <result column="project_id" property="projectId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, create_time, create_by, update_time, update_by, disabled, central_budget_investment, central_subsidy_funds, provincial_subsidy_funds, special_bond_funds, general_bond_funds, fund, stbs, own_funds, bank_loans, other, total_amount, investment_type, project_id
+    </sql>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/ProjectMainMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ProjectMainMapper.xml
new file mode 100644
index 0000000..ae45aeb
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/ProjectMainMapper.xml
@@ -0,0 +1,74 @@
+<?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.system.mapper.ProjectMainMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.ProjectMain">
+        <id column="id" property="id" />
+        <result column="project_name" property="projectName" />
+        <result column="project_type" property="projectType" />
+        <result column="project_code" property="projectCode" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+        <result column="platform_name" property="platformName" />
+        <result column="build_type" property="buildType" />
+        <result column="different_countries" property="differentCountries" />
+        <result column="build" property="build" />
+        <result column="build_address_detail" property="buildAddressDetail" />
+        <result column="build_detail" property="buildDetail" />
+        <result column="national_standard_industry" property="nationalStandardIndustry" />
+        <result column="industry" property="industry" />
+        <result column="is_private_investment" property="isPrivateInvestment" />
+        <result column="private_investment_amount" property="privateInvestmentAmount" />
+        <result column="investment_amount" property="investmentAmount" />
+        <result column="start_time" property="startTime" />
+        <result column="end_time" property="endTime" />
+        <result column="construction_scale" property="constructionScale" />
+        <result column="construction_content" property="constructionContent" />
+        <result column="remark" property="remark" />
+        <result column="responsible_unit" property="responsibleUnit" />
+        <result column="project_unit" property="projectUnit" />
+        <result column="status" property="status" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, project_name, project_type, project_code, create_time, create_by, update_time, update_by, disabled, platform_name, build_type, different_countries, build, build_address_detail, build_detail, national_standard_industry, industry, is_private_investment, private_investment_amount, investment_amount, start_time, end_time, construction_scale, construction_content, remark, responsible_unit, project_unit, status
+    </sql>
+    <select id="pageList" resultType="com.ruoyi.system.vo.ProjectMainListVO">
+        select t1.*,"未动工" as projectProgress from project_main t1
+        where 1=1
+        <if test="query.projectName != null and query.projectName != ''">
+            AND (t1.project_name like concat('%', #{query.projectName}, '%'))
+        </if>
+        <if test="query.projectType != null and query.projectType != ''">
+            AND (t1.project_type like concat('%', #{query.projectType}))
+        </if>
+          <if test="query.projectCode != null and query.projectCode != ''">
+            AND (t1.project_code like concat('%', #{query.projectCode}))
+        </if>
+        and t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        order by t1.create_time  desc
+    </select>
+    <select id="pageListPhase" resultType="com.ruoyi.system.vo.ProjectPhaseListVO">
+        select t1.*,t2.nick_name,t3.dept_name as deptName from project_settle_item
+        left join sys_user t2 on t2.user_id = t1.user_id
+        left join t_dept t3 on t3.id = t2.dept_id
+        where 1=1
+        <if test="query.stage != null and query.stage != ''">
+            AND (t1.stage = #{query.stage})
+        </if>
+        <if test="query.projectId != null and query.projectId != ''">
+            AND (t1.project_id = #{query.projectId})
+        </if>
+        <if test="query.settleName != null and query.settleName != ''">
+            AND (t1.settle_name like concat('%', #{query.settleName}, '%'))
+        </if>
+        and t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        order by t1.create_time  desc
+    </select>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/ProjectSettleItemMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ProjectSettleItemMapper.xml
new file mode 100644
index 0000000..ba1ef6d
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/ProjectSettleItemMapper.xml
@@ -0,0 +1,32 @@
+<?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.system.mapper.ProjectSettleItemMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.ProjectSettleItem">
+        <id column="id" property="id" />
+        <result column="project_id" property="projectId" />
+        <result column="stage" property="stage" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+        <result column="settle_name" property="settleName" />
+        <result column="dept_id" property="deptId" />
+        <result column="user_id" property="userId" />
+        <result column="settle_time" property="settleTime" />
+        <result column="file_url" property="fileUrl" />
+        <result column="settle_finish_time" property="settleFinishTime" />
+        <result column="status" property="status" />
+        <result column="settle_type" property="settleType" />
+        <result column="speed_of_progress" property="speedOfProgress" />
+        <result column="amount" property="amount" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, project_id, stage, create_time, create_by, update_time, update_by, disabled, settle_name, dept_id, user_id, settle_time, file_url, settle_finish_time, status, settle_type, speed_of_progress, amount
+    </sql>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/ProjectStorageItemMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ProjectStorageItemMapper.xml
new file mode 100644
index 0000000..6fbeb61
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/ProjectStorageItemMapper.xml
@@ -0,0 +1,23 @@
+<?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.system.mapper.ProjectStorageItemMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.ProjectStorageItem">
+        <id column="id" property="id" />
+        <result column="month" property="month" />
+        <result column="amount" property="amount" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+        <result column="project_storage_id" property="projectStorageId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, month, amount, create_time, create_by, update_time, update_by, disabled, project_storage_id
+    </sql>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/ProjectStorageMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ProjectStorageMapper.xml
new file mode 100644
index 0000000..41125c0
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/ProjectStorageMapper.xml
@@ -0,0 +1,38 @@
+<?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.system.mapper.ProjectStorageMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.ProjectStorage">
+        <id column="id" property="id" />
+        <result column="project_name" property="projectName" />
+        <result column="project_code" property="projectCode" />
+        <result column="total_amount" property="totalAmount" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+        <result column="in_time" property="inTime" />
+        <result column="status" property="status" />
+        <result column="out_time" property="outTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, project_name, project_code, total_amount, create_time, create_by, update_time, update_by, disabled, in_time, status, out_time
+    </sql>
+    <select id="pageList" resultType="com.ruoyi.system.vo.ProjectStorageListVO">
+        select * from project_storage
+        where 1=1
+        <if test="query.projectName != null and query.projectName != ''">
+            and (project_name like concat('%',#{query.projectName},'%')
+                or  project_code like concat('%',#{query.projectName},'%')
+                )
+        </if>
+        and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        order by create_time desc
+
+    </select>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/YearTaskDetailMapper.xml b/ruoyi-system/src/main/resources/mapper/system/YearTaskDetailMapper.xml
new file mode 100644
index 0000000..7c91e61
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/YearTaskDetailMapper.xml
@@ -0,0 +1,30 @@
+<?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.system.mapper.YearTaskDetailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.YearTaskDetail">
+        <id column="id" property="id" />
+        <result column="month" property="month" />
+        <result column="year_task_id" property="yearTaskId" />
+        <result column="progress" property="progress" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+        <result column="amount" property="amount" />
+        <result column="real_progress" property="realProgress" />
+        <result column="real_amount" property="realAmount" />
+        <result column="compelete_user_id" property="compeleteUserId" />
+        <result column="is_audit" property="isAudit" />
+        <result column="audit_user_id" property="auditUserId" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, month, year_task_id, progress, create_time, create_by, update_time, update_by, disabled, amount, real_progress, real_amount, compelete_user_id, is_audit, audit_user_id, remark
+    </sql>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/YearTaskMapper.xml b/ruoyi-system/src/main/resources/mapper/system/YearTaskMapper.xml
new file mode 100644
index 0000000..b977658
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/YearTaskMapper.xml
@@ -0,0 +1,36 @@
+<?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.system.mapper.YearTaskMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.YearTask">
+        <id column="id" property="id" />
+        <result column="year" property="year" />
+        <result column="project_id" property="projectId" />
+        <result column="target" property="target" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+        <result column="total_amount" property="totalAmount" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, year, project_id, target, create_time, create_by, update_time, update_by, disabled, total_amount
+    </sql>
+    <select id="pageList" resultType="com.ruoyi.system.vo.YearTaskListVO">
+        select t1.*,t2.project_name as projectName from year_task t1
+        left join project_main t2 on t1.project_id = t2.id
+        where 1=1
+        <if test="query.year != null and query.year != ''">
+            and t1.year = #{query.year}
+        </if>
+        <if test="query.projectName != null and query.projectName != ''">
+            and t2.project_name like concat('%',#{query.projectName},'%')
+        </if>
+
+    </select>
+
+</mapper>

--
Gitblit v1.7.1