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

需求规格详情返回评审相关信息

Signed-off-by: OTTO <731554297@qq.com>
This commit is contained in:
OTTO 2024-12-09 14:13:33 +08:00
parent c7c3f53f91
commit 42b5dd4530
6 changed files with 54 additions and 3 deletions

View File

@ -52,4 +52,15 @@ public class ProductReqSpecsDetailVo extends ProductReqSpecsDataVo {
private Date changeTime;
@ApiModelProperty(value = "评审时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date reviewTime;
@ApiModelProperty(value = "评审人")
private String reviewUser;
@ApiModelProperty(value = "评审意见")
private String reviewContent;
}

View File

@ -64,4 +64,6 @@ public interface PmsProductReqOperationRecordMapper {
PmsProductReqOperationRecord selectUserReqLatestReviewRecord(Long reqId);
PmsProductReqOperationRecord selectReqSpecsLatestChangeRecord(Long reqSpecsId);
PmsProductReqOperationRecord selectReqSpecsLatestReviewRecord(Long reqSpecsId);
}

View File

@ -73,4 +73,6 @@ public interface IPmsProductReqOperationRecordService {
List<ProductReqOperationRecordDataVo> selectReqSpecsChangeRecordList(Long reqSpecsId);
PmsProductReqOperationRecord selectReqSpecsLatestChangeRecord(Long reqSpecsId);
PmsProductReqOperationRecord selectReqSpecsLatestReviewRecord(Long reqSpecsId);
}

View File

@ -146,6 +146,11 @@ public class PmsProductReqOperationRecordServiceImpl implements IPmsProductReqOp
return pmsProductReqOperationRecordMapper.selectReqSpecsLatestChangeRecord(reqSpecsId);
}
@Override
public PmsProductReqOperationRecord selectReqSpecsLatestReviewRecord(Long reqSpecsId) {
return pmsProductReqOperationRecordMapper.selectReqSpecsLatestReviewRecord(reqSpecsId);
}
private List<ProductReqOperationRecordDataVo> getRecordDataList(List<PmsProductReqOperationRecord> recordList) {
List<ProductReqOperationRecordDataVo> recordDataList = new ArrayList<>();
for (PmsProductReqOperationRecord record : recordList) {

View File

@ -589,10 +589,33 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
productReqSpecsDetailVo.setCreateBy(pmsCommonService.getSimpleSysUserByUsername(pmsProductRequirement.getCreateBy()));
productReqSpecsDetailVo.setCreateTime(pmsProductRequirement.getCreateTime());
if (ProductReqStatus.CHANGING_REQ_SPECS.getKey().equals(pmsProductRequirement.getStatus())) {
PmsProductReqOperationRecord record = pmsProductReqOperationRecordService.selectReqSpecsLatestChangeRecord(pmsProductRequirement.getFromId());
PmsProductReqOperationRecord changeRecord = pmsProductReqOperationRecordService.selectReqSpecsLatestChangeRecord(pmsProductRequirement.getFromId());
if (changeRecord != null) {
productReqSpecsDetailVo.setChangeBy(pmsCommonService.getSimpleSysUserByUsername(changeRecord.getOperator()));
productReqSpecsDetailVo.setChangeTime(changeRecord.getOperatingTime());
}
}
PmsProductRequirement fromReq = pmsProductRequirement;
PmsProductReqOperationRecord record = null;
while (fromReq != null) {
if (ProductReqStatus.isUserReqStatus(fromReq.getStatus())) {
record = pmsProductReqOperationRecordService.selectUserReqLatestReviewRecord(fromReq.getId());
} else {
record = pmsProductReqOperationRecordService.selectReqSpecsLatestReviewRecord(fromReq.getId());
}
if (record != null) {
productReqSpecsDetailVo.setChangeBy(pmsCommonService.getSimpleSysUserByUsername(record.getOperator()));
productReqSpecsDetailVo.setChangeTime(record.getOperatingTime());
break;
}
fromReq = selectPmsProductRequirementById(fromReq.getFromId(), true);
}
if (record != null) {
productReqSpecsDetailVo.setReviewTime(record.getOperatingTime());
if (StringUtils.isNotEmpty(record.getContent())
&& JSON.isValid(record.getContent())) {
JSONObject reviewContentJson = JSONObject.parseObject(record.getContent());
productReqSpecsDetailVo.setReviewUser(reviewContentJson.getString("reviewUser"));
productReqSpecsDetailVo.setReviewContent(reviewContentJson.getString("reviewContent"));
}
}
return productReqSpecsDetailVo;

View File

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