LevelRole.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package com.yihu.wlyy.job.elt.role;
  2. import com.yihu.wlyy.entity.address.Town;
  3. import com.yihu.wlyy.entity.doctor.team.admin.AdminTeam;
  4. import com.yihu.wlyy.entity.organization.Hospital;
  5. import com.yihu.wlyy.job.Constant;
  6. import com.yihu.wlyy.job.elt.base.ETLModel;
  7. import com.yihu.wlyy.repository.address.TownDao;
  8. import com.yihu.wlyy.repository.consult.ConsultTeamDao;
  9. import com.yihu.wlyy.repository.doctor.DoctorAdminTeamDao;
  10. import com.yihu.wlyy.repository.organization.HospitalDao;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.jdbc.core.JdbcTemplate;
  13. import org.springframework.stereotype.Component;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import java.util.ArrayList;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. /**
  20. * Created by Administrator on 2016.10.09.
  21. * 机构等级分组
  22. */
  23. @Component
  24. @Transactional
  25. public class LevelRole {
  26. /**
  27. * 返回的Listmap中 list第一個是 团队 第二个是机构 第三个是区 第四个市
  28. * @param models
  29. * @return
  30. * @throws Exception
  31. */
  32. public List<Map<String, List<ETLModel>>> elt(List<ETLModel> models) throws Exception{
  33. List<Map<String, List<ETLModel>>> returnMapsList=new ArrayList<Map<String, List<ETLModel>>>();
  34. Map<String, List<ETLModel>> tjCityMap = new HashMap<String, List<ETLModel>>();//市级的统计map key 是区行政区划350200
  35. Map<String, List<ETLModel>> tjTownMap = new HashMap<String, List<ETLModel>>();//区级的统计map key 是区行政区划350206
  36. Map<String, List<ETLModel>> tjOrgMap = new HashMap<String, List<ETLModel>>();//机构的统计map key 是机构的code
  37. Map<String, List<ETLModel>> tjAdminTeamMap = new HashMap<String, List<ETLModel>>();//团队级的统计map 一 key 团队id
  38. for(ETLModel etlModel:models){
  39. //统计市市
  40. compute(tjCityMap, etlModel.getCity(),etlModel);
  41. //统计市区
  42. compute(tjTownMap, etlModel.getTown(),etlModel);
  43. //统计市机构
  44. compute(tjOrgMap, etlModel.getHospital(),etlModel);
  45. //统计团队
  46. compute(tjAdminTeamMap, etlModel.getAdminTeam(),etlModel);
  47. }
  48. returnMapsList.add(0,tjAdminTeamMap);
  49. returnMapsList.add(1,tjOrgMap);
  50. returnMapsList.add(2,tjTownMap);
  51. returnMapsList.add(3,tjCityMap);
  52. return returnMapsList;
  53. }
  54. /**
  55. * 统计算法
  56. * @param eltMap
  57. * @param key
  58. * @param etlModel
  59. */
  60. private void compute(Map<String, List<ETLModel>> eltMap,String key,ETLModel etlModel) {
  61. if (eltMap.containsKey(key)) {
  62. List<ETLModel> etlModels=eltMap.get(key);
  63. etlModels.add(etlModel);
  64. } else {
  65. List<ETLModel> etlModels=new ArrayList<ETLModel>();
  66. etlModels.add(etlModel);
  67. eltMap.put(key,etlModels);
  68. }
  69. }
  70. }