From 804309d5d7ae6614930bda2f8cfccecbab01dadb Mon Sep 17 00:00:00 2001 From: OTTO <731554297@qq.com> Date: Fri, 29 Nov 2024 11:47:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E9=87=8D=E6=9E=84):=20?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=A7=E5=93=81=E4=B8=AD=E7=9A=84=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E9=9C=80=E6=B1=82=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增接口:修改用户需求 Signed-off-by: OTTO <731554297@qq.com> --- .../controller/ProductUserReqController.java | 16 +++-- .../domain/vo/ProductUserReqInputVo.java | 7 ++- .../domain/vo/ProductUserReqUpdateVo.java | 60 +++++++++++++++++++ .../IPmsProductRequirementService.java | 2 + .../PmsProductRequirementServiceImpl.java | 27 +++++++-- 5 files changed, 100 insertions(+), 12 deletions(-) create mode 100644 microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductUserReqUpdateVo.java diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/ProductUserReqController.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/ProductUserReqController.java index 2456425d8..5278bdfce 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/ProductUserReqController.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/ProductUserReqController.java @@ -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)); + } } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductUserReqInputVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductUserReqInputVo.java index 81e4ab00b..279649e73 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductUserReqInputVo.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductUserReqInputVo.java @@ -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; diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductUserReqUpdateVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductUserReqUpdateVo.java new file mode 100644 index 000000000..7616680a9 --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductUserReqUpdateVo.java @@ -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; + } +} diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductRequirementService.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductRequirementService.java index 1f3c8de99..aa6990066 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductRequirementService.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductRequirementService.java @@ -143,4 +143,6 @@ public interface IPmsProductRequirementService ProductUserReqDetailVo selectUserReqDetailById(Long id); Long insertUserReq(ProductUserReqInputVo productUserReqInputVo); + + int updateUserReq(ProductUserReqUpdateVo productUserReqUpdateVo); } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductRequirementServiceImpl.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductRequirementServiceImpl.java index 1bb82d8d1..5fd3e2d7b 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductRequirementServiceImpl.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductRequirementServiceImpl.java @@ -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) {