Compare commits

..

1 Commits

4 changed files with 1 additions and 94 deletions

View File

@ -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;
}

View File

@ -1,6 +1,5 @@
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;
@ -11,7 +10,6 @@ import javax.validation.constraints.Size;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;
/**
* @Author: gaoxiong
@ -33,6 +31,7 @@ public class ProjectReq implements Serializable {
@ApiModelProperty("项目来源")
private String projectOrigin;
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目预算不能为空")
@ApiModelProperty("项目预算")
private Integer projectBudget;
@ -128,7 +127,4 @@ public class ProjectReq implements Serializable {
@ApiModelProperty("其他杂费")
private Double othersCost;
@ApiModelProperty("项目初始任务")
private List<ProjectInitTaskReq> tasks;
}

View File

@ -262,15 +262,6 @@ public class EquipmentApprovalServiceImpl implements EquipmentApprovalService {
// 保存到数据库
equipmentApprovalMapper.insert(entity);
// 更新设备采购状态 - 新增逻辑
try {
updateEquipmentProcurementStatus(req.getEquipmentId(), "PENDING_APPROVAL");
log.info("设备采购状态更新成功设备ID: {}", req.getEquipmentId());
} catch (Exception e) {
log.error("设备采购状态更新失败设备ID: {}", req.getEquipmentId(), e);
// 不抛出异常避免影响审批流程
}
// 发送通知 - 使用日志记录后续可以扩展为WebSocket通知
log.info("采购申请提交成功,设备名称: {}, 申请人: {}",
req.getEquipmentName(), getCurrentUserName());
@ -288,33 +279,6 @@ public class EquipmentApprovalServiceImpl implements EquipmentApprovalService {
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
public IPage<EquipmentApprovalResp> getMyProcurementApplications(EquipmentApprovalListReq req) {

View File

@ -1,15 +1,12 @@
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;
@ -19,7 +16,6 @@ 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;
@ -44,9 +40,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectEntity
@Resource
private UserService userService;
@Resource
private ProjectTaskService projectTaskService;
/**
* 功能描述查询项目信息列表
*
@ -135,11 +128,6 @@ 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);
}
}
/**