package com.cabletech.business.assess.service.impl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.cabletech.baseinfo.base.BaseUtil; import com.cabletech.business.assess.dao.AssessTemplateContentDao; import com.cabletech.business.assess.model.AssessTemplateContent; import com.cabletech.business.assess.service.AssessTemplateContentService; import com.cabletech.common.base.BaseDao; import com.cabletech.common.base.BaseServiceImpl; /** * 考核模版内容服务 * * @author zhaobi 2012-7-31 创建 */ @Service public class AssessTemplateContentServiceImpl extends BaseServiceImpl<AssessTemplateContent, String> implements AssessTemplateContentService { @Resource(name = "assessTemplateContentDao") private AssessTemplateContentDao dao; @Override protected BaseDao<AssessTemplateContent, String> getBaseDao() { // TODO Auto-generated method stub return dao; } /* * (non-Javadoc) * * @see com.cabletech.business.assess.service.AssessTemplateContentService# * getTemplateContent * (com.cabletech.business.assess.model.AssessTemplateContent) */ @Override public Map<String, Object> getTemplateContent(AssessTemplateContent content) { // TODO Auto-generated method stub return dao.getTemplateContent(content); } /* * (non-Javadoc) * * @see com.cabletech.business.assess.service.AssessTemplateContentService# * getTableItemList(java.lang.String) */ @Override @Transactional(readOnly = true) public List<Map<String, Object>> getTableItemList(Map<String, Object> map) { int itemMaxcount = getMaxTableItem(map); List<Map<String, Object>> itemlist = getTableItemContent(map); return processList(itemMaxcount, itemlist); } @Override public List<Map<String, Object>> processList(int itemMaxcount, List<Map<String, Object>> itemlist) { List<Map<String, Object>> newlist = new ArrayList<Map<String, Object>>(); if (itemlist != null & itemlist.size() > 0) { for (Map<String, Object> item : itemlist) { String[] itemSplit = item.get("ITEMPATH").toString().split(">"); int itemlen = itemSplit.length; List<String> itemnamelist = new ArrayList<String>(); for (int i = 1; i < itemlen; i++) { item.put("ITEM_NAME" + i, itemSplit[i]); itemnamelist.add(itemSplit[i]); } for (int j = itemlen; j <= itemMaxcount; j++) { String lastItem = "ITEM_NAME" + Integer.toString(itemlen - 1); item.put("ITEM_NAME" + (j), item.get(lastItem)); //修改:wangjie 此处有时候会报空指针 //itemnamelist.add(item.get(lastItem).toString()); itemnamelist.add((String)item.get(lastItem)); } item.put("ITEMNAMELIST", itemnamelist); newlist.add(item); } } return newlist; } /** * 获取最大考核项目 * * @param map * Map<String,Object> * @return */ @Transactional(readOnly = true) public int getMaxTableItem(Map<String, Object> map) { return dao.getMaxLvItem(map); } /** * 获取模块内容 * * @param map * Map<String,Object> * @return */ private List<Map<String, Object>> getTableItemContent( Map<String, Object> map) { return dao.getTableItemContent(map); } }