package com.yihu.wlyy.job.elt.role; import com.yihu.wlyy.entity.address.Town; import com.yihu.wlyy.entity.doctor.team.admin.AdminTeam; import com.yihu.wlyy.entity.organization.Hospital; import com.yihu.wlyy.job.Constant; import com.yihu.wlyy.job.elt.base.ETLModel; import com.yihu.wlyy.repository.address.TownDao; import com.yihu.wlyy.repository.consult.ConsultTeamDao; import com.yihu.wlyy.repository.doctor.DoctorAdminTeamDao; import com.yihu.wlyy.repository.organization.HospitalDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by Administrator on 2016.10.09. * 机构等级分组 */ @Component @Transactional public class LevelRole { /** * 返回的Listmap中 list第一個是 团队 第二个是机构 第三个是区 第四个市 * @param models * @return * @throws Exception */ public List>> elt(List models) throws Exception{ List>> returnMapsList=new ArrayList>>(); Map> tjCityMap = new HashMap>();//市级的统计map key 是区行政区划350200 Map> tjTownMap = new HashMap>();//区级的统计map key 是区行政区划350206 Map> tjOrgMap = new HashMap>();//机构的统计map key 是机构的code Map> tjAdminTeamMap = new HashMap>();//团队级的统计map 一 key 团队id for(ETLModel etlModel:models){ //统计市市 compute(tjCityMap, etlModel.getCity(),etlModel); //统计市区 compute(tjTownMap, etlModel.getTown(),etlModel); //统计市机构 compute(tjOrgMap, etlModel.getHospital(),etlModel); //统计团队 compute(tjAdminTeamMap, etlModel.getAdminTeam(),etlModel); } returnMapsList.add(0,tjAdminTeamMap); returnMapsList.add(1,tjOrgMap); returnMapsList.add(2,tjTownMap); returnMapsList.add(3,tjCityMap); return returnMapsList; } /** * 统计算法 * @param eltMap * @param key * @param etlModel */ private void compute(Map> eltMap,String key,ETLModel etlModel) { if (eltMap.containsKey(key)) { List etlModels=eltMap.get(key); etlModels.add(etlModel); } else { List etlModels=new ArrayList(); etlModels.add(etlModel); eltMap.put(key,etlModels); } } }