StepPropertyEnum.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. package com.loan.system.domain.enums;
  2. import java.util.*;
  3. import static com.loan.system.domain.enums.RoleEnum.*;
  4. /**
  5. * 针对特殊环节的标识设置
  6. * @author : EdwinXu
  7. * @date : Created in 2021/1/25 16:57
  8. */
  9. public enum StepPropertyEnum {
  10. /* ========== 环节定义 ========== */
  11. BUSINESS_ACCEPT_PARENT(501, "业务受理", true),
  12. BUSINESS_ADD(502, "新增业务", false),
  13. BUSINESS_ACCEPT(503, "业务调查", false),
  14. PRE_TRIAL_PARENT(511, "预审环节", true),
  15. PRE_TRIAL(512, "预审处理", false),
  16. APPROVAL_PARENT(521, "审批环节", true),
  17. APPROVAL(522, "业务一审", false),
  18. APPROVAL_2(513, "业务二审", false),
  19. CONTRACT_SIGN_PARENT(531, "合同签订", true),
  20. CONTRACT_SIGN(532, "合同签署", false),
  21. COLLATERAL_RECEIVE(541, "押品取证", true),
  22. PLAN_SUBMISSION(542, "取证申报", false),
  23. APPROVAL_ASSIGNMENT(543, "取证派单", false),
  24. EVIDENCE_CONFIRMATION(544, "取证确认", false),
  25. // CHANNEL_PUSH(545, "推送渠道", false),
  26. // CHANNEL_CONFIRMATION(546, "渠道确认", false),
  27. DISBURSE_PARENT(551, "出帐环节", true),
  28. PLAN_REPORT(552, "出帐申报", false),
  29. PLAN_AUDIT(553, "出帐派单", false),
  30. DISBURSE_START(554, "出帐操作", false),
  31. DISBURSE_AUDIT(555, "出帐审批", false),
  32. FINANCE_DISBURSE(556, "财务复核", false),
  33. DISBURSE_CONFIRM(557, "出帐确认", false),
  34. COLLATERAL_DELIVERY(561, "押品送证", true),
  35. PLAN_SUBMISSION_2(562, "送证申报", false),
  36. APPROVAL_ASSIGNMENT_2(563, "送证派单", false),
  37. DELIVERY_CONFIRMATION(564, "送证确认", false),
  38. // CHANNEL_PUSH_2(565, "推送渠道", false),
  39. // CHANNEL_RECEIVE(566, "渠道接收", false),
  40. REPAY_PARENT(571, "回款环节", true),
  41. REPAY_START(572, "回款申报", false),
  42. REPAY_APPROVAL(573, "回款派单", false),
  43. BALANCE_REPAY(574, "回款操作", false),
  44. AUTO_REPAY(575, "主动回款", false),
  45. FINANCE_CONFIRM(576, "财务确认", false),
  46. REPAYMENT_COMPLETE(577, "完成回款", false),
  47. CASE_COMPLETE(578, "业务终结", false),
  48. CASE_ARCHIVE(579, "业务归档", false);
  49. /* ========== 字段 & 构造 ========== */
  50. private final int code;
  51. private final String label;
  52. private final boolean parent;
  53. StepPropertyEnum(int code, String label, boolean parent) {
  54. this.code = code;
  55. this.label = label;
  56. this.parent = parent;
  57. }
  58. /* ========== getter ========== */
  59. public int getCode() { return code; }
  60. public String getLabel() { return label; }
  61. public boolean isParent() { return parent; }
  62. public static List<StepPropertyEnum> listAll() {
  63. return Arrays.asList(values()); // 顺序与源码声明一致
  64. }
  65. public static Map<String, List<String>> roleAndStep() {
  66. Map<String, List<String>> map = new HashMap<>();
  67. /* 1. 业务员 */
  68. map.put(LEAD_SALES.getMsg(), Arrays.asList(
  69. BUSINESS_ADD.getLabel(),
  70. BUSINESS_ACCEPT.getLabel(),
  71. PRE_TRIAL.getLabel(),
  72. CONTRACT_SIGN.getLabel(),
  73. PLAN_SUBMISSION.getLabel(),
  74. EVIDENCE_CONFIRMATION.getLabel(),
  75. // CHANNEL_PUSH.getLabel(),
  76. PLAN_REPORT.getLabel(),
  77. DISBURSE_START.getLabel(),
  78. DISBURSE_CONFIRM.getLabel(),
  79. PLAN_SUBMISSION_2.getLabel(),
  80. DELIVERY_CONFIRMATION.getLabel(),
  81. // CHANNEL_CONFIRMATION.getLabel(),
  82. REPAY_START.getLabel(),
  83. BALANCE_REPAY.getLabel(),
  84. REPAYMENT_COMPLETE.getLabel()
  85. ));
  86. map.put(RoleEnum.ASSIST_SALES.getMsg(), Arrays.asList(
  87. BUSINESS_ADD.getLabel(),
  88. BUSINESS_ACCEPT.getLabel(),
  89. PRE_TRIAL.getLabel(),
  90. CONTRACT_SIGN.getLabel(),
  91. PLAN_SUBMISSION.getLabel(),
  92. EVIDENCE_CONFIRMATION.getLabel(),
  93. PLAN_REPORT.getLabel(),
  94. DISBURSE_START.getLabel(),
  95. DISBURSE_CONFIRM.getLabel(),
  96. PLAN_SUBMISSION_2.getLabel(),
  97. DELIVERY_CONFIRMATION.getLabel(),
  98. REPAY_START.getLabel(),
  99. BALANCE_REPAY.getLabel(),
  100. REPAYMENT_COMPLETE.getLabel()
  101. ));
  102. /* 2. 审批人 */
  103. map.put(RoleEnum.APPROVER.getMsg(), Arrays.asList(
  104. APPROVAL.getLabel(),
  105. APPROVAL_2.getLabel(),
  106. APPROVAL_ASSIGNMENT.getLabel(),
  107. PLAN_AUDIT.getLabel(),
  108. DISBURSE_AUDIT.getLabel(),
  109. APPROVAL_ASSIGNMENT_2.getLabel(),
  110. REPAY_APPROVAL.getLabel()
  111. ));
  112. /* 3. 财务人员 */
  113. map.put(RoleEnum.FINANCE.getMsg(), Arrays.asList(
  114. FINANCE_DISBURSE.getLabel(),
  115. // FINANCE_CHECK.getLabel(),
  116. FINANCE_CONFIRM.getLabel()
  117. ));
  118. // /* 4. 外部人员 */
  119. // map.put(RoleEnum.EXTERNAL.getMsg(), Arrays.asList(
  120. // CHANNEL_CONFIRMATION.getLabel(),
  121. // CHANNEL_RECEIVE.getLabel()
  122. // ));
  123. /* 5. 综合员 */
  124. map.put(RoleEnum.BACK_OFFICE.getMsg(), Arrays.asList(
  125. CASE_COMPLETE.getLabel()
  126. ));
  127. return map;
  128. }
  129. public static Map<Integer , List<String>> stepAndRole() {
  130. Map<Integer, List<String>> bizRoleMap = new HashMap<>();
  131. /* 新增业务 */
  132. bizRoleMap.put(BUSINESS_ADD.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  133. /* 业务调查 */
  134. bizRoleMap.put(BUSINESS_ACCEPT.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  135. /* 预审处理 */
  136. bizRoleMap.put(PRE_TRIAL.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  137. /* 业务一审 / 二审 —— 仅审批人,无业务员 */
  138. bizRoleMap.put(APPROVAL.getCode(), Arrays.asList(RoleEnum.APPROVER.getMsg()));
  139. bizRoleMap.put(APPROVAL_2.getCode(), Arrays.asList(RoleEnum.APPROVER.getMsg()));
  140. /* 合同签署 */
  141. bizRoleMap.put(CONTRACT_SIGN.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  142. /* 取证相关 */
  143. bizRoleMap.put(PLAN_SUBMISSION.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  144. bizRoleMap.put(EVIDENCE_CONFIRMATION.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  145. // bizRoleMap.put(CHANNEL_PUSH.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  146. bizRoleMap.put(APPROVAL_ASSIGNMENT.getCode(), Arrays.asList(APPROVER.getMsg()));
  147. /* 渠道推送/接收 —— 外部人员,业务员不介入 */
  148. // bizRoleMap.put(CHANNEL_CONFIRMATION.getCode(), Arrays.asList(EXTERNAL.getMsg()));
  149. // bizRoleMap.put(CHANNEL_RECEIVE.getCode(), Arrays.asList(EXTERNAL.getMsg()));
  150. /* 出帐环节 */
  151. bizRoleMap.put(PLAN_REPORT.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  152. bizRoleMap.put(DISBURSE_START.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  153. bizRoleMap.put(DISBURSE_CONFIRM.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  154. /* 出帐派单/审批 —— 审批人 */
  155. bizRoleMap.put(PLAN_AUDIT.getCode(), Arrays.asList(APPROVER.getMsg()));
  156. bizRoleMap.put(DISBURSE_AUDIT.getCode(), Arrays.asList(APPROVER.getMsg()));
  157. /* 财务出帐 —— 财务人员 */
  158. bizRoleMap.put(FINANCE_DISBURSE.getCode(), Arrays.asList(FINANCE.getMsg()));
  159. /* 送证环节 */
  160. bizRoleMap.put(PLAN_SUBMISSION_2.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  161. bizRoleMap.put(DELIVERY_CONFIRMATION.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  162. // bizRoleMap.put(CHANNEL_PUSH_2.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  163. /* 送证派单 —— 审批人 */
  164. bizRoleMap.put(APPROVAL_ASSIGNMENT_2.getCode(), Arrays.asList(APPROVER.getMsg()));
  165. /* 回款环节 */
  166. bizRoleMap.put(REPAY_START.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  167. bizRoleMap.put(BALANCE_REPAY.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  168. bizRoleMap.put(REPAYMENT_COMPLETE.getCode(), Arrays.asList(LEAD_SALES.getMsg(), ASSIST_SALES.getMsg()));
  169. /* 回款派单/财务核算/确认 —— 审批人/财务人员 */
  170. bizRoleMap.put(REPAY_APPROVAL.getCode(), Arrays.asList(APPROVER.getMsg()));
  171. // bizRoleMap.put(FINANCE_CHECK.getCode(), Arrays.asList(FINANCE.getMsg()));
  172. bizRoleMap.put(FINANCE_CONFIRM.getCode(),Arrays.asList(FINANCE.getMsg()));
  173. /* 业务终结 —— 综合员 */
  174. bizRoleMap.put(CASE_COMPLETE.getCode(), Arrays.asList(BACK_OFFICE.getMsg()));
  175. bizRoleMap.put(CASE_ARCHIVE.getCode(), Arrays.asList(BACK_OFFICE.getMsg()));
  176. return bizRoleMap;
  177. }
  178. public static List<List<Integer>> seqList(){
  179. List<List<Integer>> list = new ArrayList<>(Arrays.asList(
  180. Arrays.asList(),//受理0
  181. Arrays.asList(2),
  182. Arrays.asList(4),
  183. Arrays.asList(),//预审3
  184. Arrays.asList(6),
  185. Arrays.asList(),//审批5
  186. Arrays.asList(7),
  187. Arrays.asList(9),
  188. Arrays.asList(),//合同签约8
  189. Arrays.asList(11,15,22),
  190. Arrays.asList(),//押品取证10
  191. Arrays.asList(12),
  192. Arrays.asList(13),
  193. Arrays.asList(),
  194. Arrays.asList(),//出款14
  195. Arrays.asList(16),
  196. Arrays.asList(17),
  197. Arrays.asList(18),
  198. Arrays.asList(19),
  199. Arrays.asList(20),
  200. Arrays.asList(26),
  201. Arrays.asList(),//送证21
  202. Arrays.asList(23),
  203. Arrays.asList(24),
  204. Arrays.asList(),
  205. Arrays.asList(),//回款25
  206. Arrays.asList(27),
  207. Arrays.asList(28,29),
  208. Arrays.asList(30),
  209. Arrays.asList(30),
  210. Arrays.asList(31),
  211. Arrays.asList(32),
  212. Arrays.asList(33),
  213. Arrays.asList()
  214. ));
  215. return list;
  216. }
  217. }