package com.cabletech.business.ah.rating.service.impl; import java.util.Date; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.lang.ArrayUtils; 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.baseinfo.business.entity.UserInfo; import com.cabletech.business.ah.rating.dao.RatingFormDao; import com.cabletech.business.ah.rating.model.RatingForm; import com.cabletech.business.ah.rating.model.RatingFormItemTemp; import com.cabletech.business.ah.rating.service.RatingFormItemService; import com.cabletech.business.ah.rating.service.RatingFormService; import com.cabletech.business.base.condition.ConditionGenerate; import com.cabletech.business.base.condition.QueryParameter; import com.cabletech.common.base.BaseDao; import com.cabletech.common.base.BaseServiceImpl; import com.cabletech.common.util.Page; /** * 考核表业务服务接口实现 * * @author 杨隽 2012-02-26 创建 * */ @Service public class RatingFormServiceImpl extends BaseServiceImpl<RatingForm, String> implements RatingFormService { @Resource(name = "ratingFormDao") private RatingFormDao ratingFormDao; @Resource(name = "ratingFormItemServiceImpl") private RatingFormItemService ratingFormItemService; @Resource(name = "emptyConditionGenerate") private ConditionGenerate conditionGenerate; /** * 保存巡检项和巡检子项信息 * * @param parameterMap * Map<String,Object> 传入的参数 * @param oneCellTemp * PatrolItemTemp 巡检项导入数据信息 * @throws Exception */ @Override @Transactional public void save(Map<String, Object> parameterMap, RatingFormItemTemp oneCellTemp) throws Exception { UserInfo user = (UserInfo) parameterMap.get("user"); RatingForm ratingForm = (RatingForm) parameterMap.get("ratingForm"); ratingForm.setCreater(user.getPersonId()); String itemId = getExistItemId(ratingForm); if (StringUtils.isBlank(itemId)) { itemId = saveOneItem(ratingForm); } ratingFormItemService.save(oneCellTemp, itemId); } @Override @Transactional public Page queryPage(RatingForm ratingForm, Page page) { conditionGenerate.setQuerySql(new QueryParameter()); conditionGenerate.setPage(page); return ratingFormDao.queryPageForSql(conditionGenerate); } @Override @Transactional public void deleteRatingForm(String[] id) { if (ArrayUtils.isEmpty(id)) { return; } for (int i = 0; i < id.length; i++) { RatingForm ratingForm = ratingFormDao.get(id[i]); ratingFormDao.delete(ratingForm); ratingFormItemService.delete(ratingForm.getId()); } } @Override @Transactional public RatingForm view(String id) { if (StringUtils.isBlank(id)) { return new RatingForm(); } RatingForm ratingForm = ratingFormDao.get(id); return ratingForm; } /** * 根据巡检项导入数据信息(巡检项名称、区域编号和专业类型)查询巡检项编号 * * @param oneCell * PatrolItemTemp 巡检项导入数据信息(巡检项名称、区域编号和专业类型) * @return String 巡检项编号 */ private String getExistItemId(RatingForm oneCell) { List<RatingForm> itemList = ratingFormDao.getRatingFormList(oneCell); String itemId = ""; if (!CollectionUtils.isEmpty(itemList)) { itemId = itemList.get(0).getId(); } return itemId; } /** * 保存单个巡检项信息 * * @param oneCell * PatrolItemTemp 巡检项导入数据信息 * @return String 巡检项编号 * @throws Exception */ private String saveOneItem(RatingForm oneCell) throws Exception { RatingForm item = new RatingForm(); BeanUtils.copyProperties(item, oneCell); item.setCreateTime(new Date()); item.setUseState(RatingForm.ITEM_START_USING_STATE); ratingFormDao.save(item); String itemId = item.getId(); return itemId; } @Override protected BaseDao<RatingForm, String> getBaseDao() { return ratingFormDao; } }