feat: 查询项目列表
This commit is contained in:
@@ -110,7 +110,7 @@ public class CustomerController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@Operation(summary = "获得客户分页")
|
@Operation(summary = "获得客户列表")
|
||||||
@PreAuthorize("@ss.hasPermission('license:customer:query')")
|
@PreAuthorize("@ss.hasPermission('license:customer:query')")
|
||||||
public CommonResult<List<CustomerRespVO>> getCustomerList() {
|
public CommonResult<List<CustomerRespVO>> getCustomerList() {
|
||||||
List<CustomerDO> listResult = customerService.getCustomerList();
|
List<CustomerDO> listResult = customerService.getCustomerList();
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import org.agt.framework.common.pojo.PageResult;
|
|||||||
import org.agt.framework.common.util.object.BeanUtils;
|
import org.agt.framework.common.util.object.BeanUtils;
|
||||||
import org.agt.framework.excel.core.util.ExcelUtils;
|
import org.agt.framework.excel.core.util.ExcelUtils;
|
||||||
import org.agt.framework.translate.core.TranslateUtils;
|
import org.agt.framework.translate.core.TranslateUtils;
|
||||||
|
import org.agt.module.license.controller.admin.project.vo.ProjectListReqVO;
|
||||||
import org.agt.module.license.controller.admin.project.vo.ProjectPageReqVO;
|
import org.agt.module.license.controller.admin.project.vo.ProjectPageReqVO;
|
||||||
import org.agt.module.license.controller.admin.project.vo.ProjectRespVO;
|
import org.agt.module.license.controller.admin.project.vo.ProjectRespVO;
|
||||||
import org.agt.module.license.controller.admin.project.vo.ProjectSaveReqVO;
|
import org.agt.module.license.controller.admin.project.vo.ProjectSaveReqVO;
|
||||||
@@ -85,6 +86,14 @@ public class ProjectController {
|
|||||||
return success(BeanUtils.toBean(pageResult, ProjectRespVO.class));
|
return success(BeanUtils.toBean(pageResult, ProjectRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/list")
|
||||||
|
@Operation(summary = "获得项目列表")
|
||||||
|
@PreAuthorize("@ss.hasPermission('license:project:query')")
|
||||||
|
public CommonResult<List<ProjectRespVO>> getProjectPage(@Valid ProjectListReqVO pageReqVO) {
|
||||||
|
List<ProjectDO> listResult = projectService.getProjectList(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(listResult, ProjectRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
@Operation(summary = "导出项目 Excel")
|
@Operation(summary = "导出项目 Excel")
|
||||||
@PreAuthorize("@ss.hasPermission('license:project:export')")
|
@PreAuthorize("@ss.hasPermission('license:project:export')")
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
package org.agt.module.license.controller.admin.project.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.ToString;
|
||||||
|
import org.agt.framework.common.pojo.PageParam;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static org.agt.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 项目分页 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class ProjectListReqVO extends PageParam {
|
||||||
|
|
||||||
|
@Schema(description = "客户ID", example = "111")
|
||||||
|
private Long customerId;
|
||||||
|
|
||||||
|
@Schema(description = "项目名称", example = "aa")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Schema(description = "项目编号", example = "2000")
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
@Schema(description = "合同编号", example = "1111")
|
||||||
|
private String contractCode;
|
||||||
|
|
||||||
|
@Schema(description = "商务状态", example = "2")
|
||||||
|
private Integer businessStatus;
|
||||||
|
|
||||||
|
@Schema(description = "业务负责人")
|
||||||
|
private Long businessOwner;
|
||||||
|
|
||||||
|
@Schema(description = "客户对接人")
|
||||||
|
private Long customerOwner;
|
||||||
|
|
||||||
|
@Schema(description = "技术负责人1")
|
||||||
|
private Long technicalOwnerA;
|
||||||
|
|
||||||
|
@Schema(description = "技术负责人2")
|
||||||
|
private Long technicalOwnerB;
|
||||||
|
|
||||||
|
@Schema(description = "技术负责人3")
|
||||||
|
private Long technicalOwnerC;
|
||||||
|
|
||||||
|
@Schema(description = "项目开始时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] startTime;
|
||||||
|
|
||||||
|
@Schema(description = "项目结束时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] endTime;
|
||||||
|
|
||||||
|
@Schema(description = "项目状态", example = "2")
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
@Schema(description = "环境信息")
|
||||||
|
private String envInfo;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,10 +3,13 @@ package org.agt.module.license.dal.mysql.project;
|
|||||||
import org.agt.framework.common.pojo.PageResult;
|
import org.agt.framework.common.pojo.PageResult;
|
||||||
import org.agt.framework.mybatis.core.mapper.BaseMapperX;
|
import org.agt.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import org.agt.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import org.agt.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import org.agt.module.license.controller.admin.project.vo.ProjectListReqVO;
|
||||||
import org.agt.module.license.controller.admin.project.vo.ProjectPageReqVO;
|
import org.agt.module.license.controller.admin.project.vo.ProjectPageReqVO;
|
||||||
import org.agt.module.license.dal.dataobject.project.ProjectDO;
|
import org.agt.module.license.dal.dataobject.project.ProjectDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目 Mapper
|
* 项目 Mapper
|
||||||
*
|
*
|
||||||
@@ -34,6 +37,26 @@ public interface ProjectMapper extends BaseMapperX<ProjectDO> {
|
|||||||
.orderByDesc(ProjectDO::getId));
|
.orderByDesc(ProjectDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default List<ProjectDO> selectList(ProjectListReqVO reqVO) {
|
||||||
|
return selectList(new LambdaQueryWrapperX<ProjectDO>()
|
||||||
|
.eqIfPresent(ProjectDO::getCustomerId, reqVO.getCustomerId())
|
||||||
|
.likeIfPresent(ProjectDO::getName, reqVO.getName())
|
||||||
|
.likeIfPresent(ProjectDO::getCode, reqVO.getCode())
|
||||||
|
.likeIfPresent(ProjectDO::getContractCode, reqVO.getContractCode())
|
||||||
|
.eqIfPresent(ProjectDO::getBusinessStatus, reqVO.getBusinessStatus())
|
||||||
|
.eqIfPresent(ProjectDO::getBusinessOwner, reqVO.getBusinessOwner())
|
||||||
|
.eqIfPresent(ProjectDO::getCustomerOwner, reqVO.getCustomerOwner())
|
||||||
|
.eqIfPresent(ProjectDO::getTechnicalOwnerA, reqVO.getTechnicalOwnerA())
|
||||||
|
.eqIfPresent(ProjectDO::getTechnicalOwnerB, reqVO.getTechnicalOwnerB())
|
||||||
|
.eqIfPresent(ProjectDO::getTechnicalOwnerC, reqVO.getTechnicalOwnerC())
|
||||||
|
.betweenIfPresent(ProjectDO::getStartTime, reqVO.getStartTime())
|
||||||
|
.betweenIfPresent(ProjectDO::getEndTime, reqVO.getEndTime())
|
||||||
|
.eqIfPresent(ProjectDO::getStatus, reqVO.getStatus())
|
||||||
|
.likeIfPresent(ProjectDO::getEnvInfo, reqVO.getEnvInfo())
|
||||||
|
.betweenIfPresent(ProjectDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(ProjectDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
default ProjectDO selectByName(String name) {
|
default ProjectDO selectByName(String name) {
|
||||||
return selectOne(ProjectDO::getName, name);
|
return selectOne(ProjectDO::getName, name);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,13 @@ package org.agt.module.license.service.project;
|
|||||||
|
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.agt.framework.common.pojo.PageResult;
|
import org.agt.framework.common.pojo.PageResult;
|
||||||
|
import org.agt.module.license.controller.admin.project.vo.ProjectListReqVO;
|
||||||
import org.agt.module.license.controller.admin.project.vo.ProjectPageReqVO;
|
import org.agt.module.license.controller.admin.project.vo.ProjectPageReqVO;
|
||||||
import org.agt.module.license.controller.admin.project.vo.ProjectSaveReqVO;
|
import org.agt.module.license.controller.admin.project.vo.ProjectSaveReqVO;
|
||||||
import org.agt.module.license.dal.dataobject.project.ProjectDO;
|
import org.agt.module.license.dal.dataobject.project.ProjectDO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目 Service 接口
|
* 项目 Service 接口
|
||||||
*
|
*
|
||||||
@@ -51,6 +54,14 @@ public interface ProjectService {
|
|||||||
*/
|
*/
|
||||||
PageResult<ProjectDO> getProjectPage(ProjectPageReqVO pageReqVO);
|
PageResult<ProjectDO> getProjectPage(ProjectPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得项目列表
|
||||||
|
*
|
||||||
|
* @param pageReqVO 列表查询
|
||||||
|
* @return 项目列表
|
||||||
|
*/
|
||||||
|
List<ProjectDO> getProjectList(ProjectListReqVO reqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验项目名称是否唯一
|
* 校验项目名称是否唯一
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.agt.framework.common.pojo.PageResult;
|
import org.agt.framework.common.pojo.PageResult;
|
||||||
import org.agt.framework.common.util.object.BeanUtils;
|
import org.agt.framework.common.util.object.BeanUtils;
|
||||||
|
import org.agt.module.license.controller.admin.project.vo.ProjectListReqVO;
|
||||||
import org.agt.module.license.controller.admin.project.vo.ProjectPageReqVO;
|
import org.agt.module.license.controller.admin.project.vo.ProjectPageReqVO;
|
||||||
import org.agt.module.license.controller.admin.project.vo.ProjectSaveReqVO;
|
import org.agt.module.license.controller.admin.project.vo.ProjectSaveReqVO;
|
||||||
import org.agt.module.license.dal.dataobject.project.ProjectDO;
|
import org.agt.module.license.dal.dataobject.project.ProjectDO;
|
||||||
@@ -11,6 +12,8 @@ import org.agt.module.license.dal.mysql.project.ProjectMapper;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static org.agt.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static org.agt.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static org.agt.module.license.enums.ErrorCodeConstants.PROJECT_CODE_DUPLICATE;
|
import static org.agt.module.license.enums.ErrorCodeConstants.PROJECT_CODE_DUPLICATE;
|
||||||
import static org.agt.module.license.enums.ErrorCodeConstants.PROJECT_NAME_DUPLICATE;
|
import static org.agt.module.license.enums.ErrorCodeConstants.PROJECT_NAME_DUPLICATE;
|
||||||
@@ -85,6 +88,11 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
return projectMapper.selectPage(pageReqVO);
|
return projectMapper.selectPage(pageReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ProjectDO> getProjectList(ProjectListReqVO reqVO) {
|
||||||
|
return projectMapper.selectList(reqVO);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean validateProjectNameUnique(String name, Long id) {
|
public Boolean validateProjectNameUnique(String name, Long id) {
|
||||||
if (StrUtil.isBlank(name)) {
|
if (StrUtil.isBlank(name)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user