feat(项目管理产品需求重构): 完善产品中的需求规格功能开发
1. 新增接口:查询需求规格列表 2. 新增接口:获取需求规格详细信息 Signed-off-by: OTTO <731554297@qq.com>
This commit is contained in:
parent
8f69ef0d20
commit
be54bc56d8
|
|
@ -0,0 +1,101 @@
|
||||||
|
package com.microservices.pms.product.controller;
|
||||||
|
|
||||||
|
import com.microservices.common.core.web.controller.BaseController;
|
||||||
|
import com.microservices.common.core.web.domain.AjaxResult;
|
||||||
|
import com.microservices.common.core.web.domain.GenericsAjaxResult;
|
||||||
|
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.*;
|
||||||
|
import com.microservices.pms.product.service.IPmsProductRequirementService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品需求规格相关接口
|
||||||
|
*
|
||||||
|
* @author otto
|
||||||
|
* @date 2023-10-10
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@Api(tags = "项目管理-需求规格相关接口")
|
||||||
|
@RequestMapping("/{enterpriseIdentifier}/productRequirementSpecs")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "enterpriseIdentifier", value = "企业标识", paramType = "path", dataType = "String")
|
||||||
|
})
|
||||||
|
public class ProductReqSpecsController extends BaseController {
|
||||||
|
@Autowired
|
||||||
|
private IPmsProductRequirementService pmsProductRequirementService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询产品需求规格列表
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "查询需求规格列表")
|
||||||
|
@RequiresPermissions("pms:pmsProduct:show")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public GenericsTableDataInfo<ProductReqSpecsDataVo> list(@PathVariable String enterpriseIdentifier, @Validated ProductReqSpecsSearchVo productReqSpecsSearchVo) {
|
||||||
|
return pmsProductRequirementService.selectReqSpecsList(productReqSpecsSearchVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取需求规格详细信息
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("pms:pmsProduct:show")
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
@ApiOperation(value = "获取需求规格详细信息")
|
||||||
|
public GenericsAjaxResult<ProductReqSpecsDetailVo> getInfo(@PathVariable("id") Long id) {
|
||||||
|
return genericsSuccess(pmsProductRequirementService.selectReqSpecsDetailById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增需求规格
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("pms:pmsProductRequirement:add")
|
||||||
|
@Log(title = "需求规格", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping
|
||||||
|
@ApiOperation(value = "新增需求规格")
|
||||||
|
public AjaxResult add(@PathVariable String enterpriseIdentifier,
|
||||||
|
@RequestBody @Validated ProductUserReqInputVo productUserReqInputVo) {
|
||||||
|
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));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除需求规格
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("pms:pmsProductRequirement:remove")
|
||||||
|
@Log(title = "需求规格", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
@ApiOperation(value = "删除需求规格")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||||
|
return toAjax(pmsProductRequirementService.deleteUserReqByIds(ids));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评审需求规格
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("pms:pmsProductRequirement:edit")
|
||||||
|
@Log(title = "需求规格", businessType = BusinessType.UPDATE)
|
||||||
|
@PutMapping("/review")
|
||||||
|
@ApiOperation(value = "评审需求规格")
|
||||||
|
public AjaxResult review(@RequestBody @Validated ProductUserReqReviewVo productUserReqReviewVo) {
|
||||||
|
return toAjax(pmsProductRequirementService.reviewUserReq(productUserReqReviewVo));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -8,7 +8,6 @@ import com.microservices.common.log.annotation.Log;
|
||||||
import com.microservices.common.log.enums.BusinessType;
|
import com.microservices.common.log.enums.BusinessType;
|
||||||
import com.microservices.common.security.annotation.RequiresPermissions;
|
import com.microservices.common.security.annotation.RequiresPermissions;
|
||||||
import com.microservices.pms.product.domain.vo.*;
|
import com.microservices.pms.product.domain.vo.*;
|
||||||
import com.microservices.pms.product.service.IPmsProductModuleService;
|
|
||||||
import com.microservices.pms.product.service.IPmsProductRequirementService;
|
import com.microservices.pms.product.service.IPmsProductRequirementService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
|
@ -26,15 +25,13 @@ import org.springframework.web.bind.annotation.*;
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "项目管理-用户需求相关接口")
|
@Api(tags = "项目管理-用户需求相关接口")
|
||||||
@RequestMapping("/{enterpriseIdentifier}/pmsProductUserRequirement")
|
@RequestMapping("/{enterpriseIdentifier}/productUserRequirement")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "enterpriseIdentifier", value = "企业标识", paramType = "path", dataType = "String")
|
@ApiImplicitParam(name = "enterpriseIdentifier", value = "企业标识", paramType = "path", dataType = "String")
|
||||||
})
|
})
|
||||||
public class ProductUserReqController extends BaseController {
|
public class ProductUserReqController extends BaseController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPmsProductRequirementService pmsProductRequirementService;
|
private IPmsProductRequirementService pmsProductRequirementService;
|
||||||
@Autowired
|
|
||||||
private IPmsProductModuleService pmsProductModuleService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询产品用户需求列表
|
* 查询产品用户需求列表
|
||||||
|
|
@ -42,9 +39,8 @@ public class ProductUserReqController extends BaseController {
|
||||||
@ApiOperation(value = "查询用户需求列表")
|
@ApiOperation(value = "查询用户需求列表")
|
||||||
@RequiresPermissions("pms:pmsProduct:show")
|
@RequiresPermissions("pms:pmsProduct:show")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public GenericsTableDataInfo<ProductUserReqDataVo> list(@PathVariable String enterpriseIdentifier, @Validated ProductUserReqSearchVo productUserReqSearchVo) {
|
public GenericsTableDataInfo<ProductUserReqDataVo> list(@Validated ProductUserReqSearchVo productUserReqSearchVo) {
|
||||||
startPage();
|
return pmsProductRequirementService.selectUserReqList(productUserReqSearchVo);
|
||||||
return pmsProductRequirementService.selectUserReqList(enterpriseIdentifier, productUserReqSearchVo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import com.microservices.common.core.utils.bean.BeanUtils;
|
import com.microservices.common.core.utils.bean.BeanUtils;
|
||||||
import com.microservices.common.core.web.domain.BaseEntity;
|
import com.microservices.common.core.web.domain.BaseEntity;
|
||||||
import com.microservices.pms.product.domain.vo.PmsProductRequirementDataVo;
|
import com.microservices.pms.product.domain.vo.PmsProductRequirementDataVo;
|
||||||
|
import com.microservices.pms.product.domain.vo.ProductReqSpecsDataVo;
|
||||||
import com.microservices.pms.product.domain.vo.ProductUserReqDataVo;
|
import com.microservices.pms.product.domain.vo.ProductUserReqDataVo;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
@ -115,7 +116,7 @@ public class PmsProductRequirement extends BaseEntity
|
||||||
private Long pmsProjectId;
|
private Long pmsProjectId;
|
||||||
|
|
||||||
/** 关联项目ID */
|
/** 关联项目ID */
|
||||||
@ApiModelProperty(value = "关联项目ID")
|
@ApiModelProperty(value = "关联模块ID")
|
||||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||||
private List<Long> childrenModuleIdList;
|
private List<Long> childrenModuleIdList;
|
||||||
|
|
||||||
|
|
@ -158,4 +159,10 @@ public class PmsProductRequirement extends BaseEntity
|
||||||
BeanUtils.copyProperties(this, target);
|
BeanUtils.copyProperties(this, target);
|
||||||
return target;
|
return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ProductReqSpecsDataVo toProductReqSpecsDataVo() {
|
||||||
|
ProductReqSpecsDataVo target = new ProductReqSpecsDataVo();
|
||||||
|
BeanUtils.copyProperties(this, target);
|
||||||
|
return target;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.microservices.pms.product.domain.enums;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author OTTO
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CommonEnumType {
|
||||||
|
private String key;
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public CommonEnumType() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public CommonEnumType(String key, String name) {
|
||||||
|
this.key = key;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@ import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 产品需求状态
|
* 产品需求状态
|
||||||
|
*
|
||||||
* @author OTTO
|
* @author OTTO
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
|
|
@ -12,7 +13,7 @@ public enum ProductReqStatus {
|
||||||
REJECTED_USER_REQ("rejectedUserReq", "已拒绝", "已拒绝的用户需求"),
|
REJECTED_USER_REQ("rejectedUserReq", "已拒绝", "已拒绝的用户需求"),
|
||||||
REVIEWED_USER_REQ("reviewedUserReq", "已评审", "已评审的用户需求"),
|
REVIEWED_USER_REQ("reviewedUserReq", "已评审", "已评审的用户需求"),
|
||||||
PENDING_REVIEW_REQ_SPECS("pendingReviewReqSpecs", "待评审", "待评审的需求规格"),
|
PENDING_REVIEW_REQ_SPECS("pendingReviewReqSpecs", "待评审", "待评审的需求规格"),
|
||||||
REVIEWED_REQ_SPECS_CHANGING("reviewedReqSpecsChanging", "已评审", "已评审的需求规格(变更中)"),
|
REVIEWED_REQ_SPECS_CHANGING("reviewedReqSpecsChanging", "已评审(变更中)", "已评审的需求规格(变更中)"),
|
||||||
PLANNED_REQ_SPECS("plannedReqSpecs", "计划中", "计划中的需求规格"),
|
PLANNED_REQ_SPECS("plannedReqSpecs", "计划中", "计划中的需求规格"),
|
||||||
REJECTED_REQ_SPECS("rejectedReqSpecs", "已拒绝", "已拒绝的需求规格"),
|
REJECTED_REQ_SPECS("rejectedReqSpecs", "已拒绝", "已拒绝的需求规格"),
|
||||||
REVIEWED_REQ_SPECS("reviewedReqSpecs", "已评审", "已评审的需求规格"),
|
REVIEWED_REQ_SPECS("reviewedReqSpecs", "已评审", "已评审的需求规格"),
|
||||||
|
|
@ -36,10 +37,10 @@ public enum ProductReqStatus {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getNameByKey(String status) {
|
public static CommonEnumType getTypeByKey(String status) {
|
||||||
for (ProductReqStatus productReqStatus : ProductReqStatus.values()) {
|
for (ProductReqStatus productReqStatus : ProductReqStatus.values()) {
|
||||||
if (productReqStatus.getKey().equals(status)) {
|
if (productReqStatus.getKey().equals(status)) {
|
||||||
return productReqStatus.getName();
|
return new CommonEnumType(productReqStatus.getKey(), productReqStatus.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
package com.microservices.pms.product.domain.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.microservices.common.core.utils.bean.BeanUtils;
|
||||||
|
import com.microservices.pms.product.domain.PmsProductModule;
|
||||||
|
import com.microservices.pms.product.domain.enums.CommonEnumType;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品需求对象 pms_product_requirement
|
||||||
|
*
|
||||||
|
* @author otto
|
||||||
|
* @date 2023-10-10
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ApiModel("需求规格数据对象")
|
||||||
|
public class ProductReqSpecsDataVo {
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "需求标识")
|
||||||
|
private String identifier;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "需求状态")
|
||||||
|
private CommonEnumType status;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "产品需求类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "更新时间")
|
||||||
|
private Date updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联产品模块
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "关联产品模块")
|
||||||
|
private PmsProductModule pmsProductModule;
|
||||||
|
|
||||||
|
public ProductReqSpecsDetailVo toProductReqSpecsDetailVo() {
|
||||||
|
ProductReqSpecsDetailVo target = new ProductReqSpecsDetailVo();
|
||||||
|
BeanUtils.copyProperties(this, target);
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
package com.microservices.pms.product.domain.vo;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
|
import com.microservices.pms.project.domain.PmsProject;
|
||||||
|
import com.microservices.system.api.domain.SysFileInfo;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品需求对象 pms_product_requirement
|
||||||
|
*
|
||||||
|
* @author otto
|
||||||
|
* @date 2023-10-10
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ApiModel("需求规格详细数据对象")
|
||||||
|
public class ProductReqSpecsDetailVo extends ProductReqSpecsDataVo {
|
||||||
|
@ApiModelProperty(value = "正文")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "附件列表")
|
||||||
|
private List<SysFileInfo> fileList;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "关联计划(原项目需求)")
|
||||||
|
private JSONObject projectIssue;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "关联项目")
|
||||||
|
private PmsProject project;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
package com.microservices.pms.product.domain.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品需求对象 pms_product_requirement
|
||||||
|
*
|
||||||
|
* @author otto
|
||||||
|
* @date 2023-10-10
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ApiModel("用户需求搜索对象")
|
||||||
|
public class ProductReqSpecsSearchVo {
|
||||||
|
/**
|
||||||
|
* 标题
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "模糊搜索标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联产品模块标识
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "关联产品标识", required = true)
|
||||||
|
@NotNull
|
||||||
|
private String pmsProductIdentifier;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联产品模块ID
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "关联产品模块ID(传0查询不属于任何模块的需求)")
|
||||||
|
private Long pmsProductModuleId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "产品需求状态(全部状态请传空)")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联项目ID
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "关联模块ID", hidden = true)
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||||
|
private List<Long> childrenModuleIdList;
|
||||||
|
}
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
package com.microservices.pms.product.domain.vo;
|
package com.microservices.pms.product.domain.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.microservices.common.core.utils.bean.BeanUtils;
|
import com.microservices.common.core.utils.bean.BeanUtils;
|
||||||
import com.microservices.pms.product.domain.PmsProductModule;
|
import com.microservices.pms.product.domain.PmsProductModule;
|
||||||
import com.microservices.pms.project.domain.vo.BaseEntityVo;
|
import com.microservices.pms.product.domain.enums.CommonEnumType;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 产品需求对象 pms_product_requirement
|
* 产品需求对象 pms_product_requirement
|
||||||
*
|
*
|
||||||
|
|
@ -15,15 +18,14 @@ import lombok.Data;
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel("用户需求数据对象")
|
@ApiModel("用户需求数据对象")
|
||||||
public class ProductUserReqDataVo extends BaseEntityVo {
|
public class ProductUserReqDataVo {
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@ApiModelProperty(value = "标题")
|
@ApiModelProperty(value = "标题")
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "需求状态")
|
@ApiModelProperty(value = "需求状态")
|
||||||
private String status;
|
private CommonEnumType status;
|
||||||
|
|
||||||
@ApiModelProperty(value = "从属产品模块")
|
@ApiModelProperty(value = "从属产品模块")
|
||||||
private PmsProductModule pmsProductModule;
|
private PmsProductModule pmsProductModule;
|
||||||
|
|
@ -34,6 +36,10 @@ public class ProductUserReqDataVo extends BaseEntityVo {
|
||||||
@ApiModelProperty(value = "需求来源单位")
|
@ApiModelProperty(value = "需求来源单位")
|
||||||
private String sourceCompany;
|
private String sourceCompany;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "需求提出时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
public ProductUserReqDetailVo toProductReqUserDetailVo() {
|
public ProductUserReqDetailVo toProductReqUserDetailVo() {
|
||||||
ProductUserReqDetailVo target = new ProductUserReqDetailVo();
|
ProductUserReqDetailVo target = new ProductUserReqDetailVo();
|
||||||
BeanUtils.copyProperties(this, target);
|
BeanUtils.copyProperties(this, target);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
package com.microservices.pms.product.domain.vo;
|
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.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -30,9 +28,6 @@ public class ProductUserReqSearchVo {
|
||||||
@NotNull
|
@NotNull
|
||||||
private String pmsProductIdentifier;
|
private String pmsProductIdentifier;
|
||||||
|
|
||||||
public PmsProductRequirement toPmsProductRequirement() {
|
@ApiModelProperty(value = "产品需求状态(全部状态请传空)")
|
||||||
PmsProductRequirement target = new PmsProductRequirement();
|
private String status;
|
||||||
BeanUtils.copyProperties(this, target);
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.microservices.pms.product.mapper;
|
||||||
|
|
||||||
import com.microservices.pms.product.domain.PmsProductRequirement;
|
import com.microservices.pms.product.domain.PmsProductRequirement;
|
||||||
import com.microservices.pms.product.domain.vo.PmsProductRequirementBatchUpdateVo;
|
import com.microservices.pms.product.domain.vo.PmsProductRequirementBatchUpdateVo;
|
||||||
|
import com.microservices.pms.product.domain.vo.ProductReqSpecsSearchVo;
|
||||||
import com.microservices.pms.product.domain.vo.ProductUserReqSearchVo;
|
import com.microservices.pms.product.domain.vo.ProductUserReqSearchVo;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
@ -105,4 +106,6 @@ public interface PmsProductRequirementMapper
|
||||||
List<String> selectProductIdentifierListInRequirementIdList(@Param("idList") List<Long> idList);
|
List<String> selectProductIdentifierListInRequirementIdList(@Param("idList") List<Long> idList);
|
||||||
|
|
||||||
List<PmsProductRequirement> selectUserReqList(ProductUserReqSearchVo productUserReqSearchVo);
|
List<PmsProductRequirement> selectUserReqList(ProductUserReqSearchVo productUserReqSearchVo);
|
||||||
|
|
||||||
|
List<PmsProductRequirement> selectReqSpecsList(ProductReqSpecsSearchVo productReqSpecsSearchVo);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,7 @@ public interface IPmsProductRequirementService
|
||||||
* @param productUserReqSearchVo 查询条件
|
* @param productUserReqSearchVo 查询条件
|
||||||
* @return 用户需求列表
|
* @return 用户需求列表
|
||||||
*/
|
*/
|
||||||
GenericsTableDataInfo<ProductUserReqDataVo> selectUserReqList(String enterpriseIdentifier, ProductUserReqSearchVo productUserReqSearchVo);
|
GenericsTableDataInfo<ProductUserReqDataVo> selectUserReqList(ProductUserReqSearchVo productUserReqSearchVo);
|
||||||
|
|
||||||
ProductUserReqDetailVo selectUserReqDetailById(Long id);
|
ProductUserReqDetailVo selectUserReqDetailById(Long id);
|
||||||
|
|
||||||
|
|
@ -149,4 +149,8 @@ public interface IPmsProductRequirementService
|
||||||
int deleteUserReqByIds(Long[] ids);
|
int deleteUserReqByIds(Long[] ids);
|
||||||
|
|
||||||
int reviewUserReq(ProductUserReqReviewVo productUserReqReviewVo);
|
int reviewUserReq(ProductUserReqReviewVo productUserReqReviewVo);
|
||||||
|
|
||||||
|
GenericsTableDataInfo<ProductReqSpecsDataVo> selectReqSpecsList(ProductReqSpecsSearchVo productReqSpecsSearchVo);
|
||||||
|
|
||||||
|
ProductReqSpecsDetailVo selectReqSpecsDetailById(Long id);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ import com.microservices.pms.product.mapper.PmsProductRequirementMapper;
|
||||||
import com.microservices.pms.product.service.*;
|
import com.microservices.pms.product.service.*;
|
||||||
import com.microservices.pms.project.domain.PmsProject;
|
import com.microservices.pms.project.domain.PmsProject;
|
||||||
import com.microservices.pms.project.service.IPmsProjectService;
|
import com.microservices.pms.project.service.IPmsProjectService;
|
||||||
|
import com.microservices.pms.project.service.PmsProjectIssuesService;
|
||||||
import com.microservices.pms.utils.PmsConstants;
|
import com.microservices.pms.utils.PmsConstants;
|
||||||
import com.microservices.pms.utils.PmsUtils;
|
import com.microservices.pms.utils.PmsUtils;
|
||||||
import com.microservices.system.api.domain.SysUser;
|
import com.microservices.system.api.domain.SysUser;
|
||||||
|
|
@ -67,6 +68,8 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPmsProjectService pmsProjectService;
|
private IPmsProjectService pmsProjectService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private PmsProjectIssuesService pmsProjectIssuesService;
|
||||||
|
@Autowired
|
||||||
@Lazy
|
@Lazy
|
||||||
private IPmsJournalsService pmsJournalsService;
|
private IPmsJournalsService pmsJournalsService;
|
||||||
|
|
||||||
|
|
@ -180,7 +183,7 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GenericsTableDataInfo<ProductUserReqDataVo> selectUserReqList(String enterpriseIdentifier, ProductUserReqSearchVo productUserReqSearchVo) {
|
public GenericsTableDataInfo<ProductUserReqDataVo> selectUserReqList(ProductUserReqSearchVo productUserReqSearchVo) {
|
||||||
pmsProductService.selectPmsProductByIdentifier(productUserReqSearchVo.getPmsProductIdentifier());
|
pmsProductService.selectPmsProductByIdentifier(productUserReqSearchVo.getPmsProductIdentifier());
|
||||||
startPage();
|
startPage();
|
||||||
List<PmsProductRequirement> userReqList = pmsProductRequirementMapper.selectUserReqList(productUserReqSearchVo);
|
List<PmsProductRequirement> userReqList = pmsProductRequirementMapper.selectUserReqList(productUserReqSearchVo);
|
||||||
|
|
@ -190,7 +193,7 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
||||||
private ProductUserReqDataVo toProductUserReqDataVo(PmsProductRequirement pmsProductRequirement) {
|
private ProductUserReqDataVo toProductUserReqDataVo(PmsProductRequirement pmsProductRequirement) {
|
||||||
ProductUserReqDataVo productUserReqDataVo = pmsProductRequirement.toProductUserReqDataVo();
|
ProductUserReqDataVo productUserReqDataVo = pmsProductRequirement.toProductUserReqDataVo();
|
||||||
// 设置状态
|
// 设置状态
|
||||||
productUserReqDataVo.setStatus(ProductReqStatus.getNameByKey(pmsProductRequirement.getStatus()));
|
productUserReqDataVo.setStatus(ProductReqStatus.getTypeByKey(pmsProductRequirement.getStatus()));
|
||||||
|
|
||||||
return productUserReqDataVo;
|
return productUserReqDataVo;
|
||||||
}
|
}
|
||||||
|
|
@ -284,6 +287,60 @@ public class PmsProductRequirementServiceImpl implements IPmsProductRequirementS
|
||||||
return updateRequirement(userReq, userReq.getPmsProductIdentifier());
|
return updateRequirement(userReq, userReq.getPmsProductIdentifier());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GenericsTableDataInfo<ProductReqSpecsDataVo> selectReqSpecsList(ProductReqSpecsSearchVo productReqSpecsSearchVo) {
|
||||||
|
pmsProductService.selectPmsProductByIdentifier(productReqSpecsSearchVo.getPmsProductIdentifier());
|
||||||
|
if (productReqSpecsSearchVo.getPmsProductModuleId() != null && productReqSpecsSearchVo.getPmsProductModuleId() != 0) {
|
||||||
|
List<Long> moduleIdList = pmsProductModuleService.selectChildrenPmsProductModuleIdList(productReqSpecsSearchVo.getPmsProductModuleId());
|
||||||
|
productReqSpecsSearchVo.setChildrenModuleIdList(moduleIdList);
|
||||||
|
}
|
||||||
|
startPage();
|
||||||
|
List<PmsProductRequirement> userReqList = pmsProductRequirementMapper.selectReqSpecsList(productReqSpecsSearchVo);
|
||||||
|
HashMap<String, Object> hashMap = new HashMap<>();
|
||||||
|
return PageUtils.toPage(userReqList, x -> toProductReqSpecsDataVo(x, hashMap));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private ProductReqSpecsDataVo toProductReqSpecsDataVo(PmsProductRequirement pmsProductRequirement, HashMap<String, Object> hashMap) {
|
||||||
|
ProductReqSpecsDataVo productReqSpecsDataVo = pmsProductRequirement.toProductReqSpecsDataVo();
|
||||||
|
// 设置状态
|
||||||
|
productReqSpecsDataVo.setStatus(ProductReqStatus.getTypeByKey(pmsProductRequirement.getStatus()));
|
||||||
|
|
||||||
|
// 设置产品模块
|
||||||
|
if (pmsProductRequirement.getPmsProductModuleId() != null) {
|
||||||
|
productReqSpecsDataVo.setPmsProductModule(
|
||||||
|
PmsUtils.getSelectObjectInCache(
|
||||||
|
hashMap
|
||||||
|
, x -> pmsProductModuleService.selectPmsProductModuleById(x, false)
|
||||||
|
, pmsProductRequirement.getPmsProductModuleId())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return productReqSpecsDataVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProductReqSpecsDetailVo selectReqSpecsDetailById(Long id) {
|
||||||
|
PmsProductRequirement pmsProductRequirement = selectPmsProductRequirementById(id, false);
|
||||||
|
return toProductReqSpecsDetailVo(pmsProductRequirement);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ProductReqSpecsDetailVo toProductReqSpecsDetailVo(PmsProductRequirement pmsProductRequirement) {
|
||||||
|
ProductReqSpecsDataVo productReqSpecsDataVo = toProductReqSpecsDataVo(pmsProductRequirement, null);
|
||||||
|
ProductReqSpecsDetailVo productReqSpecsDetailVo = productReqSpecsDataVo.toProductReqSpecsDetailVo();
|
||||||
|
productReqSpecsDetailVo.setContent(pmsProductRequirement.getContent());
|
||||||
|
// 设置文件列表
|
||||||
|
productReqSpecsDetailVo.setFileList(pmsCommonService.getAllFileByFileIdentifiers(pmsProductRequirement.getFileIdentifiers())
|
||||||
|
);
|
||||||
|
if (pmsProductRequirement.getPmsProjectId() != null) {
|
||||||
|
productReqSpecsDetailVo.setProject(pmsProjectService.selectAndCheckPmsProjectById(pmsProductRequirement.getPmsProjectId()));
|
||||||
|
if (pmsProductRequirement.getProjectReqId() != null) {
|
||||||
|
productReqSpecsDetailVo.setProjectIssue(
|
||||||
|
pmsProjectIssuesService.selectPmsProjectIssueById(pmsProductRequirement.getProjectReqId(), pmsProductRequirement.getPmsProjectId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return productReqSpecsDetailVo;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除产品需求信息
|
* 删除产品需求信息
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,31 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<!DOCTYPE mapper
|
<!DOCTYPE mapper
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.microservices.pms.product.mapper.PmsProductRequirementMapper">
|
<mapper namespace="com.microservices.pms.product.mapper.PmsProductRequirementMapper">
|
||||||
|
|
||||||
<resultMap type="com.microservices.pms.product.domain.PmsProductRequirement" id="PmsProductRequirementResult">
|
<resultMap type="com.microservices.pms.product.domain.PmsProductRequirement" id="PmsProductRequirementResult">
|
||||||
<result property="id" column="id" />
|
<result property="id" column="id"/>
|
||||||
<result property="index" column="index" />
|
<result property="index" column="index"/>
|
||||||
<result property="title" column="title" />
|
<result property="title" column="title"/>
|
||||||
<result property="status" column="status"/>
|
<result property="status" column="status"/>
|
||||||
<result property="priorityId" column="priority_id" />
|
<result property="priorityId" column="priority_id"/>
|
||||||
<result property="pmsProductModuleId" column="pms_product_module_id" />
|
<result property="pmsProductModuleId" column="pms_product_module_id"/>
|
||||||
<result property="pmsProductPlanId" column="pms_product_plan_id" />
|
<result property="pmsProductPlanId" column="pms_product_plan_id"/>
|
||||||
<result property="pmsProductIdentifier" column="pms_product_identifier" />
|
<result property="pmsProductIdentifier" column="pms_product_identifier"/>
|
||||||
<result property="content" column="content" />
|
<result property="content" column="content"/>
|
||||||
<result property="tagIds" column="tag_ids" />
|
<result property="tagIds" column="tag_ids"/>
|
||||||
<result property="startTime" column="start_time" />
|
<result property="startTime" column="start_time"/>
|
||||||
<result property="endTime" column="end_time" />
|
<result property="endTime" column="end_time"/>
|
||||||
<result property="fileIdentifiers" column="file_identifiers"/>
|
<result property="fileIdentifiers" column="file_identifiers"/>
|
||||||
<result property="sort" column="sort" />
|
<result property="sort" column="sort"/>
|
||||||
<result property="updateTime" column="update_time" />
|
<result property="updateTime" column="update_time"/>
|
||||||
<result property="updateBy" column="update_by" />
|
<result property="updateBy" column="update_by"/>
|
||||||
<result property="createTime" column="create_time" />
|
<result property="createTime" column="create_time"/>
|
||||||
<result property="createBy" column="create_by" />
|
<result property="createBy" column="create_by"/>
|
||||||
<result property="delFlag" column="del_flag" />
|
<result property="delFlag" column="del_flag"/>
|
||||||
<result property="requirementAssigneeGitlinkIds" column="requirement_assignee_gitlink_ids"/>
|
<result property="requirementAssigneeGitlinkIds" column="requirement_assignee_gitlink_ids"/>
|
||||||
<result property="pmsProjectId" column="pms_project_id" />
|
<result property="pmsProjectId" column="pms_project_id"/>
|
||||||
<result property="fromId" column="from_id"/>
|
<result property="fromId" column="from_id"/>
|
||||||
<result property="projectReqId" column="project_req_id"/>
|
<result property="projectReqId" column="project_req_id"/>
|
||||||
<result property="type" column="type"/>
|
<result property="type" column="type"/>
|
||||||
|
|
@ -65,7 +65,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
from pms_product_requirement
|
from pms_product_requirement
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectPmsProductRequirementList" parameterType="PmsProductRequirement" resultMap="PmsProductRequirementResult">
|
<select id="selectPmsProductRequirementList" parameterType="PmsProductRequirement"
|
||||||
|
resultMap="PmsProductRequirementResult">
|
||||||
/*keep orderby*/
|
/*keep orderby*/
|
||||||
<include refid="selectPmsProductRequirementVo"/>
|
<include refid="selectPmsProductRequirementVo"/>
|
||||||
<include refid="selectWhere"/>
|
<include refid="selectWhere"/>
|
||||||
|
|
@ -78,21 +79,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
|
||||||
<sql id="selectWhere">
|
<sql id="selectWhere">
|
||||||
<where>
|
<where>
|
||||||
<if test="title != null and title != ''"> and title like concat('%', #{title}, '%')</if>
|
<if test="title != null and title != ''">and title like concat('%', #{title}, '%')</if>
|
||||||
<if test="priorityId != null "> and priority_id = #{priorityId}</if>
|
<if test="priorityId != null ">and priority_id = #{priorityId}</if>
|
||||||
<if test="pmsProductPlanId != null "> and pms_product_plan_id = #{pmsProductPlanId}</if>
|
<if test="pmsProductPlanId != null ">and pms_product_plan_id = #{pmsProductPlanId}</if>
|
||||||
<if test="pmsProductIdentifier != null "> and pms_product_identifier = #{pmsProductIdentifier}</if>
|
<if test="pmsProductIdentifier != null ">and pms_product_identifier = #{pmsProductIdentifier}</if>
|
||||||
<if test="content != null and content != ''"> and content = #{content}</if>
|
<if test="content != null and content != ''">and content = #{content}</if>
|
||||||
<if test="tagId != null and tagId != ''">and FIND_IN_SET(#{tagId},tag_ids)</if>
|
<if test="tagId != null and tagId != ''">and FIND_IN_SET(#{tagId},tag_ids)</if>
|
||||||
<if test="createBy != null and createBy != ''"> and create_by = #{createBy}</if>
|
<if test="createBy != null and createBy != ''">and create_by = #{createBy}</if>
|
||||||
<if test="startTime != null "> and start_time = #{startTime}</if>
|
<if test="startTime != null ">and start_time = #{startTime}</if>
|
||||||
<if test="endTime != null "> and end_time = #{endTime}</if>
|
<if test="endTime != null ">and end_time = #{endTime}</if>
|
||||||
<if test="fileIdentifiers != null and fileIdentifiers != ''">and file_identifiers = #{fileIdentifiers}</if>
|
<if test="fileIdentifiers != null and fileIdentifiers != ''">and file_identifiers = #{fileIdentifiers}</if>
|
||||||
<if test="sort != null "> and sort = #{sort}</if>
|
<if test="sort != null ">and sort = #{sort}</if>
|
||||||
<if test="requirementAssigneeGitlinkId != null and requirementAssigneeGitlinkId != ''">
|
<if test="requirementAssigneeGitlinkId != null and requirementAssigneeGitlinkId != ''">
|
||||||
and FIND_IN_SET(#{requirementAssigneeGitlinkId},requirement_assignee_gitlink_ids)
|
and FIND_IN_SET(#{requirementAssigneeGitlinkId},requirement_assignee_gitlink_ids)
|
||||||
</if>
|
</if>
|
||||||
<if test="pmsProjectId != null and pmsProjectId != ''"> and pms_project_id = #{pmsProjectId}</if>
|
<if test="pmsProjectId != null and pmsProjectId != ''">and pms_project_id = #{pmsProjectId}</if>
|
||||||
<if test="productIdentifierList != null">
|
<if test="productIdentifierList != null">
|
||||||
and pms_product_identifier in
|
and pms_product_identifier in
|
||||||
<foreach item="productIdentifier" collection="productIdentifierList" open="(" separator="," close=")">
|
<foreach item="productIdentifier" collection="productIdentifierList" open="(" separator="," close=")">
|
||||||
|
|
@ -124,7 +125,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</select>
|
</select>
|
||||||
<select id="selectPmsProductRequirementMaxIndexByProductIdentifier" resultType="java.lang.Long">
|
<select id="selectPmsProductRequirementMaxIndexByProductIdentifier" resultType="java.lang.Long">
|
||||||
select max(`index`) from pms_product_requirement where pms_product_identifier = #{pmsProductIdentifier}
|
select max(`index`)
|
||||||
|
from pms_product_requirement
|
||||||
|
where pms_product_identifier = #{pmsProductIdentifier}
|
||||||
</select>
|
</select>
|
||||||
<select id="selectPmsProductRequirementByProductIdentifierAndIndex" resultMap="PmsProductRequirementResult">
|
<select id="selectPmsProductRequirementByProductIdentifierAndIndex" resultMap="PmsProductRequirementResult">
|
||||||
<include refid="selectPmsProductRequirementVo"/>
|
<include refid="selectPmsProductRequirementVo"/>
|
||||||
|
|
@ -149,12 +152,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
)
|
)
|
||||||
</if>
|
</if>
|
||||||
<if test="pmsProductIdentifier != null ">and pms_product_identifier = #{pmsProductIdentifier}</if>
|
<if test="pmsProductIdentifier != null ">and pms_product_identifier = #{pmsProductIdentifier}</if>
|
||||||
|
<if test="status != null and status != ''">and `status` = #{status}</if>
|
||||||
and (`status`= 'pendingReviewUserReq' or `status`= 'rejectedUserReq' or `status` = 'reviewedUserReq')
|
and (`status`= 'pendingReviewUserReq' or `status`= 'rejectedUserReq' or `status` = 'reviewedUserReq')
|
||||||
</where>
|
</where>
|
||||||
order by update_time desc
|
order by update_time desc
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectReqSpecsList" resultMap="PmsProductRequirementResult">
|
||||||
|
/*keep orderby*/
|
||||||
|
<include refid="selectPmsProductRequirementVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="title != null and title != ''">and title like concat('%', #{title}, '%')</if>
|
||||||
|
<if test="pmsProductIdentifier != null ">and pms_product_identifier = #{pmsProductIdentifier}</if>
|
||||||
|
<if test="status != null and status != ''">and `status` = #{status}</if>
|
||||||
|
<choose>
|
||||||
|
<when test="childrenModuleIdList != null">
|
||||||
|
<if test="childrenModuleIdList != null ">
|
||||||
|
and pms_product_module_id in
|
||||||
|
<foreach item="moduleId" collection="childrenModuleIdList" open="(" separator="," close=")">
|
||||||
|
#{moduleId}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
<if test="pmsProductModuleId != null ">
|
||||||
|
<if test="pmsProductModuleId != 0">and pms_product_module_id = #{pmsProductModuleId}</if>
|
||||||
|
<if test="pmsProductModuleId == 0">and pms_product_module_id is null</if>
|
||||||
|
</if>
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
and (`status`= 'pendingReviewReqSpecs' or `status`= 'plannedReqSpecs' or `status` = 'rejectedReqSpecs' or
|
||||||
|
`status` = 'reviewedReqSpecs' or `status` = 'completedReqSpecs')
|
||||||
|
</where>
|
||||||
|
order by update_time desc
|
||||||
|
</select>
|
||||||
|
|
||||||
<insert id="insertPmsProductRequirement" parameterType="PmsProductRequirement" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insertPmsProductRequirement" parameterType="PmsProductRequirement" useGeneratedKeys="true"
|
||||||
|
keyProperty="id">
|
||||||
insert into pms_product_requirement
|
insert into pms_product_requirement
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
<if test="index != null">`index`,</if>
|
<if test="index != null">`index`,</if>
|
||||||
|
|
@ -183,7 +216,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="identifier != null and identifier != ''">identifier,</if>
|
<if test="identifier != null and identifier != ''">identifier,</if>
|
||||||
<if test="sourceUser != null and sourceUser != ''">source_user,</if>
|
<if test="sourceUser != null and sourceUser != ''">source_user,</if>
|
||||||
<if test="sourceCompany != null and sourceCompany != ''">source_company,</if>
|
<if test="sourceCompany != null and sourceCompany != ''">source_company,</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="index != null">#{index},</if>
|
<if test="index != null">#{index},</if>
|
||||||
<if test="title != null and title != ''">#{title},</if>
|
<if test="title != null and title != ''">#{title},</if>
|
||||||
|
|
@ -211,7 +244,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="identifier != null and identifier != ''">#{identifier},</if>
|
<if test="identifier != null and identifier != ''">#{identifier},</if>
|
||||||
<if test="sourceUser != null and sourceUser != ''">#{sourceUser},</if>
|
<if test="sourceUser != null and sourceUser != ''">#{sourceUser},</if>
|
||||||
<if test="sourceCompany != null and sourceCompany != ''">#{sourceCompany},</if>
|
<if test="sourceCompany != null and sourceCompany != ''">#{sourceCompany},</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<update id="updatePmsProductRequirement" parameterType="PmsProductRequirement">
|
<update id="updatePmsProductRequirement" parameterType="PmsProductRequirement">
|
||||||
|
|
@ -267,7 +300,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<delete id="deletePmsProductRequirementById" parameterType="Long">
|
<delete id="deletePmsProductRequirementById" parameterType="Long">
|
||||||
delete from pms_product_requirement where id = #{id}
|
delete
|
||||||
|
from pms_product_requirement
|
||||||
|
where id = #{id}
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<delete id="deletePmsProductRequirementByIds" parameterType="String">
|
<delete id="deletePmsProductRequirementByIds" parameterType="String">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue