package com.se.simu.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.se.simu.domain.po.SimuPo; import com.se.simu.domain.vo.CreateSimuVo; import com.se.simu.domain.vo.R; import com.se.simu.domain.vo.SimuVo; import com.se.simu.helper.StringHelper; import com.se.simu.service.GedbService; import com.se.simu.service.SimuService; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** * 仿真管理 * * @author WWW * @date 2024-09-18 */ @Api(tags = "仿真管理") @Slf4j @RestController @RequestMapping("/simu") @SuppressWarnings("ALL") public class SimuController extends BaseController { @Resource GedbService gedbService; @Resource SimuService simuService; @ApiOperation(value = "创建") @PostMapping(value = "/create", produces = "application/json; charset=UTF-8") public R create(@RequestBody @ApiParam("创建仿真视图类") CreateSimuVo vo) { try { if (null == vo.getTotal() || vo.getTotal() < 1 || vo.getTotal() > 1000) { return fail("降雨量不能为空,且取值在1~1000之间"); } if (null == vo.getDuration() || vo.getDuration() < 1 || vo.getDuration() > 120) { return fail("仿真时长不能为空,且取值在1~120之间"); } if (null == vo.getMinx() || null == vo.getMiny() || null == vo.getMaxx() || null == vo.getMaxy()) { return fail("选择范围不能为空", false); } if (StringHelper.isEmpty(vo.getName())) { vo.setName(StringHelper.YMDHMS2_FORMAT.format(new Date())); } if (null == vo.getNum() || vo.getNum() < 1) { vo.setNum(simuService.getMaxId() + 1); } boolean flag = simuService.create(vo); return success(flag, flag ? "成功" : "失败"); } catch (Exception ex) { return fail(ex, null); } } @ApiOperation(value = "删除") @ApiImplicitParams({ @ApiImplicitParam(name = "ids", value = "ID", dataType = "Integer", paramType = "query", allowMultiple = true, example = "0") }) @GetMapping(value = "/del") public R del(@RequestParam List ids) { try { if (ids == null || ids.isEmpty()) { return fail("日志ID不能为空", null); } int count = simuService.del(ids); return success(count); } catch (Exception ex) { return fail(ex, null); } } @ApiOperation(value = "获取") @GetMapping("/get") public R get(@ApiParam("仿真视图类") SimuVo vo) { try { if (null == vo) { vo = new SimuVo(); } if (null == vo.getPageSize() || vo.getPageSize() < 1) { vo.setPageSize(10); } if (null == vo.getPageIndex() || vo.getPageIndex() < 1) { vo.setPageIndex(1); } IPage paged = simuService.get(vo); if (null == paged) { return success(null, 0); } return success(paged.getRecords(), paged.getTotal()); } catch (Exception ex) { return fail(ex, null); } } @ApiOperation(value = "* Test *") @GetMapping("/test") public R test(@ApiParam("仿真视图类") SimuVo vo) { try { // 469538.6536261877,4416744.922022615,469853.14714664617,4417049.378602433 String bbox = "116.64388473935195,39.884315914604464,116.64754729082588,39.887069143903496"; String taskName = "20240913"; Object rs = gedbService.test(bbox, taskName); return success(rs); } catch (Exception ex) { return fail(ex, null); } } }