241ce21a476dff2ac48d8e488e72519bc8036fff.svn-base 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. package cn.com.goldenwater.dcproj.service.impl.ducha;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.dao.BisInspAllDao;
  4. import cn.com.goldenwater.dcproj.dao.BisInspAllRlationDao;
  5. import cn.com.goldenwater.dcproj.dto.BisInspAllDto;
  6. import cn.com.goldenwater.dcproj.model.*;
  7. import cn.com.goldenwater.dcproj.param.BisInspAllObjParam;
  8. import cn.com.goldenwater.dcproj.param.BisInspAllParam;
  9. import cn.com.goldenwater.dcproj.param.BisInspAllRlationParam;
  10. import cn.com.goldenwater.dcproj.param.BisInspSelAreaParam;
  11. import cn.com.goldenwater.dcproj.service.*;
  12. import cn.com.goldenwater.dcproj.util.StatisticalUtil;
  13. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  14. import cn.com.goldenwater.dcproj.utils.Builder;
  15. import cn.com.goldenwater.dcproj.utils.RedisOperator;
  16. import com.github.pagehelper.PageHelper;
  17. import com.github.pagehelper.PageInfo;
  18. import org.apache.commons.collections.MapUtils;
  19. import org.apache.commons.lang.StringUtils;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import java.util.ArrayList;
  24. import java.util.List;
  25. import java.util.Map;
  26. import java.util.stream.Collectors;
  27. /**
  28. * @author lune
  29. * @date 2019-2-23
  30. */
  31. @Service
  32. @Transactional
  33. public class BisInspAllServiceImpl extends AbstractCrudService<BisInspAll, BisInspAllParam> implements BisInspAllService {
  34. @Autowired
  35. private BisInspAllDao bisInspAllDao;
  36. @Autowired
  37. private BisInspAllRlationDao bisInspAllRlationDao;
  38. @Autowired
  39. private BisInspAllObjService bisInspAllObjService;
  40. @Autowired
  41. private BisInspSelAreaService bisInspSelAreaService;
  42. @Autowired
  43. private AttAdBaseService attAdBaseService;
  44. @Autowired
  45. private RedisOperator redisOperator;
  46. public BisInspAllServiceImpl(BisInspAllDao bisInspAllDao) {
  47. super(bisInspAllDao);
  48. this.bisInspAllDao = bisInspAllDao;
  49. }
  50. @Autowired
  51. private OlBisInspOrgService inspOrgService;
  52. @Override
  53. public PageInfo<BisInspAllDto> listByMap(Map<String, Object> paramMap) {
  54. String adCode = MapUtils.getString(paramMap, "adCode");
  55. if (StringUtils.isNotBlank(adCode)) {
  56. paramMap.put("adCode", AdLevelUtil.getAddvcd(adCode));
  57. }
  58. PageHelper.startPage(MapUtils.getIntValue(paramMap, "pageNum"), MapUtils.getIntValue(paramMap, "pageSize"));
  59. StatisticalUtil.setDate(paramMap);
  60. List<BisInspAllDto> allList = bisInspAllDao.listByMap(paramMap);
  61. allList.forEach(all -> {
  62. List<Map<String, String>> perMapList = bisInspAllRlationDao.getPersNameById(Builder.of(BisInspAllRlationParam::new)
  63. .with(BisInspAllRlationParam::setId, all.getId())
  64. .build());
  65. // 1:组长;2:组员;3:联络员;4:专家
  66. all.setGroupLeader(perMapList.stream()
  67. .filter(per -> "1".equals(per.get("PERTYPE")))
  68. .map(per -> per.get("PERS_NAME"))
  69. .collect(Collectors.joining("、")));
  70. all.setGroupMember(perMapList.stream()
  71. .filter(per -> "2".equals(per.get("PERTYPE")))
  72. .map(per -> per.get("PERS_NAME"))
  73. .collect(Collectors.joining("、")));
  74. all.setLiaisonOfficer(perMapList.stream()
  75. .filter(per -> "3".equals(per.get("PERTYPE")))
  76. .map(per -> per.get("PERS_NAME"))
  77. .collect(Collectors.joining("、")));
  78. all.setSpecialist(perMapList.stream()
  79. .filter(per -> "4".equals(per.get("PERTYPE")))
  80. .map(per -> per.get("PERS_NAME"))
  81. .collect(Collectors.joining("、")));
  82. // 获取区域
  83. List<BisInspSelArea> bisInspSelAreaList = bisInspSelAreaService.findList(Builder.of(BisInspSelAreaParam::new)
  84. .with(BisInspSelAreaParam::setId, all.getId())
  85. .build());
  86. if (bisInspSelAreaList != null && bisInspSelAreaList.size() > 0) {
  87. all.setObjNm(bisInspSelAreaList.stream()
  88. .map(BisInspSelArea::getAdName)
  89. .collect(Collectors.joining("、")));
  90. } else {
  91. List<BisInspAllObj> bisInspAllObjList = bisInspAllObjService.findList(Builder.of(BisInspAllObjParam::new)
  92. .with(BisInspAllObjParam::setId, all.getId())
  93. .build());
  94. String area = bisInspAllObjList.stream()
  95. .map(BisInspAllObj::getObjAdCode)
  96. .distinct()
  97. .filter(StringUtils::isNotBlank)
  98. .map(o -> {
  99. AttAdBase attAdBase = attAdBaseService.get(o);
  100. if (attAdBase != null) {
  101. return attAdBase.getAdName();
  102. } else {
  103. return null;
  104. }
  105. })
  106. .filter(StringUtils::isNotBlank)
  107. .collect(Collectors.joining("、"));
  108. all.setObjNm(area);
  109. }
  110. //添加组长联系方式
  111. List<Map<String, String>> perPhoneMapList = bisInspAllRlationDao.getPersPhoneById(Builder.of(BisInspAllRlationParam::new)
  112. .with(BisInspAllRlationParam::setId, all.getId())
  113. .build());
  114. all.setGroupLeaderPhone(perPhoneMapList.stream()
  115. .filter(per -> "1".equals(per.get("PERTYPE")))
  116. .map(phone -> phone.get("MOBILENUMB"))
  117. .collect(Collectors.joining("、")));
  118. // 116.600941 + 0-2.834473
  119. // 25.295836 + 0-2.048097
  120. all.setCenterXGd(116.600941 + Math.random() * 2);
  121. all.setCenterYGd(25.295836 + Math.random() * 2);
  122. });
  123. return new PageInfo<>(allList);
  124. }
  125. @Override
  126. public List<Map<String, Object>> getUserByOrg(String orgType, String orgId) {
  127. return bisInspAllDao.getUserByOrg(orgType, inspOrgService.getProvince(orgId));
  128. }
  129. @Override
  130. public List<Map<String, Object>> getNodeByPidAndCode(String pid, String code, String type, String orgId) {
  131. List<Map<String, Object>> list = new ArrayList<>();
  132. if (StringUtils.isNotBlank(pid)) {
  133. list = bisInspAllDao.getNodeByPidAndCode(pid, code, type, inspOrgService.getProvince(orgId));
  134. }
  135. return list;
  136. }
  137. @Override
  138. public String selectMax(BisInspAllParam inspAllParam) {
  139. return bisInspAllDao.selectMax(inspAllParam);
  140. }
  141. @Override
  142. public BisInspAll getOne(BisInspAllParam inspAllParam) {
  143. return bisInspAllDao.getOne(inspAllParam);
  144. }
  145. @Override
  146. public int selectCount(BisInspAllParam inspAllParam) {
  147. return bisInspAllDao.selectCount(inspAllParam);
  148. }
  149. @Override
  150. public List<InspType> listInspType() {
  151. return bisInspAllDao.listInspType();
  152. }
  153. @Override
  154. public List<BisInspAllRlation> findExistList(BisInspAllParam inspAllRParam) {
  155. return bisInspAllDao.findExistList(inspAllRParam);
  156. }
  157. @Override
  158. public List<BisInspAll> listByName(String pTypes) {
  159. // 获取二级小组
  160. List<BisInspAll> secondList = bisInspAllDao.listByName(pTypes, "9");
  161. if (secondList != null && secondList.size() > 0) {
  162. for (BisInspAll bisInspAll : secondList) {
  163. // 获取三级小组
  164. List<BisInspAll> thirdList = bisInspAllDao.listByName(bisInspAll.getCode(), "12");
  165. bisInspAll.setChildrens(thirdList);
  166. }
  167. }
  168. return secondList;
  169. }
  170. @Override
  171. public String[] getYearById(String id) {
  172. return bisInspAllDao.getYearById(id);
  173. }
  174. @Override
  175. public List<BisInspAll> getPersDcWork(String persId) {
  176. return bisInspAllDao.getPersDcWork(persId);
  177. }
  178. /**
  179. * 首页 四川 批次数汇总
  180. * @param paramMap
  181. * @return
  182. */
  183. @Override
  184. public List<Map<String,Object>> getInspBatchNum(Map<String, Object> paramMap) {
  185. StatisticalUtil.setDate(paramMap);
  186. List<Map<String,Object>> batchNumList = bisInspAllDao.getInspBatchNum(paramMap);
  187. return batchNumList;
  188. }
  189. }