|
@@ -1,6 +1,7 @@
|
|
|
package com.sysu.admin.controller.crop;
|
|
|
|
|
|
import com.mysql.jdbc.StringUtils;
|
|
|
+import com.sysu.admin.controller.city.*;
|
|
|
import com.sysu.admin.controller.crop.images.CropImage;
|
|
|
import com.sysu.admin.controller.crop.images.CropImageService;
|
|
|
import com.sysu.admin.controller.crop.images.ImageType;
|
|
@@ -8,9 +9,14 @@ import com.sysu.admin.controller.geo.land.LandTaskStatus;
|
|
|
import com.sysu.admin.support.base.BaseService;
|
|
|
import com.sysu.admin.support.system.config.ConfigContext;
|
|
|
import com.sysu.admin.utils.file.FileUtil;
|
|
|
+import com.sysu.admin.utils.shape.GeoCastUtil;
|
|
|
+import com.xiesx.fastboot.base.result.BaseResult;
|
|
|
import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
|
|
|
import org.apache.commons.codec.binary.Base64;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
+import org.geolatte.geom.crs.CoordinateReferenceSystems;
|
|
|
+import org.locationtech.jts.geom.Geometry;
|
|
|
+import org.locationtech.jts.geom.Point;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -29,10 +35,18 @@ public class CropLandService extends BaseService<CropLand, Long> {
|
|
|
CropImageService cropImageService;
|
|
|
@Autowired
|
|
|
ConfigContext configContext;
|
|
|
+ @Autowired
|
|
|
+ ProvinceRepository provinceRepository;
|
|
|
+ @Autowired
|
|
|
+ CityRepository cityRepository;
|
|
|
+ @Autowired
|
|
|
+ DistrictRepository districtRepository;
|
|
|
|
|
|
public List<CropPoint> findByBuffer(Double[] point, Integer meter){
|
|
|
double degree = meter / (2 * Math.PI * 6371004) * 360;
|
|
|
- return mCropPointRepository.findByBuffer("Point("+point[0]+" "+point[1]+")",degree);
|
|
|
+ return mCropPointRepository.findByBufferAndStatus("Point("+point[0]+" "+point[1]+")",degree, new Integer[]{
|
|
|
+ LandTaskStatus.published.ordinal(),LandTaskStatus.receive.ordinal()
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
public List<CropLand> findByExecutor(Long executor){
|
|
@@ -65,6 +79,22 @@ public class CropLandService extends BaseService<CropLand, Long> {
|
|
|
return mCropLandRepository.updateCenterPoint(id);
|
|
|
}
|
|
|
|
|
|
+ public Point getCenterPoint(Long id){
|
|
|
+ return (Point)GeoCastUtil.wktToGeom(mCropLandRepository.getCenterPoint(id));
|
|
|
+ }
|
|
|
+ public Point getCenterPoint(Geometry geometry){
|
|
|
+ geometry.setSRID(4326);
|
|
|
+ return (Point)GeoCastUtil.wktToGeom(mCropLandRepository.getCenterPoint(geometry));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public void setCity(CropLand bean, District district){
|
|
|
+ bean.setProvince(((int)(district.getCode() / 10000)) * 10000);
|
|
|
+ bean.setCity(((int)(district.getCode() / 100)) * 100);
|
|
|
+ bean.setDistrict(district.getCode());
|
|
|
+ }
|
|
|
+
|
|
|
@Transactional
|
|
|
public void saveCropAndImages(CropLand bean){
|
|
|
CropImage fay = bean.getFay();
|
|
@@ -119,6 +149,23 @@ public class CropLandService extends BaseService<CropLand, Long> {
|
|
|
return newFileName;
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
+ public void saveCityAll(){
|
|
|
+ QCropLand qCropLand = QCropLand.cropLand;
|
|
|
+ List<CropLand> landList = findAll(qCropLand.district.isNull());
|
|
|
+ System.out.println("landList load finnish");
|
|
|
+ int size = landList.size();
|
|
|
+ for(CropLand bean : landList){
|
|
|
+ bean.getCenterPoint().setSRID(4326);
|
|
|
+ District district = districtRepository.findByPoint(bean.getCenterPoint());
|
|
|
+ if(district != null){
|
|
|
+ setCity(bean, district);
|
|
|
+ System.out.println("剩余:" + (--size));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ saveAll(landList);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public JpaPlusRepository<CropLand, Long> r() {
|
|
|
return mCropLandRepository;
|