diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseDetailVO.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseDetailVO.java index 8f1b80d7857ca0dddeebe83e15ee293686fed550..70ba76e7ca2ab2b015619648c0c2fe69ae65ae7d 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseDetailVO.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseDetailVO.java @@ -46,13 +46,13 @@ public class BaseDetailVO extends BaseVO { * 修改人 */ @Schema(description = "修改人", example = "李四") - @ExcelProperty(value = "修改人") + @ExcelProperty(value = "修改人", order = Integer.MAX_VALUE - 2) private String updateUserString; /** * 修改时间 */ @Schema(description = "修改时间", example = "2023-08-08 08:08:08", type = "string") - @ExcelProperty(value = "修改时间") + @ExcelProperty(value = "修改时间", order = Integer.MAX_VALUE - 1) private LocalDateTime updateTime; } diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java index 78899b730a5fb54c3e70b9eeb6cc0a50068304f1..1d71956a03248f27247780e88f4a57c3f654cc62 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java @@ -236,7 +236,7 @@ public abstract class BaseServiceImpl, T extends BaseDO, * @param detailObj * 待填充详情信息 */ - protected void fillDetail(Object detailObj) { + public void fillDetail(Object detailObj) { if (detailObj instanceof BaseDetailVO) { BaseDetailVO detailVO = (BaseDetailVO)detailObj; this.fill(detailVO); diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseVO.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseVO.java index 7532d3747724cc98e4ae0895db7b88d222569bc3..52577e705939c353679295dadcdc97fe7cde4a06 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseVO.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseVO.java @@ -42,7 +42,7 @@ public class BaseVO implements Serializable { * ID */ @Schema(description = "ID", example = "1") - @ExcelProperty(value = "ID") + @ExcelProperty(value = "ID", order = 1) private Long id; /** @@ -55,14 +55,14 @@ public class BaseVO implements Serializable { * 创建人 */ @Schema(description = "创建人", example = "超级管理员") - @ExcelProperty(value = "创建人") + @ExcelProperty(value = "创建人", order = Integer.MAX_VALUE - 4) private String createUserString; /** * 创建时间 */ @Schema(description = "创建时间", example = "2023-08-08 08:08:08", type = "string") - @ExcelProperty(value = "创建时间") + @ExcelProperty(value = "创建时间", order = Integer.MAX_VALUE - 3) private LocalDateTime createTime; /** diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/vo/DictDetailVO.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/vo/DictDetailVO.java index 4aa517fe5afd1950a910c4f4d4f801013041c736..15ec3930b93ec976c0ed133f1b209866c9e91a7b 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/vo/DictDetailVO.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/vo/DictDetailVO.java @@ -20,9 +20,6 @@ import lombok.Data; import io.swagger.v3.oas.annotations.media.Schema; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; - import top.charles7c.cnadmin.common.base.BaseDetailVO; /** @@ -32,7 +29,6 @@ import top.charles7c.cnadmin.common.base.BaseDetailVO; * @since 2023/9/11 21:29 */ @Data -@ExcelIgnoreUnannotated @Schema(description = "字典详情信息") public class DictDetailVO extends BaseDetailVO { @@ -42,20 +38,17 @@ public class DictDetailVO extends BaseDetailVO { * 字典名称 */ @Schema(description = "字典名称", example = "公告类型") - @ExcelProperty(value = "字典名称") private String name; /** * 字典编码 */ @Schema(description = "字典编码", example = "announcement_type") - @ExcelProperty(value = "字典编码") private String code; /** * 描述 */ @Schema(description = "描述", example = "公告类型描述信息") - @ExcelProperty(value = "描述") private String description; } \ No newline at end of file diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/vo/DictItemDetailVO.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/vo/DictItemDetailVO.java index 4de386fafe2561ccc7ef952b720162f740f1c295..a09c85a74e6b6a825fc105a30fa76c51d964d505 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/vo/DictItemDetailVO.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/vo/DictItemDetailVO.java @@ -42,41 +42,54 @@ public class DictItemDetailVO extends BaseDetailVO { * 字典标签 */ @Schema(description = "字典标签", example = "通知") - @ExcelProperty(value = "字典标签") + @ExcelProperty(value = "字典标签", order = 2) private String label; /** * 字典值 */ @Schema(description = "字典值", example = "1") - @ExcelProperty(value = "字典值") + @ExcelProperty(value = "字典值", order = 3) private String value; /** * 背景颜色 */ @Schema(description = "背景颜色", example = "blue") - @ExcelProperty(value = "背景颜色") + @ExcelProperty(value = "背景颜色", order = 4) private String color; /** * 排序 */ @Schema(description = "排序", example = "1") - @ExcelProperty(value = "排序") + @ExcelProperty(value = "排序", order = 5) private Integer sort; /** * 描述 */ @Schema(description = "描述", example = "通知描述信息") - @ExcelProperty(value = "描述") + @ExcelProperty(value = "描述", order = 6) private String description; /** - * 所属字典 + * 字典 ID */ - @Schema(description = "所属字典", example = "1") - @ExcelProperty(value = "所属字典") + @Schema(description = "字典 ID", example = "1") private Long dictId; + + /** + * 字典名称 + */ + @Schema(hidden = true) + @ExcelProperty(value = "字典名称", order = 7) + private String dictName; + + /** + * 字典编码 + */ + @Schema(hidden = true) + @ExcelProperty(value = "字典编码", order = 8) + private String dictCode; } \ No newline at end of file diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictItemService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictItemService.java index 3a0f01cf2df86fb910defc1cd2b362827545aab0..610193781992a49c759c62e04b6e0983c56e6eda 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictItemService.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictItemService.java @@ -32,6 +32,15 @@ import top.charles7c.cnadmin.system.model.vo.DictItemVO; */ public interface DictItemService extends BaseService { + /** + * 根据字典 ID 查询 + * + * @param dictId + * 字典 ID + * @return 字典项列表 + */ + List listByDictId(Long dictId); + /** * 根据字典 ID 列表删除 * diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictItemServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictItemServiceImpl.java index bd9e91f2f06a2b3753945d1318acebe99d9ca69f..89bec1c2c23899b8653c3e3b2072bacc764421ed 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictItemServiceImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictItemServiceImpl.java @@ -24,6 +24,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import top.charles7c.cnadmin.common.base.BaseServiceImpl; +import top.charles7c.cnadmin.common.model.query.SortQuery; import top.charles7c.cnadmin.common.util.validate.CheckUtils; import top.charles7c.cnadmin.system.mapper.DictItemMapper; import top.charles7c.cnadmin.system.model.entity.DictItemDO; @@ -61,6 +62,17 @@ public class DictItemServiceImpl super.update(request, id); } + @Override + public List listByDictId(Long dictId) { + DictItemQuery dictItemQuery = new DictItemQuery(); + dictItemQuery.setDictId(dictId); + SortQuery sortQuery = new SortQuery(); + sortQuery.setSort(new String[] {"sort,asc"}); + List detailList = super.list(dictItemQuery, sortQuery, DictItemDetailVO.class); + detailList.forEach(super::fillDetail); + return detailList; + } + @Override public void deleteByDictIds(List dictIds) { baseMapper.lambdaUpdate().in(DictItemDO::getDictId, dictIds).remove(); diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictServiceImpl.java index 95dc1ac127a8954063ab1b09c8cf29e1f64aa901..7b4f1f511b7c1396ee74cf787d34a643e6ec0e17 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictServiceImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictServiceImpl.java @@ -16,21 +16,25 @@ package top.charles7c.cnadmin.system.service.impl; +import java.util.ArrayList; import java.util.List; +import javax.servlet.http.HttpServletResponse; + import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import top.charles7c.cnadmin.common.base.BaseServiceImpl; +import top.charles7c.cnadmin.common.model.query.SortQuery; +import top.charles7c.cnadmin.common.util.ExcelUtils; import top.charles7c.cnadmin.common.util.validate.CheckUtils; import top.charles7c.cnadmin.system.mapper.DictMapper; import top.charles7c.cnadmin.system.model.entity.DictDO; import top.charles7c.cnadmin.system.model.query.DictQuery; import top.charles7c.cnadmin.system.model.request.DictRequest; -import top.charles7c.cnadmin.system.model.vo.DictDetailVO; -import top.charles7c.cnadmin.system.model.vo.DictVO; +import top.charles7c.cnadmin.system.model.vo.*; import top.charles7c.cnadmin.system.service.DictItemService; import top.charles7c.cnadmin.system.service.DictService; @@ -74,6 +78,21 @@ public class DictServiceImpl extends BaseServiceImpl dictList = this.list(query, sortQuery); + List dictItemList = new ArrayList<>(); + for (DictVO dict : dictList) { + List tempDictItemList = dictItemService.listByDictId(dict.getId()); + for (DictItemDetailVO dictItem : tempDictItemList) { + dictItem.setDictName(dict.getName()); + dictItem.setDictCode(dict.getCode()); + dictItemList.add(dictItem); + } + } + ExcelUtils.export(dictItemList, "导出数据", DictItemDetailVO.class, response); + } + /** * 检查名称是否存在 *