LegalAffairsServiceImpl.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. package com.goafanti.order.service.impl;
  2. import com.goafanti.admin.service.DepartmentService;
  3. import com.goafanti.common.bo.Result;
  4. import com.goafanti.common.constant.AFTConstants;
  5. import com.goafanti.common.dao.*;
  6. import com.goafanti.common.model.TDunLog;
  7. import com.goafanti.common.model.TOrderLegalAffairs;
  8. import com.goafanti.common.model.TOrderMid;
  9. import com.goafanti.common.utils.DateUtils;
  10. import com.goafanti.common.utils.excel.NewExcelUtil;
  11. import com.goafanti.core.mybatis.BaseMybatisDao;
  12. import com.goafanti.core.mybatis.page.Pagination;
  13. import com.goafanti.core.shiro.token.TokenManager;
  14. import com.goafanti.order.bo.*;
  15. import com.goafanti.order.enums.NewProjectStatus;
  16. import com.goafanti.order.service.LegalAffairsService;
  17. import org.springframework.beans.BeanUtils;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.beans.factory.annotation.Value;
  20. import org.springframework.stereotype.Service;
  21. import java.text.ParseException;
  22. import java.util.*;
  23. @Service
  24. public class LegalAffairsServiceImpl extends BaseMybatisDao<TOrderMidMapper> implements LegalAffairsService {
  25. @Autowired
  26. private TOrderMidMapper tOrderMidMapper;
  27. @Autowired
  28. private TOrderTaskMapper tOrderTaskMapper;
  29. @Autowired
  30. private TDunLogMapper tDunLogMapper;
  31. @Autowired
  32. private TOrderLegalAffairsMapper tOrderLegalAffairsMapper;
  33. @Autowired
  34. private DepartmentService departmentService;
  35. @Autowired
  36. private AdminMapper adminMapper;
  37. @Value(value = "${upload.path}")
  38. private String uploadPath = null;
  39. @Override
  40. public int pushTransferLagalAffairs(String orderNo,String remarks){
  41. TOrderMid tm = new TOrderMid();
  42. tm.setOrderNo(orderNo);
  43. tm.setLegalAffairs(1);
  44. tm.setLegalAffairsType(0);
  45. tm.setLegalAffairsStatus(0);
  46. InputOrderLegalAffairs in=new InputOrderLegalAffairs();
  47. in.setOrderNo(orderNo);
  48. in.setRemarks(remarks);
  49. in.setType(4);
  50. addLagalAffairsLog(in);
  51. return tOrderMidMapper.updateByOrderNo(tm);
  52. }
  53. @Override
  54. public Object orderListPage(InputOrderListBo in) {
  55. HashMap<String, Object> params = new HashMap<>();
  56. addParams(in, params);
  57. Pagination<OutOrderLegalAffairsListBo> p= (Pagination<OutOrderLegalAffairsListBo>) findPage("legalAffairsOrderList","legalAffairsOrderCount",params,in.getPageNo(),in.getPageSize());
  58. List<OutOrderLegalAffairsListBo> list = (List<OutOrderLegalAffairsListBo>) p.getList();
  59. if(in.getType()==0){
  60. sumDaysRemaining(list);
  61. }
  62. return p;
  63. }
  64. private void addParams(InputOrderListBo in, HashMap<String, Object> map) {
  65. if(in.getContractNo()!=null) map.put("contractNo", in.getContractNo());
  66. if(in.getLegalAffairs()!=null) map.put("legalAffairs", in.getLegalAffairs());
  67. if(in.getAid()!=null) map.put("aid", in.getAid());
  68. if(in.getType()==0){
  69. if (TokenManager.hasRole(AFTConstants.FINANCE)){
  70. map.put("shiro",1);
  71. List<String> deps=adminMapper.getFinanceDep(TokenManager.getAdminId());
  72. if (in.getDeps()==null){
  73. map.put("deps",deps);
  74. }else {
  75. map.put("deps",departmentService.selectSubDeps(deps));
  76. }
  77. }else if(TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER)){
  78. map.put("shiro",2);
  79. map.put("sid", TokenManager.getAdminId());
  80. }else if(TokenManager.hasRole(AFTConstants.SUPERADMIN)||TokenManager.hasRole(AFTConstants.CED)||
  81. TokenManager.hasRole(AFTConstants.CED_ASSISTANT)||TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)||
  82. TokenManager.hasRole(AFTConstants.VICE_CEO)){
  83. map.put("shiro",3);
  84. }else {
  85. map.put("shiro",0);
  86. if(TokenManager.getAdminId()!=null)map.put("aid", TokenManager.getAdminId());
  87. }
  88. map.put("type", in.getType());
  89. }else{
  90. if(in.getAid()!=null) map.put("aid", in.getAid());
  91. if (in.getStatus()!=null) map.put("status",in.getStatus());
  92. map.put("type", in.getType());
  93. }
  94. if (!TokenManager.hasRole(AFTConstants.FINANCE)){
  95. if(in.getDeps()!=null){
  96. map.put("deps", departmentService.parseArray(in.getDeps()));
  97. }
  98. }
  99. if(in.getUserName()!=null) map.put("userName", in.getUserName());
  100. if(in.getStartTime()!=null)map.put("startTime", in.getStartTime());
  101. if(in.getEndTime()!=null)map.put("endTime", in.getEndTime()+" 23:59:59");
  102. }
  103. private void sumDaysRemaining(List<OutOrderLegalAffairsListBo> list) {
  104. Date date = new Date();
  105. for (OutOrderLegalAffairsListBo out : list) {
  106. if (out.getLegalAffairs()==0){
  107. if (out.getDunStartTime()!=null){
  108. long start=out.getDunStartTime().getTime()+AFTConstants.DUN_START_LIMIT_MS;
  109. int i= (int) ((start-date.getTime())/(3600*24*1000));
  110. out.setDaysRemaining(i);
  111. }else {
  112. out.setDaysRemaining(0);
  113. }
  114. }else {
  115. out.setDaysRemaining(0);
  116. }
  117. }
  118. }
  119. @Override
  120. public List<OutOrderLegalAffairsListBo> getLegalAffairsOrder(InputOrderListBo in) {
  121. HashMap<String, Object> params = new HashMap<>();
  122. addParams(in,params);
  123. List<OutOrderLegalAffairsListBo> list =(List<OutOrderLegalAffairsListBo>) findList("legalAffairsOrderList",params,1,999999);
  124. sumDaysRemaining(list);
  125. return list;
  126. }
  127. @Override
  128. public boolean checkTask(String orderNo) {
  129. List<TOrderTaskBo> list =tOrderTaskMapper.selectOrderTask(orderNo,0);
  130. for (TOrderTaskBo bo : list) {
  131. if (bo.getType()==5&&bo.getProjectStatus()!= NewProjectStatus.YXZ.getCode()){
  132. return true;
  133. }
  134. }
  135. return false;
  136. }
  137. @Override
  138. public List<TDunLogListBo> dunOrderList(String orderNo) {
  139. return tDunLogMapper.selectByOrderNo(orderNo);
  140. }
  141. @Override
  142. public int addDunOrder(InputDunOrder in) {
  143. TDunLog log = new TDunLog();
  144. log.setOrderNo(in.getOrderNo());
  145. log.setId(UUID.randomUUID().toString());
  146. log.setType(1);
  147. log.setRemarks(in.getRemarks());
  148. log.setAttachmentUrl(in.getAttUrl());
  149. log.setDumBy(TokenManager.getAdminId());
  150. log.setDumTime(DateUtils.StringToDate(in.getDate(),AFTConstants.YYYYMMDD));
  151. return tDunLogMapper.insertSelective(log);
  152. }
  153. @Override
  154. public int addLagalAffairsLog(InputOrderLegalAffairs in) {
  155. TOrderLegalAffairs la = new TOrderLegalAffairs();
  156. la.setOrderNo(in.getOrderNo());
  157. la.setRemarks(in.getRemarks());
  158. la.setType(in.getType());
  159. la.setStatus(in.getStatus());
  160. la.setAttachmentUrl(in.getAttachmentUrl());
  161. la.setAid(TokenManager.getAdminId());
  162. if(in.getDate()!=null)la.setOperationTime(DateUtils.StringToDate(in.getDate(),AFTConstants.YYYYMMDD));
  163. TOrderMid tm = new TOrderMid();
  164. tm.setOrderNo(in.getOrderNo());
  165. tm.setLegalAffairsType(in.getType());
  166. tm.setOperationTime(la.getOperationTime());
  167. tm.setLegalAffairsStatus(in.getStatus());
  168. tOrderMidMapper.updateByOrderNo(tm);
  169. return tOrderLegalAffairsMapper.insertSelective(la);
  170. }
  171. @Override
  172. public List<OutLegalAffairsLogBo> lagalAffairsLogList(String orderNo) {
  173. return tOrderLegalAffairsMapper.lagalAffairsLogList(orderNo);
  174. }
  175. @Override
  176. public Result orderListExprot(InputOrderListBo in) {
  177. List<OutOrderLegalAffairsListBo> use = getLegalAffairsOrder(in);
  178. NewExcelUtil newExcelUtil;
  179. List<Object> list=new ArrayList<>();
  180. String tile= new String();
  181. if (in.getType()==0){
  182. for (OutOrderLegalAffairsListBo out : use) {
  183. OutOrderLegalAffairsSalesmanBo bo = new OutOrderLegalAffairsSalesmanBo();
  184. BeanUtils.copyProperties(out,bo);
  185. list.add(bo);
  186. }
  187. newExcelUtil=new NewExcelUtil<>(OutOrderLegalAffairsSalesmanBo.class);
  188. tile="订单催款列表";
  189. }else {
  190. for (OutOrderLegalAffairsListBo out : use) {
  191. OutOrderLegalAffairsBo bo = new OutOrderLegalAffairsBo();
  192. BeanUtils.copyProperties(out,bo);
  193. list.add(bo);
  194. }
  195. newExcelUtil=new NewExcelUtil<>(OutOrderLegalAffairsBo.class);
  196. if(in.getType()==1){tile="法务催款列表";}
  197. else if(in.getType()==2){tile="延期法务列表";}
  198. else if(in.getType()==3){tile="已完成法务列表";}
  199. }
  200. StringBuffer sb=new StringBuffer("搜索条件=》");
  201. if (in.getUserName()!=null)sb=sb.append("客户名称:").append(in.getUserName()).append(",");
  202. if (in.getLegalAffairs()!=null)sb=sb.append("转交法务:").append(in.getLegalAffairs()==0?"未转交":"已转交").append(",");
  203. if (in.getContractNo()!=null)sb=sb.append("合同编号:").append(in.getContractNo()).append(",");
  204. if (in.getDepName()!=null)sb=sb.append("订单部门:").append(in.getDepName()).append(",");
  205. if (in.getaName()!=null)sb=sb.append("营销员:").append(in.getaName()).append(",");
  206. if (in.getStartTime()!=null&&in.getEndTime()!=null){
  207. if (in.getType()==0)sb=sb.append("催款启动时间:");
  208. if (in.getType()==1||in.getType()==2||in.getType()==3)sb=sb.append("法务时间:");
  209. sb=sb.append(in.getStartTime()).append("~").append(in.getEndTime()).append(",");
  210. }
  211. if(in.getStatus()!=null){
  212. sb=sb.append("完成状态:");
  213. if (in.getStatus()==1)sb=sb.append("已回款").append(",");
  214. else if (in.getStatus()==2)sb=sb.append("已诉讼").append(",");
  215. else if (in.getStatus()==3)sb=sb.append("已坏账处理").append(",");
  216. }
  217. return newExcelUtil.exportExcel(list,tile,uploadPath,sb.substring(0,sb.length()-1));
  218. }
  219. @Override
  220. public void addLagalAffairsLogList(List<String> addList2) {
  221. tOrderLegalAffairsMapper.insertBatch(addList2);
  222. }
  223. }