feat(项目管理产品需求重构): 调整产品需求数据库字段
Signed-off-by: OTTO <731554297@qq.com>
This commit is contained in:
parent
9fe9745caf
commit
60cf5b9cba
|
|
@ -35,9 +35,8 @@ public class PmsProductRequirement extends BaseEntity
|
|||
@ApiModelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
/** 关联状态ID */
|
||||
@ApiModelProperty(value = "关联状态ID")
|
||||
private Long statusId;
|
||||
@ApiModelProperty(value = "产品需求状态")
|
||||
private String status;
|
||||
|
||||
/** 关联优先级ID */
|
||||
@ApiModelProperty(value = "关联优先级ID")
|
||||
|
|
@ -124,6 +123,23 @@ public class PmsProductRequirement extends BaseEntity
|
|||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||
private List<String> productIdentifierList;
|
||||
|
||||
/**
|
||||
* 原需求id
|
||||
*/
|
||||
@ApiModelProperty(value = "原需求id")
|
||||
private Long fromId;
|
||||
/**
|
||||
* 原需求id
|
||||
*/
|
||||
@ApiModelProperty(value = "关联项目需求id")
|
||||
private Long projectReqId;
|
||||
|
||||
@ApiModelProperty(value = "产品需求类型")
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty(value = "需求标识")
|
||||
private String identifier;
|
||||
|
||||
public PmsProductRequirementDataVo toPmsProductRequirementDataVo(){
|
||||
PmsProductRequirementDataVo target = new PmsProductRequirementDataVo();
|
||||
BeanUtils.copyProperties(this, target);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
package com.microservices.pms.product.domain;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 产品需求状态
|
||||
*/
|
||||
@Getter
|
||||
public enum ProductReqStatus {
|
||||
USER_REQ("userReq", "待评审", "待评审的用户需求"),
|
||||
REJECTED_USER_REQ("rejectedUserReq", "评审失败", "已拒绝的用户需求"),
|
||||
PENDING_REVIEW_REQ_SPECS("pendingReviewReqSpecs", "待评审", "待评审的需求规格"),
|
||||
REVIEWED_REQ_SPECS_CHANGING("reviewedReqSpecsChanging", "已评审", "已评审的需求规格(变更中)"),
|
||||
PLANNED_REQ_SPECS("plannedReqSpecs", "计划中", "计划中的需求规格"),
|
||||
PENDING_MODIFIED_REQ_SPECS("pendingModifiedReqSpecs", "待修正", "待修正的需求规格"),
|
||||
REJECTED_REQ_SPECS("rejectedReqSpecs", "已拒绝", "已拒绝的需求规格"),
|
||||
REVIEWED_REQ_SPECS("reviewedReqSpecs", "已评审", "已评审的需求规格");
|
||||
private final String key;
|
||||
private final String name;
|
||||
private final String remark;
|
||||
|
||||
ProductReqStatus(String key, String name, String remark) {
|
||||
this.key = key;
|
||||
this.name = name;
|
||||
this.remark = remark;
|
||||
}
|
||||
|
||||
public static ProductReqStatus getByKey(String key) {
|
||||
for (ProductReqStatus status : ProductReqStatus.values()) {
|
||||
if (status.getKey().equals(key)) {
|
||||
return status;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -28,9 +28,8 @@ public class PmsProductPlanSearchVo
|
|||
@NotBlank(message = "产品标识不能为空")
|
||||
private String pmsProductIdentifier;
|
||||
|
||||
/** 关联状态ID */
|
||||
@ApiModelProperty(value = "关联状态ID")
|
||||
private Long statusId;
|
||||
@ApiModelProperty(value = "产品需求状态")
|
||||
private String status;
|
||||
|
||||
/** 关联优先级ID */
|
||||
@ApiModelProperty(value = "关联优先级ID")
|
||||
|
|
|
|||
|
|
@ -29,11 +29,6 @@ public class PmsProductRequirementBatchUpdateVo
|
|||
private Long priorityId;
|
||||
private Boolean priorityIdIsChange = false;
|
||||
|
||||
/** 关联状态ID */
|
||||
@ApiModelProperty(value = "关联状态ID")
|
||||
private Long statusId;
|
||||
private Boolean statusIdIsChange = false;
|
||||
|
||||
/** 关联产品模块ID */
|
||||
@ApiModelProperty(value = "关联产品模块ID")
|
||||
private Long pmsProductModuleId;
|
||||
|
|
@ -76,7 +71,6 @@ public class PmsProductRequirementBatchUpdateVo
|
|||
|
||||
public Boolean thisIsChange() {
|
||||
return priorityIdIsChange
|
||||
|| statusIdIsChange
|
||||
|| pmsProductModuleIdIsChange
|
||||
|| pmsProductPlanIdIsChange
|
||||
|| tagIdsIsChange
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.microservices.common.core.utils.bean.BeanUtils;
|
|||
import com.microservices.pms.product.domain.PmsProduct;
|
||||
import com.microservices.pms.product.domain.PmsProductModule;
|
||||
import com.microservices.pms.product.domain.PmsProductPlan;
|
||||
import com.microservices.pms.product.domain.ProductReqStatus;
|
||||
import com.microservices.pms.project.domain.vo.BaseEntityVo;
|
||||
import com.microservices.system.api.domain.SimpleSysUser;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
|
|
@ -42,7 +43,7 @@ public class PmsProductRequirementDataVo extends BaseEntityVo
|
|||
|
||||
/** 关联状态 */
|
||||
@ApiModelProperty(value = "关联状态")
|
||||
private PmsTypeDataVo status;
|
||||
private ProductReqStatus status;
|
||||
|
||||
/** 关联产品模块 */
|
||||
@ApiModelProperty(value = "关联产品模块")
|
||||
|
|
|
|||
|
|
@ -39,9 +39,8 @@ public class PmsProductRequirementSearchVo
|
|||
@ApiModelProperty(value = "需求负责人Gitlink ID")
|
||||
private String requirementAssigneeGitlinkId;
|
||||
|
||||
/** 关联状态ID */
|
||||
@ApiModelProperty(value = "关联状态ID")
|
||||
private Long statusId;
|
||||
@ApiModelProperty(value = "产品需求状态")
|
||||
private String status;
|
||||
|
||||
/** 创建者 */
|
||||
@ApiModelProperty(value = "发布者用户名")
|
||||
|
|
|
|||
|
|
@ -34,10 +34,6 @@ public class PmsProductRequirementUpdateVo
|
|||
@ApiModelProperty(value = "关联优先级ID")
|
||||
private Long priorityId;
|
||||
|
||||
/** 关联状态ID */
|
||||
@ApiModelProperty(value = "关联状态ID")
|
||||
private Long statusId;
|
||||
|
||||
/** 关联产品模块ID */
|
||||
@ApiModelProperty(value = "关联产品模块ID")
|
||||
private Long pmsProductModuleId;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,7 @@ import com.microservices.pms.common.service.IPmsCommonService;
|
|||
import com.microservices.pms.enterprise.domain.PmsEnterprise;
|
||||
import com.microservices.pms.enterprise.service.IPmsEnterpriseService;
|
||||
import com.microservices.pms.journals.service.IPmsJournalsService;
|
||||
import com.microservices.pms.product.domain.PmsProduct;
|
||||
import com.microservices.pms.product.domain.PmsProductModule;
|
||||
import com.microservices.pms.product.domain.PmsProductPlan;
|
||||
import com.microservices.pms.product.domain.PmsProductRequirement;
|
||||
import com.microservices.pms.product.domain.*;
|
||||
import com.microservices.pms.product.domain.vo.PmsProductRequirementBatchUpdateVo;
|
||||
import com.microservices.pms.product.domain.vo.PmsProductRequirementDataVo;
|
||||
import com.microservices.pms.product.domain.vo.PmsProductRequirementDetailVo;
|
||||
|
|
@ -123,8 +120,8 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
|||
pmsProductRequirementDataVo.setStatus(
|
||||
PmsUtils.getSelectObjectInCache(
|
||||
hashMap
|
||||
, pmsProductStatusService::selectPmsProductStatusById
|
||||
, pmsProductRequirement.getStatusId()));
|
||||
, ProductReqStatus::getByKey
|
||||
, pmsProductRequirement.getStatus()));
|
||||
// 设置产品模块
|
||||
if (pmsProductRequirement.getPmsProductModuleId() != null) {
|
||||
pmsProductRequirementDataVo.setPmsProductModule(
|
||||
|
|
@ -213,9 +210,8 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
|||
pmsProductPriorityService.selectPmsProductPriorityIdByInputId(pmsProductRequirement.getPriorityId(), PmsConstants.PRODUCT_STATUS_OR_PRIORITY_REQUIREMENT_TYPE);
|
||||
pmsProductRequirement.setPriorityId(priorityId);
|
||||
// 设置默认需求状态
|
||||
Long statusId=
|
||||
pmsProductStatusService.selectPmsProductDefaultStatusId(PmsConstants.PRODUCT_STATUS_OR_PRIORITY_REQUIREMENT_TYPE);
|
||||
pmsProductRequirement.setStatusId(statusId);
|
||||
// TODO:需要根据用户需求、需求规格来判断需求状态
|
||||
// pmsProductRequirement.setStatusId(statusId);
|
||||
checkPmsProductRequirement(pmsProductRequirement, pmsProduct, null);
|
||||
|
||||
Date now=DateUtils.getNowDate();
|
||||
|
|
@ -305,12 +301,9 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
|||
pmsProductRequirement.setPriorityId(priorityId);
|
||||
}
|
||||
|
||||
if(pmsProductRequirement.getStatusId()!=null){
|
||||
// 设置需求状态
|
||||
Long statusId=
|
||||
pmsProductStatusService.selectPmsProductStatusIdByInputId(pmsProductRequirement.getStatusId(),PmsConstants.PRODUCT_STATUS_OR_PRIORITY_REQUIREMENT_TYPE);
|
||||
pmsProductRequirement.setStatusId(statusId);
|
||||
}
|
||||
// 设置需求状态
|
||||
// TODO:需要根据用户需求、需求规格来判断需求状态
|
||||
// pmsProductRequirement.setStatusId(statusId);
|
||||
PmsProduct pmsProduct=pmsProductService.selectPmsProductByIdentifier(oldPmsProductRequirement.getPmsProductIdentifier());
|
||||
checkPmsProductRequirement(pmsProductRequirement, pmsProduct, oldPmsProductRequirement);
|
||||
if (pmsProductRequirement.getStartTime() != null && pmsProductRequirement.getEndTime() == null) {
|
||||
|
|
@ -457,10 +450,7 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
|||
pmsProductRequirementBatchUpdateVo.setPriorityId(jsonObject.getLong("priorityId"));
|
||||
pmsProductRequirementBatchUpdateVo.setPriorityIdIsChange(true);
|
||||
}
|
||||
if(jsonObject.containsKey("statusId")){
|
||||
pmsProductRequirementBatchUpdateVo.setStatusId(jsonObject.getLong("statusId"));
|
||||
pmsProductRequirementBatchUpdateVo.setStatusIdIsChange(true);
|
||||
}
|
||||
// TODO:需考虑是否涉及状态的变更
|
||||
if(jsonObject.containsKey("pmsProductModuleId")){
|
||||
pmsProductRequirementBatchUpdateVo.setPmsProductModuleId(jsonObject.getLong("pmsProductModuleId"));
|
||||
pmsProductRequirementBatchUpdateVo.setPmsProductModuleIdIsChange(true);
|
||||
|
|
@ -532,9 +522,8 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
|||
if (pmsProductRequirementBatchUpdateVo.getPriorityIdIsChange()) {
|
||||
pmsProductPriorityService.selectPmsProductPriorityIdByInputId(pmsProductRequirementBatchUpdateVo.getPriorityId(), PmsConstants.PRODUCT_STATUS_OR_PRIORITY_REQUIREMENT_TYPE);
|
||||
}
|
||||
if (pmsProductRequirementBatchUpdateVo.getStatusIdIsChange()) {
|
||||
pmsProductStatusService.selectPmsProductStatusIdByInputId(pmsProductRequirementBatchUpdateVo.getStatusId(), PmsConstants.PRODUCT_STATUS_OR_PRIORITY_REQUIREMENT_TYPE);
|
||||
}
|
||||
|
||||
// TODO:需考虑是否涉及状态的变更
|
||||
}
|
||||
|
||||
private void checkProjectId(Long projectId, PmsProduct pmsProduct) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="id" column="id" />
|
||||
<result property="index" column="index" />
|
||||
<result property="title" column="title" />
|
||||
<result property="statusId" column="status_id" />
|
||||
<result property="status" column="status"/>
|
||||
<result property="priorityId" column="priority_id" />
|
||||
<result property="pmsProductModuleId" column="pms_product_module_id" />
|
||||
<result property="pmsProductPlanId" column="pms_product_plan_id" />
|
||||
|
|
@ -26,13 +26,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="delFlag" column="del_flag" />
|
||||
<result property="requirementAssigneeGitlinkIds" column="requirement_assignee_gitlink_ids"/>
|
||||
<result property="pmsProjectId" column="pms_project_id" />
|
||||
<result property="fromId" column="from_id"/>
|
||||
<result property="projectReqId" column="project_req_id"/>
|
||||
<result property="type" column="type"/>
|
||||
<result property="identifier" column="identifier"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectPmsProductRequirementVo">
|
||||
select id,
|
||||
title,
|
||||
`index`,
|
||||
status_id,
|
||||
status,
|
||||
priority_id,
|
||||
pms_product_module_id,
|
||||
pms_product_plan_id,
|
||||
|
|
@ -49,7 +53,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
create_by,
|
||||
del_flag,
|
||||
requirement_assignee_gitlink_ids,
|
||||
pms_project_id
|
||||
pms_project_id,
|
||||
from_id,
|
||||
project_req_id,
|
||||
type,
|
||||
identifier
|
||||
from pms_product_requirement
|
||||
</sql>
|
||||
|
||||
|
|
@ -67,7 +75,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<sql id="selectWhere">
|
||||
<where>
|
||||
<if test="title != null and title != ''"> and title like concat('%', #{title}, '%')</if>
|
||||
<if test="statusId != null"> and status_id = #{statusId}</if>
|
||||
<if test="priorityId != null "> and priority_id = #{priorityId}</if>
|
||||
<if test="pmsProductPlanId != null "> and pms_product_plan_id = #{pmsProductPlanId}</if>
|
||||
<if test="pmsProductIdentifier != null "> and pms_product_identifier = #{pmsProductIdentifier}</if>
|
||||
|
|
@ -132,7 +139,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="index != null">`index`,</if>
|
||||
<if test="title != null and title != ''">title,</if>
|
||||
<if test="statusId != null">status_id,</if>
|
||||
<if test="status != null">`status`,</if>
|
||||
<if test="priorityId != null">priority_id,</if>
|
||||
<if test="pmsProductModuleId != null">pms_product_module_id,</if>
|
||||
<if test="pmsProductPlanId != null">pms_product_plan_id,</if>
|
||||
|
|
@ -150,11 +157,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="delFlag != null">del_flag,</if>
|
||||
<if test="requirementAssigneeGitlinkIds != null">requirement_assignee_gitlink_ids,</if>
|
||||
<if test="pmsProjectId != null">pms_project_id,</if>
|
||||
<if test="fromId != null">from_id,</if>
|
||||
<if test="projectReqId != null">project_req_id,</if>
|
||||
<if test="type != null and type != ''">type,</if>
|
||||
<if test="identifier != null and identifier != ''">identifier,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="index != null">#{index},</if>
|
||||
<if test="title != null and title != ''">#{title},</if>
|
||||
<if test="statusId != null">#{statusId},</if>
|
||||
<if test="status != null">#{status},</if>
|
||||
<if test="priorityId != null">#{priorityId},</if>
|
||||
<if test="pmsProductModuleId != null">#{pmsProductModuleId},</if>
|
||||
<if test="pmsProductPlanId != null">#{pmsProductPlanId},</if>
|
||||
|
|
@ -172,6 +183,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="delFlag != null">#{delFlag},</if>
|
||||
<if test="requirementAssigneeGitlinkIds != null">#{requirementAssigneeGitlinkIds},</if>
|
||||
<if test="pmsProjectId != null">#{pmsProjectId},</if>
|
||||
<if test="fromId != null">#{fromId},</if>
|
||||
<if test="projectReqId != null">#{projectReqId},</if>
|
||||
<if test="type != null and type != ''">#{type},</if>
|
||||
<if test="identifier != null and identifier != ''">#{identifier},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
|
@ -180,7 +195,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="index != null">`index` = #{index},</if>
|
||||
<if test="title != null and title != ''">title = #{title},</if>
|
||||
<if test="statusId != null">status_id = #{statusId},</if>
|
||||
<if test="status != null">`status` = #{status},</if>
|
||||
<if test="priorityId != null">priority_id = #{priorityId},</if>
|
||||
pms_product_module_id = #{pmsProductModuleId},
|
||||
pms_product_plan_id = #{pmsProductPlanId},
|
||||
|
|
@ -198,13 +213,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||||
requirement_assignee_gitlink_ids = #{requirementAssigneeGitlinkIds},
|
||||
pms_project_id = #{pmsProjectId},
|
||||
<if test="fromId != null and fromId != ''">from_id = #{fromId},</if>
|
||||
<if test="projectReqId != null and projectReqId != ''">project_req_id = #{project_req_id},</if>
|
||||
<if test="type != null and type != ''">type = #{type},</if>
|
||||
<if test="identifier != null and identifier != ''">identifier = #{identifier},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
<update id="batchUpdatePmsProductRequirement">
|
||||
update pms_product_requirement
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="statusIdIsChange">status_id = #{statusId},</if>
|
||||
<if test="priorityIdIsChange">priority_id = #{priorityId},</if>
|
||||
<if test="pmsProductModuleIdIsChange">pms_product_module_id = #{pmsProductModuleId},</if>
|
||||
<if test="pmsProductPlanIdIsChange">pms_product_plan_id = #{pmsProductPlanId},</if>
|
||||
|
|
|
|||
Loading…
Reference in New Issue