Administrator 2 lat temu
rodzic
commit
34d4c3477b

+ 6 - 4
src/main/java/com/sysu/admin/controller/lz/everyday/LzEveryExcelListener.java

@@ -48,6 +48,8 @@ public class LzEveryExcelListener extends AnalysisEventListener<LzEverydayExcel>
         bean.setFlowerPercent(everydayExcel.getFlowerPercent());
         bean.setYield(everydayExcel.getYield());
         bean.setWhitePoint(everydayExcel.getWhitePoint());
+        bean.setFlowerAreaPercent(everydayExcel.getFlowerAreaPercent());
+        bean.setRedLeafPercent(everydayExcel.getRedLeafPercent());
         everydayService.saveAndFlush(bean);
         saveImages(bean.getId(), everydayExcel.getImgCount(), fileNameBase);
         saveTreeNewEveryDay(lzTree, bean);
@@ -79,10 +81,10 @@ public class LzEveryExcelListener extends AnalysisEventListener<LzEverydayExcel>
         if(lzTree.getLzEveryday() == null || lzTree.getLzEveryday().getCreateDate().compareTo(lzEveryday.getCreateDate())  < 0) {
             lzTree.setLzEveryday(lzEveryday);
             //有预警就以后都要显示
-            if (lzTree.getShow() == 0){
-                Integer warning = WarningCondition.getWarning(lzEveryday.getLzPeriod().getId(), lzEveryday.getWhitePoint());
-                lzTree.setShow(warning);
-            }
+//            if (lzTree.getShow() == 0){
+//                Integer warning = WarningCondition.getWarning(lzEveryday.getLzPeriod().getId(), lzEveryday.getWhitePoint());
+//                lzTree.setShow(warning);
+//            }
         }
         lzTreeService.save(lzTree);
     }

+ 12 - 2
src/main/java/com/sysu/admin/controller/lz/everyday/LzEveryday.java

@@ -44,13 +44,13 @@ public class LzEveryday {
     private Double whitePoint;
 
     /**
-     * 花穗长度 百分
+     * 花
      */
     @Column
     private Double flowerLength;
 
     /**
-     * 花穗
+     * 花穗比
      */
     @Column
     private Double flowerPercent;
@@ -61,6 +61,16 @@ public class LzEveryday {
     @Column
     private Integer yield;
 
+    /**
+     * 红叶率
+     */
+    private Double redLeafPercent;
+
+    /**
+     * 开花面积比
+     */
+    private Double flowerAreaPercent;
+
 
     /**
      * 局部关键点图片

+ 10 - 6
src/main/java/com/sysu/admin/controller/lz/everyday/LzEverydayExcel.java

@@ -12,17 +12,21 @@ public class LzEverydayExcel {
     private String code;
     @ExcelProperty(value = "物候期",index = 1)
     private Integer period_id;
-    @ExcelProperty(value = "花穗长度",index = 2)
+    @ExcelProperty(value = "花叶比",index = 2)
     private Double flowerLength;
-    @ExcelProperty(value = "花穗占比",index = 3)
+    @ExcelProperty(value = "开花面积占比",index = 3)
+    private Double flowerAreaPercent;
+    @ExcelProperty(value = "花穗比",index = 4)
     private Double flowerPercent;
-    @ExcelProperty(value = "白点数",index = 4)
+    @ExcelProperty(value = "白点数",index = 5)
     private Double whitePoint;
-    @ExcelProperty(value = "预估产量",index =5)
+    @ExcelProperty(value = "预估产量",index =6)
     private Integer yield;
-    @ExcelProperty(value = "图片数量",index = 6)
+    @ExcelProperty(value = "红叶率",index =7)
+    private Double redLeafPercent;
+    @ExcelProperty(value = "图片数量",index = 8)
     private Integer imgCount;
-    @ExcelProperty(value = "日期",index = 7)
+    @ExcelProperty(value = "日期",index = 9)
     private Date date;
 
 }

+ 40 - 0
src/main/java/com/sysu/admin/controller/lz/group/LzGroup.java

@@ -0,0 +1,40 @@
+package com.sysu.admin.controller.lz.group;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.sysu.admin.controller.lz.group_item.LzGroupItem;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+import org.locationtech.jts.geom.Point;
+
+import javax.persistence.*;
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@FieldNameConstants(innerTypeName = "FIELDS")
+@Table(name = "lz_group")
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class LzGroup {
+
+    @Id
+    private Integer id;
+    private Integer areaId;
+    @JSONField(serialize = false)
+    @Column(name = "point")
+    private Point point;
+
+    @Transient
+    private String wkt;
+
+    @OneToMany(fetch = FetchType.EAGER,cascade={CascadeType.ALL}, mappedBy = "pk.groupId")
+    private List<LzGroupItem> items;
+
+
+}

+ 10 - 0
src/main/java/com/sysu/admin/controller/lz/group/LzGroupRepository.java

@@ -0,0 +1,10 @@
+package com.sysu.admin.controller.lz.group;
+
+import com.sysu.admin.controller.lz.area.LzArea;
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+import org.springframework.data.jpa.repository.Query;
+
+public interface LzGroupRepository extends JpaPlusRepository<LzGroup, Integer> {
+
+
+}

+ 19 - 0
src/main/java/com/sysu/admin/controller/lz/group/LzGroupService.java

@@ -0,0 +1,19 @@
+package com.sysu.admin.controller.lz.group;
+
+import com.google.j2objc.annotations.AutoreleasePool;
+import com.sysu.admin.support.base.BaseService;
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class LzGroupService extends BaseService<LzGroup, Integer> {
+
+    @Autowired
+    LzGroupRepository lzGroupRepository;
+
+    @Override
+    public JpaPlusRepository<LzGroup, Integer> r() {
+        return lzGroupRepository;
+    }
+}

+ 35 - 0
src/main/java/com/sysu/admin/controller/lz/group_item/LzGroupItem.java

@@ -0,0 +1,35 @@
+package com.sysu.admin.controller.lz.group_item;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+import org.locationtech.jts.geom.Point;
+
+import javax.persistence.Column;
+import javax.persistence.EmbeddedId;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@FieldNameConstants(innerTypeName = "FIELDS")
+@Table(name = "lz_group_item")
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class LzGroupItem {
+
+    /**
+     * 联合主键
+     */
+    @EmbeddedId
+    private PKGR pk;
+
+
+
+}

+ 23 - 0
src/main/java/com/sysu/admin/controller/lz/group_item/PKGR.java

@@ -0,0 +1,23 @@
+package com.sysu.admin.controller.lz.group_item;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+import java.io.Serializable;
+
+@Data
+@Accessors(fluent = true)
+@NoArgsConstructor
+@Embeddable
+public class PKGR implements Serializable {
+
+    @Column(name = "tree_id")
+    private Long treeId;
+
+    @Column(name = "group_id")
+    private Integer groupId;
+
+}

+ 3 - 3
src/main/java/com/sysu/admin/controller/lz/period/WarningCondition.java

@@ -12,8 +12,8 @@ public class WarningCondition {
         if(period.intValue() == 2){
             return "#DA1B6E";
         }
-        //有冬梢 无白点预警 黄色
-        if(period.intValue() == 7 && whitePoint <= 0.3){
+        //白点期 无白点预警 黄色
+        if(period.intValue() == 1 && whitePoint <= 0.3){
             return "#DA1B6E";
         }
         return "";
@@ -25,7 +25,7 @@ public class WarningCondition {
             return 1;
         }
         //有冬梢 无白点预警
-        if(period.intValue() == 7 && whitePoint <= 0.3){
+        if(period.intValue() == 1 && whitePoint <= 0.3){
             return 1;
         }
         return 0;

+ 2 - 2
src/main/java/com/sysu/admin/controller/lz/tree/LzTree.java

@@ -49,7 +49,7 @@ public class LzTree {
     @JSONField(serialize = false)
     private Point point;
 
-    @ManyToOne(cascade= CascadeType.REFRESH)
+    @ManyToOne(cascade= CascadeType.REFRESH, fetch = FetchType.EAGER)
     @JoinColumn(name = "everyday_id")
     private LzEveryday lzEveryday;
 
@@ -79,7 +79,7 @@ public class LzTree {
     private List<LzEveryday> lzEverydays;
 
     @Transient
-    private String color;
+    private Integer warning ;
     @Transient
     private String partImgUrl;
 

+ 2 - 1
src/main/java/com/sysu/admin/controller/lz/tree/LzTreeRepository.java

@@ -14,6 +14,7 @@ public interface LzTreeRepository extends JpaPlusRepository<LzTree, Integer> {
      @Query(value = "SELECT * FROM lz_tree where St_within(point, ST_Buffer(st_geomfromtext(?1),?2, 'quad_segs=8')) limit 1", nativeQuery = true)
      LzTree findByPoint(String wkt, Double m);
 
-     List<LzTree> findAllByShow(Integer show);
+     @Query(value = "SELECT a, b FROM LzTree a JOIN FETCH a.lzEveryday b")
+     List<LzTree> findAllByShow();
 
 }

+ 2 - 2
src/main/java/com/sysu/admin/controller/lz/tree/LzTreeService.java

@@ -15,8 +15,8 @@ public class LzTreeService extends BaseService<LzTree, Integer> {
     @Autowired
     LzTreeRepository lzTreeRepository;
 
-    public List<LzTree> findAllByShow(Integer show){
-        return lzTreeRepository.findAllByShow(show);
+    public List<LzTree> findAllByShow(){
+        return lzTreeRepository.findAllByShow();
     }
 
     public LzTree findByCode(String code){

+ 39 - 0
src/main/java/com/sysu/admin/site/lz/LzGroupController.java

@@ -0,0 +1,39 @@
+package com.sysu.admin.site.lz;
+
+import com.sysu.admin.controller.lz.group.LzGroup;
+import com.sysu.admin.controller.lz.group.LzGroupService;
+import com.sysu.admin.utils.shape.GeoCastUtil;
+import com.xiesx.fastboot.base.result.BaseResult;
+import com.xiesx.fastboot.base.result.R;
+import org.locationtech.jts.geom.Point;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RequestMapping("/site/lz_group")
+@RestController
+public class LzGroupController {
+
+    @Autowired
+    private LzGroupService lzGroupService;
+
+    @RequestMapping("/list")
+    public BaseResult list(){
+        List<LzGroup> list = lzGroupService.findAll();
+        list.forEach(lzGroup -> {
+            lzGroup.setWkt(GeoCastUtil.geomToWkt(lzGroup.getPoint()));
+        });
+        return R.succ(list);
+    }
+
+    @RequestMapping("/save")
+    public BaseResult save(@RequestBody LzGroup bean){
+        bean.setPoint((Point) GeoCastUtil.wktToGeom(bean.getWkt()));
+        lzGroupService.save(bean);
+        return R.succ();
+    }
+
+}

+ 12 - 5
src/main/java/com/sysu/admin/site/lz/LzTreeController.java

@@ -42,14 +42,21 @@ public class LzTreeController {
 
     @RequestMapping("/list")
     public BaseResult list(){
-        List<LzTree> list = lzTreeService.findAllByShow(1);
-        list.forEach(lzTree -> {
+        List<LzTree> list = lzTreeService.findAllByShow();
+        List<LzTree> res = new ArrayList<>();
+        int i=0;
+        for(LzTree lzTree : list){
             LzEveryday lzEveryday = lzTree.getLzEveryday();
             lzTree.setWkt(GeoCastUtil.geomToWkt(lzTree.getPoint()));
-            lzTree.setColor(WarningCondition.getWarningColor(lzEveryday.getLzPeriod().getId(), lzEveryday.getWhitePoint()));
+            Integer warning = WarningCondition.getWarning(lzEveryday.getLzPeriod().getId(), lzEveryday.getWhitePoint());
+            if(warning == 1 || i % 10 == 0) {
+                res.add(lzTree);
+            }
             lzTree.setPartImgUrl(lzEveryday.getPartImgUrl());
-        });
-        return R.succ(list);
+            lzTree.setWarning(warning);
+            i++;
+        }
+        return R.succ(res);
     }
 
     @RequestMapping("/info")