From 7496486a5ebadc123b8a79696647f6636894b3ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=9D=E5=BD=AC?= <14779346+xswl_123@user.noreply.gitee.com> Date: Mon, 11 Aug 2025 14:23:52 +0800 Subject: [PATCH] =?UTF-8?q?8-11=20=E9=A1=B9=E7=9B=AE=E7=AB=8B=E9=A1=B9?= =?UTF-8?q?=E6=97=B6=E5=8F=AF=E5=88=9D=E5=A7=8B=E5=8C=96=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=B8=80=E6=AC=A1=E6=80=A7=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=A4=9A=E4=B8=AA=E5=B1=9E=E4=BA=8E=E8=AF=A5=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=9A=84=E4=BB=BB=E5=8A=A1=EF=BC=88=E9=9C=80=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=90=8D=E7=A7=B0=E3=80=81=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=BC=96=E5=8F=B7=E3=80=81=E8=AE=A1=E5=88=92=E5=BC=80=E5=A7=8B?= =?UTF-8?q?/=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4=E3=80=81=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=BB=84id=E3=80=81=E8=B4=9F=E8=B4=A3=E4=BA=BAid?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../znpt/domain/vo/ProjectInitTaskReq.java | 41 +++++++++++++++++++ .../com/dite/znpt/domain/vo/ProjectReq.java | 6 ++- .../znpt/service/impl/ProjectServiceImpl.java | 12 ++++++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/ProjectInitTaskReq.java diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectInitTaskReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectInitTaskReq.java new file mode 100644 index 0000000..e1ef86f --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectInitTaskReq.java @@ -0,0 +1,41 @@ +package com.dite.znpt.domain.vo; + +import com.dite.znpt.util.ValidationGroup; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.time.LocalDate; + +@Data +@ApiModel("项目初始化任务请求参数") +public class ProjectInitTaskReq { + @ApiModelProperty("任务名称") + private String taskName; + + @NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目任务编号不能为空") + @Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 100, message = "项目任务编号长度不能超过100字符") + @ApiModelProperty("项目任务编号") + private String taskCode; + + @NotNull(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "计划开始时间不能为空") + @ApiModelProperty("计划开始时间") + private LocalDate planStartDate; + + @NotNull(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "计划结束时间不能为空") + @ApiModelProperty("计划结束时间") + private LocalDate planEndDate; + + @NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "任务组id不能为空") + @Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 32, message = "任务组id长度不能超过32字符") + @ApiModelProperty("任务组id") + private String taskGroupId; + + @NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "任务负责人id不能为空") + @Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 100, message = "任务负责人id长度不能超过100字符") + @ApiModelProperty("任务负责人id") + private String mainUserId; +} diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java index 5fdcc16..881ecb6 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java @@ -1,5 +1,6 @@ package com.dite.znpt.domain.vo; +import com.dite.znpt.domain.entity.ProjectTaskEntity; import com.dite.znpt.util.ValidationGroup; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +11,7 @@ import javax.validation.constraints.Size; import java.io.Serial; import java.io.Serializable; import java.time.LocalDate; +import java.util.List; /** * @Author: gaoxiong @@ -31,7 +33,6 @@ public class ProjectReq implements Serializable { @ApiModelProperty("项目来源") private String projectOrigin; - @NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目预算不能为空") @ApiModelProperty("项目预算") private Integer projectBudget; @@ -127,4 +128,7 @@ public class ProjectReq implements Serializable { @ApiModelProperty("其他杂费") private Double othersCost; + + @ApiModelProperty("项目初始任务") + private List tasks; } diff --git a/core/src/main/java/com/dite/znpt/service/impl/ProjectServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ProjectServiceImpl.java index c7b3038..de2a7e4 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ProjectServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ProjectServiceImpl.java @@ -1,12 +1,15 @@ package com.dite.znpt.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dite.znpt.constant.Message; import com.dite.znpt.converts.Converts; import com.dite.znpt.domain.entity.ProjectEntity; +import com.dite.znpt.domain.entity.ProjectTaskEntity; import com.dite.znpt.domain.entity.UserEntity; +import com.dite.znpt.domain.vo.ProjectInitTaskReq; import com.dite.znpt.domain.vo.ProjectListReq; import com.dite.znpt.domain.vo.ProjectListResp; import com.dite.znpt.domain.vo.ProjectReq; @@ -16,6 +19,7 @@ import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.ProjectMapper; import com.dite.znpt.service.ProjectService; import com.dite.znpt.service.UserService; +import com.dite.znpt.service.ProjectTaskService; import com.dite.znpt.util.PageUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -40,6 +44,9 @@ public class ProjectServiceImpl extends ServiceImpl