package com.terra.system.controller.data; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.terra.system.annotation.SysLog; import com.terra.system.controller.all.BaseController; import com.terra.system.entity.all.ResponseMsg; import com.terra.system.entity.bs.BsprojectEntity; import com.terra.system.entity.ctrl.KeyValueEntity; import com.terra.system.entity.data.DictEntity; import com.terra.system.entity.data.DirEntity; import com.terra.system.entity.sys.DepEntity; import com.terra.system.entity.sys.UserEntity; import com.terra.system.helper.StringHelper; import com.terra.system.helper.WebHelper; import com.terra.system.mapper.bs.BsprojectMapper; import com.terra.system.service.all.BaseQueryService; import com.terra.system.service.data.DirService; import com.terra.system.service.sys.DepService; import com.terra.system.service.sys.TokenService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import javax.annotation.Resource; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; /** * 项目管理 * @author WWW */ @Tag(name = "数据管理\\项目管理") @RestController @RequestMapping("/project") public class ProjectController extends BaseController { @Resource DepService depService; @Resource DirService dirService; @Resource TokenService tokenService; @Resource BsprojectMapper bsprojectMapper; @Resource BaseQueryService baseQueryService; @SysLog() @Operation(summary = "查询所有单位数据") @GetMapping(value = "/selectDepAll") public ResponseMsg> selectDepAll() { try { List list = depService.selectDepAll(); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(summary = "查询项目") @Parameters({ @Parameter(name = "name", description = "名称", in = ParameterIn.QUERY, example = "西") }) @GetMapping(value = "/selectProject") public ResponseMsg> selectProject(String name) { try { List list = dirService.selectProject(name); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(summary = "分页查询并返回记录数") @Parameters({ @Parameter(name = "dirid", description = "目录ID", in = ParameterIn.QUERY, example = "1"), @Parameter(name = "pageSize", description = "每页条数", in = ParameterIn.QUERY, example = "10"), @Parameter(name = "pageIndex", description = "分页数(从1开始)", in = ParameterIn.QUERY, example = "1") }) @GetMapping(value = "/selectByPageAndCount") public ResponseMsg selectByPageAndCount(String dirid, Integer pageSize, Integer pageIndex) { try { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.select("ST_AsText(geom) as geom, *"); if (null != dirid) { wrapper.eq("dirid", dirid); } Page page = new Page<>(pageIndex, pageSize); page.addOrder(OrderItem.desc("gid")); Page paged = bsprojectMapper.selectPage(page, wrapper); return success(paged.getTotal(), paged.getRecords()); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(summary = "查询字段信息") @GetMapping(value = "/selectFields") public ResponseMsg> selectFields() { try { String tabName = BaseQueryService.getTabName(bsprojectMapper); if (tabName == null) { return null; } String[] strs = tabName.split("\\."); List list = baseQueryService.selectFields(strs[0], strs[1]); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(summary = "查询位置") @Parameters({ @Parameter(name = "x", description = "X", in = ParameterIn.QUERY, example = "114.178955"), @Parameter(name = "y", description = "Y", in = ParameterIn.QUERY, example = "38.991743") }) @GetMapping(value = "/selectLocation") public ResponseMsg selectLocation(double x, double y) { try { String wkt = String.format("POINT(%f %f)", x, y); List list = baseQueryService.selectLocation(wkt); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @Operation(summary = "删除一条") @Parameters({ @Parameter(name = "gid", description = "ID", in = ParameterIn.QUERY, example = "1") }) @GetMapping(value = "/delete") public ResponseMsg delete(int gid) { try { int rows = bsprojectMapper.deleteById(gid); return success(rows); } catch (Exception ex) { return fail(ex, -1); } } @SysLog() @Operation(summary = "插入一条") @Parameters({ @Parameter(name = "entity", description = "实体类") }) @PostMapping(value = "/insert", produces = "application/json; charset=UTF-8") public ResponseMsg insert(@RequestBody BsprojectEntity entity, HttpServletRequest req) { try { if (null == entity) { return fail("实体类不能为空", 0); } UserEntity ue = tokenService.getCurrentUser(req); entity.setCreateuser(ue.getId()); entity.setEventid(StringHelper.getGuid()); entity.setCreatetime(WebHelper.getCurrentTimestamp()); entity.setGeom(StringHelper.getGeomWkt(entity.getGeom())); List list = new ArrayList<>(); list.add(entity); int rows = bsprojectMapper.insertBatch(list); return success(rows); } catch (Exception ex) { return fail(ex, -1); } } @SysLog() @Operation(summary = "更新一条") @Parameters({ @Parameter(name = "entity", description = "实体类") }) @ResponseBody @PostMapping(value = "/update", produces = "application/json; charset=UTF-8") public ResponseMsg update(@RequestBody BsprojectEntity entity, HttpServletRequest req) { try { if (null == entity) { return fail("实体类不能为空", 0); } UserEntity ue = tokenService.getCurrentUser(req); entity.setUpdateuser(ue.getId()); entity.setUpdatetime(WebHelper.getCurrentTimestamp()); entity.setGeom(StringHelper.getGeomWkt(entity.getGeom())); List list = new ArrayList<>(); list.add(entity); int rows = bsprojectMapper.updateBatch(list); return success(rows); } catch (Exception ex) { return fail(ex, -1); } } }