feat(项目管理产品需求重构): 完善产品中的用户需求功能开发

查询用户需求详情时返回评审相关信息

Signed-off-by: OTTO <731554297@qq.com>
This commit is contained in:
OTTO 2024-12-03 15:07:00 +08:00
parent bccc9b8e12
commit 3d59e04e09
5 changed files with 26 additions and 77 deletions

View File

@ -60,4 +60,6 @@ public interface PmsProductReqOperationRecordMapper {
* @return 结果
*/
public int deletePmsProductReqOperationRecordByIds(Long[] ids);
PmsProductReqOperationRecord selectUserReqLatestReviewRecord(Long reqId);
}

View File

@ -58,4 +58,12 @@ public interface IPmsProductReqOperationRecordService {
* @return 结果
*/
public int deletePmsProductReqOperationRecordById(Long id);
/**
* 查询用户需求最近一次评审记录
*
* @param reqId 用户需求id
* @return 最近一次评审记录
*/
PmsProductReqOperationRecord selectUserReqLatestReviewRecord(Long reqId);
}

View File

@ -90,4 +90,9 @@ public class PmsProductReqOperationRecordServiceImpl implements IPmsProductReqOp
public int deletePmsProductReqOperationRecordById(Long id) {
return pmsProductReqOperationRecordMapper.deletePmsProductReqOperationRecordById(id);
}
@Override
public PmsProductReqOperationRecord selectUserReqLatestReviewRecord(Long reqId) {
return pmsProductReqOperationRecordMapper.selectUserReqLatestReviewRecord(reqId);
}
}

View File

@ -75,20 +75,6 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
@Autowired
private RemoteFileService remoteFileService;
private PmsProductRequirementDetailVo toPmsProductRequirementDetailVo(PmsProductRequirement pmsProductRequirement) {
PmsProductRequirementDataVo pmsProductRequirementDataVo = toPmsProductRequirementDataVo(pmsProductRequirement, null);
PmsProductRequirementDetailVo pmsProductRequirementDetailVo = pmsProductRequirementDataVo.toPmsProductRequirementDetailVo();
pmsProductRequirementDetailVo.setContent(pmsProductRequirement.getContent());
// 设置文件列表
pmsProductRequirementDetailVo.setFileList(pmsCommonService.getAllFileByFileIdentifiers(pmsProductRequirement.getFileIdentifiers())
);
// 设置产品计划
if (pmsProductRequirement.getPmsProductPlanId() != null) {
pmsProductRequirementDetailVo.setPmsProductPlan(pmsProductPlanService.selectPmsProductPlanById(pmsProductRequirement.getPmsProductPlanId(), false));
}
return pmsProductRequirementDetailVo;
}
@Override
public PmsProductRequirement selectPmsProductRequirementById(Long id, boolean checkRole) {
PmsProductRequirement pmsProductRequirement = pmsProductRequirementMapper.selectPmsProductRequirementById(id);
@ -102,69 +88,6 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
return pmsProductRequirement;
}
private PmsProductRequirementDataVo toPmsProductRequirementDataVo(PmsProductRequirement pmsProductRequirement, HashMap<String, Object> hashMap) {
PmsProductRequirementDataVo pmsProductRequirementDataVo = pmsProductRequirement.toPmsProductRequirementDataVo();
// 设置优先级
pmsProductRequirementDataVo.setPriority(
PmsUtils.getSelectObjectInCache(
hashMap
, pmsProductPriorityService::selectPmsProductPriorityById
, pmsProductRequirement.getPriorityId()));
// 设置产品模块
if (pmsProductRequirement.getPmsProductModuleId() != null) {
pmsProductRequirementDataVo.setPmsProductModule(
PmsUtils.getSelectObjectInCache(
hashMap
, x -> pmsProductModuleService.selectPmsProductModuleById(x, false)
, pmsProductRequirement.getPmsProductModuleId())
);
}
// 设置产品
pmsProductRequirementDataVo.setPmsProduct(
PmsUtils.getSelectObjectInCache(
hashMap
, pmsProductService::selectPmsProductByIdentifier
, pmsProductRequirement.getPmsProductIdentifier())
);
// 设置产品计划
if (pmsProductRequirement.getPmsProductPlanId() != null) {
pmsProductRequirementDataVo.setPmsProductPlan(
PmsUtils.getSelectObjectInCache(
hashMap
, x -> pmsProductPlanService.selectPmsProductPlanById(x, false)
, pmsProductRequirement.getPmsProductPlanId())
);
}
// 设置标记Id列表
pmsProductRequirementDataVo.setTags(pmsProductRequirement.getTagIds());
// 设置需求负责人
pmsProductRequirementDataVo.setRequirementAssigneeList(
pmsCommonService.getSimpleSysUserListByGitlinkUserIdsAndCache(pmsProductRequirement.getRequirementAssigneeGitlinkIds(), hashMap));
// 设置需求创建人
pmsProductRequirementDataVo.setCreateByUser(
PmsUtils.getSelectObjectInCache(
hashMap
, pmsCommonService::getSimpleSysUserByUsername
, pmsProductRequirement.getCreateBy())
);
// 设置需求更新人
pmsProductRequirementDataVo.setUpdateByUser(
PmsUtils.getSelectObjectInCache(
hashMap
, pmsCommonService::getSimpleSysUserByUsername
, pmsProductRequirement.getUpdateBy())
);
if (pmsProductRequirementDataVo.getCreateByUser() != null) {
pmsProductRequirementDataVo.setCreateBy(pmsProductRequirementDataVo.getCreateByUser().getNickName());
}
if (pmsProductRequirementDataVo.getUpdateByUser() != null) {
pmsProductRequirementDataVo.setUpdateBy(pmsProductRequirementDataVo.getUpdateByUser().getNickName());
}
return pmsProductRequirementDataVo;
}
@Override
public GenericsTableDataInfo<ProductUserReqDataVo> selectUserReqList(ProductUserReqSearchVo productUserReqSearchVo) {
@ -190,6 +113,9 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
@Override
public ProductUserReqDetailVo selectUserReqDetailById(Long id) {
PmsProductRequirement pmsProductRequirement = selectPmsProductRequirementById(id, false);
PmsProductReqOperationRecord record = pmsProductReqOperationRecordService.selectUserReqLatestReviewRecord(pmsProductRequirement.getId());
pmsProductRequirement.setReviewContent(record.getContent());
pmsProductRequirement.setReviewTime(record.getOperatingTime());
return toProductUserReqDetailVo(pmsProductRequirement);
}

View File

@ -65,6 +65,14 @@
<include refid="selectPmsProductReqOperationRecordVo"/>
where id = #{id}
</select>
<select id="selectUserReqLatestReviewRecord" parameterType="Long"
resultMap="PmsProductReqOperationRecordResult">
<include refid="selectPmsProductReqOperationRecordVo"/>
where type = 'reviewUserReq'
and product_requirement_id=#{reqId}
order by operating_time desc
limit 1
</select>
<insert id="insertPmsProductReqOperationRecord" parameterType="PmsProductReqOperationRecord" useGeneratedKeys="true"
keyProperty="id">