LzTreeController.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.sysu.admin.site.lz;
  2. import com.sysu.admin.controller.lz.area.LzArea;
  3. import com.sysu.admin.controller.lz.area.LzAreaService;
  4. import com.sysu.admin.controller.lz.clazz.LzClazz;
  5. import com.sysu.admin.controller.lz.clazz.LzClazzService;
  6. import com.sysu.admin.controller.lz.everyday.LzEveryday;
  7. import com.sysu.admin.controller.lz.everyday.LzEverydayService;
  8. import com.sysu.admin.controller.lz.period.WarningCondition;
  9. import com.sysu.admin.controller.lz.tree.LzTree;
  10. import com.sysu.admin.controller.lz.tree.LzTreeService;
  11. import com.sysu.admin.site.CommonVo;
  12. import com.sysu.admin.utils.MySimpleDateFormat;
  13. import com.sysu.admin.utils.shape.GeoCastUtil;
  14. import com.xiesx.fastboot.base.result.BaseResult;
  15. import com.xiesx.fastboot.base.result.R;
  16. import com.xiesx.fastboot.utils.DateUtils;
  17. import org.locationtech.jts.geom.MultiPolygon;
  18. import org.locationtech.jts.geom.Point;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.RequestBody;
  21. import org.springframework.web.bind.annotation.RequestMapping;
  22. import org.springframework.web.bind.annotation.RestController;
  23. import java.util.ArrayList;
  24. import java.util.Calendar;
  25. import java.util.Date;
  26. import java.util.List;
  27. @RequestMapping("/site/lz_tree")
  28. @RestController
  29. public class LzTreeController {
  30. @Autowired
  31. private LzTreeService lzTreeService;
  32. @Autowired
  33. private LzAreaService lzAreaService;
  34. @Autowired
  35. private LzClazzService lzClazzService;
  36. @Autowired
  37. private LzEverydayService everydayService;
  38. @RequestMapping("/list")
  39. public BaseResult list(){
  40. List<LzTree> list = lzTreeService.findAllByShow(1);
  41. list.forEach(lzTree -> {
  42. LzEveryday lzEveryday = lzTree.getLzEveryday();
  43. lzTree.setWkt(GeoCastUtil.geomToWkt(lzTree.getPoint()));
  44. lzTree.setColor(WarningCondition.getWarningColor(lzEveryday.getLzPeriod().getId(), lzEveryday.getWhitePoint()));
  45. lzTree.setPartImgUrl(lzEveryday.getPartImgUrl());
  46. });
  47. return R.succ(list);
  48. }
  49. @RequestMapping("/info")
  50. public BaseResult info(@RequestBody CommonVo commonVo){
  51. LzTree bean = null;
  52. if(commonVo.getId() != null) {
  53. bean = lzTreeService.findOne(commonVo.getId().intValue());
  54. }else{
  55. bean = lzTreeService.findByPoint(commonVo.getPoint(), 5);
  56. if(bean == null){
  57. return R.succ();
  58. }
  59. }
  60. Date now = new Date();
  61. Date start = getMonthBegin(DateUtils.addMonths(now, -1));
  62. List<LzEveryday> lzEverydayList = everydayService.findListByTreeId(bean.getId(),start, now);
  63. bean.setLzEverydays(lzEverydayList);
  64. return R.succ(bean);
  65. }
  66. @RequestMapping("/save")
  67. public BaseResult save(@RequestBody LzTree bean){
  68. bean.setPoint((Point) GeoCastUtil.wktToGeom(bean.getWkt()));
  69. LzArea lzArea = lzAreaService.findByPoint(bean.getWkt());
  70. LzClazz clazz = lzClazzService.findOne(bean.getClazzId());
  71. bean.setClazz(clazz);
  72. bean.setCode(lzArea.getId() + clazz.getCode() + bean.getCode());
  73. bean.setLzArea(lzArea);
  74. lzTreeService.save(bean);
  75. return R.succ();
  76. }
  77. /**
  78. * 获取指定时间戳所在月份开始的时间戳/秒
  79. * @return
  80. */
  81. public static Date getMonthBegin(Date date) {
  82. Calendar c = Calendar.getInstance();
  83. c.setTime(date);
  84. //设置为1号,当前日期既为本月第一天
  85. c.set(Calendar.DAY_OF_MONTH, 1);
  86. //将小时至0
  87. c.set(Calendar.HOUR_OF_DAY, 0);
  88. //将分钟至0
  89. c.set(Calendar.MINUTE, 0);
  90. //将秒至0
  91. c.set(Calendar.SECOND,0);
  92. //将毫秒至0
  93. c.set(Calendar.MILLISECOND, 0);
  94. // 获取本月第一天的时间戳
  95. return c.getTime();
  96. }
  97. }