luohairen
2024-11-27 bdef23946e420ba538870d6314034fbd42f00a66
Merge remote-tracking branch 'origin/master'
12个文件已修改
33个文件已添加
2891 ■■■■■ 已修改文件
business/src/main/java/com/ycl/controller/ProjectInfoController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/controller/ProjectInvestmentFundingController.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/controller/ProjectInvestmentInfoController.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/controller/ProjectInvestmentPolicyComplianceController.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/entity/File.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/entity/ProjectInfo.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/entity/ProjectInvestmentFunding.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/entity/ProjectInvestmentInfo.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/entity/ProjectInvestmentPolicyCompliance.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/form/ProjectInvestmentFundingForm.java 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/form/ProjectInvestmentInfoForm.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/form/ProjectInvestmentPolicyComplianceForm.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/query/ProjectInvestmentFundingQuery.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/query/ProjectInvestmentInfoQuery.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/query/ProjectInvestmentPolicyComplianceQuery.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProjectInvestmentFundingVO.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProjectInvestmentInfoVO.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProjectInvestmentPolicyComplianceVO.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/FileMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/ProjectInvestmentFundingMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/ProjectInvestmentInfoMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/ProjectInvestmentPolicyComplianceMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/FileService.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProjectInvestmentFundingService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProjectInvestmentInfoService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProjectInvestmentPolicyComplianceService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/FileServiceImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectInvestmentFundingServiceImpl.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectInvestmentInfoServiceImpl.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectInvestmentPolicyComplianceServiceImpl.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/FileMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectInfoMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectInvestmentFundingMapper.xml 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectInvestmentInfoMapper.xml 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectInvestmentPolicyComplianceMapper.xml 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/src/main/java/com/ycl/common/utils/ProjectCodeGenerator.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
start/src/main/java/com/ycl/web/controller/system/SysDeptController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
start/src/main/resources/application-dev.yml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
start/src/main/resources/application-prod.yml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
start/src/main/resources/application.yml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system/src/main/java/com/ycl/system/service/ISysDeptService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/controller/ProjectInfoController.java
@@ -3,13 +3,13 @@
import com.ycl.common.base.Result;
import com.ycl.common.group.Add;
import com.ycl.common.group.Update;
import com.ycl.common.utils.ProjectCodeGenerator;
import com.ycl.domain.form.ProjectInfoForm;
import com.ycl.domain.query.ProjectInfoQuery;
import com.ycl.service.ProjectInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -79,4 +79,13 @@
    public Result list() {
        return projectInfoService.all();
    }
    /**
     * 生成项目编号
     * @return 项目编号
     */
    @GetMapping("/getProjectCode")
    public Result generateProjectCode() {
        return Result.ok().data(ProjectCodeGenerator.generateProjectCode());
    };
}
business/src/main/java/com/ycl/controller/ProjectInvestmentFundingController.java
New file
@@ -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();
    }
}
business/src/main/java/com/ycl/controller/ProjectInvestmentInfoController.java
New file
@@ -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();
    }
}
business/src/main/java/com/ycl/controller/ProjectInvestmentPolicyComplianceController.java
New file
@@ -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();
    }
}
business/src/main/java/com/ycl/domain/entity/File.java
New file
@@ -0,0 +1,48 @@
package com.ycl.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ycl.system.domain.base.AbsEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
 * 文件表
 *
 * @author flq
 * @since 2024-11-22
 */
@Data
@TableName("t_file")
public class File extends AbsEntity {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Integer id;
    /**
     * 文件路径
     */
    private String url;
    /**
     * 关联的各种业务的id
     */
    private Long busId;
    /**
     * 文件分类
     */
    private String type;
    /**
     * 文件名
     */
    private String name;
    /**
     * 文件原始名
     */
    private String originalName;
}
business/src/main/java/com/ycl/domain/entity/ProjectInfo.java
@@ -1,12 +1,13 @@
package com.ycl.domain.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ycl.system.domain.base.AbsEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
/**
 * 项目管理基础信息表
@@ -58,11 +59,11 @@
    @TableField("competent_department")
    /** 主管部门(对应审批部门id) */
    private Integer competentDepartment;
    private String competentDepartment;
    @TableField("area_code")
    @TableField("area")
    /** 行政区域 */
    private String areaCode;
    private String area;
    @TableField("management_centralization")
    /** 管理归口  (0基本建设(发改),  1更新改造(经信),  2单纯购置(发改),  3信息化(发改),  4其他投资) */
@@ -71,10 +72,6 @@
    @TableField("project_approval_type")
    /** 项目审批类型 */
    private String projectApprovalType;
    @TableField("investment_catalogue")
    /** 投资目录(?) */
    private String investmentCatalogue;
    @TableField("importance_type")
    /** 重点分类  (0省重点项目,  1遂宁市重点项目,  2.射洪市重点项目,  3.一般项目) */
@@ -90,15 +87,15 @@
    @TableField("create_project_time")
    /** 立项时间 */
    private LocalDateTime createProjectTime;
    private Date createProjectTime;
    @TableField("plan_start_time")
    /** 计划开工时间 */
    private LocalDateTime planStartTime;
    private Date planStartTime;
    @TableField("plan_complete_time")
    /** 计划竣工时间 */
    private LocalDateTime planCompleteTime;
    private Date planCompleteTime;
    @TableField("win_unit")
    /** 中标单位 */
@@ -110,7 +107,7 @@
    @TableField("win_time")
    /** 中标时间 */
    private LocalDateTime winTime;
    private Date winTime;
    @TableField("project_address")
    /** 详细地址 */
@@ -136,19 +133,11 @@
    /** 联系方式 */
    private String contact;
    @TableField("gmt_create_time")
    /** 创建时间 */
    private LocalDateTime gmtCreateTime;
    @TableField("gmt_update_time")
    /** 更新时间 */
    private LocalDateTime gmtUpdateTime;
    @TableField("update_by")
    @TableField(value = "update_by",fill = FieldFill.INSERT_UPDATE)
    /** 更新人 */
    private Long updateBy;
    @TableField("create_by")
    @TableField(value = "create_by",fill = FieldFill.INSERT)
    /** 创建人 */
    private Long createBy;
business/src/main/java/com/ycl/domain/entity/ProjectInvestmentFunding.java
New file
@@ -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;
}
business/src/main/java/com/ycl/domain/entity/ProjectInvestmentInfo.java
New file
@@ -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")
    /** 建管平台代码 */
    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;
}
business/src/main/java/com/ycl/domain/entity/ProjectInvestmentPolicyCompliance.java
New file
@@ -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;
}
business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java
@@ -1,19 +1,23 @@
package com.ycl.domain.form;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.common.group.Add;
import com.ycl.common.group.Update;
import com.ycl.domain.entity.File;
import com.ycl.domain.entity.ProjectInfo;
import com.ycl.system.domain.base.AbsForm;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.lang.NonNull;
import org.springframework.util.CollectionUtils;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 * 项目管理基础信息表表单
@@ -29,139 +33,109 @@
    @ApiModelProperty("项目名称")
    private String projectName;
    @NotBlank(message = "项目代码不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("文件")
    private List<File> fileList;
    @ApiModelProperty("项目代码")
    private String projectCode;
    @NotBlank(message = "建设内容不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("建设内容")
    private String content;
    @NotBlank(message = "项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)")
    private String projectType;
    @NotBlank(message = "项目状态  (0未开工,1已开工,2已竣工,3暂停)不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("项目状态  (0未开工,1已开工,2已竣工,3暂停)")
    private String projectStatus;
    @NotBlank(message = "资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)")
    private String fundType;
    @NotBlank(message = "投资类别(0企业投资,1政府投资,2外商投资,3境外投资)不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("投资类别(0企业投资,1政府投资,2外商投资,3境外投资)")
    private String investType;
    @NotBlank(message = "项目阶段(0储备规划阶段,  1项目前期阶段,  2实施阶段,  3竣工投用阶段)不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("项目阶段(0储备规划阶段,  1项目前期阶段,  2实施阶段,  3竣工投用阶段)")
    private String projectPhase;
    @NotBlank(message = "标签不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("标签")
    private String tag;
    @NotNull(message = "主管部门(对应审批部门id)不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("主管部门(对应审批部门id)")
    private Integer competentDepartment;
    private List<Long> competentDepartmentList;
    @NotBlank(message = "行政区域不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("行政区域")
    private String areaCode;
    private String area;
    @NotBlank(message = "管理归口  (0基本建设(发改),  1更新改造(经信),  2单纯购置(发改),  3信息化(发改),  4其他投资)不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("管理归口  (0基本建设(发改),  1更新改造(经信),  2单纯购置(发改),  3信息化(发改),  4其他投资)")
    private String managementCentralization;
    private List<String> managementCentralizationList;
    @NotBlank(message = "项目审批类型不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("项目审批类型")
    private String projectApprovalType;
    @NotBlank(message = "投资目录(?)不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("投资目录(?)")
    private String investmentCatalogue;
    @NotBlank(message = "重点分类  (0省重点项目,  1遂宁市重点项目,  2.射洪市重点项目,  3.一般项目)不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("重点分类  (0省重点项目,  1遂宁市重点项目,  2.射洪市重点项目,  3.一般项目)")
    private String importanceType;
    @NotBlank(message = "年度投资计划不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("年度投资计划")
    private String year;
    @NotNull(message = "年度投资金额不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("年度投资金额")
    private BigDecimal yearInvestAmount;
    @NotNull(message = "立项时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("立项时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createProjectTime;
    @NotNull(message = "计划开工时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("计划开工时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date planStartTime;
    @NotNull(message = "计划竣工时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("计划竣工时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date planCompleteTime;
    @NotBlank(message = "中标单位不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("中标单位")
    private String winUnit;
    @NotBlank(message = "中标金额不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("中标金额")
    private String winAmount;
    @NotNull(message = "中标时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("中标时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date winTime;
    @NotBlank(message = "详细地址不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("详细地址")
    private String projectAddress;
    @NotBlank(message = "经度不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("经度")
    private String longitude;
    @NotBlank(message = "纬度不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("纬度")
    private String latitude;
    @NotBlank(message = "项目业主单位不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("项目业主单位")
    private String projectOwnerUnit;
    @NotBlank(message = "项目联系人不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("项目联系人")
    private String projectContactPerson;
    @NotBlank(message = "联系方式不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("联系方式")
    private String contact;
    @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 updateBy;
    @NotNull(message = "创建人不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("创建人")
    private Long createBy;
    public static ProjectInfo getEntityByForm(@NonNull ProjectInfoForm form, ProjectInfo entity) {
        if(entity == null) {
          entity = new ProjectInfo();
        }
        BeanUtils.copyProperties(form, entity);
        //审核部门转换
        List<Long> competentDepartmentList = form.getCompetentDepartmentList();
        if(!CollectionUtils.isEmpty(competentDepartmentList)){
            entity.setCompetentDepartment(StringUtils.join(competentDepartmentList, ","));
        }
        //管理归口转换
        List<String> managementCentralizationList = form.getManagementCentralizationList();
        if(!CollectionUtils.isEmpty(managementCentralizationList)){
            entity.setManagementCentralization(StringUtils.join(managementCentralizationList, ","));
        }
        return entity;
    }
business/src/main/java/com/ycl/domain/form/ProjectInvestmentFundingForm.java
New file
@@ -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;
    }
}
business/src/main/java/com/ycl/domain/form/ProjectInvestmentInfoForm.java
New file
@@ -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 = "建管平台代码不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("建管平台代码")
    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;
    }
}
business/src/main/java/com/ycl/domain/form/ProjectInvestmentPolicyComplianceForm.java
New file
@@ -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;
    }
}
business/src/main/java/com/ycl/domain/query/ProjectInvestmentFundingQuery.java
New file
@@ -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 {
}
business/src/main/java/com/ycl/domain/query/ProjectInvestmentInfoQuery.java
New file
@@ -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 {
}
business/src/main/java/com/ycl/domain/query/ProjectInvestmentPolicyComplianceQuery.java
New file
@@ -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 {
}
business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java
@@ -5,11 +5,16 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.lang.NonNull;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 项目管理基础信息表展示
@@ -59,23 +64,20 @@
    /** 主管部门(对应审批部门id) */
    @ApiModelProperty("主管部门(对应审批部门id)")
    private Integer competentDepartment;
    private List<Long> competentDepartmentList;
    /** 行政区域 */
    @ApiModelProperty("行政区域")
    private String areaCode;
    private String area;
    /** 管理归口  (0基本建设(发改),  1更新改造(经信),  2单纯购置(发改),  3信息化(发改),  4其他投资) */
    @ApiModelProperty("管理归口  (0基本建设(发改),  1更新改造(经信),  2单纯购置(发改),  3信息化(发改),  4其他投资)")
    private String managementCentralization;
    private List<String> managementCentralizationList;
    /** 项目审批类型 */
    @ApiModelProperty("项目审批类型")
    private String projectApprovalType;
    /** 投资目录(?) */
    @ApiModelProperty("投资目录(?)")
    private String investmentCatalogue;
    /** 重点分类  (0省重点项目,  1遂宁市重点项目,  2.射洪市重点项目,  3.一般项目) */
    @ApiModelProperty("重点分类  (0省重点项目,  1遂宁市重点项目,  2.射洪市重点项目,  3.一般项目)")
@@ -137,14 +139,6 @@
    @ApiModelProperty("联系方式")
    private String contact;
    /** 创建时间 */
    @ApiModelProperty("创建时间")
    private Date gmtCreateTime;
    /** 更新时间 */
    @ApiModelProperty("更新时间")
    private Date gmtUpdateTime;
    /** 更新人 */
    @ApiModelProperty("更新人")
    private Long updateBy;
@@ -153,13 +147,24 @@
    @ApiModelProperty("创建人")
    private Long createBy;
    // TODO 关联其它几张表
    public static ProjectInfoVO getVoByEntity(@NonNull ProjectInfo entity, ProjectInfoVO vo) {
        if(vo == null) {
            vo = new ProjectInfoVO();
        }
        BeanUtils.copyProperties(entity, vo);
        //主管部门转成list
        String competentDepartment = entity.getCompetentDepartment();
        if(!StringUtils.isBlank(competentDepartment)){
            List<Long> list = Arrays.stream(competentDepartment.split(","))
                    .map(Long::parseLong)
                    .collect(Collectors.toList());
            vo.setCompetentDepartmentList(list);
        }
        //管理归口转换
        String managementCentralization = entity.getManagementCentralization();
        if(!StringUtils.isBlank(managementCentralization)){
            vo.setManagementCentralizationList(Arrays.asList(managementCentralization.split(",")));
        }
        return vo;
    }
business/src/main/java/com/ycl/domain/vo/ProjectInvestmentFundingVO.java
New file
@@ -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;
    }
}
business/src/main/java/com/ycl/domain/vo/ProjectInvestmentInfoVO.java
New file
@@ -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;
    /** 建管平台代码 */
    @ApiModelProperty("建管平台代码")
    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;
    }
}
business/src/main/java/com/ycl/domain/vo/ProjectInvestmentPolicyComplianceVO.java
New file
@@ -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;
    }
}
business/src/main/java/com/ycl/mapper/FileMapper.java
New file
@@ -0,0 +1,23 @@
package com.ycl.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.domain.entity.File;
import org.apache.ibatis.annotations.Mapper;
/**
 * 项目文件关联表 Mapper 接口
 *
 * @author flq
 * @since 2024-11-27
 */
@Mapper
public interface FileMapper extends BaseMapper<File> {
    /**
     * id查找项目文件关联表
     * @param id
     * @return
     */
    File getById(Integer id);
}
business/src/main/java/com/ycl/mapper/ProjectInvestmentFundingMapper.java
New file
@@ -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);
}
business/src/main/java/com/ycl/mapper/ProjectInvestmentInfoMapper.java
New file
@@ -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);
}
business/src/main/java/com/ycl/mapper/ProjectInvestmentPolicyComplianceMapper.java
New file
@@ -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);
}
business/src/main/java/com/ycl/service/FileService.java
New file
@@ -0,0 +1,46 @@
package com.ycl.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.common.base.Result;
import com.ycl.domain.entity.File;
import java.util.List;
/**
 * 项目文件关联表 服务类
 *
 * @author flq
 * @since 2024-11-27
 */
public interface FileService extends IService<File> {
    /**
     * 添加
     * @param file
     * @return
     */
    Result add(File file);
    /**
     * 批量删除
     * @param ids
     * @return
     */
    Result remove(List<String> ids);
    /**
     * id删除
     * @param id
     * @return
     */
    Result removeById(String id);
    /**
     * 根据id查找
     * @param id
     * @return
     */
    Result detail(Integer id);
}
business/src/main/java/com/ycl/service/ProjectInvestmentFundingService.java
New file
@@ -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();
}
business/src/main/java/com/ycl/service/ProjectInvestmentInfoService.java
New file
@@ -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();
}
business/src/main/java/com/ycl/service/ProjectInvestmentPolicyComplianceService.java
New file
@@ -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();
}
business/src/main/java/com/ycl/service/impl/FileServiceImpl.java
New file
@@ -0,0 +1,72 @@
package com.ycl.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.base.Result;
import com.ycl.domain.entity.File;
import com.ycl.mapper.FileMapper;
import com.ycl.service.FileService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import java.util.List;
/**
 * 项目文件关联表 服务实现类
 *
 * @author flq
 * @since 2024-11-27
 */
@Service
@RequiredArgsConstructor
public class FileServiceImpl extends ServiceImpl<FileMapper, File> implements FileService {
    private final FileMapper fileMapper;
    /**
     * 添加
     * @param
     * @return
     */
    @Override
    public Result add(File file) {
        baseMapper.insert(file);
        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("删除成功");
    }
    /**
     * 根据id查找
     * @param id
     * @return
     */
    @Override
    public Result detail(Integer id) {
        File vo = baseMapper.getById(id);
        Assert.notNull(vo, "记录不存在");
        return Result.ok().data(vo);
    }
}
business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.base.Result;
import com.ycl.domain.entity.File;
import com.ycl.domain.entity.ProjectInfo;
import com.ycl.domain.form.ProjectInfoForm;
import com.ycl.domain.query.ProjectInfoQuery;
@@ -13,6 +14,7 @@
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.ArrayList;
@@ -40,9 +42,14 @@
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result add(ProjectInfoForm form) {
        //添加基本信息
        ProjectInfo entity = ProjectInfoForm.getEntityByForm(form, null);
        baseMapper.insert(entity);
//        baseMapper.insert(entity);
        //添加文件
        List<File> fileList = form.getFileList();
        return Result.ok("添加成功");
    }
business/src/main/java/com/ycl/service/impl/ProjectInvestmentFundingServiceImpl.java
New file
@@ -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());
        // 为空抛IllegalArgumentException,做全局异常处理
        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);
    }
}
business/src/main/java/com/ycl/service/impl/ProjectInvestmentInfoServiceImpl.java
New file
@@ -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());
        // 为空抛IllegalArgumentException,做全局异常处理
        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);
    }
}
business/src/main/java/com/ycl/service/impl/ProjectInvestmentPolicyComplianceServiceImpl.java
New file
@@ -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());
        // 为空抛IllegalArgumentException,做全局异常处理
        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);
    }
}
business/src/main/resources/mapper/FileMapper.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.ycl.mapper.FileMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ycl.domain.entity.File">
        <result column="url" property="url" />
        <result column="bus_id" property="busId" />
        <result column="type" property="type" />
        <result column="name" property="name" />
        <result column="original_name" property="originalName" />
    </resultMap>
    <select id="getById" resultMap="BaseResultMap">
        SELECT
            TF.url,
            TF.bus_id,
            TF.type,
            TF.name,
            TF.original_name,
            TF.id
        FROM
            t_file TF
        WHERE
            TF.id = #{id} AND TF.deleted = 0
    </select>
</mapper>
business/src/main/resources/mapper/ProjectInfoMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="com.ycl.mapper.ProjectInfoMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectInfoVO">
    <resultMap id="BaseResultMap" type="com.ycl.domain.entity.ProjectInfo">
        <id column="id" property="id"/>
        <result column="project_name" property="projectName" />
        <result column="project_code" property="projectCode" />
@@ -15,10 +15,9 @@
        <result column="project_phase" property="projectPhase" />
        <result column="tag" property="tag" />
        <result column="competent_department" property="competentDepartment" />
        <result column="area_code" property="areaCode" />
        <result column="area" property="area" />
        <result column="management_centralization" property="managementCentralization" />
        <result column="project_approval_type" property="projectApprovalType" />
        <result column="investment_catalogue" property="investmentCatalogue" />
        <result column="importance_type" property="importanceType" />
        <result column="year" property="year" />
        <result column="year_invest_amount" property="yearInvestAmount" />
@@ -34,16 +33,11 @@
        <result column="project_owner_unit" property="projectOwnerUnit" />
        <result column="project_contact_person" property="projectContactPerson" />
        <result column="contact" property="contact" />
        <result column="gmt_create_time" property="gmtCreateTime" />
        <result column="gmt_update_time" property="gmtUpdateTime" />
        <result column="gmt_create" property="gmtCreate" />
        <result column="gmt_update" property="gmtUpdate" />
        <result column="update_by" property="updateBy" />
        <result column="create_by" property="createBy" />
    </resultMap>
    <select id="getById" resultMap="BaseResultMap">
@@ -58,10 +52,9 @@
            TPI.project_phase,
            TPI.tag,
            TPI.competent_department,
            TPI.area_code,
            TPI.area,
            TPI.management_centralization,
            TPI.project_approval_type,
            TPI.investment_catalogue,
            TPI.importance_type,
            TPI.year,
            TPI.year_invest_amount,
@@ -77,8 +70,8 @@
            TPI.project_owner_unit,
            TPI.project_contact_person,
            TPI.contact,
            TPI.gmt_create_time,
            TPI.gmt_update_time,
            TPI.gmt_create,
            TPI.gmt_update,
            TPI.update_by,
            TPI.create_by,
            TPI.id
@@ -101,10 +94,9 @@
            TPI.project_phase,
            TPI.tag,
            TPI.competent_department,
            TPI.area_code,
            TPI.area,
            TPI.management_centralization,
            TPI.project_approval_type,
            TPI.investment_catalogue,
            TPI.importance_type,
            TPI.year,
            TPI.year_invest_amount,
@@ -120,8 +112,8 @@
            TPI.project_owner_unit,
            TPI.project_contact_person,
            TPI.contact,
            TPI.gmt_create_time,
            TPI.gmt_update_time,
            TPI.gmt_create,
            TPI.gmt_update,
            TPI.update_by,
            TPI.create_by,
            TPI.id
business/src/main/resources/mapper/ProjectInvestmentFundingMapper.xml
New file
@@ -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>
business/src/main/resources/mapper/ProjectInvestmentInfoMapper.xml
New file
@@ -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>
business/src/main/resources/mapper/ProjectInvestmentPolicyComplianceMapper.xml
New file
@@ -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>
common/src/main/java/com/ycl/common/utils/ProjectCodeGenerator.java
New file
@@ -0,0 +1,49 @@
package com.ycl.common.utils;
import java.util.Random;
/**
 * 项目代码生成工具类
 *
 * @Author: ljx
 * @CreateTime: 2024-11-04 15:06
 */
public class ProjectCodeGenerator {
    private static final String PROJECT_PREFIX = "SHXM-"; // 项目编号前缀
    private static final String ENGINEERING_PREFIX = "SHGC-";
    private static final Random RANDOM = new Random();
    /**
     * 根据当前时间戳和特定代码生成项目编号
     * @return 生成的项目编号
     */
    public static String generateProjectCode() {
        // 获取当前时间的时间戳
        long timestamp = System.currentTimeMillis();
        // 生成随机数,增加唯一性
        int randomNum = RANDOM.nextInt(1000);
        // 拼接前缀、时间戳和随机数生成项目编号
        return PROJECT_PREFIX + timestamp + String.format("%03d", randomNum);
    }
    /**
     * 生成工程编码
     * @return 生成工程编号
     */
    public static String generateEngineeringCode() {
        // 获取当前时间的时间戳
        long timestamp = System.currentTimeMillis();
        // 生成随机数,增加唯一性
        int randomNum = RANDOM.nextInt(1000);
        // 拼接前缀、时间戳和随机数生成工程编号
        return ENGINEERING_PREFIX + timestamp + String.format("%03d", randomNum);
    }
    public static void main(String[] args) {
        // 测试生成项目编号
        String projectCode = generateEngineeringCode();
        System.out.println("Generated Project Code: " + projectCode);
    }
}
start/src/main/java/com/ycl/web/controller/system/SysDeptController.java
@@ -2,6 +2,8 @@
import java.util.List;
import com.ycl.common.base.Result;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -35,7 +37,10 @@
public class SysDeptController extends BaseController {
    private final ISysDeptService deptService;
    //业主端id
    private final static Long userPortId = 101L;
    //审批端id
    private final static Long approvalPortId = 102L;
    /**
     * 获取部门列表
     */
@@ -131,4 +136,12 @@
        deptService.checkDeptDataScope(deptId);
        return toAjax(deptService.deleteDeptById(deptId));
    }
    @GetMapping("/approvalList")
    @ApiOperation(value = "审批部门下拉列表", notes = "审批部门下拉列表")
    public Result approvalList() {
        SysDept dept = new SysDept();
        dept.setParentId(approvalPortId);
        return deptService.all(dept);
    }
}
start/src/main/resources/application-dev.yml
@@ -1,3 +1,19 @@
# 项目相关配置
ycl:
    # 名称
    name: projectManagement
    # 版本
    version: 1.0.0
    # 版权年份
    copyrightYear: 2024
    # 文件路径 示例( Windows配置D:/projectManagement/uploadPath,Linux配置 /home/projectManagement/uploadPath)
    profile: D:/projectManagement/uploadPath
    # 获取ip地址开关
    addressEnabled: false
    # 验证码类型 math 数字计算 char 字符验证
    captchaType: math
# 数据源配置
spring:
    # redis 配置
start/src/main/resources/application-prod.yml
@@ -1,3 +1,17 @@
# 项目相关配置
ycl:
    # 名称
    name: projectManagement
    # 版本
    version: 1.0.0
    # 版权年份
    copyrightYear: 2024
    # 文件路径 示例( Windows配置D:/projectManagement/uploadPath,Linux配置 /home/projectManagement/uploadPath)
    profile: /home/projectManagement/uploadPath
    # 获取ip地址开关
    addressEnabled: false
    # 验证码类型 math 数字计算 char 字符验证
    captchaType: math
# 数据源配置
spring:
start/src/main/resources/application.yml
@@ -1,18 +1,3 @@
# 项目相关配置
ycl:
  # 名称
  name: RuoYi
  # 版本
  version: 1.0.0
  # 版权年份
  copyrightYear: 2024
  # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
  profile: D:/ruoyi/uploadPath
  # 获取ip地址开关
  addressEnabled: false
  # 验证码类型 math 数字计算 char 字符验证
  captchaType: math
# mybatis plus配置
mybatis-plus:
@@ -93,7 +78,7 @@
  # 令牌密钥
  secret: gfabcdefghijklmnopqrstuvwxyz12
  # 令牌有效期(默认30分钟)
  expireTime: 30
  expireTime: 1200
# PageHelper分页插件
pagehelper:
system/src/main/java/com/ycl/system/service/ISysDeptService.java
@@ -1,6 +1,8 @@
package com.ycl.system.service;
import java.util.List;
import com.ycl.common.base.Result;
import com.ycl.common.core.domain.TreeSelect;
import com.ycl.common.core.domain.entity.SysDept;
@@ -121,4 +123,10 @@
     * @return 结果
     */
    public int deleteDeptById(Long deptId);
    /**
     * 列表
     * @return
     */
    Result all(SysDept dept);
}
system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
@@ -4,6 +4,9 @@
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
import com.ycl.common.base.Result;
import com.ycl.system.domain.base.BaseSelect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ycl.common.annotation.DataScope;
@@ -335,4 +338,20 @@
    {
        return getChildList(list, t).size() > 0;
    }
    /**
     * 部门下拉列表
     * @return
     */
    @Override
    public Result all(SysDept dept) {
        List<BaseSelect> vos = deptMapper.selectDeptList(dept).stream().map(sysDept -> {
                    BaseSelect baseSelect = new BaseSelect();
                    baseSelect.setId(Integer.parseInt(sysDept.getDeptId() + ""));
                    baseSelect.setValue(sysDept.getDeptName());
                    return baseSelect;
                }
        ).collect(Collectors.toList());
        return Result.ok().data(vos);
    }
}