fix(项目管理产品需求重构): 完善产品需求规格逻辑

需求规格支持批量更新模块和计划

关联Issue:https://pm.gitlink.org.cn/Gitlink/projects/228/bug/124131

Signed-off-by: OTTO <731554297@qq.com>
This commit is contained in:
OTTO 2024-12-17 16:13:41 +08:00
parent 87c17a2c7d
commit 0f85f633d8
3 changed files with 29 additions and 8 deletions

View File

@ -1,5 +1,6 @@
package com.microservices.pms.product.controller;
import com.alibaba.fastjson2.JSONObject;
import com.microservices.common.core.web.controller.BaseController;
import com.microservices.common.core.web.domain.AjaxResult;
import com.microservices.common.core.web.domain.GenericsAjaxResult;
@ -10,10 +11,7 @@ import com.microservices.common.security.annotation.RequiresPermissions;
import com.microservices.pms.product.domain.vo.*;
import com.microservices.pms.product.service.IPmsProductRequirementService;
import com.microservices.pms.project.domain.PmsProject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -153,4 +151,21 @@ public class ProductReqSpecsController extends BaseController {
public List<EnumCommonVo> typeList() {
return pmsProductRequirementService.selectReqSpecsTypeList();
}
/**
* 批量修改产品需求
*/
@RequiresPermissions("pms:pmsProductRequirement:edit")
@Log(title = "需求规格", businessType = BusinessType.UPDATE)
@PutMapping("/batch")
@ApiOperation(value = "批量修改产品需求规格")
public AjaxResult batchEdit(
@ApiParam(name = "pmsProductRequirementBatchUpdateVo",
value = "【字段说明】(非必填字段不传递则代表不更新传null则代表置空):\n" +
"idList:需求Id列表必填,示例:[1,2,3];\n" +
"pmsProductModuleId:关联产品模块ID;\n" +
"pmsProductPlanId:关联产品计划ID;\n")
@RequestBody JSONObject pmsProductRequirementBatchUpdateVo) {
return toAjax(pmsProductRequirementService.batchUpdatePmsProductRequirement(pmsProductRequirementBatchUpdateVo));
}
}

View File

@ -140,4 +140,6 @@ public interface IPmsProductRequirementService
void updateReqSpecsStatusByProjectReqId(Long projectReqId, ProductReqStatus productReqStatus);
List<PmsProject> selectReqSpecsProjectList(String productIdentifier);
int batchUpdatePmsProductRequirement(JSONObject pmsProductRequirementBatchUpdateVo);
}

View File

@ -5,10 +5,7 @@ import com.alibaba.fastjson2.JSONObject;
import com.microservices.common.core.constant.SecurityConstants;
import com.microservices.common.core.exception.NotFoundException;
import com.microservices.common.core.exception.ServiceException;
import com.microservices.common.core.utils.DateUtils;
import com.microservices.common.core.utils.PageUtils;
import com.microservices.common.core.utils.PinYinStringUtils;
import com.microservices.common.core.utils.StringUtils;
import com.microservices.common.core.utils.*;
import com.microservices.common.core.web.page.GenericsTableDataInfo;
import com.microservices.common.httpClient.util.GitLinkRequestHelper;
import com.microservices.common.security.utils.SecurityUtils;
@ -632,6 +629,13 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
return pmsProjectService.selectPmsProjectList(pmsProjectSearch);
}
@Override
public int batchUpdatePmsProductRequirement(JSONObject jsonObject) {
List<Long> idList = JSONUtils.getLongListByJsonArray(jsonObject.getJSONArray("idList"));
checkBatchUpdateInTheSameProduct(idList);
return batchUpdatePmsProductRequirementByJsonObject(idList, jsonObject);
}
private ProductReqSpecsDetailVo toProductReqSpecsDetailVo(PmsProductRequirement pmsProductRequirement) {
ProductReqSpecsDataVo productReqSpecsDataVo = toProductReqSpecsDataVo(pmsProductRequirement, null);
ProductReqSpecsDetailVo productReqSpecsDetailVo = productReqSpecsDataVo.toProductReqSpecsDetailVo();