无关风月
5 天以前 7cf455d9e9dd66a13c01b3e5d6536a4b3ce7bfbf
项目管理代码生成
90个文件已添加
3456 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainFileController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseTypeController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateController.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateTypeController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInventoryController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInvestmentController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectMainController.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectSettleItemController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageController.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageItemController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskController.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskDetailController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/dto/YearTaskAuditDTO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainFileMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseTypeMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateTypeMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInventoryMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInvestmentMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectMainMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectSettleItemMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageItemMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskDetailMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMain.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMainFile.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/CaseType.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplate.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplateType.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInventory.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInvestment.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectMain.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectSettleItem.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorage.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorageItem.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/YearTask.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/YearTaskDetail.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateListQuery.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateTypeListQuery.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectMainListQuery.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPhaseListQuery.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectStorageListQuery.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/YearTaskListQuery.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainFileService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/CaseTypeService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateTypeService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInventoryService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInvestmentService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectMainService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectSettleItemService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageItemService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskDetailService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainFileServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseTypeServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateTypeServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInventoryServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInvestmentServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectMainServiceImpl.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectSettleItemServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageItemServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskDetailServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectMainListVO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPhaseListVO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageDetailVO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageListVO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/YearTaskListVO.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/CaseMainFileMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/CaseMainMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/CaseTypeMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/ContractTemplateMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/ContractTemplateTypeMapper.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/ProjectInventoryMapper.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/ProjectInvestmentMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/ProjectMainMapper.xml 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/ProjectSettleItemMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/ProjectStorageItemMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/ProjectStorageMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/YearTaskDetailMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/YearTaskMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainController.java
New file
@@ -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 {
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseMainFileController.java
New file
@@ -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 {
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CaseTypeController.java
New file
@@ -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 {
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateController.java
New file
@@ -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();
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ContractTemplateTypeController.java
New file
@@ -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();
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInventoryController.java
New file
@@ -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 {
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectInvestmentController.java
New file
@@ -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 {
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectMainController.java
New file
@@ -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();
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectSettleItemController.java
New file
@@ -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 {
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageController.java
New file
@@ -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();
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectStorageItemController.java
New file
@@ -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 {
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskController.java
New file
@@ -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);
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/YearTaskDetailController.java
New file
@@ -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 {
}
ruoyi-system/src/main/java/com/ruoyi/system/dto/YearTaskAuditDTO.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainFileMapper.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseMainMapper.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/CaseTypeMapper.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateMapper.java
New file
@@ -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);
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTemplateTypeMapper.java
New file
@@ -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);
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInventoryMapper.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectInvestmentMapper.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectMainMapper.java
New file
@@ -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);
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectSettleItemMapper.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageItemMapper.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectStorageMapper.java
New file
@@ -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);
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskDetailMapper.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/YearTaskMapper.java
New file
@@ -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);
}
ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMain.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/CaseMainFile.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/CaseType.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplate.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/ContractTemplateType.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInventory.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectInvestment.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectMain.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectSettleItem.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorage.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectStorageItem.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/YearTask.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/YearTaskDetail.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateListQuery.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/ContractTemplateTypeListQuery.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectMainListQuery.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPhaseListQuery.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectStorageListQuery.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/YearTaskListQuery.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainFileService.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/CaseMainService.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/CaseTypeService.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateService.java
New file
@@ -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);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ContractTemplateTypeService.java
New file
@@ -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);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInventoryService.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectInvestmentService.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectMainService.java
New file
@@ -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);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectSettleItemService.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageItemService.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectStorageService.java
New file
@@ -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);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskDetailService.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/YearTaskService.java
New file
@@ -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);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainFileServiceImpl.java
New file
@@ -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 {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseMainServiceImpl.java
New file
@@ -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 {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CaseTypeServiceImpl.java
New file
@@ -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 {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateServiceImpl.java
New file
@@ -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;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTemplateTypeServiceImpl.java
New file
@@ -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;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInventoryServiceImpl.java
New file
@@ -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 {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectInvestmentServiceImpl.java
New file
@@ -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 {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectMainServiceImpl.java
New file
@@ -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;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectSettleItemServiceImpl.java
New file
@@ -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 {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageItemServiceImpl.java
New file
@@ -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 {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectStorageServiceImpl.java
New file
@@ -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;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskDetailServiceImpl.java
New file
@@ -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 {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/YearTaskServiceImpl.java
New file
@@ -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;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectMainListVO.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectPhaseListVO.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageDetailVO.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectStorageListVO.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/YearTaskListVO.java
New file
@@ -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;
}
ruoyi-system/src/main/resources/mapper/system/CaseMainFileMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/CaseMainMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/CaseTypeMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/ContractTemplateMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/ContractTemplateTypeMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/ProjectInventoryMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/ProjectInvestmentMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/ProjectMainMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/ProjectSettleItemMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/ProjectStorageItemMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/ProjectStorageMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/YearTaskDetailMapper.xml
New file
@@ -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>
ruoyi-system/src/main/resources/mapper/system/YearTaskMapper.xml
New file
@@ -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>