CodingRuleEnum.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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. SAMPLE("sample", "样品单", Arrays.asList(
  27. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "YP-"),
  28. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  29. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  30. )),
  31. /**
  32. * EHSD采购编码
  33. */
  34. EHSD_PURCHASE("ehsd_purchase", "EHSD采购单", Arrays.asList(
  35. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PO-"),
  36. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  37. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  38. )),
  39. /**
  40. * 报价单
  41. */
  42. SALE_QUOTATION("sale_quotation", "报价单", Arrays.asList(
  43. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "GSQT-"),
  44. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  45. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  46. )),
  47. /**
  48. * 包装
  49. */
  50. PACK("pack", "包装", Arrays.asList(
  51. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PACK-"),
  52. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  53. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  54. )),
  55. /**
  56. * 采购编码
  57. */
  58. PURCHASE("purchase", "采购单", Arrays.asList(
  59. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "SC-"),
  60. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  61. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  62. )),
  63. /**
  64. * 服务合同
  65. */
  66. SERVICE_CONTRACT("service_contract", "服务合同", Arrays.asList(
  67. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PO-"),
  68. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  69. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  70. )),
  71. //---------------------------采购模块-----------------------------
  72. /**
  73. * 申购单
  74. */
  75. SUBSCRIBE("subscribe", "申购单", Arrays.asList(
  76. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PR-"),
  77. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  78. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  79. )),
  80. /**
  81. * 到货
  82. */
  83. ARRIVAL("arrival", "到货", Arrays.asList(
  84. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PA-"),
  85. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  86. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  87. )),
  88. /**
  89. * 质检
  90. */
  91. QUALITY("quality", "质检", Arrays.asList(
  92. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "ZJ-"),
  93. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  94. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  95. )),
  96. /**
  97. * 退货
  98. */
  99. SALES_RETURN("sales_return", "退货", Arrays.asList(
  100. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "TH-"),
  101. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  102. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  103. )),
  104. /**
  105. * EHSD到货检验编码
  106. */
  107. EHSD_QUALITY("ehsd_quality", "到货检验编码", Arrays.asList(
  108. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "EHSD-QUALITY-"),
  109. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
  110. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  111. )),
  112. //---------------------------嘉兴双拓-----------------------------
  113. JXST_SALES_CONTRACT("jsxt_sales_contract", "嘉兴双拓销售合同", Arrays.asList(
  114. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "SC"),
  115. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyMM-"),
  116. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  117. )),
  118. JXST_WORK_ORDER("jsxt_work_order", "嘉兴双拓工单", Arrays.asList(
  119. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "WO"),
  120. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyMM-"),
  121. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  122. )),
  123. JXST_PRODUCTION_PLAN("jsxt_production_plan", "嘉兴双拓生产计划", Arrays.asList(
  124. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "WP"),
  125. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyMM-"),
  126. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  127. )),
  128. JXST_PRODUCTION_TASK("jsxt_production_task", "嘉兴双拓生产任务", Arrays.asList(
  129. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "WT"),
  130. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyMM-"),
  131. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  132. )),
  133. JXST_AFTER_SALES("jsxt_after_sales", "嘉兴双拓售后", Arrays.asList(
  134. getDefaultRule(RuleTypeEnum.CUSTOMIZE, "AS"),
  135. getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyMM-"),
  136. getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
  137. )),
  138. ;
  139. /**
  140. * 编码规则key
  141. */
  142. private final String key;
  143. /**
  144. * 功能名称
  145. */
  146. private final String name;
  147. /**
  148. * 默认规则
  149. */
  150. private final List<DefaultRule> defaultRuleList;
  151. private static final Map<String, CodingRuleEnum> map = new HashMap<>();
  152. static {
  153. for (CodingRuleEnum value : CodingRuleEnum.values()) {
  154. map.put(value.key, value);
  155. }
  156. }
  157. private static DefaultRule getDefaultRule(RuleTypeEnum ruleTypeEnum) {
  158. return new DefaultRule(ruleTypeEnum);
  159. }
  160. private static DefaultRule getDefaultRule(RuleTypeEnum ruleTypeEnum, String value) {
  161. return new DefaultRule(ruleTypeEnum, value);
  162. }
  163. public List<RuleVo> getDefaultRuleVoList() {
  164. return defaultRuleList.stream().map(item -> {
  165. RuleVo ruleVo = new RuleVo();
  166. ruleVo.setRuleType(item.getRuleTypeEnum().getType());
  167. ruleVo.setValue(item.getValue());
  168. return ruleVo;
  169. }).collect(Collectors.toList());
  170. }
  171. public static List<RuleVo> getDefaultRuleVoList(String key) {
  172. CodingRuleEnum codingRuleEnum = map.get(key);
  173. if (codingRuleEnum == null) {
  174. throw new ServiceException("编码规则key不存在");
  175. }
  176. return codingRuleEnum.getDefaultRuleVoList();
  177. }
  178. }