CodingRuleEnum.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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. test("test", "aaa", Arrays.asList(
  19. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "TEST"),
  20. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM"),
  21. getDefaultRule(RuleTypeEnum.COUNTRY_CODE),
  22. getDefaultRule(RuleTypeEnum.CUSTOMER_CODE),
  23. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "5")
  24. )),
  25. /**
  26. * 外销合同
  27. */
  28. CONTRACT("contract", "外销合同", Arrays.asList(
  29. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "SC-"),
  30. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  31. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  32. )),
  33. /**
  34. * 样品单
  35. */
  36. SAMPLE("sample", "样品单", Arrays.asList(
  37. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "YP-"),
  38. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  39. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  40. )),
  41. /**
  42. * EHSD采购编码
  43. */
  44. EHSD_PURCHASE("ehsd_purchase", "EHSD采购单", Arrays.asList(
  45. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PO-"),
  46. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  47. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  48. )),
  49. /**
  50. * 报价单
  51. */
  52. SALE_QUOTATION("sale_quotation", "报价单", Arrays.asList(
  53. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "GSQT-"),
  54. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  55. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  56. )),
  57. /**
  58. * 包装
  59. */
  60. PACK("pack", "包装", Arrays.asList(
  61. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PACK-"),
  62. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  63. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  64. )),
  65. /**
  66. * 采购编码
  67. */
  68. PURCHASE("purchase", "采购单", Arrays.asList(
  69. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "SC-"),
  70. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  71. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  72. )),
  73. /**
  74. * 服务合同
  75. */
  76. SERVICE_CONTRACT("service_contract", "服务合同", Arrays.asList(
  77. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PO-"),
  78. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  79. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  80. )),
  81. //---------------------------采购模块-----------------------------
  82. /**
  83. * 申购单
  84. */
  85. SUBSCRIBE("subscribe", "申购单", Arrays.asList(
  86. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PR-"),
  87. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  88. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  89. )),
  90. /**
  91. * 到货
  92. */
  93. ARRIVAL("arrival", "到货", Arrays.asList(
  94. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PA-"),
  95. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  96. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  97. )),
  98. /**
  99. * 质检
  100. */
  101. QUALITY("quality", "质检", Arrays.asList(
  102. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "ZJ-"),
  103. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  104. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  105. )),
  106. /**
  107. * 退货
  108. */
  109. SALES_RETURN("sales_return", "退货", Arrays.asList(
  110. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "TH-"),
  111. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  112. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  113. )),
  114. ;
  115. /**
  116. * 编码规则key
  117. */
  118. private final String key;
  119. /**
  120. * 功能名称
  121. */
  122. private final String name;
  123. /**
  124. * 默认规则
  125. */
  126. private final List<DefaultRule> defaultRuleList;
  127. private static final Map<String, CodingRuleEnum> map = new HashMap<>();
  128. static {
  129. for (CodingRuleEnum value : CodingRuleEnum.values()) {
  130. map.put(value.key, value);
  131. }
  132. }
  133. private static DefaultRule getDefaultRule(RuleTypeEnum ruleTypeEnum) {
  134. return new DefaultRule(ruleTypeEnum);
  135. }
  136. private static DefaultRule getDefaultRule(RuleTypeEnum ruleTypeEnum, String value) {
  137. return new DefaultRule(ruleTypeEnum, value);
  138. }
  139. public List<RuleVo> getDefaultRuleVoList() {
  140. return defaultRuleList.stream().map(item -> {
  141. RuleVo ruleVo = new RuleVo();
  142. ruleVo.setRuleType(item.getRuleTypeEnum().getType());
  143. ruleVo.setValue(item.getValue());
  144. return ruleVo;
  145. }).collect(Collectors.toList());
  146. }
  147. public static List<RuleVo> getDefaultRuleVoList(String key) {
  148. CodingRuleEnum codingRuleEnum = map.get(key);
  149. if (codingRuleEnum == null) {
  150. throw new ServiceException("编码规则key不存在");
  151. }
  152. return codingRuleEnum.getDefaultRuleVoList();
  153. }
  154. }