From 10fe05319209797d23e360ec3fad9f30c5b96f58 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期五, 22 十一月 2024 14:20:15 +0800
Subject: [PATCH] 项目计划初始化
---
business/src/main/java/com/ycl/domain/query/PlanQuery.java | 17
business/src/main/java/com/ycl/service/ProjectPlanRecordService.java | 66
business/src/main/java/com/ycl/controller/ProjectUnitRegistrationInfoController.java | 83 +
business/src/main/java/com/ycl/domain/entity/ProjectPlanProgressReport.java | 44
business/src/main/java/com/ycl/controller/ProjectPlanRecordController.java | 83 +
business/src/main/java/com/ycl/service/impl/ProjectUnitRegistrationInfoServiceImpl.java | 119 +
business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml | 70
business/src/main/resources/mapper/PlanMapper.xml | 55
business/src/main/java/com/ycl/mapper/ProjectPlanRecordMapper.java | 34
business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java | 66
business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java | 51
business/src/main/java/com/ycl/domain/query/ProjectPlanRecordQuery.java | 18
business/src/main/java/com/ycl/domain/vo/ProjectPlanExamineRecordVO.java | 80 +
business/src/main/java/com/ycl/domain/vo/ProjectPlanProgressReportVO.java | 53
business/src/main/java/com/ycl/mapper/ProjectUnitRegistrationInfoMapper.java | 34
business/src/main/java/com/ycl/domain/vo/ProgressPlanVO.java | 60
business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java | 34
business/src/main/java/com/ycl/domain/query/ProjectUnitRegistrationInfoQuery.java | 22
business/src/main/java/com/ycl/mapper/PlanMapper.java | 32
business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml | 49
business/src/main/java/com/ycl/domain/vo/ProjectUnitRegistrationInfoVO.java | 129 +
business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java | 82 +
business/src/main/java/com/ycl/domain/form/ProjectUnitRegistrationInfoForm.java | 132 +
business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java | 119 +
business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java | 43
business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java | 119 +
business/src/main/java/com/ycl/domain/form/ProjectPlanProgressReportForm.java | 57
business/src/main/java/com/ycl/service/PlanService.java | 73 +
business/src/main/java/com/ycl/domain/form/ProgressPlanForm.java | 63
business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java | 120 +
business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java | 119 +
business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java | 121 +
business/src/main/java/com/ycl/domain/vo/PlanVO.java | 61
business/src/main/java/com/ycl/mapper/ProgressPlanMapper.java | 32
business/src/main/java/com/ycl/controller/ProgressPlanController.java | 83 +
business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordVO.java | 67
business/src/main/java/com/ycl/domain/query/ProjectPlanInfoQuery.java | 18
business/src/main/java/com/ycl/domain/form/ProjectPlanExamineRecordForm.java | 84 +
business/src/main/resources/mapper/ProjectPlanRecordMapper.xml | 58
business/src/main/java/com/ycl/domain/form/ProjectPlanInfoForm.java | 56
business/src/main/resources/mapper/ProgressPlanMapper.xml | 55
business/src/main/java/com/ycl/service/ProjectPlanProgressReportService.java | 66
business/src/main/java/com/ycl/service/ProgressPlanService.java | 65
business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java | 83 +
business/src/main/java/com/ycl/domain/form/PlanForm.java | 63
business/src/main/java/com/ycl/domain/entity/ProjectUnitRegistrationInfo.java | 120 +
business/src/main/java/com/ycl/service/ProjectUnitRegistrationInfoService.java | 65
business/src/main/java/com/ycl/domain/query/ProjectPlanProgressReportQuery.java | 17
business/src/main/java/com/ycl/controller/PlanController.java | 83 +
business/src/main/java/com/ycl/domain/entity/Plan.java | 51
business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java | 72 +
business/src/main/java/com/ycl/domain/vo/ProjectPlanInfoVO.java | 52
business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java | 83 +
business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java | 34
business/src/main/java/com/ycl/service/ProjectPlanInfoService.java | 66
business/src/main/resources/mapper/ProjectUnitRegistrationInfoMapper.xml | 106 +
business/src/main/java/com/ycl/mapper/ProjectPlanInfoMapper.java | 34
business/src/main/java/com/ycl/domain/query/ProjectPlanExamineRecordQuery.java | 18
/dev/null | 61
business/src/main/java/com/ycl/domain/form/ProjectPlanRecordForm.java | 68
business/src/main/resources/mapper/ProjectPlanInfoMapper.xml | 49
business/src/main/java/com/ycl/domain/entity/ProgressPlan.java | 51
business/src/main/java/com/ycl/domain/query/ProgressPlanQuery.java | 18
business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java | 119 +
64 files changed, 4,144 insertions(+), 61 deletions(-)
diff --git a/business/src/main/java/com/ycl/controller/PlanController.java b/business/src/main/java/com/ycl/controller/PlanController.java
new file mode 100644
index 0000000..1e30b2c
--- /dev/null
+++ b/business/src/main/java/com/ycl/controller/PlanController.java
@@ -0,0 +1,83 @@
+package com.ycl.controller;
+
+
+import com.ycl.common.base.Result;
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.form.PlanForm;
+import com.ycl.domain.query.PlanQuery;
+import com.ycl.service.PlanService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 椤圭洰璁″垝琛� 鍓嶇鎺у埗鍣�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "椤圭洰璁″垝琛�", tags = "椤圭洰璁″垝琛ㄧ鐞�")
+@RestController
+@RequestMapping("/api/plan")
+public class PlanController {
+
+ private final PlanService planService;
+
+ @PostMapping
+ @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+ @PreAuthorize("hasAuthority('plan:add')")
+ public Result add(@RequestBody @Validated(Add.class) PlanForm form) {
+ return planService.add(form);
+ }
+
+ @PutMapping
+ @ApiOperation(value = "淇敼", notes = "淇敼")
+ @PreAuthorize("hasAuthority('plan:edit')")
+ public Result update(@RequestBody @Validated(Update.class) PlanForm form) {
+ return planService.update(form);
+ }
+
+ @DeleteMapping("/{id}")
+ @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+ @PreAuthorize("hasAuthority('plan:del')")
+ public Result removeById(@PathVariable("id") String id) {
+ return planService.removeById(id);
+ }
+
+ @DeleteMapping("/batch")
+ @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+ @PreAuthorize("hasAuthority('plan:del:batch')")
+ public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+ return planService.remove(ids);
+ }
+
+ @GetMapping("/page")
+ @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+ @PreAuthorize("hasAuthority('plan:page')")
+ public Result page(PlanQuery query) {
+ return planService.page(query);
+ }
+
+ @GetMapping("/{id}")
+ @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+ @PreAuthorize("hasAuthority('plan:detail')")
+ public Result detail(@PathVariable("id") Integer id) {
+ return planService.detail(id);
+ }
+
+ @GetMapping("/list")
+ @PreAuthorize("hasAuthority('plan:list')")
+ @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+ public Result list() {
+ return planService.all();
+ }
+}
diff --git a/business/src/main/java/com/ycl/controller/ProgressPlanController.java b/business/src/main/java/com/ycl/controller/ProgressPlanController.java
new file mode 100644
index 0000000..ace5749
--- /dev/null
+++ b/business/src/main/java/com/ycl/controller/ProgressPlanController.java
@@ -0,0 +1,83 @@
+package com.ycl.controller;
+
+
+import com.ycl.common.base.Result;
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.form.ProgressPlanForm;
+import com.ycl.domain.query.ProgressPlanQuery;
+import com.ycl.service.ProgressPlanService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 椤圭洰璁″垝杩涘害 鍓嶇鎺у埗鍣�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "椤圭洰璁″垝杩涘害", tags = "椤圭洰璁″垝杩涘害绠$悊")
+@RestController
+@RequestMapping("/api/progress-plan")
+public class ProgressPlanController {
+
+ private final ProgressPlanService progressPlanService;
+
+ @PostMapping
+ @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+ @PreAuthorize("hasAuthority('progressPlan:add')")
+ public Result add(@RequestBody @Validated(Add.class) ProgressPlanForm form) {
+ return progressPlanService.add(form);
+ }
+
+ @PutMapping
+ @ApiOperation(value = "淇敼", notes = "淇敼")
+ @PreAuthorize("hasAuthority('progressPlan:edit')")
+ public Result update(@RequestBody @Validated(Update.class) ProgressPlanForm form) {
+ return progressPlanService.update(form);
+ }
+
+ @DeleteMapping("/{id}")
+ @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+ @PreAuthorize("hasAuthority('progressPlan:del')")
+ public Result removeById(@PathVariable("id") String id) {
+ return progressPlanService.removeById(id);
+ }
+
+ @DeleteMapping("/batch")
+ @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+ @PreAuthorize("hasAuthority('progressPlan:del:batch')")
+ public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+ return progressPlanService.remove(ids);
+ }
+
+ @GetMapping("/page")
+ @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+ @PreAuthorize("hasAuthority('progressPlan:page')")
+ public Result page(ProgressPlanQuery query) {
+ return progressPlanService.page(query);
+ }
+
+ @GetMapping("/{id}")
+ @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+ @PreAuthorize("hasAuthority('progressPlan:detail')")
+ public Result detail(@PathVariable("id") Integer id) {
+ return progressPlanService.detail(id);
+ }
+
+ @GetMapping("/list")
+ @PreAuthorize("hasAuthority('progressPlan:list')")
+ @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+ public Result list() {
+ return progressPlanService.all();
+ }
+}
diff --git a/business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java b/business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java
new file mode 100644
index 0000000..5aadef2
--- /dev/null
+++ b/business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java
@@ -0,0 +1,82 @@
+package com.ycl.controller;
+
+import com.ycl.common.base.Result;
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.form.ProjectPlanExamineRecordForm;
+import com.ycl.domain.query.ProjectPlanExamineRecordQuery;
+import com.ycl.service.ProjectPlanExamineRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 椤圭洰瀹℃牳璁板綍琛� 鍓嶇鎺у埗鍣�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "椤圭洰瀹℃牳璁板綍琛�", tags = "椤圭洰瀹℃牳璁板綍琛ㄧ鐞�")
+@RestController
+@RequestMapping("/api/project-plan-examine-record")
+public class ProjectPlanExamineRecordController {
+
+ private final ProjectPlanExamineRecordService projectPlanExamineRecordService;
+
+ @PostMapping
+ @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+ @PreAuthorize("hasAuthority('projectPlanExamineRecord:add')")
+ public Result add(@RequestBody @Validated(Add.class) ProjectPlanExamineRecordForm form) {
+ return projectPlanExamineRecordService.add(form);
+ }
+
+ @PutMapping
+ @ApiOperation(value = "淇敼", notes = "淇敼")
+ @PreAuthorize("hasAuthority('projectPlanExamineRecord:edit')")
+ public Result update(@RequestBody @Validated(Update.class) ProjectPlanExamineRecordForm form) {
+ return projectPlanExamineRecordService.update(form);
+ }
+
+ @DeleteMapping("/{id}")
+ @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+ @PreAuthorize("hasAuthority('projectPlanExamineRecord:del')")
+ public Result removeById(@PathVariable("id") String id) {
+ return projectPlanExamineRecordService.removeById(id);
+ }
+
+ @DeleteMapping("/batch")
+ @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+ @PreAuthorize("hasAuthority('projectPlanExamineRecord:del:batch')")
+ public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+ return projectPlanExamineRecordService.remove(ids);
+ }
+
+ @GetMapping("/page")
+ @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+ @PreAuthorize("hasAuthority('projectPlanExamineRecord:page')")
+ public Result page(ProjectPlanExamineRecordQuery query) {
+ return projectPlanExamineRecordService.page(query);
+ }
+
+ @GetMapping("/{id}")
+ @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+ @PreAuthorize("hasAuthority('projectPlanExamineRecord:detail')")
+ public Result detail(@PathVariable("id") Integer id) {
+ return projectPlanExamineRecordService.detail(id);
+ }
+
+ @GetMapping("/list")
+ @PreAuthorize("hasAuthority('projectPlanExamineRecord:list')")
+ @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+ public Result list() {
+ return projectPlanExamineRecordService.all();
+ }
+}
diff --git a/business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java b/business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java
new file mode 100644
index 0000000..e92a71f
--- /dev/null
+++ b/business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java
@@ -0,0 +1,83 @@
+package com.ycl.controller;
+
+
+import com.ycl.common.base.Result;
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.form.ProjectPlanInfoForm;
+import com.ycl.domain.query.ProjectPlanInfoQuery;
+import com.ycl.service.ProjectPlanInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 椤圭洰璁″垝椤� 鍓嶇鎺у埗鍣�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "椤圭洰璁″垝椤�", tags = "椤圭洰璁″垝椤圭鐞�")
+@RestController
+@RequestMapping("/api/project-plan-info")
+public class ProjectPlanInfoController {
+
+ private final ProjectPlanInfoService projectPlanInfoService;
+
+ @PostMapping
+ @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+ @PreAuthorize("hasAuthority('projectPlanInfo:add')")
+ public Result add(@RequestBody @Validated(Add.class) ProjectPlanInfoForm form) {
+ return projectPlanInfoService.add(form);
+ }
+
+ @PutMapping
+ @ApiOperation(value = "淇敼", notes = "淇敼")
+ @PreAuthorize("hasAuthority('projectPlanInfo:edit')")
+ public Result update(@RequestBody @Validated(Update.class) ProjectPlanInfoForm form) {
+ return projectPlanInfoService.update(form);
+ }
+
+ @DeleteMapping("/{id}")
+ @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+ @PreAuthorize("hasAuthority('projectPlanInfo:del')")
+ public Result removeById(@PathVariable("id") String id) {
+ return projectPlanInfoService.removeById(id);
+ }
+
+ @DeleteMapping("/batch")
+ @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+ @PreAuthorize("hasAuthority('projectPlanInfo:del:batch')")
+ public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+ return projectPlanInfoService.remove(ids);
+ }
+
+ @GetMapping("/page")
+ @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+ @PreAuthorize("hasAuthority('projectPlanInfo:page')")
+ public Result page(ProjectPlanInfoQuery query) {
+ return projectPlanInfoService.page(query);
+ }
+
+ @GetMapping("/{id}")
+ @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+ @PreAuthorize("hasAuthority('projectPlanInfo:detail')")
+ public Result detail(@PathVariable("id") Integer id) {
+ return projectPlanInfoService.detail(id);
+ }
+
+ @GetMapping("/list")
+ @PreAuthorize("hasAuthority('projectPlanInfo:list')")
+ @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+ public Result list() {
+ return projectPlanInfoService.all();
+ }
+}
diff --git a/business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java b/business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java
new file mode 100644
index 0000000..913fa2e
--- /dev/null
+++ b/business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java
@@ -0,0 +1,83 @@
+package com.ycl.controller;
+
+
+import com.ycl.common.base.Result;
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.form.ProjectPlanProgressReportForm;
+import com.ycl.domain.query.ProjectPlanProgressReportQuery;
+import com.ycl.service.ProjectPlanProgressReportService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 杩涘害涓婃姤鍐呭 鍓嶇鎺у埗鍣�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "杩涘害涓婃姤鍐呭", tags = "杩涘害涓婃姤鍐呭绠$悊")
+@RestController
+@RequestMapping("/api/project-plan-progress-report")
+public class ProjectPlanProgressReportController {
+
+ private final ProjectPlanProgressReportService projectPlanProgressReportService;
+
+ @PostMapping
+ @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+ @PreAuthorize("hasAuthority('projectPlanProgressReport:add')")
+ public Result add(@RequestBody @Validated(Add.class) ProjectPlanProgressReportForm form) {
+ return projectPlanProgressReportService.add(form);
+ }
+
+ @PutMapping
+ @ApiOperation(value = "淇敼", notes = "淇敼")
+ @PreAuthorize("hasAuthority('projectPlanProgressReport:edit')")
+ public Result update(@RequestBody @Validated(Update.class) ProjectPlanProgressReportForm form) {
+ return projectPlanProgressReportService.update(form);
+ }
+
+ @DeleteMapping("/{id}")
+ @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+ @PreAuthorize("hasAuthority('projectPlanProgressReport:del')")
+ public Result removeById(@PathVariable("id") String id) {
+ return projectPlanProgressReportService.removeById(id);
+ }
+
+ @DeleteMapping("/batch")
+ @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+ @PreAuthorize("hasAuthority('projectPlanProgressReport:del:batch')")
+ public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+ return projectPlanProgressReportService.remove(ids);
+ }
+
+ @GetMapping("/page")
+ @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+ @PreAuthorize("hasAuthority('projectPlanProgressReport:page')")
+ public Result page(ProjectPlanProgressReportQuery query) {
+ return projectPlanProgressReportService.page(query);
+ }
+
+ @GetMapping("/{id}")
+ @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+ @PreAuthorize("hasAuthority('projectPlanProgressReport:detail')")
+ public Result detail(@PathVariable("id") Integer id) {
+ return projectPlanProgressReportService.detail(id);
+ }
+
+ @GetMapping("/list")
+ @PreAuthorize("hasAuthority('projectPlanProgressReport:list')")
+ @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+ public Result list() {
+ return projectPlanProgressReportService.all();
+ }
+}
diff --git a/business/src/main/java/com/ycl/controller/ProjectPlanRecordController.java b/business/src/main/java/com/ycl/controller/ProjectPlanRecordController.java
new file mode 100644
index 0000000..e8cdc8e
--- /dev/null
+++ b/business/src/main/java/com/ycl/controller/ProjectPlanRecordController.java
@@ -0,0 +1,83 @@
+package com.ycl.controller;
+
+
+import com.ycl.common.base.Result;
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.form.ProjectPlanRecordForm;
+import com.ycl.domain.query.ProjectPlanRecordQuery;
+import com.ycl.service.ProjectPlanRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 椤圭洰璁″垝璁板綍 鍓嶇鎺у埗鍣�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "椤圭洰璁″垝璁板綍", tags = "椤圭洰璁″垝璁板綍绠$悊")
+@RestController
+@RequestMapping("/api/project-plan-record")
+public class ProjectPlanRecordController {
+
+ private final ProjectPlanRecordService projectPlanRecordService;
+
+ @PostMapping
+ @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+ @PreAuthorize("hasAuthority('projectPlanRecord:add')")
+ public Result add(@RequestBody @Validated(Add.class) ProjectPlanRecordForm form) {
+ return projectPlanRecordService.add(form);
+ }
+
+ @PutMapping
+ @ApiOperation(value = "淇敼", notes = "淇敼")
+ @PreAuthorize("hasAuthority('projectPlanRecord:edit')")
+ public Result update(@RequestBody @Validated(Update.class) ProjectPlanRecordForm form) {
+ return projectPlanRecordService.update(form);
+ }
+
+ @DeleteMapping("/{id}")
+ @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+ @PreAuthorize("hasAuthority('projectPlanRecord:del')")
+ public Result removeById(@PathVariable("id") String id) {
+ return projectPlanRecordService.removeById(id);
+ }
+
+ @DeleteMapping("/batch")
+ @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+ @PreAuthorize("hasAuthority('projectPlanRecord:del:batch')")
+ public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+ return projectPlanRecordService.remove(ids);
+ }
+
+ @GetMapping("/page")
+ @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+ @PreAuthorize("hasAuthority('projectPlanRecord:page')")
+ public Result page(ProjectPlanRecordQuery query) {
+ return projectPlanRecordService.page(query);
+ }
+
+ @GetMapping("/{id}")
+ @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+ @PreAuthorize("hasAuthority('projectPlanRecord:detail')")
+ public Result detail(@PathVariable("id") Integer id) {
+ return projectPlanRecordService.detail(id);
+ }
+
+ @GetMapping("/list")
+ @PreAuthorize("hasAuthority('projectPlanRecord:list')")
+ @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+ public Result list() {
+ return projectPlanRecordService.all();
+ }
+}
diff --git a/business/src/main/java/com/ycl/controller/ProjectUnitRegistrationInfoController.java b/business/src/main/java/com/ycl/controller/ProjectUnitRegistrationInfoController.java
new file mode 100644
index 0000000..4fe5396
--- /dev/null
+++ b/business/src/main/java/com/ycl/controller/ProjectUnitRegistrationInfoController.java
@@ -0,0 +1,83 @@
+package com.ycl.controller;
+
+import com.ycl.common.group.Update;
+import com.ycl.common.group.Add;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.constraints.NotEmpty;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.ycl.service.ProjectUnitRegistrationInfoService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.form.ProjectUnitRegistrationInfoForm;
+import com.ycl.domain.query.ProjectUnitRegistrationInfoQuery;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛� 鍓嶇鎺у埗鍣�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛�", tags = "椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛ㄧ鐞�")
+@RestController
+@RequestMapping("/project-unit-registration-info")
+public class ProjectUnitRegistrationInfoController {
+
+ private final ProjectUnitRegistrationInfoService projectUnitRegistrationInfoService;
+
+ @PostMapping
+ @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+ @PreAuthorize("hasAuthority('projectUnitRegistrationInfo:add')")
+ public Result add(@RequestBody @Validated(Add.class) ProjectUnitRegistrationInfoForm form) {
+ return projectUnitRegistrationInfoService.add(form);
+ }
+
+ @PutMapping
+ @ApiOperation(value = "淇敼", notes = "淇敼")
+ @PreAuthorize("hasAuthority('projectUnitRegistrationInfo:edit')")
+ public Result update(@RequestBody @Validated(Update.class) ProjectUnitRegistrationInfoForm form) {
+ return projectUnitRegistrationInfoService.update(form);
+ }
+
+ @DeleteMapping("/{id}")
+ @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+ @PreAuthorize("hasAuthority('projectUnitRegistrationInfo:del')")
+ public Result removeById(@PathVariable("id") String id) {
+ return projectUnitRegistrationInfoService.removeById(id);
+ }
+
+ @DeleteMapping("/batch")
+ @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+ @PreAuthorize("hasAuthority('projectUnitRegistrationInfo:del:batch')")
+ public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+ return projectUnitRegistrationInfoService.remove(ids);
+ }
+
+ @GetMapping("/page")
+ @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+ @PreAuthorize("hasAuthority('projectUnitRegistrationInfo:page')")
+ public Result page(ProjectUnitRegistrationInfoQuery query) {
+ return projectUnitRegistrationInfoService.page(query);
+ }
+
+ @GetMapping("/{id}")
+ @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+ @PreAuthorize("hasAuthority('projectUnitRegistrationInfo:detail')")
+ public Result detail(@PathVariable("id") Integer id) {
+ return projectUnitRegistrationInfoService.detail(id);
+ }
+
+ @GetMapping("/list")
+ @PreAuthorize("hasAuthority('projectUnitRegistrationInfo:list')")
+ @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+ public Result list() {
+ return projectUnitRegistrationInfoService.all();
+ }
+}
diff --git a/business/src/main/java/com/ycl/domain/entity/Plan.java b/business/src/main/java/com/ycl/domain/entity/Plan.java
new file mode 100644
index 0000000..bca52e4
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/Plan.java
@@ -0,0 +1,51 @@
+package com.ycl.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.time.LocalDateTime;
+import com.ycl.system.domain.base.AbsEntity;
+import lombok.Data;
+
+/**
+ * 椤圭洰璁″垝琛�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@TableName("t_plan")
+public class Plan extends AbsEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableField("project_info_id")
+ /** 椤圭洰璇︽儏琛╥d */
+ private Long projectInfoId;
+
+ @TableField("report_status")
+ /** 涓婃姤鐘舵�侊紙0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ private Integer reportStatus;
+
+ @TableField("month_status")
+ /** 鏈堝害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ private Integer monthStatus;
+
+ @TableField("season_status")
+ /** 瀛e害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ private Integer seasonStatus;
+
+ @TableField("year_status")
+ /** 骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ private Integer yearStatus;
+
+ @TableField("gmt_create_time")
+ /** 鍒涘缓鏃堕棿 */
+ private LocalDateTime gmtCreateTime;
+
+ @TableField("gmt_update_time")
+ /** 淇敼鏃堕棿 */
+ private LocalDateTime gmtUpdateTime;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/entity/ProgressPlan.java b/business/src/main/java/com/ycl/domain/entity/ProgressPlan.java
new file mode 100644
index 0000000..97a25aa
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/ProgressPlan.java
@@ -0,0 +1,51 @@
+package com.ycl.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ycl.system.domain.base.AbsEntity;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 椤圭洰璁″垝杩涘害
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@TableName("t_progress_plan")
+public class ProgressPlan extends AbsEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableField("project_info_id")
+ /** 椤圭洰淇℃伅琛╥d */
+ private Long projectInfoId;
+
+ @TableField("report_status")
+ /** 涓婃姤鐘舵�侊紙0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ private Integer reportStatus;
+
+ @TableField("month_status")
+ /** 鏈堝害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ private Integer monthStatus;
+
+ @TableField("season_status")
+ /** 瀛e害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ private Integer seasonStatus;
+
+ @TableField("year_status")
+ /** 骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ private Integer yearStatus;
+
+ @TableField("gmt_create_time")
+ /** 鍒涘缓鏃堕棿 */
+ private LocalDateTime gmtCreateTime;
+
+ @TableField("gmt_update_time")
+ /** 淇敼鏃堕棿 */
+ private LocalDateTime gmtUpdateTime;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java b/business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java
new file mode 100644
index 0000000..9f6c861
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java
@@ -0,0 +1,72 @@
+package com.ycl.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.time.LocalDateTime;
+
+import com.ycl.system.domain.base.AbsEntity;
+import lombok.Data;
+
+/**
+ * 椤圭洰瀹℃牳璁板綍琛�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@TableName("t_project_plan_examine_record")
+public class ProjectPlanExamineRecord extends AbsEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableField("project_plan_record_id")
+ /** 椤圭洰璁″垝璁板綍id */
+ private Long projectPlanRecordId;
+
+ @TableField("department_user_id")
+ /** 涓婄骇閮ㄩ棬瀹℃牳浜� */
+ private Long departmentUserId;
+
+ @TableField("manager_user_id")
+ /** 涓荤閮ㄩ棬瀹℃牳浜� */
+ private Long managerUserId;
+
+ @TableField("department_examine")
+ /** 涓婄骇瀹℃牳(鍚屾剰锛�0锛岄┏鍥烇細1) */
+ private Integer departmentExamine;
+
+ @TableField("department_approval")
+ /** 涓婄骇鎵瑰 */
+ private String departmentApproval;
+
+ @TableField("department_approval_reply")
+ /** 涓婄骇鎵瑰鍥炲 */
+ private String departmentApprovalReply;
+
+ @TableField("manage_examine")
+ /** 涓荤閮ㄩ棬瀹℃牳(鍚屾剰锛�0锛岄┏鍥烇細1) */
+ private Integer manageExamine;
+
+ @TableField("manage_approval")
+ /** 涓荤閮ㄩ棬鎵瑰 */
+ private String manageApproval;
+
+ @TableField("manage_approval_reply")
+ /** 涓荤閮ㄩ棬鎵瑰鍥炲 */
+ private String manageApprovalReply;
+
+ @TableField("event_type")
+ /** 璁″垝涓婃姤/寤舵湡/杩涘害涓婃姤锛�0/1/2锛� */
+ private Integer eventType;
+
+ @TableField("delay_start_time")
+ /** 寤舵湡寮�濮嬫椂闂� */
+ private LocalDateTime delayStartTime;
+
+ @TableField("delay_end_time")
+ /** 寤舵湡缁撴潫鏃堕棿 */
+ private LocalDateTime delayEndTime;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java b/business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java
new file mode 100644
index 0000000..421f60b
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java
@@ -0,0 +1,43 @@
+package com.ycl.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ycl.system.domain.base.AbsEntity;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 椤圭洰璁″垝椤�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@TableName("t_project_plan_info")
+public class ProjectPlanInfo extends AbsEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableField("project_plan_record_id")
+ /** 椤圭洰璁″垝璁板綍id */
+ private Long projectPlanRecordId;
+
+ @TableField("title")
+ /** 浜嬮」鍚嶇О */
+ private String title;
+
+ @TableField("progress_status")
+ /** 鐘舵��(0锛氭湭瀹屾垚锛�1锛氬緟瀹℃牳锛�2锛氬凡椹冲洖锛�3锛氬凡瀹屾垚) */
+ private Integer progressStatus;
+
+ @TableField("start_time")
+ /** 璁″垝寮�濮嬫椂闂� */
+ private LocalDateTime startTime;
+
+ @TableField("end_time")
+ /** 璁″垝瀹屾垚鏃堕棿 */
+ private LocalDateTime endTime;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectPlanProgressReport.java b/business/src/main/java/com/ycl/domain/entity/ProjectPlanProgressReport.java
new file mode 100644
index 0000000..7e51dcb
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectPlanProgressReport.java
@@ -0,0 +1,44 @@
+package com.ycl.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ycl.system.domain.base.AbsEntity;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 杩涘害涓婃姤鍐呭
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@TableName("t_project_plan_progress_report")
+public class ProjectPlanProgressReport extends AbsEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableField("project_plan_info_id")
+ /** 椤圭洰璁″垝椤筰d */
+ private Long projectPlanInfoId;
+
+ @TableField("start_time")
+ /** 瀹為檯寮�濮嬫椂闂� */
+ private LocalDateTime startTime;
+
+ @TableField("end_time")
+ /** 瀹為檯瀹屾垚鏃堕棿 */
+ private LocalDateTime endTime;
+
+ @TableField("progress_status")
+ /** 杩涘害鎯呭喌 */
+ private String progressStatus;
+
+ @TableField("actual_invest")
+ /** 褰撳墠瀹為檯鎶曡祫 */
+ private BigDecimal actualInvest;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java b/business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java
new file mode 100644
index 0000000..379ec2d
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java
@@ -0,0 +1,51 @@
+package com.ycl.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ycl.system.domain.base.AbsEntity;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 椤圭洰璁″垝璁板綍
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@TableName("t_project_plan_record")
+public class ProjectPlanRecord extends AbsEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableField("project_info_id")
+ /** 椤圭洰淇℃伅id */
+ private Long projectInfoId;
+
+ @TableField("plan_id")
+ /** 椤圭洰璁″垝id */
+ private Long planId;
+
+ @TableField("engineering_info_id")
+ /** 宸ョ▼id */
+ private Long engineeringInfoId;
+
+ @TableField("plan_time")
+ /** 璁″垝鏈� */
+ private Integer planTime;
+
+ @TableField("plan_time_flag")
+ /** 鏈堝害/瀛e害/骞村害 0/1/2 */
+ private Integer planTimeFlag;
+
+ @TableField("report_status")
+ /** 涓婃姤鐘舵�� 宸蹭笂鎶�/鏈笂鎶� 0/1 */
+ private Integer reportStatus;
+
+ @TableField("actual_invest")
+ /** 鎶曡祫 */
+ private BigDecimal actualInvest;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectUnitRegistrationInfo.java b/business/src/main/java/com/ycl/domain/entity/ProjectUnitRegistrationInfo.java
new file mode 100644
index 0000000..7785a52
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectUnitRegistrationInfo.java
@@ -0,0 +1,120 @@
+package com.ycl.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ycl.system.domain.base.AbsEntity;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@TableName("t_project_unit_registration_info")
+public class ProjectUnitRegistrationInfo extends AbsEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableField("project_id")
+ /** 椤圭洰id */
+ private Long projectId;
+
+ @TableField("total_investment")
+ /** 椤圭洰鎬绘姇璧勯 */
+ private BigDecimal totalInvestment;
+
+ @TableField("project_unit")
+ /** 椤圭洰鍗曚綅 */
+ private String projectUnit;
+
+ @TableField("project_unit_type")
+ /** 椤圭洰鍗曚綅绫诲瀷 */
+ private String projectUnitType;
+
+ @TableField("registration_type")
+ /** 鐧昏娉ㄥ唽绫诲瀷 */
+ private String registrationType;
+
+ @TableField("holding_situation")
+ /** 鎺ц偂鎯呭喌 */
+ private String holdingSituation;
+
+ @TableField("certificate_type")
+ /** 璇佺収绫诲瀷 */
+ private String certificateType;
+
+ @TableField("certificate_number")
+ /** 璇佺収鍙风爜 */
+ private String certificateNumber;
+
+ @TableField("registered_address")
+ /** 娉ㄥ唽鍦板潃 */
+ private String registeredAddress;
+
+ @TableField("registered_capital")
+ /** 娉ㄥ唽璧勯噾 */
+ private BigDecimal registeredCapital;
+
+ @TableField("legal_representative")
+ /** 娉曚汉浠h〃 */
+ private String legalRepresentative;
+
+ @TableField("fixed_phone")
+ /** 鍥哄畾鐢佃瘽 */
+ private String fixedPhone;
+
+ @TableField("legal_person_idcard")
+ /** 娉曚汉韬唤璇� */
+ private String legalPersonIdcard;
+
+ @TableField("project_contact_person")
+ /** 椤圭洰鑱旂郴浜� */
+ private String projectContactPerson;
+
+ @TableField("phone")
+ /** 绉诲姩鐢佃瘽 */
+ private String phone;
+
+ @TableField("contact_idcard")
+ /** 鑱旂郴浜鸿韩浠借瘉 */
+ private String contactIdcard;
+
+ @TableField("wechat")
+ /** 寰俊鍙� */
+ private String wechat;
+
+ @TableField("contact_address")
+ /** 鑱旂郴浜洪�氳鍦板潃 */
+ private String contactAddress;
+
+ @TableField("post_code")
+ /** 閭斂缂栫爜 */
+ private String postCode;
+
+ @TableField("email")
+ /** 鐢靛瓙閭 */
+ private String email;
+
+ @TableField("create_by")
+ /** 鍒涘缓浜� */
+ private Long createBy;
+
+ @TableField("update_by")
+ /** 鏇存柊浜� */
+ private Long updateBy;
+
+ @TableField("gmt_create_time")
+ /** 鍒涘缓鏃堕棿 */
+ private LocalDateTime gmtCreateTime;
+
+ @TableField("gmt_update_time")
+ /** 鏇存柊鏃堕棿 */
+ private LocalDateTime gmtUpdateTime;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/PlanForm.java b/business/src/main/java/com/ycl/domain/form/PlanForm.java
new file mode 100644
index 0000000..1c79ee4
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/PlanForm.java
@@ -0,0 +1,63 @@
+package com.ycl.domain.form;
+
+
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.entity.Plan;
+import com.ycl.system.domain.base.AbsForm;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 椤圭洰璁″垝琛ㄨ〃鍗�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "Plan琛ㄥ崟", description = "椤圭洰璁″垝琛ㄨ〃鍗�")
+public class PlanForm extends AbsForm {
+
+ @NotNull(message = "椤圭洰璇︽儏琛╥d涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰璇︽儏琛╥d")
+ private Long projectInfoId;
+
+ @NotNull(message = "涓婃姤鐘舵�侊紙0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛変笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("涓婃姤鐘舵�侊紙0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer reportStatus;
+
+ @NotNull(message = "鏈堝害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛変笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("鏈堝害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer monthStatus;
+
+ @NotNull(message = "瀛e害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛変笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("瀛e害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer seasonStatus;
+
+ @NotNull(message = "骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛変笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer yearStatus;
+
+ @NotNull(message = "鍒涘缓鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Date gmtCreateTime;
+
+ @NotNull(message = "淇敼鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("淇敼鏃堕棿")
+ private Date gmtUpdateTime;
+
+ public static Plan getEntityByForm(@NonNull PlanForm form, Plan entity) {
+ if(entity == null) {
+ entity = new Plan();
+ }
+ BeanUtils.copyProperties(form, entity);
+ return entity;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/ProgressPlanForm.java b/business/src/main/java/com/ycl/domain/form/ProgressPlanForm.java
new file mode 100644
index 0000000..c8b9e1b
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/ProgressPlanForm.java
@@ -0,0 +1,63 @@
+package com.ycl.domain.form;
+
+
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.entity.ProgressPlan;
+import com.ycl.system.domain.base.AbsForm;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 椤圭洰璁″垝杩涘害琛ㄥ崟
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProgressPlan琛ㄥ崟", description = "椤圭洰璁″垝杩涘害琛ㄥ崟")
+public class ProgressPlanForm extends AbsForm {
+
+ @NotNull(message = "椤圭洰淇℃伅琛╥d涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰淇℃伅琛╥d")
+ private Long projectInfoId;
+
+ @NotNull(message = "涓婃姤鐘舵�侊紙0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛変笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("涓婃姤鐘舵�侊紙0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer reportStatus;
+
+ @NotNull(message = "鏈堝害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛変笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("鏈堝害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer monthStatus;
+
+ @NotNull(message = "瀛e害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛変笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("瀛e害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer seasonStatus;
+
+ @NotNull(message = "骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛変笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer yearStatus;
+
+ @NotNull(message = "鍒涘缓鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Date gmtCreateTime;
+
+ @NotNull(message = "淇敼鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("淇敼鏃堕棿")
+ private Date gmtUpdateTime;
+
+ public static ProgressPlan getEntityByForm(@NonNull ProgressPlanForm form, ProgressPlan entity) {
+ if(entity == null) {
+ entity = new ProgressPlan();
+ }
+ BeanUtils.copyProperties(form, entity);
+ return entity;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/ProjectPlanExamineRecordForm.java b/business/src/main/java/com/ycl/domain/form/ProjectPlanExamineRecordForm.java
new file mode 100644
index 0000000..f792303
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/ProjectPlanExamineRecordForm.java
@@ -0,0 +1,84 @@
+package com.ycl.domain.form;
+
+
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.entity.ProjectPlanExamineRecord;
+import com.ycl.system.domain.base.AbsForm;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 椤圭洰瀹℃牳璁板綍琛ㄨ〃鍗�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProjectPlanExamineRecord琛ㄥ崟", description = "椤圭洰瀹℃牳璁板綍琛ㄨ〃鍗�")
+public class ProjectPlanExamineRecordForm extends AbsForm {
+
+ @NotNull(message = "椤圭洰璁″垝璁板綍id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰璁″垝璁板綍id")
+ private Long projectPlanRecordId;
+
+ @NotNull(message = "涓婄骇閮ㄩ棬瀹℃牳浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("涓婄骇閮ㄩ棬瀹℃牳浜�")
+ private Long departmentUserId;
+
+ @NotNull(message = "涓荤閮ㄩ棬瀹℃牳浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("涓荤閮ㄩ棬瀹℃牳浜�")
+ private Long managerUserId;
+
+ @NotNull(message = "涓婄骇瀹℃牳(鍚屾剰锛�0锛岄┏鍥烇細1)涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("涓婄骇瀹℃牳(鍚屾剰锛�0锛岄┏鍥烇細1)")
+ private Integer departmentExamine;
+
+ @NotBlank(message = "涓婄骇鎵瑰涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("涓婄骇鎵瑰")
+ private String departmentApproval;
+
+ @NotBlank(message = "涓婄骇鎵瑰鍥炲涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("涓婄骇鎵瑰鍥炲")
+ private String departmentApprovalReply;
+
+ @NotNull(message = "涓荤閮ㄩ棬瀹℃牳(鍚屾剰锛�0锛岄┏鍥烇細1)涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("涓荤閮ㄩ棬瀹℃牳(鍚屾剰锛�0锛岄┏鍥烇細1)")
+ private Integer manageExamine;
+
+ @NotBlank(message = "涓荤閮ㄩ棬鎵瑰涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("涓荤閮ㄩ棬鎵瑰")
+ private String manageApproval;
+
+ @NotBlank(message = "涓荤閮ㄩ棬鎵瑰鍥炲涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("涓荤閮ㄩ棬鎵瑰鍥炲")
+ private String manageApprovalReply;
+
+ @NotNull(message = "璁″垝涓婃姤/寤舵湡/杩涘害涓婃姤锛�0/1/2锛変笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("璁″垝涓婃姤/寤舵湡/杩涘害涓婃姤锛�0/1/2锛�")
+ private Integer eventType;
+
+ @NotNull(message = "寤舵湡寮�濮嬫椂闂翠笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("寤舵湡寮�濮嬫椂闂�")
+ private Date delayStartTime;
+
+ @NotNull(message = "寤舵湡缁撴潫鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("寤舵湡缁撴潫鏃堕棿")
+ private Date delayEndTime;
+
+ public static ProjectPlanExamineRecord getEntityByForm(@NonNull ProjectPlanExamineRecordForm form, ProjectPlanExamineRecord entity) {
+ if(entity == null) {
+ entity = new ProjectPlanExamineRecord();
+ }
+ BeanUtils.copyProperties(form, entity);
+ return entity;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/ProjectPlanInfoForm.java b/business/src/main/java/com/ycl/domain/form/ProjectPlanInfoForm.java
new file mode 100644
index 0000000..34d7de3
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/ProjectPlanInfoForm.java
@@ -0,0 +1,56 @@
+package com.ycl.domain.form;
+
+
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.entity.ProjectPlanInfo;
+import com.ycl.system.domain.base.AbsForm;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 椤圭洰璁″垝椤硅〃鍗�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProjectPlanInfo琛ㄥ崟", description = "椤圭洰璁″垝椤硅〃鍗�")
+public class ProjectPlanInfoForm extends AbsForm {
+
+ @NotNull(message = "椤圭洰璁″垝璁板綍id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰璁″垝璁板綍id")
+ private Long projectPlanRecordId;
+
+ @NotBlank(message = "浜嬮」鍚嶇О涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("浜嬮」鍚嶇О")
+ private String title;
+
+ @NotNull(message = "鐘舵��(0锛氭湭瀹屾垚锛�1锛氬緟瀹℃牳锛�2锛氬凡椹冲洖锛�3锛氬凡瀹屾垚)涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鐘舵��(0锛氭湭瀹屾垚锛�1锛氬緟瀹℃牳锛�2锛氬凡椹冲洖锛�3锛氬凡瀹屾垚)")
+ private Integer progressStatus;
+
+ @NotNull(message = "璁″垝寮�濮嬫椂闂翠笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("璁″垝寮�濮嬫椂闂�")
+ private Date startTime;
+
+ @NotNull(message = "璁″垝瀹屾垚鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("璁″垝瀹屾垚鏃堕棿")
+ private Date endTime;
+
+ public static ProjectPlanInfo getEntityByForm(@NonNull ProjectPlanInfoForm form, ProjectPlanInfo entity) {
+ if(entity == null) {
+ entity = new ProjectPlanInfo();
+ }
+ BeanUtils.copyProperties(form, entity);
+ return entity;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/ProjectPlanProgressReportForm.java b/business/src/main/java/com/ycl/domain/form/ProjectPlanProgressReportForm.java
new file mode 100644
index 0000000..f343b62
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/ProjectPlanProgressReportForm.java
@@ -0,0 +1,57 @@
+package com.ycl.domain.form;
+
+
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.entity.ProjectPlanProgressReport;
+import com.ycl.system.domain.base.AbsForm;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 杩涘害涓婃姤鍐呭琛ㄥ崟
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProjectPlanProgressReport琛ㄥ崟", description = "杩涘害涓婃姤鍐呭琛ㄥ崟")
+public class ProjectPlanProgressReportForm extends AbsForm {
+
+ @NotNull(message = "椤圭洰璁″垝椤筰d涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰璁″垝椤筰d")
+ private Long projectPlanInfoId;
+
+ @NotNull(message = "瀹為檯寮�濮嬫椂闂翠笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("瀹為檯寮�濮嬫椂闂�")
+ private Date startTime;
+
+ @NotNull(message = "瀹為檯瀹屾垚鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("瀹為檯瀹屾垚鏃堕棿")
+ private Date endTime;
+
+ @NotBlank(message = "杩涘害鎯呭喌涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("杩涘害鎯呭喌")
+ private String progressStatus;
+
+ @NotNull(message = "褰撳墠瀹為檯鎶曡祫涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("褰撳墠瀹為檯鎶曡祫")
+ private BigDecimal actualInvest;
+
+ public static ProjectPlanProgressReport getEntityByForm(@NonNull ProjectPlanProgressReportForm form, ProjectPlanProgressReport entity) {
+ if(entity == null) {
+ entity = new ProjectPlanProgressReport();
+ }
+ BeanUtils.copyProperties(form, entity);
+ return entity;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/ProjectPlanRecordForm.java b/business/src/main/java/com/ycl/domain/form/ProjectPlanRecordForm.java
new file mode 100644
index 0000000..38a1086
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/ProjectPlanRecordForm.java
@@ -0,0 +1,68 @@
+package com.ycl.domain.form;
+
+
+import com.ycl.common.group.Add;
+import com.ycl.common.group.Update;
+import com.ycl.domain.entity.ProjectPlanRecord;
+import com.ycl.system.domain.base.AbsForm;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 椤圭洰璁″垝璁板綍琛ㄥ崟
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProjectPlanRecord琛ㄥ崟", description = "椤圭洰璁″垝璁板綍琛ㄥ崟")
+public class ProjectPlanRecordForm extends AbsForm {
+
+ @NotNull(message = "椤圭洰淇℃伅id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰淇℃伅id")
+ private Long projectInfoId;
+
+ @NotNull(message = "椤圭洰璁″垝id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰璁″垝id")
+ private Long planId;
+
+ @NotNull(message = "宸ョ▼id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("宸ョ▼id")
+ private Long engineeringInfoId;
+
+ @NotNull(message = "璁″垝鏈熶笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("璁″垝鏈�")
+ private Integer planTime;
+
+ @NotNull(message = "鏈堝害/瀛e害/骞村害 0/1/2涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鏈堝害/瀛e害/骞村害 0/1/2")
+ private Integer planTimeFlag;
+
+ @NotNull(message = "鍒涘缓鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Date createTime;
+
+ @NotNull(message = "涓婃姤鐘舵�� 宸蹭笂鎶�/鏈笂鎶� 0/1涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("涓婃姤鐘舵�� 宸蹭笂鎶�/鏈笂鎶� 0/1")
+ private Integer reportStatus;
+
+ @NotNull(message = "鎶曡祫涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鎶曡祫")
+ private BigDecimal actualInvest;
+
+ public static ProjectPlanRecord getEntityByForm(@NonNull ProjectPlanRecordForm form, ProjectPlanRecord entity) {
+ if(entity == null) {
+ entity = new ProjectPlanRecord();
+ }
+ BeanUtils.copyProperties(form, entity);
+ return entity;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/form/ProjectUnitRegistrationInfoForm.java b/business/src/main/java/com/ycl/domain/form/ProjectUnitRegistrationInfoForm.java
new file mode 100644
index 0000000..d3fe887
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/form/ProjectUnitRegistrationInfoForm.java
@@ -0,0 +1,132 @@
+package com.ycl.domain.form;
+
+import com.ycl.common.group.Update;
+import com.ycl.common.group.Add;
+import com.ycl.system.domain.base.AbsForm;
+import com.ycl.domain.entity.ProjectUnitRegistrationInfo;
+import org.springframework.beans.BeanUtils;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import org.springframework.lang.NonNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛ㄨ〃鍗�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProjectUnitRegistrationInfo琛ㄥ崟", description = "椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛ㄨ〃鍗�")
+public class ProjectUnitRegistrationInfoForm extends AbsForm {
+
+ @NotNull(message = "椤圭洰id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰id")
+ private Long projectId;
+
+ @NotNull(message = "椤圭洰鎬绘姇璧勯涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰鎬绘姇璧勯")
+ private BigDecimal totalInvestment;
+
+ @NotBlank(message = "椤圭洰鍗曚綅涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰鍗曚綅")
+ private String projectUnit;
+
+ @NotBlank(message = "椤圭洰鍗曚綅绫诲瀷涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰鍗曚綅绫诲瀷")
+ private String projectUnitType;
+
+ @NotBlank(message = "鐧昏娉ㄥ唽绫诲瀷涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鐧昏娉ㄥ唽绫诲瀷")
+ private String registrationType;
+
+ @NotBlank(message = "鎺ц偂鎯呭喌涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鎺ц偂鎯呭喌")
+ private String holdingSituation;
+
+ @NotBlank(message = "璇佺収绫诲瀷涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("璇佺収绫诲瀷")
+ private String certificateType;
+
+ @NotBlank(message = "璇佺収鍙风爜涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("璇佺収鍙风爜")
+ private String certificateNumber;
+
+ @NotBlank(message = "娉ㄥ唽鍦板潃涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("娉ㄥ唽鍦板潃")
+ private String registeredAddress;
+
+ @NotNull(message = "娉ㄥ唽璧勯噾涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("娉ㄥ唽璧勯噾")
+ private BigDecimal registeredCapital;
+
+ @NotBlank(message = "娉曚汉浠h〃涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("娉曚汉浠h〃")
+ private String legalRepresentative;
+
+ @NotBlank(message = "鍥哄畾鐢佃瘽涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鍥哄畾鐢佃瘽")
+ private String fixedPhone;
+
+ @NotBlank(message = "娉曚汉韬唤璇佷笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("娉曚汉韬唤璇�")
+ private String legalPersonIdcard;
+
+ @NotBlank(message = "椤圭洰鑱旂郴浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("椤圭洰鑱旂郴浜�")
+ private String projectContactPerson;
+
+ @NotBlank(message = "绉诲姩鐢佃瘽涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("绉诲姩鐢佃瘽")
+ private String phone;
+
+ @NotBlank(message = "鑱旂郴浜鸿韩浠借瘉涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鑱旂郴浜鸿韩浠借瘉")
+ private String contactIdcard;
+
+ @NotBlank(message = "寰俊鍙蜂笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("寰俊鍙�")
+ private String wechat;
+
+ @NotBlank(message = "鑱旂郴浜洪�氳鍦板潃涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鑱旂郴浜洪�氳鍦板潃")
+ private String contactAddress;
+
+ @NotBlank(message = "閭斂缂栫爜涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("閭斂缂栫爜")
+ private String postCode;
+
+ @NotBlank(message = "鐢靛瓙閭涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鐢靛瓙閭")
+ private String email;
+
+ @NotNull(message = "鍒涘缓浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("鍒涘缓浜�")
+ private Long createBy;
+
+ @NotNull(message = "鏇存柊浜轰笉鑳戒负绌�", groups = {Add.class, Update.class})
+ @ApiModelProperty("鏇存柊浜�")
+ private Long updateBy;
+
+ @NotNull(message = "鍒涘缓鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Date gmtCreateTime;
+
+ @NotNull(message = "鏇存柊鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ private Date gmtUpdateTime;
+
+ public static ProjectUnitRegistrationInfo getEntityByForm(@NonNull ProjectUnitRegistrationInfoForm form, ProjectUnitRegistrationInfo entity) {
+ if(entity == null) {
+ entity = new ProjectUnitRegistrationInfo();
+ }
+ BeanUtils.copyProperties(form, entity);
+ return entity;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/query/PlanQuery.java b/business/src/main/java/com/ycl/domain/query/PlanQuery.java
new file mode 100644
index 0000000..b75fc38
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/query/PlanQuery.java
@@ -0,0 +1,17 @@
+package com.ycl.domain.query;
+
+import com.ycl.system.domain.base.AbsQuery;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 椤圭洰璁″垝琛ㄦ煡璇�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "Plan鏌ヨ鍙傛暟", description = "椤圭洰璁″垝琛ㄦ煡璇㈠弬鏁�")
+public class PlanQuery extends AbsQuery {
+}
+
diff --git a/business/src/main/java/com/ycl/domain/query/ProgressPlanQuery.java b/business/src/main/java/com/ycl/domain/query/ProgressPlanQuery.java
new file mode 100644
index 0000000..5ed84c9
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/query/ProgressPlanQuery.java
@@ -0,0 +1,18 @@
+package com.ycl.domain.query;
+
+
+import com.ycl.system.domain.base.AbsQuery;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 椤圭洰璁″垝杩涘害鏌ヨ
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProgressPlan鏌ヨ鍙傛暟", description = "椤圭洰璁″垝杩涘害鏌ヨ鍙傛暟")
+public class ProgressPlanQuery extends AbsQuery {
+}
+
diff --git a/business/src/main/java/com/ycl/domain/query/ProjectPlanExamineRecordQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectPlanExamineRecordQuery.java
new file mode 100644
index 0000000..6b56c46
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/query/ProjectPlanExamineRecordQuery.java
@@ -0,0 +1,18 @@
+package com.ycl.domain.query;
+
+
+import com.ycl.system.domain.base.AbsQuery;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 椤圭洰瀹℃牳璁板綍琛ㄦ煡璇�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProjectPlanExamineRecord鏌ヨ鍙傛暟", description = "椤圭洰瀹℃牳璁板綍琛ㄦ煡璇㈠弬鏁�")
+public class ProjectPlanExamineRecordQuery extends AbsQuery {
+}
+
diff --git a/business/src/main/java/com/ycl/domain/query/ProjectPlanInfoQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectPlanInfoQuery.java
new file mode 100644
index 0000000..8010810
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/query/ProjectPlanInfoQuery.java
@@ -0,0 +1,18 @@
+package com.ycl.domain.query;
+
+
+import com.ycl.system.domain.base.AbsQuery;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 椤圭洰璁″垝椤规煡璇�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProjectPlanInfo鏌ヨ鍙傛暟", description = "椤圭洰璁″垝椤规煡璇㈠弬鏁�")
+public class ProjectPlanInfoQuery extends AbsQuery {
+}
+
diff --git a/business/src/main/java/com/ycl/domain/query/ProjectPlanProgressReportQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectPlanProgressReportQuery.java
new file mode 100644
index 0000000..d608dd3
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/query/ProjectPlanProgressReportQuery.java
@@ -0,0 +1,17 @@
+package com.ycl.domain.query;
+
+import com.ycl.system.domain.base.AbsQuery;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 杩涘害涓婃姤鍐呭鏌ヨ
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProjectPlanProgressReport鏌ヨ鍙傛暟", description = "杩涘害涓婃姤鍐呭鏌ヨ鍙傛暟")
+public class ProjectPlanProgressReportQuery extends AbsQuery {
+}
+
diff --git a/business/src/main/java/com/ycl/domain/query/ProjectPlanRecordQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectPlanRecordQuery.java
new file mode 100644
index 0000000..d80b6df
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/query/ProjectPlanRecordQuery.java
@@ -0,0 +1,18 @@
+package com.ycl.domain.query;
+
+
+import com.ycl.system.domain.base.AbsQuery;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 椤圭洰璁″垝璁板綍鏌ヨ
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProjectPlanRecord鏌ヨ鍙傛暟", description = "椤圭洰璁″垝璁板綍鏌ヨ鍙傛暟")
+public class ProjectPlanRecordQuery extends AbsQuery {
+}
+
diff --git a/business/src/main/java/com/ycl/domain/query/ProjectUnitRegistrationInfoQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectUnitRegistrationInfoQuery.java
new file mode 100644
index 0000000..dc544eb
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/query/ProjectUnitRegistrationInfoQuery.java
@@ -0,0 +1,22 @@
+package com.ycl.domain.query;
+
+import com.ycl.system.domain.base.AbsQuery;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛ㄦ煡璇�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "ProjectUnitRegistrationInfo鏌ヨ鍙傛暟", description = "椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛ㄦ煡璇㈠弬鏁�")
+public class ProjectUnitRegistrationInfoQuery extends AbsQuery {
+}
+
diff --git a/business/src/main/java/com/ycl/domain/vo/PlanVO.java b/business/src/main/java/com/ycl/domain/vo/PlanVO.java
new file mode 100644
index 0000000..38bd9b6
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/PlanVO.java
@@ -0,0 +1,61 @@
+package com.ycl.domain.vo;
+
+
+import com.ycl.domain.entity.Plan;
+import java.util.List;
+
+import com.ycl.system.domain.base.AbsVo;
+import org.springframework.lang.NonNull;
+import org.springframework.beans.BeanUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * 椤圭洰璁″垝琛ㄥ睍绀�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "椤圭洰璁″垝琛ㄥ搷搴旀暟鎹�", description = "椤圭洰璁″垝琛ㄥ搷搴旀暟鎹�")
+public class PlanVO extends AbsVo {
+
+ /** 椤圭洰璇︽儏琛╥d */
+ @ApiModelProperty("椤圭洰璇︽儏琛╥d")
+ private Long projectInfoId;
+
+ /** 涓婃姤鐘舵�侊紙0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ @ApiModelProperty("涓婃姤鐘舵�侊紙0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer reportStatus;
+
+ /** 鏈堝害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ @ApiModelProperty("鏈堝害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer monthStatus;
+
+ /** 瀛e害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ @ApiModelProperty("瀛e害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer seasonStatus;
+
+ /** 骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ @ApiModelProperty("骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer yearStatus;
+
+ /** 鍒涘缓鏃堕棿 */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Date gmtCreateTime;
+
+ /** 淇敼鏃堕棿 */
+ @ApiModelProperty("淇敼鏃堕棿")
+ private Date gmtUpdateTime;
+
+ public static PlanVO getVoByEntity(@NonNull Plan entity, PlanVO vo) {
+ if(vo == null) {
+ vo = new PlanVO();
+ }
+ BeanUtils.copyProperties(entity, vo);
+ return vo;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/ProgressPlanVO.java b/business/src/main/java/com/ycl/domain/vo/ProgressPlanVO.java
new file mode 100644
index 0000000..daa1dac
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProgressPlanVO.java
@@ -0,0 +1,60 @@
+package com.ycl.domain.vo;
+
+
+import com.ycl.domain.entity.ProgressPlan;
+import com.ycl.system.domain.base.AbsVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import java.util.Date;
+
+/**
+ * 椤圭洰璁″垝杩涘害灞曠ず
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "椤圭洰璁″垝杩涘害鍝嶅簲鏁版嵁", description = "椤圭洰璁″垝杩涘害鍝嶅簲鏁版嵁")
+public class ProgressPlanVO extends AbsVo {
+
+ /** 椤圭洰淇℃伅琛╥d */
+ @ApiModelProperty("椤圭洰淇℃伅琛╥d")
+ private Long projectInfoId;
+
+ /** 涓婃姤鐘舵�侊紙0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ @ApiModelProperty("涓婃姤鐘舵�侊紙0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer reportStatus;
+
+ /** 鏈堝害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ @ApiModelProperty("鏈堝害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer monthStatus;
+
+ /** 瀛e害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ @ApiModelProperty("瀛e害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer seasonStatus;
+
+ /** 骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛� */
+ @ApiModelProperty("骞村害锛�0锛氬凡涓婃姤锛�1锛氭湭涓婃姤锛�")
+ private Integer yearStatus;
+
+ /** 鍒涘缓鏃堕棿 */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Date gmtCreateTime;
+
+ /** 淇敼鏃堕棿 */
+ @ApiModelProperty("淇敼鏃堕棿")
+ private Date gmtUpdateTime;
+
+ public static ProgressPlanVO getVoByEntity(@NonNull ProgressPlan entity, ProgressPlanVO vo) {
+ if(vo == null) {
+ vo = new ProgressPlanVO();
+ }
+ BeanUtils.copyProperties(entity, vo);
+ return vo;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectPlanExamineRecordVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectPlanExamineRecordVO.java
new file mode 100644
index 0000000..f8eab36
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectPlanExamineRecordVO.java
@@ -0,0 +1,80 @@
+package com.ycl.domain.vo;
+
+
+import com.ycl.domain.entity.ProjectPlanExamineRecord;
+import com.ycl.system.domain.base.AbsVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import java.util.Date;
+
+/**
+ * 椤圭洰瀹℃牳璁板綍琛ㄥ睍绀�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "椤圭洰瀹℃牳璁板綍琛ㄥ搷搴旀暟鎹�", description = "椤圭洰瀹℃牳璁板綍琛ㄥ搷搴旀暟鎹�")
+public class ProjectPlanExamineRecordVO extends AbsVo {
+
+ /** 椤圭洰璁″垝璁板綍id */
+ @ApiModelProperty("椤圭洰璁″垝璁板綍id")
+ private Long projectPlanRecordId;
+
+ /** 涓婄骇閮ㄩ棬瀹℃牳浜� */
+ @ApiModelProperty("涓婄骇閮ㄩ棬瀹℃牳浜�")
+ private Long departmentUserId;
+
+ /** 涓荤閮ㄩ棬瀹℃牳浜� */
+ @ApiModelProperty("涓荤閮ㄩ棬瀹℃牳浜�")
+ private Long managerUserId;
+
+ /** 涓婄骇瀹℃牳(鍚屾剰锛�0锛岄┏鍥烇細1) */
+ @ApiModelProperty("涓婄骇瀹℃牳(鍚屾剰锛�0锛岄┏鍥烇細1)")
+ private Integer departmentExamine;
+
+ /** 涓婄骇鎵瑰 */
+ @ApiModelProperty("涓婄骇鎵瑰")
+ private String departmentApproval;
+
+ /** 涓婄骇鎵瑰鍥炲 */
+ @ApiModelProperty("涓婄骇鎵瑰鍥炲")
+ private String departmentApprovalReply;
+
+ /** 涓荤閮ㄩ棬瀹℃牳(鍚屾剰锛�0锛岄┏鍥烇細1) */
+ @ApiModelProperty("涓荤閮ㄩ棬瀹℃牳(鍚屾剰锛�0锛岄┏鍥烇細1)")
+ private Integer manageExamine;
+
+ /** 涓荤閮ㄩ棬鎵瑰 */
+ @ApiModelProperty("涓荤閮ㄩ棬鎵瑰")
+ private String manageApproval;
+
+ /** 涓荤閮ㄩ棬鎵瑰鍥炲 */
+ @ApiModelProperty("涓荤閮ㄩ棬鎵瑰鍥炲")
+ private String manageApprovalReply;
+
+ /** 璁″垝涓婃姤/寤舵湡/杩涘害涓婃姤锛�0/1/2锛� */
+ @ApiModelProperty("璁″垝涓婃姤/寤舵湡/杩涘害涓婃姤锛�0/1/2锛�")
+ private Integer eventType;
+
+ /** 寤舵湡寮�濮嬫椂闂� */
+ @ApiModelProperty("寤舵湡寮�濮嬫椂闂�")
+ private Date delayStartTime;
+
+ /** 寤舵湡缁撴潫鏃堕棿 */
+ @ApiModelProperty("寤舵湡缁撴潫鏃堕棿")
+ private Date delayEndTime;
+
+ public static ProjectPlanExamineRecordVO getVoByEntity(@NonNull ProjectPlanExamineRecord entity, ProjectPlanExamineRecordVO vo) {
+ if(vo == null) {
+ vo = new ProjectPlanExamineRecordVO();
+ }
+ BeanUtils.copyProperties(entity, vo);
+ return vo;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectPlanInfoVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectPlanInfoVO.java
new file mode 100644
index 0000000..6343fd5
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectPlanInfoVO.java
@@ -0,0 +1,52 @@
+package com.ycl.domain.vo;
+
+
+import com.ycl.domain.entity.ProjectPlanInfo;
+import com.ycl.system.domain.base.AbsVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import java.util.Date;
+
+/**
+ * 椤圭洰璁″垝椤瑰睍绀�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "椤圭洰璁″垝椤瑰搷搴旀暟鎹�", description = "椤圭洰璁″垝椤瑰搷搴旀暟鎹�")
+public class ProjectPlanInfoVO extends AbsVo {
+
+ /** 椤圭洰璁″垝璁板綍id */
+ @ApiModelProperty("椤圭洰璁″垝璁板綍id")
+ private Long projectPlanRecordId;
+
+ /** 浜嬮」鍚嶇О */
+ @ApiModelProperty("浜嬮」鍚嶇О")
+ private String title;
+
+ /** 鐘舵��(0锛氭湭瀹屾垚锛�1锛氬緟瀹℃牳锛�2锛氬凡椹冲洖锛�3锛氬凡瀹屾垚) */
+ @ApiModelProperty("鐘舵��(0锛氭湭瀹屾垚锛�1锛氬緟瀹℃牳锛�2锛氬凡椹冲洖锛�3锛氬凡瀹屾垚)")
+ private Integer progressStatus;
+
+ /** 璁″垝寮�濮嬫椂闂� */
+ @ApiModelProperty("璁″垝寮�濮嬫椂闂�")
+ private Date startTime;
+
+ /** 璁″垝瀹屾垚鏃堕棿 */
+ @ApiModelProperty("璁″垝瀹屾垚鏃堕棿")
+ private Date endTime;
+
+ public static ProjectPlanInfoVO getVoByEntity(@NonNull ProjectPlanInfo entity, ProjectPlanInfoVO vo) {
+ if(vo == null) {
+ vo = new ProjectPlanInfoVO();
+ }
+ BeanUtils.copyProperties(entity, vo);
+ return vo;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectPlanProgressReportVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectPlanProgressReportVO.java
new file mode 100644
index 0000000..8b66ac8
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectPlanProgressReportVO.java
@@ -0,0 +1,53 @@
+package com.ycl.domain.vo;
+
+
+import com.ycl.domain.entity.ProjectPlanProgressReport;
+import com.ycl.system.domain.base.AbsVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 杩涘害涓婃姤鍐呭灞曠ず
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "杩涘害涓婃姤鍐呭鍝嶅簲鏁版嵁", description = "杩涘害涓婃姤鍐呭鍝嶅簲鏁版嵁")
+public class ProjectPlanProgressReportVO extends AbsVo {
+
+ /** 椤圭洰璁″垝椤筰d */
+ @ApiModelProperty("椤圭洰璁″垝椤筰d")
+ private Long projectPlanInfoId;
+
+ /** 瀹為檯寮�濮嬫椂闂� */
+ @ApiModelProperty("瀹為檯寮�濮嬫椂闂�")
+ private Date startTime;
+
+ /** 瀹為檯瀹屾垚鏃堕棿 */
+ @ApiModelProperty("瀹為檯瀹屾垚鏃堕棿")
+ private Date endTime;
+
+ /** 杩涘害鎯呭喌 */
+ @ApiModelProperty("杩涘害鎯呭喌")
+ private String progressStatus;
+
+ /** 褰撳墠瀹為檯鎶曡祫 */
+ @ApiModelProperty("褰撳墠瀹為檯鎶曡祫")
+ private BigDecimal actualInvest;
+
+ public static ProjectPlanProgressReportVO getVoByEntity(@NonNull ProjectPlanProgressReport entity, ProjectPlanProgressReportVO vo) {
+ if(vo == null) {
+ vo = new ProjectPlanProgressReportVO();
+ }
+ BeanUtils.copyProperties(entity, vo);
+ return vo;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordVO.java
new file mode 100644
index 0000000..2897350
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectPlanRecordVO.java
@@ -0,0 +1,67 @@
+package com.ycl.domain.vo;
+
+
+import com.ycl.domain.entity.ProjectPlanRecord;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.ycl.system.domain.base.AbsVo;
+import org.springframework.lang.NonNull;
+import org.springframework.beans.BeanUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * 椤圭洰璁″垝璁板綍灞曠ず
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "椤圭洰璁″垝璁板綍鍝嶅簲鏁版嵁", description = "椤圭洰璁″垝璁板綍鍝嶅簲鏁版嵁")
+public class ProjectPlanRecordVO extends AbsVo {
+
+ /** 椤圭洰淇℃伅id */
+ @ApiModelProperty("椤圭洰淇℃伅id")
+ private Long projectInfoId;
+
+ /** 椤圭洰璁″垝id */
+ @ApiModelProperty("椤圭洰璁″垝id")
+ private Long planId;
+
+ /** 宸ョ▼id */
+ @ApiModelProperty("宸ョ▼id")
+ private Long engineeringInfoId;
+
+ /** 璁″垝鏈� */
+ @ApiModelProperty("璁″垝鏈�")
+ private Integer planTime;
+
+ /** 鏈堝害/瀛e害/骞村害 0/1/2 */
+ @ApiModelProperty("鏈堝害/瀛e害/骞村害 0/1/2")
+ private Integer planTimeFlag;
+
+ /** 鍒涘缓鏃堕棿 */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Date createTime;
+
+ /** 涓婃姤鐘舵�� 宸蹭笂鎶�/鏈笂鎶� 0/1 */
+ @ApiModelProperty("涓婃姤鐘舵�� 宸蹭笂鎶�/鏈笂鎶� 0/1")
+ private Integer reportStatus;
+
+ /** 鎶曡祫 */
+ @ApiModelProperty("鎶曡祫")
+ private BigDecimal actualInvest;
+
+ public static ProjectPlanRecordVO getVoByEntity(@NonNull ProjectPlanRecord entity, ProjectPlanRecordVO vo) {
+ if(vo == null) {
+ vo = new ProjectPlanRecordVO();
+ }
+ BeanUtils.copyProperties(entity, vo);
+ return vo;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectUnitRegistrationInfoVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectUnitRegistrationInfoVO.java
new file mode 100644
index 0000000..1558401
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectUnitRegistrationInfoVO.java
@@ -0,0 +1,129 @@
+package com.ycl.domain.vo;
+
+import com.ycl.system.domain.base.AbsVo;
+import com.ycl.domain.entity.ProjectUnitRegistrationInfo;
+
+import java.math.BigDecimal;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import org.springframework.beans.BeanUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * 椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛ㄥ睍绀�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Data
+@ApiModel(value = "椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛ㄥ搷搴旀暟鎹�", description = "椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛ㄥ搷搴旀暟鎹�")
+public class ProjectUnitRegistrationInfoVO extends AbsVo {
+
+ /** 椤圭洰id */
+ @ApiModelProperty("椤圭洰id")
+ private Long projectId;
+
+ /** 椤圭洰鎬绘姇璧勯 */
+ @ApiModelProperty("椤圭洰鎬绘姇璧勯")
+ private BigDecimal totalInvestment;
+
+ /** 椤圭洰鍗曚綅 */
+ @ApiModelProperty("椤圭洰鍗曚綅")
+ private String projectUnit;
+
+ /** 椤圭洰鍗曚綅绫诲瀷 */
+ @ApiModelProperty("椤圭洰鍗曚綅绫诲瀷")
+ private String projectUnitType;
+
+ /** 鐧昏娉ㄥ唽绫诲瀷 */
+ @ApiModelProperty("鐧昏娉ㄥ唽绫诲瀷")
+ private String registrationType;
+
+ /** 鎺ц偂鎯呭喌 */
+ @ApiModelProperty("鎺ц偂鎯呭喌")
+ private String holdingSituation;
+
+ /** 璇佺収绫诲瀷 */
+ @ApiModelProperty("璇佺収绫诲瀷")
+ private String certificateType;
+
+ /** 璇佺収鍙风爜 */
+ @ApiModelProperty("璇佺収鍙风爜")
+ private String certificateNumber;
+
+ /** 娉ㄥ唽鍦板潃 */
+ @ApiModelProperty("娉ㄥ唽鍦板潃")
+ private String registeredAddress;
+
+ /** 娉ㄥ唽璧勯噾 */
+ @ApiModelProperty("娉ㄥ唽璧勯噾")
+ private BigDecimal registeredCapital;
+
+ /** 娉曚汉浠h〃 */
+ @ApiModelProperty("娉曚汉浠h〃")
+ private String legalRepresentative;
+
+ /** 鍥哄畾鐢佃瘽 */
+ @ApiModelProperty("鍥哄畾鐢佃瘽")
+ private String fixedPhone;
+
+ /** 娉曚汉韬唤璇� */
+ @ApiModelProperty("娉曚汉韬唤璇�")
+ private String legalPersonIdcard;
+
+ /** 椤圭洰鑱旂郴浜� */
+ @ApiModelProperty("椤圭洰鑱旂郴浜�")
+ private String projectContactPerson;
+
+ /** 绉诲姩鐢佃瘽 */
+ @ApiModelProperty("绉诲姩鐢佃瘽")
+ private String phone;
+
+ /** 鑱旂郴浜鸿韩浠借瘉 */
+ @ApiModelProperty("鑱旂郴浜鸿韩浠借瘉")
+ private String contactIdcard;
+
+ /** 寰俊鍙� */
+ @ApiModelProperty("寰俊鍙�")
+ private String wechat;
+
+ /** 鑱旂郴浜洪�氳鍦板潃 */
+ @ApiModelProperty("鑱旂郴浜洪�氳鍦板潃")
+ private String contactAddress;
+
+ /** 閭斂缂栫爜 */
+ @ApiModelProperty("閭斂缂栫爜")
+ private String postCode;
+
+ /** 鐢靛瓙閭 */
+ @ApiModelProperty("鐢靛瓙閭")
+ private String email;
+
+ /** 鍒涘缓浜� */
+ @ApiModelProperty("鍒涘缓浜�")
+ private Long createBy;
+
+ /** 鏇存柊浜� */
+ @ApiModelProperty("鏇存柊浜�")
+ private Long updateBy;
+
+ /** 鍒涘缓鏃堕棿 */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Date gmtCreateTime;
+
+ /** 鏇存柊鏃堕棿 */
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ private Date gmtUpdateTime;
+
+ public static ProjectUnitRegistrationInfoVO getVoByEntity(@NonNull ProjectUnitRegistrationInfo entity, ProjectUnitRegistrationInfoVO vo) {
+ if(vo == null) {
+ vo = new ProjectUnitRegistrationInfoVO();
+ }
+ BeanUtils.copyProperties(entity, vo);
+ return vo;
+ }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vue/ProjectInfoDialog.vue b/business/src/main/java/com/ycl/domain/vue/ProjectInfoDialog.vue
deleted file mode 100644
index 099b884..0000000
--- a/business/src/main/java/com/ycl/domain/vue/ProjectInfoDialog.vue
+++ /dev/null
@@ -1,315 +0,0 @@
-<template>
- <div>
- <el-dialog width="35%" :title="dialogTitle" @close="closeDialog" :visible.sync="dialogFormVisible" :destroy-on-close="true" :append-to-body="true" :close-on-click-modal="false">
- <el-form :model="projectInfoForm" :rules="projectInfoRules" ref="projectInfoForm">
- <el-form-item label="椤圭洰鍚嶇О" :label-width="formLabelWidth" prop="projectName">
- <el-input v-model="projectInfoForm.projectName" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="椤圭洰浠g爜" :label-width="formLabelWidth" prop="projectCode">
- <el-input v-model="projectInfoForm.projectCode" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="寤鸿鍐呭" :label-width="formLabelWidth" prop="content">
- <el-input v-model="projectInfoForm.content" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="椤圭洰绫诲瀷锛�0鎴垮眿寤虹瓚锛�1鍩庡競鍩虹璁炬柦锛�2浜ら�氳繍杈擄紝3姘村埄锛�4鑳芥簮锛�5闈炵叅鐭垮北锛�6鍏朵粬锛�" :label-width="formLabelWidth" prop="projectType">
- <el-input v-model="projectInfoForm.projectType" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="椤圭洰鐘舵�� (0鏈紑宸ワ紝1宸插紑宸ワ紝2宸茬宸ワ紝3鏆傚仠)" :label-width="formLabelWidth" prop="projectStatus">
- <el-input v-model="projectInfoForm.projectStatus" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="璧勯噾绫诲瀷锛�0涓璧勯噾锛�1鍥藉�鸿祫閲戯紝2瓒呴暱鏈熷浗鍊猴紝3鍦版柟鏀垮簻涓撻」鍊猴級" :label-width="formLabelWidth" prop="fundType">
- <el-input v-model="projectInfoForm.fundType" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="鎶曡祫绫诲埆锛�0浼佷笟鎶曡祫锛�1鏀垮簻鎶曡祫锛�2澶栧晢鎶曡祫锛�3澧冨鎶曡祫锛�" :label-width="formLabelWidth" prop="investType">
- <el-input v-model="projectInfoForm.investType" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵)" :label-width="formLabelWidth" prop="projectPhase">
- <el-input v-model="projectInfoForm.projectPhase" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="鏍囩" :label-width="formLabelWidth" prop="tag">
- <el-input v-model="projectInfoForm.tag" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="涓荤閮ㄩ棬(瀵瑰簲瀹℃壒閮ㄩ棬id)" :label-width="formLabelWidth" prop="competentDepartment">
- <el-input v-model="projectInfoForm.competentDepartment" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="琛屾斂鍖哄煙" :label-width="formLabelWidth" prop="areaCode">
- <el-input v-model="projectInfoForm.areaCode" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="绠$悊褰掑彛 (0鍩烘湰寤鸿(鍙戞敼), 1鏇存柊鏀归��(缁忎俊), 2鍗曠函璐疆(鍙戞敼), 3淇℃伅鍖�(鍙戞敼), 4鍏朵粬鎶曡祫)" :label-width="formLabelWidth" prop="managementCentralization">
- <el-input v-model="projectInfoForm.managementCentralization" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="椤圭洰瀹℃壒绫诲瀷" :label-width="formLabelWidth" prop="projectApprovalType">
- <el-input v-model="projectInfoForm.projectApprovalType" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="鎶曡祫鐩綍(锛�)" :label-width="formLabelWidth" prop="investmentCatalogue">
- <el-input v-model="projectInfoForm.investmentCatalogue" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="閲嶇偣鍒嗙被 (0鐪侀噸鐐归」鐩�, 1閬傚畞甯傞噸鐐归」鐩�, 2.灏勬椽甯傞噸鐐归」鐩�, 3.涓�鑸」鐩�)" :label-width="formLabelWidth" prop="importanceType">
- <el-input v-model="projectInfoForm.importanceType" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="骞村害鎶曡祫璁″垝" :label-width="formLabelWidth" prop="year">
- <el-input v-model="projectInfoForm.year" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="骞村害鎶曡祫閲戦" :label-width="formLabelWidth" prop="yearInvestAmount">
- <el-input v-model="projectInfoForm.yearInvestAmount" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="绔嬮」鏃堕棿" :label-width="formLabelWidth" prop="createProjectTime">
- <el-input v-model="projectInfoForm.createProjectTime" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="璁″垝寮�宸ユ椂闂�" :label-width="formLabelWidth" prop="planStartTime">
- <el-input v-model="projectInfoForm.planStartTime" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="璁″垝绔e伐鏃堕棿" :label-width="formLabelWidth" prop="planCompleteTime">
- <el-input v-model="projectInfoForm.planCompleteTime" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="涓爣鍗曚綅" :label-width="formLabelWidth" prop="winUnit">
- <el-input v-model="projectInfoForm.winUnit" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="涓爣閲戦" :label-width="formLabelWidth" prop="winAmount">
- <el-input v-model="projectInfoForm.winAmount" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="涓爣鏃堕棿" :label-width="formLabelWidth" prop="winTime">
- <el-input v-model="projectInfoForm.winTime" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="璇︾粏鍦板潃" :label-width="formLabelWidth" prop="projectAddress">
- <el-input v-model="projectInfoForm.projectAddress" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="缁忓害" :label-width="formLabelWidth" prop="longitude">
- <el-input v-model="projectInfoForm.longitude" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="绾害" :label-width="formLabelWidth" prop="latitude">
- <el-input v-model="projectInfoForm.latitude" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="椤圭洰涓氫富鍗曚綅" :label-width="formLabelWidth" prop="projectOwnerUnit">
- <el-input v-model="projectInfoForm.projectOwnerUnit" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="椤圭洰鑱旂郴浜�" :label-width="formLabelWidth" prop="projectContactPerson">
- <el-input v-model="projectInfoForm.projectContactPerson" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="鑱旂郴鏂瑰紡" :label-width="formLabelWidth" prop="contact">
- <el-input v-model="projectInfoForm.contact" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" :label-width="formLabelWidth" prop="gmtCreateTime">
- <el-input v-model="projectInfoForm.gmtCreateTime" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" :label-width="formLabelWidth" prop="gmtUpdateTime">
- <el-input v-model="projectInfoForm.gmtUpdateTime" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="鏇存柊浜�" :label-width="formLabelWidth" prop="updateBy">
- <el-input v-model="projectInfoForm.updateBy" autocomplete="off"></el-input>
- </el-form-item>
- <el-form-item label="鍒涘缓浜�" :label-width="formLabelWidth" prop="createBy">
- <el-input v-model="projectInfoForm.createBy" autocomplete="off"></el-input>
- </el-form-item>
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button @click="closeDialog">鍙� 娑�</el-button>
- <el-button type="primary" @click="addOrEditProjectInfo">纭� 瀹�</el-button>
- </div>
- </el-dialog>
- </div>
-</template>
-
-<script>
- import {Message} from "element-ui";
- import {getDictDataByType} from "@/api/dict-data";
- import {addProjectInfo, editProjectInfo, getProjectInfos} from "@/api/projectInfo";
- export default {
- name: "ProjectInfoDialog",
- data() {
- return {
- formLabelWidth: '120px',
- projectInfoRules: {
- projectName: [
- { required: true, message: '璇疯緭鍏ラ」鐩悕绉�', trigger: 'blur' }
- ],
- projectCode: [
- { required: true, message: '璇疯緭鍏ラ」鐩唬鐮�', trigger: 'blur' }
- ],
- content: [
- { required: true, message: '璇疯緭鍏ュ缓璁惧唴瀹�', trigger: 'blur' }
- ],
- projectType: [
- { required: true, message: '璇疯緭鍏ラ」鐩被鍨嬶紙0鎴垮眿寤虹瓚锛�1鍩庡競鍩虹璁炬柦锛�2浜ら�氳繍杈擄紝3姘村埄锛�4鑳芥簮锛�5闈炵叅鐭垮北锛�6鍏朵粬锛�', trigger: 'blur' }
- ],
- projectStatus: [
- { required: true, message: '璇疯緭鍏ラ」鐩姸鎬� (0鏈紑宸ワ紝1宸插紑宸ワ紝2宸茬宸ワ紝3鏆傚仠)', trigger: 'blur' }
- ],
- fundType: [
- { required: true, message: '璇疯緭鍏ヨ祫閲戠被鍨嬶紙0涓璧勯噾锛�1鍥藉�鸿祫閲戯紝2瓒呴暱鏈熷浗鍊猴紝3鍦版柟鏀垮簻涓撻」鍊猴級', trigger: 'blur' }
- ],
- investType: [
- { required: true, message: '璇疯緭鍏ユ姇璧勭被鍒紙0浼佷笟鎶曡祫锛�1鏀垮簻鎶曡祫锛�2澶栧晢鎶曡祫锛�3澧冨鎶曡祫锛�', trigger: 'blur' }
- ],
- projectPhase: [
- { required: true, message: '璇疯緭鍏ラ」鐩樁娈�(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵)', trigger: 'blur' }
- ],
- tag: [
- { required: true, message: '璇疯緭鍏ユ爣绛�', trigger: 'blur' }
- ],
- competentDepartment: [
- { required: true, message: '璇疯緭鍏ヤ富绠¢儴闂�(瀵瑰簲瀹℃壒閮ㄩ棬id)', trigger: 'blur' }
- ],
- areaCode: [
- { required: true, message: '璇疯緭鍏ヨ鏀垮尯鍩�', trigger: 'blur' }
- ],
- managementCentralization: [
- { required: true, message: '璇疯緭鍏ョ鐞嗗綊鍙� (0鍩烘湰寤鸿(鍙戞敼), 1鏇存柊鏀归��(缁忎俊), 2鍗曠函璐疆(鍙戞敼), 3淇℃伅鍖�(鍙戞敼), 4鍏朵粬鎶曡祫)', trigger: 'blur' }
- ],
- projectApprovalType: [
- { required: true, message: '璇疯緭鍏ラ」鐩鎵圭被鍨�', trigger: 'blur' }
- ],
- investmentCatalogue: [
- { required: true, message: '璇疯緭鍏ユ姇璧勭洰褰�(锛�)', trigger: 'blur' }
- ],
- importanceType: [
- { required: true, message: '璇疯緭鍏ラ噸鐐瑰垎绫� (0鐪侀噸鐐归」鐩�, 1閬傚畞甯傞噸鐐归」鐩�, 2.灏勬椽甯傞噸鐐归」鐩�, 3.涓�鑸」鐩�)', trigger: 'blur' }
- ],
- year: [
- { required: true, message: '璇疯緭鍏ュ勾搴︽姇璧勮鍒�', trigger: 'blur' }
- ],
- yearInvestAmount: [
- { required: true, message: '璇疯緭鍏ュ勾搴︽姇璧勯噾棰�', trigger: 'blur' }
- ],
- createProjectTime: [
- { required: true, message: '璇疯緭鍏ョ珛椤规椂闂�', trigger: 'blur' }
- ],
- planStartTime: [
- { required: true, message: '璇疯緭鍏ヨ鍒掑紑宸ユ椂闂�', trigger: 'blur' }
- ],
- planCompleteTime: [
- { required: true, message: '璇疯緭鍏ヨ鍒掔宸ユ椂闂�', trigger: 'blur' }
- ],
- winUnit: [
- { required: true, message: '璇疯緭鍏ヤ腑鏍囧崟浣�', trigger: 'blur' }
- ],
- winAmount: [
- { required: true, message: '璇疯緭鍏ヤ腑鏍囬噾棰�', trigger: 'blur' }
- ],
- winTime: [
- { required: true, message: '璇疯緭鍏ヤ腑鏍囨椂闂�', trigger: 'blur' }
- ],
- projectAddress: [
- { required: true, message: '璇疯緭鍏ヨ缁嗗湴鍧�', trigger: 'blur' }
- ],
- longitude: [
- { required: true, message: '璇疯緭鍏ョ粡搴�', trigger: 'blur' }
- ],
- latitude: [
- { required: true, message: '璇疯緭鍏ョ含搴�', trigger: 'blur' }
- ],
- projectOwnerUnit: [
- { required: true, message: '璇疯緭鍏ラ」鐩笟涓诲崟浣�', trigger: 'blur' }
- ],
- projectContactPerson: [
- { required: true, message: '璇疯緭鍏ラ」鐩仈绯讳汉', trigger: 'blur' }
- ],
- contact: [
- { required: true, message: '璇疯緭鍏ヨ仈绯绘柟寮�', trigger: 'blur' }
- ],
- gmtCreateTime: [
- { required: true, message: '璇疯緭鍏ュ垱寤烘椂闂�', trigger: 'blur' }
- ],
- gmtUpdateTime: [
- { required: true, message: '璇疯緭鍏ユ洿鏂版椂闂�', trigger: 'blur' }
- ],
- updateBy: [
- { required: true, message: '璇疯緭鍏ユ洿鏂颁汉', trigger: 'blur' }
- ],
- createBy: [
- { required: true, message: '璇疯緭鍏ュ垱寤轰汉', trigger: 'blur' }
- ],
- }
- }
- },
- computed: {
- dialogFormVisible: {
- get() {
- return this.$store.state.projectInfo.dialogFormVisible;
- },
- set(value) {
- this.$store.state.projectInfo.dialogFormVisible = value;
- }
- },
- dialogTitle: {
- get() {
- return this.$store.state.projectInfo.dialogTitle;
- },
- set(value) {
- this.$store.state.projectInfo.dialogTitle = value;
- }
-
- },
- projectInfoForm: {
- get() {
- return this.$store.state.projectInfo.projectInfoForm;
- },
- set(value) {
- this.$store.state.projectInfo.projectInfoForm = value;
- }
- }
- },
- mounted() {
- },
- methods: {
- getDictData(value) {
- let params = {
- keyword: value,
- dictTypeId: value,
- current: 1,
- size: 200
- }
- getDictDataByType(params).then(res => {
- this.dictTypeList = res.data.data
- })
- },
- refreshData() {
- var params = {
- "current": this.$store.state.projectInfo.currentPage,
- "size": this.$store.state.projectInfo.pageSize
- };
- // 鍒锋柊
- getProjectInfos(params).then((res) => {
- this.$store.state.projectInfo.tableData = res.data.data;
- this.$store.state.projectInfo.total = res.data.total;
- this.clearForm();
- })
- },
- clearForm() {
- Object.keys(this.projectInfoForm).forEach((key) => {
- this.projectInfoForm[key] = null;
- })
- },
- closeDialog() {
- this.$store.state.projectInfo.dialogFormVisible = false;
- this.clearForm();
- },
- addOrEditProjectInfo() {
- this.$refs["projectInfoForm"].validate((valid) => {
- if (valid) {
- if (this.dialogTitle === "娣诲姞椤圭洰绠$悊鍩虹淇℃伅琛�") {
- addProjectInfo(this.projectInfoForm).then((res) => {
- Message.success(res.data.msg);
- this.dialogFormVisible = false;
- this.refreshData();
- })
- } else {
- editProjectInfo(this.projectInfoForm).then((res) => {
- Message.success(res.data.msg);
- this.dialogFormVisible = false;
- this.refreshData();
- })
- }
- } else {
- console.log('error submit!!');
- return false;
- }
- });
- }
- }
- }
-</script>
-
-<style scoped>
-
-</style>
diff --git a/business/src/main/java/com/ycl/domain/vue/ProjectInfoTable.vue b/business/src/main/java/com/ycl/domain/vue/ProjectInfoTable.vue
deleted file mode 100644
index 77d0c07..0000000
--- a/business/src/main/java/com/ycl/domain/vue/ProjectInfoTable.vue
+++ /dev/null
@@ -1,320 +0,0 @@
-<template>
- <div>
- <el-table
- :data="tableData"
- :class="{tableTopLevel1: topLevel === 1, tableTopLevel2: topLevel === 2, tableTopLevel3: topLevel === 3, tableTopLevelDefault: topLevel === -1}"
- row-key="id"
- border
- @selection-change="handleSelectionChange">
- <el-table-column
- type="selection"
- width="55">
- </el-table-column>
- <el-table-column
- prop="projectName"
- label="椤圭洰鍚嶇О"
- >
- </el-table-column>
- <el-table-column
- prop="projectCode"
- label="椤圭洰浠g爜"
- >
- </el-table-column>
- <el-table-column
- prop="content"
- label="寤鸿鍐呭"
- >
- </el-table-column>
- <el-table-column
- prop="projectType"
- label="椤圭洰绫诲瀷锛�0鎴垮眿寤虹瓚锛�1鍩庡競鍩虹璁炬柦锛�2浜ら�氳繍杈擄紝3姘村埄锛�4鑳芥簮锛�5闈炵叅鐭垮北锛�6鍏朵粬锛�"
- >
- </el-table-column>
- <el-table-column
- prop="projectStatus"
- label="椤圭洰鐘舵�� (0鏈紑宸ワ紝1宸插紑宸ワ紝2宸茬宸ワ紝3鏆傚仠)"
- >
- </el-table-column>
- <el-table-column
- prop="fundType"
- label="璧勯噾绫诲瀷锛�0涓璧勯噾锛�1鍥藉�鸿祫閲戯紝2瓒呴暱鏈熷浗鍊猴紝3鍦版柟鏀垮簻涓撻」鍊猴級"
- >
- </el-table-column>
- <el-table-column
- prop="investType"
- label="鎶曡祫绫诲埆锛�0浼佷笟鎶曡祫锛�1鏀垮簻鎶曡祫锛�2澶栧晢鎶曡祫锛�3澧冨鎶曡祫锛�"
- >
- </el-table-column>
- <el-table-column
- prop="projectPhase"
- label="椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵)"
- >
- </el-table-column>
- <el-table-column
- prop="tag"
- label="鏍囩"
- >
- </el-table-column>
- <el-table-column
- prop="competentDepartment"
- label="涓荤閮ㄩ棬(瀵瑰簲瀹℃壒閮ㄩ棬id)"
- >
- </el-table-column>
- <el-table-column
- prop="areaCode"
- label="琛屾斂鍖哄煙"
- >
- </el-table-column>
- <el-table-column
- prop="managementCentralization"
- label="绠$悊褰掑彛 (0鍩烘湰寤鸿(鍙戞敼), 1鏇存柊鏀归��(缁忎俊), 2鍗曠函璐疆(鍙戞敼), 3淇℃伅鍖�(鍙戞敼), 4鍏朵粬鎶曡祫)"
- >
- </el-table-column>
- <el-table-column
- prop="projectApprovalType"
- label="椤圭洰瀹℃壒绫诲瀷"
- >
- </el-table-column>
- <el-table-column
- prop="investmentCatalogue"
- label="鎶曡祫鐩綍(锛�)"
- >
- </el-table-column>
- <el-table-column
- prop="importanceType"
- label="閲嶇偣鍒嗙被 (0鐪侀噸鐐归」鐩�, 1閬傚畞甯傞噸鐐归」鐩�, 2.灏勬椽甯傞噸鐐归」鐩�, 3.涓�鑸」鐩�)"
- >
- </el-table-column>
- <el-table-column
- prop="year"
- label="骞村害鎶曡祫璁″垝"
- >
- </el-table-column>
- <el-table-column
- prop="yearInvestAmount"
- label="骞村害鎶曡祫閲戦"
- >
- </el-table-column>
- <el-table-column
- prop="createProjectTime"
- label="绔嬮」鏃堕棿"
- >
- </el-table-column>
- <el-table-column
- prop="planStartTime"
- label="璁″垝寮�宸ユ椂闂�"
- >
- </el-table-column>
- <el-table-column
- prop="planCompleteTime"
- label="璁″垝绔e伐鏃堕棿"
- >
- </el-table-column>
- <el-table-column
- prop="winUnit"
- label="涓爣鍗曚綅"
- >
- </el-table-column>
- <el-table-column
- prop="winAmount"
- label="涓爣閲戦"
- >
- </el-table-column>
- <el-table-column
- prop="winTime"
- label="涓爣鏃堕棿"
- >
- </el-table-column>
- <el-table-column
- prop="projectAddress"
- label="璇︾粏鍦板潃"
- >
- </el-table-column>
- <el-table-column
- prop="longitude"
- label="缁忓害"
- >
- </el-table-column>
- <el-table-column
- prop="latitude"
- label="绾害"
- >
- </el-table-column>
- <el-table-column
- prop="projectOwnerUnit"
- label="椤圭洰涓氫富鍗曚綅"
- >
- </el-table-column>
- <el-table-column
- prop="projectContactPerson"
- label="椤圭洰鑱旂郴浜�"
- >
- </el-table-column>
- <el-table-column
- prop="contact"
- label="鑱旂郴鏂瑰紡"
- >
- </el-table-column>
- <el-table-column
- prop="gmtCreateTime"
- label="鍒涘缓鏃堕棿"
- >
- </el-table-column>
- <el-table-column
- prop="gmtUpdateTime"
- label="鏇存柊鏃堕棿"
- >
- </el-table-column>
- <el-table-column
- prop="updateBy"
- label="鏇存柊浜�"
- >
- </el-table-column>
- <el-table-column
- prop="createBy"
- label="鍒涘缓浜�"
- >
- </el-table-column>
- <el-table-column
- label="鎿嶄綔">
- <template slot-scope="scope">
- <el-button v-if="editShow" type="primary" @click="editProjectInfo(scope.row.id)" size="mini">淇敼</el-button>
- <el-button v-if="delShow" type="primary" @click="deleteProjectInfo(scope.row.id)" size="mini">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <PageC
- :top-level="topLevel"
- :handleSizeChange="handleSizeChange"
- :handleCurrentChange="handleCurrentChange"
- :pageSize="pageSize"
- :total="total"
- :currentPage="currentPage"></PageC>
- </div>
-</template>
-
-<script>
- import PageC from "@/components/PageC";
- import {deleteProjectInfoById, getProjectInfos} from "@/api/projectInfo";
- import {Message} from "element-ui";
- export default {
- name: "ProjectInfoTable",
- components: {PageC},
- computed: {
- tableData: {
- get() {
- return this.$store.state.projectInfo.tableData;
- },
- set(value) {
- this.$store.state.projectInfo.tableData = value;
- }
- },
- // 閫変腑琛宨d
- multipleSelection: {
- get() {
- return this.$store.state.projectInfo.multipleSelection;
- },
- set(value) {
- this.$store.state.projectInfo.multipleSelection = value;
- }
- },
- total: {
- get() {
- return this.$store.state.projectInfo.total;
- },
- set(value) {
- this.$store.state.projectInfo.total = value;
- }
- },
- pageSize: {
- get() {
- return this.$store.state.projectInfo.pageSize;
- },
- set(value) {
- this.$store.state.projectInfo.pageSize = value;
- }
- },
- currentPage: {
- get() {
- return this.$store.state.projectInfo.currentPage;
- },
- set(value) {
- this.$store.state.projectInfo.currentPage = value;
- }
- }
- },
- props: {
- topLevel: {
- required: false,
- default: -1,
- type: Number
- },
- editShow: {
- required: true,
- default: false,
- type: Boolean
- },
- delShow: {
- required: true,
- default: false,
- type: Boolean
- },
- },
- methods: {
- handleSelectionChange(val) {
- this.multipleSelection = val.map((item) => {return item.id;})
- },
- getProjectInfos(params) {
- if (! params) {
- params = {
- "current": this.currentPage,
- "size": this.pageSize
- };
- } else {
- params.current = this.currentPage;
- params.size = this.pageSize;
- }
- // 鍒锋柊
- getProjectInfos(params).then((res) => {
- this.tableData = res.data.data;
- this.total = res.data.total;
- })
- },
- editProjectInfo(id) {
- this.$store.dispatch("projectInfo/editProjectInfo", id);
- },
- deleteProjectInfo(id) {
- this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ褰�, 鏄惁缁х画?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- deleteProjectInfoById(id).then((res) => {
- Message.success(res.data.msg);
- this.getProjectInfos();
- })
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '宸插彇娑堝垹闄�'
- });
- });
- },
- handleSizeChange(val) {
- this.pageSize = val;
- this.getProjectInfos();
- },
- handleCurrentChange(val) {
- this.currentPage = val;
- this.getProjectInfos();
- }
- },
- created() {
- this.getProjectInfos();
- }
- }
-</script>
-
-<style scoped>
-
-</style>
diff --git a/business/src/main/java/com/ycl/domain/vue/ProjectInfoView.vue b/business/src/main/java/com/ycl/domain/vue/ProjectInfoView.vue
deleted file mode 100644
index ef6223b..0000000
--- a/business/src/main/java/com/ycl/domain/vue/ProjectInfoView.vue
+++ /dev/null
@@ -1,102 +0,0 @@
-<template>
- <div class="view">
- <div class="search-warp">
- <el-form :inline="true" :model="searchForm" class="demo-form-inline">
- <el-form-item>
- <el-button size="small" type="primary" @click="search">鏌ユ壘</el-button>
- </el-form-item>
- </el-form>
- </div>
- <OperateC
- :top-level="topLevel"
- :add="addProjectInfo"
- :edit="editProjectInfo"
- :remove="removeProjectInfo"
- :add-show="this.$getButtonAuth('projectInfo:add')"
- :remove-show="this.$getButtonAuth('projectInfo:del:batch')"
- ></OperateC>
- <ProjectInfoTable
- :top-level="topLevel"
- ref="ProjectInfoTableRef"
- :edit-show="this.$getButtonAuth('projectInfo:edit')"
- :del-show="this.$getButtonAuth('projectInfo:del')"
- ></ProjectInfoTable>
- <ProjectInfoDialog></ProjectInfoDialog>
- </div>
-</template>
-
-<script>
- import ProjectInfoDialog from "@/components/dialog/ProjectInfoDialog";
- import OperateC from "@/components/OperateC";
- import ProjectInfoTable from "@/components/table/ProjectInfoTable";
- import {deleteProjectInfoByIds, getProjectInfos} from "@/api/projectInfo";
- export default {
- name: "ProjectInfoView",
- components: {ProjectInfoDialog, OperateC, ProjectInfoTable},
- data() {
- return {
- searchForm: {
- },
- topLevel: -1
- }
- },
- methods: {
- search() {
- this.$refs.ProjectInfoTableRef.getProjectInfos(this.searchForm)
- },
- addProjectInfo() {
- let params = {
- dialogFormVisible: true,
- dialogTitle: "娣诲姞椤圭洰绠$悊鍩虹淇℃伅琛�"
- }
- this.$store.commit("projectInfo/openDialogForm", params);
- },
- editProjectInfo() {
- let selected = this.$store.state.projectInfo.multipleSelection;
- if (selected.length < 1) {
- this.$message.warning("浣犺繕娌℃湁閫変腑鏁版嵁鍝︼紒");
- return;
- }
- if (selected.length > 1) {
- this.$message.warning("涓�娆″彧鑳戒慨鏀逛竴鏉℃暟鎹摝锛�")
- return;
- }
- this.$store.dispatch("projectInfo/editProjectInfo", selected[0]);
- },
- removeProjectInfo() {
- let selected = this.$store.state.projectInfo.multipleSelection;
- if (selected.length < 1) {
- this.$message.warning("璇峰厛閫夋嫨瑕佸垹闄ょ殑鏁版嵁鍝︼紒");
- return;
- }
- this.$confirm('纭畾鍒犻櫎鍚�?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- deleteProjectInfoByIds(selected).then((res) => {
- this.$message.success(res.data.msg);
- // 鍒锋柊
- let params = {
- "current": this.$store.state.projectInfo.currentPage,
- "size": this.$store.state.projectInfo.pageSize
- };
- getProjectInfos(params).then((res) => {
- this.$store.state.projectInfo.tableData = res.data.data;
- this.$store.state.projectInfo.total = res.data.total;
- })
- })
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '宸插彇娑堝垹闄�'
- });
- });
- },
- }
- }
-</script>
-
-<style scoped>
-
-</style>
diff --git a/business/src/main/java/com/ycl/domain/vue/index.js b/business/src/main/java/com/ycl/domain/vue/index.js
deleted file mode 100644
index c1218ea..0000000
--- a/business/src/main/java/com/ycl/domain/vue/index.js
+++ /dev/null
@@ -1,79 +0,0 @@
-import {getProjectInfoById} from "@/api/projectInfo";
-
-export default {
- namespaced: true,
- state: {
- dialogFormVisible: false,
- dialogTitle: '',
- pageSize: 10,
- currentPage: 1,
- total: 0,
- // 淇敼娣诲姞鐨勮〃鍗曟暟鎹�
- projectInfoForm: {
- id: null,
- projectName: "" ,
- projectCode: "" ,
- content: "" ,
- projectType: "" ,
- projectStatus: "" ,
- fundType: "" ,
- investType: "" ,
- projectPhase: "" ,
- tag: "" ,
- competentDepartment: null ,
- areaCode: "" ,
- managementCentralization: "" ,
- projectApprovalType: "" ,
- investmentCatalogue: "" ,
- importanceType: "" ,
- year: "" ,
- yearInvestAmount: null ,
- createProjectTime: null ,
- planStartTime: null ,
- planCompleteTime: null ,
- winUnit: "" ,
- winAmount: "" ,
- winTime: null ,
- projectAddress: "" ,
- longitude: "" ,
- latitude: "" ,
- projectOwnerUnit: "" ,
- projectContactPerson: "" ,
- contact: "" ,
- gmtCreateTime: null ,
- gmtUpdateTime: null ,
- updateBy: null ,
- createBy: null ,
- },
- // 琛ㄦ牸鏁版嵁
- tableData: [],
- // 琛ㄦ牸閫変腑鏁版嵁
- multipleSelection: [],
- },
- getters: {},
- mutations: {
- openDialogForm(state, value) {
- state.dialogFormVisible = value.dialogFormVisible;
- state.dialogTitle = value.dialogTitle;
- },
- EditProjectInfo(state, value) {
- state.dialogFormVisible = value.dialogFormVisible;
- state.dialogTitle = value.dialogTitle;
- Object.keys(state.projectInfoForm).forEach((key) => {
- state.projectInfoForm[key] = value.projectInfoForm[key]
- })
- }
- },
- actions: {
- editProjectInfo(state, id) {
- getProjectInfoById(id).then((res) => {
- var params = {
- dialogFormVisible: true,
- dialogTitle: "淇敼椤圭洰绠$悊鍩虹淇℃伅琛�",
- projectInfoForm: res.data.data
- }
- state.commit("EditProjectInfo", params);
- })
- }
- },
-}
diff --git a/business/src/main/java/com/ycl/domain/vue/projectInfo.js b/business/src/main/java/com/ycl/domain/vue/projectInfo.js
deleted file mode 100644
index d31ccab..0000000
--- a/business/src/main/java/com/ycl/domain/vue/projectInfo.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import axios from "./request";
-
-// 鑾峰彇椤圭洰绠$悊鍩虹淇℃伅琛ㄥ垎椤�
-export const getProjectInfos = (params) => {
- return axios({
- url: "/api/project-info/page",
- method: "GET",
- params: params
- })
-}
-
-// 鑾峰彇椤圭洰绠$悊鍩虹淇℃伅琛ㄥ垪琛�
-export const getProjectInfoList = () => {
- return axios({
- url: "/api/project-info/list",
- method: "GET"
- })
-}
-
-// 閫氳繃id鑾峰彇椤圭洰绠$悊鍩虹淇℃伅琛�
-export const getProjectInfoById = (params) => {
- return axios({
- url: "/api/project-info/" + params,
- method: "GET"
- })
-}
-
-// 閫氳繃id鍒犻櫎椤圭洰绠$悊鍩虹淇℃伅琛�
-export const deleteProjectInfoById = (params) => {
- return axios({
- url: "/api/project-info/" + params,
- method: "DELETE"
- })
-}
-
-// 鎵归噺鍒犻櫎椤圭洰绠$悊鍩虹淇℃伅琛�
-export const deleteProjectInfoByIds = (params) => {
- return axios({
- url: "/api/project-info/batch",
- method: "DELETE",
- data: params
- })
-}
-
-// 淇敼椤圭洰绠$悊鍩虹淇℃伅琛�
-export const editProjectInfo = (params) => {
- return axios({
- url: "/api/project-info/",
- method: "PUT",
- data: params
- })
-}
-
-// 娣诲姞椤圭洰绠$悊鍩虹淇℃伅琛�
-export const addProjectInfo = (params) => {
- return axios({
- url: "/api/project-info/",
- method: "POST",
- data: params
- })
-}
diff --git a/business/src/main/java/com/ycl/mapper/PlanMapper.java b/business/src/main/java/com/ycl/mapper/PlanMapper.java
new file mode 100644
index 0000000..0f30ffb
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/PlanMapper.java
@@ -0,0 +1,32 @@
+package com.ycl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.domain.entity.Plan;
+import com.ycl.domain.query.PlanQuery;
+import com.ycl.domain.vo.PlanVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 椤圭洰璁″垝琛� Mapper 鎺ュ彛
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Mapper
+public interface PlanMapper extends BaseMapper<Plan> {
+
+ /**
+ * id鏌ユ壘椤圭洰璁″垝琛�
+ * @param id
+ * @return
+ */
+ PlanVO getById(Integer id);
+
+ /**
+ * 鍒嗛〉
+ */
+ IPage getPage(IPage page, @Param("query") PlanQuery query);
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/ProgressPlanMapper.java b/business/src/main/java/com/ycl/mapper/ProgressPlanMapper.java
new file mode 100644
index 0000000..6a8f8a1
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/ProgressPlanMapper.java
@@ -0,0 +1,32 @@
+package com.ycl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.domain.entity.ProgressPlan;
+import com.ycl.domain.query.ProgressPlanQuery;
+import com.ycl.domain.vo.ProgressPlanVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 椤圭洰璁″垝杩涘害 Mapper 鎺ュ彛
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Mapper
+public interface ProgressPlanMapper extends BaseMapper<ProgressPlan> {
+
+ /**
+ * id鏌ユ壘椤圭洰璁″垝杩涘害
+ * @param id
+ * @return
+ */
+ ProgressPlanVO getById(Integer id);
+
+ /**
+ * 鍒嗛〉
+ */
+ IPage getPage(IPage page, @Param("query") ProgressPlanQuery query);
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java b/business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java
new file mode 100644
index 0000000..3a8736d
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java
@@ -0,0 +1,34 @@
+package com.ycl.mapper;
+
+import com.ycl.domain.entity.ProjectPlanExamineRecord;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.domain.query.ProjectPlanExamineRecordQuery;
+import com.ycl.domain.vo.ProjectPlanExamineRecordVO;
+import com.ycl.domain.form.ProjectPlanExamineRecordForm;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 椤圭洰瀹℃牳璁板綍琛� Mapper 鎺ュ彛
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Mapper
+public interface ProjectPlanExamineRecordMapper extends BaseMapper<ProjectPlanExamineRecord> {
+
+ /**
+ * id鏌ユ壘椤圭洰瀹℃牳璁板綍琛�
+ * @param id
+ * @return
+ */
+ ProjectPlanExamineRecordVO getById(Integer id);
+
+ /**
+ * 鍒嗛〉
+ */
+ IPage getPage(IPage page, @Param("query") ProjectPlanExamineRecordQuery query);
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/ProjectPlanInfoMapper.java b/business/src/main/java/com/ycl/mapper/ProjectPlanInfoMapper.java
new file mode 100644
index 0000000..36005d1
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/ProjectPlanInfoMapper.java
@@ -0,0 +1,34 @@
+package com.ycl.mapper;
+
+import com.ycl.domain.entity.ProjectPlanInfo;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.domain.query.ProjectPlanInfoQuery;
+import com.ycl.domain.vo.ProjectPlanInfoVO;
+import com.ycl.domain.form.ProjectPlanInfoForm;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 椤圭洰璁″垝椤� Mapper 鎺ュ彛
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Mapper
+public interface ProjectPlanInfoMapper extends BaseMapper<ProjectPlanInfo> {
+
+ /**
+ * id鏌ユ壘椤圭洰璁″垝椤�
+ * @param id
+ * @return
+ */
+ ProjectPlanInfoVO getById(Integer id);
+
+ /**
+ * 鍒嗛〉
+ */
+ IPage getPage(IPage page, @Param("query") ProjectPlanInfoQuery query);
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java b/business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java
new file mode 100644
index 0000000..08f3ee4
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java
@@ -0,0 +1,34 @@
+package com.ycl.mapper;
+
+import com.ycl.domain.entity.ProjectPlanProgressReport;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.domain.query.ProjectPlanProgressReportQuery;
+import com.ycl.domain.vo.ProjectPlanProgressReportVO;
+import com.ycl.domain.form.ProjectPlanProgressReportForm;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 杩涘害涓婃姤鍐呭 Mapper 鎺ュ彛
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Mapper
+public interface ProjectPlanProgressReportMapper extends BaseMapper<ProjectPlanProgressReport> {
+
+ /**
+ * id鏌ユ壘杩涘害涓婃姤鍐呭
+ * @param id
+ * @return
+ */
+ ProjectPlanProgressReportVO getById(Integer id);
+
+ /**
+ * 鍒嗛〉
+ */
+ IPage getPage(IPage page, @Param("query") ProjectPlanProgressReportQuery query);
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/ProjectPlanRecordMapper.java b/business/src/main/java/com/ycl/mapper/ProjectPlanRecordMapper.java
new file mode 100644
index 0000000..2931072
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/ProjectPlanRecordMapper.java
@@ -0,0 +1,34 @@
+package com.ycl.mapper;
+
+import com.ycl.domain.entity.ProjectPlanRecord;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.domain.query.ProjectPlanRecordQuery;
+import com.ycl.domain.vo.ProjectPlanRecordVO;
+import com.ycl.domain.form.ProjectPlanRecordForm;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 椤圭洰璁″垝璁板綍 Mapper 鎺ュ彛
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Mapper
+public interface ProjectPlanRecordMapper extends BaseMapper<ProjectPlanRecord> {
+
+ /**
+ * id鏌ユ壘椤圭洰璁″垝璁板綍
+ * @param id
+ * @return
+ */
+ ProjectPlanRecordVO getById(Integer id);
+
+ /**
+ * 鍒嗛〉
+ */
+ IPage getPage(IPage page, @Param("query") ProjectPlanRecordQuery query);
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/ProjectUnitRegistrationInfoMapper.java b/business/src/main/java/com/ycl/mapper/ProjectUnitRegistrationInfoMapper.java
new file mode 100644
index 0000000..4f847d7
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/ProjectUnitRegistrationInfoMapper.java
@@ -0,0 +1,34 @@
+package com.ycl.mapper;
+
+import com.ycl.domain.entity.ProjectUnitRegistrationInfo;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.domain.vo.ProjectUnitRegistrationInfoVO;
+import com.ycl.domain.form.ProjectUnitRegistrationInfoForm;
+import com.ycl.domain.query.ProjectUnitRegistrationInfoQuery;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛� Mapper 鎺ュ彛
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Mapper
+public interface ProjectUnitRegistrationInfoMapper extends BaseMapper<ProjectUnitRegistrationInfo> {
+
+ /**
+ * id鏌ユ壘椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛�
+ * @param id
+ * @return
+ */
+ ProjectUnitRegistrationInfoVO getById(Integer id);
+
+ /**
+ * 鍒嗛〉
+ */
+ IPage getPage(IPage page, @Param("query") ProjectUnitRegistrationInfoQuery query);
+
+}
diff --git a/business/src/main/java/com/ycl/service/PlanService.java b/business/src/main/java/com/ycl/service/PlanService.java
new file mode 100644
index 0000000..6b39151
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/PlanService.java
@@ -0,0 +1,73 @@
+package com.ycl.service;
+
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.Plan;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.domain.form.PlanForm;
+import com.ycl.domain.query.PlanQuery;
+
+import java.util.List;
+
+/**
+ * 椤圭洰璁″垝琛� 鏈嶅姟绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+public interface PlanService extends IService<Plan> {
+
+ /**
+ * 娣诲姞
+ *
+ * @param form
+ * @return
+ */
+ Result add(PlanForm form);
+
+ /**
+ * 淇敼
+ *
+ * @param form
+ * @return
+ */
+ Result update(PlanForm form);
+
+ /**
+ * 鎵归噺鍒犻櫎
+ *
+ * @param ids
+ * @return
+ */
+ Result remove(List<String> ids);
+
+ /**
+ * id鍒犻櫎
+ *
+ * @param id
+ * @return
+ */
+ Result removeById(String id);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param query
+ * @return
+ */
+ Result page(PlanQuery query);
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ *
+ * @param id
+ * @return
+ */
+ Result detail(Integer id);
+
+ /**
+ * 鍒楄〃
+ *
+ * @return
+ */
+ Result all();
+}
diff --git a/business/src/main/java/com/ycl/service/ProgressPlanService.java b/business/src/main/java/com/ycl/service/ProgressPlanService.java
new file mode 100644
index 0000000..2b0b005
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/ProgressPlanService.java
@@ -0,0 +1,65 @@
+package com.ycl.service;
+
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.ProgressPlan;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.domain.form.ProgressPlanForm;
+import com.ycl.domain.query.ProgressPlanQuery;
+import java.util.List;
+
+/**
+ * 椤圭洰璁″垝杩涘害 鏈嶅姟绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+public interface ProgressPlanService extends IService<ProgressPlan> {
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ Result add(ProgressPlanForm form);
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ Result update(ProgressPlanForm form);
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ Result remove(List<String> ids);
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ Result removeById(String id);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ Result page(ProgressPlanQuery query);
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ Result detail(Integer id);
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ Result all();
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java b/business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java
new file mode 100644
index 0000000..85ff607
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java
@@ -0,0 +1,66 @@
+package com.ycl.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.ProjectPlanExamineRecord;
+import com.ycl.domain.form.ProjectPlanExamineRecordForm;
+import com.ycl.domain.query.ProjectPlanExamineRecordQuery;
+
+import java.util.List;
+
+/**
+ * 椤圭洰瀹℃牳璁板綍琛� 鏈嶅姟绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+public interface ProjectPlanExamineRecordService extends IService<ProjectPlanExamineRecord> {
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ Result add(ProjectPlanExamineRecordForm form);
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ Result update(ProjectPlanExamineRecordForm form);
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ Result remove(List<String> ids);
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ Result removeById(String id);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ Result page(ProjectPlanExamineRecordQuery query);
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ Result detail(Integer id);
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ Result all();
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectPlanInfoService.java b/business/src/main/java/com/ycl/service/ProjectPlanInfoService.java
new file mode 100644
index 0000000..ef8c612
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/ProjectPlanInfoService.java
@@ -0,0 +1,66 @@
+package com.ycl.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.ProjectPlanInfo;
+import com.ycl.domain.form.ProjectPlanInfoForm;
+import com.ycl.domain.query.ProjectPlanInfoQuery;
+
+import java.util.List;
+
+/**
+ * 椤圭洰璁″垝椤� 鏈嶅姟绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+public interface ProjectPlanInfoService extends IService<ProjectPlanInfo> {
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ Result add(ProjectPlanInfoForm form);
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ Result update(ProjectPlanInfoForm form);
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ Result remove(List<String> ids);
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ Result removeById(String id);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ Result page(ProjectPlanInfoQuery query);
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ Result detail(Integer id);
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ Result all();
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectPlanProgressReportService.java b/business/src/main/java/com/ycl/service/ProjectPlanProgressReportService.java
new file mode 100644
index 0000000..0a9802c
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/ProjectPlanProgressReportService.java
@@ -0,0 +1,66 @@
+package com.ycl.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.ProjectPlanProgressReport;
+import com.ycl.domain.form.ProjectPlanProgressReportForm;
+import com.ycl.domain.query.ProjectPlanProgressReportQuery;
+
+import java.util.List;
+
+/**
+ * 杩涘害涓婃姤鍐呭 鏈嶅姟绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+public interface ProjectPlanProgressReportService extends IService<ProjectPlanProgressReport> {
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ Result add(ProjectPlanProgressReportForm form);
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ Result update(ProjectPlanProgressReportForm form);
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ Result remove(List<String> ids);
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ Result removeById(String id);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ Result page(ProjectPlanProgressReportQuery query);
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ Result detail(Integer id);
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ Result all();
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectPlanRecordService.java b/business/src/main/java/com/ycl/service/ProjectPlanRecordService.java
new file mode 100644
index 0000000..1481c01
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/ProjectPlanRecordService.java
@@ -0,0 +1,66 @@
+package com.ycl.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.ProjectPlanRecord;
+import com.ycl.domain.form.ProjectPlanRecordForm;
+import com.ycl.domain.query.ProjectPlanRecordQuery;
+
+import java.util.List;
+
+/**
+ * 椤圭洰璁″垝璁板綍 鏈嶅姟绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+public interface ProjectPlanRecordService extends IService<ProjectPlanRecord> {
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ Result add(ProjectPlanRecordForm form);
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ Result update(ProjectPlanRecordForm form);
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ Result remove(List<String> ids);
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ Result removeById(String id);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ Result page(ProjectPlanRecordQuery query);
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ Result detail(Integer id);
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ Result all();
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectUnitRegistrationInfoService.java b/business/src/main/java/com/ycl/service/ProjectUnitRegistrationInfoService.java
new file mode 100644
index 0000000..6e92ad5
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/ProjectUnitRegistrationInfoService.java
@@ -0,0 +1,65 @@
+package com.ycl.service;
+
+import com.ycl.domain.entity.ProjectUnitRegistrationInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.common.base.Result;
+import com.ycl.domain.form.ProjectUnitRegistrationInfoForm;
+import com.ycl.domain.query.ProjectUnitRegistrationInfoQuery;
+import java.util.List;
+
+/**
+ * 椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛� 鏈嶅姟绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+public interface ProjectUnitRegistrationInfoService extends IService<ProjectUnitRegistrationInfo> {
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ Result add(ProjectUnitRegistrationInfoForm form);
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ Result update(ProjectUnitRegistrationInfoForm form);
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ Result remove(List<String> ids);
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ Result removeById(String id);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ Result page(ProjectUnitRegistrationInfoQuery query);
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ Result detail(Integer id);
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ Result all();
+}
diff --git a/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java b/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java
new file mode 100644
index 0000000..9dba0cd
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java
@@ -0,0 +1,119 @@
+package com.ycl.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.Plan;
+import com.ycl.framework.utils.PageUtil;
+import com.ycl.mapper.PlanMapper;
+import com.ycl.service.PlanService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.domain.form.PlanForm;
+import com.ycl.domain.vo.PlanVO;
+import com.ycl.domain.query.PlanQuery;
+import org.springframework.stereotype.Service;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.Assert;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 椤圭洰璁″垝琛� 鏈嶅姟瀹炵幇绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Service
+@RequiredArgsConstructor
+public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements PlanService {
+
+ private final PlanMapper planMapper;
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ @Override
+ public Result add(PlanForm form) {
+ Plan entity = PlanForm.getEntityByForm(form, null);
+ baseMapper.insert(entity);
+ return Result.ok("娣诲姞鎴愬姛");
+ }
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ @Override
+ public Result update(PlanForm form) {
+ Plan entity = baseMapper.selectById(form.getId());
+
+ // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+ Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+ BeanUtils.copyProperties(form, entity);
+ baseMapper.updateById(entity);
+ return Result.ok("淇敼鎴愬姛");
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ @Override
+ public Result remove(List<String> ids) {
+ baseMapper.deleteBatchIds(ids);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ @Override
+ public Result removeById(String id) {
+ baseMapper.deleteById(id);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ @Override
+ public Result page(PlanQuery query) {
+ IPage<PlanVO> page = PageUtil.getPage(query, PlanVO.class);
+ baseMapper.getPage(page, query);
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ @Override
+ public Result detail(Integer id) {
+ PlanVO vo = baseMapper.getById(id);
+ Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+ return Result.ok().data(vo);
+ }
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ @Override
+ public Result all() {
+ List<Plan> entities = baseMapper.selectList(null);
+ List<PlanVO> vos = entities.stream()
+ .map(entity -> PlanVO.getVoByEntity(entity, null))
+ .collect(Collectors.toList());
+ return Result.ok().data(vos);
+ }
+}
diff --git a/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java
new file mode 100644
index 0000000..cb52f7d
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java
@@ -0,0 +1,119 @@
+package com.ycl.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.ProgressPlan;
+import com.ycl.domain.form.ProgressPlanForm;
+import com.ycl.domain.query.ProgressPlanQuery;
+import com.ycl.domain.vo.ProgressPlanVO;
+import com.ycl.framework.utils.PageUtil;
+import com.ycl.mapper.ProgressPlanMapper;
+import com.ycl.service.ProgressPlanService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 椤圭洰璁″垝杩涘害 鏈嶅姟瀹炵幇绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Service
+@RequiredArgsConstructor
+public class ProgressPlanServiceImpl extends ServiceImpl<ProgressPlanMapper, ProgressPlan> implements ProgressPlanService {
+
+ private final ProgressPlanMapper progressPlanMapper;
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ @Override
+ public Result add(ProgressPlanForm form) {
+ ProgressPlan entity = ProgressPlanForm.getEntityByForm(form, null);
+ baseMapper.insert(entity);
+ return Result.ok("娣诲姞鎴愬姛");
+ }
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ @Override
+ public Result update(ProgressPlanForm form) {
+ ProgressPlan entity = baseMapper.selectById(form.getId());
+
+ // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+ Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+ BeanUtils.copyProperties(form, entity);
+ baseMapper.updateById(entity);
+ return Result.ok("淇敼鎴愬姛");
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ @Override
+ public Result remove(List<String> ids) {
+ baseMapper.deleteBatchIds(ids);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ @Override
+ public Result removeById(String id) {
+ baseMapper.deleteById(id);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ @Override
+ public Result page(ProgressPlanQuery query) {
+ IPage<ProgressPlanVO> page = PageUtil.getPage(query, ProgressPlanVO.class);
+ baseMapper.getPage(page, query);
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ @Override
+ public Result detail(Integer id) {
+ ProgressPlanVO vo = baseMapper.getById(id);
+ Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+ return Result.ok().data(vo);
+ }
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ @Override
+ public Result all() {
+ List<ProgressPlan> entities = baseMapper.selectList(null);
+ List<ProgressPlanVO> vos = entities.stream()
+ .map(entity -> ProgressPlanVO.getVoByEntity(entity, null))
+ .collect(Collectors.toList());
+ return Result.ok().data(vos);
+ }
+}
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java
new file mode 100644
index 0000000..5f124ab
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java
@@ -0,0 +1,121 @@
+package com.ycl.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.ProjectPlanExamineRecord;
+import com.ycl.framework.utils.PageUtil;
+import com.ycl.mapper.ProjectPlanExamineRecordMapper;
+import com.ycl.service.ProjectPlanExamineRecordService;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.domain.form.ProjectPlanExamineRecordForm;
+import com.ycl.domain.vo.ProjectPlanExamineRecordVO;
+import com.ycl.domain.query.ProjectPlanExamineRecordQuery;
+import org.springframework.stereotype.Service;
+import lombok.RequiredArgsConstructor;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.Assert;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 椤圭洰瀹℃牳璁板綍琛� 鏈嶅姟瀹炵幇绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Service
+@RequiredArgsConstructor
+public class ProjectPlanExamineRecordServiceImpl extends ServiceImpl<ProjectPlanExamineRecordMapper, ProjectPlanExamineRecord> implements ProjectPlanExamineRecordService {
+
+ private final ProjectPlanExamineRecordMapper projectPlanExamineRecordMapper;
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ @Override
+ public Result add(ProjectPlanExamineRecordForm form) {
+ ProjectPlanExamineRecord entity = ProjectPlanExamineRecordForm.getEntityByForm(form, null);
+ baseMapper.insert(entity);
+ return Result.ok("娣诲姞鎴愬姛");
+ }
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ @Override
+ public Result update(ProjectPlanExamineRecordForm form) {
+ ProjectPlanExamineRecord entity = baseMapper.selectById(form.getId());
+
+ // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+ Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+ BeanUtils.copyProperties(form, entity);
+ baseMapper.updateById(entity);
+ return Result.ok("淇敼鎴愬姛");
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ @Override
+ public Result remove(List<String> ids) {
+ baseMapper.deleteBatchIds(ids);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ @Override
+ public Result removeById(String id) {
+ baseMapper.deleteById(id);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ @Override
+ public Result page(ProjectPlanExamineRecordQuery query) {
+ IPage<ProjectPlanExamineRecordVO> page = PageUtil.getPage(query, ProjectPlanExamineRecordVO.class);
+ baseMapper.getPage(page, query);
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ @Override
+ public Result detail(Integer id) {
+ ProjectPlanExamineRecordVO vo = baseMapper.getById(id);
+ Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+ return Result.ok().data(vo);
+ }
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ @Override
+ public Result all() {
+ List<ProjectPlanExamineRecord> entities = baseMapper.selectList(null);
+ List<ProjectPlanExamineRecordVO> vos = entities.stream()
+ .map(entity -> ProjectPlanExamineRecordVO.getVoByEntity(entity, null))
+ .collect(Collectors.toList());
+ return Result.ok().data(vos);
+ }
+}
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java
new file mode 100644
index 0000000..6c533f0
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java
@@ -0,0 +1,119 @@
+package com.ycl.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.ProjectPlanInfo;
+import com.ycl.domain.form.ProjectPlanInfoForm;
+import com.ycl.domain.query.ProjectPlanInfoQuery;
+import com.ycl.domain.vo.ProjectPlanInfoVO;
+import com.ycl.framework.utils.PageUtil;
+import com.ycl.mapper.ProjectPlanInfoMapper;
+import com.ycl.service.ProjectPlanInfoService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 椤圭洰璁″垝椤� 鏈嶅姟瀹炵幇绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Service
+@RequiredArgsConstructor
+public class ProjectPlanInfoServiceImpl extends ServiceImpl<ProjectPlanInfoMapper, ProjectPlanInfo> implements ProjectPlanInfoService {
+
+ private final ProjectPlanInfoMapper projectPlanInfoMapper;
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ @Override
+ public Result add(ProjectPlanInfoForm form) {
+ ProjectPlanInfo entity = ProjectPlanInfoForm.getEntityByForm(form, null);
+ baseMapper.insert(entity);
+ return Result.ok("娣诲姞鎴愬姛");
+ }
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ @Override
+ public Result update(ProjectPlanInfoForm form) {
+ ProjectPlanInfo entity = baseMapper.selectById(form.getId());
+
+ // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+ Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+ BeanUtils.copyProperties(form, entity);
+ baseMapper.updateById(entity);
+ return Result.ok("淇敼鎴愬姛");
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ @Override
+ public Result remove(List<String> ids) {
+ baseMapper.deleteBatchIds(ids);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ @Override
+ public Result removeById(String id) {
+ baseMapper.deleteById(id);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ @Override
+ public Result page(ProjectPlanInfoQuery query) {
+ IPage<ProjectPlanInfoVO> page = PageUtil.getPage(query, ProjectPlanInfoVO.class);
+ baseMapper.getPage(page, query);
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ @Override
+ public Result detail(Integer id) {
+ ProjectPlanInfoVO vo = baseMapper.getById(id);
+ Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+ return Result.ok().data(vo);
+ }
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ @Override
+ public Result all() {
+ List<ProjectPlanInfo> entities = baseMapper.selectList(null);
+ List<ProjectPlanInfoVO> vos = entities.stream()
+ .map(entity -> ProjectPlanInfoVO.getVoByEntity(entity, null))
+ .collect(Collectors.toList());
+ return Result.ok().data(vos);
+ }
+}
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java
new file mode 100644
index 0000000..fe9851a
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java
@@ -0,0 +1,120 @@
+package com.ycl.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.ProjectPlanProgressReport;
+import com.ycl.framework.utils.PageUtil;
+import com.ycl.mapper.ProjectPlanProgressReportMapper;
+import com.ycl.service.ProjectPlanProgressReportService;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.domain.form.ProjectPlanProgressReportForm;
+import com.ycl.domain.vo.ProjectPlanProgressReportVO;
+import com.ycl.domain.query.ProjectPlanProgressReportQuery;
+import org.springframework.stereotype.Service;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.Assert;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 杩涘害涓婃姤鍐呭 鏈嶅姟瀹炵幇绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Service
+@RequiredArgsConstructor
+public class ProjectPlanProgressReportServiceImpl extends ServiceImpl<ProjectPlanProgressReportMapper, ProjectPlanProgressReport> implements ProjectPlanProgressReportService {
+
+ private final ProjectPlanProgressReportMapper projectPlanProgressReportMapper;
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ @Override
+ public Result add(ProjectPlanProgressReportForm form) {
+ ProjectPlanProgressReport entity = ProjectPlanProgressReportForm.getEntityByForm(form, null);
+ baseMapper.insert(entity);
+ return Result.ok("娣诲姞鎴愬姛");
+ }
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ @Override
+ public Result update(ProjectPlanProgressReportForm form) {
+ ProjectPlanProgressReport entity = baseMapper.selectById(form.getId());
+
+ // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+ Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+ BeanUtils.copyProperties(form, entity);
+ baseMapper.updateById(entity);
+ return Result.ok("淇敼鎴愬姛");
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ @Override
+ public Result remove(List<String> ids) {
+ baseMapper.deleteBatchIds(ids);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ @Override
+ public Result removeById(String id) {
+ baseMapper.deleteById(id);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ @Override
+ public Result page(ProjectPlanProgressReportQuery query) {
+ IPage<ProjectPlanProgressReportVO> page = PageUtil.getPage(query, ProjectPlanProgressReportVO.class);
+ baseMapper.getPage(page, query);
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ @Override
+ public Result detail(Integer id) {
+ ProjectPlanProgressReportVO vo = baseMapper.getById(id);
+ Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+ return Result.ok().data(vo);
+ }
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ @Override
+ public Result all() {
+ List<ProjectPlanProgressReport> entities = baseMapper.selectList(null);
+ List<ProjectPlanProgressReportVO> vos = entities.stream()
+ .map(entity -> ProjectPlanProgressReportVO.getVoByEntity(entity, null))
+ .collect(Collectors.toList());
+ return Result.ok().data(vos);
+ }
+}
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java
new file mode 100644
index 0000000..dafefc2
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java
@@ -0,0 +1,119 @@
+package com.ycl.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.common.base.Result;
+import com.ycl.domain.entity.ProjectPlanRecord;
+import com.ycl.framework.utils.PageUtil;
+import com.ycl.mapper.ProjectPlanRecordMapper;
+import com.ycl.service.ProjectPlanRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.domain.form.ProjectPlanRecordForm;
+import com.ycl.domain.vo.ProjectPlanRecordVO;
+import com.ycl.domain.query.ProjectPlanRecordQuery;
+import org.springframework.stereotype.Service;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.Assert;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 椤圭洰璁″垝璁板綍 鏈嶅姟瀹炵幇绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Service
+@RequiredArgsConstructor
+public class ProjectPlanRecordServiceImpl extends ServiceImpl<ProjectPlanRecordMapper, ProjectPlanRecord> implements ProjectPlanRecordService {
+
+ private final ProjectPlanRecordMapper projectPlanRecordMapper;
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ @Override
+ public Result add(ProjectPlanRecordForm form) {
+ ProjectPlanRecord entity = ProjectPlanRecordForm.getEntityByForm(form, null);
+ baseMapper.insert(entity);
+ return Result.ok("娣诲姞鎴愬姛");
+ }
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ @Override
+ public Result update(ProjectPlanRecordForm form) {
+ ProjectPlanRecord entity = baseMapper.selectById(form.getId());
+
+ // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+ Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+ BeanUtils.copyProperties(form, entity);
+ baseMapper.updateById(entity);
+ return Result.ok("淇敼鎴愬姛");
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ @Override
+ public Result remove(List<String> ids) {
+ baseMapper.deleteBatchIds(ids);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ @Override
+ public Result removeById(String id) {
+ baseMapper.deleteById(id);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ @Override
+ public Result page(ProjectPlanRecordQuery query) {
+ IPage<ProjectPlanRecordVO> page = PageUtil.getPage(query, ProjectPlanRecordVO.class);
+ baseMapper.getPage(page, query);
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ @Override
+ public Result detail(Integer id) {
+ ProjectPlanRecordVO vo = baseMapper.getById(id);
+ Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+ return Result.ok().data(vo);
+ }
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ @Override
+ public Result all() {
+ List<ProjectPlanRecord> entities = baseMapper.selectList(null);
+ List<ProjectPlanRecordVO> vos = entities.stream()
+ .map(entity -> ProjectPlanRecordVO.getVoByEntity(entity, null))
+ .collect(Collectors.toList());
+ return Result.ok().data(vos);
+ }
+}
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectUnitRegistrationInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectUnitRegistrationInfoServiceImpl.java
new file mode 100644
index 0000000..13893b9
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/ProjectUnitRegistrationInfoServiceImpl.java
@@ -0,0 +1,119 @@
+package com.ycl.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.domain.entity.ProjectUnitRegistrationInfo;
+import com.ycl.mapper.ProjectUnitRegistrationInfoMapper;
+import com.ycl.service.ProjectUnitRegistrationInfoService;
+import com.ycl.common.base.Result;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.domain.form.ProjectUnitRegistrationInfoForm;
+import com.ycl.domain.vo.ProjectUnitRegistrationInfoVO;
+import com.ycl.domain.query.ProjectUnitRegistrationInfoQuery;
+import org.springframework.stereotype.Service;
+import lombok.RequiredArgsConstructor;
+import com.ycl.framework.utils.PageUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.Assert;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 椤圭洰锛堟硶浜猴級鍗曚綅鐧昏淇℃伅琛� 鏈嶅姟瀹炵幇绫�
+ *
+ * @author lhr
+ * @since 2024-11-22
+ */
+@Service
+@RequiredArgsConstructor
+public class ProjectUnitRegistrationInfoServiceImpl extends ServiceImpl<ProjectUnitRegistrationInfoMapper, ProjectUnitRegistrationInfo> implements ProjectUnitRegistrationInfoService {
+
+ private final ProjectUnitRegistrationInfoMapper projectUnitRegistrationInfoMapper;
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ @Override
+ public Result add(ProjectUnitRegistrationInfoForm form) {
+ ProjectUnitRegistrationInfo entity = ProjectUnitRegistrationInfoForm.getEntityByForm(form, null);
+ baseMapper.insert(entity);
+ return Result.ok("娣诲姞鎴愬姛");
+ }
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ @Override
+ public Result update(ProjectUnitRegistrationInfoForm form) {
+ ProjectUnitRegistrationInfo entity = baseMapper.selectById(form.getId());
+
+ // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+ Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+ BeanUtils.copyProperties(form, entity);
+ baseMapper.updateById(entity);
+ return Result.ok("淇敼鎴愬姛");
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ @Override
+ public Result remove(List<String> ids) {
+ baseMapper.deleteBatchIds(ids);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ @Override
+ public Result removeById(String id) {
+ baseMapper.deleteById(id);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ @Override
+ public Result page(ProjectUnitRegistrationInfoQuery query) {
+ IPage<ProjectUnitRegistrationInfoVO> page = PageUtil.getPage(query, ProjectUnitRegistrationInfoVO.class);
+ baseMapper.getPage(page, query);
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ @Override
+ public Result detail(Integer id) {
+ ProjectUnitRegistrationInfoVO vo = baseMapper.getById(id);
+ Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+ return Result.ok().data(vo);
+ }
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ @Override
+ public Result all() {
+ List<ProjectUnitRegistrationInfo> entities = baseMapper.selectList(null);
+ List<ProjectUnitRegistrationInfoVO> vos = entities.stream()
+ .map(entity -> ProjectUnitRegistrationInfoVO.getVoByEntity(entity, null))
+ .collect(Collectors.toList());
+ return Result.ok().data(vos);
+ }
+}
diff --git a/business/src/main/resources/mapper/PlanMapper.xml b/business/src/main/resources/mapper/PlanMapper.xml
new file mode 100644
index 0000000..f257919
--- /dev/null
+++ b/business/src/main/resources/mapper/PlanMapper.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.mapper.PlanMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.domain.vo.PlanVO">
+ <result column="project_info_id" property="projectInfoId" />
+ <result column="report_status" property="reportStatus" />
+ <result column="month_status" property="monthStatus" />
+ <result column="season_status" property="seasonStatus" />
+ <result column="year_status" property="yearStatus" />
+ <result column="gmt_create_time" property="gmtCreateTime" />
+ <result column="gmt_update_time" property="gmtUpdateTime" />
+ </resultMap>
+
+
+
+
+
+
+
+ <select id="getById" resultMap="BaseResultMap">
+ SELECT
+ TP.project_info_id,
+ TP.report_status,
+ TP.month_status,
+ TP.season_status,
+ TP.year_status,
+ TP.gmt_create_time,
+ TP.gmt_update_time,
+ TP.id
+ FROM
+ t_plan TP
+ WHERE
+ TP.id = #{id} AND TP.deleted = 0
+ </select>
+
+
+ <select id="getPage" resultMap="BaseResultMap">
+ SELECT
+ TP.project_info_id,
+ TP.report_status,
+ TP.month_status,
+ TP.season_status,
+ TP.year_status,
+ TP.gmt_create_time,
+ TP.gmt_update_time,
+ TP.id
+ FROM
+ t_plan TP
+ WHERE
+ TP.deleted = 0
+ </select>
+
+</mapper>
diff --git a/business/src/main/resources/mapper/ProgressPlanMapper.xml b/business/src/main/resources/mapper/ProgressPlanMapper.xml
new file mode 100644
index 0000000..4d1c63d
--- /dev/null
+++ b/business/src/main/resources/mapper/ProgressPlanMapper.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.mapper.ProgressPlanMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProgressPlanVO">
+ <result column="project_info_id" property="projectInfoId" />
+ <result column="report_status" property="reportStatus" />
+ <result column="month_status" property="monthStatus" />
+ <result column="season_status" property="seasonStatus" />
+ <result column="year_status" property="yearStatus" />
+ <result column="gmt_create_time" property="gmtCreateTime" />
+ <result column="gmt_update_time" property="gmtUpdateTime" />
+ </resultMap>
+
+
+
+
+
+
+
+ <select id="getById" resultMap="BaseResultMap">
+ SELECT
+ TPP.project_info_id,
+ TPP.report_status,
+ TPP.month_status,
+ TPP.season_status,
+ TPP.year_status,
+ TPP.gmt_create_time,
+ TPP.gmt_update_time,
+ TPP.id
+ FROM
+ t_progress_plan TPP
+ WHERE
+ TPP.id = #{id} AND TPP.deleted = 0
+ </select>
+
+
+ <select id="getPage" resultMap="BaseResultMap">
+ SELECT
+ TPP.project_info_id,
+ TPP.report_status,
+ TPP.month_status,
+ TPP.season_status,
+ TPP.year_status,
+ TPP.gmt_create_time,
+ TPP.gmt_update_time,
+ TPP.id
+ FROM
+ t_progress_plan TPP
+ WHERE
+ TPP.deleted = 0
+ </select>
+
+</mapper>
diff --git a/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml b/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml
new file mode 100644
index 0000000..2e4cb87
--- /dev/null
+++ b/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.mapper.ProjectPlanExamineRecordMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectPlanExamineRecordVO">
+ <result column="project_plan_record_id" property="projectPlanRecordId" />
+ <result column="department_user_id" property="departmentUserId" />
+ <result column="manager_user_id" property="managerUserId" />
+ <result column="department_examine" property="departmentExamine" />
+ <result column="department_approval" property="departmentApproval" />
+ <result column="department_approval_reply" property="departmentApprovalReply" />
+ <result column="manage_examine" property="manageExamine" />
+ <result column="manage_approval" property="manageApproval" />
+ <result column="manage_approval_reply" property="manageApprovalReply" />
+ <result column="event_type" property="eventType" />
+ <result column="delay_start_time" property="delayStartTime" />
+ <result column="delay_end_time" property="delayEndTime" />
+ </resultMap>
+
+
+
+
+
+
+
+ <select id="getById" resultMap="BaseResultMap">
+ SELECT
+ TPPER.project_plan_record_id,
+ TPPER.department_user_id,
+ TPPER.manager_user_id,
+ TPPER.department_examine,
+ TPPER.department_approval,
+ TPPER.department_approval_reply,
+ TPPER.manage_examine,
+ TPPER.manage_approval,
+ TPPER.manage_approval_reply,
+ TPPER.event_type,
+ TPPER.delay_start_time,
+ TPPER.delay_end_time,
+ TPPER.id
+ FROM
+ t_project_plan_examine_record TPPER
+ WHERE
+ TPPER.id = #{id} AND TPPER.deleted = 0
+ </select>
+
+
+ <select id="getPage" resultMap="BaseResultMap">
+ SELECT
+ TPPER.project_plan_record_id,
+ TPPER.department_user_id,
+ TPPER.manager_user_id,
+ TPPER.department_examine,
+ TPPER.department_approval,
+ TPPER.department_approval_reply,
+ TPPER.manage_examine,
+ TPPER.manage_approval,
+ TPPER.manage_approval_reply,
+ TPPER.event_type,
+ TPPER.delay_start_time,
+ TPPER.delay_end_time,
+ TPPER.id
+ FROM
+ t_project_plan_examine_record TPPER
+ WHERE
+ TPPER.deleted = 0
+ </select>
+
+</mapper>
diff --git a/business/src/main/resources/mapper/ProjectPlanInfoMapper.xml b/business/src/main/resources/mapper/ProjectPlanInfoMapper.xml
new file mode 100644
index 0000000..2ea53cc
--- /dev/null
+++ b/business/src/main/resources/mapper/ProjectPlanInfoMapper.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.mapper.ProjectPlanInfoMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectPlanInfoVO">
+ <result column="project_plan_record_id" property="projectPlanRecordId" />
+ <result column="title" property="title" />
+ <result column="progress_status" property="progressStatus" />
+ <result column="start_time" property="startTime" />
+ <result column="end_time" property="endTime" />
+ </resultMap>
+
+
+
+
+
+
+
+ <select id="getById" resultMap="BaseResultMap">
+ SELECT
+ TPPI.project_plan_record_id,
+ TPPI.title,
+ TPPI.progress_status,
+ TPPI.start_time,
+ TPPI.end_time,
+ TPPI.id
+ FROM
+ t_project_plan_info TPPI
+ WHERE
+ TPPI.id = #{id} AND TPPI.deleted = 0
+ </select>
+
+
+ <select id="getPage" resultMap="BaseResultMap">
+ SELECT
+ TPPI.project_plan_record_id,
+ TPPI.title,
+ TPPI.progress_status,
+ TPPI.start_time,
+ TPPI.end_time,
+ TPPI.id
+ FROM
+ t_project_plan_info TPPI
+ WHERE
+ TPPI.deleted = 0
+ </select>
+
+</mapper>
diff --git a/business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml b/business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml
new file mode 100644
index 0000000..8a6d576
--- /dev/null
+++ b/business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.mapper.ProjectPlanProgressReportMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectPlanProgressReportVO">
+ <result column="project_plan_info_id" property="projectPlanInfoId" />
+ <result column="start_time" property="startTime" />
+ <result column="end_time" property="endTime" />
+ <result column="progress_status" property="progressStatus" />
+ <result column="actual_invest" property="actualInvest" />
+ </resultMap>
+
+
+
+
+
+
+
+ <select id="getById" resultMap="BaseResultMap">
+ SELECT
+ TPPPR.project_plan_info_id,
+ TPPPR.start_time,
+ TPPPR.end_time,
+ TPPPR.progress_status,
+ TPPPR.actual_invest,
+ TPPPR.id
+ FROM
+ t_project_plan_progress_report TPPPR
+ WHERE
+ TPPPR.id = #{id} AND TPPPR.deleted = 0
+ </select>
+
+
+ <select id="getPage" resultMap="BaseResultMap">
+ SELECT
+ TPPPR.project_plan_info_id,
+ TPPPR.start_time,
+ TPPPR.end_time,
+ TPPPR.progress_status,
+ TPPPR.actual_invest,
+ TPPPR.id
+ FROM
+ t_project_plan_progress_report TPPPR
+ WHERE
+ TPPPR.deleted = 0
+ </select>
+
+</mapper>
diff --git a/business/src/main/resources/mapper/ProjectPlanRecordMapper.xml b/business/src/main/resources/mapper/ProjectPlanRecordMapper.xml
new file mode 100644
index 0000000..e6e6c5a
--- /dev/null
+++ b/business/src/main/resources/mapper/ProjectPlanRecordMapper.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.mapper.ProjectPlanRecordMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectPlanRecordVO">
+ <result column="project_info_id" property="projectInfoId" />
+ <result column="plan_id" property="planId" />
+ <result column="engineering_info_id" property="engineeringInfoId" />
+ <result column="plan_time" property="planTime" />
+ <result column="plan_time_flag" property="planTimeFlag" />
+ <result column="create_time" property="createTime" />
+ <result column="report_status" property="reportStatus" />
+ <result column="actual_invest" property="actualInvest" />
+ </resultMap>
+
+
+
+
+
+
+
+ <select id="getById" resultMap="BaseResultMap">
+ SELECT
+ TPPR.project_info_id,
+ TPPR.plan_id,
+ TPPR.engineering_info_id,
+ TPPR.plan_time,
+ TPPR.plan_time_flag,
+ TPPR.create_time,
+ TPPR.report_status,
+ TPPR.actual_invest,
+ TPPR.id
+ FROM
+ t_project_plan_record TPPR
+ WHERE
+ TPPR.id = #{id} AND TPPR.deleted = 0
+ </select>
+
+
+ <select id="getPage" resultMap="BaseResultMap">
+ SELECT
+ TPPR.project_info_id,
+ TPPR.plan_id,
+ TPPR.engineering_info_id,
+ TPPR.plan_time,
+ TPPR.plan_time_flag,
+ TPPR.create_time,
+ TPPR.report_status,
+ TPPR.actual_invest,
+ TPPR.id
+ FROM
+ t_project_plan_record TPPR
+ WHERE
+ TPPR.deleted = 0
+ </select>
+
+</mapper>
diff --git a/business/src/main/resources/mapper/ProjectUnitRegistrationInfoMapper.xml b/business/src/main/resources/mapper/ProjectUnitRegistrationInfoMapper.xml
new file mode 100644
index 0000000..e72c4c9
--- /dev/null
+++ b/business/src/main/resources/mapper/ProjectUnitRegistrationInfoMapper.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.mapper.ProjectUnitRegistrationInfoMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectUnitRegistrationInfoVO">
+ <result column="project_id" property="projectId" />
+ <result column="total_investment" property="totalInvestment" />
+ <result column="project_unit" property="projectUnit" />
+ <result column="project_unit_type" property="projectUnitType" />
+ <result column="registration_type" property="registrationType" />
+ <result column="holding_situation" property="holdingSituation" />
+ <result column="certificate_type" property="certificateType" />
+ <result column="certificate_number" property="certificateNumber" />
+ <result column="registered_address" property="registeredAddress" />
+ <result column="registered_capital" property="registeredCapital" />
+ <result column="legal_representative" property="legalRepresentative" />
+ <result column="fixed_phone" property="fixedPhone" />
+ <result column="legal_person_idcard" property="legalPersonIdcard" />
+ <result column="project_contact_person" property="projectContactPerson" />
+ <result column="phone" property="phone" />
+ <result column="contact_idcard" property="contactIdcard" />
+ <result column="wechat" property="wechat" />
+ <result column="contact_address" property="contactAddress" />
+ <result column="post_code" property="postCode" />
+ <result column="email" property="email" />
+ <result column="create_by" property="createBy" />
+ <result column="update_by" property="updateBy" />
+ <result column="gmt_create_time" property="gmtCreateTime" />
+ <result column="gmt_update_time" property="gmtUpdateTime" />
+ </resultMap>
+
+
+
+
+
+
+
+ <select id="getById" resultMap="BaseResultMap">
+ SELECT
+ TPURI.project_id,
+ TPURI.total_investment,
+ TPURI.project_unit,
+ TPURI.project_unit_type,
+ TPURI.registration_type,
+ TPURI.holding_situation,
+ TPURI.certificate_type,
+ TPURI.certificate_number,
+ TPURI.registered_address,
+ TPURI.registered_capital,
+ TPURI.legal_representative,
+ TPURI.fixed_phone,
+ TPURI.legal_person_idcard,
+ TPURI.project_contact_person,
+ TPURI.phone,
+ TPURI.contact_idcard,
+ TPURI.wechat,
+ TPURI.contact_address,
+ TPURI.post_code,
+ TPURI.email,
+ TPURI.create_by,
+ TPURI.update_by,
+ TPURI.gmt_create_time,
+ TPURI.gmt_update_time,
+ TPURI.id
+ FROM
+ t_project_unit_registration_info TPURI
+ WHERE
+ TPURI.id = #{id} AND TPURI.deleted = 0
+ </select>
+
+
+ <select id="getPage" resultMap="BaseResultMap">
+ SELECT
+ TPURI.project_id,
+ TPURI.total_investment,
+ TPURI.project_unit,
+ TPURI.project_unit_type,
+ TPURI.registration_type,
+ TPURI.holding_situation,
+ TPURI.certificate_type,
+ TPURI.certificate_number,
+ TPURI.registered_address,
+ TPURI.registered_capital,
+ TPURI.legal_representative,
+ TPURI.fixed_phone,
+ TPURI.legal_person_idcard,
+ TPURI.project_contact_person,
+ TPURI.phone,
+ TPURI.contact_idcard,
+ TPURI.wechat,
+ TPURI.contact_address,
+ TPURI.post_code,
+ TPURI.email,
+ TPURI.create_by,
+ TPURI.update_by,
+ TPURI.gmt_create_time,
+ TPURI.gmt_update_time,
+ TPURI.id
+ FROM
+ t_project_unit_registration_info TPURI
+ WHERE
+ TPURI.deleted = 0
+ </select>
+
+</mapper>
--
Gitblit v1.8.0