OrderBonusServiceImpl.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. package com.goafanti.order.service.impl;
  2. import com.goafanti.admin.service.DepartmentService;
  3. import com.goafanti.common.constant.AFTConstants;
  4. import com.goafanti.common.dao.AdminMapper;
  5. import com.goafanti.common.dao.TOrderBonusMapper;
  6. import com.goafanti.common.dao.TOrderMonthReportMapper;
  7. import com.goafanti.common.dao.TOrderNewMapper;
  8. import com.goafanti.common.model.TOrderBonus;
  9. import com.goafanti.common.model.TOrderNew;
  10. import com.goafanti.common.utils.ExportExcelUtil;
  11. import com.goafanti.common.utils.StringUtils;
  12. import com.goafanti.core.mybatis.BaseMybatisDao;
  13. import com.goafanti.core.mybatis.page.Pagination;
  14. import com.goafanti.core.shiro.token.TokenManager;
  15. import com.goafanti.order.bo.OrderListBo;
  16. import com.goafanti.order.bo.OrderReportBo;
  17. import com.goafanti.order.bo.TOrderBonusBo;
  18. import com.goafanti.order.service.OrderBonusService;
  19. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22. import java.util.*;
  23. @Service
  24. public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> implements OrderBonusService {
  25. @Autowired
  26. private TOrderBonusMapper bonusMapper;
  27. @Autowired
  28. private TOrderNewMapper orderNewMapper;
  29. @Autowired
  30. private AdminMapper adminMapper;
  31. @Autowired
  32. private TOrderMonthReportMapper orderMonthReportMapper;
  33. @Autowired
  34. private DepartmentService departmentService;
  35. @Override
  36. public Integer addOrderBouns(TOrderBonus bonus) {
  37. // 生成id
  38. bonus.setId(UUID.randomUUID().toString());
  39. return bonusMapper.insertSelective(bonus);
  40. }
  41. @Override
  42. public Integer updateBounsPaymnetStatus(String id,String orderNo) {
  43. //先确定订单有没有校对信息
  44. TOrderNew o = orderNewMapper.queryById(orderNo);
  45. if(null == o || StringUtils.isBlank(o.getProofAid())){//不存在或者没有校对
  46. return -1;
  47. }
  48. TOrderBonus bonus = new TOrderBonus();
  49. bonus.setId(id);
  50. bonus.setGrantStatus(1);
  51. //bonus.setGrantTime(new Date());发放时间预留
  52. return bonusMapper.updateByPrimaryKeySelective(bonus);
  53. }
  54. @SuppressWarnings("unchecked")
  55. @Override
  56. public Pagination<OrderListBo> technicianBonusStatistics(TOrderBonusBo newBo,Integer pageNo, Integer pageSize) {
  57. Map<String, Object> params = new HashMap<String, Object>();
  58. List<String>fids= new ArrayList<>();
  59. if (TokenManager.hasRole(AFTConstants.FINANCE)) {
  60. fids.add(TokenManager.getAdminId());
  61. }else if (TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) {
  62. fids=adminMapper.selectBySuperId(TokenManager.getAdminId());
  63. }
  64. params.put("fids", fids);
  65. params.put("b", newBo);
  66. Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("technicianBonusList", "technicianBonusCount", params, pageNo, pageSize);
  67. return data;
  68. }
  69. @SuppressWarnings("unchecked")
  70. @Override
  71. public Pagination<TOrderBonusBo> saleBonusStatistics(TOrderBonusBo newBo, Integer pageNo, Integer pageSize) {
  72. Map<String, Object> params = new HashMap<String, Object>();
  73. List<String> fids=new ArrayList<>();
  74. if (TokenManager.hasRole(AFTConstants.FINANCE)) {
  75. newBo.setGrantBy(TokenManager.getAdminId());
  76. }else if (TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) {
  77. fids=adminMapper.selectBySuperId(TokenManager.getAdminId());
  78. }
  79. List<String> depsList = new ArrayList<>();
  80. if (TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)){
  81. depsList=departmentService.selectMyDeps();
  82. }
  83. if (newBo.getDeps()==null){
  84. if (depsList.isEmpty()){
  85. return new Pagination<>(1,10,0);
  86. }
  87. params.put("deps", depsList);
  88. }else {
  89. depsList=departmentService.comparePermissions(depsList, newBo.getDeps());
  90. if (depsList.isEmpty()){
  91. return new Pagination<>(1,10,0);
  92. }
  93. params.put("deps", depsList);
  94. }
  95. params.put("fids", fids);
  96. params.put("b", newBo);
  97. Pagination<TOrderBonusBo> data = (Pagination<TOrderBonusBo>)findPage("saleBonusList", "saleBonusCount", params, pageNo, pageSize);
  98. innerData((List<TOrderBonusBo>) data.getList(), newBo);
  99. return data;
  100. }
  101. private void innerData(List<TOrderBonusBo> list, TOrderBonusBo newBo){
  102. Integer m = null;
  103. Integer m1 = null;
  104. Integer y = null;
  105. Integer y1 = null;
  106. if(StringUtils.isNotEmpty(newBo.getStartTime()) && StringUtils.isNotEmpty(newBo.getEndTime())){
  107. m = Integer.valueOf(newBo.getStartTime().replaceAll("-", ""));
  108. m1 = Integer.valueOf(newBo.getEndTime().replaceAll("-", ""));
  109. y = Integer.valueOf(newBo.getStartTime().substring(0, newBo.getStartTime().indexOf("-")));
  110. y1 = Integer.valueOf(newBo.getEndTime().substring(0, newBo.getEndTime().indexOf("-")));
  111. }else{
  112. Calendar cal = Calendar.getInstance();
  113. cal.setTime(new Date());
  114. y = cal.get(Calendar.YEAR);
  115. m = y*100 + (cal.get(Calendar.MONTH)+1);
  116. y1 = y;
  117. m1 = m;
  118. }
  119. for (TOrderBonusBo orderListBo : list) {
  120. //处理月度数据
  121. OrderReportBo r = new OrderReportBo();
  122. r.setSalemansId(orderListBo.getGrantTarget());
  123. r.setMonth(m);
  124. r.setMonth1(m1);
  125. List<OrderReportBo> l = orderMonthReportMapper.getMonthReportByMonth(r);
  126. if(l.size() == 1){
  127. OrderReportBo o = l.get(0);
  128. if(null != o){
  129. orderListBo.setKejim(o.getKejim());
  130. orderListBo.setRenzm(o.getRenzm());
  131. }
  132. }
  133. r.setMonth(y);
  134. r.setMonth1(y1);
  135. //处理年度数据
  136. List<OrderReportBo> ll = orderMonthReportMapper.getYearReportByYear(r);
  137. if(l.size() == 1){
  138. OrderReportBo o = ll.get(0);
  139. if(null != o){
  140. orderListBo.setKejiy(o.getKejiy());
  141. orderListBo.setRenzy(o.getRenzy());
  142. }
  143. }
  144. }
  145. }
  146. @Override
  147. public Integer updateChangeBonus(String id) {
  148. TOrderBonus bonus = new TOrderBonus();
  149. bonus.setId(id);
  150. bonus.setGrantStatus(1);
  151. return bonusMapper.updateByPrimaryKeySelective(bonus);
  152. }
  153. @Override
  154. public XSSFWorkbook exportTechnicianBonusData(TOrderBonusBo bonusBo) {
  155. // 判断导出是否有部门
  156. String deptid = bonusBo.getDeps();
  157. Map<String, List<TOrderBonusBo>> map = new HashMap<String, List<TOrderBonusBo>>();
  158. if(StringUtils.isBlank(deptid)){
  159. //获得所有有数据的部门
  160. bonusBo.setGrantType(1);
  161. List<TOrderBonusBo> dlist = bonusMapper.getDeptBySome(bonusBo);
  162. if(null == dlist || dlist.size() == 0){
  163. return null;
  164. }
  165. for (int i = 0; i < dlist.size(); i++) {
  166. TOrderBonusBo ob = dlist.get(i);
  167. if(null != ob && null!= ob.getDeps()){
  168. // bonusBo.setDepartmentId(ob.getDepartmentId());
  169. map.put(ob.getDepartmentName(), bonusMapper.getBonusData(bonusBo));
  170. }
  171. }
  172. }else{
  173. map.put(bonusBo.getDepartmentName(), bonusMapper.getBonusData(bonusBo));
  174. }
  175. String[] comment = {"任务编号","任务名称","订单编号","任务负责人","任务状态","任务数量","项目状态","受理日期","评审日期","下证日期","订单结算状态","发放类型","发放状态","奖金创建时间"};
  176. XSSFWorkbook wb = ExportExcelUtil.exportDeptBonusInfoT(map, comment);
  177. return wb;
  178. }
  179. @Override
  180. public XSSFWorkbook exportSaleBonusData(TOrderBonusBo bonusBo) {
  181. String deptid = bonusBo.getDeps();
  182. Map<String, List<TOrderBonusBo>> map = new HashMap<String, List<TOrderBonusBo>>();
  183. if(StringUtils.isBlank(deptid)){
  184. //获得所有有数据的部门
  185. bonusBo.setGrantType(0);
  186. List<TOrderBonusBo> dlist = bonusMapper.getDeptBySome(bonusBo);
  187. if(null == dlist || dlist.size() == 0){
  188. return null;
  189. }
  190. for (int i = 0; i < dlist.size(); i++) {
  191. TOrderBonusBo ob = dlist.get(i);
  192. // bonusBo.setDepartmentId(ob.getDepartmentId());
  193. List<TOrderBonusBo> l = bonusMapper.getSaleBounsList(bonusBo);
  194. innerData(l, bonusBo);
  195. map.put(ob.getDepartmentName(), l);
  196. }
  197. }else{
  198. List<TOrderBonusBo> l = bonusMapper.getSaleBounsList(bonusBo);
  199. innerData(l, bonusBo);
  200. map.put(bonusBo.getDepartmentName(), l);
  201. }
  202. XSSFWorkbook wb = ExportExcelUtil.exportDeptBonusInfoS(map);
  203. return wb;
  204. }
  205. }