From b11bbeeb3c3a8e260892e45f68cdd137619ef3e5 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 27 十一月 2024 11:17:57 +0800
Subject: [PATCH] 项目库详情初始化

---
 business/src/main/java/com/ycl/domain/form/ProjectInvestmentFundingForm.java                  |  154 +++
 business/src/main/java/com/ycl/domain/form/ProjectInvestmentPolicyComplianceForm.java         |  106 ++
 business/src/main/java/com/ycl/service/ProjectInvestmentPolicyComplianceService.java          |   65 +
 business/src/main/java/com/ycl/mapper/ProjectInvestmentPolicyComplianceMapper.java            |   34 
 business/src/main/java/com/ycl/domain/query/ProjectInvestmentPolicyComplianceQuery.java       |   22 
 business/src/main/java/com/ycl/service/ProjectInvestmentFundingService.java                   |   65 +
 business/src/main/java/com/ycl/domain/vo/ProjectInvestmentInfoVO.java                         |  107 ++
 start/src/main/resources/application.yml                                                      |    2 
 business/src/main/resources/mapper/ProjectInvestmentInfoMapper.xml                            |   91 ++
 business/src/main/java/com/ycl/domain/vo/ProjectInvestmentPolicyComplianceVO.java             |  103 ++
 business/src/main/java/com/ycl/service/ProjectInvestmentInfoService.java                      |   65 +
 business/src/main/java/com/ycl/domain/query/ProjectInvestmentFundingQuery.java                |   22 
 business/src/main/java/com/ycl/service/impl/ProjectInvestmentPolicyComplianceServiceImpl.java |  119 ++
 business/src/main/java/com/ycl/controller/ProjectInvestmentFundingController.java             |   83 ++
 business/src/main/java/com/ycl/domain/entity/ProjectInvestmentInfo.java                       |   99 ++
 business/src/main/java/com/ycl/controller/ProjectInvestmentInfoController.java                |   83 ++
 business/src/main/java/com/ycl/domain/query/ProjectInvestmentInfoQuery.java                   |   22 
 business/src/main/java/com/ycl/domain/vo/ProjectInvestmentFundingVO.java                      |  151 +++
 business/src/main/java/com/ycl/controller/ProjectInvestmentPolicyComplianceController.java    |   83 ++
 business/src/main/java/com/ycl/domain/form/ProjectInvestmentInfoForm.java                     |  110 ++
 business/src/main/resources/mapper/ProjectInfoMapper.xml                                      |    5 
 business/src/main/java/com/ycl/domain/entity/ProjectInvestmentFunding.java                    |  143 +++
 business/src/main/resources/mapper/ProjectInvestmentFundingMapper.xml                         |  124 +++
 business/src/main/java/com/ycl/mapper/ProjectInvestmentFundingMapper.java                     |   34 
 business/src/main/resources/mapper/ProjectInvestmentPolicyComplianceMapper.xml                |   88 ++
 business/src/main/java/com/ycl/service/impl/ProjectInvestmentInfoServiceImpl.java             |  119 ++
 business/src/main/java/com/ycl/mapper/ProjectInvestmentInfoMapper.java                        |   34 
 business/src/main/java/com/ycl/domain/entity/ProjectInvestmentPolicyCompliance.java           |   95 ++
 business/src/main/java/com/ycl/service/impl/ProjectInvestmentFundingServiceImpl.java          |  119 ++
 29 files changed, 2,341 insertions(+), 6 deletions(-)

diff --git a/business/src/main/java/com/ycl/controller/ProjectInvestmentFundingController.java b/business/src/main/java/com/ycl/controller/ProjectInvestmentFundingController.java
new file mode 100644
index 0000000..4f5d4ff
--- /dev/null
+++ b/business/src/main/java/com/ycl/controller/ProjectInvestmentFundingController.java
@@ -0,0 +1,83 @@
+package com.ycl.controller;
+
+import com.ycl.common.group.Update;
+import com.ycl.common.group.Add;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.constraints.NotEmpty;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.ycl.service.ProjectInvestmentFundingService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.form.ProjectInvestmentFundingForm;
+import com.ycl.domain.query.ProjectInvestmentFundingQuery;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃 鍓嶇鎺у埗鍣�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃", tags = "椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃绠$悊")
+@RestController
+@RequestMapping("/project-investment-funding")
+public class ProjectInvestmentFundingController {
+
+    private final ProjectInvestmentFundingService projectInvestmentFundingService;
+
+    @PostMapping
+    @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+    @PreAuthorize("hasAuthority('projectInvestmentFunding:add')")
+    public Result add(@RequestBody @Validated(Add.class) ProjectInvestmentFundingForm form) {
+        return projectInvestmentFundingService.add(form);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "淇敼", notes = "淇敼")
+    @PreAuthorize("hasAuthority('projectInvestmentFunding:edit')")
+    public Result update(@RequestBody @Validated(Update.class) ProjectInvestmentFundingForm form) {
+        return projectInvestmentFundingService.update(form);
+    }
+
+    @DeleteMapping("/{id}")
+    @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+    @PreAuthorize("hasAuthority('projectInvestmentFunding:del')")
+    public Result removeById(@PathVariable("id") String id) {
+        return projectInvestmentFundingService.removeById(id);
+    }
+
+    @DeleteMapping("/batch")
+    @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+    @PreAuthorize("hasAuthority('projectInvestmentFunding:del:batch')")
+    public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+        return projectInvestmentFundingService.remove(ids);
+    }
+
+    @GetMapping("/page")
+    @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+    @PreAuthorize("hasAuthority('projectInvestmentFunding:page')")
+    public Result page(ProjectInvestmentFundingQuery query) {
+        return projectInvestmentFundingService.page(query);
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+    @PreAuthorize("hasAuthority('projectInvestmentFunding:detail')")
+    public Result detail(@PathVariable("id") Integer id) {
+        return projectInvestmentFundingService.detail(id);
+    }
+
+    @GetMapping("/list")
+    @PreAuthorize("hasAuthority('projectInvestmentFunding:list')")
+    @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+    public Result list() {
+        return projectInvestmentFundingService.all();
+    }
+}
diff --git a/business/src/main/java/com/ycl/controller/ProjectInvestmentInfoController.java b/business/src/main/java/com/ycl/controller/ProjectInvestmentInfoController.java
new file mode 100644
index 0000000..c809bd6
--- /dev/null
+++ b/business/src/main/java/com/ycl/controller/ProjectInvestmentInfoController.java
@@ -0,0 +1,83 @@
+package com.ycl.controller;
+
+import com.ycl.common.group.Update;
+import com.ycl.common.group.Add;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.constraints.NotEmpty;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.ycl.service.ProjectInvestmentInfoService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.form.ProjectInvestmentInfoForm;
+import com.ycl.domain.query.ProjectInvestmentInfoQuery;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 鎶曡祫椤圭洰鍩虹淇℃伅琛� 鍓嶇鎺у埗鍣�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "鎶曡祫椤圭洰鍩虹淇℃伅琛�", tags = "鎶曡祫椤圭洰鍩虹淇℃伅琛ㄧ鐞�")
+@RestController
+@RequestMapping("/project-investment-info")
+public class ProjectInvestmentInfoController {
+
+    private final ProjectInvestmentInfoService projectInvestmentInfoService;
+
+    @PostMapping
+    @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+    @PreAuthorize("hasAuthority('projectInvestmentInfo:add')")
+    public Result add(@RequestBody @Validated(Add.class) ProjectInvestmentInfoForm form) {
+        return projectInvestmentInfoService.add(form);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "淇敼", notes = "淇敼")
+    @PreAuthorize("hasAuthority('projectInvestmentInfo:edit')")
+    public Result update(@RequestBody @Validated(Update.class) ProjectInvestmentInfoForm form) {
+        return projectInvestmentInfoService.update(form);
+    }
+
+    @DeleteMapping("/{id}")
+    @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+    @PreAuthorize("hasAuthority('projectInvestmentInfo:del')")
+    public Result removeById(@PathVariable("id") String id) {
+        return projectInvestmentInfoService.removeById(id);
+    }
+
+    @DeleteMapping("/batch")
+    @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+    @PreAuthorize("hasAuthority('projectInvestmentInfo:del:batch')")
+    public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+        return projectInvestmentInfoService.remove(ids);
+    }
+
+    @GetMapping("/page")
+    @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+    @PreAuthorize("hasAuthority('projectInvestmentInfo:page')")
+    public Result page(ProjectInvestmentInfoQuery query) {
+        return projectInvestmentInfoService.page(query);
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+    @PreAuthorize("hasAuthority('projectInvestmentInfo:detail')")
+    public Result detail(@PathVariable("id") Integer id) {
+        return projectInvestmentInfoService.detail(id);
+    }
+
+    @GetMapping("/list")
+    @PreAuthorize("hasAuthority('projectInvestmentInfo:list')")
+    @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+    public Result list() {
+        return projectInvestmentInfoService.all();
+    }
+}
diff --git a/business/src/main/java/com/ycl/controller/ProjectInvestmentPolicyComplianceController.java b/business/src/main/java/com/ycl/controller/ProjectInvestmentPolicyComplianceController.java
new file mode 100644
index 0000000..1541b7c
--- /dev/null
+++ b/business/src/main/java/com/ycl/controller/ProjectInvestmentPolicyComplianceController.java
@@ -0,0 +1,83 @@
+package com.ycl.controller;
+
+import com.ycl.common.group.Update;
+import com.ycl.common.group.Add;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.constraints.NotEmpty;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.ycl.service.ProjectInvestmentPolicyComplianceService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.form.ProjectInvestmentPolicyComplianceForm;
+import com.ycl.domain.query.ProjectInvestmentPolicyComplianceQuery;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛� 鍓嶇鎺у埗鍣�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛�", tags = "鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛ㄧ鐞�")
+@RestController
+@RequestMapping("/project-investment-policy-compliance")
+public class ProjectInvestmentPolicyComplianceController {
+
+    private final ProjectInvestmentPolicyComplianceService projectInvestmentPolicyComplianceService;
+
+    @PostMapping
+    @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+    @PreAuthorize("hasAuthority('projectInvestmentPolicyCompliance:add')")
+    public Result add(@RequestBody @Validated(Add.class) ProjectInvestmentPolicyComplianceForm form) {
+        return projectInvestmentPolicyComplianceService.add(form);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "淇敼", notes = "淇敼")
+    @PreAuthorize("hasAuthority('projectInvestmentPolicyCompliance:edit')")
+    public Result update(@RequestBody @Validated(Update.class) ProjectInvestmentPolicyComplianceForm form) {
+        return projectInvestmentPolicyComplianceService.update(form);
+    }
+
+    @DeleteMapping("/{id}")
+    @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+    @PreAuthorize("hasAuthority('projectInvestmentPolicyCompliance:del')")
+    public Result removeById(@PathVariable("id") String id) {
+        return projectInvestmentPolicyComplianceService.removeById(id);
+    }
+
+    @DeleteMapping("/batch")
+    @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+    @PreAuthorize("hasAuthority('projectInvestmentPolicyCompliance:del:batch')")
+    public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+        return projectInvestmentPolicyComplianceService.remove(ids);
+    }
+
+    @GetMapping("/page")
+    @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+    @PreAuthorize("hasAuthority('projectInvestmentPolicyCompliance:page')")
+    public Result page(ProjectInvestmentPolicyComplianceQuery query) {
+        return projectInvestmentPolicyComplianceService.page(query);
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+    @PreAuthorize("hasAuthority('projectInvestmentPolicyCompliance:detail')")
+    public Result detail(@PathVariable("id") Integer id) {
+        return projectInvestmentPolicyComplianceService.detail(id);
+    }
+
+    @GetMapping("/list")
+    @PreAuthorize("hasAuthority('projectInvestmentPolicyCompliance:list')")
+    @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+    public Result list() {
+        return projectInvestmentPolicyComplianceService.all();
+    }
+}
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentFunding.java b/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentFunding.java
new file mode 100644
index 0000000..28343de
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentFunding.java
@@ -0,0 +1,143 @@
+package com.ycl.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ycl.system.domain.base.AbsEntity;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@TableName("t_project_investment_funding")
+public class ProjectInvestmentFunding extends AbsEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableField("project_id")
+    /** 椤圭洰id */
+    private Long projectId;
+
+    @TableField("total_investment")
+    /** 椤圭洰鎬绘姇璧勯 */
+    private String totalInvestment;
+
+    @TableField("principal")
+    /** 椤圭洰鏈噾 */
+    private String principal;
+
+    @TableField("government_investment_total")
+    /** 鏀垮簻鎶曡祫鎬婚 */
+    private String governmentInvestmentTotal;
+
+    @TableField("central_investment_total")
+    /** 涓ぎ鎶曡祫鎬婚 */
+    private String centralInvestmentTotal;
+
+    @TableField("central_budget_investment")
+    /** 涓ぎ棰勭畻鎶曡祫 */
+    private String centralBudgetInvestment;
+
+    @TableField("central_fiscal_investment")
+    /** 涓ぎ璐㈡斂 */
+    private String centralFiscalInvestment;
+
+    @TableField("central_special_bond_investment")
+    /** 涓ぎ涓撻」鍊哄埜绛归泦鐨勪笓椤瑰缓璁捐祫閲� */
+    private String centralSpecialBondInvestment;
+
+    @TableField("central_special_fund_investment")
+    /** 涓ぎ涓撻」寤鸿鍩洪噾 */
+    private String centralSpecialFundInvestment;
+
+    @TableField("provincial_investment_total")
+    /** 鐪佺骇鎶曡祫鎬婚 */
+    private String provincialInvestmentTotal;
+
+    @TableField("provincial_budget_investment")
+    /** 鐪侀绠楀唴鎶曡祫 */
+    private String provincialBudgetInvestment;
+
+    @TableField("provincial_fiscal_investment")
+    /** 鐪佽储鏀挎�у缓璁炬姇璧� */
+    private String provincialFiscalInvestment;
+
+    @TableField("provincial_special_fund_investment")
+    /** 鐪佷笓椤瑰缓璁捐祫閲� */
+    private String provincialSpecialFundInvestment;
+
+    @TableField("city_investment_total")
+    /** 甯傦紙宸烇級鎶曡祫鎬婚 */
+    private String cityInvestmentTotal;
+
+    @TableField("city_budget_investment")
+    /** 甯傦紙宸烇級棰勭畻鍐呮姇璧� */
+    private String cityBudgetInvestment;
+
+    @TableField("city_fiscal_investment")
+    /** 甯傦紙宸烇級璐㈡斂鎬ф姇璧� */
+    private String cityFiscalInvestment;
+
+    @TableField("city_special_fund_investment")
+    /** 甯傦紙宸烇級涓撻」璧勯噾 */
+    private String citySpecialFundInvestment;
+
+    @TableField("county_investment_total")
+    /** 鍘匡紙甯傘�佸尯锛夋姇璧勬�婚 */
+    private String countyInvestmentTotal;
+
+    @TableField("county_budget_investment")
+    /** 鍘匡紙甯傘�佸尯锛夐绠楀唴鎶曡祫 */
+    private String countyBudgetInvestment;
+
+    @TableField("county_fiscal_investment")
+    /** 鍘匡紙甯傘�佸尯锛夎储鏀挎�у缓璁捐祫閲� */
+    private String countyFiscalInvestment;
+
+    @TableField("county_special_fund_investment")
+    /** 鍘匡紙甯傘�佸尯锛変笓椤硅祫閲� */
+    private String countySpecialFundInvestment;
+
+    @TableField("domestic_loan_total")
+    /** 鍥藉唴璐锋鎬婚 */
+    private String domesticLoanTotal;
+
+    @TableField("bank_loan")
+    /** 閾惰璐锋 */
+    private String bankLoan;
+
+    @TableField("foreign_investment_total")
+    /** 澶栧晢鎶曡祫鎬婚 */
+    private String foreignInvestmentTotal;
+
+    @TableField("enterprise_self_raised_total")
+    /** 浼佷笟鑷鎬婚 */
+    private String enterpriseSelfRaisedTotal;
+
+    @TableField("other_investment_total")
+    /** 鍏朵粬鎶曡祫鎬婚 */
+    private String otherInvestmentTotal;
+
+    @TableField("gmt_create_time")
+    /** 鍒涘缓鏃堕棿 */
+    private LocalDateTime gmtCreateTime;
+
+    @TableField("create_by")
+    /** 鍒涘缓浜� */
+    private Long createBy;
+
+    @TableField("gmt_update_time")
+    /** 鏇存柊鏃堕棿 */
+    private LocalDateTime gmtUpdateTime;
+
+    @TableField("update_by")
+    /** 鏇存柊浜� */
+    private Long updateBy;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentInfo.java b/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentInfo.java
new file mode 100644
index 0000000..13fbbbb
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentInfo.java
@@ -0,0 +1,99 @@
+package com.ycl.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ycl.system.domain.base.AbsEntity;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 鎶曡祫椤圭洰鍩虹淇℃伅琛�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@TableName("t_project_investment_info")
+public class ProjectInvestmentInfo extends AbsEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableField("project_id")
+    /** 椤圭洰id */
+    private Long projectId;
+
+    @TableField("be_cross_region")
+    /** 寤鸿鍦扮偣鏄惁璺ㄥ煙 */
+    private Integer beCrossRegion;
+
+    @TableField("construction_location")
+    /** 椤圭洰寤鸿鍦扮偣 */
+    private String constructionLocation;
+
+    @TableField("detailed_address")
+    /** 寤鸿璇︾粏鍦板潃 */
+    private String detailedAddress;
+
+    @TableField("be_compensation_project")
+    /** 鏄惁鏄ˉ鐮侀」鐩� */
+    private Integer beCompensationProject;
+
+    @TableField("compensation_reason")
+    /** 琛ョ爜鍘熷洜 */
+    private String compensationReason;
+
+    @TableField("planned_start_date")
+    /** 璁″垝寮�宸ユ椂闂� */
+    private LocalDateTime plannedStartDate;
+
+    @TableField("expected_completion_date")
+    /** 鎷熷缓鎴愭椂闂� */
+    private LocalDateTime expectedCompletionDate;
+
+    @TableField("national_industry_classification")
+    /** 鍥芥爣琛屼笟鍒嗙被 */
+    private String nationalIndustryClassification;
+
+    @TableField("industry_classification")
+    /** 鎵�灞炶涓氬垎绫� */
+    private String industryClassification;
+
+    @TableField("project_nature")
+    /** 椤圭洰寤鸿鎬ц川 */
+    private String projectNature;
+
+    @TableField("project_attribute")
+    /** 椤圭洰灞炴�� */
+    private String projectAttribute;
+
+    @TableField("use_earth")
+    /** 鏄惁浣跨敤鍦熷湴 */
+    private Integer useEarth;
+
+    @TableField("content_scale")
+    /** 涓昏寤鸿鍐呭鍙婅妯� */
+    private String contentScale;
+
+    @TableField("code")
+    /** 寤虹骞冲彴浠g爜 */
+    private String code;
+
+    @TableField("gmt_create_time")
+    /** 鍒涘缓鏃堕棿 */
+    private LocalDateTime gmtCreateTime;
+
+    @TableField("create_by")
+    /** 鍒涘缓浜� */
+    private Long createBy;
+
+    @TableField("gmt_update_time")
+    /** 鏇存柊鏃堕棿 */
+    private LocalDateTime gmtUpdateTime;
+
+    @TableField("update_by")
+    /** 鏇存柊浜� */
+    private Long updateBy;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentPolicyCompliance.java b/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentPolicyCompliance.java
new file mode 100644
index 0000000..8fb94a5
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentPolicyCompliance.java
@@ -0,0 +1,95 @@
+package com.ycl.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ycl.system.domain.base.AbsEntity;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@TableName("t_project_investment_policy_compliance")
+public class ProjectInvestmentPolicyCompliance extends AbsEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableField("project_id")
+    /** 椤圭洰id */
+    private Long projectId;
+
+    @TableField("policy_compliance_attachment")
+    /** 绗﹀悎浜т笟鏀跨瓥闄勪欢 */
+    private String policyComplianceAttachment;
+
+    @TableField("belongs_to_industry_adjustment_directory")
+    /** 鏄惁灞炰簬銆婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬩笅鐨勯」鐩� */
+    private String belongsToIndustryAdjustmentDirectory;
+
+    @TableField("belongs_to_allowed_projects")
+    /** 鏄惁灞炰簬鏈垪鍏ャ�婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬬殑鍏佽绫婚」鐩� */
+    private String belongsToAllowedProjects;
+
+    @TableField("belongs_to_western_encouraged_directory")
+    /** 鏄惁灞炰簬銆婅タ閮ㄥ湴鍖洪紦鍔辩被浜т笟鐩綍銆嬬殑椤圭洰 */
+    private Integer belongsToWesternEncouragedDirectory;
+
+    @TableField("not_banned_or_controlled_project")
+    /** 鏄惁涓嶅睘浜庝骇涓氭斂绛栫姝㈡姇璧勫缓璁炬垨瀹炶鏍稿噯銆佸鎵圭鐞嗙殑椤圭洰 */
+    private Integer notBannedOrControlledProject;
+
+    @TableField("information_is_true")
+    /** 濉姤淇℃伅鏄惁鐪熷疄 */
+    private Integer informationIsTrue;
+
+    @TableField("special_planning_compliance")
+    /** 涓撻」瑙勫垝澶嶅悎鎯呭喌 */
+    private String specialPlanningCompliance;
+
+    @TableField("energy_consumption")
+    /** 椤圭洰鑳借�楁儏鍐� */
+    private String energyConsumption;
+
+    @TableField("annual_energy_consumption")
+    /** 椤圭洰骞寸患鍚堣兘婧愭秷璐归噺锛堟爣鍑嗙叅褰撻噺鍊硷級 */
+    private String annualEnergyConsumption;
+
+    @TableField("annual_electricity_consumption")
+    /** 椤圭洰骞寸數鍔涙秷鑰楅噺锛堟爣鍑嗙叅褰撻噺鍊硷級 */
+    private String annualElectricityConsumption;
+
+    @TableField("energy_check")
+    /** 鑺傝兘瀹℃煡锛�1闇�瑕侊紝0涓嶉渶瑕侊級 */
+    private String energyCheck;
+
+    @TableField("no_only_check_type")
+    /** 涓嶅啀鍗曠嫭杩涜鑺傝兘瀹℃煡鐨勭被鍨� */
+    private String noOnlyCheckType;
+
+    @TableField("remarks")
+    /** 澶囨敞 */
+    private String remarks;
+
+    @TableField("gmt_create_time")
+    /** 鍒涘缓鏃堕棿 */
+    private LocalDateTime gmtCreateTime;
+
+    @TableField("gmt_update_time")
+    /** 鏇存柊鏃堕棿 */
+    private LocalDateTime gmtUpdateTime;
+
+    @TableField("create_by")
+    /** 鍒涘缓浜� */
+    private Long createBy;
+
+    @TableField("update_by")
+    /** 鏇存柊浜� */
+    private Long updateBy;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/ProjectInvestmentFundingForm.java b/business/src/main/java/com/ycl/domain/form/ProjectInvestmentFundingForm.java
new file mode 100644
index 0000000..e62ec8a
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/ProjectInvestmentFundingForm.java
@@ -0,0 +1,154 @@
+package com.ycl.domain.form;
+
+import com.ycl.common.group.Update;
+import com.ycl.common.group.Add;
+import com.ycl.system.domain.base.AbsForm;
+import com.ycl.domain.entity.ProjectInvestmentFunding;
+import org.springframework.beans.BeanUtils;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import org.springframework.lang.NonNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * 椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃琛ㄥ崟
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@ApiModel(value = "ProjectInvestmentFunding琛ㄥ崟", description = "椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃琛ㄥ崟")
+public class ProjectInvestmentFundingForm extends AbsForm {
+
+    @NotNull(message = "椤圭洰id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("椤圭洰id")
+    private Long projectId;
+
+    @NotBlank(message = "椤圭洰鎬绘姇璧勯涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("椤圭洰鎬绘姇璧勯")
+    private String totalInvestment;
+
+    @NotBlank(message = "椤圭洰鏈噾涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("椤圭洰鏈噾")
+    private String principal;
+
+    @NotBlank(message = "鏀垮簻鎶曡祫鎬婚涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏀垮簻鎶曡祫鎬婚")
+    private String governmentInvestmentTotal;
+
+    @NotBlank(message = "涓ぎ鎶曡祫鎬婚涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("涓ぎ鎶曡祫鎬婚")
+    private String centralInvestmentTotal;
+
+    @NotBlank(message = "涓ぎ棰勭畻鎶曡祫涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("涓ぎ棰勭畻鎶曡祫")
+    private String centralBudgetInvestment;
+
+    @NotBlank(message = "涓ぎ璐㈡斂涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("涓ぎ璐㈡斂")
+    private String centralFiscalInvestment;
+
+    @NotBlank(message = "涓ぎ涓撻」鍊哄埜绛归泦鐨勪笓椤瑰缓璁捐祫閲戜笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("涓ぎ涓撻」鍊哄埜绛归泦鐨勪笓椤瑰缓璁捐祫閲�")
+    private String centralSpecialBondInvestment;
+
+    @NotBlank(message = "涓ぎ涓撻」寤鸿鍩洪噾涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("涓ぎ涓撻」寤鸿鍩洪噾")
+    private String centralSpecialFundInvestment;
+
+    @NotBlank(message = "鐪佺骇鎶曡祫鎬婚涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鐪佺骇鎶曡祫鎬婚")
+    private String provincialInvestmentTotal;
+
+    @NotBlank(message = "鐪侀绠楀唴鎶曡祫涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鐪侀绠楀唴鎶曡祫")
+    private String provincialBudgetInvestment;
+
+    @NotBlank(message = "鐪佽储鏀挎�у缓璁炬姇璧勪笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鐪佽储鏀挎�у缓璁炬姇璧�")
+    private String provincialFiscalInvestment;
+
+    @NotBlank(message = "鐪佷笓椤瑰缓璁捐祫閲戜笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鐪佷笓椤瑰缓璁捐祫閲�")
+    private String provincialSpecialFundInvestment;
+
+    @NotBlank(message = "甯傦紙宸烇級鎶曡祫鎬婚涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("甯傦紙宸烇級鎶曡祫鎬婚")
+    private String cityInvestmentTotal;
+
+    @NotBlank(message = "甯傦紙宸烇級棰勭畻鍐呮姇璧勪笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("甯傦紙宸烇級棰勭畻鍐呮姇璧�")
+    private String cityBudgetInvestment;
+
+    @NotBlank(message = "甯傦紙宸烇級璐㈡斂鎬ф姇璧勪笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("甯傦紙宸烇級璐㈡斂鎬ф姇璧�")
+    private String cityFiscalInvestment;
+
+    @NotBlank(message = "甯傦紙宸烇級涓撻」璧勯噾涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("甯傦紙宸烇級涓撻」璧勯噾")
+    private String citySpecialFundInvestment;
+
+    @NotBlank(message = "鍘匡紙甯傘�佸尯锛夋姇璧勬�婚涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍘匡紙甯傘�佸尯锛夋姇璧勬�婚")
+    private String countyInvestmentTotal;
+
+    @NotBlank(message = "鍘匡紙甯傘�佸尯锛夐绠楀唴鎶曡祫涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍘匡紙甯傘�佸尯锛夐绠楀唴鎶曡祫")
+    private String countyBudgetInvestment;
+
+    @NotBlank(message = "鍘匡紙甯傘�佸尯锛夎储鏀挎�у缓璁捐祫閲戜笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍘匡紙甯傘�佸尯锛夎储鏀挎�у缓璁捐祫閲�")
+    private String countyFiscalInvestment;
+
+    @NotBlank(message = "鍘匡紙甯傘�佸尯锛変笓椤硅祫閲戜笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍘匡紙甯傘�佸尯锛変笓椤硅祫閲�")
+    private String countySpecialFundInvestment;
+
+    @NotBlank(message = "鍥藉唴璐锋鎬婚涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍥藉唴璐锋鎬婚")
+    private String domesticLoanTotal;
+
+    @NotBlank(message = "閾惰璐锋涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("閾惰璐锋")
+    private String bankLoan;
+
+    @NotBlank(message = "澶栧晢鎶曡祫鎬婚涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("澶栧晢鎶曡祫鎬婚")
+    private String foreignInvestmentTotal;
+
+    @NotBlank(message = "浼佷笟鑷鎬婚涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("浼佷笟鑷鎬婚")
+    private String enterpriseSelfRaisedTotal;
+
+    @NotBlank(message = "鍏朵粬鎶曡祫鎬婚涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍏朵粬鎶曡祫鎬婚")
+    private String otherInvestmentTotal;
+
+    @NotNull(message = "鍒涘缓鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    private Date gmtCreateTime;
+
+    @NotNull(message = "鍒涘缓浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍒涘缓浜�")
+    private Long createBy;
+
+    @NotNull(message = "鏇存柊鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    private Date gmtUpdateTime;
+
+    @NotNull(message = "鏇存柊浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏇存柊浜�")
+    private Long updateBy;
+
+    public static ProjectInvestmentFunding getEntityByForm(@NonNull ProjectInvestmentFundingForm form, ProjectInvestmentFunding entity) {
+        if(entity == null) {
+          entity = new ProjectInvestmentFunding();
+        }
+        BeanUtils.copyProperties(form, entity);
+        return entity;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/ProjectInvestmentInfoForm.java b/business/src/main/java/com/ycl/domain/form/ProjectInvestmentInfoForm.java
new file mode 100644
index 0000000..eaad73a
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/ProjectInvestmentInfoForm.java
@@ -0,0 +1,110 @@
+package com.ycl.domain.form;
+
+import com.ycl.common.group.Update;
+import com.ycl.common.group.Add;
+import com.ycl.system.domain.base.AbsForm;
+import com.ycl.domain.entity.ProjectInvestmentInfo;
+import org.springframework.beans.BeanUtils;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import org.springframework.lang.NonNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * 鎶曡祫椤圭洰鍩虹淇℃伅琛ㄨ〃鍗�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@ApiModel(value = "ProjectInvestmentInfo琛ㄥ崟", description = "鎶曡祫椤圭洰鍩虹淇℃伅琛ㄨ〃鍗�")
+public class ProjectInvestmentInfoForm extends AbsForm {
+
+    @NotNull(message = "椤圭洰id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("椤圭洰id")
+    private Long projectId;
+
+    @NotNull(message = "寤鸿鍦扮偣鏄惁璺ㄥ煙涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("寤鸿鍦扮偣鏄惁璺ㄥ煙")
+    private Integer beCrossRegion;
+
+    @NotBlank(message = "椤圭洰寤鸿鍦扮偣涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("椤圭洰寤鸿鍦扮偣")
+    private String constructionLocation;
+
+    @NotBlank(message = "寤鸿璇︾粏鍦板潃涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("寤鸿璇︾粏鍦板潃")
+    private String detailedAddress;
+
+    @NotNull(message = "鏄惁鏄ˉ鐮侀」鐩笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏄惁鏄ˉ鐮侀」鐩�")
+    private Integer beCompensationProject;
+
+    @NotBlank(message = "琛ョ爜鍘熷洜涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("琛ョ爜鍘熷洜")
+    private String compensationReason;
+
+    @NotNull(message = "璁″垝寮�宸ユ椂闂翠笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("璁″垝寮�宸ユ椂闂�")
+    private Date plannedStartDate;
+
+    @NotNull(message = "鎷熷缓鎴愭椂闂翠笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鎷熷缓鎴愭椂闂�")
+    private Date expectedCompletionDate;
+
+    @NotBlank(message = "鍥芥爣琛屼笟鍒嗙被涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍥芥爣琛屼笟鍒嗙被")
+    private String nationalIndustryClassification;
+
+    @NotBlank(message = "鎵�灞炶涓氬垎绫讳笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鎵�灞炶涓氬垎绫�")
+    private String industryClassification;
+
+    @NotBlank(message = "椤圭洰寤鸿鎬ц川涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("椤圭洰寤鸿鎬ц川")
+    private String projectNature;
+
+    @NotBlank(message = "椤圭洰灞炴�т笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("椤圭洰灞炴��")
+    private String projectAttribute;
+
+    @NotNull(message = "鏄惁浣跨敤鍦熷湴涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏄惁浣跨敤鍦熷湴")
+    private Integer useEarth;
+
+    @NotBlank(message = "涓昏寤鸿鍐呭鍙婅妯′笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("涓昏寤鸿鍐呭鍙婅妯�")
+    private String contentScale;
+
+    @NotBlank(message = "寤虹骞冲彴浠g爜涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("寤虹骞冲彴浠g爜")
+    private String code;
+
+    @NotNull(message = "鍒涘缓鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    private Date gmtCreateTime;
+
+    @NotNull(message = "鍒涘缓浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍒涘缓浜�")
+    private Long createBy;
+
+    @NotNull(message = "鏇存柊鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    private Date gmtUpdateTime;
+
+    @NotNull(message = "鏇存柊浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏇存柊浜�")
+    private Long updateBy;
+
+    public static ProjectInvestmentInfo getEntityByForm(@NonNull ProjectInvestmentInfoForm form, ProjectInvestmentInfo entity) {
+        if(entity == null) {
+          entity = new ProjectInvestmentInfo();
+        }
+        BeanUtils.copyProperties(form, entity);
+        return entity;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/ProjectInvestmentPolicyComplianceForm.java b/business/src/main/java/com/ycl/domain/form/ProjectInvestmentPolicyComplianceForm.java
new file mode 100644
index 0000000..87130cf
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/ProjectInvestmentPolicyComplianceForm.java
@@ -0,0 +1,106 @@
+package com.ycl.domain.form;
+
+import com.ycl.common.group.Update;
+import com.ycl.common.group.Add;
+import com.ycl.system.domain.base.AbsForm;
+import com.ycl.domain.entity.ProjectInvestmentPolicyCompliance;
+import org.springframework.beans.BeanUtils;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import org.springframework.lang.NonNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * 鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛ㄨ〃鍗�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@ApiModel(value = "ProjectInvestmentPolicyCompliance琛ㄥ崟", description = "鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛ㄨ〃鍗�")
+public class ProjectInvestmentPolicyComplianceForm extends AbsForm {
+
+    @NotNull(message = "椤圭洰id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("椤圭洰id")
+    private Long projectId;
+
+    @NotBlank(message = "绗﹀悎浜т笟鏀跨瓥闄勪欢涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("绗﹀悎浜т笟鏀跨瓥闄勪欢")
+    private String policyComplianceAttachment;
+
+    @NotBlank(message = "鏄惁灞炰簬銆婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬩笅鐨勯」鐩笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏄惁灞炰簬銆婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬩笅鐨勯」鐩�")
+    private Boolean belongsToIndustryAdjustmentDirectory;
+
+    @NotBlank(message = "鏄惁灞炰簬鏈垪鍏ャ�婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬬殑鍏佽绫婚」鐩笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏄惁灞炰簬鏈垪鍏ャ�婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬬殑鍏佽绫婚」鐩�")
+    private Boolean belongsToAllowedProjects;
+
+    @NotNull(message = "鏄惁灞炰簬銆婅タ閮ㄥ湴鍖洪紦鍔辩被浜т笟鐩綍銆嬬殑椤圭洰涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏄惁灞炰簬銆婅タ閮ㄥ湴鍖洪紦鍔辩被浜т笟鐩綍銆嬬殑椤圭洰")
+    private Boolean belongsToWesternEncouragedDirectory;
+
+    @NotNull(message = "鏄惁涓嶅睘浜庝骇涓氭斂绛栫姝㈡姇璧勫缓璁炬垨瀹炶鏍稿噯銆佸鎵圭鐞嗙殑椤圭洰涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏄惁涓嶅睘浜庝骇涓氭斂绛栫姝㈡姇璧勫缓璁炬垨瀹炶鏍稿噯銆佸鎵圭鐞嗙殑椤圭洰")
+    private Boolean notBannedOrControlledProject;
+
+    @NotNull(message = "濉姤淇℃伅鏄惁鐪熷疄涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("濉姤淇℃伅鏄惁鐪熷疄")
+    private Boolean informationIsTrue;
+
+    @NotBlank(message = "涓撻」瑙勫垝澶嶅悎鎯呭喌涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("涓撻」瑙勫垝澶嶅悎鎯呭喌")
+    private String specialPlanningCompliance;
+
+    @NotBlank(message = "椤圭洰鑳借�楁儏鍐典笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("椤圭洰鑳借�楁儏鍐�")
+    private String energyConsumption;
+
+    @NotBlank(message = "椤圭洰骞寸患鍚堣兘婧愭秷璐归噺锛堟爣鍑嗙叅褰撻噺鍊硷級涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("椤圭洰骞寸患鍚堣兘婧愭秷璐归噺锛堟爣鍑嗙叅褰撻噺鍊硷級")
+    private String annualEnergyConsumption;
+
+    @NotBlank(message = "椤圭洰骞寸數鍔涙秷鑰楅噺锛堟爣鍑嗙叅褰撻噺鍊硷級涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("椤圭洰骞寸數鍔涙秷鑰楅噺锛堟爣鍑嗙叅褰撻噺鍊硷級")
+    private String annualElectricityConsumption;
+
+    @NotBlank(message = "鑺傝兘瀹℃煡锛�1闇�瑕侊紝0涓嶉渶瑕侊級涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鑺傝兘瀹℃煡锛�1闇�瑕侊紝0涓嶉渶瑕侊級")
+    private String energyCheck;
+
+    @NotBlank(message = "涓嶅啀鍗曠嫭杩涜鑺傝兘瀹℃煡鐨勭被鍨嬩笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("涓嶅啀鍗曠嫭杩涜鑺傝兘瀹℃煡鐨勭被鍨�")
+    private String noOnlyCheckType;
+
+    @NotBlank(message = "澶囨敞涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("澶囨敞")
+    private String remarks;
+
+    @NotNull(message = "鍒涘缓鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    private Date gmtCreateTime;
+
+    @NotNull(message = "鏇存柊鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    private Date gmtUpdateTime;
+
+    @NotNull(message = "鍒涘缓浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鍒涘缓浜�")
+    private Long createBy;
+
+    @NotNull(message = "鏇存柊浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鏇存柊浜�")
+    private Long updateBy;
+
+    public static ProjectInvestmentPolicyCompliance getEntityByForm(@NonNull ProjectInvestmentPolicyComplianceForm form, ProjectInvestmentPolicyCompliance entity) {
+        if(entity == null) {
+          entity = new ProjectInvestmentPolicyCompliance();
+        }
+        BeanUtils.copyProperties(form, entity);
+        return entity;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/query/ProjectInvestmentFundingQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectInvestmentFundingQuery.java
new file mode 100644
index 0000000..fc59a7c
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/query/ProjectInvestmentFundingQuery.java
@@ -0,0 +1,22 @@
+package com.ycl.domain.query;
+
+import com.ycl.system.domain.base.AbsQuery;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃鏌ヨ
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@ApiModel(value = "ProjectInvestmentFunding鏌ヨ鍙傛暟", description = "椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃鏌ヨ鍙傛暟")
+public class ProjectInvestmentFundingQuery extends AbsQuery {
+}
+
diff --git a/business/src/main/java/com/ycl/domain/query/ProjectInvestmentInfoQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectInvestmentInfoQuery.java
new file mode 100644
index 0000000..0ee8406
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/query/ProjectInvestmentInfoQuery.java
@@ -0,0 +1,22 @@
+package com.ycl.domain.query;
+
+import com.ycl.system.domain.base.AbsQuery;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鎶曡祫椤圭洰鍩虹淇℃伅琛ㄦ煡璇�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@ApiModel(value = "ProjectInvestmentInfo鏌ヨ鍙傛暟", description = "鎶曡祫椤圭洰鍩虹淇℃伅琛ㄦ煡璇㈠弬鏁�")
+public class ProjectInvestmentInfoQuery extends AbsQuery {
+}
+
diff --git a/business/src/main/java/com/ycl/domain/query/ProjectInvestmentPolicyComplianceQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectInvestmentPolicyComplianceQuery.java
new file mode 100644
index 0000000..66d6f10
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/query/ProjectInvestmentPolicyComplianceQuery.java
@@ -0,0 +1,22 @@
+package com.ycl.domain.query;
+
+import com.ycl.system.domain.base.AbsQuery;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛ㄦ煡璇�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@ApiModel(value = "ProjectInvestmentPolicyCompliance鏌ヨ鍙傛暟", description = "鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛ㄦ煡璇㈠弬鏁�")
+public class ProjectInvestmentPolicyComplianceQuery extends AbsQuery {
+}
+
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentFundingVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentFundingVO.java
new file mode 100644
index 0000000..b8369f8
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentFundingVO.java
@@ -0,0 +1,151 @@
+package com.ycl.domain.vo;
+
+import com.ycl.system.domain.base.AbsVo;
+import com.ycl.domain.entity.ProjectInvestmentFunding;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import org.springframework.beans.BeanUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * 椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃灞曠ず
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@ApiModel(value = "椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃鍝嶅簲鏁版嵁", description = "椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃鍝嶅簲鏁版嵁")
+public class ProjectInvestmentFundingVO extends AbsVo {
+
+    /** 椤圭洰id */
+    @ApiModelProperty("椤圭洰id")
+    private Long projectId;
+
+    /** 椤圭洰鎬绘姇璧勯 */
+    @ApiModelProperty("椤圭洰鎬绘姇璧勯")
+    private String totalInvestment;
+
+    /** 椤圭洰鏈噾 */
+    @ApiModelProperty("椤圭洰鏈噾")
+    private String principal;
+
+    /** 鏀垮簻鎶曡祫鎬婚 */
+    @ApiModelProperty("鏀垮簻鎶曡祫鎬婚")
+    private String governmentInvestmentTotal;
+
+    /** 涓ぎ鎶曡祫鎬婚 */
+    @ApiModelProperty("涓ぎ鎶曡祫鎬婚")
+    private String centralInvestmentTotal;
+
+    /** 涓ぎ棰勭畻鎶曡祫 */
+    @ApiModelProperty("涓ぎ棰勭畻鎶曡祫")
+    private String centralBudgetInvestment;
+
+    /** 涓ぎ璐㈡斂 */
+    @ApiModelProperty("涓ぎ璐㈡斂")
+    private String centralFiscalInvestment;
+
+    /** 涓ぎ涓撻」鍊哄埜绛归泦鐨勪笓椤瑰缓璁捐祫閲� */
+    @ApiModelProperty("涓ぎ涓撻」鍊哄埜绛归泦鐨勪笓椤瑰缓璁捐祫閲�")
+    private String centralSpecialBondInvestment;
+
+    /** 涓ぎ涓撻」寤鸿鍩洪噾 */
+    @ApiModelProperty("涓ぎ涓撻」寤鸿鍩洪噾")
+    private String centralSpecialFundInvestment;
+
+    /** 鐪佺骇鎶曡祫鎬婚 */
+    @ApiModelProperty("鐪佺骇鎶曡祫鎬婚")
+    private String provincialInvestmentTotal;
+
+    /** 鐪侀绠楀唴鎶曡祫 */
+    @ApiModelProperty("鐪侀绠楀唴鎶曡祫")
+    private String provincialBudgetInvestment;
+
+    /** 鐪佽储鏀挎�у缓璁炬姇璧� */
+    @ApiModelProperty("鐪佽储鏀挎�у缓璁炬姇璧�")
+    private String provincialFiscalInvestment;
+
+    /** 鐪佷笓椤瑰缓璁捐祫閲� */
+    @ApiModelProperty("鐪佷笓椤瑰缓璁捐祫閲�")
+    private String provincialSpecialFundInvestment;
+
+    /** 甯傦紙宸烇級鎶曡祫鎬婚 */
+    @ApiModelProperty("甯傦紙宸烇級鎶曡祫鎬婚")
+    private String cityInvestmentTotal;
+
+    /** 甯傦紙宸烇級棰勭畻鍐呮姇璧� */
+    @ApiModelProperty("甯傦紙宸烇級棰勭畻鍐呮姇璧�")
+    private String cityBudgetInvestment;
+
+    /** 甯傦紙宸烇級璐㈡斂鎬ф姇璧� */
+    @ApiModelProperty("甯傦紙宸烇級璐㈡斂鎬ф姇璧�")
+    private String cityFiscalInvestment;
+
+    /** 甯傦紙宸烇級涓撻」璧勯噾 */
+    @ApiModelProperty("甯傦紙宸烇級涓撻」璧勯噾")
+    private String citySpecialFundInvestment;
+
+    /** 鍘匡紙甯傘�佸尯锛夋姇璧勬�婚 */
+    @ApiModelProperty("鍘匡紙甯傘�佸尯锛夋姇璧勬�婚")
+    private String countyInvestmentTotal;
+
+    /** 鍘匡紙甯傘�佸尯锛夐绠楀唴鎶曡祫 */
+    @ApiModelProperty("鍘匡紙甯傘�佸尯锛夐绠楀唴鎶曡祫")
+    private String countyBudgetInvestment;
+
+    /** 鍘匡紙甯傘�佸尯锛夎储鏀挎�у缓璁捐祫閲� */
+    @ApiModelProperty("鍘匡紙甯傘�佸尯锛夎储鏀挎�у缓璁捐祫閲�")
+    private String countyFiscalInvestment;
+
+    /** 鍘匡紙甯傘�佸尯锛変笓椤硅祫閲� */
+    @ApiModelProperty("鍘匡紙甯傘�佸尯锛変笓椤硅祫閲�")
+    private String countySpecialFundInvestment;
+
+    /** 鍥藉唴璐锋鎬婚 */
+    @ApiModelProperty("鍥藉唴璐锋鎬婚")
+    private String domesticLoanTotal;
+
+    /** 閾惰璐锋 */
+    @ApiModelProperty("閾惰璐锋")
+    private String bankLoan;
+
+    /** 澶栧晢鎶曡祫鎬婚 */
+    @ApiModelProperty("澶栧晢鎶曡祫鎬婚")
+    private String foreignInvestmentTotal;
+
+    /** 浼佷笟鑷鎬婚 */
+    @ApiModelProperty("浼佷笟鑷鎬婚")
+    private String enterpriseSelfRaisedTotal;
+
+    /** 鍏朵粬鎶曡祫鎬婚 */
+    @ApiModelProperty("鍏朵粬鎶曡祫鎬婚")
+    private String otherInvestmentTotal;
+
+    /** 鍒涘缓鏃堕棿 */
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    private Date gmtCreateTime;
+
+    /** 鍒涘缓浜� */
+    @ApiModelProperty("鍒涘缓浜�")
+    private Long createBy;
+
+    /** 鏇存柊鏃堕棿 */
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    private Date gmtUpdateTime;
+
+    /** 鏇存柊浜� */
+    @ApiModelProperty("鏇存柊浜�")
+    private Long updateBy;
+
+    public static ProjectInvestmentFundingVO getVoByEntity(@NonNull ProjectInvestmentFunding entity, ProjectInvestmentFundingVO vo) {
+        if(vo == null) {
+            vo = new ProjectInvestmentFundingVO();
+        }
+        BeanUtils.copyProperties(entity, vo);
+        return vo;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentInfoVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentInfoVO.java
new file mode 100644
index 0000000..4cd10ec
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentInfoVO.java
@@ -0,0 +1,107 @@
+package com.ycl.domain.vo;
+
+import com.ycl.system.domain.base.AbsVo;
+import com.ycl.domain.entity.ProjectInvestmentInfo;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import org.springframework.beans.BeanUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * 鎶曡祫椤圭洰鍩虹淇℃伅琛ㄥ睍绀�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@ApiModel(value = "鎶曡祫椤圭洰鍩虹淇℃伅琛ㄥ搷搴旀暟鎹�", description = "鎶曡祫椤圭洰鍩虹淇℃伅琛ㄥ搷搴旀暟鎹�")
+public class ProjectInvestmentInfoVO extends AbsVo {
+
+    /** 椤圭洰id */
+    @ApiModelProperty("椤圭洰id")
+    private Long projectId;
+
+    /** 寤鸿鍦扮偣鏄惁璺ㄥ煙 */
+    @ApiModelProperty("寤鸿鍦扮偣鏄惁璺ㄥ煙")
+    private Integer beCrossRegion;
+
+    /** 椤圭洰寤鸿鍦扮偣 */
+    @ApiModelProperty("椤圭洰寤鸿鍦扮偣")
+    private String constructionLocation;
+
+    /** 寤鸿璇︾粏鍦板潃 */
+    @ApiModelProperty("寤鸿璇︾粏鍦板潃")
+    private String detailedAddress;
+
+    /** 鏄惁鏄ˉ鐮侀」鐩� */
+    @ApiModelProperty("鏄惁鏄ˉ鐮侀」鐩�")
+    private Integer beCompensationProject;
+
+    /** 琛ョ爜鍘熷洜 */
+    @ApiModelProperty("琛ョ爜鍘熷洜")
+    private String compensationReason;
+
+    /** 璁″垝寮�宸ユ椂闂� */
+    @ApiModelProperty("璁″垝寮�宸ユ椂闂�")
+    private Date plannedStartDate;
+
+    /** 鎷熷缓鎴愭椂闂� */
+    @ApiModelProperty("鎷熷缓鎴愭椂闂�")
+    private Date expectedCompletionDate;
+
+    /** 鍥芥爣琛屼笟鍒嗙被 */
+    @ApiModelProperty("鍥芥爣琛屼笟鍒嗙被")
+    private String nationalIndustryClassification;
+
+    /** 鎵�灞炶涓氬垎绫� */
+    @ApiModelProperty("鎵�灞炶涓氬垎绫�")
+    private String industryClassification;
+
+    /** 椤圭洰寤鸿鎬ц川 */
+    @ApiModelProperty("椤圭洰寤鸿鎬ц川")
+    private String projectNature;
+
+    /** 椤圭洰灞炴�� */
+    @ApiModelProperty("椤圭洰灞炴��")
+    private String projectAttribute;
+
+    /** 鏄惁浣跨敤鍦熷湴 */
+    @ApiModelProperty("鏄惁浣跨敤鍦熷湴")
+    private Integer useEarth;
+
+    /** 涓昏寤鸿鍐呭鍙婅妯� */
+    @ApiModelProperty("涓昏寤鸿鍐呭鍙婅妯�")
+    private String contentScale;
+
+    /** 寤虹骞冲彴浠g爜 */
+    @ApiModelProperty("寤虹骞冲彴浠g爜")
+    private String code;
+
+    /** 鍒涘缓鏃堕棿 */
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    private Date gmtCreateTime;
+
+    /** 鍒涘缓浜� */
+    @ApiModelProperty("鍒涘缓浜�")
+    private Long createBy;
+
+    /** 鏇存柊鏃堕棿 */
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    private Date gmtUpdateTime;
+
+    /** 鏇存柊浜� */
+    @ApiModelProperty("鏇存柊浜�")
+    private Long updateBy;
+
+    public static ProjectInvestmentInfoVO getVoByEntity(@NonNull ProjectInvestmentInfo entity, ProjectInvestmentInfoVO vo) {
+        if(vo == null) {
+            vo = new ProjectInvestmentInfoVO();
+        }
+        BeanUtils.copyProperties(entity, vo);
+        return vo;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentPolicyComplianceVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentPolicyComplianceVO.java
new file mode 100644
index 0000000..a1406c6
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentPolicyComplianceVO.java
@@ -0,0 +1,103 @@
+package com.ycl.domain.vo;
+
+import com.ycl.system.domain.base.AbsVo;
+import com.ycl.domain.entity.ProjectInvestmentPolicyCompliance;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import org.springframework.beans.BeanUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * 鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛ㄥ睍绀�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Data
+@ApiModel(value = "鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛ㄥ搷搴旀暟鎹�", description = "鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛ㄥ搷搴旀暟鎹�")
+public class ProjectInvestmentPolicyComplianceVO extends AbsVo {
+
+    /** 椤圭洰id */
+    @ApiModelProperty("椤圭洰id")
+    private Long projectId;
+
+    /** 绗﹀悎浜т笟鏀跨瓥闄勪欢 */
+    @ApiModelProperty("绗﹀悎浜т笟鏀跨瓥闄勪欢")
+    private String policyComplianceAttachment;
+
+    /** 鏄惁灞炰簬銆婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬩笅鐨勯」鐩� */
+    @ApiModelProperty("鏄惁灞炰簬銆婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬩笅鐨勯」鐩�")
+    private Boolean belongsToIndustryAdjustmentDirectory;
+
+    /** 鏄惁灞炰簬鏈垪鍏ャ�婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬬殑鍏佽绫婚」鐩� */
+    @ApiModelProperty("鏄惁灞炰簬鏈垪鍏ャ�婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬬殑鍏佽绫婚」鐩�")
+    private Boolean belongsToAllowedProjects;
+
+    /** 鏄惁灞炰簬銆婅タ閮ㄥ湴鍖洪紦鍔辩被浜т笟鐩綍銆嬬殑椤圭洰 */
+    @ApiModelProperty("鏄惁灞炰簬銆婅タ閮ㄥ湴鍖洪紦鍔辩被浜т笟鐩綍銆嬬殑椤圭洰")
+    private Boolean belongsToWesternEncouragedDirectory;
+
+    /** 鏄惁涓嶅睘浜庝骇涓氭斂绛栫姝㈡姇璧勫缓璁炬垨瀹炶鏍稿噯銆佸鎵圭鐞嗙殑椤圭洰 */
+    @ApiModelProperty("鏄惁涓嶅睘浜庝骇涓氭斂绛栫姝㈡姇璧勫缓璁炬垨瀹炶鏍稿噯銆佸鎵圭鐞嗙殑椤圭洰")
+    private Boolean notBannedOrControlledProject;
+
+    /** 濉姤淇℃伅鏄惁鐪熷疄 */
+    @ApiModelProperty("濉姤淇℃伅鏄惁鐪熷疄")
+    private Integer informationIsTrue;
+
+    /** 涓撻」瑙勫垝澶嶅悎鎯呭喌 */
+    @ApiModelProperty("涓撻」瑙勫垝澶嶅悎鎯呭喌")
+    private String specialPlanningCompliance;
+
+    /** 椤圭洰鑳借�楁儏鍐� */
+    @ApiModelProperty("椤圭洰鑳借�楁儏鍐�")
+    private String energyConsumption;
+
+    /** 椤圭洰骞寸患鍚堣兘婧愭秷璐归噺锛堟爣鍑嗙叅褰撻噺鍊硷級 */
+    @ApiModelProperty("椤圭洰骞寸患鍚堣兘婧愭秷璐归噺锛堟爣鍑嗙叅褰撻噺鍊硷級")
+    private String annualEnergyConsumption;
+
+    /** 椤圭洰骞寸數鍔涙秷鑰楅噺锛堟爣鍑嗙叅褰撻噺鍊硷級 */
+    @ApiModelProperty("椤圭洰骞寸數鍔涙秷鑰楅噺锛堟爣鍑嗙叅褰撻噺鍊硷級")
+    private String annualElectricityConsumption;
+
+    /** 鑺傝兘瀹℃煡锛�1闇�瑕侊紝0涓嶉渶瑕侊級 */
+    @ApiModelProperty("鑺傝兘瀹℃煡锛�1闇�瑕侊紝0涓嶉渶瑕侊級")
+    private String energyCheck;
+
+    /** 涓嶅啀鍗曠嫭杩涜鑺傝兘瀹℃煡鐨勭被鍨� */
+    @ApiModelProperty("涓嶅啀鍗曠嫭杩涜鑺傝兘瀹℃煡鐨勭被鍨�")
+    private String noOnlyCheckType;
+
+    /** 澶囨敞 */
+    @ApiModelProperty("澶囨敞")
+    private String remarks;
+
+    /** 鍒涘缓鏃堕棿 */
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    private Date gmtCreateTime;
+
+    /** 鏇存柊鏃堕棿 */
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    private Date gmtUpdateTime;
+
+    /** 鍒涘缓浜� */
+    @ApiModelProperty("鍒涘缓浜�")
+    private Long createBy;
+
+    /** 鏇存柊浜� */
+    @ApiModelProperty("鏇存柊浜�")
+    private Long updateBy;
+
+    public static ProjectInvestmentPolicyComplianceVO getVoByEntity(@NonNull ProjectInvestmentPolicyCompliance entity, ProjectInvestmentPolicyComplianceVO vo) {
+        if(vo == null) {
+            vo = new ProjectInvestmentPolicyComplianceVO();
+        }
+        BeanUtils.copyProperties(entity, vo);
+        return vo;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/ProjectInvestmentFundingMapper.java b/business/src/main/java/com/ycl/mapper/ProjectInvestmentFundingMapper.java
new file mode 100644
index 0000000..78e91ef
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/ProjectInvestmentFundingMapper.java
@@ -0,0 +1,34 @@
+package com.ycl.mapper;
+
+import com.ycl.domain.entity.ProjectInvestmentFunding;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.domain.vo.ProjectInvestmentFundingVO;
+import com.ycl.domain.form.ProjectInvestmentFundingForm;
+import com.ycl.domain.query.ProjectInvestmentFundingQuery;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃 Mapper 鎺ュ彛
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Mapper
+public interface ProjectInvestmentFundingMapper extends BaseMapper<ProjectInvestmentFunding> {
+
+    /**
+     * id鏌ユ壘椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃
+     * @param id
+     * @return
+     */
+    ProjectInvestmentFundingVO getById(Integer id);
+
+    /**
+    *  鍒嗛〉
+    */
+    IPage getPage(IPage page, @Param("query") ProjectInvestmentFundingQuery query);
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/ProjectInvestmentInfoMapper.java b/business/src/main/java/com/ycl/mapper/ProjectInvestmentInfoMapper.java
new file mode 100644
index 0000000..27d927c
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/ProjectInvestmentInfoMapper.java
@@ -0,0 +1,34 @@
+package com.ycl.mapper;
+
+import com.ycl.domain.entity.ProjectInvestmentInfo;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.domain.vo.ProjectInvestmentInfoVO;
+import com.ycl.domain.form.ProjectInvestmentInfoForm;
+import com.ycl.domain.query.ProjectInvestmentInfoQuery;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 鎶曡祫椤圭洰鍩虹淇℃伅琛� Mapper 鎺ュ彛
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Mapper
+public interface ProjectInvestmentInfoMapper extends BaseMapper<ProjectInvestmentInfo> {
+
+    /**
+     * id鏌ユ壘鎶曡祫椤圭洰鍩虹淇℃伅琛�
+     * @param id
+     * @return
+     */
+    ProjectInvestmentInfoVO getById(Integer id);
+
+    /**
+    *  鍒嗛〉
+    */
+    IPage getPage(IPage page, @Param("query") ProjectInvestmentInfoQuery query);
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/ProjectInvestmentPolicyComplianceMapper.java b/business/src/main/java/com/ycl/mapper/ProjectInvestmentPolicyComplianceMapper.java
new file mode 100644
index 0000000..8ab10af
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/ProjectInvestmentPolicyComplianceMapper.java
@@ -0,0 +1,34 @@
+package com.ycl.mapper;
+
+import com.ycl.domain.entity.ProjectInvestmentPolicyCompliance;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.domain.vo.ProjectInvestmentPolicyComplianceVO;
+import com.ycl.domain.form.ProjectInvestmentPolicyComplianceForm;
+import com.ycl.domain.query.ProjectInvestmentPolicyComplianceQuery;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛� Mapper 鎺ュ彛
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Mapper
+public interface ProjectInvestmentPolicyComplianceMapper extends BaseMapper<ProjectInvestmentPolicyCompliance> {
+
+    /**
+     * id鏌ユ壘鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛�
+     * @param id
+     * @return
+     */
+    ProjectInvestmentPolicyComplianceVO getById(Integer id);
+
+    /**
+    *  鍒嗛〉
+    */
+    IPage getPage(IPage page, @Param("query") ProjectInvestmentPolicyComplianceQuery query);
+
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectInvestmentFundingService.java b/business/src/main/java/com/ycl/service/ProjectInvestmentFundingService.java
new file mode 100644
index 0000000..9c91a45
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/ProjectInvestmentFundingService.java
@@ -0,0 +1,65 @@
+package com.ycl.service;
+
+import com.ycl.domain.entity.ProjectInvestmentFunding;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.form.ProjectInvestmentFundingForm;
+import com.ycl.domain.query.ProjectInvestmentFundingQuery;
+import java.util.List;
+
+/**
+ * 椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃 鏈嶅姟绫�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+public interface ProjectInvestmentFundingService extends IService<ProjectInvestmentFunding> {
+
+    /**
+     * 娣诲姞
+     * @param form
+     * @return
+     */
+    Result add(ProjectInvestmentFundingForm form);
+
+    /**
+     * 淇敼
+     * @param form
+     * @return
+     */
+    Result update(ProjectInvestmentFundingForm form);
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    Result remove(List<String> ids);
+
+    /**
+     * id鍒犻櫎
+     * @param id
+     * @return
+     */
+    Result removeById(String id);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param query
+     * @return
+     */
+    Result page(ProjectInvestmentFundingQuery query);
+
+    /**
+     * 鏍规嵁id鏌ユ壘
+     * @param id
+     * @return
+     */
+    Result detail(Integer id);
+
+    /**
+     * 鍒楄〃
+     * @return
+     */
+    Result all();
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectInvestmentInfoService.java b/business/src/main/java/com/ycl/service/ProjectInvestmentInfoService.java
new file mode 100644
index 0000000..0989923
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/ProjectInvestmentInfoService.java
@@ -0,0 +1,65 @@
+package com.ycl.service;
+
+import com.ycl.domain.entity.ProjectInvestmentInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.form.ProjectInvestmentInfoForm;
+import com.ycl.domain.query.ProjectInvestmentInfoQuery;
+import java.util.List;
+
+/**
+ * 鎶曡祫椤圭洰鍩虹淇℃伅琛� 鏈嶅姟绫�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+public interface ProjectInvestmentInfoService extends IService<ProjectInvestmentInfo> {
+
+    /**
+     * 娣诲姞
+     * @param form
+     * @return
+     */
+    Result add(ProjectInvestmentInfoForm form);
+
+    /**
+     * 淇敼
+     * @param form
+     * @return
+     */
+    Result update(ProjectInvestmentInfoForm form);
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    Result remove(List<String> ids);
+
+    /**
+     * id鍒犻櫎
+     * @param id
+     * @return
+     */
+    Result removeById(String id);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param query
+     * @return
+     */
+    Result page(ProjectInvestmentInfoQuery query);
+
+    /**
+     * 鏍规嵁id鏌ユ壘
+     * @param id
+     * @return
+     */
+    Result detail(Integer id);
+
+    /**
+     * 鍒楄〃
+     * @return
+     */
+    Result all();
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectInvestmentPolicyComplianceService.java b/business/src/main/java/com/ycl/service/ProjectInvestmentPolicyComplianceService.java
new file mode 100644
index 0000000..46aab3c
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/ProjectInvestmentPolicyComplianceService.java
@@ -0,0 +1,65 @@
+package com.ycl.service;
+
+import com.ycl.domain.entity.ProjectInvestmentPolicyCompliance;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.form.ProjectInvestmentPolicyComplianceForm;
+import com.ycl.domain.query.ProjectInvestmentPolicyComplianceQuery;
+import java.util.List;
+
+/**
+ * 鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛� 鏈嶅姟绫�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+public interface ProjectInvestmentPolicyComplianceService extends IService<ProjectInvestmentPolicyCompliance> {
+
+    /**
+     * 娣诲姞
+     * @param form
+     * @return
+     */
+    Result add(ProjectInvestmentPolicyComplianceForm form);
+
+    /**
+     * 淇敼
+     * @param form
+     * @return
+     */
+    Result update(ProjectInvestmentPolicyComplianceForm form);
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    Result remove(List<String> ids);
+
+    /**
+     * id鍒犻櫎
+     * @param id
+     * @return
+     */
+    Result removeById(String id);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param query
+     * @return
+     */
+    Result page(ProjectInvestmentPolicyComplianceQuery query);
+
+    /**
+     * 鏍规嵁id鏌ユ壘
+     * @param id
+     * @return
+     */
+    Result detail(Integer id);
+
+    /**
+     * 鍒楄〃
+     * @return
+     */
+    Result all();
+}
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInvestmentFundingServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInvestmentFundingServiceImpl.java
new file mode 100644
index 0000000..d77109b
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/ProjectInvestmentFundingServiceImpl.java
@@ -0,0 +1,119 @@
+package com.ycl.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.domain.entity.ProjectInvestmentFunding;
+import com.ycl.mapper.ProjectInvestmentFundingMapper;
+import com.ycl.service.ProjectInvestmentFundingService;
+import com.ycl.common.base.Result;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.domain.form.ProjectInvestmentFundingForm;
+import com.ycl.domain.vo.ProjectInvestmentFundingVO;
+import com.ycl.domain.query.ProjectInvestmentFundingQuery;
+import org.springframework.stereotype.Service;
+import lombok.RequiredArgsConstructor;
+import com.ycl.framework.utils.PageUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.Assert;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 椤圭洰鎶曡祫鍙婅祫閲戞潵婧愭儏鍐佃〃 鏈嶅姟瀹炵幇绫�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Service
+@RequiredArgsConstructor
+public class ProjectInvestmentFundingServiceImpl extends ServiceImpl<ProjectInvestmentFundingMapper, ProjectInvestmentFunding> implements ProjectInvestmentFundingService {
+
+    private final ProjectInvestmentFundingMapper projectInvestmentFundingMapper;
+
+    /**
+     * 娣诲姞
+     * @param form
+     * @return
+     */
+    @Override
+    public Result add(ProjectInvestmentFundingForm form) {
+        ProjectInvestmentFunding entity = ProjectInvestmentFundingForm.getEntityByForm(form, null);
+        baseMapper.insert(entity);
+        return Result.ok("娣诲姞鎴愬姛");
+    }
+
+    /**
+     * 淇敼
+     * @param form
+     * @return
+     */
+    @Override
+    public Result update(ProjectInvestmentFundingForm form) {
+        ProjectInvestmentFunding entity = baseMapper.selectById(form.getId());
+
+        // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+        Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+        BeanUtils.copyProperties(form, entity);
+        baseMapper.updateById(entity);
+        return Result.ok("淇敼鎴愬姛");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @Override
+    public Result remove(List<String> ids) {
+        baseMapper.deleteBatchIds(ids);
+        return Result.ok("鍒犻櫎鎴愬姛");
+    }
+
+    /**
+     * id鍒犻櫎
+     * @param id
+     * @return
+     */
+    @Override
+    public Result removeById(String id) {
+        baseMapper.deleteById(id);
+        return Result.ok("鍒犻櫎鎴愬姛");
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param query
+     * @return
+     */
+    @Override
+    public Result page(ProjectInvestmentFundingQuery query) {
+        IPage<ProjectInvestmentFundingVO> page = PageUtil.getPage(query, ProjectInvestmentFundingVO.class);
+        baseMapper.getPage(page, query);
+        return Result.ok().data(page.getRecords()).total(page.getTotal());
+    }
+
+    /**
+     * 鏍规嵁id鏌ユ壘
+     * @param id
+     * @return
+     */
+    @Override
+    public Result detail(Integer id) {
+        ProjectInvestmentFundingVO vo = baseMapper.getById(id);
+        Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+        return Result.ok().data(vo);
+    }
+
+    /**
+     * 鍒楄〃
+     * @return
+     */
+    @Override
+    public Result all() {
+        List<ProjectInvestmentFunding> entities = baseMapper.selectList(null);
+        List<ProjectInvestmentFundingVO> vos = entities.stream()
+                .map(entity -> ProjectInvestmentFundingVO.getVoByEntity(entity, null))
+                .collect(Collectors.toList());
+        return Result.ok().data(vos);
+    }
+}
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInvestmentInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInvestmentInfoServiceImpl.java
new file mode 100644
index 0000000..064a4b9
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/ProjectInvestmentInfoServiceImpl.java
@@ -0,0 +1,119 @@
+package com.ycl.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.domain.entity.ProjectInvestmentInfo;
+import com.ycl.mapper.ProjectInvestmentInfoMapper;
+import com.ycl.service.ProjectInvestmentInfoService;
+import com.ycl.common.base.Result;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.domain.form.ProjectInvestmentInfoForm;
+import com.ycl.domain.vo.ProjectInvestmentInfoVO;
+import com.ycl.domain.query.ProjectInvestmentInfoQuery;
+import org.springframework.stereotype.Service;
+import lombok.RequiredArgsConstructor;
+import com.ycl.framework.utils.PageUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.Assert;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 鎶曡祫椤圭洰鍩虹淇℃伅琛� 鏈嶅姟瀹炵幇绫�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Service
+@RequiredArgsConstructor
+public class ProjectInvestmentInfoServiceImpl extends ServiceImpl<ProjectInvestmentInfoMapper, ProjectInvestmentInfo> implements ProjectInvestmentInfoService {
+
+    private final ProjectInvestmentInfoMapper projectInvestmentInfoMapper;
+
+    /**
+     * 娣诲姞
+     * @param form
+     * @return
+     */
+    @Override
+    public Result add(ProjectInvestmentInfoForm form) {
+        ProjectInvestmentInfo entity = ProjectInvestmentInfoForm.getEntityByForm(form, null);
+        baseMapper.insert(entity);
+        return Result.ok("娣诲姞鎴愬姛");
+    }
+
+    /**
+     * 淇敼
+     * @param form
+     * @return
+     */
+    @Override
+    public Result update(ProjectInvestmentInfoForm form) {
+        ProjectInvestmentInfo entity = baseMapper.selectById(form.getId());
+
+        // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+        Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+        BeanUtils.copyProperties(form, entity);
+        baseMapper.updateById(entity);
+        return Result.ok("淇敼鎴愬姛");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @Override
+    public Result remove(List<String> ids) {
+        baseMapper.deleteBatchIds(ids);
+        return Result.ok("鍒犻櫎鎴愬姛");
+    }
+
+    /**
+     * id鍒犻櫎
+     * @param id
+     * @return
+     */
+    @Override
+    public Result removeById(String id) {
+        baseMapper.deleteById(id);
+        return Result.ok("鍒犻櫎鎴愬姛");
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param query
+     * @return
+     */
+    @Override
+    public Result page(ProjectInvestmentInfoQuery query) {
+        IPage<ProjectInvestmentInfoVO> page = PageUtil.getPage(query, ProjectInvestmentInfoVO.class);
+        baseMapper.getPage(page, query);
+        return Result.ok().data(page.getRecords()).total(page.getTotal());
+    }
+
+    /**
+     * 鏍规嵁id鏌ユ壘
+     * @param id
+     * @return
+     */
+    @Override
+    public Result detail(Integer id) {
+        ProjectInvestmentInfoVO vo = baseMapper.getById(id);
+        Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+        return Result.ok().data(vo);
+    }
+
+    /**
+     * 鍒楄〃
+     * @return
+     */
+    @Override
+    public Result all() {
+        List<ProjectInvestmentInfo> entities = baseMapper.selectList(null);
+        List<ProjectInvestmentInfoVO> vos = entities.stream()
+                .map(entity -> ProjectInvestmentInfoVO.getVoByEntity(entity, null))
+                .collect(Collectors.toList());
+        return Result.ok().data(vos);
+    }
+}
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInvestmentPolicyComplianceServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInvestmentPolicyComplianceServiceImpl.java
new file mode 100644
index 0000000..8299d67
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/ProjectInvestmentPolicyComplianceServiceImpl.java
@@ -0,0 +1,119 @@
+package com.ycl.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.domain.entity.ProjectInvestmentPolicyCompliance;
+import com.ycl.mapper.ProjectInvestmentPolicyComplianceMapper;
+import com.ycl.service.ProjectInvestmentPolicyComplianceService;
+import com.ycl.common.base.Result;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.domain.form.ProjectInvestmentPolicyComplianceForm;
+import com.ycl.domain.vo.ProjectInvestmentPolicyComplianceVO;
+import com.ycl.domain.query.ProjectInvestmentPolicyComplianceQuery;
+import org.springframework.stereotype.Service;
+import lombok.RequiredArgsConstructor;
+import com.ycl.framework.utils.PageUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.Assert;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌琛� 鏈嶅姟瀹炵幇绫�
+ *
+ * @author flq
+ * @since 2024-11-27
+ */
+@Service
+@RequiredArgsConstructor
+public class ProjectInvestmentPolicyComplianceServiceImpl extends ServiceImpl<ProjectInvestmentPolicyComplianceMapper, ProjectInvestmentPolicyCompliance> implements ProjectInvestmentPolicyComplianceService {
+
+    private final ProjectInvestmentPolicyComplianceMapper projectInvestmentPolicyComplianceMapper;
+
+    /**
+     * 娣诲姞
+     * @param form
+     * @return
+     */
+    @Override
+    public Result add(ProjectInvestmentPolicyComplianceForm form) {
+        ProjectInvestmentPolicyCompliance entity = ProjectInvestmentPolicyComplianceForm.getEntityByForm(form, null);
+        baseMapper.insert(entity);
+        return Result.ok("娣诲姞鎴愬姛");
+    }
+
+    /**
+     * 淇敼
+     * @param form
+     * @return
+     */
+    @Override
+    public Result update(ProjectInvestmentPolicyComplianceForm form) {
+        ProjectInvestmentPolicyCompliance entity = baseMapper.selectById(form.getId());
+
+        // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+        Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+        BeanUtils.copyProperties(form, entity);
+        baseMapper.updateById(entity);
+        return Result.ok("淇敼鎴愬姛");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @Override
+    public Result remove(List<String> ids) {
+        baseMapper.deleteBatchIds(ids);
+        return Result.ok("鍒犻櫎鎴愬姛");
+    }
+
+    /**
+     * id鍒犻櫎
+     * @param id
+     * @return
+     */
+    @Override
+    public Result removeById(String id) {
+        baseMapper.deleteById(id);
+        return Result.ok("鍒犻櫎鎴愬姛");
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param query
+     * @return
+     */
+    @Override
+    public Result page(ProjectInvestmentPolicyComplianceQuery query) {
+        IPage<ProjectInvestmentPolicyComplianceVO> page = PageUtil.getPage(query, ProjectInvestmentPolicyComplianceVO.class);
+        baseMapper.getPage(page, query);
+        return Result.ok().data(page.getRecords()).total(page.getTotal());
+    }
+
+    /**
+     * 鏍规嵁id鏌ユ壘
+     * @param id
+     * @return
+     */
+    @Override
+    public Result detail(Integer id) {
+        ProjectInvestmentPolicyComplianceVO vo = baseMapper.getById(id);
+        Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+        return Result.ok().data(vo);
+    }
+
+    /**
+     * 鍒楄〃
+     * @return
+     */
+    @Override
+    public Result all() {
+        List<ProjectInvestmentPolicyCompliance> entities = baseMapper.selectList(null);
+        List<ProjectInvestmentPolicyComplianceVO> vos = entities.stream()
+                .map(entity -> ProjectInvestmentPolicyComplianceVO.getVoByEntity(entity, null))
+                .collect(Collectors.toList());
+        return Result.ok().data(vos);
+    }
+}
diff --git a/business/src/main/resources/mapper/ProjectInfoMapper.xml b/business/src/main/resources/mapper/ProjectInfoMapper.xml
index 39be98b..007143b 100644
--- a/business/src/main/resources/mapper/ProjectInfoMapper.xml
+++ b/business/src/main/resources/mapper/ProjectInfoMapper.xml
@@ -41,11 +41,6 @@
     </resultMap>
 
 
-
-
-
-
-
     <select id="getById" resultMap="BaseResultMap">
         SELECT
             TPI.project_name,
diff --git a/business/src/main/resources/mapper/ProjectInvestmentFundingMapper.xml b/business/src/main/resources/mapper/ProjectInvestmentFundingMapper.xml
new file mode 100644
index 0000000..fbe5946
--- /dev/null
+++ b/business/src/main/resources/mapper/ProjectInvestmentFundingMapper.xml
@@ -0,0 +1,124 @@
+<?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.ycl.mapper.ProjectInvestmentFundingMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectInvestmentFundingVO">
+        <result column="project_id" property="projectId" />
+        <result column="total_investment" property="totalInvestment" />
+        <result column="principal" property="principal" />
+        <result column="government_investment_total" property="governmentInvestmentTotal" />
+        <result column="central_investment_total" property="centralInvestmentTotal" />
+        <result column="central_budget_investment" property="centralBudgetInvestment" />
+        <result column="central_fiscal_investment" property="centralFiscalInvestment" />
+        <result column="central_special_bond_investment" property="centralSpecialBondInvestment" />
+        <result column="central_special_fund_investment" property="centralSpecialFundInvestment" />
+        <result column="provincial_investment_total" property="provincialInvestmentTotal" />
+        <result column="provincial_budget_investment" property="provincialBudgetInvestment" />
+        <result column="provincial_fiscal_investment" property="provincialFiscalInvestment" />
+        <result column="provincial_special_fund_investment" property="provincialSpecialFundInvestment" />
+        <result column="city_investment_total" property="cityInvestmentTotal" />
+        <result column="city_budget_investment" property="cityBudgetInvestment" />
+        <result column="city_fiscal_investment" property="cityFiscalInvestment" />
+        <result column="city_special_fund_investment" property="citySpecialFundInvestment" />
+        <result column="county_investment_total" property="countyInvestmentTotal" />
+        <result column="county_budget_investment" property="countyBudgetInvestment" />
+        <result column="county_fiscal_investment" property="countyFiscalInvestment" />
+        <result column="county_special_fund_investment" property="countySpecialFundInvestment" />
+        <result column="domestic_loan_total" property="domesticLoanTotal" />
+        <result column="bank_loan" property="bankLoan" />
+        <result column="foreign_investment_total" property="foreignInvestmentTotal" />
+        <result column="enterprise_self_raised_total" property="enterpriseSelfRaisedTotal" />
+        <result column="other_investment_total" property="otherInvestmentTotal" />
+        <result column="gmt_create_time" property="gmtCreateTime" />
+        <result column="create_by" property="createBy" />
+        <result column="gmt_update_time" property="gmtUpdateTime" />
+        <result column="update_by" property="updateBy" />
+    </resultMap>
+
+
+
+
+
+
+
+    <select id="getById" resultMap="BaseResultMap">
+        SELECT
+            TPIF.project_id,
+            TPIF.total_investment,
+            TPIF.principal,
+            TPIF.government_investment_total,
+            TPIF.central_investment_total,
+            TPIF.central_budget_investment,
+            TPIF.central_fiscal_investment,
+            TPIF.central_special_bond_investment,
+            TPIF.central_special_fund_investment,
+            TPIF.provincial_investment_total,
+            TPIF.provincial_budget_investment,
+            TPIF.provincial_fiscal_investment,
+            TPIF.provincial_special_fund_investment,
+            TPIF.city_investment_total,
+            TPIF.city_budget_investment,
+            TPIF.city_fiscal_investment,
+            TPIF.city_special_fund_investment,
+            TPIF.county_investment_total,
+            TPIF.county_budget_investment,
+            TPIF.county_fiscal_investment,
+            TPIF.county_special_fund_investment,
+            TPIF.domestic_loan_total,
+            TPIF.bank_loan,
+            TPIF.foreign_investment_total,
+            TPIF.enterprise_self_raised_total,
+            TPIF.other_investment_total,
+            TPIF.gmt_create_time,
+            TPIF.create_by,
+            TPIF.gmt_update_time,
+            TPIF.update_by,
+            TPIF.id
+        FROM
+            t_project_investment_funding TPIF
+        WHERE
+            TPIF.id = #{id} AND TPIF.deleted = 0
+    </select>
+
+
+    <select id="getPage" resultMap="BaseResultMap">
+        SELECT
+            TPIF.project_id,
+            TPIF.total_investment,
+            TPIF.principal,
+            TPIF.government_investment_total,
+            TPIF.central_investment_total,
+            TPIF.central_budget_investment,
+            TPIF.central_fiscal_investment,
+            TPIF.central_special_bond_investment,
+            TPIF.central_special_fund_investment,
+            TPIF.provincial_investment_total,
+            TPIF.provincial_budget_investment,
+            TPIF.provincial_fiscal_investment,
+            TPIF.provincial_special_fund_investment,
+            TPIF.city_investment_total,
+            TPIF.city_budget_investment,
+            TPIF.city_fiscal_investment,
+            TPIF.city_special_fund_investment,
+            TPIF.county_investment_total,
+            TPIF.county_budget_investment,
+            TPIF.county_fiscal_investment,
+            TPIF.county_special_fund_investment,
+            TPIF.domestic_loan_total,
+            TPIF.bank_loan,
+            TPIF.foreign_investment_total,
+            TPIF.enterprise_self_raised_total,
+            TPIF.other_investment_total,
+            TPIF.gmt_create_time,
+            TPIF.create_by,
+            TPIF.gmt_update_time,
+            TPIF.update_by,
+            TPIF.id
+        FROM
+            t_project_investment_funding TPIF
+        WHERE
+            TPIF.deleted = 0
+    </select>
+
+</mapper>
diff --git a/business/src/main/resources/mapper/ProjectInvestmentInfoMapper.xml b/business/src/main/resources/mapper/ProjectInvestmentInfoMapper.xml
new file mode 100644
index 0000000..826486c
--- /dev/null
+++ b/business/src/main/resources/mapper/ProjectInvestmentInfoMapper.xml
@@ -0,0 +1,91 @@
+<?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.ycl.mapper.ProjectInvestmentInfoMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectInvestmentInfoVO">
+        <result column="project_id" property="projectId" />
+        <result column="be_cross_region" property="beCrossRegion" />
+        <result column="construction_location" property="constructionLocation" />
+        <result column="detailed_address" property="detailedAddress" />
+        <result column="be_compensation_project" property="beCompensationProject" />
+        <result column="compensation_reason" property="compensationReason" />
+        <result column="planned_start_date" property="plannedStartDate" />
+        <result column="expected_completion_date" property="expectedCompletionDate" />
+        <result column="national_industry_classification" property="nationalIndustryClassification" />
+        <result column="industry_classification" property="industryClassification" />
+        <result column="project_nature" property="projectNature" />
+        <result column="project_attribute" property="projectAttribute" />
+        <result column="use_earth" property="useEarth" />
+        <result column="content_scale" property="contentScale" />
+        <result column="code" property="code" />
+        <result column="gmt_create_time" property="gmtCreateTime" />
+        <result column="create_by" property="createBy" />
+        <result column="gmt_update_time" property="gmtUpdateTime" />
+        <result column="update_by" property="updateBy" />
+    </resultMap>
+
+
+
+
+
+
+
+    <select id="getById" resultMap="BaseResultMap">
+        SELECT
+            TPII.project_id,
+            TPII.be_cross_region,
+            TPII.construction_location,
+            TPII.detailed_address,
+            TPII.be_compensation_project,
+            TPII.compensation_reason,
+            TPII.planned_start_date,
+            TPII.expected_completion_date,
+            TPII.national_industry_classification,
+            TPII.industry_classification,
+            TPII.project_nature,
+            TPII.project_attribute,
+            TPII.use_earth,
+            TPII.content_scale,
+            TPII.code,
+            TPII.gmt_create_time,
+            TPII.create_by,
+            TPII.gmt_update_time,
+            TPII.update_by,
+            TPII.id
+        FROM
+            t_project_investment_info TPII
+        WHERE
+            TPII.id = #{id} AND TPII.deleted = 0
+    </select>
+
+
+    <select id="getPage" resultMap="BaseResultMap">
+        SELECT
+            TPII.project_id,
+            TPII.be_cross_region,
+            TPII.construction_location,
+            TPII.detailed_address,
+            TPII.be_compensation_project,
+            TPII.compensation_reason,
+            TPII.planned_start_date,
+            TPII.expected_completion_date,
+            TPII.national_industry_classification,
+            TPII.industry_classification,
+            TPII.project_nature,
+            TPII.project_attribute,
+            TPII.use_earth,
+            TPII.content_scale,
+            TPII.code,
+            TPII.gmt_create_time,
+            TPII.create_by,
+            TPII.gmt_update_time,
+            TPII.update_by,
+            TPII.id
+        FROM
+            t_project_investment_info TPII
+        WHERE
+            TPII.deleted = 0
+    </select>
+
+</mapper>
diff --git a/business/src/main/resources/mapper/ProjectInvestmentPolicyComplianceMapper.xml b/business/src/main/resources/mapper/ProjectInvestmentPolicyComplianceMapper.xml
new file mode 100644
index 0000000..f6df228
--- /dev/null
+++ b/business/src/main/resources/mapper/ProjectInvestmentPolicyComplianceMapper.xml
@@ -0,0 +1,88 @@
+<?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.ycl.mapper.ProjectInvestmentPolicyComplianceMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectInvestmentPolicyComplianceVO">
+        <result column="project_id" property="projectId" />
+        <result column="policy_compliance_attachment" property="policyComplianceAttachment" />
+        <result column="belongs_to_industry_adjustment_directory" property="belongsToIndustryAdjustmentDirectory" />
+        <result column="belongs_to_allowed_projects" property="belongsToAllowedProjects" />
+        <result column="belongs_to_western_encouraged_directory" property="belongsToWesternEncouragedDirectory" />
+        <result column="not_banned_or_controlled_project" property="notBannedOrControlledProject" />
+        <result column="information_is_true" property="informationIsTrue" />
+        <result column="special_planning_compliance" property="specialPlanningCompliance" />
+        <result column="energy_consumption" property="energyConsumption" />
+        <result column="annual_energy_consumption" property="annualEnergyConsumption" />
+        <result column="annual_electricity_consumption" property="annualElectricityConsumption" />
+        <result column="energy_check" property="energyCheck" />
+        <result column="no_only_check_type" property="noOnlyCheckType" />
+        <result column="remarks" property="remarks" />
+        <result column="gmt_create_time" property="gmtCreateTime" />
+        <result column="gmt_update_time" property="gmtUpdateTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_by" property="updateBy" />
+    </resultMap>
+
+
+
+
+
+
+
+    <select id="getById" resultMap="BaseResultMap">
+        SELECT
+            TPIPC.project_id,
+            TPIPC.policy_compliance_attachment,
+            TPIPC.belongs_to_industry_adjustment_directory,
+            TPIPC.belongs_to_allowed_projects,
+            TPIPC.belongs_to_western_encouraged_directory,
+            TPIPC.not_banned_or_controlled_project,
+            TPIPC.information_is_true,
+            TPIPC.special_planning_compliance,
+            TPIPC.energy_consumption,
+            TPIPC.annual_energy_consumption,
+            TPIPC.annual_electricity_consumption,
+            TPIPC.energy_check,
+            TPIPC.no_only_check_type,
+            TPIPC.remarks,
+            TPIPC.gmt_create_time,
+            TPIPC.gmt_update_time,
+            TPIPC.create_by,
+            TPIPC.update_by,
+            TPIPC.id
+        FROM
+            t_project_investment_policy_compliance TPIPC
+        WHERE
+            TPIPC.id = #{id} AND TPIPC.deleted = 0
+    </select>
+
+
+    <select id="getPage" resultMap="BaseResultMap">
+        SELECT
+            TPIPC.project_id,
+            TPIPC.policy_compliance_attachment,
+            TPIPC.belongs_to_industry_adjustment_directory,
+            TPIPC.belongs_to_allowed_projects,
+            TPIPC.belongs_to_western_encouraged_directory,
+            TPIPC.not_banned_or_controlled_project,
+            TPIPC.information_is_true,
+            TPIPC.special_planning_compliance,
+            TPIPC.energy_consumption,
+            TPIPC.annual_energy_consumption,
+            TPIPC.annual_electricity_consumption,
+            TPIPC.energy_check,
+            TPIPC.no_only_check_type,
+            TPIPC.remarks,
+            TPIPC.gmt_create_time,
+            TPIPC.gmt_update_time,
+            TPIPC.create_by,
+            TPIPC.update_by,
+            TPIPC.id
+        FROM
+            t_project_investment_policy_compliance TPIPC
+        WHERE
+            TPIPC.deleted = 0
+    </select>
+
+</mapper>
diff --git a/start/src/main/resources/application.yml b/start/src/main/resources/application.yml
index 80c9de9..bc33f7c 100644
--- a/start/src/main/resources/application.yml
+++ b/start/src/main/resources/application.yml
@@ -93,7 +93,7 @@
   # 浠ょ墝瀵嗛挜
   secret: gfabcdefghijklmnopqrstuvwxyz12
   # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 30
+  expireTime: 1200
 
 # PageHelper鍒嗛〉鎻掍欢
 pagehelper:

--
Gitblit v1.8.0