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

新增接口:修改用户需求

Signed-off-by: OTTO <731554297@qq.com>
This commit is contained in:
OTTO 2024-11-29 11:47:25 +08:00
parent b764f24b8e
commit 804309d5d7
5 changed files with 100 additions and 12 deletions

View File

@ -7,10 +7,7 @@ import com.microservices.common.core.web.page.GenericsTableDataInfo;
import com.microservices.common.log.annotation.Log;
import com.microservices.common.log.enums.BusinessType;
import com.microservices.common.security.annotation.RequiresPermissions;
import com.microservices.pms.product.domain.vo.ProductUserReqDataVo;
import com.microservices.pms.product.domain.vo.ProductUserReqDetailVo;
import com.microservices.pms.product.domain.vo.ProductUserReqInputVo;
import com.microservices.pms.product.domain.vo.ProductUserReqSearchVo;
import com.microservices.pms.product.domain.vo.*;
import com.microservices.pms.product.service.IPmsProductModuleService;
import com.microservices.pms.product.service.IPmsProductRequirementService;
import io.swagger.annotations.Api;
@ -72,4 +69,15 @@ public class ProductUserReqController extends BaseController {
productUserReqInputVo.setEnterpriseIdentifier(enterpriseIdentifier);
return success(pmsProductRequirementService.insertUserReq(productUserReqInputVo));
}
/**
* 修改用户需求
*/
@RequiresPermissions("pms:pmsProductRequirement:edit")
@Log(title = "用户需求", businessType = BusinessType.UPDATE)
@PutMapping
@ApiOperation(value = "修改用户需求")
public AjaxResult edit(@RequestBody @Validated ProductUserReqUpdateVo productUserReqUpdateVo) {
return toAjax(pmsProductRequirementService.updateUserReq(productUserReqUpdateVo));
}
}

View File

@ -53,14 +53,15 @@ public class ProductUserReqInputVo {
@ApiModelProperty(value = "附件标识列表")
private String fileIdentifiers;
@ApiModelProperty(value = "需求来源用户", required = true)
@ApiModelProperty(value = "需求来源用户(需前端默认填充当前用户昵称)", required = true)
@NotBlank
private String sourceUser;
@ApiModelProperty(value = "需求来源单位")
@ApiModelProperty(value = "需求来源单位(需前端默认填充当前企业名称)", required = true)
@NotBlank
private String sourceCompany;
@ApiModelProperty(value = "企业表示", hidden = true)
@ApiModelProperty(value = "企业标识", hidden = true)
private String enterpriseIdentifier;

View File

@ -0,0 +1,60 @@
package com.microservices.pms.product.domain.vo;
import com.microservices.common.core.utils.bean.BeanUtils;
import com.microservices.pms.product.domain.PmsProductRequirement;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 产品需求对象 pms_product_requirement
*
* @author otto
* @date 2023-10-10
*/
@Data
@ApiModel("用户需求更新对象")
public class ProductUserReqUpdateVo {
/**
* 需求Id
*/
@ApiModelProperty(value = "需求Id")
@NotNull
private Long id;
/**
* 标题
*/
@ApiModelProperty(value = "标题")
@Size(max = 50, message = "长度需要小于50")
private String title;
/**
* 关联产品模块ID
*/
@ApiModelProperty(value = "关联产品模块ID")
private Long pmsProductModuleId;
/**
* 正文
*/
@ApiModelProperty(value = "正文")
private String content;
@ApiModelProperty(value = "附件标识列表")
private String fileIdentifiers;
@ApiModelProperty(value = "需求来源用户")
private String sourceUser;
@ApiModelProperty(value = "需求来源单位")
private String sourceCompany;
public PmsProductRequirement toPmsProductRequirement() {
PmsProductRequirement target = new PmsProductRequirement();
BeanUtils.copyProperties(this, target);
return target;
}
}

View File

@ -143,4 +143,6 @@ public interface IPmsProductRequirementService
ProductUserReqDetailVo selectUserReqDetailById(Long id);
Long insertUserReq(ProductUserReqInputVo productUserReqInputVo);
int updateUserReq(ProductUserReqUpdateVo productUserReqUpdateVo);
}

View File

@ -208,6 +208,24 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
}
// 设置默认需求状态
pmsProductRequirement.setStatus(ProductReqStatus.PENDING_REVIEW_USER_REQ.getKey());
pmsProductRequirement.setCreateAndUpdate(SecurityUtils.getUsername());
pmsProductService.updatePmsProductChange(pmsProductRequirement.getPmsProductIdentifier());
pmsProductRequirementMapper.insertPmsProductRequirement(pmsProductRequirement);
return pmsProductRequirement.getId();
}
@Override
public int updateUserReq(ProductUserReqUpdateVo productUserReqUpdateVo) {
// 通过id检查需修改的产品需求是否存在
PmsProductRequirement oldPmsProductRequirement = selectPmsProductRequirementById(productUserReqUpdateVo.getId(), true);
PmsProductRequirement pmsProductRequirement = productUserReqUpdateVo.toPmsProductRequirement();
if (!ProductReqStatus.PENDING_REVIEW_USER_REQ.getKey().equals(oldPmsProductRequirement.getStatus())) {
throw new ServiceException("只有待审核状态的用户需求才能修改");
}
PmsProduct pmsProduct = pmsProductService.selectPmsProductByIdentifier(oldPmsProductRequirement.getPmsProductIdentifier());
// 校验模块是否存在
if (pmsProductRequirement.getPmsProductModuleId() != null) {
checkModuleId(pmsProductRequirement.getPmsProductModuleId(), pmsProduct);
@ -215,11 +233,10 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
// 检查附件列表是否有异常数据
pmsCommonService.getAllFileByFileIdentifiers(pmsProductRequirement.getFileIdentifiers());
pmsProductRequirement.setCreateAndUpdate(SecurityUtils.getUsername());
pmsProductService.updatePmsProductChange(pmsProductRequirement.getPmsProductIdentifier());
pmsProductRequirementMapper.insertPmsProductRequirement(pmsProductRequirement);
return pmsProductRequirement.getId();
pmsProductRequirement.setUpdateBy(SecurityUtils.getUsername());
pmsProductRequirement.setUpdateTime(DateUtils.getNowDate());
pmsProductService.updatePmsProductChange(oldPmsProductRequirement.getPmsProductIdentifier());
return pmsProductRequirementMapper.updatePmsProductRequirement(pmsProductRequirement);
}
private ProductUserReqDetailVo toProductUserReqDetailVo(PmsProductRequirement pmsProductRequirement) {