fix(personal-item): 个人事项&任务添加type类型字段
This commit is contained in:
@@ -19,6 +19,9 @@ public class PersonalItemRespVO {
|
||||
@Schema(description = "个人事项标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "整理供应商沟通纪要")
|
||||
private String taskTitle;
|
||||
|
||||
@Schema(description = "个人事项类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "todo")
|
||||
private String type;
|
||||
|
||||
@Schema(description = "负责人用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3001")
|
||||
private Long ownerId;
|
||||
|
||||
|
||||
@@ -25,6 +25,11 @@ public class PersonalItemSaveReqVO {
|
||||
@Size(max = 300, message = "个人事项标题长度不能超过300个字符")
|
||||
private String taskTitle;
|
||||
|
||||
@Schema(description = "个人事项类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "todo")
|
||||
@NotBlank(message = "个人事项类型不能为空")
|
||||
@Size(max = 32, message = "个人事项类型长度不能超过32个字符")
|
||||
private String type;
|
||||
|
||||
@Schema(description = "个人事项进度(0~100)", example = "60.00")
|
||||
@DecimalMin(value = "0.00", message = "个人事项进度不能小于 0")
|
||||
@DecimalMax(value = "100.00", message = "个人事项进度不能大于 100")
|
||||
|
||||
@@ -31,6 +31,8 @@ public class ProjectTaskRespVO {
|
||||
private Long executionOwnerId;
|
||||
@Schema(description = "任务标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "接口联调任务")
|
||||
private String taskTitle;
|
||||
@Schema(description = "任务类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "feature")
|
||||
private String type;
|
||||
@Schema(description = "任务负责人用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3002")
|
||||
private Long ownerId;
|
||||
@Schema(description = "任务负责人昵称", example = "李四")
|
||||
|
||||
@@ -25,6 +25,11 @@ public class ProjectTaskSaveReqVO {
|
||||
@Size(max = 300, message = "任务标题长度不能超过300个字符")
|
||||
private String taskTitle;
|
||||
|
||||
@Schema(description = "任务类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "feature")
|
||||
@NotBlank(message = "任务类型不能为空")
|
||||
@Size(max = 32, message = "任务类型长度不能超过32个字符")
|
||||
private String type;
|
||||
|
||||
@Schema(description = "任务负责人用户编号;子任务不传时继承父任务负责人", example = "3002")
|
||||
private Long ownerId;
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ public class PersonalItemDO extends BaseDO {
|
||||
|
||||
private String taskTitle;
|
||||
|
||||
private String type;
|
||||
|
||||
private Long ownerId;
|
||||
|
||||
private String statusCode;
|
||||
|
||||
@@ -42,6 +42,10 @@ public class ProjectTaskDO extends BaseDO {
|
||||
* 任务标题
|
||||
*/
|
||||
private String taskTitle;
|
||||
/**
|
||||
* 任务类型
|
||||
*/
|
||||
private String type;
|
||||
/**
|
||||
* 任务负责人用户编号
|
||||
*/
|
||||
|
||||
@@ -94,6 +94,7 @@ public class PersonalItemServiceImpl implements PersonalItemService {
|
||||
|
||||
PersonalItemDO item = new PersonalItemDO();
|
||||
item.setTaskTitle(normalizeRequiredTitle(reqVO.getTaskTitle()));
|
||||
item.setType(normalizeRequiredType(reqVO.getType(), "个人事项类型不能为空"));
|
||||
item.setOwnerId(loginUserId);
|
||||
item.setStatusCode(getInitialStatusCode());
|
||||
item.setProgressRate(normalizeProgress(reqVO.getProgressRate()));
|
||||
@@ -123,6 +124,7 @@ public class PersonalItemServiceImpl implements PersonalItemService {
|
||||
|
||||
PersonalItemDO before = cloneItem(item);
|
||||
item.setTaskTitle(normalizeRequiredTitle(reqVO.getTaskTitle()));
|
||||
item.setType(normalizeRequiredType(reqVO.getType(), "个人事项类型不能为空"));
|
||||
item.setProgressRate(normalizeProgress(reqVO.getProgressRate()));
|
||||
item.setPlannedStartDate(reqVO.getPlannedStartDate());
|
||||
item.setPlannedEndDate(reqVO.getPlannedEndDate());
|
||||
@@ -361,6 +363,7 @@ public class PersonalItemServiceImpl implements PersonalItemService {
|
||||
task.setExecutionId(executionId);
|
||||
task.setParentTaskId(null);
|
||||
task.setTaskTitle(item.getTaskTitle());
|
||||
task.setType(item.getType());
|
||||
task.setOwnerId(item.getOwnerId());
|
||||
task.setStatusCode(item.getStatusCode());
|
||||
task.setProgressRate(item.getProgressRate());
|
||||
@@ -546,6 +549,7 @@ public class PersonalItemServiceImpl implements PersonalItemService {
|
||||
PersonalItemDO target = new PersonalItemDO();
|
||||
target.setId(source.getId());
|
||||
target.setTaskTitle(source.getTaskTitle());
|
||||
target.setType(source.getType());
|
||||
target.setOwnerId(source.getOwnerId());
|
||||
target.setStatusCode(source.getStatusCode());
|
||||
target.setProgressRate(source.getProgressRate());
|
||||
@@ -563,6 +567,8 @@ public class PersonalItemServiceImpl implements PersonalItemService {
|
||||
Map<String, Object> fieldChanges = new LinkedHashMap<>();
|
||||
appendFieldChange(fieldChanges, "taskTitle", valueOf(before, PersonalItemDO::getTaskTitle),
|
||||
valueOf(after, PersonalItemDO::getTaskTitle));
|
||||
appendFieldChange(fieldChanges, "type", valueOf(before, PersonalItemDO::getType),
|
||||
valueOf(after, PersonalItemDO::getType));
|
||||
appendFieldChange(fieldChanges, "ownerId", valueOf(before, PersonalItemDO::getOwnerId),
|
||||
valueOf(after, PersonalItemDO::getOwnerId));
|
||||
appendFieldChange(fieldChanges, "statusCode", valueOf(before, PersonalItemDO::getStatusCode),
|
||||
@@ -732,6 +738,13 @@ public class PersonalItemServiceImpl implements PersonalItemService {
|
||||
return value.trim();
|
||||
}
|
||||
|
||||
private String normalizeRequiredType(String value, String message) {
|
||||
if (!StringUtils.hasText(value)) {
|
||||
throw invalidParamException(message);
|
||||
}
|
||||
return value.trim();
|
||||
}
|
||||
|
||||
private String normalizeNullableText(String value) {
|
||||
if (!StringUtils.hasText(value)) {
|
||||
return null;
|
||||
|
||||
@@ -139,6 +139,7 @@ public class ProjectTaskServiceImpl implements ProjectTaskService {
|
||||
task.setExecutionId(executionId);
|
||||
task.setParentTaskId(parentTask == null ? null : parentTask.getId());
|
||||
task.setTaskTitle(normalizeRequiredTitle(reqVO.getTaskTitle()));
|
||||
task.setType(normalizeRequiredType(reqVO.getType(), "任务类型不能为空"));
|
||||
task.setOwnerId(ownerId);
|
||||
task.setStatusCode(getInitialTaskStatusCode());
|
||||
// 任务进度统一由 worklog 驱动;新建任务强制为 0
|
||||
@@ -202,6 +203,7 @@ public class ProjectTaskServiceImpl implements ProjectTaskService {
|
||||
ProjectTaskDO before = cloneTask(task);
|
||||
task.setParentTaskId(newParentId);
|
||||
task.setTaskTitle(normalizeRequiredTitle(reqVO.getTaskTitle()));
|
||||
task.setType(normalizeRequiredType(reqVO.getType(), "任务类型不能为空"));
|
||||
task.setOwnerId(ownerId);
|
||||
task.setPlannedStartDate(reqVO.getPlannedStartDate());
|
||||
task.setPlannedEndDate(reqVO.getPlannedEndDate());
|
||||
@@ -939,6 +941,7 @@ public class ProjectTaskServiceImpl implements ProjectTaskService {
|
||||
target.setExecutionId(source.getExecutionId());
|
||||
target.setParentTaskId(source.getParentTaskId());
|
||||
target.setTaskTitle(source.getTaskTitle());
|
||||
target.setType(source.getType());
|
||||
target.setOwnerId(source.getOwnerId());
|
||||
target.setStatusCode(source.getStatusCode());
|
||||
target.setProgressRate(source.getProgressRate());
|
||||
@@ -961,6 +964,8 @@ public class ProjectTaskServiceImpl implements ProjectTaskService {
|
||||
valueOf(after, ProjectTaskDO::getParentTaskId));
|
||||
appendFieldChange(fieldChanges, "taskTitle", valueOf(before, ProjectTaskDO::getTaskTitle),
|
||||
valueOf(after, ProjectTaskDO::getTaskTitle));
|
||||
appendFieldChange(fieldChanges, "type", valueOf(before, ProjectTaskDO::getType),
|
||||
valueOf(after, ProjectTaskDO::getType));
|
||||
appendFieldChange(fieldChanges, "ownerId", valueOf(before, ProjectTaskDO::getOwnerId),
|
||||
valueOf(after, ProjectTaskDO::getOwnerId));
|
||||
appendFieldChange(fieldChanges, "statusCode", valueOf(before, ProjectTaskDO::getStatusCode),
|
||||
@@ -1091,6 +1096,13 @@ public class ProjectTaskServiceImpl implements ProjectTaskService {
|
||||
return value.trim();
|
||||
}
|
||||
|
||||
private String normalizeRequiredType(String value, String message) {
|
||||
if (!StringUtils.hasText(value)) {
|
||||
throw invalidParamException(message);
|
||||
}
|
||||
return value.trim();
|
||||
}
|
||||
|
||||
private String normalizeNullableText(String value) {
|
||||
if (!StringUtils.hasText(value)) {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user