OrderBonusServiceImpl.java 6.7 KB

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