CodingRuleEnum.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. package com.fjhx.common.enums;
  2. import com.fjhx.common.entity.coding.dto.DefaultRule;
  3. import com.fjhx.common.entity.coding.dto.RuleVo;
  4. import com.ruoyi.common.exception.ServiceException;
  5. import lombok.AllArgsConstructor;
  6. import lombok.Getter;
  7. import java.util.Arrays;
  8. import java.util.HashMap;
  9. import java.util.List;
  10. import java.util.Map;
  11. import java.util.stream.Collectors;
  12. @Getter
  13. @AllArgsConstructor
  14. public enum CodingRuleEnum {
  15. /**
  16. * 外销合同
  17. */
  18. CONTRACT("contract", "外销合同", Arrays.asList(
  19. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "SC-"),
  20. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  21. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  22. )),
  23. /**
  24. * 采购编码
  25. */
  26. PURCHASE("purchase", "采购订单", Arrays.asList(
  27. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PO-"),
  28. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  29. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  30. )),
  31. /**
  32. * 对内报价单
  33. */
  34. SALE_QUOTATION("sale_quotation", "报价单", Arrays.asList(
  35. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "GSQT-"),
  36. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  37. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  38. )),
  39. /**
  40. * 对外报价单
  41. */
  42. EXT_SALE_QUOTATION("ext_sale_quotation", "对外报价单", Arrays.asList(
  43. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "EXT-GSQT-"),
  44. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  45. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  46. )),
  47. /**
  48. * 申购单
  49. */
  50. SUBSCRIBE("subscribe", "申购单", Arrays.asList(
  51. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PR-"),
  52. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  53. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  54. )),
  55. /**
  56. * 采购退货
  57. */
  58. PURCHASE_BACK("purchase_back", "采购退货", Arrays.asList(
  59. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PB-"),
  60. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  61. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  62. )),
  63. /**
  64. * 售后管理
  65. */
  66. AFTER_SALES("after_sales", "售后管理", Arrays.asList(
  67. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "AS-"),
  68. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  69. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  70. )),
  71. /**
  72. * 采购到货
  73. */
  74. ARRIVAL("arrival", "采购到货", Arrays.asList(
  75. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "AR-"),
  76. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  77. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  78. )),
  79. ;
  80. /**
  81. * 编码规则key
  82. */
  83. private final String key;
  84. /**
  85. * 功能名称
  86. */
  87. private final String name;
  88. /**
  89. * 默认规则
  90. */
  91. private final List<DefaultRule> defaultRuleList;
  92. private static final Map<String, CodingRuleEnum> map = new HashMap<>();
  93. static {
  94. for (CodingRuleEnum value : CodingRuleEnum.values()) {
  95. map.put(value.key, value);
  96. }
  97. }
  98. private static DefaultRule getDefaultRule(RuleTypeEnum ruleTypeEnum) {
  99. return new DefaultRule(ruleTypeEnum);
  100. }
  101. private static DefaultRule getDefaultRule(RuleTypeEnum ruleTypeEnum, String value) {
  102. return new DefaultRule(ruleTypeEnum, value);
  103. }
  104. public List<RuleVo> getDefaultRuleVoList() {
  105. return defaultRuleList.stream().map(item -> {
  106. RuleVo ruleVo = new RuleVo();
  107. ruleVo.setRuleType(item.getRuleTypeEnum().getType());
  108. ruleVo.setValue(item.getValue());
  109. return ruleVo;
  110. }).collect(Collectors.toList());
  111. }
  112. public static List<RuleVo> getDefaultRuleVoList(String key) {
  113. CodingRuleEnum codingRuleEnum = map.get(key);
  114. if (codingRuleEnum == null) {
  115. throw new ServiceException("编码规则key不存在");
  116. }
  117. return codingRuleEnum.getDefaultRuleVoList();
  118. }
  119. }