feat(项目管理产品需求重构): 完善产品中的需求规格功能开发
需求规格标识不允许重复,存在重复的在最后面添加数字 Signed-off-by: OTTO <731554297@qq.com>
This commit is contained in:
parent
95ad6b83b4
commit
e1b377ceef
|
|
@ -108,4 +108,6 @@ public interface PmsProductRequirementMapper
|
|||
List<PmsProductRequirement> selectUserReqList(ProductUserReqSearchVo productUserReqSearchVo);
|
||||
|
||||
List<PmsProductRequirement> selectReqSpecsList(ProductReqSpecsSearchVo productReqSpecsSearchVo);
|
||||
|
||||
Integer selectReqSpecsCountByIdentifier(@Param("identifier") String identifier);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -379,7 +379,7 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
|||
private void userReqToReqSpecs(PmsProductRequirement userReq, PmsProductReqOperationRecord record) {
|
||||
PmsProductRequirement reqSpecs =
|
||||
userReq.userReqToReqSpecs();
|
||||
reqSpecs.setIdentifier(genReqSpecsIdentifier(userReq.getPmsProductIdentifier(), userReq.getTitle()));
|
||||
reqSpecs.setIdentifier(genReqSpecsIdentifier(userReq.getPmsProductIdentifier(), userReq.getTitle(), null));
|
||||
reqSpecs.setCreateAndUpdate(SecurityUtils.getUsername());
|
||||
pmsProductRequirementMapper.insertPmsProductRequirement(reqSpecs);
|
||||
record.setProductRequirementId(reqSpecs.getId());
|
||||
|
|
@ -423,9 +423,19 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
|||
return toProductReqSpecsDetailVo(pmsProductRequirement);
|
||||
}
|
||||
|
||||
private String genReqSpecsIdentifier(String productIdentifier, String reqTitle) {
|
||||
private String genReqSpecsIdentifier(String productIdentifier, String reqTitle, String oldIdentifier) {
|
||||
String reqTitleIdentifier = PinYinStringUtils.toFirstChar(reqTitle).replaceAll("[^a-z^A-Z]", "").toUpperCase();
|
||||
return productIdentifier + "-" + reqTitleIdentifier;
|
||||
String identifier = productIdentifier + "-" + reqTitleIdentifier;
|
||||
if (!identifier.equals(oldIdentifier)) {
|
||||
Integer count = pmsProductRequirementMapper.selectReqSpecsCountByIdentifier(identifier);
|
||||
int nameCount = 1;
|
||||
while (count > 0) {
|
||||
identifier = productIdentifier + "-" + reqTitleIdentifier + "-" + nameCount;
|
||||
count = pmsProductRequirementMapper.selectReqSpecsCountByIdentifier(identifier);
|
||||
nameCount++;
|
||||
}
|
||||
}
|
||||
return identifier;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -440,7 +450,7 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
|||
checkReqSpecsParameter(pmsProductRequirement, pmsProduct, null);
|
||||
|
||||
// 生成需求唯一标识
|
||||
pmsProductRequirement.setIdentifier(genReqSpecsIdentifier(pmsProduct.getProductIdentifier(), productReqSpecsInputVo.getTitle()));
|
||||
pmsProductRequirement.setIdentifier(genReqSpecsIdentifier(pmsProduct.getProductIdentifier(), productReqSpecsInputVo.getTitle(), null));
|
||||
// 设置默认需求状态
|
||||
pmsProductRequirement.setStatus(ProductReqStatus.PENDING_REVIEW_REQ_SPECS.getKey());
|
||||
|
||||
|
|
@ -471,7 +481,7 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
|||
// 待审核和变更中的需求可随意更改
|
||||
if (StringUtils.isNotEmpty(productReqSpecsUpdateVo.getTitle())) {
|
||||
// 更新需求唯一标识
|
||||
pmsProductRequirement.setIdentifier(genReqSpecsIdentifier(pmsProduct.getProductIdentifier(), productReqSpecsUpdateVo.getTitle()));
|
||||
pmsProductRequirement.setIdentifier(genReqSpecsIdentifier(pmsProduct.getProductIdentifier(), productReqSpecsUpdateVo.getTitle(), oldPmsProductRequirement.getIdentifier()));
|
||||
}
|
||||
} else {
|
||||
throw new ServiceException("当前状态下的需求规格不允许修改");
|
||||
|
|
@ -501,7 +511,8 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
|||
PmsProductRequirement changingReqSpecs = oldPmsProductRequirement.toChangeReqSpecs(productReqSpecsChangeVo);
|
||||
if (StringUtils.isNotEmpty(productReqSpecsChangeVo.getTitle())) {
|
||||
// 更新需求唯一标识
|
||||
changingReqSpecs.setIdentifier(genReqSpecsIdentifier(oldPmsProductRequirement.getPmsProductIdentifier(), productReqSpecsChangeVo.getTitle()));
|
||||
changingReqSpecs.setIdentifier(
|
||||
genReqSpecsIdentifier(oldPmsProductRequirement.getPmsProductIdentifier(), productReqSpecsChangeVo.getTitle(), oldPmsProductRequirement.getIdentifier()));
|
||||
}
|
||||
changingReqSpecs.setUpdateBy(SecurityUtils.getUsername());
|
||||
changingReqSpecs.setUpdateTime(DateUtils.getNowDate());
|
||||
|
|
|
|||
|
|
@ -227,6 +227,12 @@
|
|||
order by update_time desc
|
||||
</select>
|
||||
|
||||
<select id="selectReqSpecsCountByIdentifier" resultType="java.lang.Integer">
|
||||
select count(1)
|
||||
from pms_product_requirement
|
||||
where identifier = #{identifier}
|
||||
</select>
|
||||
|
||||
<insert id="insertPmsProductRequirement" parameterType="PmsProductRequirement" useGeneratedKeys="true"
|
||||
keyProperty="id">
|
||||
insert into pms_product_requirement
|
||||
|
|
|
|||
Loading…
Reference in New Issue