From 15086236ea8c416da9af4918c6381f2946e9c155 Mon Sep 17 00:00:00 2001 From: wangna0328 <3402195679@qq.com> Date: Mon, 11 Aug 2025 15:23:39 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=BA=BA=E5=91=98=E6=A8=A1?= =?UTF-8?q?=E5=9D=97crud=E6=96=B9=E6=B3=95=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../znpt/domain/vo/ProjectKanbanDataResp.java | 9 + .../domain/vo/ProjectKanbanStatsResp.java | 9 + .../znpt/domain/vo/TeamMemberUpdateReq.java | 60 ++++++ .../dite/znpt/enums/ProjectStatusEnum.java | 11 +- .../znpt/service/ProjectMemberService.java | 5 + .../impl/ProjectMemberServiceImpl.java | 186 ++++++++++++++++-- .../controller/ProjectMemberController.java | 2 +- 7 files changed, 265 insertions(+), 17 deletions(-) create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/TeamMemberUpdateReq.java diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanDataResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanDataResp.java index 2e7e598..86eae78 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanDataResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanDataResp.java @@ -32,6 +32,15 @@ public class ProjectKanbanDataResp { @ApiModelProperty("已验收项目列表") private List acceptedProjects; + @ApiModelProperty("验收中项目列表") + private List acceptanceProjects; + + @ApiModelProperty("回款中项目列表") + private List collectionProjects; + + @ApiModelProperty("已结算项目列表") + private List settledProjects; + @Data @ApiModel(value="ProjectKanbanItem对象", description="项目看板项目项") public static class ProjectKanbanItem { diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanStatsResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanStatsResp.java index fe2f6f0..264e340 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanStatsResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanStatsResp.java @@ -31,6 +31,15 @@ public class ProjectKanbanStatsResp { @ApiModelProperty("已验收项目数") private Long acceptedProjectCount; + @ApiModelProperty("验收中项目数") + private Long acceptanceProjectCount; + + @ApiModelProperty("回款中项目数") + private Long collectionProjectCount; + + @ApiModelProperty("已结算项目数") + private Long settledProjectCount; + @ApiModelProperty("总机组数") private Long totalTurbineCount; diff --git a/core/src/main/java/com/dite/znpt/domain/vo/TeamMemberUpdateReq.java b/core/src/main/java/com/dite/znpt/domain/vo/TeamMemberUpdateReq.java new file mode 100644 index 0000000..f375d8c --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/TeamMemberUpdateReq.java @@ -0,0 +1,60 @@ +package com.dite.znpt.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDate; + +/** + * @author wangna + * @date 2025/08/05 + * @Description: 团队成员更新请求类(用于更新操作,移除必填验证) + */ +@Data +@ApiModel(value="TeamMemberUpdateReq对象", description="团队成员更新请求类") +public class TeamMemberUpdateReq implements Serializable { + + @ApiModelProperty("项目ID") + private String projectId; + + @ApiModelProperty("机组ID(可选)") + private String turbineId; + + @ApiModelProperty("任务组ID(可选)") + private String taskGroupId; + + @ApiModelProperty("任务ID(可选)") + private String taskId; + + @ApiModelProperty("用户ID") + private String userId; + + @ApiModelProperty("项目角色类型:PROJECT_MANAGER-项目经理,SAFETY_OFFICER-安全员,QUALITY_OFFICER-质量员,CONSTRUCTOR-施工人员,TEAM_LEADER-施工组长") + private String roleType; + + @ApiModelProperty("具体岗位代码(如:GROUND_SERVICE-地勤,DRIVER-司机,ASCENDING-登高等)") + private String jobCode; + + @ApiModelProperty("岗位描述") + private String jobDesc; + + @ApiModelProperty("加入时间") + private LocalDate joinDate; + + @ApiModelProperty("离开时间") + private LocalDate leaveDate; + + @ApiModelProperty("状态:ACTIVE-在职,INACTIVE-离职,PENDING-待入职") + private String status = "ACTIVE"; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("用户电话") + private String phone; + + @ApiModelProperty("用户邮箱") + private String email; +} diff --git a/core/src/main/java/com/dite/znpt/enums/ProjectStatusEnum.java b/core/src/main/java/com/dite/znpt/enums/ProjectStatusEnum.java index 7836468..eadf498 100644 --- a/core/src/main/java/com/dite/znpt/enums/ProjectStatusEnum.java +++ b/core/src/main/java/com/dite/znpt/enums/ProjectStatusEnum.java @@ -15,11 +15,14 @@ import java.util.List; @Getter @AllArgsConstructor public enum ProjectStatusEnum { - PENDING(0, "待施工"), - IN_PROGRESS(1, "施工中"), - COMPLETED(2, "已完工"), + PENDING(0, "未开工"), + IN_PREPARATION(1, "筹备中"), + IN_PROGRESS(2, "开工中"), AUDITED(3, "已审核"), - ACCEPTED(4, "已验收"); + COMPLETED(4, "已完工"), + ACCEPTED(5, "已验收"), + IN_COLLECTION(6, "回款中"), + SETTLED(7, "已结算"); private final int code; private final String desc; diff --git a/core/src/main/java/com/dite/znpt/service/ProjectMemberService.java b/core/src/main/java/com/dite/znpt/service/ProjectMemberService.java index 939ff8a..c622b9e 100644 --- a/core/src/main/java/com/dite/znpt/service/ProjectMemberService.java +++ b/core/src/main/java/com/dite/znpt/service/ProjectMemberService.java @@ -27,6 +27,11 @@ public interface ProjectMemberService extends IService { */ ProjectMemberResp updateTeamMember(String memberId, TeamMemberReq req); + /** + * 更新团队成员信息(使用更新专用请求类) + */ + ProjectMemberResp updateTeamMember(String memberId, TeamMemberUpdateReq req); + /** * 删除团队成员(支持单个或批量删除) */ diff --git a/core/src/main/java/com/dite/znpt/service/impl/ProjectMemberServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ProjectMemberServiceImpl.java index 1c03097..d832fb9 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ProjectMemberServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ProjectMemberServiceImpl.java @@ -1,5 +1,6 @@ package com.dite.znpt.service.impl; +import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; @@ -18,6 +19,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -188,6 +190,14 @@ public class ProjectMemberServiceImpl extends ServiceImpl list = this.baseMapper.queryTeamMembers(query); - return list.stream() - .filter(member -> member.getMemberId().equals(memberId)) + ProjectMemberResp member = list.stream() + .filter(m -> m.getMemberId().equals(memberId)) .findFirst() .orElse(null); + + if (member != null) { + // 丰富成员信息 + enrichMemberInfo(CollUtil.toList(member)); + } + + return member; } // ========================== 项目看板相关方法实现 ========================== @@ -300,11 +454,15 @@ public class ProjectMemberServiceImpl extends ServiceImpl updateTeamMember( @PathVariable String memberId, - @Valid @RequestBody TeamMemberReq req) { + @RequestBody TeamMemberUpdateReq req) { return Result.ok(projectMemberService.updateTeamMember(memberId, req)); }