Compare commits
1 Commits
developmen
...
master
Author | SHA1 | Date |
---|---|---|
|
8a968f1a49 |
|
@ -1,41 +0,0 @@
|
||||||
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,15 +32,6 @@ public class ProjectKanbanDataResp {
|
||||||
@ApiModelProperty("已验收项目列表")
|
@ApiModelProperty("已验收项目列表")
|
||||||
private List<ProjectKanbanItem> acceptedProjects;
|
private List<ProjectKanbanItem> acceptedProjects;
|
||||||
|
|
||||||
@ApiModelProperty("验收中项目列表")
|
|
||||||
private List<ProjectKanbanItem> acceptanceProjects;
|
|
||||||
|
|
||||||
@ApiModelProperty("回款中项目列表")
|
|
||||||
private List<ProjectKanbanItem> collectionProjects;
|
|
||||||
|
|
||||||
@ApiModelProperty("已结算项目列表")
|
|
||||||
private List<ProjectKanbanItem> settledProjects;
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(value="ProjectKanbanItem对象", description="项目看板项目项")
|
@ApiModel(value="ProjectKanbanItem对象", description="项目看板项目项")
|
||||||
public static class ProjectKanbanItem {
|
public static class ProjectKanbanItem {
|
||||||
|
|
|
@ -31,15 +31,6 @@ public class ProjectKanbanStatsResp {
|
||||||
@ApiModelProperty("已验收项目数")
|
@ApiModelProperty("已验收项目数")
|
||||||
private Long acceptedProjectCount;
|
private Long acceptedProjectCount;
|
||||||
|
|
||||||
@ApiModelProperty("验收中项目数")
|
|
||||||
private Long acceptanceProjectCount;
|
|
||||||
|
|
||||||
@ApiModelProperty("回款中项目数")
|
|
||||||
private Long collectionProjectCount;
|
|
||||||
|
|
||||||
@ApiModelProperty("已结算项目数")
|
|
||||||
private Long settledProjectCount;
|
|
||||||
|
|
||||||
@ApiModelProperty("总机组数")
|
@ApiModelProperty("总机组数")
|
||||||
private Long totalTurbineCount;
|
private Long totalTurbineCount;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.dite.znpt.domain.vo;
|
package com.dite.znpt.domain.vo;
|
||||||
|
|
||||||
import com.dite.znpt.domain.entity.ProjectTaskEntity;
|
|
||||||
import com.dite.znpt.util.ValidationGroup;
|
import com.dite.znpt.util.ValidationGroup;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
@ -11,7 +10,6 @@ import javax.validation.constraints.Size;
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: gaoxiong
|
* @Author: gaoxiong
|
||||||
|
@ -33,6 +31,7 @@ public class ProjectReq implements Serializable {
|
||||||
@ApiModelProperty("项目来源")
|
@ApiModelProperty("项目来源")
|
||||||
private String projectOrigin;
|
private String projectOrigin;
|
||||||
|
|
||||||
|
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目预算不能为空")
|
||||||
@ApiModelProperty("项目预算")
|
@ApiModelProperty("项目预算")
|
||||||
private Integer projectBudget;
|
private Integer projectBudget;
|
||||||
|
|
||||||
|
@ -128,7 +127,4 @@ public class ProjectReq implements Serializable {
|
||||||
|
|
||||||
@ApiModelProperty("其他杂费")
|
@ApiModelProperty("其他杂费")
|
||||||
private Double othersCost;
|
private Double othersCost;
|
||||||
|
|
||||||
@ApiModelProperty("项目初始任务")
|
|
||||||
private List<ProjectInitTaskReq> tasks;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,60 +0,0 @@
|
||||||
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,14 +15,11 @@ import java.util.List;
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum ProjectStatusEnum {
|
public enum ProjectStatusEnum {
|
||||||
PENDING(0, "未开工"),
|
PENDING(0, "待施工"),
|
||||||
IN_PREPARATION(1, "筹备中"),
|
IN_PROGRESS(1, "施工中"),
|
||||||
IN_PROGRESS(2, "开工中"),
|
COMPLETED(2, "已完工"),
|
||||||
AUDITED(3, "已审核"),
|
AUDITED(3, "已审核"),
|
||||||
COMPLETED(4, "已完工"),
|
ACCEPTED(4, "已验收");
|
||||||
ACCEPTED(5, "已验收"),
|
|
||||||
IN_COLLECTION(6, "回款中"),
|
|
||||||
SETTLED(7, "已结算");
|
|
||||||
|
|
||||||
private final int code;
|
private final int code;
|
||||||
private final String desc;
|
private final String desc;
|
||||||
|
|
|
@ -27,11 +27,6 @@ public interface ProjectMemberService extends IService<ProjectMemberEntity> {
|
||||||
*/
|
*/
|
||||||
ProjectMemberResp updateTeamMember(String memberId, TeamMemberReq req);
|
ProjectMemberResp updateTeamMember(String memberId, TeamMemberReq req);
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新团队成员信息(使用更新专用请求类)
|
|
||||||
*/
|
|
||||||
ProjectMemberResp updateTeamMember(String memberId, TeamMemberUpdateReq req);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除团队成员(支持单个或批量删除)
|
* 删除团队成员(支持单个或批量删除)
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -262,15 +262,6 @@ public class EquipmentApprovalServiceImpl implements EquipmentApprovalService {
|
||||||
// 保存到数据库
|
// 保存到数据库
|
||||||
equipmentApprovalMapper.insert(entity);
|
equipmentApprovalMapper.insert(entity);
|
||||||
|
|
||||||
// 更新设备采购状态 - 新增逻辑
|
|
||||||
try {
|
|
||||||
updateEquipmentProcurementStatus(req.getEquipmentId(), "PENDING_APPROVAL");
|
|
||||||
log.info("设备采购状态更新成功,设备ID: {}", req.getEquipmentId());
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("设备采购状态更新失败,设备ID: {}", req.getEquipmentId(), e);
|
|
||||||
// 不抛出异常,避免影响审批流程
|
|
||||||
}
|
|
||||||
|
|
||||||
// 发送通知 - 使用日志记录,后续可以扩展为WebSocket通知
|
// 发送通知 - 使用日志记录,后续可以扩展为WebSocket通知
|
||||||
log.info("采购申请提交成功,设备名称: {}, 申请人: {}",
|
log.info("采购申请提交成功,设备名称: {}, 申请人: {}",
|
||||||
req.getEquipmentName(), getCurrentUserName());
|
req.getEquipmentName(), getCurrentUserName());
|
||||||
|
@ -289,33 +280,6 @@ public class EquipmentApprovalServiceImpl implements EquipmentApprovalService {
|
||||||
log.info("采购申请提交成功,审批ID: {}", entity.getApprovalId());
|
log.info("采购申请提交成功,审批ID: {}", entity.getApprovalId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新设备采购状态
|
|
||||||
*/
|
|
||||||
private void updateEquipmentProcurementStatus(String equipmentId, String status) {
|
|
||||||
if (equipmentId == null || equipmentId.trim().isEmpty()) {
|
|
||||||
log.warn("设备ID为空,跳过状态更新");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
log.info("准备更新设备采购状态,设备ID: {}, 新状态: {}", equipmentId, status);
|
|
||||||
|
|
||||||
// 这里可以添加具体的更新逻辑
|
|
||||||
// 例如:equipmentMapper.updateProcurementStatus(equipmentId, status);
|
|
||||||
// 由于循环依赖问题,建议通过事件机制或异步处理来避免循环依赖
|
|
||||||
|
|
||||||
// 暂时记录日志,后续可以通过以下方式实现:
|
|
||||||
// 1. 使用Spring事件机制
|
|
||||||
// 2. 使用异步处理
|
|
||||||
// 3. 重构服务架构避免循环依赖
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("更新设备采购状态失败,设备ID: {}, 状态: {}", equipmentId, status, e);
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<EquipmentApprovalResp> getMyProcurementApplications(EquipmentApprovalListReq req) {
|
public IPage<EquipmentApprovalResp> getMyProcurementApplications(EquipmentApprovalListReq req) {
|
||||||
log.info("开始获取我的采购申请,请求参数: {}", req);
|
log.info("开始获取我的采购申请,请求参数: {}", req);
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.dite.znpt.service.impl;
|
package com.dite.znpt.service.impl;
|
||||||
|
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
@ -19,7 +18,6 @@ import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -190,14 +188,6 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
|
||||||
ProjectMemberEntity entity = new ProjectMemberEntity();
|
ProjectMemberEntity entity = new ProjectMemberEntity();
|
||||||
BeanUtil.copyProperties(req, entity);
|
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);
|
this.save(entity);
|
||||||
|
|
||||||
|
@ -218,85 +208,6 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
|
||||||
|
|
||||||
// 更新成员信息
|
// 更新成员信息
|
||||||
BeanUtil.copyProperties(req, existingMember);
|
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);
|
this.updateById(existingMember);
|
||||||
|
|
||||||
// 返回更新后的成员信息
|
// 返回更新后的成员信息
|
||||||
|
@ -360,64 +271,6 @@ 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获取成员信息
|
* 根据成员ID获取成员信息
|
||||||
*/
|
*/
|
||||||
|
@ -433,17 +286,10 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
|
||||||
|
|
||||||
// 查询并返回单个成员信息
|
// 查询并返回单个成员信息
|
||||||
List<ProjectMemberResp> list = this.baseMapper.queryTeamMembers(query);
|
List<ProjectMemberResp> list = this.baseMapper.queryTeamMembers(query);
|
||||||
ProjectMemberResp member = list.stream()
|
return list.stream()
|
||||||
.filter(m -> m.getMemberId().equals(memberId))
|
.filter(member -> member.getMemberId().equals(memberId))
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.orElse(null);
|
.orElse(null);
|
||||||
|
|
||||||
if (member != null) {
|
|
||||||
// 丰富成员信息
|
|
||||||
enrichMemberInfo(CollUtil.toList(member));
|
|
||||||
}
|
|
||||||
|
|
||||||
return member;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========================== 项目看板相关方法实现 ==========================
|
// ========================== 项目看板相关方法实现 ==========================
|
||||||
|
@ -454,15 +300,11 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
|
||||||
|
|
||||||
// 统计项目数量
|
// 统计项目数量
|
||||||
resp.setTotalProjectsCount(projectService.count());
|
resp.setTotalProjectsCount(projectService.count());
|
||||||
resp.setPendingProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 0).count()); // 未开工
|
resp.setPendingProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 0).count());
|
||||||
resp.setInProgressProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 1).count()); // 筹备中
|
resp.setInProgressProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 1).count());
|
||||||
resp.setCompletedProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 2).count()); // 开工中
|
resp.setCompletedProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 2).count());
|
||||||
resp.setAuditedProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 3).count()); // 已审核
|
resp.setAuditedProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 3).count());
|
||||||
resp.setAcceptedProjectCount(projectService.lambdaQuery().eq(ProjectEntity::getStatus, 4).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());
|
resp.setTotalTurbineCount(turbineService.count());
|
||||||
|
@ -494,15 +336,11 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
|
||||||
ProjectKanbanDataResp resp = new ProjectKanbanDataResp();
|
ProjectKanbanDataResp resp = new ProjectKanbanDataResp();
|
||||||
|
|
||||||
// 获取各状态的项目列表
|
// 获取各状态的项目列表
|
||||||
resp.setPendingProjects(getProjectKanbanItems(0)); // 未开工
|
resp.setPendingProjects(getProjectKanbanItems(0));
|
||||||
resp.setInProgressProjects(getProjectKanbanItems(1)); // 筹备中
|
resp.setInProgressProjects(getProjectKanbanItems(1));
|
||||||
resp.setCompletedProjects(getProjectKanbanItems(2)); // 开工中
|
resp.setCompletedProjects(getProjectKanbanItems(2));
|
||||||
resp.setAuditedProjects(getProjectKanbanItems(3)); // 已审核
|
resp.setAuditedProjects(getProjectKanbanItems(3));
|
||||||
resp.setAcceptedProjects(getProjectKanbanItems(4)); // 已完工
|
resp.setAcceptedProjects(getProjectKanbanItems(4));
|
||||||
// 新增状态项目列表
|
|
||||||
resp.setAcceptanceProjects(getProjectKanbanItems(5)); // 已验收
|
|
||||||
resp.setCollectionProjects(getProjectKanbanItems(6)); // 回款中
|
|
||||||
resp.setSettledProjects(getProjectKanbanItems(7)); // 已结算
|
|
||||||
|
|
||||||
return resp;
|
return resp;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,12 @@
|
||||||
package com.dite.znpt.service.impl;
|
package com.dite.znpt.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.dite.znpt.constant.Message;
|
import com.dite.znpt.constant.Message;
|
||||||
import com.dite.znpt.converts.Converts;
|
import com.dite.znpt.converts.Converts;
|
||||||
import com.dite.znpt.domain.entity.ProjectEntity;
|
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.entity.UserEntity;
|
||||||
import com.dite.znpt.domain.vo.ProjectInitTaskReq;
|
|
||||||
import com.dite.znpt.domain.vo.ProjectListReq;
|
import com.dite.znpt.domain.vo.ProjectListReq;
|
||||||
import com.dite.znpt.domain.vo.ProjectListResp;
|
import com.dite.znpt.domain.vo.ProjectListResp;
|
||||||
import com.dite.znpt.domain.vo.ProjectReq;
|
import com.dite.znpt.domain.vo.ProjectReq;
|
||||||
|
@ -19,7 +16,6 @@ import com.dite.znpt.exception.ServiceException;
|
||||||
import com.dite.znpt.mapper.ProjectMapper;
|
import com.dite.znpt.mapper.ProjectMapper;
|
||||||
import com.dite.znpt.service.ProjectService;
|
import com.dite.znpt.service.ProjectService;
|
||||||
import com.dite.znpt.service.UserService;
|
import com.dite.znpt.service.UserService;
|
||||||
import com.dite.znpt.service.ProjectTaskService;
|
|
||||||
import com.dite.znpt.util.PageUtil;
|
import com.dite.znpt.util.PageUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -44,9 +40,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectEntity
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ProjectTaskService projectTaskService;
|
|
||||||
/**
|
/**
|
||||||
* 功能描述:查询项目信息列表
|
* 功能描述:查询项目信息列表
|
||||||
*
|
*
|
||||||
|
@ -135,11 +128,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectEntity
|
||||||
public void save(ProjectReq req) {
|
public void save(ProjectReq req) {
|
||||||
ProjectEntity entity = Converts.INSTANCE.toProjectEntity(req);
|
ProjectEntity entity = Converts.INSTANCE.toProjectEntity(req);
|
||||||
this.save(entity);
|
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}")
|
@PutMapping("/team-member/{memberId}")
|
||||||
public Result<ProjectMemberResp> updateTeamMember(
|
public Result<ProjectMemberResp> updateTeamMember(
|
||||||
@PathVariable String memberId,
|
@PathVariable String memberId,
|
||||||
@RequestBody TeamMemberUpdateReq req) {
|
@Valid @RequestBody TeamMemberReq req) {
|
||||||
return Result.ok(projectMemberService.updateTeamMember(memberId, req));
|
return Result.ok(projectMemberService.updateTeamMember(memberId, req));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue