From 759922b3db17421a2f35c8ca8b41d9d94fbd42b4 Mon Sep 17 00:00:00 2001 From: wanjia <553039491@qq.com> Date: Wed, 26 Mar 2025 10:14:25 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BA=A7=E5=93=81):=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E9=9C=80=E6=B1=82=E5=85=AC=E5=BC=80=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/common/controller/OpenController.java | 11 ++++---- .../service/IPmsEnterpriseService.java | 2 ++ .../impl/PmsEnterpriseServiceImpl.java | 21 ++++++++++++++++ .../IPmsProductRequirementService.java | 2 ++ .../product/service/IPmsProductService.java | 2 ++ .../PmsProductRequirementServiceImpl.java | 25 +++++++++++++++++++ .../service/impl/PmsProductServiceImpl.java | 9 +++++++ 7 files changed, 66 insertions(+), 6 deletions(-) diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/common/controller/OpenController.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/common/controller/OpenController.java index e7665515d..8eac351db 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/common/controller/OpenController.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/common/controller/OpenController.java @@ -5,8 +5,7 @@ import com.microservices.common.core.web.controller.BaseController; import com.microservices.common.core.web.domain.AjaxResult; 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.ProductReqSpecsInputVo; +import com.microservices.pms.product.domain.vo.ProductUserReqInputVo; import com.microservices.pms.product.service.IPmsProductRequirementService; import com.microservices.pms.specialArea.service.SoftwareFactStatisticsServiceImpl; import io.swagger.annotations.Api; @@ -61,11 +60,11 @@ public class OpenController extends BaseController { * 新增需求 */ @Log(title = "需求", businessType = BusinessType.INSERT) - @PostMapping("/{enterpriseIdentifier}/productRequirementSpecs") + @PostMapping("/{enterpriseIdentifier}/productUserRequirement") @ApiOperation(value = "新增需求") public AjaxResult add(@PathVariable String enterpriseIdentifier, - @RequestBody @Validated ProductReqSpecsInputVo productReqSpecsInputVo) { - productReqSpecsInputVo.setEnterpriseIdentifier(enterpriseIdentifier); - return AjaxResult.success(pmsProductRequirementService.insertReqSpecs(productReqSpecsInputVo)); + @RequestBody @Validated ProductUserReqInputVo productUserReqInputVo) { + productUserReqInputVo.setEnterpriseIdentifier(enterpriseIdentifier); + return success(pmsProductRequirementService.insertUserReqWithoutAuth(productUserReqInputVo)); } } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enterprise/service/IPmsEnterpriseService.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enterprise/service/IPmsEnterpriseService.java index 65c0872d9..ede8a47e5 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enterprise/service/IPmsEnterpriseService.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enterprise/service/IPmsEnterpriseService.java @@ -60,6 +60,8 @@ public interface IPmsEnterpriseService { PmsEnterprise selectPmsEnterpriseByIdentifier(String identifier); + PmsEnterprise selectPmsEnterpriseByIdentifierWithoutAuth(String identifier); + /** * 获取企业下用户列表 * diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enterprise/service/impl/PmsEnterpriseServiceImpl.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enterprise/service/impl/PmsEnterpriseServiceImpl.java index 21aea2822..d3a7326ac 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enterprise/service/impl/PmsEnterpriseServiceImpl.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enterprise/service/impl/PmsEnterpriseServiceImpl.java @@ -136,6 +136,27 @@ public class PmsEnterpriseServiceImpl implements IPmsEnterpriseService { return pmsEnterprise; } + @Override + public PmsEnterprise selectPmsEnterpriseByIdentifierWithoutAuth(String identifier) { + // 企业信息在项目管理的每次接口请求中都会执行查询,加入到Redis缓存减少数据库查询次数 + String enterpriseRedisKey = CacheConstants.getEnterpriseIdentifierKey(identifier); + PmsEnterprise pmsEnterprise; + if (redisService.hasKey(enterpriseRedisKey)) { + pmsEnterprise = redisService.getCacheObject(enterpriseRedisKey); + } else { + pmsEnterprise = pmsEnterpriseMapper.selectPmsEnterpriseByIdentifier(identifier); + if (pmsEnterprise == null) { + throw new ServiceException("该企业不存在(企业标识[%s])", identifier); + } + redisService.setCacheObject(enterpriseRedisKey, pmsEnterprise); + } + if (!checkEnterpriseInitComplete(pmsEnterprise.getGitlinkOrgId())) { + throw new ServiceException("当前组织初始化未完成,不允许进行操作!"); + } + pmsEnterprise.setGitlinkUrl(gitLinkRequestHelper.gitLinkUrl); + return pmsEnterprise; + } + private void clearPmsEnterpriseForRedis(PmsEnterprise pmsEnterprise) { redisService.deleteObject(CacheConstants.getEnterpriseIdentifierKey(pmsEnterprise.getEnterpriseIdentifier())); redisService.deleteObject(CacheConstants.getEnterpriseIdKey(pmsEnterprise.getId())); 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 495d7c47f..3a923ca08 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 @@ -90,6 +90,8 @@ public interface IPmsProductRequirementService Long insertUserReq(ProductUserReqInputVo productUserReqInputVo); + Long insertUserReqWithoutAuth(ProductUserReqInputVo productUserReqInputVo); + int updateUserReq(ProductUserReqUpdateVo productUserReqUpdateVo); int deleteUserReqByIds(Long[] ids); diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductService.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductService.java index 90cbd0417..792001a6c 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductService.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductService.java @@ -79,6 +79,8 @@ public interface IPmsProductService */ PmsProduct selectPmsProductByIdentifier(String identifier); + PmsProduct selectPmsProductByIdentifierWithoutAuth(String identifier); + /** * 置顶/取消置顶产品 * @param identifier 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 bfa03b967..878fb75a0 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 @@ -149,6 +149,31 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS return pmsProductRequirement.getId(); } + @Override + @Transactional(rollbackFor = ServiceException.class) + public Long insertUserReqWithoutAuth(ProductUserReqInputVo productUserReqInputVo) { + // 校验产品是否存在 + PmsProduct pmsProduct = pmsProductService.selectPmsProductByIdentifierWithoutAuth(productUserReqInputVo.getPmsProductIdentifier()); + + PmsProductRequirement pmsProductRequirement = productUserReqInputVo.toPmsProductRequirement(); + // 校验参数 + checkUserReqParameter(pmsProductRequirement, pmsProduct); + if (StringUtils.isEmpty(productUserReqInputVo.getSourceCompany())) { + PmsEnterprise pmsEnterprise = pmsEnterpriseService.selectPmsEnterpriseByIdentifierWithoutAuth(productUserReqInputVo.getEnterpriseIdentifier()); + pmsProductRequirement.setSourceCompany(pmsEnterprise.getEnterpriseName()); + } + // 设置默认需求状态 + pmsProductRequirement.setStatus(ProductReqStatus.PENDING_REVIEW_USER_REQ.getKey()); + + pmsProductRequirement.setCreateAndUpdate(SecurityUtils.getUsername()); + + pmsProductService.updatePmsProductChange(pmsProductRequirement.getPmsProductIdentifier()); + pmsProductRequirementMapper.insertPmsProductRequirement(pmsProductRequirement); + pmsProductReqOperationRecordService.insertPmsProductReqOperationRecord( + productUserReqInputVo.toPmsProductReqOperationRecord(pmsProductRequirement)); + return pmsProductRequirement.getId(); + } + @Override public int updateUserReq(ProductUserReqUpdateVo productUserReqUpdateVo) { // 通过id检查需修改的产品需求是否存在 diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductServiceImpl.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductServiceImpl.java index c5c086cee..4b7041301 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductServiceImpl.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductServiceImpl.java @@ -272,6 +272,15 @@ public class PmsProductServiceImpl implements IPmsProductService return pmsProduct; } + @Override + public PmsProduct selectPmsProductByIdentifierWithoutAuth(String identifier) { + PmsProduct pmsProduct= pmsProductMapper.selectPmsProductByIdentifier(identifier); + if(pmsProduct==null){ + throw new ServiceException("该产品不存在(产品标识[%s])",identifier); + } + return pmsProduct; + } + @Override public int updatePmsProductTop(String identifier) { PmsProduct pmsProduct=selectPmsProductByIdentifier(identifier);