|  |  |  | 
|---|
|  |  |  | 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.annotation.Anonymous; | 
|---|
|  |  |  | 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.pagehelper.JpaPageInfo; | 
|---|
|  |  |  | 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 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 | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public TableDataInfo list(ArdAlarmpointsWell ardAlarmpointsWell) { | 
|---|
|  |  |  | startPage(); | 
|---|
|  |  |  | List<ArdAlarmpointsWell> list = ardAlarmpointsWellService.selectArdAlarmpointsWellList(ardAlarmpointsWell); | 
|---|
|  |  |  | return getDataTable(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PreAuthorize("@ss.hasPermi('alarmpoints:well:list')") | 
|---|
|  |  |  | @GetMapping("/nonPageList") | 
|---|
|  |  |  | @ApiOperation("查询井列表-不分页") | 
|---|
|  |  |  | public AjaxResult nonPageList(ArdAlarmpointsWell ardAlarmpointsWell) { | 
|---|
|  |  |  | List<ArdAlarmpointsWell> list = ardAlarmpointsWellService.selectArdAlarmpointsWellList(ardAlarmpointsWell); | 
|---|
|  |  |  | return success(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | @Log(title = "井管理", businessType = BusinessType.EXPORT) | 
|---|
|  |  |  | @PostMapping("/export") | 
|---|
|  |  |  | @ApiOperation("导出井列表") | 
|---|
|  |  |  | public void export(HttpServletResponse response, ArdAlarmpointsWell ardAlarmpointsWell) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public void export(HttpServletResponse response, ArdAlarmpointsWell ardAlarmpointsWell) { | 
|---|
|  |  |  | List<ArdAlarmpointsWell> list = ardAlarmpointsWellService.selectArdAlarmpointsWellList(ardAlarmpointsWell); | 
|---|
|  |  |  | ExcelUtil<ArdAlarmpointsWell> util = new ExcelUtil<ArdAlarmpointsWell>(ArdAlarmpointsWell.class); | 
|---|
|  |  |  | util.exportExcel(response, list, "井管理数据"); | 
|---|
|  |  |  | 
|---|
|  |  |  | @PreAuthorize("@ss.hasPermi('alarmpoints:well:query')") | 
|---|
|  |  |  | @GetMapping(value = "/{id}") | 
|---|
|  |  |  | @ApiOperation("获取井详细信息") | 
|---|
|  |  |  | public AjaxResult getInfo(@PathVariable("id") String id) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public AjaxResult getInfo(@PathVariable("id") String id) { | 
|---|
|  |  |  | return success(ardAlarmpointsWellService.selectArdAlarmpointsWellById(id)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @Log(title = "井管理", businessType = BusinessType.INSERT) | 
|---|
|  |  |  | @PostMapping | 
|---|
|  |  |  | @ApiOperation("新增井") | 
|---|
|  |  |  | public AjaxResult add(@RequestBody ArdAlarmpointsWell ardAlarmpointsWell) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return toAjax(ardAlarmpointsWellService.insertArdAlarmpointsWell(ardAlarmpointsWell)); | 
|---|
|  |  |  | public AjaxResult add(@RequestBody ArdAlarmpointsWell ardAlarmpointsWell) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | return toAjax(ardAlarmpointsWellService.insertArdAlarmpointsWell(ardAlarmpointsWell)); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | return AjaxResult.error(e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | @Log(title = "井管理", businessType = BusinessType.UPDATE) | 
|---|
|  |  |  | @PutMapping | 
|---|
|  |  |  | @ApiOperation("修改井") | 
|---|
|  |  |  | public AjaxResult edit(@RequestBody ArdAlarmpointsWell ardAlarmpointsWell) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return toAjax(ardAlarmpointsWellService.updateArdAlarmpointsWell(ardAlarmpointsWell)); | 
|---|
|  |  |  | 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}") | 
|---|
|  |  |  | @DeleteMapping("/{ids}") | 
|---|
|  |  |  | @ApiOperation("删除井") | 
|---|
|  |  |  | public AjaxResult remove(@PathVariable String[] ids) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public AjaxResult remove(@PathVariable String[] ids) { | 
|---|
|  |  |  | return toAjax(ardAlarmpointsWellService.deleteArdAlarmpointsWellByIds(ids)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @PreAuthorize("@ss.hasPermi('alarmpoints:well:import')") | 
|---|
|  |  |  | @PostMapping("/importData") | 
|---|
|  |  |  | @ApiOperation("导入井") | 
|---|
|  |  |  | public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { | 
|---|
|  |  |  | ExcelUtil<ArdAlarmpointsWell> util = new ExcelUtil<ArdAlarmpointsWell>(ArdAlarmpointsWell.class); | 
|---|
|  |  |  | List<ArdAlarmpointsWell> 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) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public void importTemplate(HttpServletResponse response) { | 
|---|
|  |  |  | ExcelUtil<ArdAlarmpointsWell> util = new ExcelUtil<ArdAlarmpointsWell>(ArdAlarmpointsWell.class); | 
|---|
|  |  |  | util.importTemplateExcel(response, "井数据"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 井选项数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @GetMapping("/options") | 
|---|
|  |  |  | @ApiOperation("井选项数据") | 
|---|
|  |  |  | public List options(ArdAlarmpointsWell ardAlarmpointsWell) { | 
|---|
|  |  |  | List<ArdAlarmpointsWell> 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<Long> deptList = sysDeptService.deptIdBySub(sysUser.getDeptId()); | 
|---|
|  |  |  | //根据deptId获取对应兴趣点数据 | 
|---|
|  |  |  | List<ArdAlarmpointsWell> 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<Long> deptList = sysDeptService.deptIdBySub(sysUser.getDeptId()); | 
|---|
|  |  |  | ardAlarmpointsWellParam.setDeptList(deptList); | 
|---|
|  |  |  | //根据deptId获取对应兴趣点数据 | 
|---|
|  |  |  | return Results.succeed(ardAlarmpointsWellService.conditionList(ardAlarmpointsWellParam)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/getNearbyWells") | 
|---|
|  |  |  | @ApiOperation("查询附近的所有井") | 
|---|
|  |  |  | public AjaxResult getNearbyWells(Double longitude,Double latitude, Long deptId, Integer pageNum, Integer pageSize) { | 
|---|
|  |  |  | JpaPageInfo jpaPageInfo = new JpaPageInfo(); | 
|---|
|  |  |  | jpaPageInfo.setPageNum(pageNum); | 
|---|
|  |  |  | jpaPageInfo.setPageSize(pageSize); | 
|---|
|  |  |  | List<ArdAlarmpointsWell> nearbyWellList = ardAlarmpointsWellService.getNearbyWellList(longitude,latitude, deptId, 1000); | 
|---|
|  |  |  | jpaPageInfo.doPage(nearbyWellList); | 
|---|
|  |  |  | return AjaxResult.success(jpaPageInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|