diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/ReportController.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/ReportController.java index 37440ea..b391d2a 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/ReportController.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/ReportController.java @@ -6,6 +6,8 @@ import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.agt.framework.common.pojo.CommonResult; import org.agt.framework.common.pojo.PageResult; +import org.agt.module.license.controller.admin.report.vo.ReportLicensePageReqVO; +import org.agt.module.license.controller.admin.report.vo.ReportLicenseRespVO; import org.agt.module.license.controller.admin.report.vo.ReportProgressProjectReqVO; import org.agt.module.license.controller.admin.report.vo.ReportProgressProjectRespVO; import org.agt.module.license.service.report.ReportService; @@ -38,4 +40,11 @@ public class ReportController { PageResult pageResult = reportService.getCommentByStaff(query); return success(pageResult); } + + @GetMapping("/license/expire") + @Operation(summary = "获得license到期列表") + public CommonResult> getExpiryLicense(@Valid ReportLicensePageReqVO query) { + PageResult pageResult = reportService.getExpiryLicense(query); + return success(pageResult); + } } \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportLicensePageReqVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportLicensePageReqVO.java new file mode 100644 index 0000000..1b8b4ae --- /dev/null +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportLicensePageReqVO.java @@ -0,0 +1,79 @@ +package org.agt.module.license.controller.admin.report.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.agt.module.license.controller.admin.license.vo.LicenseDetailVO; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +import static org.agt.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; +import static org.agt.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - License分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ReportLicensePageReqVO extends PageParam { + + @Schema(description = "客户ID", example = "31667") + private Long customerId; + + @Schema(description = "项目ID", example = "2496") + private Long projectId; + + @Schema(description = "sn") + private String serialNo; + + @Schema(description = "到期时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] expiryDate; + + @Schema(description = "到期时间-开始") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private LocalDate expiryDateStart; + + @Schema(description = "到期时间-结束") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private LocalDate expiryDateEnd; + + @Schema(description = "网元激活码列表") + private List neCodeList; + + @Schema(description = "用户数") + private Integer userNumber; + + @Schema(description = "基站数") + private Integer ranNumber; + + @Schema(description = "文件URL") + private String fileUrl; + + @Schema(description = "申请人") + private Long applicant; + + @Schema(description = "申请时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] applicationTime; + + @Schema(description = "审批人") + private Long approver; + + @Schema(description = "状态", example = "1") + private Integer status; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "是否过期", example = "随便") + private Boolean isExpired; + + @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/controller/admin/report/vo/ReportLicenseRespVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportLicenseRespVO.java new file mode 100644 index 0000000..4c97692 --- /dev/null +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportLicenseRespVO.java @@ -0,0 +1,129 @@ +package org.agt.module.license.controller.admin.report.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.fhs.core.trans.anno.Trans; +import com.fhs.core.trans.constant.TransType; +import com.fhs.core.trans.vo.VO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.agt.framework.excel.core.annotations.DictFormat; +import org.agt.framework.excel.core.convert.DictConvert; +import org.agt.module.license.controller.admin.license.vo.LicenseDetailVO; +import org.agt.module.license.dal.dataobject.customer.CustomerDO; +import org.agt.module.license.dal.dataobject.project.ProjectDO; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 报表 License Response VO") +@Data +@ExcelIgnoreUnannotated +public class ReportLicenseRespVO implements VO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "25585") +// @ExcelProperty("主键") + private Long id; + + @Schema(description = "客户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31667") + @Trans(type = TransType.SIMPLE, target = CustomerDO.class, fields = "name", ref = "customerName") + private Long customerId; + + @Schema(description = "客户名称") + @ExcelProperty("客户名称") + private String customerName; + + @Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2496") + @Trans(type = TransType.SIMPLE, target = ProjectDO.class, fields = "name", ref = "projectName") + private Long projectId; + + @Schema(description = "项目名称") + @ExcelProperty("项目名称") + private String projectName; + + @Schema(description = "sn", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("SN") + private String serialNo; + + @Schema(description = "到期时间") + private LocalDateTime expiryDate; + + @Schema(description = "到期时间格式化") + private LocalDateTime expiryDateFormat; + + @Schema(description = "到期时间导出") + @ExcelProperty("到期时间") + private LocalDate expiryDateExt; + + @Schema(description = "网元") + @ExcelProperty("网元") + private String neListStr; + + @Schema(description = "激活码") + @ExcelProperty("激活码") + private String activationCode; + + @Schema(description = "网元激活码列表") + private List neCodeList; + + @Schema(description = "用户数") + @ExcelProperty("用户数") + private Integer userNumber; + + @Schema(description = "基站数") + @ExcelProperty("基站数") + private Integer ranNumber; + + @Schema(description = "文件URL") +// @ExcelProperty("文件URL") + private String fileUrl; + + @Schema(description = "申请人ID") + private Long applicant; + + @Schema(description = "申请人", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("申请人") + private String applicantName; + + @Schema(description = "审批人") + private Long approver; + + @Schema(description = "审批人", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("审批人") + private String approverName; + + @Schema(description = "状态", example = "1") + @ExcelProperty(value = "状态", converter = DictConvert.class) + @DictFormat("lic_license_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 + private Integer status; + + @Schema(description = "备注", example = "随便") + @ExcelProperty("说明") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) +// @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "申请时间") + @ExcelProperty("申请时间") + private LocalDateTime applicationTime; + + @Schema(description = "license申请次数") + @ExcelProperty("申请次数") + private Integer applyCount; + + @Schema(description = "业务负责人") + private String businessOwnerName; + + @Schema(description = "技术负责人1") + private String technicalOwnerAName; + + @Schema(description = "技术负责人2") + private String technicalOwnerBName; + + @Schema(description = "项目开始时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("项目开始时间") + private LocalDateTime startTime; +} \ 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/report/ReportMapper.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/report/ReportMapper.java index 753460a..270a728 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/report/ReportMapper.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/report/ReportMapper.java @@ -1,6 +1,8 @@ package org.agt.module.license.dal.mysql.report; import com.baomidou.mybatisplus.core.metadata.IPage; +import org.agt.module.license.controller.admin.report.vo.ReportLicensePageReqVO; +import org.agt.module.license.controller.admin.report.vo.ReportLicenseRespVO; import org.agt.module.license.controller.admin.report.vo.ReportProgressProjectReqVO; import org.agt.module.license.controller.admin.report.vo.ReportProgressProjectRespVO; import org.apache.ibatis.annotations.Mapper; @@ -17,4 +19,6 @@ public interface ReportMapper { IPage getCommentByProject(IPage page, @Param("query") ReportProgressProjectReqVO query); IPage getCommentByStaff(IPage page, @Param("query") ReportProgressProjectReqVO query); + + IPage getExpiryLicense(IPage page, @Param("query") ReportLicensePageReqVO query); } \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/report/ReportService.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/report/ReportService.java index 08a2567..21ddfc9 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/report/ReportService.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/report/ReportService.java @@ -1,6 +1,8 @@ package org.agt.module.license.service.report; import org.agt.framework.common.pojo.PageResult; +import org.agt.module.license.controller.admin.report.vo.ReportLicensePageReqVO; +import org.agt.module.license.controller.admin.report.vo.ReportLicenseRespVO; import org.agt.module.license.controller.admin.report.vo.ReportProgressProjectReqVO; import org.agt.module.license.controller.admin.report.vo.ReportProgressProjectRespVO; @@ -11,7 +13,9 @@ import org.agt.module.license.controller.admin.report.vo.ReportProgressProjectRe */ public interface ReportService { - PageResult getCommentByProject(ReportProgressProjectReqVO query); + PageResult getCommentByProject(ReportProgressProjectReqVO pageReqVO); - PageResult getCommentByStaff(ReportProgressProjectReqVO query); + PageResult getCommentByStaff(ReportProgressProjectReqVO pageReqVO); + + PageResult getExpiryLicense(ReportLicensePageReqVO pageReqVO); } \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/report/ReportServiceImpl.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/report/ReportServiceImpl.java index b14d066..2a5ac5c 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/report/ReportServiceImpl.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/report/ReportServiceImpl.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.annotation.Resource; import org.agt.framework.common.pojo.PageResult; +import org.agt.module.license.controller.admin.report.vo.ReportLicensePageReqVO; +import org.agt.module.license.controller.admin.report.vo.ReportLicenseRespVO; import org.agt.module.license.controller.admin.report.vo.ReportProgressProjectReqVO; import org.agt.module.license.controller.admin.report.vo.ReportProgressProjectRespVO; import org.agt.module.license.dal.mysql.report.ReportMapper; @@ -36,4 +38,11 @@ public class ReportServiceImpl implements ReportService { return new PageResult<>(page.getRecords(), page.getTotal()); } + @Override + public PageResult getExpiryLicense(ReportLicensePageReqVO pageReqVO) { + IPage page = reportMapper.getExpiryLicense(new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO); + + return new PageResult<>(page.getRecords(), page.getTotal()); + } + } \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/resources/mapper/report/ReportMapper.xml b/agt-module-license/agt-module-license-server/src/main/resources/mapper/report/ReportMapper.xml index 4cecf58..1cfafd6 100644 --- a/agt-module-license/agt-module-license-server/src/main/resources/mapper/report/ReportMapper.xml +++ b/agt-module-license/agt-module-license-server/src/main/resources/mapper/report/ReportMapper.xml @@ -73,4 +73,100 @@ AND u.id = #{query.authorId} + + \ No newline at end of file