diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/ProductReqSpecsController.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/ProductReqSpecsController.java index 05887ff69..8de70de21 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/ProductReqSpecsController.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/ProductReqSpecsController.java @@ -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 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)); + } } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductReqSpecsChangeVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductReqSpecsChangeVo.java index d047eb9d0..244dfde20 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductReqSpecsChangeVo.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/ProductReqSpecsChangeVo.java @@ -56,7 +56,7 @@ public class ProductReqSpecsChangeVo { if (StringUtils.isNotEmpty(this.getTitle()) && !this.title.equals(oldPmsProductRequirement.getTitle())) { return true; } - return !Objects.equals(this.getFileIdentifiers(), oldPmsProductRequirement.getFileIdentifiers()); + return this.getFileIdentifiers() != null && !Objects.equals(this.getFileIdentifiers(), oldPmsProductRequirement.getFileIdentifiers()); } public PmsProductRequirement toPmsProductRequirement() { 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 aca7090d9..42093dc2b 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 @@ -140,4 +140,6 @@ public interface IPmsProductRequirementService void updateReqSpecsStatusByProjectReqId(Long projectReqId, ProductReqStatus productReqStatus); List selectReqSpecsProjectList(String productIdentifier); + + int batchUpdatePmsProductRequirement(JSONObject pmsProductRequirementBatchUpdateVo); } 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 0f1e83286..e48be1c59 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 @@ -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 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();