6d09db64377db2da2d58b609535e7051083ce3d3.svn-base 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. package cn.com.goldenwater.dcproj.service.impl.swhs;
  2. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  3. import cn.com.goldenwater.dcproj.dao.AttSwhsBaseDao;
  4. import cn.com.goldenwater.dcproj.model.AttSwhsBase;
  5. import cn.com.goldenwater.dcproj.param.AttSwhsBaseParam;
  6. import cn.com.goldenwater.dcproj.param.PersObjParam;
  7. import cn.com.goldenwater.dcproj.service.AttSwhsBaseService;
  8. import cn.com.goldenwater.core.service.AbstractCrudService;
  9. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  10. import cn.com.goldenwater.dcproj.utils.GeoUtil;
  11. import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil;
  12. import cn.com.goldenwater.id.util.UuidUtil;
  13. import com.github.pagehelper.PageHelper;
  14. import com.github.pagehelper.PageInfo;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.apache.commons.lang3.math.NumberUtils;
  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.Date;
  23. import java.util.List;
  24. import java.util.Map;
  25. /**
  26. * @author lune
  27. * @date 2019-6-3
  28. */
  29. @Service
  30. @Transactional(rollbackFor = Exception.class)
  31. public class AttSwhsBaseServiceImpl extends AbstractCrudService<AttSwhsBase, AttSwhsBaseParam> implements AttSwhsBaseService {
  32. @Autowired
  33. private AttSwhsBaseDao attSwhsBaseDao;
  34. public AttSwhsBaseServiceImpl(AttSwhsBaseDao attSwhsBaseDao) {
  35. super(attSwhsBaseDao);
  36. this.attSwhsBaseDao = attSwhsBaseDao;
  37. }
  38. @Override
  39. public int modify(AttSwhsBase p) throws Exception {
  40. transferGeo(p);
  41. int ret = attSwhsBaseDao.update(p);
  42. return ret;
  43. }
  44. @Override
  45. public PageInfo<AttSwhsBase> queryListByPage(AttSwhsBaseParam p, HttpServletResponse response) {
  46. if ("1".equals(p.getIsExport())) {
  47. ExportUtil.exportExcel(attSwhsBaseDao.findList(p),response,"水源地列表");
  48. }
  49. PageHelper.startPage(p.getPageNum(), p.getPageSize());
  50. List<AttSwhsBase> list = attSwhsBaseDao.findList(p);
  51. return new PageInfo<AttSwhsBase>(list);
  52. }
  53. @Override
  54. public List<AttSwhsBase> findListBy(PersObjParam persObjParam) {
  55. if (StringUtils.isNotBlank(persObjParam.getAdCode())) {
  56. persObjParam.setAdCode(AdLevelUtil.SubAd(persObjParam.getAdCode()).get(SplitValue.SUBAD).toString());
  57. }
  58. return this.attSwhsBaseDao.findListBy(persObjParam);
  59. }
  60. @Override
  61. public PageInfo<AttSwhsBase> findPageInfoBy(PersObjParam persObjParam) {
  62. if (StringUtils.isNotBlank(persObjParam.getAdCode())) {
  63. persObjParam.setAdCode(AdLevelUtil.SubAd(persObjParam.getAdCode()).get(SplitValue.SUBAD).toString());
  64. }
  65. PageHelper.startPage(persObjParam);
  66. List<AttSwhsBase> list = this.attSwhsBaseDao.findListBy(persObjParam);
  67. PageInfo<AttSwhsBase> pageInfo = new PageInfo(list);
  68. return pageInfo;
  69. }
  70. @Override
  71. public List<AttSwhsBase> queryList(AttSwhsBaseParam p) {
  72. List<AttSwhsBase> list = attSwhsBaseDao.findList(p);
  73. return list;
  74. }
  75. @Override
  76. public AttSwhsBase getObjId(String objId) {
  77. return attSwhsBaseDao.getObjId(objId);
  78. }
  79. @Override
  80. public String add(AttSwhsBase p) throws Exception {
  81. String uuid = UuidUtil.uuid();
  82. if (StringUtils.isNotBlank(p.getAdCode())) {
  83. String maxCwsCode = attSwhsBaseDao.getMaxCwsCode(p.getAdCode().substring(0, 6)); //根据最大code生成cwscode
  84. if (maxCwsCode != null) {
  85. Long mCcode = 0L;
  86. if (maxCwsCode == null) {
  87. mCcode = NumberUtils.createLong(p.getAdCode());
  88. Long gwsCode = mCcode + 1;
  89. p.setSwhsCode(gwsCode + "");
  90. } else {
  91. mCcode = NumberUtils.createLong(maxCwsCode);
  92. Long gwsCode = mCcode + 1;
  93. p.setSwhsCode(gwsCode + "");
  94. }
  95. } else {
  96. Long mCcode = NumberUtils.createLong(p.getAdCode());
  97. Long gwsCode = mCcode + 1;
  98. p.setSwhsCode(gwsCode+"");
  99. }
  100. } else {
  101. throw new Exception("adCode不能为空");
  102. }
  103. transferGeo(p);
  104. p.setId(uuid);
  105. p.setEffDate(new Date());
  106. attSwhsBaseDao.insert(p);
  107. return uuid;
  108. }
  109. public void transferGeo(AttSwhsBase p) {
  110. String src = p.getSrc();
  111. if (StringUtils.isNotBlank(src)) {
  112. if ("PC".equalsIgnoreCase(src)) {
  113. if (p.getSwhsLat() != null && p.getSwhsLong() != null) {
  114. Map<String, Double> map = GeoUtil.wgs84togcj02(p.getSwhsLong(), p.getSwhsLat());
  115. p.setSwhsLongGd(map.get("lon"));
  116. p.setSwhsLatGd(map.get("lat"));
  117. }
  118. } else if ("MOBILE".equalsIgnoreCase(src)) {
  119. if (p.getSwhsLatGd() != null && p.getSwhsLongGd() != null) {
  120. Map<String, Double> map = GeoUtil.gcj02towgs84(p.getSwhsLongGd(), p.getSwhsLatGd());
  121. p.setSwhsLong(map.get("lon"));
  122. p.setSwhsLat(map.get("lat"));
  123. }
  124. }
  125. } else {
  126. if (p.getSwhsLat() != null && p.getSwhsLong() != null) {
  127. Map<String, Double> map = GeoUtil.wgs84togcj02(p.getSwhsLong(), p.getSwhsLat());
  128. p.setSwhsLongGd(map.get("lon"));
  129. p.setSwhsLatGd(map.get("lat"));
  130. } else if (p.getSwhsLatGd() != null && p.getSwhsLongGd() != null) {
  131. Map<String, Double> map = GeoUtil.gcj02towgs84(p.getSwhsLongGd(), p.getSwhsLatGd());
  132. p.setSwhsLong(map.get("lon"));
  133. p.setSwhsLat(map.get("lat"));
  134. }
  135. }
  136. }
  137. @Override
  138. public void exportAttSwhsBase(AttSwhsBaseParam attSwhsBaseParam, HttpServletResponse response) {
  139. if (StringUtils.isNotBlank(attSwhsBaseParam.getAdCode())){
  140. attSwhsBaseParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(attSwhsBaseParam.getAdCode()).get("subAd")));
  141. }
  142. List<AttSwhsBase> list = attSwhsBaseDao.findList(attSwhsBaseParam);
  143. if (list.size() > 0) {
  144. list.forEach(base -> {
  145. formatObj(base);
  146. });
  147. List<String> columns = new ArrayList<>();
  148. columns.add("id");
  149. columns.add("swhsCode");
  150. columns.add("swhsLong");
  151. columns.add("swhsLat");
  152. columns.add("persId");
  153. columns.add("effDate");
  154. columns.add("exprDate");
  155. columns.add("swhsLongGd");
  156. columns.add("swhsLatGd");
  157. columns.add("src");
  158. columns.add("displayLevel");
  159. columns.add("objId");
  160. columns.add("state");
  161. ExportUtil.exportExcel(list, response, "水源地列表", columns, AttSwhsBase.class);
  162. }
  163. }
  164. private void formatObj(AttSwhsBase base) {
  165. if (base == null) {
  166. return;
  167. }
  168. if (StringUtils.isNotBlank(base.getWainWasoType())) {
  169. formatWainWasoType(base);
  170. }
  171. if (StringUtils.isNotBlank(base.getWainUse())) {
  172. formatWainUse(base);
  173. }
  174. if (StringUtils.isNotBlank(base.getWaquGoal())) {
  175. base.setWaquGoal(formatGoal(base.getWaquGoal()));
  176. }
  177. if (StringUtils.isNotBlank(base.getWquaCat())){
  178. base.setWquaCat(formatGoal(base.getWquaCat()));
  179. }
  180. if (StringUtils.isNotBlank(base.getIfMonWqua())){
  181. base.setIfMonWqua(formatCommon(base.getIfMonWqua()));
  182. }
  183. if (StringUtils.isNotBlank(base.getIfWquaUptoSta())){
  184. base.setIfWquaUptoSta(formatCommon(base.getIfWquaUptoSta()));
  185. }
  186. if (StringUtils.isNotBlank(base.getIfWsProt())) {
  187. base.setIfWsProt(formatCommon(base.getIfWsProt()));
  188. }
  189. }
  190. private String formatCommon(String ifMonWqua) {
  191. switch (ifMonWqua) {
  192. case "1":
  193. return "是";
  194. case "2":
  195. return "否";
  196. default:
  197. return "";
  198. }
  199. }
  200. private String formatGoal(String value) {
  201. switch (value) {
  202. case "1":
  203. return "Ⅰ类水质";
  204. case "2":
  205. return "Ⅱ类水质";
  206. case "3":
  207. return "Ⅲ类水质";
  208. case "4":
  209. return "Ⅳ类水质";
  210. case "5":
  211. return "Ⅴ类水质";
  212. case "6":
  213. return "劣Ⅴ类水质目标";
  214. }
  215. return "";
  216. }
  217. private void formatWainUse(AttSwhsBase base) {
  218. switch (base.getWainUse()) {
  219. case "1":
  220. base.setWainUse("城乡生活");
  221. break;
  222. case "2":
  223. base.setWainUse("城镇生活");
  224. break;
  225. case "3":
  226. base.setWainUse("乡村生活");
  227. break;
  228. }
  229. }
  230. private void formatWainWasoType(AttSwhsBase base) {
  231. switch (base.getWainWasoType()) {
  232. case "1":
  233. base.setWainWasoType("水库");
  234. break;
  235. case "2":
  236. base.setWainWasoType("湖泊");
  237. break;
  238. case "3":
  239. base.setWainWasoType("河流");
  240. break;
  241. case "9":
  242. base.setWainWasoType("其他");
  243. break;
  244. }
  245. }
  246. }