| | |
| | | package com.terra.coal.controller; |
| | | |
| | | import com.terra.coal.entity.CountEntity; |
| | | import com.terra.coal.entity.ResponseMsg; |
| | | import com.terra.coal.entity.StaticData; |
| | | import com.terra.coal.helper.StringHelper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | import com.terra.coal.service.MainService; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * CoalController |
| | |
| | | @RestController |
| | | @RequestMapping("/main") |
| | | public class MainController extends BaseController { |
| | | @Autowired |
| | | MainService mainService; |
| | | |
| | | @ApiOperation(value = "跳转首页") |
| | | @GetMapping({"/", "/toIndex"}) |
| | | public ModelAndView toIndex(ModelAndView mv, HttpServletRequest req) { |
| | |
| | | |
| | | return mv; |
| | | } |
| | | |
| | | @ApiOperation(value = "加载54数据(入库)") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "txtPath", value = "块体数据文件路径", dataType = "String", paramType = "query", example = "D:\\块体数据.txt") |
| | | }) |
| | | @GetMapping(value = "/load54Data") |
| | | public ResponseMsg<Integer> load54Data(String txtPath) { |
| | | try { |
| | | if (StringHelper.isEmpty(txtPath)) { |
| | | return fail("请选择‘块体数据.txt’", null); |
| | | } |
| | | |
| | | File f = new File(txtPath); |
| | | if (!f.exists() || f.isDirectory()) { |
| | | return fail("文件不存在", null); |
| | | } |
| | | |
| | | Integer rows = mainService.load54Data(f); |
| | | |
| | | return success("成功", rows); |
| | | } catch (Exception ex) { |
| | | log.error(ex.getMessage(), ex); |
| | | return fail(ex.getMessage(), null); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation(value = "根据范围统计") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "wkt", value = "WKT文本", dataType = "String", paramType = "query", example = "POLYGON ((113.5807 45.4897,113.5898 45.4893,113.5857 45.4837,113.5807 45.4897))"), |
| | | @ApiImplicitParam(name = "z", value = "高度", dataType = "double", paramType = "query", example = "640"), |
| | | @ApiImplicitParam(name = "deep", value = "深度", dataType = "double", paramType = "query", example = "50") |
| | | }) |
| | | @GetMapping(value = "/countByRange") |
| | | public ResponseMsg<Object> countByRange(String wkt, double z, double deep) { |
| | | try { |
| | | if (StringHelper.isEmpty(wkt)) { |
| | | return fail("请输入查询范围(WKT字符串)", null); |
| | | } |
| | | if (z < StaticData.MINUS_ONE_THOUSAND || z > StaticData.NINE_THOUSAND) { |
| | | return fail("高度值超出范围(-1000~9000)", null); |
| | | } |
| | | if (deep < 1) { |
| | | return fail("开挖深度过小", null); |
| | | } |
| | | |
| | | List<CountEntity> rs = mainService.countByRange("'" + wkt + "'", z, z + deep); |
| | | |
| | | return success("成功", rs); |
| | | } catch (Exception ex) { |
| | | log.error(ex.getMessage(), ex); |
| | | return fail(ex.getMessage(), null); |
| | | } |
| | | } |
| | | } |