feat: 项目分页查询调整
This commit is contained in:
@@ -17,7 +17,6 @@ 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;
|
||||||
import org.agt.module.license.dal.dataobject.license.LicenseDO;
|
|
||||||
import org.agt.module.license.dal.dataobject.project.ProjectDO;
|
import org.agt.module.license.dal.dataobject.project.ProjectDO;
|
||||||
import org.agt.module.license.dal.mysql.license.LicenseMapper;
|
import org.agt.module.license.dal.mysql.license.LicenseMapper;
|
||||||
import org.agt.module.license.service.project.ProjectService;
|
import org.agt.module.license.service.project.ProjectService;
|
||||||
@@ -34,7 +33,6 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
import static org.agt.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
import static org.agt.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
import static org.agt.framework.common.pojo.CommonResult.success;
|
import static org.agt.framework.common.pojo.CommonResult.success;
|
||||||
@@ -88,15 +86,8 @@ public class ProjectController {
|
|||||||
@Operation(summary = "获得项目分页")
|
@Operation(summary = "获得项目分页")
|
||||||
@PreAuthorize("@ss.hasPermission('license:project:query')")
|
@PreAuthorize("@ss.hasPermission('license:project:query')")
|
||||||
public CommonResult<PageResult<ProjectRespVO>> getProjectPage(@Valid ProjectPageReqVO pageReqVO) {
|
public CommonResult<PageResult<ProjectRespVO>> getProjectPage(@Valid ProjectPageReqVO pageReqVO) {
|
||||||
PageResult<ProjectDO> doPageResult = projectService.getProjectPage(pageReqVO);
|
PageResult<ProjectRespVO> pageResult = projectService.getProjectPage(pageReqVO);
|
||||||
PageResult<ProjectRespVO> pageResult = BeanUtils.toBean(doPageResult, ProjectRespVO.class);
|
return success(pageResult);
|
||||||
List<ProjectRespVO> projects = pageResult.getList();
|
|
||||||
for (ProjectRespVO project : projects) {
|
|
||||||
List<LicenseDO> licenseDOS = licenseMapper.selectList(LicenseDO::getProjectId, project.getId());
|
|
||||||
Optional<LicenseDO> first = licenseDOS.stream().findFirst();
|
|
||||||
first.ifPresent(licenseDO -> project.setSn(licenseDO.getSerialNo()));
|
|
||||||
}
|
|
||||||
return success(BeanUtils.toBean(pageResult, ProjectRespVO.class));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@@ -114,10 +105,10 @@ public class ProjectController {
|
|||||||
public void exportProjectExcel(@Valid ProjectPageReqVO pageReqVO,
|
public void exportProjectExcel(@Valid ProjectPageReqVO pageReqVO,
|
||||||
HttpServletResponse response) throws IOException {
|
HttpServletResponse response) throws IOException {
|
||||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||||
List<ProjectDO> list = projectService.getProjectPage(pageReqVO).getList();
|
List<ProjectRespVO> list = projectService.getProjectPage(pageReqVO).getList();
|
||||||
// 导出 Excel
|
// 导出 Excel
|
||||||
ExcelUtils.write(response, "项目.xls", "数据", ProjectRespVO.class,
|
ExcelUtils.write(response, "项目.xls", "数据", ProjectRespVO.class,
|
||||||
TranslateUtils.translate(BeanUtils.toBean(list, ProjectRespVO.class)));
|
TranslateUtils.translate(list));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/name-unique")
|
@GetMapping("/name-unique")
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ public class ProjectPageReqVO extends PageParam {
|
|||||||
@Schema(description = "客户对接人")
|
@Schema(description = "客户对接人")
|
||||||
private String customerOwner;
|
private String customerOwner;
|
||||||
|
|
||||||
|
@Schema(description = "技术负责人")
|
||||||
|
private String technicalOwner;
|
||||||
|
|
||||||
@Schema(description = "技术负责人1")
|
@Schema(description = "技术负责人1")
|
||||||
private String technicalOwnerA;
|
private String technicalOwnerA;
|
||||||
|
|
||||||
@@ -62,4 +65,9 @@ public class ProjectPageReqVO extends PageParam {
|
|||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private LocalDateTime[] createTime;
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
@Schema(description = "sn")
|
||||||
|
private String serialNo;
|
||||||
|
|
||||||
|
@Schema(description = "客户ID", example = "111")
|
||||||
|
private Long customerId;
|
||||||
}
|
}
|
||||||
@@ -92,7 +92,7 @@ public class ProjectRespVO implements VO {
|
|||||||
@ExcelProperty("创建时间")
|
@ExcelProperty("创建时间")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
@Schema(description = "SN", example = "随便")
|
@Schema(description = "serialNo", example = "随便")
|
||||||
@ExcelProperty("SN")
|
@ExcelProperty("SN")
|
||||||
private String sn;
|
private String serialNo;
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,15 @@
|
|||||||
package org.agt.module.license.dal.mysql.project;
|
package org.agt.module.license.dal.mysql.project;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
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.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||||
import org.agt.module.license.controller.admin.project.vo.ProjectListReqVO;
|
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.dal.dataobject.license.LicenseDO;
|
||||||
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;
|
||||||
|
|
||||||
@@ -18,25 +23,32 @@ import java.util.List;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface ProjectMapper extends BaseMapperX<ProjectDO> {
|
public interface ProjectMapper extends BaseMapperX<ProjectDO> {
|
||||||
|
|
||||||
default PageResult<ProjectDO> selectPage(ProjectPageReqVO reqVO) {
|
default PageResult<ProjectRespVO> selectPage(ProjectPageReqVO reqVO) {
|
||||||
return selectPage(reqVO, new LambdaQueryWrapperX<ProjectDO>()
|
return selectJoinPage(reqVO, ProjectRespVO.class, new MPJLambdaWrapperX<ProjectDO>()
|
||||||
|
.selectAll(ProjectDO.class)
|
||||||
|
.selectAs(LicenseDO::getSerialNo, ProjectRespVO::getSerialNo)
|
||||||
|
.leftJoin(LicenseDO.class, LicenseDO::getProjectId, ProjectDO::getId)
|
||||||
|
.eqIfPresent(ProjectDO::getCustomerId, reqVO.getCustomerId())
|
||||||
.likeIfPresent(ProjectDO::getName, reqVO.getName())
|
.likeIfPresent(ProjectDO::getName, reqVO.getName())
|
||||||
.likeIfPresent(ProjectDO::getCode, reqVO.getCode())
|
.likeIfPresent(ProjectDO::getCode, reqVO.getCode())
|
||||||
.likeIfPresent(ProjectDO::getContractCode, reqVO.getContractCode())
|
.likeIfPresent(ProjectDO::getContractCode, reqVO.getContractCode())
|
||||||
.eqIfPresent(ProjectDO::getBusinessStatus, reqVO.getBusinessStatus())
|
.eqIfPresent(ProjectDO::getBusinessStatus, reqVO.getBusinessStatus())
|
||||||
.eqIfPresent(ProjectDO::getBusinessOwner, reqVO.getBusinessOwner())
|
.eqIfPresent(ProjectDO::getBusinessOwner, reqVO.getBusinessOwner())
|
||||||
.eqIfPresent(ProjectDO::getCustomerOwner, reqVO.getCustomerOwner())
|
.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::getStartTime, reqVO.getStartTime())
|
||||||
.betweenIfPresent(ProjectDO::getEndTime, reqVO.getEndTime())
|
.betweenIfPresent(ProjectDO::getEndTime, reqVO.getEndTime())
|
||||||
.eqIfPresent(ProjectDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(ProjectDO::getStatus, reqVO.getStatus())
|
||||||
.likeIfPresent(ProjectDO::getEnvInfo, reqVO.getEnvInfo())
|
.likeIfPresent(ProjectDO::getEnvInfo, reqVO.getEnvInfo())
|
||||||
.betweenIfPresent(ProjectDO::getCreateTime, reqVO.getCreateTime())
|
.betweenIfPresent(ProjectDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.likeIfPresent(LicenseDO::getSerialNo, reqVO.getSerialNo())
|
||||||
|
.and(StrUtil.isNotBlank(reqVO.getTechnicalOwner()),
|
||||||
|
c -> c.like(ProjectDO::getTechnicalOwnerA, reqVO.getTechnicalOwner())
|
||||||
|
.or().like(ProjectDO::getTechnicalOwnerB, reqVO.getTechnicalOwner())
|
||||||
|
.or().like(ProjectDO::getTechnicalOwnerC, reqVO.getTechnicalOwner()))
|
||||||
.orderByDesc(ProjectDO::getId));
|
.orderByDesc(ProjectDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
default List<ProjectDO> selectList(ProjectListReqVO reqVO) {
|
default List<ProjectDO> selectList(ProjectListReqVO reqVO) {
|
||||||
return selectList(new LambdaQueryWrapperX<ProjectDO>()
|
return selectList(new LambdaQueryWrapperX<ProjectDO>()
|
||||||
.eqIfPresent(ProjectDO::getCustomerId, reqVO.getCustomerId())
|
.eqIfPresent(ProjectDO::getCustomerId, reqVO.getCustomerId())
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ 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.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.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;
|
||||||
|
|
||||||
@@ -52,7 +53,7 @@ public interface ProjectService {
|
|||||||
* @param pageReqVO 分页查询
|
* @param pageReqVO 分页查询
|
||||||
* @return 项目分页
|
* @return 项目分页
|
||||||
*/
|
*/
|
||||||
PageResult<ProjectDO> getProjectPage(ProjectPageReqVO pageReqVO);
|
PageResult<ProjectRespVO> getProjectPage(ProjectPageReqVO pageReqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得项目列表
|
* 获得项目列表
|
||||||
|
|||||||
@@ -6,6 +6,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.module.license.controller.admin.project.vo.ProjectListReqVO;
|
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.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 org.agt.module.license.dal.mysql.project.ProjectMapper;
|
import org.agt.module.license.dal.mysql.project.ProjectMapper;
|
||||||
@@ -84,7 +85,7 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<ProjectDO> getProjectPage(ProjectPageReqVO pageReqVO) {
|
public PageResult<ProjectRespVO> getProjectPage(ProjectPageReqVO pageReqVO) {
|
||||||
return projectMapper.selectPage(pageReqVO);
|
return projectMapper.selectPage(pageReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user