package com.cabletech.business.ah.familyband.dao; import java.util.Date; import java.util.List; import java.util.Map; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Repository; import com.cabletech.baseinfo.business.entity.UserInfo; import com.cabletech.business.ah.familyband.model.AhFamilyBandTrouble; import com.cabletech.common.base.BaseDao; import com.cabletech.common.util.DateUtil; /** * * 家庭宽带巡检隐患登记表DAO * @author wj * */ @Repository public class AhFamilyBandTroubleDao extends BaseDao<AhFamilyBandTrouble, String>{ /** * * 根据巡检记录查找 隐患 * @param parameters 参数封装 * @return List * */ public List<Map<String,Object>> searchTroublesByRecod(Map<String,Object> parameters){ String recodeId = (String) parameters.get("recodeId"); String status = (String) parameters.get("status"); StringBuffer sb = new StringBuffer(); sb.append(" select * from ah_familyband_trouble t where t.recodeid = '"+recodeId+"' "); if(StringUtils.isNotBlank(status)){ sb.append(" and t.status = '"+status+"' "); } return this.jdbcTemplate.queryForList(sb.toString()); } /** * * 生成序号 * @param userInfo 用户 * @return String * */ public String getOrderNumber(UserInfo userInfo){ StringBuffer sb = new StringBuffer(); StringBuffer pybf = new StringBuffer(); char[] arr = userInfo.getRegionName().toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < arr.length; i++) { if (arr[i] > 128) { try { String[] _t = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat); if (_t != null) { pybf.append(_t[0].charAt(0)); } } catch (BadHanyuPinyinOutputFormatCombination e) { logger.error(e); } } else { pybf.append(arr[i]); } } String region = (pybf.toString().trim()).toUpperCase(); String day = DateUtil.DateToString(new Date(), "yyyyMMdd"); String orderNumberPre = day+region; sb.append(" select count(*)+1 as ordernum from ah_familyband_trouble t where t.ordernumber like '"+orderNumberPre+"%' "); int index = this.jdbcTemplate.queryForInt(sb.toString()); String order = String.valueOf(index); int pre = 4-order.length(); for(int i = 0;i<pre;i++){ order ="0"+order; } return orderNumberPre+order; } }