OrderBonusServiceImpl.java 6.5 KB

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