• 导出功能


    package com.iyx.service.impl;

    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.math.RoundingMode;
    import java.text.NumberFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;

    import com.iyx.model.dao.ActivityMapper;
    import com.iyx.model.dao.CommentMapper;
    import com.iyx.model.dao.InformationMapper;
    import com.iyx.model.dao.TeamUserMapper;
    import com.iyx.model.dao.UserExtendMapper;
    import com.iyx.model.dao.VigourMapper;
    import com.iyx.model.entity.KpiItem;
    import com.iyx.service.KpiItemService;

    import common.util.CommonUtil;
    import common.util.DateUtil;
    import jxl.Workbook;
    import jxl.format.Alignment;
    import jxl.format.Border;
    import jxl.format.BorderLineStyle;
    import jxl.format.VerticalAlignment;
    import jxl.write.Label;
    import jxl.write.WritableCellFormat;
    import jxl.write.WritableFont;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    import jxl.write.WriteException;

    /**
    * KPI统计
    *
    * @author zsl
    */
    @Service
    public class KpiItemServiceImpl implements KpiItemService {

    @Autowired
    private TeamUserMapper teamUserMapper;

    @Autowired
    private VigourMapper vigourMapper;

    @Autowired
    private CommentMapper commentMapper;

    @Autowired
    private ActivityMapper activityMapper;

    @Autowired
    private InformationMapper informationMapper;

    @Autowired
    private UserExtendMapper userExtendMapper;

    // 创建工作簿
    private WritableWorkbook workbook = null;

    // 创建输出流
    private OutputStream os = null;

    // 创建工作表
    private WritableSheet sheet = null;

    // 字体样式: 用于标题居中
    private WritableCellFormat wcf_center = null;

    // 字体样式: 用于正文居左
    private WritableCellFormat wcf_left = null;

    // 设置单元格字体
    private WritableFont NormalFont = null;
    private WritableFont BoldFont = null;

    @Override
    public void saveOrUpdate(Object record) {
    }

    @Override
    public void deleteById(Integer id) {
    }

    @Override
    public Object selectById(Integer id) {
    return null;
    }

    /**
    * 小组活动统计
    */
    @Override
    public List<KpiItem> findActStatistics(String startTime, String endTime) {
    long start = 0, end = 0;

    // 获取起始毫秒数
    if (CommonUtil.isEmpty(startTime)) {
    start = DateUtil.getCurrentMonthStartTime();
    } else {
    start = DateUtil.getDate(startTime, DateUtil.f2).getTime();
    }

    // 获取结束毫秒数
    if (CommonUtil.isEmpty(endTime)) {
    end = DateUtil.getCurrentMonthEndTime();
    } else {
    end = DateUtil.getDate(endTime, DateUtil.f2).getTime();
    }

    // 查询小组活动数量
    List<KpiItem> list = activityMapper.activityNum(start, end);
    for (KpiItem kpiItem : list) {
    // 获取小组长姓名
    String nickName = findTeamName(kpiItem.getTeamId());
    kpiItem.setNickName(nickName);
    }
    return list;
    }

    /**
    * 查询统计小组的活动人数及购买比例
    */
    @Override
    public List<KpiItem> findActBuyStatistics(String startTime, String endTime) {

    long start = 0, end = 0;

    // 获取起始毫秒数
    if (CommonUtil.isEmpty(startTime)) {
    start = DateUtil.getCurrentMonthStartTime();
    } else {
    start = DateUtil.getDate(startTime, DateUtil.f2).getTime();
    }

    // 获取结束毫秒数
    if (CommonUtil.isEmpty(endTime)) {
    end = DateUtil.getCurrentMonthEndTime();
    } else {
    end = DateUtil.getDate(endTime, DateUtil.f2).getTime();
    }

    // 查询小组活动人数、购买比例
    List<KpiItem> list = activityMapper.selectActStatistics(start, end);
    for (KpiItem kpiItem : list) {

    // 获取购买比例
    double buyPercent = kpiItem.getBuyRatio();
    NumberFormat nf = NumberFormat.getPercentInstance();// 转换百分数
    nf.setMinimumFractionDigits(2);// 设置保留小数位
    nf.setRoundingMode(RoundingMode.HALF_UP); // 设置舍入模式
    String buyRatio = nf.format(buyPercent);
    kpiItem.setVigGrade(buyRatio);

    // 获取小组长姓名
    String nickName = findTeamName(kpiItem.getTeamId());
    kpiItem.setNickName(nickName);
    }

    return list;
    }

    /**
    * 查询公司内部人员KPI动态量统计
    */
    @Override
    public List<KpiItem> findKpiVigourStatistics(String startTime, String endTime) {
    long start = 0, end = 0;

    // 设置当月起始时间
    if (CommonUtil.isEmpty(startTime)) {
    start = DateUtil.getCurrentMonthStartTime();
    } else {
    start = DateUtil.getDate(startTime, DateUtil.f2).getTime();
    }

    // 设置当月结束时间
    if (CommonUtil.isEmpty(endTime)) {
    end = DateUtil.getCurrentMonthEndTime();
    } else {
    end = DateUtil.getDate(endTime, DateUtil.f2).getTime();
    }

    // 查询用户id,name
    List<KpiItem> list = teamUserMapper.selectKpiStatistics(start, end);
    for (KpiItem kpiItem : list) {

    // 获取用户某段时间的动态量总数
    int vigourCount = countVigourNum(kpiItem.getUserId(), start, end);
    kpiItem.setVigCount(vigourCount);

    // 查询用户某个时间段的回复动态评论数
    int vigourComment = countVigourComment(kpiItem.getUserId(), start, end);
    kpiItem.setVigComment(vigourComment);

    }
    return list;
    }

    /**
    * 查询用户某个月的动态量
    */
    private int countVigourNum(Integer userId, long startTime, long endTime) {

    // 计算用户某个时间段的动态量总数
    int vigourCount = vigourMapper.vigourCount(userId, startTime, endTime);

    return vigourCount;
    }

    /**
    * 查询用户某个时间段的回复动态评论数
    *
    * @param userId
    * 用户ID
    * @param startTime
    * 开始时间
    * @param endTime
    * 结束时间
    * @return
    */
    private int countVigourComment(Integer userId, long startTime, long endTime) {

    // 查询用户某段时间的动态回复量
    int vigourComment = commentMapper.vigourComment(userId, startTime, endTime);

    return vigourComment;
    }

    /**
    * 查询小组发动态的人数
    *
    * @param teamId
    * 小组ID
    * @param startTime
    * 开始时间
    * @param endTime
    * 结束时间
    * @return
    */
    private int countTeamVigourNum(Integer teamId, long startTime, long endTime) {

    int vigourTeamVitalityNum = vigourMapper.countVigourNum(teamId, startTime, endTime);

    return vigourTeamVitalityNum;
    }

    /**
    * 查询某个时间段的小组总人数
    *
    * @param teamId
    * @param startTime
    * @param endTime
    * @return
    */
    private int countTeamNum(Integer teamId, long startTime, long endTime) {
    startTime = 0;
    int vigourTeamNum = vigourMapper.countTeamNum(teamId, startTime, endTime);

    return vigourTeamNum;
    }

    /**
    * 查询统计小组资讯
    */
    @Override
    public List<KpiItem> findKpiInforStatistics(String startTime, String endTime) {
    long start = 0, end = 0;

    // 获取起始毫秒数
    if (CommonUtil.isEmpty(startTime)) {
    start = DateUtil.getCurrentMonthStartTime();
    } else {
    start = DateUtil.getDate(startTime, DateUtil.f2).getTime();
    }

    // 获取结束毫秒数
    if (CommonUtil.isEmpty(endTime)) {
    end = DateUtil.getCurrentMonthEndTime();
    } else {
    end = DateUtil.getDate(endTime, DateUtil.f2).getTime();
    }

    // 查询小组文章信息
    List<KpiItem> list = informationMapper.selectInforNum(start, end);
    for (KpiItem kpiItem : list) {
    System.out.println(kpiItem);
    // 获取小组文章阅读量
    int inforBrowseNum = findInforReadNum(kpiItem.getTeamId(), start, end);
    kpiItem.setInforBrowseNum(inforBrowseNum);

    // 获取小组文章转发量
    int inforShareNum = findInforShareNum(kpiItem.getTeamId(), start, end);
    kpiItem.setInforShareNum(inforShareNum);

    // 获取小组长姓名
    String nickName = findTeamName(kpiItem.getTeamId());
    kpiItem.setNickName(nickName);
    }

    return list;
    }

    /**
    * 根据小组ID查询小组长姓名
    */
    private String findTeamName(int teamId) {
    List<String> teamName = userExtendMapper.selectTeamName(teamId);

    // 转换字符串
    StringBuffer buffer = new StringBuffer();
    for (String names : teamName) {
    buffer.append(names).append(",");
    }
    String nickName = buffer.substring(0, buffer.length() - 1).trim();

    return nickName;
    }

    /**
    * 查询小组文章阅读量
    *
    * @param teamId
    * @param start
    * @param end
    * @return
    */
    private int findInforReadNum(Integer teamId, long start, long end) {

    int inforBrowseNum = informationMapper.selectInforReadNum(teamId, start, end);

    return inforBrowseNum;
    }

    /**
    * 查询小组文章转发量
    *
    * @param teamId
    * @param start
    * @param end
    * @return
    */
    private int findInforShareNum(Integer teamId, long start, long end) {

    int inforBrowseNum = informationMapper.selectInforShareNum(teamId, start, end);

    return inforBrowseNum;
    }

    /**
    * 查询小组每月新增人数
    */
    @Override
    public List<KpiItem> findTeamNumStatistics(String startTime, String endTime) {
    long start = 0, end = 0;

    // 获取起始毫秒数
    if (CommonUtil.isEmpty(startTime)) {
    start = DateUtil.getCurrentMonthStartTime();
    } else {
    start = DateUtil.getDate(startTime, DateUtil.f2).getTime();
    }

    // 获取结束毫秒数
    if (CommonUtil.isEmpty(endTime)) {
    end = DateUtil.getCurrentMonthEndTime();
    } else {
    end = DateUtil.getDate(endTime, DateUtil.f2).getTime();
    }

    List<KpiItem> list = teamUserMapper.selectTeamUserNum(start, end);
    for (KpiItem kpiItem : list) {

    // 获取小组长姓名
    String nickName = findTeamName(kpiItem.getTeamId());
    kpiItem.setNickName(nickName);
    }
    return list;
    }

    /**
    * 统计KPI小组动态
    */
    @Override
    public List<KpiItem> findTeamVitStatistics(String startTime, String endTime) {
    long start = 0, end = 0;

    // 设置当月起始时间
    if (CommonUtil.isEmpty(startTime)) {
    start = DateUtil.getCurrentMonthStartTime();
    } else {
    start = DateUtil.getDate(startTime, DateUtil.f2).getTime();
    }

    // 设置当月结束时间
    if (CommonUtil.isEmpty(endTime)) {
    end = DateUtil.getCurrentMonthEndTime();
    } else {
    end = DateUtil.getDate(endTime, DateUtil.f2).getTime();
    }

    List<KpiItem> list = teamUserMapper.selectTeamStatistics();
    for (KpiItem kpiItem : list) {

    // 获取小组某段时间的动态量总数
    int vigourCount = countTeamVigNum(kpiItem.getTeamId(), start, end);
    kpiItem.setVigCount(vigourCount);

    // 查询小组某个时间段的回复动态评论数
    int vigourComment = countTeamVigComment(kpiItem.getTeamId(), start, end);
    kpiItem.setVigComment(vigourComment);

    // 查询小组某个时间段发动态的人数
    int vigourTeamVitalityNum = countTeamVigourNum(kpiItem.getTeamId(), start, end);
    kpiItem.setVigVitalityNum(vigourTeamVitalityNum);

    // 查询某个时间段的小组总人数
    int vigourTeamNum = countTeamNum(kpiItem.getTeamId(), start, end);
    kpiItem.setVigTeamNum(vigourTeamNum);

    // 统计小组活跃度
    double percent = (double) vigourTeamVitalityNum / (double) vigourTeamNum;

    // 转换百分数
    NumberFormat nf = NumberFormat.getPercentInstance();
    nf.setMinimumFractionDigits(2);// 设置保留小数位
    nf.setRoundingMode(RoundingMode.HALF_UP); // 设置舍入模式

    String vigourTeamVitality = nf.format(percent);
    kpiItem.setVigVitality(vigourTeamVitality);

    // 获取小组长姓名
    String nickName = findTeamName(kpiItem.getTeamId());
    kpiItem.setNickName(nickName);
    }
    return list;
    }

    /**
    * 查询小组某个月的动态量
    */
    private int countTeamVigNum(Integer teamId, long startTime, long endTime) {

    // 计算用户某个时间段的动态量总数
    int vigourCount = vigourMapper.findTeamVigCount(teamId, startTime, endTime);

    return vigourCount;
    }

    /**
    * 查询小组的动态回复数
    *
    * @param userId
    * @param startTime
    * @param endTime
    * @return
    */
    private int countTeamVigComment(Integer userId, long startTime, long endTime) {

    // 查询用户某段时间的动态回复量
    int vigourComment = commentMapper.findTeamVigComment(userId, startTime, endTime);

    return vigourComment;
    }

    /**
    * KPI統計导出Excel
    */
    @Override
    public String kpiExcel(String startTime, String endTime) {

    String result = "Excel文件导出成功!";
    try {

    // 创建Excel表格
    sheet = createExcel(startTime, endTime);

    // 导出小组每月新增人数
    writeTeamUserAdd(startTime, endTime, sheet);

    // 导出小组每月活动数量
    writeTeamAct(startTime, endTime, sheet);

    // 导出小组活动统计购买比例
    writeTeamActBuy(startTime, endTime, sheet);

    // 导出小组资讯统计
    writeTeamInfor(startTime, endTime, sheet);

    // 导出小组动态统计
    writeTeamVit(startTime, endTime, sheet);

    // 导出公司人员动态统计
    writeKpiVigour(startTime, endTime, sheet);

    // 显示表格线
    sheet.getSettings().setShowGridLines(true);

    workbook.write();// 写入Excel

    System.out.println("导出成功,关闭输出流");

    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    if (workbook != null) {
    workbook.close();// 关闭工作簿
    }
    os.close();// 关闭输出流
    } catch (WriteException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }

    }

    return result;

    }

    /**
    * 创建excel文件
    *
    * @param startTime
    * @param endTime
    * @return
    * @throws Exception
    */
    private WritableSheet createExcel(String startTime, String endTime) throws Exception {

    // 路径
    String url = "C:/Users/Administrator/Desktop/Kpi统计" + startTime + "至" + endTime + ".xls";

    // 创建输出流
    os = new FileOutputStream(url);

    // 创建工作簿
    workbook = Workbook.createWorkbook(os);

    // 创建工作表
    sheet = workbook.createSheet("小组KPI统计", 0);

    // 设置每一行的宽度
    sheet.setColumnView(0, 25);
    sheet.setColumnView(1, 25);
    sheet.setColumnView(2, 20);
    sheet.setColumnView(3, 20);
    sheet.setColumnView(4, 20);
    sheet.setColumnView(5, 20);
    sheet.setColumnView(6, 20);

    // 设置单元格字体
    NormalFont = new WritableFont(WritableFont.ARIAL, 10);
    BoldFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD);

    // 字体样式: 用于正文居左
    wcf_left = new WritableCellFormat(NormalFont);
    wcf_left.setBorder(Border.ALL, BorderLineStyle.THIN);
    wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE);
    wcf_left.setAlignment(Alignment.LEFT);
    wcf_left.setWrap(false);

    // 字体样式: 用于正文居中
    wcf_center = new WritableCellFormat(BoldFont);
    wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN);
    wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE);
    wcf_center.setAlignment(Alignment.CENTRE);
    wcf_center.setWrap(false);

    // 大标题
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月");
    sheet.mergeCells(0, 0, 7, 0);
    sheet.addCell(new Label(0, 0, simpleDateFormat.format(new Date()) + "KPI统计表", wcf_center));

    return sheet;
    }

    /**
    * 导出小组每月人数增长统计
    *
    * @param startTime
    * @param endTime
    * @param sheet
    * @throws Exception
    */
    private void writeTeamUserAdd(String startTime, String endTime, WritableSheet sheet) throws Exception {

    // 小标题
    sheet.addCell(new Label(0, 1, "统计小组每月新增人数", wcf_center)); // 第2列 第2格
    sheet.addCell(new Label(0, 2, "小组名称", wcf_center)); // 第1列第2格
    sheet.addCell(new Label(1, 2, "小组长", wcf_center)); // 第2列第3格
    sheet.addCell(new Label(2, 2, "小组当月新增人数", wcf_center)); // 第3列第3格

    // 查询小组每月人数增长统计导出
    List<KpiItem> numList = findTeamNumStatistics(startTime, endTime);

    // 正文
    for (int i = 0; i < numList.size(); i++) {
    KpiItem kpiItem = numList.get(i);
    sheet.addCell(new Label(0, i + 3, kpiItem.getTitle().toString(), wcf_left));// 第1列第3格
    sheet.addCell(new Label(1, i + 3, kpiItem.getNickName().toString(), wcf_left));// 第2列第3格
    sheet.addCell(new Label(2, i + 3, kpiItem.getNum().toString(), wcf_center));// 第3列第3格
    }
    }

    /**
    * 导出小组每月活动数量
    *
    * @param startTime
    * @param endTime
    * @param sheet
    * @throws Exception
    */
    private void writeTeamAct(String startTime, String endTime, WritableSheet sheet) throws Exception {

    // 小标题
    List<KpiItem> numList = findTeamNumStatistics(startTime, endTime);
    sheet.addCell(new Label(0, numList.size() + 5, "统计小组每月活动数量", wcf_center));
    sheet.addCell(new Label(0, numList.size() + 6, "小组名称", wcf_center));
    sheet.addCell(new Label(1, numList.size() + 6, "小组长", wcf_center));
    sheet.addCell(new Label(2, numList.size() + 6, "小组活动数量", wcf_center));

    // 查询小组活动数量统计导出
    List<KpiItem> actList = findActStatistics(startTime, endTime);

    // 正文
    for (int i = 0; i < actList.size(); i++) {
    KpiItem kpiItem = actList.get(i);
    sheet.addCell(new Label(0, i + numList.size() + 7, kpiItem.getTitle().toString(), wcf_left));
    sheet.addCell(new Label(1, i + numList.size() + 7, kpiItem.getNickName().toString(), wcf_left));
    sheet.addCell(new Label(2, i + numList.size() + 7, kpiItem.getActTeamNum().toString(), wcf_center));
    }
    }

    /**
    * 导出小组活动统计购买比例
    *
    * @param startTime
    * @param endTime
    * @param sheet
    * @throws Exception
    */
    private void writeTeamActBuy(String startTime, String endTime, WritableSheet sheet) throws Exception {

    List<KpiItem> numList = findTeamNumStatistics(startTime, endTime);
    List<KpiItem> actList = findActStatistics(startTime, endTime);

    // 小标题
    int row = numList.size() + actList.size();
    sheet.addCell(new Label(0, row + 9, "小组活动统计", wcf_center));
    sheet.addCell(new Label(0, row + 10, "小组名称", wcf_center));
    sheet.addCell(new Label(1, row + 10, "小组长", wcf_center));
    sheet.addCell(new Label(2, row + 10, "小组活动名称", wcf_center));
    sheet.addCell(new Label(3, row + 10, "活动参加人数", wcf_center));
    sheet.addCell(new Label(4, row + 10, "活动购买人数", wcf_center));
    sheet.addCell(new Label(5, row + 10, "活动购买比例", wcf_center));

    // 查询小组活动人数及购买比例统计导出
    List<KpiItem> actBuyList = findActBuyStatistics(startTime, endTime);

    // 正文
    for (int i = 0; i < actBuyList.size(); i++) {
    KpiItem kpiItem = actBuyList.get(i);
    sheet.addCell(new Label(0, i + row + 11, kpiItem.getTitle().toString(), wcf_left));
    sheet.addCell(new Label(1, i + row + 11, kpiItem.getNickName().toString(), wcf_left));
    sheet.addCell(new Label(2, i + row + 11, kpiItem.getVigName().toString(), wcf_center));
    sheet.addCell(new Label(3, i + row + 11, kpiItem.getVigNum().toString(), wcf_center));
    sheet.addCell(new Label(4, i + row + 11, kpiItem.getBuyNum().toString(), wcf_center));
    sheet.addCell(new Label(5, i + row + 11, kpiItem.getVigGrade().toString(), wcf_center));
    }
    }

    /**
    * 导出小组资讯统计
    *
    * @param startTime
    * @param endTime
    * @param sheet
    * @throws Exception
    */
    private void writeTeamInfor(String startTime, String endTime, WritableSheet sheet) throws Exception {

    List<KpiItem> numList = findTeamNumStatistics(startTime, endTime);
    List<KpiItem> actList = findActStatistics(startTime, endTime);
    List<KpiItem> actBuyList = findActBuyStatistics(startTime, endTime);

    // 小标题
    int row = numList.size() + actList.size() + actBuyList.size();
    sheet.addCell(new Label(0, row + 13, "小组资讯统计", wcf_center));
    sheet.addCell(new Label(0, row + 14, "小组名称", wcf_center));
    sheet.addCell(new Label(1, row + 14, "小组长", wcf_center));
    sheet.addCell(new Label(2, row + 14, "文章数量", wcf_center));
    sheet.addCell(new Label(3, row + 14, "文章阅读数量", wcf_center));
    sheet.addCell(new Label(4, row + 14, "文章转发量", wcf_center));

    // 查询小组资讯统计导出
    List<KpiItem> inforList = findKpiInforStatistics(startTime, endTime);

    // 正文
    for (int i = 0; i < inforList.size(); i++) {
    KpiItem kpiItem = inforList.get(i);
    sheet.addCell(new Label(0, i + row + 15, kpiItem.getTitle().toString(), wcf_left));
    sheet.addCell(new Label(1, i + row + 15, kpiItem.getNickName().toString(), wcf_left));
    sheet.addCell(new Label(2, i + row + 15, kpiItem.getInforNum().toString(), wcf_center));
    sheet.addCell(new Label(3, i + row + 15, kpiItem.getInforBrowseNum().toString(), wcf_center));
    sheet.addCell(new Label(4, i + row + 15, kpiItem.getInforShareNum().toString(), wcf_center));
    }
    }

    /**
    * 导出小组动态统计
    *
    * @param startTime
    * @param endTime
    * @param sheet
    * @throws Exception
    */
    private void writeTeamVit(String startTime, String endTime, WritableSheet sheet) throws Exception {

    List<KpiItem> numList = findTeamNumStatistics(startTime, endTime);
    List<KpiItem> actList = findActStatistics(startTime, endTime);
    List<KpiItem> actBuyList = findActBuyStatistics(startTime, endTime);
    List<KpiItem> inforList = findKpiInforStatistics(startTime, endTime);

    // 小标题
    int row = numList.size() + actList.size() + actBuyList.size() + inforList.size();
    sheet.addCell(new Label(0, row + 17, "小组动态统计", wcf_center));
    sheet.addCell(new Label(0, row + 18, "小组名称", wcf_center));
    sheet.addCell(new Label(1, row + 18, "小组长", wcf_center));
    sheet.addCell(new Label(2, row + 18, "小组发动态总数", wcf_center));
    sheet.addCell(new Label(3, row + 18, "小组回复动态总数", wcf_center));
    sheet.addCell(new Label(4, row + 18, "小组动态人数", wcf_center));
    sheet.addCell(new Label(5, row + 18, "小组总人数", wcf_center));
    sheet.addCell(new Label(6, row + 18, "小组活跃度", wcf_center));

    // 查询小组动态统计导出
    List<KpiItem> vigList = findTeamVitStatistics(startTime, endTime);

    // 正文
    for (int i = 0; i < vigList.size(); i++) {
    KpiItem kpiItem = vigList.get(i);
    sheet.addCell(new Label(0, i + row + 19, kpiItem.getTitle().toString(), wcf_left));
    sheet.addCell(new Label(1, i + row + 19, kpiItem.getNickName().toString(), wcf_left));
    sheet.addCell(new Label(2, i + row + 19, kpiItem.getVigCount().toString(), wcf_center));
    sheet.addCell(new Label(3, i + row + 19, kpiItem.getVigComment().toString(), wcf_center));
    sheet.addCell(new Label(4, i + row + 19, kpiItem.getVigVitalityNum().toString(), wcf_center));
    sheet.addCell(new Label(5, i + row + 19, kpiItem.getVigTeamNum().toString(), wcf_center));
    sheet.addCell(new Label(6, i + row + 19, kpiItem.getVigVitality().toString(), wcf_center));
    }

    }

    /**
    * 导出公司人员动态统计
    *
    * @param startTime
    * @param endTime
    * @param sheet
    * @throws Exception
    */
    private void writeKpiVigour(String startTime, String endTime, WritableSheet sheet) throws Exception {

    List<KpiItem> numList = findTeamNumStatistics(startTime, endTime);
    List<KpiItem> actList = findActStatistics(startTime, endTime);
    List<KpiItem> actBuyList = findActBuyStatistics(startTime, endTime);
    List<KpiItem> inforList = findKpiInforStatistics(startTime, endTime);
    List<KpiItem> vigList = findTeamVitStatistics(startTime, endTime);

    // 小标题
    int row = numList.size() + actList.size() + actBuyList.size() + inforList.size() + vigList.size();
    sheet.addCell(new Label(0, row + 21, "公司人员动态统计", wcf_center));
    sheet.addCell(new Label(0, row + 22, "姓名", wcf_center));
    sheet.addCell(new Label(1, row + 22, "发动态数", wcf_center));
    sheet.addCell(new Label(2, row + 22, "回复动态评论数", wcf_center));

    // 查询小组动态统计导出
    List<KpiItem> vigourList = findKpiVigourStatistics(startTime, endTime);

    // 正文
    for (int i = 0; i < vigourList.size(); i++) {
    KpiItem kpiItem = vigourList.get(i);
    sheet.addCell(new Label(0, i + row + 23, kpiItem.getNickName().toString(), wcf_left));
    sheet.addCell(new Label(1, i + row + 23, kpiItem.getVigCount().toString(), wcf_center));
    sheet.addCell(new Label(2, i + row + 23, kpiItem.getVigComment().toString(), wcf_center));
    }
    }

    }

  • 相关阅读:
    Unity小地图Map
    DoTween扩展Transform
    Android开发笔记1.2
    Android开发笔记1.1.1
    Unity向量夹角
    使用vi
    MIPS 两个数的和(输入,计算,输出)
    python openpyxl 读取excel表操作
    javaI/O文件,读操作
    试用git遇见问题
  • 原文地址:https://www.cnblogs.com/zslslir/p/6688207.html
Copyright © 2020-2023  润新知