package com.cabletech.business.wplan.patrolitem.service.impl; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.beanutils.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.cabletech.business.base.condition.ConditionGenerate; import com.cabletech.business.wplan.patrolitem.condition.parameter.ItemQueryParameter; import com.cabletech.business.wplan.patrolitem.dao.PatrolSubItemDao; import com.cabletech.business.wplan.patrolitem.model.PatrolItem; import com.cabletech.business.wplan.patrolitem.model.PatrolItemTemp; import com.cabletech.business.wplan.patrolitem.model.PatrolSubItem; import com.cabletech.business.wplan.patrolitem.service.PatrolSubItemService; import com.cabletech.common.base.BaseDao; import com.cabletech.common.base.BaseServiceImpl; import com.cabletech.common.util.Page; /** * 巡检子项业务服务接口实现 * * @author 杨隽 2012-02-14 创建 * @author 杨隽 2012-02-15 添加queryList方法和exportData方法 * @author 杨隽 2012-02-24 修改exportData()方法 * @author 杨隽 2012-05-17 去除无用的导入、局部变量和类成员 * */ @Service public class PatrolSubItemServiceImpl extends BaseServiceImpl<PatrolSubItem, String> implements PatrolSubItemService { @Resource(name = "patrolSubItemDao") private PatrolSubItemDao patrolSubItemDao; @Resource(name = "itemConditionGenerate") private ConditionGenerate conditionGenerate; /** * 执行巡检项的查询操作并进行后台分页 * * @param parameter * ItemQueryParameter 查询条件参数 * @return List<Map<String, Object>> 查询后的巡检项列表 */ @Transactional(readOnly = true) public Page<Map<String, Object>> queryPage(ItemQueryParameter parameter) { setQueryParameter(parameter); return patrolSubItemDao.queryPageForSql(conditionGenerate); } /** * 执行巡检子项的查询操作 * * @param parameter * ItemQueryParameter 查询条件参数 * @return Page<Map<String, Object>> 查询后的巡检项列表 */ @Override @Transactional(readOnly = true) public List<Map<String, Object>> queryList(ItemQueryParameter parameter) { // TODO Auto-generated method stub setQueryParameter(parameter); return patrolSubItemDao.queryListForSql(conditionGenerate); } /** * 保存巡检子项信息 * * @param itemId * String 巡检项编号 * @param oneCell * PatrolItemTemp 巡检项导入数据信息 * @throws Exception */ @Transactional public void save(PatrolItemTemp oneCell, String itemId) throws Exception { PatrolSubItem sub = new PatrolSubItem(); BeanUtils.copyProperties(sub, oneCell); sub.setItemId(itemId); sub.setState(PatrolItem.ITEM_START_USING_STATE); patrolSubItemDao.save(sub); } /** * 作废巡检项 * * @param ids * String[] 要作废的巡检项id数组 */ @Transactional public void deleteLogic(String[] ids) { String itemIds = getItemIds(ids); patrolSubItemDao.deleteLogic(itemIds); } /** * 启用巡检项 * * @param ids * String[] 要启用的巡检项id数组 */ @Transactional public void startUsing(String[] ids) { String itemIds = getItemIds(ids); patrolSubItemDao.startUsing(itemIds); } /** * 将巡检项数组编号拼接成巡检项编号字串 * * @param ids * String[] 巡检项数组编号 * @return String 巡检项编号字串 */ private String getItemIds(String[] ids) { String itemIds = ""; for (int i = 0; i < ids.length; i++) { if (i > 0) { itemIds = itemIds + ","; } itemIds = itemIds + "'" + ids[i] + "'"; } return itemIds; } /** * 设置条件生成器的查询条件参数和分页参数 * * @param parameter * ItemQueryParameter 查询条件参数 */ private void setQueryParameter(ItemQueryParameter parameter) { ItemQueryParameter queryParameter = new ItemQueryParameter(); try { BeanUtils.copyProperties(queryParameter, parameter); } catch (Exception ex) { } conditionGenerate.setQuerySql(queryParameter); conditionGenerate.setPage(parameter.getPage()); } @Override protected BaseDao<PatrolSubItem, String> getBaseDao() { // TODO Auto-generated method stub return patrolSubItemDao; } }