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.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import com.cabletech.business.wplan.patrolitem.dao.PatrolItemDao;
import com.cabletech.business.wplan.patrolitem.model.PatrolItem;
import com.cabletech.business.wplan.patrolitem.model.PatrolItemTemp;
import com.cabletech.business.wplan.patrolitem.service.PatrolItemService;
import com.cabletech.business.wplan.patrolitem.service.PatrolSubItemService;
import com.cabletech.common.base.BaseDao;
import com.cabletech.common.base.BaseServiceImpl;
/**
* 巡检项业务服务接口实现
*
* @author wangjie
* @author 杨隽 2011-10-25 添加导入巡检项目的“值域范围”和“默认值”字段
* @author 杨隽 2011-10-25 添加启用巡检项目、修改逻辑删除为作废,废弃物理删除
* @author 杨隽 2012-02-13 分离巡检项导入业务和巡检项基本操作业务
* @author 杨隽 2012-02-14 重构query方法为queryForList方法
* @author 杨隽 2012-02-14 添加save方法并去除queryForList、deleteLogic、startUsing方法
*
*/
@Service
public class PatrolItemServiceImpl extends BaseServiceImpl<PatrolItem, String>
implements PatrolItemService {
@Resource(name = "patrolItemDao")
private PatrolItemDao patrolItemDao;
@Resource(name = "patrolSubItemServiceImpl")
private PatrolSubItemService patrolSubItemService;
/**
* 保存巡检项和巡检子项信息
*
* @param parameterMap
* Map<String,String> 传入的参数
* @param oneCellTemp
* PatrolItemTemp 巡检项导入数据信息
* @throws Exception
*/
@Override
@Transactional
public void save(Map<String, String> parameterMap,
PatrolItemTemp oneCellTemp) throws Exception {
// TODO Auto-generated method stub
PatrolItemTemp oneCell = new PatrolItemTemp();
BeanUtils.copyProperties(oneCell, oneCellTemp);
oneCell.setBusinessType(parameterMap.get("business_type"));
oneCell.setRegionId(parameterMap.get("region_id"));
String itemId = getExistItemId(oneCell);
if (StringUtils.isBlank(itemId)) {
itemId = saveOneItem(oneCell);
}
patrolSubItemService.save(oneCell, itemId);
}
/**
* 根据巡检项导入数据信息(巡检项名称、区域编号和专业类型)查询巡检项编号
*
* @param oneCell
* PatrolItemTemp 巡检项导入数据信息(巡检项名称、区域编号和专业类型)
* @return String 巡检项编号
*/
private String getExistItemId(PatrolItemTemp oneCell) {
List<PatrolItem> itemList = patrolItemDao.getPatrolItemList(oneCell);
String itemId = "";
if (!CollectionUtils.isEmpty(itemList)) {
itemId = itemList.get(0).getId();
}
return itemId;
}
/**
* 保存单个巡检项信息
*
* @param oneCell
* PatrolItemTemp 巡检项导入数据信息
* @return String 巡检项编号
* @throws Exception
*/
private String saveOneItem(PatrolItemTemp oneCell) throws Exception {
String itemId;
PatrolItem item = new PatrolItem();
BeanUtils.copyProperties(item, oneCell);
patrolItemDao.save(item);
itemId = item.getId();
return itemId;
}
@Override
protected BaseDao<PatrolItem, String> getBaseDao() {
// TODO Auto-generated method stub
return patrolItemDao;
}
}