PushOrderService.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package com.goafanti.order.service.impl;
  2. import com.goafanti.common.constant.AFTConstants;
  3. import com.goafanti.common.dao.DepartmentMapper;
  4. import com.goafanti.common.dao.TOrderNewMapper;
  5. import com.goafanti.common.model.Department;
  6. import com.goafanti.core.shiro.token.TokenManager;
  7. import com.goafanti.order.bo.TOrderNewBo;
  8. import com.goafanti.order.enums.ApprovalNewState;
  9. import com.goafanti.order.enums.ProcessStatus;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import java.util.Objects;
  13. @Service
  14. public class PushOrderService {
  15. public static final String DEFAULTS_URL="/image/noPermission.jpg";
  16. @Autowired
  17. private DepartmentMapper departmentMapper;
  18. @Autowired
  19. private TOrderNewMapper tOrderNewMapper;
  20. /**
  21. * 根据流程与角色判断是否可以查看订单合同
  22. * @return 超级管理员、运营决策者、总裁、外包审核与可以查看;
  23. * 营销员与经理可以查看自己的订单;
  24. * 营销管理员、财务专员、咨询师管理员可以看到在自己手上的合同;其他只能获取到无权限查看的图片
  25. *
  26. */
  27. public String processStatusConstant(TOrderNewBo t){
  28. //tOrder.getContractPictureUrl(),tOrder.getSalesmanId(),tOrder.getProcessStatus(),tOrder.getApproval()
  29. //流程状态 0-已派营销员,1-已派营销员管理员,2-已派财务管理员,3-已派财务专员,4-已派咨询师管理员,5-已部分派咨询师经理,6-已部全部派咨询师经理
  30. if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)
  31. ||TokenManager.hasRole(AFTConstants.APPROVAL_DECISION_ASSISTANT) ){
  32. return t.getContractPictureUrl();
  33. }else if ((TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER)||TokenManager.hasRole(AFTConstants.SALESMAN)
  34. ||TokenManager.hasRole(AFTConstants.SALESMAN_ASSISTANT))&&
  35. Objects.equals(TokenManager.getAdminId(), t.getSalesmanId())){
  36. return t.getContractPictureUrl();
  37. }else if (t.getProcessStatus()==ProcessStatus.YPYXJL.getCode()){
  38. if (TokenManager.getAdminId().equals(t.getManagerId())){
  39. return t.getContractPictureUrl();
  40. }else {
  41. return DEFAULTS_URL;
  42. }
  43. }else if (t.getProcessStatus()== ProcessStatus.YPYXGLY.getCode()&&TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)){
  44. return t.getContractPictureUrl();
  45. }else if (t.getProcessStatus()== ProcessStatus.YPCW_JSZJ.getCode()&&TokenManager.hasRole(AFTConstants.FINANCE)){
  46. return t.getContractPictureUrl();
  47. }else if ((t.getProcessStatus()== ProcessStatus.YYBZSH.getCode())&&
  48. TokenManager.hasRole(AFTConstants.OPERATION_GUARANTEE)
  49. ){
  50. return t.getContractPictureUrl();
  51. }else if ((t.getProcessStatus()== ProcessStatus.YPCW_JSZJ.getCode()||t.getProcessStatus()== ProcessStatus.YPZXSGLY.getCode())&&
  52. TokenManager.hasRole(AFTConstants.TECH_ADMIN)
  53. ){
  54. return t.getContractPictureUrl();
  55. }else if (TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)){
  56. return t.getContractPictureUrl();
  57. }
  58. if(t.getApproval()== ApprovalNewState.TPDSH.getCode()){
  59. Department department = departmentMapper.selectByPrimaryKey(t.getOrderDep());
  60. if (department.getApproval()==1&&department.getApprovalAid().equals(TokenManager.getAdminId())){
  61. return t.getContractPictureUrl();
  62. }
  63. }
  64. return DEFAULTS_URL;
  65. }
  66. /**
  67. * 根据变更流程判断是否可以查看
  68. *
  69. * @param url
  70. * @param processStatus
  71. * @param status 在流程走完则要财务退票 状态 0草稿 1审核中 2通过 3驳回 4完成 5撤销 2是流程走完但是还停留在财务退票,4才是完全走完流程
  72. * @return
  73. */
  74. public String changeProcessStatusConstant(String url,String orderNo,Integer processStatus,Integer status){
  75. //流程状态 0营销员 1营销管理员 2技术员 3技术经理 4技术总监 5财务专员(退单) 6财务总监 7总裁 8董事长 9 财务专员(非退单)
  76. boolean flag=false;
  77. //超级管理员、董事长、总裁、总裁助手可以看
  78. //营销员、营销经理可以看
  79. if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION) ||
  80. TokenManager.hasRole(AFTConstants.CED) ||TokenManager.hasRole(AFTConstants.CED_ASSISTANT)){
  81. flag=true;
  82. } else if(TokenManager.hasRole(AFTConstants.SALESMAN)||TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER)){
  83. flag=true;
  84. }else{
  85. //其他都是审核得时候可以看
  86. switch (processStatus) {
  87. case 2:
  88. if(TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)){
  89. flag=true;
  90. }
  91. break;
  92. case 3:
  93. if(TokenManager.hasRole(AFTConstants.TECH)){
  94. flag=true;
  95. }
  96. break;
  97. case 4:
  98. if(TokenManager.hasRole(AFTConstants.TECH_MANAGER)){
  99. flag=true;
  100. }
  101. break;
  102. case 5:
  103. if(TokenManager.hasRole(AFTConstants.TECH_ADMIN)){
  104. flag=true;
  105. }
  106. break;
  107. case 6:
  108. if(TokenManager.hasRole(AFTConstants.FINANCE)){
  109. flag=true;
  110. }
  111. break;
  112. case 7:
  113. if(TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)){
  114. flag=true;
  115. }
  116. break;
  117. case 8:
  118. if(TokenManager.hasRole(AFTConstants.OPERATION_GUARANTEE)){
  119. flag=true;
  120. }
  121. break;
  122. case 9:
  123. if(status==1){
  124. Department department = tOrderNewMapper.selectDepByOrderNo(orderNo);
  125. if (TokenManager.getAdminId().equals(department.getApprovalAid())){
  126. flag=true;
  127. }
  128. }
  129. if(TokenManager.hasRole(AFTConstants.FINANCE)&&status==2){
  130. flag=true;
  131. }
  132. break;
  133. case 10:
  134. if((TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)||(TokenManager.hasRole(AFTConstants.APPROVAL_DECISION_ASSISTANT))&&status!=2)||
  135. (TokenManager.hasRole(AFTConstants.FINANCE)&&status==2)){
  136. flag=true;
  137. }
  138. break;
  139. case 11:
  140. if((TokenManager.hasRole(AFTConstants.VICE_CED))||(TokenManager.hasRole(AFTConstants.FINANCE)&&status==2)){
  141. flag=true;
  142. }
  143. break;
  144. }
  145. }
  146. if (flag){
  147. return url;
  148. }else {
  149. return DEFAULTS_URL;
  150. }
  151. }
  152. }