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> selectUserReqList(ProductUserReqSearchVo productUserReqSearchVo);
|
||||||
|
|
||||||
List<PmsProductRequirement> selectReqSpecsList(ProductReqSpecsSearchVo productReqSpecsSearchVo);
|
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) {
|
private void userReqToReqSpecs(PmsProductRequirement userReq, PmsProductReqOperationRecord record) {
|
||||||
PmsProductRequirement reqSpecs =
|
PmsProductRequirement reqSpecs =
|
||||||
userReq.userReqToReqSpecs();
|
userReq.userReqToReqSpecs();
|
||||||
reqSpecs.setIdentifier(genReqSpecsIdentifier(userReq.getPmsProductIdentifier(), userReq.getTitle()));
|
reqSpecs.setIdentifier(genReqSpecsIdentifier(userReq.getPmsProductIdentifier(), userReq.getTitle(), null));
|
||||||
reqSpecs.setCreateAndUpdate(SecurityUtils.getUsername());
|
reqSpecs.setCreateAndUpdate(SecurityUtils.getUsername());
|
||||||
pmsProductRequirementMapper.insertPmsProductRequirement(reqSpecs);
|
pmsProductRequirementMapper.insertPmsProductRequirement(reqSpecs);
|
||||||
record.setProductRequirementId(reqSpecs.getId());
|
record.setProductRequirementId(reqSpecs.getId());
|
||||||
|
|
@ -423,9 +423,19 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
||||||
return toProductReqSpecsDetailVo(pmsProductRequirement);
|
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();
|
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
|
@Override
|
||||||
|
|
@ -440,7 +450,7 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
||||||
checkReqSpecsParameter(pmsProductRequirement, pmsProduct, null);
|
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());
|
pmsProductRequirement.setStatus(ProductReqStatus.PENDING_REVIEW_REQ_SPECS.getKey());
|
||||||
|
|
||||||
|
|
@ -471,7 +481,7 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
||||||
// 待审核和变更中的需求可随意更改
|
// 待审核和变更中的需求可随意更改
|
||||||
if (StringUtils.isNotEmpty(productReqSpecsUpdateVo.getTitle())) {
|
if (StringUtils.isNotEmpty(productReqSpecsUpdateVo.getTitle())) {
|
||||||
// 更新需求唯一标识
|
// 更新需求唯一标识
|
||||||
pmsProductRequirement.setIdentifier(genReqSpecsIdentifier(pmsProduct.getProductIdentifier(), productReqSpecsUpdateVo.getTitle()));
|
pmsProductRequirement.setIdentifier(genReqSpecsIdentifier(pmsProduct.getProductIdentifier(), productReqSpecsUpdateVo.getTitle(), oldPmsProductRequirement.getIdentifier()));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new ServiceException("当前状态下的需求规格不允许修改");
|
throw new ServiceException("当前状态下的需求规格不允许修改");
|
||||||
|
|
@ -501,7 +511,8 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
||||||
PmsProductRequirement changingReqSpecs = oldPmsProductRequirement.toChangeReqSpecs(productReqSpecsChangeVo);
|
PmsProductRequirement changingReqSpecs = oldPmsProductRequirement.toChangeReqSpecs(productReqSpecsChangeVo);
|
||||||
if (StringUtils.isNotEmpty(productReqSpecsChangeVo.getTitle())) {
|
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.setUpdateBy(SecurityUtils.getUsername());
|
||||||
changingReqSpecs.setUpdateTime(DateUtils.getNowDate());
|
changingReqSpecs.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
|
|
||||||
|
|
@ -227,6 +227,12 @@
|
||||||
order by update_time desc
|
order by update_time desc
|
||||||
</select>
|
</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"
|
<insert id="insertPmsProductRequirement" parameterType="PmsProductRequirement" useGeneratedKeys="true"
|
||||||
keyProperty="id">
|
keyProperty="id">
|
||||||
insert into pms_product_requirement
|
insert into pms_product_requirement
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue