diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/CustomerController.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/CustomerController.java index c547743..7ae02cf 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/CustomerController.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/CustomerController.java @@ -110,7 +110,7 @@ public class CustomerController { } @GetMapping("/list") - @Operation(summary = "获得客户分页") + @Operation(summary = "获得客户列表") @PreAuthorize("@ss.hasPermission('license:customer:query')") public CommonResult> getCustomerList() { List listResult = customerService.getCustomerList(); diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/project/ProjectController.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/project/ProjectController.java index 98d15a4..f968012 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/project/ProjectController.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/project/ProjectController.java @@ -13,6 +13,7 @@ import org.agt.framework.common.pojo.PageResult; import org.agt.framework.common.util.object.BeanUtils; import org.agt.framework.excel.core.util.ExcelUtils; 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.ProjectRespVO; import org.agt.module.license.controller.admin.project.vo.ProjectSaveReqVO; @@ -85,6 +86,14 @@ public class ProjectController { return success(BeanUtils.toBean(pageResult, ProjectRespVO.class)); } + @GetMapping("/list") + @Operation(summary = "获得项目列表") + @PreAuthorize("@ss.hasPermission('license:project:query')") + public CommonResult> getProjectPage(@Valid ProjectListReqVO pageReqVO) { + List listResult = projectService.getProjectList(pageReqVO); + return success(BeanUtils.toBean(listResult, ProjectRespVO.class)); + } + @GetMapping("/export-excel") @Operation(summary = "导出项目 Excel") @PreAuthorize("@ss.hasPermission('license:project:export')") diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/project/vo/ProjectListReqVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/project/vo/ProjectListReqVO.java new file mode 100644 index 0000000..98ce517 --- /dev/null +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/project/vo/ProjectListReqVO.java @@ -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; + +} \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/project/ProjectMapper.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/project/ProjectMapper.java index 227c1ee..f91b39f 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/project/ProjectMapper.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/project/ProjectMapper.java @@ -3,10 +3,13 @@ package org.agt.module.license.dal.mysql.project; import org.agt.framework.common.pojo.PageResult; import org.agt.framework.mybatis.core.mapper.BaseMapperX; 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.dal.dataobject.project.ProjectDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 项目 Mapper * @@ -34,6 +37,26 @@ public interface ProjectMapper extends BaseMapperX { .orderByDesc(ProjectDO::getId)); } + default List selectList(ProjectListReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .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) { return selectOne(ProjectDO::getName, name); } diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/project/ProjectService.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/project/ProjectService.java index bc80f68..b2ad92d 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/project/ProjectService.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/project/ProjectService.java @@ -2,10 +2,13 @@ package org.agt.module.license.service.project; import jakarta.validation.Valid; 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.ProjectSaveReqVO; import org.agt.module.license.dal.dataobject.project.ProjectDO; +import java.util.List; + /** * 项目 Service 接口 * @@ -51,6 +54,14 @@ public interface ProjectService { */ PageResult getProjectPage(ProjectPageReqVO pageReqVO); + /** + * 获得项目列表 + * + * @param pageReqVO 列表查询 + * @return 项目列表 + */ + List getProjectList(ProjectListReqVO reqVO); + /** * 校验项目名称是否唯一 * diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/project/ProjectServiceImpl.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/project/ProjectServiceImpl.java index 0ae6212..406b416 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/project/ProjectServiceImpl.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/project/ProjectServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import jakarta.annotation.Resource; import org.agt.framework.common.pojo.PageResult; 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.ProjectSaveReqVO; 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.validation.annotation.Validated; +import java.util.List; + 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_NAME_DUPLICATE; @@ -85,6 +88,11 @@ public class ProjectServiceImpl implements ProjectService { return projectMapper.selectPage(pageReqVO); } + @Override + public List getProjectList(ProjectListReqVO reqVO) { + return projectMapper.selectList(reqVO); + } + @Override public Boolean validateProjectNameUnique(String name, Long id) { if (StrUtil.isBlank(name)) {