package com.cabletech.business.assess.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.cabletech.business.ah.excelreport.exports.ExcelExportUtils;
import com.cabletech.business.assess.dao.AssessYearSummaryDao;
import com.cabletech.business.assess.service.AssessYearSummaryService;
import com.cabletech.business.excel.TableCellData;
import com.cabletech.common.base.BaseDao;
import com.cabletech.common.base.BaseServiceImpl;
/**
* 年考核汇总业务接口实现
*
* @author 杨隽 2012-08-09 创建
*
*/
@Service
@Transactional(readOnly = true)
@SuppressWarnings("all")
public class AssessYearSummaryServiceImpl extends BaseServiceImpl implements
AssessYearSummaryService {
public static final String SUMMARY_TYPE = "summary";
public static final String RANK_TYPE = "rank";
@Resource(name = "assessYearSummaryDao")
private AssessYearSummaryDao assessYearSummaryDao;
@Override
public Map<String, Object> getSummaryScoreDataMap(String yearMonth) {
Map<String, Object> map = new HashMap<String, Object>();
List<Map<String, Object>> tableItemList = assessYearSummaryDao
.getTableItemList(yearMonth);
if (CollectionUtils.isEmpty(tableItemList)) {
return map;
}
int length = tableItemList.size();
String[] rowNum = new String[length];
String[] rowName = new String[length];
for (int i = 0; i < length; i++) {
rowNum[i] = (String) tableItemList.get(i).get("RN");
rowName[i] = (String) tableItemList.get(i).get("ITEM_ID");
}
List<Map<String, Object>> resultList = assessYearSummaryDao
.getYearSummaryDataList(yearMonth, rowNum, rowName);
map.put("tableItemList", tableItemList);
map.put("resultList", resultList);
return map;
}
@Override
public Map<String, Object> getSummaryScoreExcelMap(String yearMonth,
String type) {
Map<String, Object> tableMap = new HashMap<String, Object>();
Map<String, Object> dataMap = getSummaryScoreDataMap(yearMonth);
if (MapUtils.isEmpty(dataMap)) {
return tableMap;
}
List<List<TableCellData>> dataList = new ArrayList<List<TableCellData>>();
List<Map<String, Object>> tableItemList = (List<Map<String, Object>>) dataMap
.get("tableItemList");
List<Map<String, Object>> resultList = (List<Map<String, Object>>) dataMap
.get("resultList");
writeSubjectTr(type, tableItemList, dataList);
if (CollectionUtils.isNotEmpty(resultList)) {
for (int i = 0; i < resultList.size(); i++) {
Map<String, Object> map = resultList.get(i);
List<TableCellData> rowList = new ArrayList<TableCellData>();
int colIndex = 0;
if (RANK_TYPE.equals(type)) {
TableCellData firstCellData = new TableCellData();
firstCellData.setRowIndex(0);
firstCellData.setColIndex(colIndex);
firstCellData.setCellValue((String) map.get("NO_"));
rowList.add(firstCellData);
colIndex++;
}
TableCellData secondCellData = new TableCellData();
secondCellData.setRowIndex(0);
secondCellData.setColIndex(colIndex);
secondCellData.setCellValue((String) map.get("NAME"));
rowList.add(secondCellData);
colIndex++;
if (CollectionUtils.isNotEmpty(tableItemList)) {
for (int j = 0; j < tableItemList.size(); j++) {
Map<String, Object> itemMap = tableItemList.get(j);
String key = "ITEM_" + itemMap.get("ITEM_ID");
TableCellData cellData = new TableCellData();
cellData.setRowIndex(0);
cellData.setColIndex(colIndex);
cellData.setCellValue((String) map.get(key));
rowList.add(cellData);
colIndex++;
}
}
TableCellData sixthCellData = new TableCellData();
sixthCellData.setRowIndex(0);
sixthCellData.setColIndex(colIndex);
sixthCellData.setCellValue((String) map.get("APPERAL_NUM"));
rowList.add(sixthCellData);
colIndex++;
TableCellData seventhCellData = new TableCellData();
seventhCellData.setRowIndex(0);
seventhCellData.setColIndex(colIndex);
seventhCellData.setCellValue((String) map.get("SUM_"));
rowList.add(seventhCellData);
dataList.add(rowList);
}
}
tableMap.put("dataList", dataList);
return tableMap;
}
/**
* 写入考核导出标题行数据
*
* @param type
* String
* @param tableItemList
* List<Map<String,Object>>
* @param dataList
* List<List<TableCellData>>
*/
private void writeSubjectTr(String type,
List<Map<String, Object>> tableItemList,
List<List<TableCellData>> dataList) {
List<TableCellData> subjectList = new ArrayList<TableCellData>();
int colIndex = 0;
if (RANK_TYPE.equals(type)) {
TableCellData firstCellData = new TableCellData();
firstCellData.setRowIndex(0);
firstCellData.setColIndex(colIndex);
firstCellData.setCellValue("排名");
subjectList.add(firstCellData);
colIndex++;
}
TableCellData secondCellData = new TableCellData();
secondCellData.setRowIndex(0);
secondCellData.setColIndex(colIndex);
secondCellData.setCellValue("代维公司");
subjectList.add(secondCellData);
colIndex++;
if (CollectionUtils.isNotEmpty(tableItemList)) {
for (int i = 0; i < tableItemList.size(); i++) {
TableCellData cellData = new TableCellData();
cellData.setRowIndex(0);
cellData.setColIndex(colIndex);
cellData.setCellValue((String) tableItemList.get(i).get(
"ITEM_NAME"));
subjectList.add(cellData);
colIndex++;
}
}
TableCellData sixthCellData = new TableCellData();
sixthCellData.setRowIndex(0);
sixthCellData.setColIndex(colIndex);
sixthCellData.setCellValue("申诉次数");
subjectList.add(sixthCellData);
colIndex++;
TableCellData seventhCellData = new TableCellData();
seventhCellData.setRowIndex(0);
seventhCellData.setColIndex(colIndex);
seventhCellData.setCellValue("年度考核成绩");
subjectList.add(seventhCellData);
dataList.add(subjectList);
}
@Override
protected BaseDao getBaseDao() {
return null;
}
}