LegalAffairsServiceImpl.java 9.2 KB

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