12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package com.sysu.admin.controller.aland;
- import com.sysu.admin.controller.city.CityRepository;
- import com.sysu.admin.controller.city.DistrictRepository;
- import com.sysu.admin.controller.city.TownRepository;
- import com.sysu.admin.support.base.BaseService;
- import com.sysu.admin.utils.MySimpleDateFormat;
- import com.sysu.admin.utils.TextUtil;
- import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- @Service("LandService2")
- public class LandService extends BaseService<Land,Long> {
- @Autowired
- LandRepository landRepository;
- @Autowired
- TownRepository townRepository;
- @Autowired
- DistrictRepository districtRepository;
- @Autowired
- CityRepository cityRepository;
- public List<LandAreaStat> getLandAreaStat(String district, Integer townId, Date date){
- Double percent = getPercent(date);
- List<LandAreaStat> list = new ArrayList<>();
- List<Object[]> res = null;
- if(townId != null) {
- String wkt = townRepository.findWktById(townId);
- res = landRepository.statMajority(wkt);
- }else if(StringUtils.isNotBlank(district)) {
- String wkt = districtRepository.findWktByCode(district);
- res = landRepository.statMajority(wkt);
- }else{
- res =landRepository.statMajorityAll();
- }
- res.stream().forEach(o -> {
- Double area = (Double)o[1];
- LandAreaStat bean = new LandAreaStat();
- bean.setId(Integer.valueOf(o[0].toString()));
- bean.setColor(LandAreaStat.castColor(bean.getId()));
- bean.setName(LandAreaStat.castName(bean.getId()));
- bean.setArea((area + area / 2) / 1000);
- bean.setArea(bean.getArea() * percent);
- list.add(bean);
- });
- return list;
- }
- public Double getPercent(Date date){
- if(date == null){
- return 1.0;
- }
- String mm = TextUtil.leftSubstring("-",TextUtil.rightSubstring("-", MySimpleDateFormat.formatDate(date)));
- Double percent = Double.parseDouble("1." + Integer.parseInt(mm) % 5);
- return percent;
- }
- public List<CropAreaStat> getCropAreaStat(String district, Integer townId, Date date) {
- Double percent = getPercent(date);
- List<CropAreaStat> list = new ArrayList<>();
- List<Object[]> res = null;
- if(townId != null) {
- String wkt = townRepository.findWktById(townId);
- res = landRepository.statCropType(wkt);
- }else if(StringUtils.isNotBlank(district)) {
- String wkt = districtRepository.findWktByCode(district);
- res = landRepository.statCropType(wkt);
- }else{
- res =landRepository.statCropTypeAll();
- }
- res.stream().forEach(o -> {
- Double area = (Double)o[1];
- CropAreaStat cropAreaStat = new CropAreaStat();
- cropAreaStat.setName(CropAreaStat.castName(o[0].toString()));
- cropAreaStat.setColor(CropAreaStat.castColor(o[0].toString()));
- cropAreaStat.setArea((area + area / 2) / 1000);
- cropAreaStat.setArea(cropAreaStat.getArea() * percent);
- list.add(cropAreaStat);
- });
- return list;
- }
- @Override
- public JpaPlusRepository<Land, Long> r() {
- return landRepository;
- }
- }
|