From f72a258b8aba7006879f897d3ac3a3b6e7c95eb4 Mon Sep 17 00:00:00 2001
From: liukw <917923977@qq.com>
Date: Tue, 2 Jul 2024 16:48:43 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E6=96=BD=E8=BF=9B=E5=BA=A6=E7=9A=84?=
=?UTF-8?q?=E5=9B=9B=E4=B8=AA=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-common/pom.xml | 5 +-
.../ProjectProgressControlController.java | 104 +++++
.../domain/ProjectProgressControl.java | 167 +++++++
.../mapper/ProjectProgressControlMapper.java | 61 +++
.../IProjectProgressControlService.java | 61 +++
.../ProjectProgressControlServiceImpl.java | 93 ++++
.../controller/ProjectProgressController.java | 104 +++++
.../manager/domain/ProjectProgress.java | 94 ++++
.../manager/mapper/ProjectProgressMapper.java | 61 +++
.../service/IProjectProgressService.java | 61 +++
.../impl/ProjectProgressServiceImpl.java | 93 ++++
.../ProjectProgressTaskController.java | 104 +++++
.../task/domain/ProjectProgressTask.java | 180 ++++++++
.../mapper/ProjectProgressTaskMapper.java | 61 +++
.../service/IProjectProgressTaskService.java | 61 +++
.../impl/ProjectProgressTaskServiceImpl.java | 93 ++++
.../ProjectProgressVersionsController.java | 104 +++++
.../domain/ProjectProgressVersions.java | 171 ++++++++
.../mapper/ProjectProgressVersionsMapper.java | 61 +++
.../IProjectProgressVersionsService.java | 61 +++
.../ProjectProgressVersionsServiceImpl.java | 93 ++++
.../system/ProjectProgressControlMapper.xml | 89 ++++
.../mapper/system/ProjectProgressMapper.xml | 98 +++++
.../system/ProjectProgressTaskMapper.xml | 92 ++++
.../system/ProjectProgressVersionsMapper.xml | 90 ++++
.../ProjectProgressControlMapper.xml | 89 ++++
.../api/projectprogress/projectprogress.js | 44 ++
.../projectprogress/projectprogresscontrol.js | 44 ++
.../projectprogress/projectprogresstask.js | 44 ++
.../projectprogressversions.js | 44 ++
.../views/projectprogress/control/index.vue | 323 ++++++++++++++
.../views/projectprogress/manager/index.vue | 413 ++++++++++++++++++
.../src/views/projectprogress/task/index.vue | 347 +++++++++++++++
.../views/projectprogress/versions/index.vue | 380 ++++++++++++++++
34 files changed, 3989 insertions(+), 1 deletion(-)
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/controller/ProjectProgressControlController.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/domain/ProjectProgressControl.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/mapper/ProjectProgressControlMapper.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/service/IProjectProgressControlService.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/service/impl/ProjectProgressControlServiceImpl.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/controller/ProjectProgressController.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/domain/ProjectProgress.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/mapper/ProjectProgressMapper.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/service/IProjectProgressService.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/service/impl/ProjectProgressServiceImpl.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/controller/ProjectProgressTaskController.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/domain/ProjectProgressTask.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/mapper/ProjectProgressTaskMapper.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/service/IProjectProgressTaskService.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/service/impl/ProjectProgressTaskServiceImpl.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/controller/ProjectProgressVersionsController.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/domain/ProjectProgressVersions.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/mapper/ProjectProgressVersionsMapper.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/service/IProjectProgressVersionsService.java
create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/service/impl/ProjectProgressVersionsServiceImpl.java
create mode 100644 ruoyi-server/src/main/resources/mapper/system/ProjectProgressControlMapper.xml
create mode 100644 ruoyi-server/src/main/resources/mapper/system/ProjectProgressMapper.xml
create mode 100644 ruoyi-server/src/main/resources/mapper/system/ProjectProgressTaskMapper.xml
create mode 100644 ruoyi-server/src/main/resources/mapper/system/ProjectProgressVersionsMapper.xml
create mode 100644 ruoyi-ui/src/api/projectprogress/ProjectProgressControlMapper.xml
create mode 100644 ruoyi-ui/src/api/projectprogress/projectprogress.js
create mode 100644 ruoyi-ui/src/api/projectprogress/projectprogresscontrol.js
create mode 100644 ruoyi-ui/src/api/projectprogress/projectprogresstask.js
create mode 100644 ruoyi-ui/src/api/projectprogress/projectprogressversions.js
create mode 100644 ruoyi-ui/src/views/projectprogress/control/index.vue
create mode 100644 ruoyi-ui/src/views/projectprogress/manager/index.vue
create mode 100644 ruoyi-ui/src/views/projectprogress/task/index.vue
create mode 100644 ruoyi-ui/src/views/projectprogress/versions/index.vue
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index d625896..1826a73 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -118,7 +118,10 @@
javax.servlet
javax.servlet-api
-
+
+ org.projectlombok
+ lombok
+
\ No newline at end of file
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/controller/ProjectProgressControlController.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/controller/ProjectProgressControlController.java
new file mode 100644
index 0000000..54cccbc
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/controller/ProjectProgressControlController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.server.projectprogress.control.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.projectprogress.control.domain.ProjectProgressControl;
+import com.ruoyi.server.projectprogress.control.service.IProjectProgressControlService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目进度控制Controller
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@RestController
+@RequestMapping("/projectprogresscontrol/projectprogresscontrol")
+public class ProjectProgressControlController extends BaseController
+{
+ @Autowired
+ private IProjectProgressControlService projectProgressControlService;
+
+ /**
+ * 查询项目进度控制列表
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogresscontrol:projectprogresscontrol:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ProjectProgressControl projectProgressControl)
+ {
+ startPage();
+ List list = projectProgressControlService.selectProjectProgressControlList(projectProgressControl);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出项目进度控制列表
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogresscontrol:projectprogresscontrol:export')")
+ @Log(title = "项目进度控制", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ProjectProgressControl projectProgressControl)
+ {
+ List list = projectProgressControlService.selectProjectProgressControlList(projectProgressControl);
+ ExcelUtil util = new ExcelUtil(ProjectProgressControl.class);
+ util.exportExcel(response, list, "项目进度控制数据");
+ }
+
+ /**
+ * 获取项目进度控制详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogresscontrol:projectprogresscontrol:query')")
+ @GetMapping(value = "/{controlId}")
+ public AjaxResult getInfo(@PathVariable("controlId") Long controlId)
+ {
+ return success(projectProgressControlService.selectProjectProgressControlByControlId(controlId));
+ }
+
+ /**
+ * 新增项目进度控制
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogresscontrol:projectprogresscontrol:add')")
+ @Log(title = "项目进度控制", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ProjectProgressControl projectProgressControl)
+ {
+ return toAjax(projectProgressControlService.insertProjectProgressControl(projectProgressControl));
+ }
+
+ /**
+ * 修改项目进度控制
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogresscontrol:projectprogresscontrol:edit')")
+ @Log(title = "项目进度控制", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ProjectProgressControl projectProgressControl)
+ {
+ return toAjax(projectProgressControlService.updateProjectProgressControl(projectProgressControl));
+ }
+
+ /**
+ * 删除项目进度控制
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogresscontrol:projectprogresscontrol:remove')")
+ @Log(title = "项目进度控制", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{controlIds}")
+ public AjaxResult remove(@PathVariable Long[] controlIds)
+ {
+ return toAjax(projectProgressControlService.deleteProjectProgressControlByControlIds(controlIds));
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/domain/ProjectProgressControl.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/domain/ProjectProgressControl.java
new file mode 100644
index 0000000..9cbae54
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/domain/ProjectProgressControl.java
@@ -0,0 +1,167 @@
+package com.ruoyi.server.projectprogress.control.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_progress_control
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public class ProjectProgressControl extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long controlId;
+
+ /** 项目进程id */
+ @Excel(name = "项目进程id")
+ private Long progressId;
+
+ /** 录入人 */
+ @Excel(name = "录入人")
+ private String updatedBy;
+
+ /** 录入时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "录入时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date updateTimestamp;
+
+ /** 说明 */
+ @Excel(name = "说明")
+ private String updateDescription;
+
+ /** 进度变化 */
+ @Excel(name = "进度变化")
+ private String progressChange;
+
+ /** 是否更改了预计结束日期 */
+ @Excel(name = "是否更改了预计结束日期")
+ private Integer estimatedEndDateChanged;
+
+ /** 变更后的预计结束日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "变更后的预计结束日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date newEstimatedEndDate;
+
+ /** 是否需要调整后续工作计划 */
+ @Excel(name = "是否需要调整后续工作计划")
+ private Integer requiresAdjustment;
+
+ /** 需要调整的内容和原因 */
+ @Excel(name = "需要调整的内容和原因")
+ private String adjustmentDescription;
+
+ public void setControlId(Long controlId)
+ {
+ this.controlId = controlId;
+ }
+
+ public Long getControlId()
+ {
+ return controlId;
+ }
+ public void setProgressId(Long progressId)
+ {
+ this.progressId = progressId;
+ }
+
+ public Long getProgressId()
+ {
+ return progressId;
+ }
+ public void setUpdatedBy(String updatedBy)
+ {
+ this.updatedBy = updatedBy;
+ }
+
+ public String getUpdatedBy()
+ {
+ return updatedBy;
+ }
+ public void setUpdateTimestamp(Date updateTimestamp)
+ {
+ this.updateTimestamp = updateTimestamp;
+ }
+
+ public Date getUpdateTimestamp()
+ {
+ return updateTimestamp;
+ }
+ public void setUpdateDescription(String updateDescription)
+ {
+ this.updateDescription = updateDescription;
+ }
+
+ public String getUpdateDescription()
+ {
+ return updateDescription;
+ }
+ public void setProgressChange(String progressChange)
+ {
+ this.progressChange = progressChange;
+ }
+
+ public String getProgressChange()
+ {
+ return progressChange;
+ }
+ public void setEstimatedEndDateChanged(Integer estimatedEndDateChanged)
+ {
+ this.estimatedEndDateChanged = estimatedEndDateChanged;
+ }
+
+ public Integer getEstimatedEndDateChanged()
+ {
+ return estimatedEndDateChanged;
+ }
+ public void setNewEstimatedEndDate(Date newEstimatedEndDate)
+ {
+ this.newEstimatedEndDate = newEstimatedEndDate;
+ }
+
+ public Date getNewEstimatedEndDate()
+ {
+ return newEstimatedEndDate;
+ }
+ public void setRequiresAdjustment(Integer requiresAdjustment)
+ {
+ this.requiresAdjustment = requiresAdjustment;
+ }
+
+ public Integer getRequiresAdjustment()
+ {
+ return requiresAdjustment;
+ }
+ public void setAdjustmentDescription(String adjustmentDescription)
+ {
+ this.adjustmentDescription = adjustmentDescription;
+ }
+
+ public String getAdjustmentDescription()
+ {
+ return adjustmentDescription;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("controlId", getControlId())
+ .append("progressId", getProgressId())
+ .append("updatedBy", getUpdatedBy())
+ .append("updateTimestamp", getUpdateTimestamp())
+ .append("updateDescription", getUpdateDescription())
+ .append("progressChange", getProgressChange())
+ .append("estimatedEndDateChanged", getEstimatedEndDateChanged())
+ .append("newEstimatedEndDate", getNewEstimatedEndDate())
+ .append("requiresAdjustment", getRequiresAdjustment())
+ .append("adjustmentDescription", getAdjustmentDescription())
+ .toString();
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/mapper/ProjectProgressControlMapper.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/mapper/ProjectProgressControlMapper.java
new file mode 100644
index 0000000..ff1fc6d
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/mapper/ProjectProgressControlMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.projectprogress.control.mapper;
+
+import java.util.List;
+import com.ruoyi.server.projectprogress.control.domain.ProjectProgressControl;
+
+/**
+ * 项目进度控制Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface ProjectProgressControlMapper
+{
+ /**
+ * 查询项目进度控制
+ *
+ * @param controlId 项目进度控制主键
+ * @return 项目进度控制
+ */
+ public ProjectProgressControl selectProjectProgressControlByControlId(Long controlId);
+
+ /**
+ * 查询项目进度控制列表
+ *
+ * @param projectProgressControl 项目进度控制
+ * @return 项目进度控制集合
+ */
+ public List selectProjectProgressControlList(ProjectProgressControl projectProgressControl);
+
+ /**
+ * 新增项目进度控制
+ *
+ * @param projectProgressControl 项目进度控制
+ * @return 结果
+ */
+ public int insertProjectProgressControl(ProjectProgressControl projectProgressControl);
+
+ /**
+ * 修改项目进度控制
+ *
+ * @param projectProgressControl 项目进度控制
+ * @return 结果
+ */
+ public int updateProjectProgressControl(ProjectProgressControl projectProgressControl);
+
+ /**
+ * 删除项目进度控制
+ *
+ * @param controlId 项目进度控制主键
+ * @return 结果
+ */
+ public int deleteProjectProgressControlByControlId(Long controlId);
+
+ /**
+ * 批量删除项目进度控制
+ *
+ * @param controlIds 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteProjectProgressControlByControlIds(Long[] controlIds);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/service/IProjectProgressControlService.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/service/IProjectProgressControlService.java
new file mode 100644
index 0000000..a0df5b1
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/service/IProjectProgressControlService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.projectprogress.control.service;
+
+import java.util.List;
+import com.ruoyi.server.projectprogress.control.domain.ProjectProgressControl;
+
+/**
+ * 项目进度控制Service接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface IProjectProgressControlService
+{
+ /**
+ * 查询项目进度控制
+ *
+ * @param controlId 项目进度控制主键
+ * @return 项目进度控制
+ */
+ public ProjectProgressControl selectProjectProgressControlByControlId(Long controlId);
+
+ /**
+ * 查询项目进度控制列表
+ *
+ * @param projectProgressControl 项目进度控制
+ * @return 项目进度控制集合
+ */
+ public List selectProjectProgressControlList(ProjectProgressControl projectProgressControl);
+
+ /**
+ * 新增项目进度控制
+ *
+ * @param projectProgressControl 项目进度控制
+ * @return 结果
+ */
+ public int insertProjectProgressControl(ProjectProgressControl projectProgressControl);
+
+ /**
+ * 修改项目进度控制
+ *
+ * @param projectProgressControl 项目进度控制
+ * @return 结果
+ */
+ public int updateProjectProgressControl(ProjectProgressControl projectProgressControl);
+
+ /**
+ * 批量删除项目进度控制
+ *
+ * @param controlIds 需要删除的项目进度控制主键集合
+ * @return 结果
+ */
+ public int deleteProjectProgressControlByControlIds(Long[] controlIds);
+
+ /**
+ * 删除项目进度控制信息
+ *
+ * @param controlId 项目进度控制主键
+ * @return 结果
+ */
+ public int deleteProjectProgressControlByControlId(Long controlId);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/service/impl/ProjectProgressControlServiceImpl.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/service/impl/ProjectProgressControlServiceImpl.java
new file mode 100644
index 0000000..7142eaa
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/control/service/impl/ProjectProgressControlServiceImpl.java
@@ -0,0 +1,93 @@
+package com.ruoyi.server.projectprogress.control.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.server.projectprogress.control.mapper.ProjectProgressControlMapper;
+import com.ruoyi.server.projectprogress.control.domain.ProjectProgressControl;
+import com.ruoyi.server.projectprogress.control.service.IProjectProgressControlService;
+
+/**
+ * 项目进度控制Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@Service
+public class ProjectProgressControlServiceImpl implements IProjectProgressControlService
+{
+ @Autowired
+ private ProjectProgressControlMapper projectProgressControlMapper;
+
+ /**
+ * 查询项目进度控制
+ *
+ * @param controlId 项目进度控制主键
+ * @return 项目进度控制
+ */
+ @Override
+ public ProjectProgressControl selectProjectProgressControlByControlId(Long controlId)
+ {
+ return projectProgressControlMapper.selectProjectProgressControlByControlId(controlId);
+ }
+
+ /**
+ * 查询项目进度控制列表
+ *
+ * @param projectProgressControl 项目进度控制
+ * @return 项目进度控制
+ */
+ @Override
+ public List selectProjectProgressControlList(ProjectProgressControl projectProgressControl)
+ {
+ return projectProgressControlMapper.selectProjectProgressControlList(projectProgressControl);
+ }
+
+ /**
+ * 新增项目进度控制
+ *
+ * @param projectProgressControl 项目进度控制
+ * @return 结果
+ */
+ @Override
+ public int insertProjectProgressControl(ProjectProgressControl projectProgressControl)
+ {
+ return projectProgressControlMapper.insertProjectProgressControl(projectProgressControl);
+ }
+
+ /**
+ * 修改项目进度控制
+ *
+ * @param projectProgressControl 项目进度控制
+ * @return 结果
+ */
+ @Override
+ public int updateProjectProgressControl(ProjectProgressControl projectProgressControl)
+ {
+ return projectProgressControlMapper.updateProjectProgressControl(projectProgressControl);
+ }
+
+ /**
+ * 批量删除项目进度控制
+ *
+ * @param controlIds 需要删除的项目进度控制主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProgressControlByControlIds(Long[] controlIds)
+ {
+ return projectProgressControlMapper.deleteProjectProgressControlByControlIds(controlIds);
+ }
+
+ /**
+ * 删除项目进度控制信息
+ *
+ * @param controlId 项目进度控制主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProgressControlByControlId(Long controlId)
+ {
+ return projectProgressControlMapper.deleteProjectProgressControlByControlId(controlId);
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/controller/ProjectProgressController.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/controller/ProjectProgressController.java
new file mode 100644
index 0000000..8c724a2
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/controller/ProjectProgressController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.server.projectprogress.manager.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.projectprogress.manager.domain.ProjectProgress;
+import com.ruoyi.server.projectprogress.manager.service.IProjectProgressService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目实施进度Controller
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@RestController
+@RequestMapping("/projectprogress/projectprogress")
+public class ProjectProgressController extends BaseController
+{
+ @Autowired
+ private IProjectProgressService projectProgressService;
+
+ /**
+ * 查询项目实施进度列表
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogress:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ProjectProgress projectProgress)
+ {
+ startPage();
+ List list = projectProgressService.selectProjectProgressList(projectProgress);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出项目实施进度列表
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogress:export')")
+ @Log(title = "项目实施进度", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ProjectProgress projectProgress)
+ {
+ List list = projectProgressService.selectProjectProgressList(projectProgress);
+ ExcelUtil util = new ExcelUtil(ProjectProgress.class);
+ util.exportExcel(response, list, "项目实施进度数据");
+ }
+
+ /**
+ * 获取项目实施进度详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogress:query')")
+ @GetMapping(value = "/{projectId}")
+ public AjaxResult getInfo(@PathVariable("projectId") Long projectId)
+ {
+ return success(projectProgressService.selectProjectProgressByProjectId(projectId));
+ }
+
+ /**
+ * 新增项目实施进度
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogress:add')")
+ @Log(title = "项目实施进度", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ProjectProgress projectProgress)
+ {
+ return toAjax(projectProgressService.insertProjectProgress(projectProgress));
+ }
+
+ /**
+ * 修改项目实施进度
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogress:edit')")
+ @Log(title = "项目实施进度", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ProjectProgress projectProgress)
+ {
+ return toAjax(projectProgressService.updateProjectProgress(projectProgress));
+ }
+
+ /**
+ * 删除项目实施进度
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogress:remove')")
+ @Log(title = "项目实施进度", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{projectIds}")
+ public AjaxResult remove(@PathVariable Long[] projectIds)
+ {
+ return toAjax(projectProgressService.deleteProjectProgressByProjectIds(projectIds));
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/domain/ProjectProgress.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/domain/ProjectProgress.java
new file mode 100644
index 0000000..5d92748
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/domain/ProjectProgress.java
@@ -0,0 +1,94 @@
+package com.ruoyi.server.projectprogress.manager.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+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_progress
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@Data
+public class ProjectProgress extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long projectId;
+
+ /** 任务id */
+ @Excel(name = "任务id")
+ private Long taskId;
+
+ /** 项目名称 */
+ @Excel(name = "项目名称")
+ private String taskDetail;
+
+ /** 计划开始时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date plannedStartDate;
+
+ /** 计划结束时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "计划结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date plannedEndDate;
+
+ /** 实际开始时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "实际开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date actualStartDate;
+
+ /** 实际结束时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "实际结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date actualEndDate;
+
+ /** 进度百分比 */
+ @Excel(name = "进度百分比")
+ private Long progressPercentage;
+
+ /** 完成状态 */
+ @Excel(name = "完成状态")
+ private String completionStatus;
+
+ /** 备注信息 */
+ @Excel(name = "备注信息")
+ private String remarks;
+
+ /** 创建时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date createdAt;
+
+ /** 更新时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date updatedAt;
+
+
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("projectId", getProjectId())
+ .append("taskId", getTaskId())
+ .append("taskDetail", getTaskDetail())
+ .append("plannedStartDate", getPlannedStartDate())
+ .append("plannedEndDate", getPlannedEndDate())
+ .append("actualStartDate", getActualStartDate())
+ .append("actualEndDate", getActualEndDate())
+ .append("progressPercentage", getProgressPercentage())
+ .append("completionStatus", getCompletionStatus())
+ .append("remarks", getRemarks())
+ .append("createdAt", getCreatedAt())
+ .append("updatedAt", getUpdatedAt())
+ .toString();
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/mapper/ProjectProgressMapper.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/mapper/ProjectProgressMapper.java
new file mode 100644
index 0000000..cd0eabf
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/mapper/ProjectProgressMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.projectprogress.manager.mapper;
+
+import java.util.List;
+import com.ruoyi.server.projectprogress.manager.domain.ProjectProgress;
+
+/**
+ * 项目实施进度Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface ProjectProgressMapper
+{
+ /**
+ * 查询项目实施进度
+ *
+ * @param projectId 项目实施进度主键
+ * @return 项目实施进度
+ */
+ public ProjectProgress selectProjectProgressByProjectId(Long projectId);
+
+ /**
+ * 查询项目实施进度列表
+ *
+ * @param projectProgress 项目实施进度
+ * @return 项目实施进度集合
+ */
+ public List selectProjectProgressList(ProjectProgress projectProgress);
+
+ /**
+ * 新增项目实施进度
+ *
+ * @param projectProgress 项目实施进度
+ * @return 结果
+ */
+ public int insertProjectProgress(ProjectProgress projectProgress);
+
+ /**
+ * 修改项目实施进度
+ *
+ * @param projectProgress 项目实施进度
+ * @return 结果
+ */
+ public int updateProjectProgress(ProjectProgress projectProgress);
+
+ /**
+ * 删除项目实施进度
+ *
+ * @param projectId 项目实施进度主键
+ * @return 结果
+ */
+ public int deleteProjectProgressByProjectId(Long projectId);
+
+ /**
+ * 批量删除项目实施进度
+ *
+ * @param projectIds 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteProjectProgressByProjectIds(Long[] projectIds);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/service/IProjectProgressService.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/service/IProjectProgressService.java
new file mode 100644
index 0000000..d2538f6
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/service/IProjectProgressService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.projectprogress.manager.service;
+
+import java.util.List;
+import com.ruoyi.server.projectprogress.manager.domain.ProjectProgress;
+
+/**
+ * 项目实施进度Service接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface IProjectProgressService
+{
+ /**
+ * 查询项目实施进度
+ *
+ * @param projectId 项目实施进度主键
+ * @return 项目实施进度
+ */
+ public ProjectProgress selectProjectProgressByProjectId(Long projectId);
+
+ /**
+ * 查询项目实施进度列表
+ *
+ * @param projectProgress 项目实施进度
+ * @return 项目实施进度集合
+ */
+ public List selectProjectProgressList(ProjectProgress projectProgress);
+
+ /**
+ * 新增项目实施进度
+ *
+ * @param projectProgress 项目实施进度
+ * @return 结果
+ */
+ public int insertProjectProgress(ProjectProgress projectProgress);
+
+ /**
+ * 修改项目实施进度
+ *
+ * @param projectProgress 项目实施进度
+ * @return 结果
+ */
+ public int updateProjectProgress(ProjectProgress projectProgress);
+
+ /**
+ * 批量删除项目实施进度
+ *
+ * @param projectIds 需要删除的项目实施进度主键集合
+ * @return 结果
+ */
+ public int deleteProjectProgressByProjectIds(Long[] projectIds);
+
+ /**
+ * 删除项目实施进度信息
+ *
+ * @param projectId 项目实施进度主键
+ * @return 结果
+ */
+ public int deleteProjectProgressByProjectId(Long projectId);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/service/impl/ProjectProgressServiceImpl.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/service/impl/ProjectProgressServiceImpl.java
new file mode 100644
index 0000000..c1b2dea
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/manager/service/impl/ProjectProgressServiceImpl.java
@@ -0,0 +1,93 @@
+package com.ruoyi.server.projectprogress.manager.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.server.projectprogress.manager.mapper.ProjectProgressMapper;
+import com.ruoyi.server.projectprogress.manager.domain.ProjectProgress;
+import com.ruoyi.server.projectprogress.manager.service.IProjectProgressService;
+
+/**
+ * 项目实施进度Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@Service
+public class ProjectProgressServiceImpl implements IProjectProgressService
+{
+ @Autowired
+ private ProjectProgressMapper projectProgressMapper;
+
+ /**
+ * 查询项目实施进度
+ *
+ * @param projectId 项目实施进度主键
+ * @return 项目实施进度
+ */
+ @Override
+ public ProjectProgress selectProjectProgressByProjectId(Long projectId)
+ {
+ return projectProgressMapper.selectProjectProgressByProjectId(projectId);
+ }
+
+ /**
+ * 查询项目实施进度列表
+ *
+ * @param projectProgress 项目实施进度
+ * @return 项目实施进度
+ */
+ @Override
+ public List selectProjectProgressList(ProjectProgress projectProgress)
+ {
+ return projectProgressMapper.selectProjectProgressList(projectProgress);
+ }
+
+ /**
+ * 新增项目实施进度
+ *
+ * @param projectProgress 项目实施进度
+ * @return 结果
+ */
+ @Override
+ public int insertProjectProgress(ProjectProgress projectProgress)
+ {
+ return projectProgressMapper.insertProjectProgress(projectProgress);
+ }
+
+ /**
+ * 修改项目实施进度
+ *
+ * @param projectProgress 项目实施进度
+ * @return 结果
+ */
+ @Override
+ public int updateProjectProgress(ProjectProgress projectProgress)
+ {
+ return projectProgressMapper.updateProjectProgress(projectProgress);
+ }
+
+ /**
+ * 批量删除项目实施进度
+ *
+ * @param projectIds 需要删除的项目实施进度主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProgressByProjectIds(Long[] projectIds)
+ {
+ return projectProgressMapper.deleteProjectProgressByProjectIds(projectIds);
+ }
+
+ /**
+ * 删除项目实施进度信息
+ *
+ * @param projectId 项目实施进度主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProgressByProjectId(Long projectId)
+ {
+ return projectProgressMapper.deleteProjectProgressByProjectId(projectId);
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/controller/ProjectProgressTaskController.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/controller/ProjectProgressTaskController.java
new file mode 100644
index 0000000..729fe82
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/controller/ProjectProgressTaskController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.server.projectprogress.task.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.projectprogress.task.domain.ProjectProgressTask;
+import com.ruoyi.server.projectprogress.task.service.IProjectProgressTaskService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目进度明细Controller
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@RestController
+@RequestMapping("/projectprogress/projectprogresstask")
+public class ProjectProgressTaskController extends BaseController
+{
+ @Autowired
+ private IProjectProgressTaskService projectProgressTaskService;
+
+ /**
+ * 查询项目进度明细列表
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogresstask:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ProjectProgressTask projectProgressTask)
+ {
+ startPage();
+ List list = projectProgressTaskService.selectProjectProgressTaskList(projectProgressTask);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出项目进度明细列表
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogresstask:export')")
+ @Log(title = "项目进度明细", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ProjectProgressTask projectProgressTask)
+ {
+ List list = projectProgressTaskService.selectProjectProgressTaskList(projectProgressTask);
+ ExcelUtil util = new ExcelUtil(ProjectProgressTask.class);
+ util.exportExcel(response, list, "项目进度明细数据");
+ }
+
+ /**
+ * 获取项目进度明细详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogresstask:query')")
+ @GetMapping(value = "/{taskId}")
+ public AjaxResult getInfo(@PathVariable("taskId") Long taskId)
+ {
+ return success(projectProgressTaskService.selectProjectProgressTaskByTaskId(taskId));
+ }
+
+ /**
+ * 新增项目进度明细
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogresstask:add')")
+ @Log(title = "项目进度明细", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ProjectProgressTask projectProgressTask)
+ {
+ return toAjax(projectProgressTaskService.insertProjectProgressTask(projectProgressTask));
+ }
+
+ /**
+ * 修改项目进度明细
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogresstask:edit')")
+ @Log(title = "项目进度明细", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ProjectProgressTask projectProgressTask)
+ {
+ return toAjax(projectProgressTaskService.updateProjectProgressTask(projectProgressTask));
+ }
+
+ /**
+ * 删除项目进度明细
+ */
+ @PreAuthorize("@ss.hasPermi('projectprogress:projectprogresstask:remove')")
+ @Log(title = "项目进度明细", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{taskIds}")
+ public AjaxResult remove(@PathVariable Long[] taskIds)
+ {
+ return toAjax(projectProgressTaskService.deleteProjectProgressTaskByTaskIds(taskIds));
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/domain/ProjectProgressTask.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/domain/ProjectProgressTask.java
new file mode 100644
index 0000000..4d4b6cc
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/domain/ProjectProgressTask.java
@@ -0,0 +1,180 @@
+package com.ruoyi.server.projectprogress.task.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_progress_task
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public class ProjectProgressTask extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long taskId;
+
+ /** 项目id */
+ private Long projectId;
+
+ /** 任务名称 */
+ @Excel(name = "任务名称")
+ private String name;
+
+ /** 任务说明 */
+ @Excel(name = "任务说明")
+ private String description;
+
+ /** 任务状态 */
+ @Excel(name = "任务状态")
+ private String status;
+
+ /** 计划开始时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date plannedStartDate;
+
+ /** 计划结束时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "计划结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date plannedEndDate;
+
+ /** 实际开始时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "实际开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date actualStartDate;
+
+ /** 实际结束时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "实际结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date actualEndDate;
+
+ /** 创建时间 */
+ private Date createdAt;
+
+ /** 结束时间 */
+ private Date updatedAt;
+
+ public void setTaskId(Long taskId)
+ {
+ this.taskId = taskId;
+ }
+
+ public Long getTaskId()
+ {
+ return taskId;
+ }
+ public void setProjectId(Long projectId)
+ {
+ this.projectId = projectId;
+ }
+
+ public Long getProjectId()
+ {
+ return projectId;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+ public void setDescription(String description)
+ {
+ this.description = description;
+ }
+
+ public String getDescription()
+ {
+ return description;
+ }
+ public void setStatus(String status)
+ {
+ this.status = status;
+ }
+
+ public String getStatus()
+ {
+ return status;
+ }
+ public void setPlannedStartDate(Date plannedStartDate)
+ {
+ this.plannedStartDate = plannedStartDate;
+ }
+
+ public Date getPlannedStartDate()
+ {
+ return plannedStartDate;
+ }
+ public void setPlannedEndDate(Date plannedEndDate)
+ {
+ this.plannedEndDate = plannedEndDate;
+ }
+
+ public Date getPlannedEndDate()
+ {
+ return plannedEndDate;
+ }
+ public void setActualStartDate(Date actualStartDate)
+ {
+ this.actualStartDate = actualStartDate;
+ }
+
+ public Date getActualStartDate()
+ {
+ return actualStartDate;
+ }
+ public void setActualEndDate(Date actualEndDate)
+ {
+ this.actualEndDate = actualEndDate;
+ }
+
+ public Date getActualEndDate()
+ {
+ return actualEndDate;
+ }
+ public void setCreatedAt(Date createdAt)
+ {
+ this.createdAt = createdAt;
+ }
+
+ public Date getCreatedAt()
+ {
+ return createdAt;
+ }
+ public void setUpdatedAt(Date updatedAt)
+ {
+ this.updatedAt = updatedAt;
+ }
+
+ public Date getUpdatedAt()
+ {
+ return updatedAt;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("taskId", getTaskId())
+ .append("projectId", getProjectId())
+ .append("name", getName())
+ .append("description", getDescription())
+ .append("status", getStatus())
+ .append("plannedStartDate", getPlannedStartDate())
+ .append("plannedEndDate", getPlannedEndDate())
+ .append("actualStartDate", getActualStartDate())
+ .append("actualEndDate", getActualEndDate())
+ .append("createdAt", getCreatedAt())
+ .append("updatedAt", getUpdatedAt())
+ .toString();
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/mapper/ProjectProgressTaskMapper.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/mapper/ProjectProgressTaskMapper.java
new file mode 100644
index 0000000..0b9cf09
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/mapper/ProjectProgressTaskMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.projectprogress.task.mapper;
+
+import java.util.List;
+import com.ruoyi.server.projectprogress.task.domain.ProjectProgressTask;
+
+/**
+ * 项目进度明细Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface ProjectProgressTaskMapper
+{
+ /**
+ * 查询项目进度明细
+ *
+ * @param taskId 项目进度明细主键
+ * @return 项目进度明细
+ */
+ public ProjectProgressTask selectProjectProgressTaskByTaskId(Long taskId);
+
+ /**
+ * 查询项目进度明细列表
+ *
+ * @param projectProgressTask 项目进度明细
+ * @return 项目进度明细集合
+ */
+ public List selectProjectProgressTaskList(ProjectProgressTask projectProgressTask);
+
+ /**
+ * 新增项目进度明细
+ *
+ * @param projectProgressTask 项目进度明细
+ * @return 结果
+ */
+ public int insertProjectProgressTask(ProjectProgressTask projectProgressTask);
+
+ /**
+ * 修改项目进度明细
+ *
+ * @param projectProgressTask 项目进度明细
+ * @return 结果
+ */
+ public int updateProjectProgressTask(ProjectProgressTask projectProgressTask);
+
+ /**
+ * 删除项目进度明细
+ *
+ * @param taskId 项目进度明细主键
+ * @return 结果
+ */
+ public int deleteProjectProgressTaskByTaskId(Long taskId);
+
+ /**
+ * 批量删除项目进度明细
+ *
+ * @param taskIds 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteProjectProgressTaskByTaskIds(Long[] taskIds);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/service/IProjectProgressTaskService.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/service/IProjectProgressTaskService.java
new file mode 100644
index 0000000..30163e4
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/service/IProjectProgressTaskService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.projectprogress.task.service;
+
+import java.util.List;
+import com.ruoyi.server.projectprogress.task.domain.ProjectProgressTask;
+
+/**
+ * 项目进度明细Service接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface IProjectProgressTaskService
+{
+ /**
+ * 查询项目进度明细
+ *
+ * @param taskId 项目进度明细主键
+ * @return 项目进度明细
+ */
+ public ProjectProgressTask selectProjectProgressTaskByTaskId(Long taskId);
+
+ /**
+ * 查询项目进度明细列表
+ *
+ * @param projectProgressTask 项目进度明细
+ * @return 项目进度明细集合
+ */
+ public List selectProjectProgressTaskList(ProjectProgressTask projectProgressTask);
+
+ /**
+ * 新增项目进度明细
+ *
+ * @param projectProgressTask 项目进度明细
+ * @return 结果
+ */
+ public int insertProjectProgressTask(ProjectProgressTask projectProgressTask);
+
+ /**
+ * 修改项目进度明细
+ *
+ * @param projectProgressTask 项目进度明细
+ * @return 结果
+ */
+ public int updateProjectProgressTask(ProjectProgressTask projectProgressTask);
+
+ /**
+ * 批量删除项目进度明细
+ *
+ * @param taskIds 需要删除的项目进度明细主键集合
+ * @return 结果
+ */
+ public int deleteProjectProgressTaskByTaskIds(Long[] taskIds);
+
+ /**
+ * 删除项目进度明细信息
+ *
+ * @param taskId 项目进度明细主键
+ * @return 结果
+ */
+ public int deleteProjectProgressTaskByTaskId(Long taskId);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/service/impl/ProjectProgressTaskServiceImpl.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/service/impl/ProjectProgressTaskServiceImpl.java
new file mode 100644
index 0000000..7d9518f
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/task/service/impl/ProjectProgressTaskServiceImpl.java
@@ -0,0 +1,93 @@
+package com.ruoyi.server.projectprogress.task.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.server.projectprogress.task.mapper.ProjectProgressTaskMapper;
+import com.ruoyi.server.projectprogress.task.domain.ProjectProgressTask;
+import com.ruoyi.server.projectprogress.task.service.IProjectProgressTaskService;
+
+/**
+ * 项目进度明细Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@Service
+public class ProjectProgressTaskServiceImpl implements IProjectProgressTaskService
+{
+ @Autowired
+ private ProjectProgressTaskMapper projectProgressTaskMapper;
+
+ /**
+ * 查询项目进度明细
+ *
+ * @param taskId 项目进度明细主键
+ * @return 项目进度明细
+ */
+ @Override
+ public ProjectProgressTask selectProjectProgressTaskByTaskId(Long taskId)
+ {
+ return projectProgressTaskMapper.selectProjectProgressTaskByTaskId(taskId);
+ }
+
+ /**
+ * 查询项目进度明细列表
+ *
+ * @param projectProgressTask 项目进度明细
+ * @return 项目进度明细
+ */
+ @Override
+ public List selectProjectProgressTaskList(ProjectProgressTask projectProgressTask)
+ {
+ return projectProgressTaskMapper.selectProjectProgressTaskList(projectProgressTask);
+ }
+
+ /**
+ * 新增项目进度明细
+ *
+ * @param projectProgressTask 项目进度明细
+ * @return 结果
+ */
+ @Override
+ public int insertProjectProgressTask(ProjectProgressTask projectProgressTask)
+ {
+ return projectProgressTaskMapper.insertProjectProgressTask(projectProgressTask);
+ }
+
+ /**
+ * 修改项目进度明细
+ *
+ * @param projectProgressTask 项目进度明细
+ * @return 结果
+ */
+ @Override
+ public int updateProjectProgressTask(ProjectProgressTask projectProgressTask)
+ {
+ return projectProgressTaskMapper.updateProjectProgressTask(projectProgressTask);
+ }
+
+ /**
+ * 批量删除项目进度明细
+ *
+ * @param taskIds 需要删除的项目进度明细主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProgressTaskByTaskIds(Long[] taskIds)
+ {
+ return projectProgressTaskMapper.deleteProjectProgressTaskByTaskIds(taskIds);
+ }
+
+ /**
+ * 删除项目进度明细信息
+ *
+ * @param taskId 项目进度明细主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProgressTaskByTaskId(Long taskId)
+ {
+ return projectProgressTaskMapper.deleteProjectProgressTaskByTaskId(taskId);
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/controller/ProjectProgressVersionsController.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/controller/ProjectProgressVersionsController.java
new file mode 100644
index 0000000..5be7acc
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/controller/ProjectProgressVersionsController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.server.projectprogress.versions.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.projectprogress.versions.domain.ProjectProgressVersions;
+import com.ruoyi.server.projectprogress.versions.service.IProjectProgressVersionsService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 用于记录实施版本信息Controller
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@RestController
+@RequestMapping("/versions/projectprogressversions")
+public class ProjectProgressVersionsController extends BaseController
+{
+ @Autowired
+ private IProjectProgressVersionsService projectProgressVersionsService;
+
+ /**
+ * 查询用于记录实施版本信息列表
+ */
+ @PreAuthorize("@ss.hasPermi('versions:projectprogressversions:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ProjectProgressVersions projectProgressVersions)
+ {
+ startPage();
+ List list = projectProgressVersionsService.selectProjectProgressVersionsList(projectProgressVersions);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出用于记录实施版本信息列表
+ */
+ @PreAuthorize("@ss.hasPermi('versions:projectprogressversions:export')")
+ @Log(title = "用于记录实施版本信息", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ProjectProgressVersions projectProgressVersions)
+ {
+ List list = projectProgressVersionsService.selectProjectProgressVersionsList(projectProgressVersions);
+ ExcelUtil util = new ExcelUtil(ProjectProgressVersions.class);
+ util.exportExcel(response, list, "用于记录实施版本信息数据");
+ }
+
+ /**
+ * 获取用于记录实施版本信息详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('versions:projectprogressversions:query')")
+ @GetMapping(value = "/{implementationId}")
+ public AjaxResult getInfo(@PathVariable("implementationId") Long implementationId)
+ {
+ return success(projectProgressVersionsService.selectProjectProgressVersionsByImplementationId(implementationId));
+ }
+
+ /**
+ * 新增用于记录实施版本信息
+ */
+ @PreAuthorize("@ss.hasPermi('versions:projectprogressversions:add')")
+ @Log(title = "用于记录实施版本信息", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ProjectProgressVersions projectProgressVersions)
+ {
+ return toAjax(projectProgressVersionsService.insertProjectProgressVersions(projectProgressVersions));
+ }
+
+ /**
+ * 修改用于记录实施版本信息
+ */
+ @PreAuthorize("@ss.hasPermi('versions:projectprogressversions:edit')")
+ @Log(title = "用于记录实施版本信息", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ProjectProgressVersions projectProgressVersions)
+ {
+ return toAjax(projectProgressVersionsService.updateProjectProgressVersions(projectProgressVersions));
+ }
+
+ /**
+ * 删除用于记录实施版本信息
+ */
+ @PreAuthorize("@ss.hasPermi('versions:projectprogressversions:remove')")
+ @Log(title = "用于记录实施版本信息", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{implementationIds}")
+ public AjaxResult remove(@PathVariable Long[] implementationIds)
+ {
+ return toAjax(projectProgressVersionsService.deleteProjectProgressVersionsByImplementationIds(implementationIds));
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/domain/ProjectProgressVersions.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/domain/ProjectProgressVersions.java
new file mode 100644
index 0000000..2b03117
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/domain/ProjectProgressVersions.java
@@ -0,0 +1,171 @@
+package com.ruoyi.server.projectprogress.versions.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_progress_versions
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public class ProjectProgressVersions extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long implementationId;
+
+ /** 版本号 */
+ @Excel(name = "版本号")
+ private String versionNumber;
+
+ /** 版本描述 */
+ @Excel(name = "版本描述")
+ private String versionDescription;
+
+ /** 发布日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "发布日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date releaseDate;
+
+ /** 实施状态 */
+ @Excel(name = "实施状态")
+ private String implementationStatus;
+
+ /** 实施开始日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "实施开始日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date implementationStartDate;
+
+ /** 预计完成日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "预计完成日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date estimatedCompletionDate;
+
+ /** 时间完成日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "时间完成日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date actualCompletionDate;
+
+ /** 创建时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date createdAt;
+
+ /** 更新时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date updatedAt;
+
+ public void setImplementationId(Long implementationId)
+ {
+ this.implementationId = implementationId;
+ }
+
+ public Long getImplementationId()
+ {
+ return implementationId;
+ }
+ public void setVersionNumber(String versionNumber)
+ {
+ this.versionNumber = versionNumber;
+ }
+
+ public String getVersionNumber()
+ {
+ return versionNumber;
+ }
+ public void setVersionDescription(String versionDescription)
+ {
+ this.versionDescription = versionDescription;
+ }
+
+ public String getVersionDescription()
+ {
+ return versionDescription;
+ }
+ public void setReleaseDate(Date releaseDate)
+ {
+ this.releaseDate = releaseDate;
+ }
+
+ public Date getReleaseDate()
+ {
+ return releaseDate;
+ }
+ public void setImplementationStatus(String implementationStatus)
+ {
+ this.implementationStatus = implementationStatus;
+ }
+
+ public String getImplementationStatus()
+ {
+ return implementationStatus;
+ }
+ public void setImplementationStartDate(Date implementationStartDate)
+ {
+ this.implementationStartDate = implementationStartDate;
+ }
+
+ public Date getImplementationStartDate()
+ {
+ return implementationStartDate;
+ }
+ public void setEstimatedCompletionDate(Date estimatedCompletionDate)
+ {
+ this.estimatedCompletionDate = estimatedCompletionDate;
+ }
+
+ public Date getEstimatedCompletionDate()
+ {
+ return estimatedCompletionDate;
+ }
+ public void setActualCompletionDate(Date actualCompletionDate)
+ {
+ this.actualCompletionDate = actualCompletionDate;
+ }
+
+ public Date getActualCompletionDate()
+ {
+ return actualCompletionDate;
+ }
+ public void setCreatedAt(Date createdAt)
+ {
+ this.createdAt = createdAt;
+ }
+
+ public Date getCreatedAt()
+ {
+ return createdAt;
+ }
+ public void setUpdatedAt(Date updatedAt)
+ {
+ this.updatedAt = updatedAt;
+ }
+
+ public Date getUpdatedAt()
+ {
+ return updatedAt;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("implementationId", getImplementationId())
+ .append("versionNumber", getVersionNumber())
+ .append("versionDescription", getVersionDescription())
+ .append("releaseDate", getReleaseDate())
+ .append("implementationStatus", getImplementationStatus())
+ .append("implementationStartDate", getImplementationStartDate())
+ .append("estimatedCompletionDate", getEstimatedCompletionDate())
+ .append("actualCompletionDate", getActualCompletionDate())
+ .append("createdAt", getCreatedAt())
+ .append("updatedAt", getUpdatedAt())
+ .toString();
+ }
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/mapper/ProjectProgressVersionsMapper.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/mapper/ProjectProgressVersionsMapper.java
new file mode 100644
index 0000000..8806e88
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/mapper/ProjectProgressVersionsMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.projectprogress.versions.mapper;
+
+import java.util.List;
+import com.ruoyi.server.projectprogress.versions.domain.ProjectProgressVersions;
+
+/**
+ * 用于记录实施版本信息Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface ProjectProgressVersionsMapper
+{
+ /**
+ * 查询用于记录实施版本信息
+ *
+ * @param implementationId 用于记录实施版本信息主键
+ * @return 用于记录实施版本信息
+ */
+ public ProjectProgressVersions selectProjectProgressVersionsByImplementationId(Long implementationId);
+
+ /**
+ * 查询用于记录实施版本信息列表
+ *
+ * @param projectProgressVersions 用于记录实施版本信息
+ * @return 用于记录实施版本信息集合
+ */
+ public List selectProjectProgressVersionsList(ProjectProgressVersions projectProgressVersions);
+
+ /**
+ * 新增用于记录实施版本信息
+ *
+ * @param projectProgressVersions 用于记录实施版本信息
+ * @return 结果
+ */
+ public int insertProjectProgressVersions(ProjectProgressVersions projectProgressVersions);
+
+ /**
+ * 修改用于记录实施版本信息
+ *
+ * @param projectProgressVersions 用于记录实施版本信息
+ * @return 结果
+ */
+ public int updateProjectProgressVersions(ProjectProgressVersions projectProgressVersions);
+
+ /**
+ * 删除用于记录实施版本信息
+ *
+ * @param implementationId 用于记录实施版本信息主键
+ * @return 结果
+ */
+ public int deleteProjectProgressVersionsByImplementationId(Long implementationId);
+
+ /**
+ * 批量删除用于记录实施版本信息
+ *
+ * @param implementationIds 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteProjectProgressVersionsByImplementationIds(Long[] implementationIds);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/service/IProjectProgressVersionsService.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/service/IProjectProgressVersionsService.java
new file mode 100644
index 0000000..3ab1ebb
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/service/IProjectProgressVersionsService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.server.projectprogress.versions.service;
+
+import java.util.List;
+import com.ruoyi.server.projectprogress.versions.domain.ProjectProgressVersions;
+
+/**
+ * 用于记录实施版本信息Service接口
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+public interface IProjectProgressVersionsService
+{
+ /**
+ * 查询用于记录实施版本信息
+ *
+ * @param implementationId 用于记录实施版本信息主键
+ * @return 用于记录实施版本信息
+ */
+ public ProjectProgressVersions selectProjectProgressVersionsByImplementationId(Long implementationId);
+
+ /**
+ * 查询用于记录实施版本信息列表
+ *
+ * @param projectProgressVersions 用于记录实施版本信息
+ * @return 用于记录实施版本信息集合
+ */
+ public List selectProjectProgressVersionsList(ProjectProgressVersions projectProgressVersions);
+
+ /**
+ * 新增用于记录实施版本信息
+ *
+ * @param projectProgressVersions 用于记录实施版本信息
+ * @return 结果
+ */
+ public int insertProjectProgressVersions(ProjectProgressVersions projectProgressVersions);
+
+ /**
+ * 修改用于记录实施版本信息
+ *
+ * @param projectProgressVersions 用于记录实施版本信息
+ * @return 结果
+ */
+ public int updateProjectProgressVersions(ProjectProgressVersions projectProgressVersions);
+
+ /**
+ * 批量删除用于记录实施版本信息
+ *
+ * @param implementationIds 需要删除的用于记录实施版本信息主键集合
+ * @return 结果
+ */
+ public int deleteProjectProgressVersionsByImplementationIds(Long[] implementationIds);
+
+ /**
+ * 删除用于记录实施版本信息信息
+ *
+ * @param implementationId 用于记录实施版本信息主键
+ * @return 结果
+ */
+ public int deleteProjectProgressVersionsByImplementationId(Long implementationId);
+}
diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/service/impl/ProjectProgressVersionsServiceImpl.java b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/service/impl/ProjectProgressVersionsServiceImpl.java
new file mode 100644
index 0000000..a37d026
--- /dev/null
+++ b/ruoyi-server/src/main/java/com/ruoyi/server/projectprogress/versions/service/impl/ProjectProgressVersionsServiceImpl.java
@@ -0,0 +1,93 @@
+package com.ruoyi.server.projectprogress.versions.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.server.projectprogress.versions.mapper.ProjectProgressVersionsMapper;
+import com.ruoyi.server.projectprogress.versions.domain.ProjectProgressVersions;
+import com.ruoyi.server.projectprogress.versions.service.IProjectProgressVersionsService;
+
+/**
+ * 用于记录实施版本信息Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-07-02
+ */
+@Service
+public class ProjectProgressVersionsServiceImpl implements IProjectProgressVersionsService
+{
+ @Autowired
+ private ProjectProgressVersionsMapper projectProgressVersionsMapper;
+
+ /**
+ * 查询用于记录实施版本信息
+ *
+ * @param implementationId 用于记录实施版本信息主键
+ * @return 用于记录实施版本信息
+ */
+ @Override
+ public ProjectProgressVersions selectProjectProgressVersionsByImplementationId(Long implementationId)
+ {
+ return projectProgressVersionsMapper.selectProjectProgressVersionsByImplementationId(implementationId);
+ }
+
+ /**
+ * 查询用于记录实施版本信息列表
+ *
+ * @param projectProgressVersions 用于记录实施版本信息
+ * @return 用于记录实施版本信息
+ */
+ @Override
+ public List selectProjectProgressVersionsList(ProjectProgressVersions projectProgressVersions)
+ {
+ return projectProgressVersionsMapper.selectProjectProgressVersionsList(projectProgressVersions);
+ }
+
+ /**
+ * 新增用于记录实施版本信息
+ *
+ * @param projectProgressVersions 用于记录实施版本信息
+ * @return 结果
+ */
+ @Override
+ public int insertProjectProgressVersions(ProjectProgressVersions projectProgressVersions)
+ {
+ return projectProgressVersionsMapper.insertProjectProgressVersions(projectProgressVersions);
+ }
+
+ /**
+ * 修改用于记录实施版本信息
+ *
+ * @param projectProgressVersions 用于记录实施版本信息
+ * @return 结果
+ */
+ @Override
+ public int updateProjectProgressVersions(ProjectProgressVersions projectProgressVersions)
+ {
+ return projectProgressVersionsMapper.updateProjectProgressVersions(projectProgressVersions);
+ }
+
+ /**
+ * 批量删除用于记录实施版本信息
+ *
+ * @param implementationIds 需要删除的用于记录实施版本信息主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProgressVersionsByImplementationIds(Long[] implementationIds)
+ {
+ return projectProgressVersionsMapper.deleteProjectProgressVersionsByImplementationIds(implementationIds);
+ }
+
+ /**
+ * 删除用于记录实施版本信息信息
+ *
+ * @param implementationId 用于记录实施版本信息主键
+ * @return 结果
+ */
+ @Override
+ public int deleteProjectProgressVersionsByImplementationId(Long implementationId)
+ {
+ return projectProgressVersionsMapper.deleteProjectProgressVersionsByImplementationId(implementationId);
+ }
+}
diff --git a/ruoyi-server/src/main/resources/mapper/system/ProjectProgressControlMapper.xml b/ruoyi-server/src/main/resources/mapper/system/ProjectProgressControlMapper.xml
new file mode 100644
index 0000000..adcaf73
--- /dev/null
+++ b/ruoyi-server/src/main/resources/mapper/system/ProjectProgressControlMapper.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select control_id, progress_id, updated_by, update_timestamp, update_description, progress_change, estimated_end_date_changed, new_estimated_end_date, requires_adjustment, adjustment_description from project_progress_control
+
+
+
+
+
+
+
+ insert into project_progress_control
+
+ progress_id,
+ updated_by,
+ update_timestamp,
+ update_description,
+ progress_change,
+ estimated_end_date_changed,
+ new_estimated_end_date,
+ requires_adjustment,
+ adjustment_description,
+
+
+ #{progressId},
+ #{updatedBy},
+ #{updateTimestamp},
+ #{updateDescription},
+ #{progressChange},
+ #{estimatedEndDateChanged},
+ #{newEstimatedEndDate},
+ #{requiresAdjustment},
+ #{adjustmentDescription},
+
+
+
+
+ update project_progress_control
+
+ progress_id = #{progressId},
+ updated_by = #{updatedBy},
+ update_timestamp = #{updateTimestamp},
+ update_description = #{updateDescription},
+ progress_change = #{progressChange},
+ estimated_end_date_changed = #{estimatedEndDateChanged},
+ new_estimated_end_date = #{newEstimatedEndDate},
+ requires_adjustment = #{requiresAdjustment},
+ adjustment_description = #{adjustmentDescription},
+
+ where control_id = #{controlId}
+
+
+
+ delete from project_progress_control where control_id = #{controlId}
+
+
+
+ delete from project_progress_control where control_id in
+
+ #{controlId}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-server/src/main/resources/mapper/system/ProjectProgressMapper.xml b/ruoyi-server/src/main/resources/mapper/system/ProjectProgressMapper.xml
new file mode 100644
index 0000000..4056377
--- /dev/null
+++ b/ruoyi-server/src/main/resources/mapper/system/ProjectProgressMapper.xml
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select project_id, task_id, task_detail, planned_start_date, planned_end_date, actual_start_date, actual_end_date, progress_percentage, completion_status, remarks, created_at, updated_at from project_progress
+
+
+
+
+
+
+
+ insert into project_progress
+
+ task_id,
+ task_detail,
+ planned_start_date,
+ planned_end_date,
+ actual_start_date,
+ actual_end_date,
+ progress_percentage,
+ completion_status,
+ remarks,
+ created_at,
+ updated_at,
+
+
+ #{taskId},
+ #{taskDetail},
+ #{plannedStartDate},
+ #{plannedEndDate},
+ #{actualStartDate},
+ #{actualEndDate},
+ #{progressPercentage},
+ #{completionStatus},
+ #{remarks},
+ #{createdAt},
+ #{updatedAt},
+
+
+
+
+ update project_progress
+
+ task_id = #{taskId},
+ task_detail = #{taskDetail},
+ planned_start_date = #{plannedStartDate},
+ planned_end_date = #{plannedEndDate},
+ actual_start_date = #{actualStartDate},
+ actual_end_date = #{actualEndDate},
+ progress_percentage = #{progressPercentage},
+ completion_status = #{completionStatus},
+ remarks = #{remarks},
+ created_at = #{createdAt},
+ updated_at = #{updatedAt},
+
+ where project_id = #{projectId}
+
+
+
+ delete from project_progress where project_id = #{projectId}
+
+
+
+ delete from project_progress where project_id in
+
+ #{projectId}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-server/src/main/resources/mapper/system/ProjectProgressTaskMapper.xml b/ruoyi-server/src/main/resources/mapper/system/ProjectProgressTaskMapper.xml
new file mode 100644
index 0000000..e64bfc0
--- /dev/null
+++ b/ruoyi-server/src/main/resources/mapper/system/ProjectProgressTaskMapper.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select task_id, project_id, name, description, status, planned_start_date, planned_end_date, actual_start_date, actual_end_date, created_at, updated_at from project_progress_task
+
+
+
+
+
+
+
+ insert into project_progress_task
+
+ project_id,
+ name,
+ description,
+ status,
+ planned_start_date,
+ planned_end_date,
+ actual_start_date,
+ actual_end_date,
+ created_at,
+ updated_at,
+
+
+ #{projectId},
+ #{name},
+ #{description},
+ #{status},
+ #{plannedStartDate},
+ #{plannedEndDate},
+ #{actualStartDate},
+ #{actualEndDate},
+ #{createdAt},
+ #{updatedAt},
+
+
+
+
+ update project_progress_task
+
+ project_id = #{projectId},
+ name = #{name},
+ description = #{description},
+ status = #{status},
+ planned_start_date = #{plannedStartDate},
+ planned_end_date = #{plannedEndDate},
+ actual_start_date = #{actualStartDate},
+ actual_end_date = #{actualEndDate},
+ created_at = #{createdAt},
+ updated_at = #{updatedAt},
+
+ where task_id = #{taskId}
+
+
+
+ delete from project_progress_task where task_id = #{taskId}
+
+
+
+ delete from project_progress_task where task_id in
+
+ #{taskId}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-server/src/main/resources/mapper/system/ProjectProgressVersionsMapper.xml b/ruoyi-server/src/main/resources/mapper/system/ProjectProgressVersionsMapper.xml
new file mode 100644
index 0000000..5b50ca1
--- /dev/null
+++ b/ruoyi-server/src/main/resources/mapper/system/ProjectProgressVersionsMapper.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select implementation_id, version_number, version_description, release_date, implementation_status, implementation_start_date, estimated_completion_date, actual_completion_date, created_at, updated_at from project_progress_versions
+
+
+
+
+
+
+
+ insert into project_progress_versions
+
+ version_number,
+ version_description,
+ release_date,
+ implementation_status,
+ implementation_start_date,
+ estimated_completion_date,
+ actual_completion_date,
+ created_at,
+ updated_at,
+
+
+ #{versionNumber},
+ #{versionDescription},
+ #{releaseDate},
+ #{implementationStatus},
+ #{implementationStartDate},
+ #{estimatedCompletionDate},
+ #{actualCompletionDate},
+ #{createdAt},
+ #{updatedAt},
+
+
+
+
+ update project_progress_versions
+
+ version_number = #{versionNumber},
+ version_description = #{versionDescription},
+ release_date = #{releaseDate},
+ implementation_status = #{implementationStatus},
+ implementation_start_date = #{implementationStartDate},
+ estimated_completion_date = #{estimatedCompletionDate},
+ actual_completion_date = #{actualCompletionDate},
+ created_at = #{createdAt},
+ updated_at = #{updatedAt},
+
+ where implementation_id = #{implementationId}
+
+
+
+ delete from project_progress_versions where implementation_id = #{implementationId}
+
+
+
+ delete from project_progress_versions where implementation_id in
+
+ #{implementationId}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/projectprogress/ProjectProgressControlMapper.xml b/ruoyi-ui/src/api/projectprogress/ProjectProgressControlMapper.xml
new file mode 100644
index 0000000..cdf5118
--- /dev/null
+++ b/ruoyi-ui/src/api/projectprogress/ProjectProgressControlMapper.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select control_id, progress_id, updated_by, update_timestamp, update_description, progress_change, estimated_end_date_changed, new_estimated_end_date, requires_adjustment, adjustment_description from project_progress_control
+
+
+
+
+
+
+
+ insert into project_progress_control
+
+ progress_id,
+ updated_by,
+ update_timestamp,
+ update_description,
+ progress_change,
+ estimated_end_date_changed,
+ new_estimated_end_date,
+ requires_adjustment,
+ adjustment_description,
+
+
+ #{progressId},
+ #{updatedBy},
+ #{updateTimestamp},
+ #{updateDescription},
+ #{progressChange},
+ #{estimatedEndDateChanged},
+ #{newEstimatedEndDate},
+ #{requiresAdjustment},
+ #{adjustmentDescription},
+
+
+
+
+ update project_progress_control
+
+ progress_id = #{progressId},
+ updated_by = #{updatedBy},
+ update_timestamp = #{updateTimestamp},
+ update_description = #{updateDescription},
+ progress_change = #{progressChange},
+ estimated_end_date_changed = #{estimatedEndDateChanged},
+ new_estimated_end_date = #{newEstimatedEndDate},
+ requires_adjustment = #{requiresAdjustment},
+ adjustment_description = #{adjustmentDescription},
+
+ where control_id = #{controlId}
+
+
+
+ delete from project_progress_control where control_id = #{controlId}
+
+
+
+ delete from project_progress_control where control_id in
+
+ #{controlId}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/projectprogress/projectprogress.js b/ruoyi-ui/src/api/projectprogress/projectprogress.js
new file mode 100644
index 0000000..2965fc6
--- /dev/null
+++ b/ruoyi-ui/src/api/projectprogress/projectprogress.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询项目实施进度列表
+export function listProjectprogress(query) {
+ return request({
+ url: '/projectprogress/projectprogress/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询项目实施进度详细
+export function getProjectprogress(projectId) {
+ return request({
+ url: '/projectprogress/projectprogress/' + projectId,
+ method: 'get'
+ })
+}
+
+// 新增项目实施进度
+export function addProjectprogress(data) {
+ return request({
+ url: '/projectprogress/projectprogress',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改项目实施进度
+export function updateProjectprogress(data) {
+ return request({
+ url: '/projectprogress/projectprogress',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除项目实施进度
+export function delProjectprogress(projectId) {
+ return request({
+ url: '/projectprogress/projectprogress/' + projectId,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/api/projectprogress/projectprogresscontrol.js b/ruoyi-ui/src/api/projectprogress/projectprogresscontrol.js
new file mode 100644
index 0000000..48b25c7
--- /dev/null
+++ b/ruoyi-ui/src/api/projectprogress/projectprogresscontrol.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询项目进度控制列表
+export function listProjectprogresscontrol(query) {
+ return request({
+ url: '/projectprogresscontrol/projectprogresscontrol/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询项目进度控制详细
+export function getProjectprogresscontrol(controlId) {
+ return request({
+ url: '/projectprogresscontrol/projectprogresscontrol/' + controlId,
+ method: 'get'
+ })
+}
+
+// 新增项目进度控制
+export function addProjectprogresscontrol(data) {
+ return request({
+ url: '/projectprogresscontrol/projectprogresscontrol',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改项目进度控制
+export function updateProjectprogresscontrol(data) {
+ return request({
+ url: '/projectprogresscontrol/projectprogresscontrol',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除项目进度控制
+export function delProjectprogresscontrol(controlId) {
+ return request({
+ url: '/projectprogresscontrol/projectprogresscontrol/' + controlId,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/api/projectprogress/projectprogresstask.js b/ruoyi-ui/src/api/projectprogress/projectprogresstask.js
new file mode 100644
index 0000000..864a49e
--- /dev/null
+++ b/ruoyi-ui/src/api/projectprogress/projectprogresstask.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询项目进度明细列表
+export function listProjectprogresstask(query) {
+ return request({
+ url: '/projectprogress/projectprogresstask/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询项目进度明细详细
+export function getProjectprogresstask(taskId) {
+ return request({
+ url: '/projectprogress/projectprogresstask/' + taskId,
+ method: 'get'
+ })
+}
+
+// 新增项目进度明细
+export function addProjectprogresstask(data) {
+ return request({
+ url: '/projectprogress/projectprogresstask',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改项目进度明细
+export function updateProjectprogresstask(data) {
+ return request({
+ url: '/projectprogress/projectprogresstask',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除项目进度明细
+export function delProjectprogresstask(taskId) {
+ return request({
+ url: '/projectprogress/projectprogresstask/' + taskId,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/api/projectprogress/projectprogressversions.js b/ruoyi-ui/src/api/projectprogress/projectprogressversions.js
new file mode 100644
index 0000000..4e13558
--- /dev/null
+++ b/ruoyi-ui/src/api/projectprogress/projectprogressversions.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询用于记录实施版本信息列表
+export function listProjectprogressversions(query) {
+ return request({
+ url: '/versions/projectprogressversions/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询用于记录实施版本信息详细
+export function getProjectprogressversions(implementationId) {
+ return request({
+ url: '/versions/projectprogressversions/' + implementationId,
+ method: 'get'
+ })
+}
+
+// 新增用于记录实施版本信息
+export function addProjectprogressversions(data) {
+ return request({
+ url: '/versions/projectprogressversions',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改用于记录实施版本信息
+export function updateProjectprogressversions(data) {
+ return request({
+ url: '/versions/projectprogressversions',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除用于记录实施版本信息
+export function delProjectprogressversions(implementationId) {
+ return request({
+ url: '/versions/projectprogressversions/' + implementationId,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/views/projectprogress/control/index.vue b/ruoyi-ui/src/views/projectprogress/control/index.vue
new file mode 100644
index 0000000..9eecb48
--- /dev/null
+++ b/ruoyi-ui/src/views/projectprogress/control/index.vue
@@ -0,0 +1,323 @@
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.updateTimestamp, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.newEstimatedEndDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/projectprogress/manager/index.vue b/ruoyi-ui/src/views/projectprogress/manager/index.vue
new file mode 100644
index 0000000..c1ba9f9
--- /dev/null
+++ b/ruoyi-ui/src/views/projectprogress/manager/index.vue
@@ -0,0 +1,413 @@
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.plannedStartDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.plannedEndDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.actualStartDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.actualEndDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createdAt, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.updatedAt, '{y}-{m}-{d}') }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/projectprogress/task/index.vue b/ruoyi-ui/src/views/projectprogress/task/index.vue
new file mode 100644
index 0000000..6e98a5b
--- /dev/null
+++ b/ruoyi-ui/src/views/projectprogress/task/index.vue
@@ -0,0 +1,347 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.plannedStartDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.plannedEndDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.actualStartDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.actualEndDate, '{y}-{m}-{d}') }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/projectprogress/versions/index.vue b/ruoyi-ui/src/views/projectprogress/versions/index.vue
new file mode 100644
index 0000000..c10ff0b
--- /dev/null
+++ b/ruoyi-ui/src/views/projectprogress/versions/index.vue
@@ -0,0 +1,380 @@
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.releaseDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.implementationStartDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.estimatedCompletionDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.actualCompletionDate, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.createdAt, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.updatedAt, '{y}-{m}-{d}') }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+