f984db22ed468283f73381af3261b4390c8d83fb.svn-base 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. package cn.com.goldenwater.dcproj.service.impl.rsvr;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  4. import cn.com.goldenwater.dcproj.dao.AttRsBaseDao;
  5. import cn.com.goldenwater.dcproj.dto.RsCountDto;
  6. import cn.com.goldenwater.dcproj.model.AttRsBase;
  7. import cn.com.goldenwater.dcproj.param.AttRsBaseParam;
  8. import cn.com.goldenwater.dcproj.service.AttRsBaseService;
  9. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  10. import cn.com.goldenwater.dcproj.utils.BeanUtil;
  11. import cn.com.goldenwater.dcproj.utils.GeoUtil;
  12. import cn.com.goldenwater.dcproj.utils.expExcel.ExcelExport;
  13. import cn.com.goldenwater.dcproj.utils.expExcel.ExportAbstract;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.slf4j.Logger;
  16. import org.slf4j.LoggerFactory;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Service;
  19. import org.springframework.transaction.annotation.Transactional;
  20. import javax.servlet.http.HttpServletResponse;
  21. import java.util.ArrayList;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. * @author lune
  26. * @date 2019-2-25
  27. */
  28. @Service
  29. @Transactional(rollbackFor = Exception.class)
  30. public class AttRsBaseServiceImpl extends AbstractCrudService<AttRsBase, AttRsBaseParam> implements AttRsBaseService {
  31. @Autowired
  32. private AttRsBaseDao attRsBaseDao;
  33. private Logger logger = LoggerFactory.getLogger(getClass());
  34. public AttRsBaseServiceImpl(AttRsBaseDao attRsBaseDao) {
  35. super(attRsBaseDao);
  36. this.attRsBaseDao = attRsBaseDao;
  37. }
  38. @Override
  39. public String findMax(String location) {
  40. return attRsBaseDao.findMax(location);
  41. }
  42. @Override
  43. public AttRsBase getObjId(String objId) {
  44. return attRsBaseDao.getObjId(objId);
  45. }
  46. @Override
  47. public int selectCount(AttRsBase attRsBase) {
  48. return attRsBaseDao.selectCount(attRsBase);
  49. }
  50. @Override
  51. public List<RsCountDto> getRsCountByAdCode(String adCode, String adGrad, String objType) {
  52. Map<String, Object> map = AdLevelUtil.subAdByGrad(adGrad);
  53. if ("000000000000".equals(adCode)) {
  54. adCode = "";
  55. }
  56. List<RsCountDto> rsAllList = this.attRsBaseDao.getRsCountByGrad(map.get("sub").toString(), map.get("con").toString(), adGrad, adCode, objType);
  57. return rsAllList;
  58. }
  59. @Override
  60. public List<AttRsBase> getRsListByNodeIdsAndAdCodes(String nodeIds, String adCodes, String persGuid, String pType) {
  61. if (StringUtils.isNotBlank(nodeIds)) {
  62. String[] nodes = nodeIds.split(SplitValue.DOUHAO_SPLIT);
  63. if (StringUtils.isNotBlank(adCodes)) {
  64. String[] ads = adCodes.split(SplitValue.DOUHAO_SPLIT);
  65. //处理ads中的参数
  66. ArrayList<String> adss = new ArrayList<>();
  67. for (String ad : ads) {
  68. String delAd = AdLevelUtil.getAllLowerLevelAdCode(ad);
  69. adss.add(delAd);
  70. }
  71. return attRsBaseDao.getRsListByNodeIdsAndAdCodes(nodes, adss.toArray(), persGuid, pType);
  72. } else {
  73. return attRsBaseDao.getRsListByNodeIdsAndAdCodes(nodes, null, persGuid, pType);
  74. }
  75. } else {
  76. if (StringUtils.isNotBlank(adCodes)) {
  77. String[] ads = adCodes.split(SplitValue.DOUHAO_SPLIT);
  78. //处理ads中的参数
  79. ArrayList<String> adss = new ArrayList<>();
  80. for (String ad : ads) {
  81. String delAd = AdLevelUtil.getAllLowerLevelAdCode(ad);
  82. adss.add(delAd);
  83. }
  84. return attRsBaseDao.getRsListByNodeIdsAndAdCodes(null, adss.toArray(), persGuid, pType);
  85. } else {
  86. return attRsBaseDao.getRsListByNodeIdsAndAdCodes(null, null, persGuid, pType);
  87. }
  88. }
  89. }
  90. @Override
  91. public List<AttRsBase> findRsList(AttRsBaseParam rsBaseParam) {
  92. return attRsBaseDao.findRsList(rsBaseParam);
  93. }
  94. @Override
  95. public void exportAttRsBase(AttRsBaseParam attRsBaseParam, HttpServletResponse response) {
  96. List<AttRsBase> list = attRsBaseDao.findRsList(attRsBaseParam);
  97. List<Map<String, Object>> mapList = new ArrayList<>();
  98. for (AttRsBase attRsBase : list) {
  99. if ("1".equals(attRsBase.getRsType())) {
  100. attRsBase.setRsType("山丘水库");
  101. } else if ("2".equals(attRsBase.getRsType())) {
  102. attRsBase.setRsType("平原水库");
  103. } else if ("3".equals(attRsBase.getRsType())) {
  104. attRsBase.setRsType("地下水库");
  105. } else {
  106. attRsBase.setRsType("其他");
  107. }
  108. if ("1".equals(attRsBase.getEngScal())) {
  109. attRsBase.setEngScal("大(1)型");
  110. } else if ("2".equals(attRsBase.getEngScal())) {
  111. attRsBase.setEngScal("大(2)型");
  112. } else if ("3".equals(attRsBase.getEngScal())) {
  113. attRsBase.setEngScal("中型");
  114. } else if ("4".equals(attRsBase.getEngScal())) {
  115. attRsBase.setEngScal("小(1)型");
  116. } else if ("5".equals(attRsBase.getEngScal())) {
  117. attRsBase.setEngScal("小(2)型");
  118. } else if ("9".equals(attRsBase.getEngScal())) {
  119. attRsBase.setEngScal("其他");
  120. }
  121. mapList.add(BeanUtil.transBean2Map(attRsBase));
  122. }
  123. ExportAbstract export = new ExcelExport();
  124. export.setFileName("水库信息列表");
  125. export.setExport_ps_export(true);
  126. export.setExport_ps_type(ExportAbstract.XLS);
  127. export.setExport_bzip(false);
  128. export.setTitle("水库信息列表");
  129. ArrayList<Object> cols = new ArrayList<Object>();
  130. cols.add("rsCode[水库编码]");
  131. cols.add("rsName[水库名称]");
  132. cols.add("rsType[水库类型]");
  133. cols.add("rsAdmCode[管理单位代码]");
  134. cols.add("rsAdmName[管理单位名称]");
  135. cols.add("admDiv[行政区划]");
  136. cols.add("engScal[工程规模]");
  137. cols.add("limStag[防洪限制水位(米)]");
  138. cols.add("totCap[总库容(万立方米)]");
  139. cols.add("damSizeHig[主坝尺寸坝高(米)]");
  140. cols.add("wiunWaoLegPers[行政责任人姓名]");
  141. cols.add("wiunWaoLegPersTel[行政责任人电话]");
  142. cols.add("wiunWaoLegPersDuty[行政责任人职务]");
  143. cols.add("techPers[技术责任人姓名]");
  144. cols.add("techPersTel[技术责任人电话]");
  145. cols.add("techPersDuty[技术责任人职务]");
  146. cols.add("patrolPers[巡查责任人姓名]");
  147. cols.add("patrolPersTel[巡查责任人电话]");
  148. cols.add("patrolPersDuty[巡查责任人职务]");
  149. export.setCols(cols);
  150. export.setGroupable(false);
  151. // 设置视图指标
  152. export.setLevel(1);
  153. export.setLocksize(0);
  154. try {
  155. export.Export(response);
  156. export.ExportHeadForCustom(response);//导出表头
  157. export.ContinueExport(mapList);
  158. export.EndExport();
  159. } catch (Exception e) {
  160. e.printStackTrace();
  161. }
  162. }
  163. @Override
  164. public List<AttRsBase> findEqRsList(AttRsBaseParam rsBaseParam) {
  165. return attRsBaseDao.findEqRsList(rsBaseParam);
  166. }
  167. @Override
  168. public void updateCenteXToGd() {
  169. //获取经 经纬度不为空 另外的高德纬度为空 的水库基本信息
  170. List<AttRsBase> attRsBases = attRsBaseDao.findGdIsNull();
  171. //循环转换
  172. for (AttRsBase item : attRsBases
  173. ) {
  174. if (null != item.getCenterX() && null != item.getCenterY() && null == item.getCenterXGd() && null == item.getCenterYGd()) {
  175. //执行转换
  176. Map<String, Double> map = GeoUtil.wgs84togcj02(Double.parseDouble(item.getCenterX()), Double.parseDouble(item.getCenterY()));
  177. //更新字段
  178. AttRsBase attRsBase = new AttRsBase();
  179. attRsBase.setCenterXGd(map.get("lon").toString());
  180. attRsBase.setCenterYGd(map.get("lat").toString());
  181. attRsBase.setRsCode(item.getRsCode());
  182. attRsBaseDao.update(attRsBase);
  183. logger.info("---更新经纬--" + item.getRsCode() + " " + item.getRsName());
  184. }
  185. }
  186. }
  187. }