diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/common/vo/CommonExportFieldsReqVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/common/vo/CommonExportFieldsReqVO.java new file mode 100644 index 0000000..ffb08b8 --- /dev/null +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/common/vo/CommonExportFieldsReqVO.java @@ -0,0 +1,20 @@ +package org.agt.module.license.controller.admin.common.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @description: 通用导出字段参数 + * @author: cyc + * @since: 2025-09-12 + */ +@Schema(description = "管理后台 - 通用导出字段参数 Request VO") +@Data +public class CommonExportFieldsReqVO { + + @Schema(description = "字段") + private String field; + + @Schema(description = "标题") + private String title; +} diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/common/vo/CommonExportReqVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/common/vo/CommonExportReqVO.java new file mode 100644 index 0000000..c8e2465 --- /dev/null +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/common/vo/CommonExportReqVO.java @@ -0,0 +1,43 @@ +package org.agt.module.license.controller.admin.common.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.agt.framework.common.pojo.PageParam; + +import java.util.List; +import java.util.Set; + +/** + * @description: 通用导出参数 + * @author: cyc + * @since: 2025-09-12 + */ + +@Schema(description = "管理后台 - 通用导出参数 Request VO") +@Data +public class CommonExportReqVO extends PageParam { + + @Schema(description = "文件名") + private String filename; + + @Schema(description = "sheet名称") + private String sheetName; + + @Schema(description = "是否表头") + private Boolean isHeader; + + @Schema(description = "是否源数据") + private Boolean original; + + @Schema(description = "选择数据") + private String mode; + + @Schema(description = "ids") + private List ids; + + @Schema(description = "选择字段") + private List fields; + + @Schema(description = "已选择字段") + private Set includeFields; +} 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 c436f2c..fc1bfc6 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 @@ -166,11 +166,13 @@ public class CustomerController { @ApiAccessLog(operateType = EXPORT) public void exportCustomerExcel(@Valid CustomerPageReqVO pageReqVO, HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + if ("all".equals(pageReqVO.getMode())) { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + } PageResult pageResult = customerService.getCustomerPage(pageReqVO); // 导出 Excel - ExcelUtils.write(response, "客户.xlsx", "数据", CustomerRespVO.class, - buildCustomerVOList(pageResult).getList()); + ExcelUtils.writeSelected(response, "", pageReqVO.getSheetName(), CustomerRespVO.class, + buildCustomerVOList(pageResult).getList(), pageReqVO.getIncludeFields()); } private static PageResult buildCustomerVOList(PageResult pageResult) { diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/vo/CustomerPageReqVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/vo/CustomerPageReqVO.java index 4fb4732..32d2c68 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/vo/CustomerPageReqVO.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/vo/CustomerPageReqVO.java @@ -4,7 +4,7 @@ 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.common.vo.CommonExportReqVO; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; @@ -15,7 +15,7 @@ import static org.agt.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class CustomerPageReqVO extends PageParam { +public class CustomerPageReqVO extends CommonExportReqVO { @Schema(description = "客户名称", example = "赵六") private String name; diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/LicenseController.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/LicenseController.java index e436e1e..1d3b0d2 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/LicenseController.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/LicenseController.java @@ -1,7 +1,5 @@ package org.agt.module.license.controller.admin.license; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; @@ -13,8 +11,6 @@ import org.agt.framework.apilog.core.annotation.ApiAccessLog; import org.agt.framework.common.pojo.CommonResult; import org.agt.framework.common.pojo.PageParam; import org.agt.framework.common.pojo.PageResult; -import org.agt.framework.common.util.object.BeanUtils; -import org.agt.framework.dict.core.DictFrameworkUtils; import org.agt.framework.excel.core.util.ExcelUtils; import org.agt.framework.translate.core.TranslateUtils; import org.agt.module.license.controller.admin.license.vo.ImportRespVO; @@ -39,7 +35,6 @@ import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.time.LocalDate; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -142,49 +137,51 @@ public class LicenseController { @ApiAccessLog(operateType = EXPORT) public void exportLicenseExcel(@Valid LicensePageReqVO pageReqVO, HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + if ("all".equals(pageReqVO.getMode())) { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + } List voList = licenseService.getLicensePage(pageReqVO).getList(); - List results = new ArrayList<>(); - for (LicenseRespVO license : voList) { - license.setExpiryDateExt(license.getExpiryDate().toLocalDate()); - List neCodeList = license.getNeCodeList(); - if (CollUtil.isEmpty(neCodeList)) { - results.add(license); - } else { - for (LicenseDetailVO licenseDetailVO : neCodeList) { - LicenseRespVO licenseVO = new LicenseRespVO(); - BeanUtils.copyProperties(license, licenseVO); - - List neLabels = new ArrayList<>(); - for (Integer ne : licenseDetailVO.getNeList()) { - String label = DictFrameworkUtils.parseDictDataLabel("lic_ne_all", ne.toString()); - if (StrUtil.isBlank(label)) { - label = DictFrameworkUtils.parseDictDataLabel("lic_ne_5g", ne.toString()); - if (StrUtil.isBlank(label)) { - label = DictFrameworkUtils.parseDictDataLabel("lic_ne_4g", ne.toString()); - if (StrUtil.isBlank(label)) { - label = DictFrameworkUtils.parseDictDataLabel("lic_ne_23g", ne.toString()); - if (StrUtil.isBlank(label)) { - label = DictFrameworkUtils.parseDictDataLabel("lic_ne_add", ne.toString()); - } - } - } - } - neLabels.add(label); - } - String neListStr = StrUtil.join("_", neLabels); - - licenseVO.setNeListStr(neListStr); - licenseVO.setActivationCode(licenseDetailVO.getActivationCode()); - results.add(licenseVO); - } - } - - } +// List results = new ArrayList<>(); +// for (LicenseRespVO license : voList) { +// license.setExpiryDateExt(license.getExpiryDate().toLocalDate()); +// List neCodeList = license.getNeCodeList(); +// if (CollUtil.isEmpty(neCodeList)) { +// results.add(license); +// } else { +// for (LicenseDetailVO licenseDetailVO : neCodeList) { +// LicenseRespVO licenseVO = new LicenseRespVO(); +// BeanUtils.copyProperties(license, licenseVO); +// +// List neLabels = new ArrayList<>(); +// for (Integer ne : licenseDetailVO.getNeList()) { +// String label = DictFrameworkUtils.parseDictDataLabel("lic_ne_all", ne.toString()); +// if (StrUtil.isBlank(label)) { +// label = DictFrameworkUtils.parseDictDataLabel("lic_ne_5g", ne.toString()); +// if (StrUtil.isBlank(label)) { +// label = DictFrameworkUtils.parseDictDataLabel("lic_ne_4g", ne.toString()); +// if (StrUtil.isBlank(label)) { +// label = DictFrameworkUtils.parseDictDataLabel("lic_ne_23g", ne.toString()); +// if (StrUtil.isBlank(label)) { +// label = DictFrameworkUtils.parseDictDataLabel("lic_ne_add", ne.toString()); +// } +// } +// } +// } +// neLabels.add(label); +// } +// String neListStr = StrUtil.join("_", neLabels); +// +// licenseVO.setNeListStr(neListStr); +// licenseVO.setActivationCode(licenseDetailVO.getActivationCode()); +// results.add(licenseVO); +// } +// } +// +// } // 导出 Excel - ExcelUtils.write(response, "License.xlsx", "数据", LicenseRespVO.class, - TranslateUtils.translate(results)); + ExcelUtils.writeSelected(response, "", pageReqVO.getSheetName(), LicenseRespVO.class, + TranslateUtils.translate(voList), pageReqVO.getIncludeFields()); } @GetMapping("/sn-unique") diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicensePageReqVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicensePageReqVO.java index cc3a305..83d9ea4 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicensePageReqVO.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicensePageReqVO.java @@ -4,7 +4,7 @@ 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.common.vo.CommonExportReqVO; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; @@ -16,7 +16,7 @@ import static org.agt.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class LicensePageReqVO extends PageParam { +public class LicensePageReqVO extends CommonExportReqVO { @Schema(description = "客户ID", example = "31667") private Long customerId; 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 c5936a9..888cc7a 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 @@ -106,11 +106,13 @@ public class ProjectController { @ApiAccessLog(operateType = EXPORT) public void exportProjectExcel(@Valid ProjectPageReqVO pageReqVO, HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + if ("all".equals(pageReqVO.getMode())) { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + } List list = projectService.getProjectPage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "项目.xlsx", "项目列表", ProjectRespVO.class, - TranslateUtils.translate(list)); + ExcelUtils.writeSelected(response, "项目.xlsx", pageReqVO.getSheetName(), ProjectRespVO.class, + TranslateUtils.translate(list), pageReqVO.getIncludeFields()); } @GetMapping("/name-unique") 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 index 98ab958..b39a369 100644 --- 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 @@ -76,4 +76,10 @@ public class ProjectListReqVO extends PageParam { @Schema(description = "技术负责人") private Long technicalOwner; + + @Schema(description = "排列字段") + private String sortField; + + @Schema(description = "排列顺序") + private String sortOrder; } \ 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/project/vo/ProjectPageReqVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/project/vo/ProjectPageReqVO.java index d26908c..ef649f0 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/project/vo/ProjectPageReqVO.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/project/vo/ProjectPageReqVO.java @@ -4,7 +4,7 @@ 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.common.vo.CommonExportReqVO; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; @@ -15,7 +15,7 @@ import static org.agt.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class ProjectPageReqVO extends PageParam { +public class ProjectPageReqVO extends CommonExportReqVO { @Schema(description = "项目名称", example = "aa") private String name; 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 b391d2a..721f664 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 @@ -3,19 +3,29 @@ package org.agt.module.license.controller.admin.report; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; +import org.agt.framework.apilog.core.annotation.ApiAccessLog; import org.agt.framework.common.pojo.CommonResult; +import org.agt.framework.common.pojo.PageParam; 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.module.license.controller.admin.common.vo.CommonExportReqVO; 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; +import org.jsoup.Jsoup; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.io.IOException; + +import static org.agt.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static org.agt.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 报表") @@ -47,4 +57,63 @@ public class ReportController { PageResult pageResult = reportService.getExpiryLicense(query); return success(pageResult); } + + @GetMapping("/project/export-excel") + @Operation(summary = "导出项目维度的评论列表 Excel") + @ApiAccessLog(operateType = EXPORT) + public void exportProjectExcel(@Valid ReportProgressProjectReqVO pageReqVO, + HttpServletResponse response) throws IOException { + if ("all".equals(pageReqVO.getMode())) { + CommonExportReqVO exportReqVO = BeanUtils.toBean(pageReqVO, CommonExportReqVO.class); + pageReqVO = BeanUtils.toBean(exportReqVO, ReportProgressProjectReqVO.class); + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + } + PageResult pageResult = reportService.getCommentByProject(pageReqVO); + + for (ReportProgressProjectRespVO record : pageResult.getList()) { + record.setContent(Jsoup.parse(record.getContent()).wholeText()); + } + + // 导出 Excel + ExcelUtils.writeSelected(response, "", pageReqVO.getSheetName(), ReportProgressProjectRespVO.class, + pageResult.getList(), pageReqVO.getIncludeFields()); + } + + @GetMapping("/staff/export-excel") + @Operation(summary = "导出人员维度的评论列表 Excel") + @ApiAccessLog(operateType = EXPORT) + public void exportStaffExcel(@Valid ReportProgressProjectReqVO pageReqVO, + HttpServletResponse response) throws IOException { + if ("all".equals(pageReqVO.getMode())) { + CommonExportReqVO exportReqVO = BeanUtils.toBean(pageReqVO, CommonExportReqVO.class); + pageReqVO = BeanUtils.toBean(exportReqVO, ReportProgressProjectReqVO.class); + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + } + PageResult pageResult = reportService.getCommentByStaff(pageReqVO); + + for (ReportProgressProjectRespVO record : pageResult.getList()) { + record.setContent(Jsoup.parse(record.getContent()).wholeText()); + } + + // 导出 Excel + ExcelUtils.writeSelected(response, "", pageReqVO.getSheetName(), ReportProgressProjectRespVO.class, + pageResult.getList(), pageReqVO.getIncludeFields()); + } + + @GetMapping("/expire/export-excel") + @Operation(summary = "导出到期的License列表 Excel") + @ApiAccessLog(operateType = EXPORT) + public void exportExpireExcel(@Valid ReportLicensePageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + if ("all".equals(pageReqVO.getMode())) { + CommonExportReqVO exportReqVO = BeanUtils.toBean(pageReqVO, CommonExportReqVO.class); + pageReqVO = BeanUtils.toBean(exportReqVO, ReportLicensePageReqVO.class); + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + } + PageResult pageResult = reportService.getExpiryLicense(pageReqVO); + // 导出 Excel + ExcelUtils.writeSelected(response, "", pageReqVO.getSheetName(), ReportLicenseRespVO.class, + pageResult.getList(), pageReqVO.getIncludeFields()); + } + } \ 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 index 1b8b4ae..820cbae 100644 --- 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 @@ -4,7 +4,7 @@ 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.common.vo.CommonExportReqVO; import org.agt.module.license.controller.admin.license.vo.LicenseDetailVO; import org.springframework.format.annotation.DateTimeFormat; @@ -19,7 +19,7 @@ import static org.agt.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class ReportLicensePageReqVO extends PageParam { +public class ReportLicensePageReqVO extends CommonExportReqVO { @Schema(description = "客户ID", example = "31667") private Long customerId; 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 index e3f6e80..397b624 100644 --- 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 @@ -36,37 +36,37 @@ public class ReportLicenseRespVO implements VO { @ExcelProperty("项目名称") private String projectName; + + @Schema(description = "项目状态", example = "18334") + @ExcelProperty(value = "项目状态", converter = DictConvert.class) + @DictFormat("lic_project_status") + private Integer status; + + @Schema(description = "商务状态", example = "18334") + @ExcelProperty(value = "商务状态", converter = DictConvert.class) + @DictFormat("lic_business_status") + private Integer businessStatus; + @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") @@ -77,50 +77,48 @@ public class ReportLicenseRespVO implements VO { 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 = "1") - private Integer businessStatus; - @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 = "业务负责人") + @ExcelProperty("业务负责人") private String businessOwnerName; @Schema(description = "技术负责人1") + @ExcelProperty("技术负责人1") private String technicalOwnerAName; @Schema(description = "技术负责人2") + @ExcelProperty("技术负责人2") private String technicalOwnerBName; @Schema(description = "项目开始时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("项目开始时间") private LocalDateTime startTime; + + @Schema(description = "到期时间导出") + private LocalDate expiryDateExt; + + @Schema(description = "到期时间") + @ExcelProperty("到期时间") + private LocalDateTime expiryDate; + + @Schema(description = "申请时间") + @ExcelProperty("申请时间") + private LocalDateTime applicationTime; + + @Schema(description = "license申请次数") + private Integer applyCount; } \ 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/ReportProgressProjectReqVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportProgressProjectReqVO.java index 7ab37dd..8638f38 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportProgressProjectReqVO.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportProgressProjectReqVO.java @@ -4,7 +4,7 @@ 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.common.vo.CommonExportReqVO; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; @@ -17,7 +17,7 @@ import static org.agt.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class ReportProgressProjectReqVO extends PageParam { +public class ReportProgressProjectReqVO extends CommonExportReqVO { @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4294") private Long id; diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportProgressProjectRespVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportProgressProjectRespVO.java index ab236de..c455bc3 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportProgressProjectRespVO.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/report/vo/ReportProgressProjectRespVO.java @@ -2,8 +2,12 @@ package org.agt.module.license.controller.admin.report.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.enums.BooleanEnum; 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 java.time.LocalDateTime; import java.util.List; @@ -14,36 +18,48 @@ import java.util.List; public class ReportProgressProjectRespVO { @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4294") - @ExcelProperty("主键") private Long id; @Schema(description = "项目ID", example = "18334") - @ExcelProperty("项目ID") private Long projectId; + @Schema(description = "客户名称") + @ExcelProperty("客户名称") + private String customerName; + @Schema(description = "项目名称", example = "18334") + @ExcelProperty("项目名称") private String projectName; @Schema(description = "项目状态", example = "18334") + @ExcelProperty(value = "项目状态", converter = DictConvert.class) + @DictFormat("lic_project_status") private Integer status; @Schema(description = "商务状态", example = "18334") + @ExcelProperty(value = "商务状态", converter = DictConvert.class) + @DictFormat("lic_business_status") private Integer businessStatus; @Schema(description = "serialNo", example = "随便") + @ExcelProperty("SN") private String serialNo; @Schema(description = "业务负责人") + @ExcelProperty("业务负责人") private String businessOwnerName; @Schema(description = "技术负责人1") + @ExcelProperty("技术负责人1") private String technicalOwnerAName; @Schema(description = "技术负责人2") + @ExcelProperty("技术负责人2") private String technicalOwnerBName; - @Schema(description = "客户名称") - private String customerName; + @Schema(description = "项目开始时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("项目开始时间") + private LocalDateTime startTime; @Schema(description = "用户ID", example = "30248") @ExcelProperty("用户ID") @@ -53,25 +69,22 @@ public class ReportProgressProjectRespVO { @ExcelProperty("父ID") private Long parentId; + @Schema(description = "评论用户") + @ExcelProperty("处理人") + private String author; + @Schema(description = "内容") - @ExcelProperty("内容") + @ExcelProperty("进展记录") + @ContentStyle(wrapped = BooleanEnum.TRUE) private String content; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") private LocalDateTime createTime; - @Schema(description = "项目开始时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("项目开始时间") - private LocalDateTime startTime; - @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("更新时间") private LocalDateTime updateTime; - @Schema(description = "评论用户") - private String author; - @Schema(description = "评论用户头像") private String avatar;