diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 88dc045..9d389df 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -61,6 +61,11 @@
ruoyi-generator
+
+ com.ruoyi
+ ruoyi-server
+ ${project.version}
+
diff --git a/ruoyi-server/pom.xml b/ruoyi-server/pom.xml
index 71b1383..0917083 100644
--- a/ruoyi-server/pom.xml
+++ b/ruoyi-server/pom.xml
@@ -27,6 +27,11 @@
com.ruoyi
ruoyi-system
+
+ com.baomidou
+ mybatis-plus-annotation
+ 3.5.5
+
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/controller/ProjectBudgetsController.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/controller/ProjectBudgetsController.java
new file mode 100644
index 0000000..ba66609
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/controller/ProjectBudgetsController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.server.project_budgets.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.server.project_budgets.domain.ProjectBudgets;
+import com.ruoyi.server.project_budgets.service.IProjectBudgetsService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目预算Controller
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@RestController
+@RequestMapping("/system/project_budgets")
+public class ProjectBudgetsController extends BaseController
+{
+ @Autowired
+ private IProjectBudgetsService projectBudgetsService;
+
+ /**
+ * 查询项目预算列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_budgets:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ProjectBudgets projectBudgets)
+ {
+ startPage();
+ List list = projectBudgetsService.selectProjectBudgetsList(projectBudgets);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出项目预算列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_budgets:export')")
+ @Log(title = "项目预算", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ProjectBudgets projectBudgets)
+ {
+ List list = projectBudgetsService.selectProjectBudgetsList(projectBudgets);
+ ExcelUtil util = new ExcelUtil(ProjectBudgets.class);
+ util.exportExcel(response, list, "项目预算数据");
+ }
+
+ /**
+ * 获取项目预算详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_budgets:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(projectBudgetsService.selectProjectBudgetsById(id));
+ }
+
+ /**
+ * 新增项目预算
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_budgets:add')")
+ @Log(title = "项目预算", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ProjectBudgets projectBudgets)
+ {
+ return toAjax(projectBudgetsService.insertProjectBudgets(projectBudgets));
+ }
+
+ /**
+ * 修改项目预算
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_budgets:edit')")
+ @Log(title = "项目预算", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ProjectBudgets projectBudgets)
+ {
+ return toAjax(projectBudgetsService.updateProjectBudgets(projectBudgets));
+ }
+
+ /**
+ * 删除项目预算
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_budgets:remove')")
+ @Log(title = "项目预算", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(projectBudgetsService.deleteProjectBudgetsByIds(ids));
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/domain/ProjectBudgets.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/domain/ProjectBudgets.java
new file mode 100644
index 0000000..d0cd7dd
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/domain/ProjectBudgets.java
@@ -0,0 +1,95 @@
+package com.ruoyi.server.project_budgets.domain;
+
+import java.math.BigDecimal;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 项目预算对象 project_budgets
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public class ProjectBudgets extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** */
+ @Excel(name = "")
+ private Long id;
+
+ /** 项目id */
+ @Excel(name = "项目id")
+ private Long projectId;
+
+ /** 项目名称 */
+ @Excel(name = "项目名称")
+ private String projectName;
+
+ /** 总预算 */
+ @Excel(name = "总预算")
+ private BigDecimal totalBudget;
+
+ /** 预算分配 */
+ @Excel(name = "预算分配")
+ private String allocation;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setProjectId(Long projectId)
+ {
+ this.projectId = projectId;
+ }
+
+ public Long getProjectId()
+ {
+ return projectId;
+ }
+ public void setProjectName(String projectName)
+ {
+ this.projectName = projectName;
+ }
+
+ public String getProjectName()
+ {
+ return projectName;
+ }
+ public void setTotalBudget(BigDecimal totalBudget)
+ {
+ this.totalBudget = totalBudget;
+ }
+
+ public BigDecimal getTotalBudget()
+ {
+ return totalBudget;
+ }
+ public void setAllocation(String allocation)
+ {
+ this.allocation = allocation;
+ }
+
+ public String getAllocation()
+ {
+ return allocation;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("projectId", getProjectId())
+ .append("projectName", getProjectName())
+ .append("totalBudget", getTotalBudget())
+ .append("allocation", getAllocation())
+ .toString();
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/mapper/ProjectBudgetsMapper.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/mapper/ProjectBudgetsMapper.java
new file mode 100644
index 0000000..b57dff8
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/mapper/ProjectBudgetsMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.project_budgets.mapper;
+
+import java.util.List;
+import com.ruoyi.server.project_budgets.domain.ProjectBudgets;
+
+/**
+ * 项目预算Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface ProjectBudgetsMapper
+{
+ /**
+ * 查询项目预算
+ *
+ * @param id 项目预算主键
+ * @return 项目预算
+ */
+ public ProjectBudgets selectProjectBudgetsById(Long id);
+
+ /**
+ * 查询项目预算列表
+ *
+ * @param projectBudgets 项目预算
+ * @return 项目预算集合
+ */
+ public List selectProjectBudgetsList(ProjectBudgets projectBudgets);
+
+ /**
+ * 新增项目预算
+ *
+ * @param projectBudgets 项目预算
+ * @return 结果
+ */
+ public int insertProjectBudgets(ProjectBudgets projectBudgets);
+
+ /**
+ * 修改项目预算
+ *
+ * @param projectBudgets 项目预算
+ * @return 结果
+ */
+ public int updateProjectBudgets(ProjectBudgets projectBudgets);
+
+ /**
+ * 删除项目预算
+ *
+ * @param id 项目预算主键
+ * @return 结果
+ */
+ public int deleteProjectBudgetsById(Long id);
+
+ /**
+ * 批量删除项目预算
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteProjectBudgetsByIds(Long[] ids);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/service/IProjectBudgetsService.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/service/IProjectBudgetsService.java
new file mode 100644
index 0000000..3a1a006
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/service/IProjectBudgetsService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.project_budgets.service;
+
+import java.util.List;
+import com.ruoyi.server.project_budgets.domain.ProjectBudgets;
+
+/**
+ * 项目预算Service接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface IProjectBudgetsService
+{
+ /**
+ * 查询项目预算
+ *
+ * @param id 项目预算主键
+ * @return 项目预算
+ */
+ public ProjectBudgets selectProjectBudgetsById(Long id);
+
+ /**
+ * 查询项目预算列表
+ *
+ * @param projectBudgets 项目预算
+ * @return 项目预算集合
+ */
+ public List selectProjectBudgetsList(ProjectBudgets projectBudgets);
+
+ /**
+ * 新增项目预算
+ *
+ * @param projectBudgets 项目预算
+ * @return 结果
+ */
+ public int insertProjectBudgets(ProjectBudgets projectBudgets);
+
+ /**
+ * 修改项目预算
+ *
+ * @param projectBudgets 项目预算
+ * @return 结果
+ */
+ public int updateProjectBudgets(ProjectBudgets projectBudgets);
+
+ /**
+ * 批量删除项目预算
+ *
+ * @param ids 需要删除的项目预算主键集合
+ * @return 结果
+ */
+ public int deleteProjectBudgetsByIds(Long[] ids);
+
+ /**
+ * 删除项目预算信息
+ *
+ * @param id 项目预算主键
+ * @return 结果
+ */
+ public int deleteProjectBudgetsById(Long id);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/service/impl/ProjectBudgetsServiceImpl.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/service/impl/ProjectBudgetsServiceImpl.java
new file mode 100644
index 0000000..7a0d2fa
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_budgets/service/impl/ProjectBudgetsServiceImpl.java
@@ -0,0 +1,106 @@
+package com.ruoyi.server.project_budgets.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.server.project_proposals.domain.ProjectProposals;
+import com.ruoyi.server.project_proposals.mapper.ProjectProposalsMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.server.project_budgets.mapper.ProjectBudgetsMapper;
+import com.ruoyi.server.project_budgets.domain.ProjectBudgets;
+import com.ruoyi.server.project_budgets.service.IProjectBudgetsService;
+
+/**
+ * 项目预算Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@Service
+public class ProjectBudgetsServiceImpl implements IProjectBudgetsService
+{
+ @Autowired
+ private ProjectBudgetsMapper projectBudgetsMapper;
+ @Autowired
+ private ProjectProposalsMapper projectProposalsMapper;
+
+ /**
+ * 查询项目预算
+ *
+ * @param id 项目预算主键
+ * @return 项目预算
+ */
+ @Override
+ public ProjectBudgets selectProjectBudgetsById(Long id)
+ {
+ return projectBudgetsMapper.selectProjectBudgetsById(id);
+ }
+
+ /**
+ * 查询项目预算列表
+ *
+ * @param projectBudgets 项目预算
+ * @return 项目预算
+ */
+ @Override
+ public List selectProjectBudgetsList(ProjectBudgets projectBudgets)
+ {
+ return projectBudgetsMapper.selectProjectBudgetsList(projectBudgets);
+ }
+
+ /**
+ * 新增项目预算
+ *
+ * @param projectBudgets 项目预算
+ * @return 结果
+ */
+ @Override
+ public int insertProjectBudgets(ProjectBudgets projectBudgets)
+ {
+ extracted(projectBudgets);
+ return projectBudgetsMapper.insertProjectBudgets(projectBudgets);
+ }
+
+ private void extracted(ProjectBudgets projectBudgets) {
+ ProjectProposals projectProposals = projectProposalsMapper.selectProjectProposalsById(projectBudgets.getProjectId());
+ if(projectProposals!=null)
+ projectBudgets.setProjectName(projectProposals.getProjectName());
+ }
+
+ /**
+ * 修改项目预算
+ *
+ * @param projectBudgets 项目预算
+ * @return 结果
+ */
+ @Override
+ public int updateProjectBudgets(ProjectBudgets projectBudgets)
+ {
+ extracted(projectBudgets);
+ return projectBudgetsMapper.updateProjectBudgets(projectBudgets);
+ }
+
+ /**
+ * 批量删除项目预算
+ *
+ * @param ids 需要删除的项目预算主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectBudgetsByIds(Long[] ids)
+ {
+ return projectBudgetsMapper.deleteProjectBudgetsByIds(ids);
+ }
+
+ /**
+ * 删除项目预算信息
+ *
+ * @param id 项目预算主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectBudgetsById(Long id)
+ {
+ return projectBudgetsMapper.deleteProjectBudgetsById(id);
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/controller/ProjectProposalDetailsController.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/controller/ProjectProposalDetailsController.java
new file mode 100644
index 0000000..2ac4223
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/controller/ProjectProposalDetailsController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.server.project_proposal_details.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.server.project_proposal_details.domain.ProjectProposalDetails;
+import com.ruoyi.server.project_proposal_details.service.IProjectProposalDetailsService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目立项信息Controller
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@RestController
+@RequestMapping("/system/project_proposal_details")
+public class ProjectProposalDetailsController extends BaseController
+{
+ @Autowired
+ private IProjectProposalDetailsService projectProposalDetailsService;
+
+ /**
+ * 查询项目立项信息列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposal_details:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ProjectProposalDetails projectProposalDetails)
+ {
+ startPage();
+ List list = projectProposalDetailsService.selectProjectProposalDetailsList(projectProposalDetails);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出项目立项信息列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposal_details:export')")
+ @Log(title = "项目立项信息", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ProjectProposalDetails projectProposalDetails)
+ {
+ List list = projectProposalDetailsService.selectProjectProposalDetailsList(projectProposalDetails);
+ ExcelUtil util = new ExcelUtil(ProjectProposalDetails.class);
+ util.exportExcel(response, list, "项目立项信息数据");
+ }
+
+ /**
+ * 获取项目立项信息详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposal_details:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(projectProposalDetailsService.selectProjectProposalDetailsById(id));
+ }
+
+ /**
+ * 新增项目立项信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposal_details:add')")
+ @Log(title = "项目立项信息", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ProjectProposalDetails projectProposalDetails)
+ {
+ return toAjax(projectProposalDetailsService.insertProjectProposalDetails(projectProposalDetails));
+ }
+
+ /**
+ * 修改项目立项信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposal_details:edit')")
+ @Log(title = "项目立项信息", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ProjectProposalDetails projectProposalDetails)
+ {
+ return toAjax(projectProposalDetailsService.updateProjectProposalDetails(projectProposalDetails));
+ }
+
+ /**
+ * 删除项目立项信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposal_details:remove')")
+ @Log(title = "项目立项信息", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(projectProposalDetailsService.deleteProjectProposalDetailsByIds(ids));
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/domain/ProjectProposalDetails.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/domain/ProjectProposalDetails.java
new file mode 100644
index 0000000..ee70a37
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/domain/ProjectProposalDetails.java
@@ -0,0 +1,93 @@
+package com.ruoyi.server.project_proposal_details.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 项目立项信息对象 project_proposal_details
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public class ProjectProposalDetails extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** $column.columnComment */
+ @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+ private Long id;
+
+ /** 立项ID */
+ @Excel(name = "立项ID")
+ private Long proposalId;
+
+ @Excel(name = "立项名称")
+ @TableField(exist = false)
+ private String proposalName;
+
+ /** 详细描述 */
+ @Excel(name = "详细描述")
+ private String detailDescription;
+
+ /** 项目目标 */
+ @Excel(name = "项目目标")
+ private String objective;
+
+ public String getProposalName() {
+ return proposalName;
+ }
+
+ public void setProposalName(String proposalName) {
+ this.proposalName = proposalName;
+ }
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setProposalId(Long proposalId)
+ {
+ this.proposalId = proposalId;
+ }
+
+ public Long getProposalId()
+ {
+ return proposalId;
+ }
+ public void setDetailDescription(String detailDescription)
+ {
+ this.detailDescription = detailDescription;
+ }
+
+ public String getDetailDescription()
+ {
+ return detailDescription;
+ }
+ public void setObjective(String objective)
+ {
+ this.objective = objective;
+ }
+
+ public String getObjective()
+ {
+ return objective;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("proposalId", getProposalId())
+ .append("detailDescription", getDetailDescription())
+ .append("objective", getObjective())
+ .toString();
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/mapper/ProjectProposalDetailsMapper.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/mapper/ProjectProposalDetailsMapper.java
new file mode 100644
index 0000000..dbf4e5c
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/mapper/ProjectProposalDetailsMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.project_proposal_details.mapper;
+
+import java.util.List;
+import com.ruoyi.server.project_proposal_details.domain.ProjectProposalDetails;
+
+/**
+ * 项目立项信息Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface ProjectProposalDetailsMapper
+{
+ /**
+ * 查询项目立项信息
+ *
+ * @param id 项目立项信息主键
+ * @return 项目立项信息
+ */
+ public ProjectProposalDetails selectProjectProposalDetailsById(Long id);
+
+ /**
+ * 查询项目立项信息列表
+ *
+ * @param projectProposalDetails 项目立项信息
+ * @return 项目立项信息集合
+ */
+ public List selectProjectProposalDetailsList(ProjectProposalDetails projectProposalDetails);
+
+ /**
+ * 新增项目立项信息
+ *
+ * @param projectProposalDetails 项目立项信息
+ * @return 结果
+ */
+ public int insertProjectProposalDetails(ProjectProposalDetails projectProposalDetails);
+
+ /**
+ * 修改项目立项信息
+ *
+ * @param projectProposalDetails 项目立项信息
+ * @return 结果
+ */
+ public int updateProjectProposalDetails(ProjectProposalDetails projectProposalDetails);
+
+ /**
+ * 删除项目立项信息
+ *
+ * @param id 项目立项信息主键
+ * @return 结果
+ */
+ public int deleteProjectProposalDetailsById(Long id);
+
+ /**
+ * 批量删除项目立项信息
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteProjectProposalDetailsByIds(Long[] ids);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/service/IProjectProposalDetailsService.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/service/IProjectProposalDetailsService.java
new file mode 100644
index 0000000..1827e07
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/service/IProjectProposalDetailsService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.project_proposal_details.service;
+
+import java.util.List;
+import com.ruoyi.server.project_proposal_details.domain.ProjectProposalDetails;
+
+/**
+ * 项目立项信息Service接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface IProjectProposalDetailsService
+{
+ /**
+ * 查询项目立项信息
+ *
+ * @param id 项目立项信息主键
+ * @return 项目立项信息
+ */
+ public ProjectProposalDetails selectProjectProposalDetailsById(Long id);
+
+ /**
+ * 查询项目立项信息列表
+ *
+ * @param projectProposalDetails 项目立项信息
+ * @return 项目立项信息集合
+ */
+ public List selectProjectProposalDetailsList(ProjectProposalDetails projectProposalDetails);
+
+ /**
+ * 新增项目立项信息
+ *
+ * @param projectProposalDetails 项目立项信息
+ * @return 结果
+ */
+ public int insertProjectProposalDetails(ProjectProposalDetails projectProposalDetails);
+
+ /**
+ * 修改项目立项信息
+ *
+ * @param projectProposalDetails 项目立项信息
+ * @return 结果
+ */
+ public int updateProjectProposalDetails(ProjectProposalDetails projectProposalDetails);
+
+ /**
+ * 批量删除项目立项信息
+ *
+ * @param ids 需要删除的项目立项信息主键集合
+ * @return 结果
+ */
+ public int deleteProjectProposalDetailsByIds(Long[] ids);
+
+ /**
+ * 删除项目立项信息信息
+ *
+ * @param id 项目立项信息主键
+ * @return 结果
+ */
+ public int deleteProjectProposalDetailsById(Long id);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/service/impl/ProjectProposalDetailsServiceImpl.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/service/impl/ProjectProposalDetailsServiceImpl.java
new file mode 100644
index 0000000..8b38126
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposal_details/service/impl/ProjectProposalDetailsServiceImpl.java
@@ -0,0 +1,111 @@
+package com.ruoyi.server.project_proposal_details.service.impl;
+
+import java.util.List;
+import java.util.Objects;
+
+import com.ruoyi.server.project_proposals.domain.ProjectProposals;
+import com.ruoyi.server.project_proposals.mapper.ProjectProposalsMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.server.project_proposal_details.mapper.ProjectProposalDetailsMapper;
+import com.ruoyi.server.project_proposal_details.domain.ProjectProposalDetails;
+import com.ruoyi.server.project_proposal_details.service.IProjectProposalDetailsService;
+
+/**
+ * 项目立项信息Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@Service
+public class ProjectProposalDetailsServiceImpl implements IProjectProposalDetailsService
+{
+ @Autowired
+ private ProjectProposalDetailsMapper projectProposalDetailsMapper;
+ @Autowired
+ private ProjectProposalsMapper projectProposalsMapper;
+
+ /**
+ * 查询项目立项信息
+ *
+ * @param id 项目立项信息主键
+ * @return 项目立项信息
+ */
+ @Override
+ public ProjectProposalDetails selectProjectProposalDetailsById(Long id)
+ {
+ return projectProposalDetailsMapper.selectProjectProposalDetailsById(id);
+ }
+
+ /**
+ * 查询项目立项信息列表
+ *
+ * @param projectProposalDetails 项目立项信息
+ * @return 项目立项信息
+ */
+ @Override
+ public List selectProjectProposalDetailsList(ProjectProposalDetails projectProposalDetails)
+ {
+
+ //设置一下项目立项名
+ List projectProposalDetails1 = projectProposalDetailsMapper.selectProjectProposalDetailsList(projectProposalDetails);
+ for (ProjectProposalDetails proposalDetails : projectProposalDetails1) {
+ Long id = proposalDetails.getProposalId();
+ ProjectProposals projectProposals = projectProposalsMapper.selectProjectProposalsById(id);
+ if(Objects.nonNull(projectProposals)){
+ proposalDetails.setProposalName(projectProposals.getProjectName());
+ }
+ }
+
+
+ return projectProposalDetails1;
+ }
+
+ /**
+ * 新增项目立项信息
+ *
+ * @param projectProposalDetails 项目立项信息
+ * @return 结果
+ */
+ @Override
+ public int insertProjectProposalDetails(ProjectProposalDetails projectProposalDetails)
+ {
+ return projectProposalDetailsMapper.insertProjectProposalDetails(projectProposalDetails);
+ }
+
+ /**
+ * 修改项目立项信息
+ *
+ * @param projectProposalDetails 项目立项信息
+ * @return 结果
+ */
+ @Override
+ public int updateProjectProposalDetails(ProjectProposalDetails projectProposalDetails)
+ {
+ return projectProposalDetailsMapper.updateProjectProposalDetails(projectProposalDetails);
+ }
+
+ /**
+ * 批量删除项目立项信息
+ *
+ * @param ids 需要删除的项目立项信息主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProposalDetailsByIds(Long[] ids)
+ {
+ return projectProposalDetailsMapper.deleteProjectProposalDetailsByIds(ids);
+ }
+
+ /**
+ * 删除项目立项信息信息
+ *
+ * @param id 项目立项信息主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProposalDetailsById(Long id)
+ {
+ return projectProposalDetailsMapper.deleteProjectProposalDetailsById(id);
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/controller/ProjectProposalsController.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/controller/ProjectProposalsController.java
new file mode 100644
index 0000000..b8e350a
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/controller/ProjectProposalsController.java
@@ -0,0 +1,105 @@
+package com.ruoyi.server.project_proposals.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.server.project_proposals.service.IProjectProposalsService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.server.project_proposals.domain.ProjectProposals;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目立项Controller
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@RestController
+@RequestMapping("/system/project_proposals")
+public class ProjectProposalsController extends BaseController
+{
+ @Autowired
+ private IProjectProposalsService projectProposalsService;
+
+ /**
+ * 查询项目立项列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposals:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ProjectProposals projectProposals)
+ {
+ startPage();
+ List list = projectProposalsService.selectProjectProposalsList(projectProposals);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出项目立项列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposals:export')")
+ @Log(title = "项目立项", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ProjectProposals projectProposals)
+ {
+ List list = projectProposalsService.selectProjectProposalsList(projectProposals);
+ ExcelUtil util = new ExcelUtil(ProjectProposals.class);
+ util.exportExcel(response, list, "项目立项数据");
+ }
+
+ /**
+ * 获取项目立项详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposals:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(projectProposalsService.selectProjectProposalsById(id));
+ }
+
+ /**
+ * 新增项目立项
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposals:add')")
+ @Log(title = "项目立项", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ProjectProposals projectProposals)
+ {
+ return toAjax(projectProposalsService.insertProjectProposals(projectProposals));
+ }
+
+ /**
+ * 修改项目立项
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposals:edit')")
+ @Log(title = "项目立项", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ProjectProposals projectProposals)
+ {
+ return toAjax(projectProposalsService.updateProjectProposals(projectProposals));
+ }
+
+ /**
+ * 删除项目立项
+ */
+ @PreAuthorize("@ss.hasPermi('system:project_proposals:remove')")
+ @Log(title = "项目立项", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(projectProposalsService.deleteProjectProposalsByIds(ids));
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/domain/ProjectProposals.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/domain/ProjectProposals.java
new file mode 100644
index 0000000..c2c2f7a
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/domain/ProjectProposals.java
@@ -0,0 +1,111 @@
+package com.ruoyi.server.project_proposals.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 项目立项对象 project_proposals
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public class ProjectProposals extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** $column.columnComment */
+ private Long id;
+
+ /** 项目名称 */
+ @Excel(name = "项目名称")
+ private String projectName;
+
+ /** 项目描述 */
+ @Excel(name = "项目描述")
+ private String projectDescription;
+
+ /** 开始日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "开始日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date startDate;
+
+ /** 结束日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date endDate;
+
+ /** 项目状态 */
+ @Excel(name = "项目状态")
+ private String status;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setProjectName(String projectName)
+ {
+ this.projectName = projectName;
+ }
+
+ public String getProjectName()
+ {
+ return projectName;
+ }
+ public void setProjectDescription(String projectDescription)
+ {
+ this.projectDescription = projectDescription;
+ }
+
+ public String getProjectDescription()
+ {
+ return projectDescription;
+ }
+ public void setStartDate(Date startDate)
+ {
+ this.startDate = startDate;
+ }
+
+ public Date getStartDate()
+ {
+ return startDate;
+ }
+ public void setEndDate(Date endDate)
+ {
+ this.endDate = endDate;
+ }
+
+ public Date getEndDate()
+ {
+ return endDate;
+ }
+ public void setStatus(String status)
+ {
+ this.status = status;
+ }
+
+ public String getStatus()
+ {
+ return status;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("projectName", getProjectName())
+ .append("projectDescription", getProjectDescription())
+ .append("startDate", getStartDate())
+ .append("endDate", getEndDate())
+ .append("status", getStatus())
+ .toString();
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/mapper/ProjectProposalsMapper.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/mapper/ProjectProposalsMapper.java
new file mode 100644
index 0000000..7f8822d
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/mapper/ProjectProposalsMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.project_proposals.mapper;
+
+import java.util.List;
+import com.ruoyi.server.project_proposals.domain.ProjectProposals;
+
+/**
+ * 项目立项Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface ProjectProposalsMapper
+{
+ /**
+ * 查询项目立项
+ *
+ * @param id 项目立项主键
+ * @return 项目立项
+ */
+ public ProjectProposals selectProjectProposalsById(Long id);
+
+ /**
+ * 查询项目立项列表
+ *
+ * @param projectProposals 项目立项
+ * @return 项目立项集合
+ */
+ public List selectProjectProposalsList(ProjectProposals projectProposals);
+
+ /**
+ * 新增项目立项
+ *
+ * @param projectProposals 项目立项
+ * @return 结果
+ */
+ public int insertProjectProposals(ProjectProposals projectProposals);
+
+ /**
+ * 修改项目立项
+ *
+ * @param projectProposals 项目立项
+ * @return 结果
+ */
+ public int updateProjectProposals(ProjectProposals projectProposals);
+
+ /**
+ * 删除项目立项
+ *
+ * @param id 项目立项主键
+ * @return 结果
+ */
+ public int deleteProjectProposalsById(Long id);
+
+ /**
+ * 批量删除项目立项
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteProjectProposalsByIds(Long[] ids);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/service/IProjectProposalsService.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/service/IProjectProposalsService.java
new file mode 100644
index 0000000..919e830
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/service/IProjectProposalsService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.project_proposals.service;
+
+import java.util.List;
+import com.ruoyi.server.project_proposals.domain.ProjectProposals;
+
+/**
+ * 项目立项Service接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface IProjectProposalsService
+{
+ /**
+ * 查询项目立项
+ *
+ * @param id 项目立项主键
+ * @return 项目立项
+ */
+ public ProjectProposals selectProjectProposalsById(Long id);
+
+ /**
+ * 查询项目立项列表
+ *
+ * @param projectProposals 项目立项
+ * @return 项目立项集合
+ */
+ public List selectProjectProposalsList(ProjectProposals projectProposals);
+
+ /**
+ * 新增项目立项
+ *
+ * @param projectProposals 项目立项
+ * @return 结果
+ */
+ public int insertProjectProposals(ProjectProposals projectProposals);
+
+ /**
+ * 修改项目立项
+ *
+ * @param projectProposals 项目立项
+ * @return 结果
+ */
+ public int updateProjectProposals(ProjectProposals projectProposals);
+
+ /**
+ * 批量删除项目立项
+ *
+ * @param ids 需要删除的项目立项主键集合
+ * @return 结果
+ */
+ public int deleteProjectProposalsByIds(Long[] ids);
+
+ /**
+ * 删除项目立项信息
+ *
+ * @param id 项目立项主键
+ * @return 结果
+ */
+ public int deleteProjectProposalsById(Long id);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/service/impl/ProjectProposalsServiceImpl.java b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/service/impl/ProjectProposalsServiceImpl.java
new file mode 100644
index 0000000..f3e35be
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/project_proposals/service/impl/ProjectProposalsServiceImpl.java
@@ -0,0 +1,93 @@
+package com.ruoyi.server.project_proposals.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.server.project_proposals.mapper.ProjectProposalsMapper;
+import com.ruoyi.server.project_proposals.domain.ProjectProposals;
+import com.ruoyi.server.project_proposals.service.IProjectProposalsService;
+
+/**
+ * 项目立项Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@Service
+public class ProjectProposalsServiceImpl implements IProjectProposalsService
+{
+ @Autowired
+ private ProjectProposalsMapper projectProposalsMapper;
+
+ /**
+ * 查询项目立项
+ *
+ * @param id 项目立项主键
+ * @return 项目立项
+ */
+ @Override
+ public ProjectProposals selectProjectProposalsById(Long id)
+ {
+ return projectProposalsMapper.selectProjectProposalsById(id);
+ }
+
+ /**
+ * 查询项目立项列表
+ *
+ * @param projectProposals 项目立项
+ * @return 项目立项
+ */
+ @Override
+ public List selectProjectProposalsList(ProjectProposals projectProposals)
+ {
+ return projectProposalsMapper.selectProjectProposalsList(projectProposals);
+ }
+
+ /**
+ * 新增项目立项
+ *
+ * @param projectProposals 项目立项
+ * @return 结果
+ */
+ @Override
+ public int insertProjectProposals(ProjectProposals projectProposals)
+ {
+ return projectProposalsMapper.insertProjectProposals(projectProposals);
+ }
+
+ /**
+ * 修改项目立项
+ *
+ * @param projectProposals 项目立项
+ * @return 结果
+ */
+ @Override
+ public int updateProjectProposals(ProjectProposals projectProposals)
+ {
+ return projectProposalsMapper.updateProjectProposals(projectProposals);
+ }
+
+ /**
+ * 批量删除项目立项
+ *
+ * @param ids 需要删除的项目立项主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProposalsByIds(Long[] ids)
+ {
+ return projectProposalsMapper.deleteProjectProposalsByIds(ids);
+ }
+
+ /**
+ * 删除项目立项信息
+ *
+ * @param id 项目立项主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProposalsById(Long id)
+ {
+ return projectProposalsMapper.deleteProjectProposalsById(id);
+ }
+}
diff --git a/ruoyi-server/src/main/resources/mapper/system/ProjectBudgetsMapper.xml b/ruoyi-server/src/main/resources/mapper/system/ProjectBudgetsMapper.xml
new file mode 100644
index 0000000..2f99c92
--- /dev/null
+++ b/ruoyi-server/src/main/resources/mapper/system/ProjectBudgetsMapper.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, project_id, project_name, total_budget, allocation from project_budgets
+
+
+
+
+
+
+
+ insert into project_budgets
+
+ project_id,
+ project_name,
+ total_budget,
+ allocation,
+
+
+ #{projectId},
+ #{projectName},
+ #{totalBudget},
+ #{allocation},
+
+
+
+
+ update project_budgets
+
+ project_id = #{projectId},
+ project_name = #{projectName},
+ total_budget = #{totalBudget},
+ allocation = #{allocation},
+
+ where id = #{id}
+
+
+
+ delete from project_budgets where id = #{id}
+
+
+
+ delete from project_budgets where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-server/src/main/resources/mapper/system/ProjectProposalDetailsMapper.xml b/ruoyi-server/src/main/resources/mapper/system/ProjectProposalDetailsMapper.xml
new file mode 100644
index 0000000..162a7c3
--- /dev/null
+++ b/ruoyi-server/src/main/resources/mapper/system/ProjectProposalDetailsMapper.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, proposal_id, detail_description, objective from project_proposal_details
+
+
+
+
+
+
+
+ insert into project_proposal_details
+
+ proposal_id,
+ detail_description,
+ objective,
+
+
+ #{proposalId},
+ #{detailDescription},
+ #{objective},
+
+
+
+
+ update project_proposal_details
+
+ proposal_id = #{proposalId},
+ detail_description = #{detailDescription},
+ objective = #{objective},
+
+ where id = #{id}
+
+
+
+ delete from project_proposal_details where id = #{id}
+
+
+
+ delete from project_proposal_details where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-server/src/main/resources/mapper/system/ProjectProposalsMapper.xml b/ruoyi-server/src/main/resources/mapper/system/ProjectProposalsMapper.xml
new file mode 100644
index 0000000..d6fe68d
--- /dev/null
+++ b/ruoyi-server/src/main/resources/mapper/system/ProjectProposalsMapper.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, project_name, project_description, start_date, end_date, status from project_proposals
+
+
+
+
+
+
+
+ insert into project_proposals
+
+ project_name,
+ project_description,
+ start_date,
+ end_date,
+ status,
+
+
+ #{projectName},
+ #{projectDescription},
+ #{startDate},
+ #{endDate},
+ #{status},
+
+
+
+
+ update project_proposals
+
+ project_name = #{projectName},
+ project_description = #{projectDescription},
+ start_date = #{startDate},
+ end_date = #{endDate},
+ status = #{status},
+
+ where id = #{id}
+
+
+
+ delete from project_proposals where id = #{id}
+
+
+
+ delete from project_proposals where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/project_budgets.js b/ruoyi-ui/src/api/system/project_budgets.js
new file mode 100644
index 0000000..4d03df4
--- /dev/null
+++ b/ruoyi-ui/src/api/system/project_budgets.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询项目预算列表
+export function listProject_budgets(query) {
+ return request({
+ url: '/system/project_budgets/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询项目预算详细
+export function getProject_budgets(id) {
+ return request({
+ url: '/system/project_budgets/' + id,
+ method: 'get'
+ })
+}
+
+// 新增项目预算
+export function addProject_budgets(data) {
+ return request({
+ url: '/system/project_budgets',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改项目预算
+export function updateProject_budgets(data) {
+ return request({
+ url: '/system/project_budgets',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除项目预算
+export function delProject_budgets(id) {
+ return request({
+ url: '/system/project_budgets/' + id,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/api/system/project_proposal_details.js b/ruoyi-ui/src/api/system/project_proposal_details.js
new file mode 100644
index 0000000..c9b6611
--- /dev/null
+++ b/ruoyi-ui/src/api/system/project_proposal_details.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询项目立项信息列表
+export function listProject_proposal_details(query) {
+ return request({
+ url: '/system/project_proposal_details/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询项目立项信息详细
+export function getProject_proposal_details(id) {
+ return request({
+ url: '/system/project_proposal_details/' + id,
+ method: 'get'
+ })
+}
+
+// 新增项目立项信息
+export function addProject_proposal_details(data) {
+ return request({
+ url: '/system/project_proposal_details',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改项目立项信息
+export function updateProject_proposal_details(data) {
+ return request({
+ url: '/system/project_proposal_details',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除项目立项信息
+export function delProject_proposal_details(id) {
+ return request({
+ url: '/system/project_proposal_details/' + id,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/api/system/project_proposals.js b/ruoyi-ui/src/api/system/project_proposals.js
new file mode 100644
index 0000000..cd775ce
--- /dev/null
+++ b/ruoyi-ui/src/api/system/project_proposals.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询项目立项列表
+export function listProject_proposals(query) {
+ return request({
+ url: '/system/project_proposals/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询项目立项详细
+export function getProject_proposals(id) {
+ return request({
+ url: '/system/project_proposals/' + id,
+ method: 'get'
+ })
+}
+
+// 新增项目立项
+export function addProject_proposals(data) {
+ return request({
+ url: '/system/project_proposals',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改项目立项
+export function updateProject_proposals(data) {
+ return request({
+ url: '/system/project_proposals',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除项目立项
+export function delProject_proposals(id) {
+ return request({
+ url: '/system/project_proposals/' + id,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/views/system/project_budgets/index.vue b/ruoyi-ui/src/views/system/project_budgets/index.vue
new file mode 100644
index 0000000..54bd287
--- /dev/null
+++ b/ruoyi-ui/src/views/system/project_budgets/index.vue
@@ -0,0 +1,334 @@
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.totalBudget}}元
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/system/project_proposal_details/index.vue b/ruoyi-ui/src/views/system/project_proposal_details/index.vue
new file mode 100644
index 0000000..afb6476
--- /dev/null
+++ b/ruoyi-ui/src/views/system/project_proposal_details/index.vue
@@ -0,0 +1,349 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 查看
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/system/project_proposals/index.vue b/ruoyi-ui/src/views/system/project_proposals/index.vue
new file mode 100644
index 0000000..099e337
--- /dev/null
+++ b/ruoyi-ui/src/views/system/project_proposals/index.vue
@@ -0,0 +1,345 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 查看
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+