PublicReleaseServiceImpl.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. package com.goafanti.admin.service.impl;
  2. import java.text.ParseException;
  3. import java.util.Date;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import java.util.UUID;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import com.goafanti.admin.bo.InputPublicDtails;
  11. import com.goafanti.admin.bo.InputPublicRelease;
  12. import com.goafanti.admin.bo.InputPublicReleaseList;
  13. import com.goafanti.admin.bo.InputPublicStatistics;
  14. import com.goafanti.admin.bo.OutPublicDtails;
  15. import com.goafanti.admin.bo.OutPublicRelease;
  16. import com.goafanti.admin.bo.OutPublicReleaseList;
  17. import com.goafanti.admin.bo.OutPublicStatistics;
  18. import com.goafanti.admin.bo.outPublicReleaseLog;
  19. import com.goafanti.admin.service.PublicReleaseService;
  20. import com.goafanti.common.constant.AFTConstants;
  21. import com.goafanti.common.dao.AdminMapper;
  22. import com.goafanti.common.dao.PublicReleaseLogMapper;
  23. import com.goafanti.common.dao.PublicReleaseMapper;
  24. import com.goafanti.common.error.BusinessException;
  25. import com.goafanti.common.model.Admin;
  26. import com.goafanti.common.model.PublicRelease;
  27. import com.goafanti.common.model.PublicReleaseLog;
  28. import com.goafanti.common.utils.DateUtils;
  29. import com.goafanti.common.utils.WeChatUtils;
  30. import com.goafanti.core.mybatis.BaseMybatisDao;
  31. import com.goafanti.core.mybatis.page.Pagination;
  32. import com.goafanti.core.shiro.token.TokenManager;
  33. import com.goafanti.customer.bo.FollowBusinessBo;
  34. import com.goafanti.customer.service.CustomerService;
  35. @Service
  36. public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper> implements PublicReleaseService {
  37. @Autowired
  38. private PublicReleaseMapper publicReleaseMapper;
  39. @Autowired
  40. private PublicReleaseLogMapper publicReleaseLogMapper;
  41. @Autowired
  42. private CustomerService customerService;
  43. @Autowired
  44. private WeChatUtils weChatUtils;
  45. @Autowired
  46. private AdminMapper adminMapper;
  47. @Override
  48. public int addPublicRelease(InputPublicRelease in) {
  49. Date date =new Date();
  50. in.setCreateTime(date);
  51. in.setStatus(1);
  52. in.setAid(TokenManager.getAdminId());
  53. try {
  54. in.setReleaseStart(DateUtils.parseDate(in.getReleaseStarts(), AFTConstants.YYYYMMDDHHMMSS));
  55. in.setReleaseEnd(DateUtils.parseDate(in.getReleaseEnds(), AFTConstants.YYYYMMDDHHMMSS));
  56. } catch (ParseException e) {
  57. e.printStackTrace();
  58. throw new BusinessException("转换异常");
  59. }
  60. publicReleaseMapper.insertSelectiveGetId(in);
  61. Admin my=adminMapper.selectByPrimaryKey(TokenManager.getAdminId());
  62. Admin a=adminMapper.selectByPrimaryKey(my.getSuperiorId());
  63. String openid=a.getOpenId();
  64. if (openid!=null) {
  65. return weChatUtils.addNotice(openid, in.getStatus(),date,my.getName(),"["+my.getName()+"]发起外出审核");
  66. }else {
  67. //成功但是对方收不到消息
  68. return 2;
  69. }
  70. }
  71. @Override
  72. public int updatePublicRelease(InputPublicRelease in) {
  73. try {
  74. in.setReleaseStart(DateUtils.parseDate(in.getReleaseStarts(), AFTConstants.YYYYMMDDHHMMSS));
  75. in.setReleaseEnd(DateUtils.parseDate(in.getReleaseEnds(), AFTConstants.YYYYMMDDHHMMSS));
  76. } catch (ParseException e) {
  77. e.printStackTrace();
  78. throw new BusinessException("转换异常");
  79. }
  80. in.setStatus(1);
  81. publicReleaseMapper.updateByPrimaryKeySelective(in);
  82. return 1;
  83. }
  84. @SuppressWarnings("unchecked")
  85. @Override
  86. public Pagination<OutPublicReleaseList> listPublicRelease(InputPublicReleaseList in) {
  87. Map<String,Object> map =new HashMap<String, Object>();
  88. map.put("type", in.getType()==null?0:in.getType());
  89. map.put("aid", TokenManager.getAdminId());
  90. return (Pagination<OutPublicReleaseList>) findPage("listPublicRelease", "countPublicRelease", map, in.getPageNo(), in.getPageSize());
  91. }
  92. @Override
  93. public int pushExaminePublicRelease(Integer id, Integer status, String remarks,Double duration) {
  94. PublicRelease p=new PublicRelease();
  95. Date date =new Date();
  96. p.setId(id);
  97. p.setStatus(status);
  98. PublicRelease use=publicReleaseMapper.selectByPrimaryKey(id);
  99. if (use.getStatus()!=1) {
  100. throw new BusinessException("只能修改已发起的状态");
  101. }
  102. publicReleaseMapper.updateByPrimaryKeySelective(p);
  103. PublicReleaseLog log=new PublicReleaseLog(id,TokenManager.getAdminId(),status,remarks,new Date());
  104. publicReleaseLogMapper.insertSelective(log);
  105. Admin my=adminMapper.selectByPrimaryKey(TokenManager.getAdminId());
  106. Admin s=adminMapper.selectByPrimaryKey(use.getAid());
  107. if (my.getOpenId()!=null) {
  108. return weChatUtils.addNotice(s.getOpenId(),p.getStatus(),date,my.getName(),
  109. remarks);
  110. }
  111. return 1;
  112. }
  113. @Override
  114. public List<outPublicReleaseLog> listPublicReleaseLog(Integer id) {
  115. return publicReleaseLogMapper.listPublicReleaseLog(id);
  116. }
  117. @Override
  118. public int pushPublicReleaseClockIn(Integer id) {
  119. PublicRelease p=new PublicRelease();
  120. PublicRelease use=publicReleaseMapper.selectByPrimaryKey(id);
  121. p.setId(id);
  122. p.setClockIn(1);
  123. p.setClockInTime(new Date());
  124. if (use.getClockIn()==0) {
  125. FollowBusinessBo fbb=new FollowBusinessBo();
  126. fbb.setUid(use.getUid());
  127. fbb.setContactType("0");
  128. fbb.setResult(use.getRemarks());
  129. fbb.setFollowTime(DateUtils.formatDate(p.getClockInTime(), AFTConstants.YYYYMMDDHHMMSS));
  130. String ufid=UUID.randomUUID().toString();
  131. p.setUfid(ufid);
  132. customerService.addFollow(fbb,ufid);
  133. }
  134. publicReleaseMapper.updateByPrimaryKeySelective(p);
  135. return 1;
  136. }
  137. @Override
  138. public OutPublicRelease dtails(Integer id) {
  139. return publicReleaseMapper.selectByid(id);
  140. }
  141. @Override
  142. public OutPublicRelease followDtails(String id) {
  143. return publicReleaseMapper.selectByUfid(id);
  144. }
  145. @SuppressWarnings("unchecked")
  146. @Override
  147. public Object publicReleaseStatistics(InputPublicStatistics in) {
  148. Map<String,Object> map =new HashMap<String, Object>();
  149. if(in.getAid()!=null)map.put("aid", in.getAid());
  150. if(in.getDepId()!=null)map.put("depId", in.getDepId());
  151. if(in.getClockStart()!=null)map.put("clockStart", in.getClockStart());
  152. if(in.getClockEnd()!=null)map.put("clockEnd", in.getClockEnd()+" 23:59:59");
  153. if(in.getCreateStart()!=null)map.put("createStart", in.getCreateStart());
  154. if(in.getCreateEnd()!=null)map.put("createEnd", in.getCreateEnd()+" 23:59:59");
  155. return (Pagination<OutPublicStatistics>) findPage("listPublicStatistics", "countPublicStatistics", map, in.getPageNo(), in.getPageSize());
  156. }
  157. @SuppressWarnings("unchecked")
  158. @Override
  159. public Object publicReleaseListDtails(InputPublicDtails in) {
  160. Map<String,Object> map =new HashMap<String, Object>();
  161. if(in.getAid()!=null)map.put("aid", in.getAid());
  162. if(in.getReleaseStart()!=null)map.put("releaseStart", in.getReleaseStart());
  163. if(in.getReleaseEnd()!=null)map.put("releaseEnd", in.getReleaseEnd()+" 23:59:59");
  164. if(in.getUid()!=null)map.put("uid", in.getUid());
  165. if(in.getStatus()!=null)map.put("status", in.getStatus());
  166. return (Pagination<OutPublicDtails>) findPage("listPublicDtails", "countPublicDtails", map, in.getPageNo(), in.getPageSize());
  167. }
  168. }