package com.goafanti.order.service.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.goafanti.common.dao.TOrderBonusMapper; import com.goafanti.common.dao.TOrderMonthReportMapper; import com.goafanti.common.dao.TOrderNewMapper; import com.goafanti.common.model.TOrderBonus; import com.goafanti.common.model.TOrderNew; import com.goafanti.common.utils.ExportExcelUtil; import com.goafanti.common.utils.StringUtils; import com.goafanti.core.mybatis.BaseMybatisDao; import com.goafanti.core.mybatis.page.Pagination; import com.goafanti.order.bo.OrderListBo; import com.goafanti.order.bo.OrderReportBo; import com.goafanti.order.bo.TOrderBonusBo; import com.goafanti.order.service.OrderBonusService; @Service public class OrderBonusServiceImpl extends BaseMybatisDao implements OrderBonusService { @Autowired private TOrderBonusMapper bonusMapper; @Autowired private TOrderNewMapper orderNewMapper; @Autowired private TOrderMonthReportMapper orderMonthReportMapper; @Override public Integer addOrderBouns(TOrderBonus bonus) { // 生成id bonus.setId(UUID.randomUUID().toString()); return bonusMapper.insertSelective(bonus); } @Override public Integer updateBounsPaymnetStatus(String id,String orderNo) { //先确定订单有没有校对信息 TOrderNew o = orderNewMapper.selectByPrimaryKey(orderNo); if(null == o || StringUtils.isBlank(o.getProofAid())){//不存在或者没有校对 return -1; } TOrderBonus bonus = new TOrderBonus(); bonus.setId(id); bonus.setGrantStatus(1); //bonus.setGrantTime(new Date());发放时间预留 return bonusMapper.updateByPrimaryKeySelective(bonus); } @SuppressWarnings("unchecked") @Override public Pagination technicianBonusStatistics(TOrderBonusBo newBo,Integer pageNo, Integer pageSize) { Map params = new HashMap(); params.put("b", newBo); Pagination data = (Pagination)findPage("technicianBonusList", "technicianBonusCount", params, pageNo, pageSize); return data; } @SuppressWarnings("unchecked") @Override public Pagination saleBonusStatistics(TOrderBonusBo newBo, Integer pageNo, Integer pageSize) { Map params = new HashMap(); params.put("b", newBo); Pagination data = (Pagination)findPage("saleBonusList", "saleBonusCount", params, pageNo, pageSize); innerData((List) data.getList(), newBo); return data; } private void innerData(List list, TOrderBonusBo newBo){ Integer m = null; Integer m1 = null; Integer y = null; Integer y1 = null; if(StringUtils.isNotEmpty(newBo.getStartTime()) && StringUtils.isNotEmpty(newBo.getEndTime())){ m = Integer.valueOf(newBo.getStartTime().replaceAll("-", "")); m1 = Integer.valueOf(newBo.getEndTime().replaceAll("-", "")); y = Integer.valueOf(newBo.getStartTime().substring(0, newBo.getStartTime().indexOf("-"))); y1 = Integer.valueOf(newBo.getEndTime().substring(0, newBo.getEndTime().indexOf("-"))); } for (TOrderBonusBo orderListBo : list) { //处理月度数据 OrderReportBo r = new OrderReportBo(); r.setSalemansId(orderListBo.getGrantTarget()); r.setMonth(m); r.setMonth1(m1); List l = orderMonthReportMapper.getMonthReportByMonth(r); if(l.size() == 1){ OrderReportBo o = l.get(0); orderListBo.setKejim(o.getKejim()); orderListBo.setRenzm(o.getRenzm()); } r.setMonth(y); r.setMonth1(y1); //处理年度数据 List ll = orderMonthReportMapper.getYearReportByYear(r); if(l.size() == 1){ OrderReportBo o = ll.get(0); orderListBo.setKejiy(o.getKejiy()); orderListBo.setRenzy(o.getRenzy()); } } } @Override public Integer updateChangeBonus(String id) { TOrderBonus bonus = new TOrderBonus(); bonus.setId(id); bonus.setGrantStatus(1); return bonusMapper.updateByPrimaryKeySelective(bonus); } @Override public XSSFWorkbook exportTechnicianBonusData(TOrderBonusBo bonusBo) { // 判断导出是否有部门 String deptid = bonusBo.getDepartmentId(); Map> map = new HashMap>(); String[] deptnames = null; if(StringUtils.isBlank(deptid)){ //获得所有有数据的部门 bonusBo.setGrantType(1); List dlist = bonusMapper.getDeptBySome(bonusBo); if(null == dlist || dlist.size() == 0){ return null; } deptnames = new String[dlist.size()]; for (int i = 0; i < dlist.size(); i++) { TOrderBonusBo ob = dlist.get(i); deptnames[i] = ob.getDepartmentName(); bonusBo.setDepartmentId(ob.getDepartmentId()); map.put(ob.getDepartmentName(), bonusMapper.getBonusData(bonusBo)); } }else{ deptnames = new String[1]; deptnames[0] = bonusBo.getDepartmentName(); map.put(bonusBo.getDepartmentName(), bonusMapper.getBonusData(bonusBo)); } String[] comment = {"任务编号","订单编号","任务负责人","任务状态","任务数量","项目状态","受理日期","评审日期","下证日期","订单结算状态","发放类型","发放状态"}; XSSFWorkbook wb = ExportExcelUtil.exportDeptBonusInfoT(map, deptnames, comment); return wb; } @Override public XSSFWorkbook exportSaleBonusData(TOrderBonusBo bonusBo) { String deptid = bonusBo.getDepartmentId(); Map> map = new HashMap>(); String[] deptnames = null; if(StringUtils.isBlank(deptid)){ //获得所有有数据的部门 bonusBo.setGrantType(0); List dlist = bonusMapper.getDeptBySome(bonusBo); if(null == dlist || dlist.size() == 0){ return null; } deptnames = new String[dlist.size()]; for (int i = 0; i < dlist.size(); i++) { TOrderBonusBo ob = dlist.get(i); deptnames[i] = ob.getDepartmentName(); bonusBo.setDepartmentId(ob.getDepartmentId()); List l = bonusMapper.getSaleBounsList(bonusBo); innerData(l, bonusBo); map.put(ob.getDepartmentName(), l); } }else{ List l = bonusMapper.getSaleBounsList(bonusBo); innerData(l, bonusBo); deptnames = new String[1]; deptnames[0] = bonusBo.getDepartmentName(); map.put(bonusBo.getDepartmentName(), l); } XSSFWorkbook wb = ExportExcelUtil.exportDeptBonusInfoS(map, deptnames); return wb; } }