package com.ruoyi.alarmpoints.well.controller; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWellParam; import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.utils.result.Results; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DuplicateKeyException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.core.page.TableDataInfo; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 井管理Controller * * @author 刘苏义 * @date 2023-03-07 */ @RestController @RequestMapping("/alarmpoints/well") @Api(tags = "井管理接口") public class ArdAlarmpointsWellController extends BaseController { @Resource private IArdAlarmpointsWellService ardAlarmpointsWellService; @Autowired private ISysUserService sysUserService; @Autowired private ISysDeptService sysDeptService; /** * 查询井管理列表 */ @PreAuthorize("@ss.hasPermi('alarmpoints:well:list')") @GetMapping("/list") @ApiOperation("查询井列表") public TableDataInfo list(ArdAlarmpointsWell ardAlarmpointsWell) { startPage(); List list = ardAlarmpointsWellService.selectArdAlarmpointsWellList(ardAlarmpointsWell); return getDataTable(list); } @PreAuthorize("@ss.hasPermi('alarmpoints:well:list')") @GetMapping("/nonPageList") @ApiOperation("查询井列表-不分页") public AjaxResult nonPageList(ArdAlarmpointsWell ardAlarmpointsWell) { List list = ardAlarmpointsWellService.selectArdAlarmpointsWellList(ardAlarmpointsWell); return success(list); } /** * 导出井管理列表 */ @PreAuthorize("@ss.hasPermi('alarmpoints:well:export')") @Log(title = "井管理", businessType = BusinessType.EXPORT) @PostMapping("/export") @ApiOperation("导出井列表") public void export(HttpServletResponse response, ArdAlarmpointsWell ardAlarmpointsWell) { List list = ardAlarmpointsWellService.selectArdAlarmpointsWellList(ardAlarmpointsWell); ExcelUtil util = new ExcelUtil(ArdAlarmpointsWell.class); util.exportExcel(response, list, "井管理数据"); } /** * 获取井管理详细信息 */ @PreAuthorize("@ss.hasPermi('alarmpoints:well:query')") @GetMapping(value = "/{id}") @ApiOperation("获取井详细信息") public AjaxResult getInfo(@PathVariable("id") String id) { return success(ardAlarmpointsWellService.selectArdAlarmpointsWellById(id)); } /** * 新增井管理 */ @PreAuthorize("@ss.hasPermi('alarmpoints:well:add')") @Log(title = "井管理", businessType = BusinessType.INSERT) @PostMapping @ApiOperation("新增井") public AjaxResult add(@RequestBody ArdAlarmpointsWell ardAlarmpointsWell) { try { return toAjax(ardAlarmpointsWellService.insertArdAlarmpointsWell(ardAlarmpointsWell)); } catch (Exception e) { return AjaxResult.error(e.getMessage()); } } /** * 修改井管理 */ @PreAuthorize("@ss.hasPermi('alarmpoints:well:edit')") @Log(title = "井管理", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation("修改井") public AjaxResult edit(@RequestBody ArdAlarmpointsWell ardAlarmpointsWell) { try { return toAjax(ardAlarmpointsWellService.updateArdAlarmpointsWell(ardAlarmpointsWell)); } catch (Exception e) { return AjaxResult.error(e.getMessage()); } } /** * 删除井管理 */ @PreAuthorize("@ss.hasPermi('alarmpoints:well:remove')") @Log(title = "井管理", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") @ApiOperation("删除井") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(ardAlarmpointsWellService.deleteArdAlarmpointsWellByIds(ids)); } @Log(title = "井管理", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('alarmpoints:well:import')") @PostMapping("/importData") @ApiOperation("导入井") public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil util = new ExcelUtil(ArdAlarmpointsWell.class); List userList = util.importExcel(file.getInputStream()); String operName = getUsername(); String message = ardAlarmpointsWellService.importUser(userList, updateSupport, operName); return success(message); } @PostMapping("/importTemplate") @ApiOperation("井导入模板") public void importTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil(ArdAlarmpointsWell.class); util.importTemplateExcel(response, "井数据"); } /** * 井选项数据 */ @GetMapping("/options") @ApiOperation("井选项数据") public List options(ArdAlarmpointsWell ardAlarmpointsWell) { List list = ardAlarmpointsWellService.selectArdAlarmpointsWellByWellIdLike(ardAlarmpointsWell); List options = new ArrayList(); for (ArdAlarmpointsWell item : list) { Map option = new HashMap(); option.put("value", item.getId()); option.put("label", item.getWellId()); option.put("description", item.getOilProduction()); options.add(option); } return options; } @GetMapping("/wellById/{id}") @ApiOperation("查询单条兴趣点") public Results wellById(@PathVariable String id) { return Results.succeed(ardAlarmpointsWellService.wellById(id)); } @PostMapping("/wellList") @ApiOperation("查询权限下所有兴趣点") public Results wellList(){ String usersId = SecurityUtils.getUserId(); //根据userId查询部门Id SysUser sysUser = sysUserService.selectUserById(usersId); //根据当前deptId或者当前及所属下级的所有deptId List deptList = sysDeptService.deptIdBySub(sysUser.getDeptId()); //根据deptId获取对应兴趣点数据 List list = ardAlarmpointsWellService.wellList(deptList); return Results.succeed(list); } @PostMapping("/conditionList") @ApiOperation("查询并筛选权限下所有兴趣点") public Results conditionList(ArdAlarmpointsWellParam ardAlarmpointsWellParam){ String usersId = SecurityUtils.getUserId(); //根据userId查询部门Id SysUser sysUser = sysUserService.selectUserById(usersId); //根据当前deptId或者当前及所属下级的所有deptId List deptList = sysDeptService.deptIdBySub(sysUser.getDeptId()); ardAlarmpointsWellParam.setDeptList(deptList); //根据deptId获取对应兴趣点数据 return Results.succeed(ardAlarmpointsWellService.conditionList(ardAlarmpointsWellParam)); } @PostMapping("/getNearbyWells") @ApiOperation("查询附近的所有井") @ApiOperationSupport(includeParameters = {"longitude","latitude","deptId","pageNum","pageSize"}) public TableDataInfo getNearbyWells(ArdAlarmpointsWell ardAlarmpointsWell){ startPage(); List nearbyWellList = ardAlarmpointsWellService.getNearbyWellList(ardAlarmpointsWell,1000); return getDataTable(nearbyWellList); } }