src/main/java/com/ruoyi/basic/controller/EnumController.java
@@ -1,15 +1,16 @@ package com.ruoyi.basic.controller; import com.ruoyi.basic.utils.EnumUtils; import com.ruoyi.common.enums.StockRecordTypeEnum; import com.ruoyi.common.utils.EnumUtil; import com.ruoyi.framework.aspectj.lang.annotation.Anonymous; import com.ruoyi.framework.web.domain.R; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -26,4 +27,10 @@ List<Map<String, Object>> list = EnumUtil.toList(StockRecordTypeEnum.class); return R.ok(list); } @GetMapping("/{className}") @Anonymous public R test(@PathVariable String className){ return R.ok(EnumUtils.getOptions("com.ruoyi.common.enums." + className)); } } src/main/java/com/ruoyi/basic/dto/SelectOptionDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ package com.ruoyi.basic.dto; import lombok.Data; @Data public class SelectOptionDTO<T> { private T value; private String label; public SelectOptionDTO(T code, String value) { this.value = code; this.label = value; } } src/main/java/com/ruoyi/basic/utils/EnumUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,45 @@ package com.ruoyi.basic.utils; import com.ruoyi.basic.dto.SelectOptionDTO; import com.ruoyi.common.enums.BaseEnum; import java.util.ArrayList; import java.util.List; public class EnumUtils { public static List<SelectOptionDTO<?>> getOptions(String className) { try { Class<?> clazz = Class.forName(className); return getOptionsByClass(clazz); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } } @SuppressWarnings("unchecked") private static List<SelectOptionDTO<?>> getOptionsByClass(Class<?> clazz) { if (!clazz.isEnum()) { throw new RuntimeException("䏿¯æä¸¾ï¼" + clazz.getName()); } if (!BaseEnum.class.isAssignableFrom(clazz)) { throw new RuntimeException("æªå®ç° BaseEnumï¼" + clazz.getName()); } return (List<SelectOptionDTO<?>>) getOptionsInternal((Class) clazz); } private static <T> List<SelectOptionDTO<T>> getOptionsInternal( Class<? extends BaseEnum<T>> clazz) { Enum<?>[] enums = (Enum<?>[]) clazz.getEnumConstants(); List<SelectOptionDTO<T>> list = new ArrayList<>(); for (Enum<?> e : enums) { BaseEnum<T> option = (BaseEnum<T>) e; list.add(new SelectOptionDTO<>( option.getCode(), option.getValue() )); } return list; } } src/main/java/com/ruoyi/common/enums/BaseEnum.java
@@ -4,10 +4,10 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; public interface BaseEnum { public interface BaseEnum<T> { @JsonValue Integer getCode(); T getCode(); String getValue(); /** @@ -17,7 +17,7 @@ * éç¨éæå·¥å ·æ¹æ³ï¼æ¯æä» Integer æ String ç±»åç Code è¿è¡ååºåå */ @JsonCreator(mode = JsonCreator.Mode.DELEGATING) static <E extends Enum<E> & BaseEnum> E fromCode(Class<E> enumClass, Object code) { static <E extends Enum<E> & BaseEnum<?>> E fromCode(Class<E> enumClass, Object code) { if (code == null) { return null; } src/main/java/com/ruoyi/common/enums/SalesLedgerType.java
@@ -1,7 +1,7 @@ package com.ruoyi.common.enums; public enum SalesLedgerType { public enum SalesLedgerType implements BaseEnum<Integer>{ SALES_LEDGER_TYPE_SALES_LEDGER(1, "éå®å°è´¦"), SALES_LEDGER_TYPE_PURCHASE_LEDGER(2, "éè´å°è´¦"); @@ -13,11 +13,11 @@ this.label = label; } public Integer getValue() { public Integer getCode() { return value; } public String getLabel() { public String getValue() { return label; } src/main/java/com/ruoyi/common/enums/StaffLeaveReason.java
@@ -7,7 +7,7 @@ * */ @AllArgsConstructor public enum StaffLeaveReason { public enum StaffLeaveReason implements BaseEnum<String> { StaffLeaveReasonSalary("salary","èªèµå¾ é"), StaffLeaveReasonCareerDevelopment("career_development","èä¸åå±"), StaffLeaveReasonWorkEnvironment("work_environment","å·¥ä½ç¯å¢"), @@ -22,6 +22,10 @@ return code; } public String getValue() { return info; } public String getInfo() { return info; } src/main/java/com/ruoyi/common/enums/StockRecordTypeEnum.java
@@ -8,7 +8,7 @@ * @email 3038525872@qq.com */ @Getter public enum StockRecordTypeEnum implements BaseEnum { public enum StockRecordTypeEnum implements BaseEnum<Integer> { CUSTOMIZATION_STOCK_IN(0, "åæ ¼èªå®ä¹å ¥åº"), CUSTOMIZATION_STOCK_OUT(1, "åæ ¼èªå®ä¹åºåº"), PRODUCTION_REPORT_STOCK_IN(2, "ç产æ¥å·¥-å ¥åº"), src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java
@@ -7,7 +7,7 @@ * */ @AllArgsConstructor public enum StorageAttachmentRecordType { public enum StorageAttachmentRecordType implements BaseEnum<String> { // ä¾å å®é å¼å请å é¤ Template("Template","èä¾"), Archives("Archives","ææ¡£ç®¡ç"), @@ -23,6 +23,10 @@ return code; } public String getValue() { return info; } public String getInfo() { return info; } src/main/java/com/ruoyi/common/enums/UserStatus.java
@@ -5,7 +5,7 @@ * * @author ruoyi */ public enum UserStatus public enum UserStatus implements BaseEnum<String> { OK("0", "æ£å¸¸"), DISABLE("1", "åç¨"), DELETED("2", "å é¤"); @@ -23,8 +23,13 @@ return code; } public String getValue() { return info; } public String getInfo() { return info; } } src/main/java/com/ruoyi/common/utils/EnumUtil.java
@@ -2,7 +2,6 @@ import com.ruoyi.common.enums.BaseEnum; import com.ruoyi.common.enums.StockRecordTypeEnum; import java.util.*; import java.util.stream.Collectors; @@ -20,7 +19,7 @@ */ public static <E extends Enum<E> & BaseEnum> E fromCode(Class<E> enumClass, int code) { for (E e : enumClass.getEnumConstants()) { if (e.getCode() == code) { if ((int)e.getCode() == code) { return e; } } @@ -29,7 +28,7 @@ public static <E extends Enum<E> & BaseEnum> E fromCodeHasNull(Class<E> enumClass, int code) { for (E e : enumClass.getEnumConstants()) { if (e.getCode() == code) { if ((int)e.getCode() == code) { return e; } } @@ -38,7 +37,7 @@ public static <E extends Enum<E> & BaseEnum> E fromCodeHasDefault(Class<E> enumClass, int code,E defaultE) { for (E e : enumClass.getEnumConstants()) { if (e.getCode() == code) { if ((int)e.getCode() == code) { return e; } } @@ -81,27 +80,27 @@ .collect(Collectors.toList()); } /** * 转为 Map<Integer, String> * æ ¼å¼: { 1: "ç»çº¿", 0: "æä¸" } */ public static <E extends Enum<E> & BaseEnum> Map<Integer, String> toMap(Class<E> enumClass) { return Arrays.stream(enumClass.getEnumConstants()) .collect(Collectors.toMap(BaseEnum::getCode, BaseEnum::getValue)); } public static void main(String[] args) { // â 1. æ ¹æ® code è·åæä¸¾ StockRecordTypeEnum status = EnumUtil.fromCode(StockRecordTypeEnum.class, 1); System.out.println(status.getValue()); // ç»çº¿ // â 2. 转æ list (éåå端) System.out.println(EnumUtil.toList(StockRecordTypeEnum.class)); // è¾åº: [{code=1, value=ç»çº¿}, {code=0, value=æä¸}] // â 3. 转æ map System.out.println(EnumUtil.toMap(StockRecordTypeEnum.class)); // è¾åº: {1=ç»çº¿, 0=æä¸} } // /** // * 转为 Map<Integer, String> // * æ ¼å¼: { 1: "ç»çº¿", 0: "æä¸" } // */ // public static <E extends Enum<E> & BaseEnum> Map<Integer, String> toMap(Class<E> enumClass) { // return Arrays.stream(enumClass.getEnumConstants()) // .collect(Collectors.toMap((BaseEnum::getCode, BaseEnum::getValue)); // } // // // public static void main(String[] args) { // // â 1. æ ¹æ® code è·åæä¸¾ // StockRecordTypeEnum status = EnumUtil.fromCode(StockRecordTypeEnum.class, 1); // System.out.println(status.getValue()); // ç»çº¿ // // // â 2. 转æ list (éåå端) // System.out.println(EnumUtil.toList(StockRecordTypeEnum.class)); // // è¾åº: [{code=1, value=ç»çº¿}, {code=0, value=æä¸}] // // // â 3. 转æ map // System.out.println(EnumUtil.toMap(StockRecordTypeEnum.class)); // // è¾åº: {1=ç»çº¿, 0=æä¸} // } } src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
@@ -30,7 +30,6 @@ import com.ruoyi.sales.mapper.CommonFileMapper; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.pojo.CommonFile; import com.ruoyi.sales.pojo.InvoiceRegistrationProduct; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.service.ISalesLedgerProductService; import lombok.RequiredArgsConstructor; @@ -458,7 +457,7 @@ BeanUtils.copyProperties(purchaseLedger, purchaseLedgerDto); SalesLedgerProduct salesLedgerProduct = new SalesLedgerProduct(); salesLedgerProduct.setSalesLedgerId(id); salesLedgerProduct.setType(SalesLedgerType.SALES_LEDGER_TYPE_SALES_LEDGER.getValue()); salesLedgerProduct.setType(SalesLedgerType.SALES_LEDGER_TYPE_SALES_LEDGER.getCode()); List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductService.selectSalesLedgerProductList(salesLedgerProduct); purchaseLedgerDto.setProductData(salesLedgerProducts); List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()