Merge branch 'development' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend into development
This commit is contained in:
commit
2db53fd62e
|
@ -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;
|
||||
}
|
|
@ -32,6 +32,15 @@ public class ProjectKanbanDataResp {
|
|||
@ApiModelProperty("已验收项目列表")
|
||||
private List<ProjectKanbanItem> acceptedProjects;
|
||||
|
||||
@ApiModelProperty("验收中项目列表")
|
||||
private List<ProjectKanbanItem> acceptanceProjects;
|
||||
|
||||
@ApiModelProperty("回款中项目列表")
|
||||
private List<ProjectKanbanItem> collectionProjects;
|
||||
|
||||
@ApiModelProperty("已结算项目列表")
|
||||
private List<ProjectKanbanItem> settledProjects;
|
||||
|
||||
@Data
|
||||
@ApiModel(value="ProjectKanbanItem对象", description="项目看板项目项")
|
||||
public static class ProjectKanbanItem {
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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<ProjectInitTaskReq> tasks;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -27,6 +27,11 @@ public interface ProjectMemberService extends IService<ProjectMemberEntity> {
|
|||
*/
|
||||
ProjectMemberResp updateTeamMember(String memberId, TeamMemberReq req);
|
||||
|
||||
/**
|
||||
* 更新团队成员信息(使用更新专用请求类)
|
||||
*/
|
||||
ProjectMemberResp updateTeamMember(String memberId, TeamMemberUpdateReq req);
|
||||
|
||||
/**
|
||||
* 删除团队成员(支持单个或批量删除)
|
||||
*/
|
||||
|
|
|
@ -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<ProjectMemberMapper, P
|
|||
ProjectMemberEntity entity = new ProjectMemberEntity();
|
||||
BeanUtil.copyProperties(req, entity);
|
||||
|
||||
// 设置创建和更新信息
|
||||
String currentUserId = StpUtil.getLoginIdAsString();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
entity.setCreateBy(currentUserId);
|
||||
entity.setCreateTime(now);
|
||||
entity.setUpdateBy(currentUserId);
|
||||
entity.setUpdateTime(now);
|
||||
|
||||
// 保存到数据库
|
||||
this.save(entity);
|
||||
|
||||
|
@ -208,6 +218,85 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
|
|||
|
||||
// 更新成员信息
|
||||
BeanUtil.copyProperties(req, existingMember);
|
||||
|
||||
// 设置更新信息
|
||||
existingMember.setUpdateBy(StpUtil.getLoginIdAsString());
|
||||
existingMember.setUpdateTime(LocalDateTime.now());
|
||||
|
||||
this.updateById(existingMember);
|
||||
|
||||
// 返回更新后的成员信息
|
||||
return getTeamMemberById(memberId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProjectMemberResp updateTeamMember(String memberId, TeamMemberUpdateReq req) {
|
||||
// 验证成员是否存在
|
||||
ProjectMemberEntity existingMember = this.getById(memberId);
|
||||
if (existingMember == null) {
|
||||
throw new ServiceException("项目成员不存在");
|
||||
}
|
||||
|
||||
// 更新成员信息 - 只更新非空字段,保留原有值
|
||||
if (StrUtil.isNotBlank(req.getTurbineId())) {
|
||||
existingMember.setTurbineId(req.getTurbineId());
|
||||
}
|
||||
if (StrUtil.isNotBlank(req.getTaskGroupId())) {
|
||||
existingMember.setTaskGroupId(req.getTaskGroupId());
|
||||
}
|
||||
if (StrUtil.isNotBlank(req.getTaskId())) {
|
||||
existingMember.setTaskId(req.getTaskId());
|
||||
}
|
||||
if (StrUtil.isNotBlank(req.getRoleType())) {
|
||||
existingMember.setRoleType(req.getRoleType());
|
||||
}
|
||||
if (StrUtil.isNotBlank(req.getJobCode())) {
|
||||
existingMember.setJobCode(req.getJobCode());
|
||||
}
|
||||
if (StrUtil.isNotBlank(req.getJobDesc())) {
|
||||
existingMember.setJobDesc(req.getJobDesc());
|
||||
}
|
||||
if (req.getJoinDate() != null) {
|
||||
existingMember.setJoinDate(req.getJoinDate());
|
||||
}
|
||||
if (req.getLeaveDate() != null) {
|
||||
existingMember.setLeaveDate(req.getLeaveDate());
|
||||
}
|
||||
if (StrUtil.isNotBlank(req.getStatus())) {
|
||||
existingMember.setStatus(req.getStatus());
|
||||
}
|
||||
if (StrUtil.isNotBlank(req.getRemark())) {
|
||||
existingMember.setRemark(req.getRemark());
|
||||
}
|
||||
|
||||
// 验证关联数据是否存在(只验证非空字段)
|
||||
validateUpdateTeamMemberRequest(req, existingMember);
|
||||
|
||||
// 如果更新了用户信息(电话或邮箱),同时更新用户表
|
||||
if (StrUtil.isNotBlank(req.getPhone()) || StrUtil.isNotBlank(req.getEmail())) {
|
||||
UserEntity user = userService.getById(existingMember.getUserId());
|
||||
if (user != null) {
|
||||
boolean needUpdateUser = false;
|
||||
if (StrUtil.isNotBlank(req.getPhone())) {
|
||||
user.setMobile(req.getPhone());
|
||||
needUpdateUser = true;
|
||||
}
|
||||
if (StrUtil.isNotBlank(req.getEmail())) {
|
||||
user.setEmail(req.getEmail());
|
||||
needUpdateUser = true;
|
||||
}
|
||||
if (needUpdateUser) {
|
||||
user.setUpdateBy(StpUtil.getLoginIdAsString());
|
||||
user.setUpdateTime(LocalDateTime.now());
|
||||
userService.updateById(user);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 设置更新信息
|
||||
existingMember.setUpdateBy(StpUtil.getLoginIdAsString());
|
||||
existingMember.setUpdateTime(LocalDateTime.now());
|
||||
|
||||
this.updateById(existingMember);
|
||||
|
||||
// 返回更新后的成员信息
|
||||
|
@ -271,6 +360,64 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证更新团队成员请求参数(只验证非空字段)
|
||||
*/
|
||||
private void validateUpdateTeamMemberRequest(TeamMemberReq req, ProjectMemberEntity existingMember) {
|
||||
// 验证机组是否存在(如果指定了机组)
|
||||
if (StrUtil.isNotBlank(req.getTurbineId())) {
|
||||
TurbineEntity turbine = turbineService.getById(req.getTurbineId());
|
||||
if (turbine == null) {
|
||||
throw new ServiceException("机组不存在");
|
||||
}
|
||||
}
|
||||
|
||||
// 验证任务组是否存在(如果指定了任务组)
|
||||
if (StrUtil.isNotBlank(req.getTaskGroupId())) {
|
||||
ProjectTaskGroupEntity taskGroup = projectTaskGroupService.getById(req.getTaskGroupId());
|
||||
if (taskGroup == null) {
|
||||
throw new ServiceException("任务组不存在");
|
||||
}
|
||||
}
|
||||
|
||||
// 验证任务是否存在(如果指定了任务)
|
||||
if (StrUtil.isNotBlank(req.getTaskId())) {
|
||||
ProjectTaskEntity task = projectTaskService.getById(req.getTaskId());
|
||||
if (task == null) {
|
||||
throw new ServiceException("任务不存在");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证更新团队成员请求参数(只验证非空字段)
|
||||
*/
|
||||
private void validateUpdateTeamMemberRequest(TeamMemberUpdateReq req, ProjectMemberEntity existingMember) {
|
||||
// 验证机组是否存在(如果指定了机组)
|
||||
if (StrUtil.isNotBlank(req.getTurbineId())) {
|
||||
TurbineEntity turbine = turbineService.getById(req.getTurbineId());
|
||||
if (turbine == null) {
|
||||
throw new ServiceException("机组不存在");
|
||||
}
|
||||
}
|
||||
|
||||
// 验证任务组是否存在(如果指定了任务组)
|
||||
if (StrUtil.isNotBlank(req.getTaskGroupId())) {
|
||||
ProjectTaskGroupEntity taskGroup = projectTaskGroupService.getById(req.getTaskGroupId());
|
||||
if (taskGroup == null) {
|
||||
throw new ServiceException("任务组不存在");
|
||||
}
|
||||
}
|
||||
|
||||
// 验证任务是否存在(如果指定了任务)
|
||||
if (StrUtil.isNotBlank(req.getTaskId())) {
|
||||
ProjectTaskEntity task = projectTaskService.getById(req.getTaskId());
|
||||
if (task == null) {
|
||||
throw new ServiceException("任务不存在");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据成员ID获取成员信息
|
||||
*/
|
||||
|
@ -286,10 +433,17 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
|
|||
|
||||
// 查询并返回单个成员信息
|
||||
List<ProjectMemberResp> 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<ProjectMemberMapper, P
|
|||
|
||||
// 统计项目数量
|
||||
resp.setTotalProjectsCount(projectService.count());
|
||||
resp.setPendingProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 0).count());
|
||||
resp.setInProgressProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 1).count());
|
||||
resp.setCompletedProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 2).count());
|
||||
resp.setAuditedProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 3).count());
|
||||
resp.setAcceptedProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 4).count());
|
||||
resp.setPendingProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 0).count()); // 未开工
|
||||
resp.setInProgressProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 1).count()); // 筹备中
|
||||
resp.setCompletedProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 2).count()); // 开工中
|
||||
resp.setAuditedProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 3).count()); // 已审核
|
||||
resp.setAcceptedProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 4).count()); // 已完工
|
||||
// 新增状态统计
|
||||
resp.setAcceptanceProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 5).count()); // 已验收
|
||||
resp.setCollectionProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 6).count()); // 回款中
|
||||
resp.setSettledProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 7).count()); // 已结算
|
||||
|
||||
// 统计机组数量
|
||||
resp.setTotalTurbineCount(turbineService.count());
|
||||
|
@ -336,11 +494,15 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
|
|||
ProjectKanbanDataResp resp = new ProjectKanbanDataResp();
|
||||
|
||||
// 获取各状态的项目列表
|
||||
resp.setPendingProjects(getProjectKanbanItems(0));
|
||||
resp.setInProgressProjects(getProjectKanbanItems(1));
|
||||
resp.setCompletedProjects(getProjectKanbanItems(2));
|
||||
resp.setAuditedProjects(getProjectKanbanItems(3));
|
||||
resp.setAcceptedProjects(getProjectKanbanItems(4));
|
||||
resp.setPendingProjects(getProjectKanbanItems(0)); // 未开工
|
||||
resp.setInProgressProjects(getProjectKanbanItems(1)); // 筹备中
|
||||
resp.setCompletedProjects(getProjectKanbanItems(2)); // 开工中
|
||||
resp.setAuditedProjects(getProjectKanbanItems(3)); // 已审核
|
||||
resp.setAcceptedProjects(getProjectKanbanItems(4)); // 已完工
|
||||
// 新增状态项目列表
|
||||
resp.setAcceptanceProjects(getProjectKanbanItems(5)); // 已验收
|
||||
resp.setCollectionProjects(getProjectKanbanItems(6)); // 回款中
|
||||
resp.setSettledProjects(getProjectKanbanItems(7)); // 已结算
|
||||
|
||||
return resp;
|
||||
}
|
||||
|
|
|
@ -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<ProjectMapper, ProjectEntity
|
|||
|
||||
@Resource
|
||||
private UserService userService;
|
||||
|
||||
@Resource
|
||||
private ProjectTaskService projectTaskService;
|
||||
/**
|
||||
* 功能描述:查询项目信息列表
|
||||
*
|
||||
|
@ -128,6 +135,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectEntity
|
|||
public void save(ProjectReq req) {
|
||||
ProjectEntity entity = Converts.INSTANCE.toProjectEntity(req);
|
||||
this.save(entity);
|
||||
for (ProjectInitTaskReq taskReq : req.getTasks()) {
|
||||
ProjectTaskEntity taskEntity = BeanUtil.copyProperties(taskReq, ProjectTaskEntity.class);
|
||||
taskEntity.setProjectId(entity.getProjectId());
|
||||
projectTaskService.save(taskEntity);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -45,7 +45,7 @@ public class ProjectMemberController {
|
|||
@PutMapping("/team-member/{memberId}")
|
||||
public Result<ProjectMemberResp> updateTeamMember(
|
||||
@PathVariable String memberId,
|
||||
@Valid @RequestBody TeamMemberReq req) {
|
||||
@RequestBody TeamMemberUpdateReq req) {
|
||||
return Result.ok(projectMemberService.updateTeamMember(memberId, req));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue