package com.ruoyi.app.position.controller; import javax.servlet.http.HttpServletResponse; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWellParam; import com.ruoyi.app.position.domain.ArdAppPosition; import com.ruoyi.app.position.service.IArdAppPositionService; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.utils.minio.MinioUtil; import com.ruoyi.utils.result.Results; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; 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.*; /** * app位置Controller * * @author ard * @date 2023-07-18 */ @Api(tags = "app位置") @RestController @RequestMapping("/app/position") public class ArdAppPositionController extends BaseController { @Autowired private IArdAppPositionService ardAppPositionService; @Autowired private ISysUserService sysUserService; // @Autowired // private MinioUtils minioUtil; /** * 查询app位置列表 */ @ApiOperation("查询app位置列表") // @PreAuthorize("@ss.hasPermi('app:position:list')") @GetMapping("/list") public TableDataInfo list(ArdAppPosition ardAppPosition) { startPage(); List list = ardAppPositionService.selectArdAppPositionList(ardAppPosition); return getDataTable(list); } /** * 导出app位置列表 */ @PreAuthorize("@ss.hasPermi('app:position:export')") @Log(title = "app位置", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ArdAppPosition ardAppPosition) { List list = ardAppPositionService.selectArdAppPositionList(ardAppPosition); ExcelUtil util = new ExcelUtil(ArdAppPosition.class); util.exportExcel(response, list, "app位置数据"); } /** * 获取app位置详细信息 */ @PreAuthorize("@ss.hasPermi('app:position:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return success(ardAppPositionService.selectArdAppPositionById(id)); } /** * 新增app位置 */ @ApiOperation("新增app位置") // @PreAuthorize("@ss.hasPermi('app:position:add')") @Log(title = "app位置", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ArdAppPosition ardAppPosition) { return AjaxResult.success(ardAppPositionService.insertArdAppPosition(ardAppPosition)); } /** * 修改app位置 */ @PreAuthorize("@ss.hasPermi('app:position:edit')") @Log(title = "app位置", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ArdAppPosition ardAppPosition) { return toAjax(ardAppPositionService.updateArdAppPosition(ardAppPosition)); } /** * 删除app位置 */ @PreAuthorize("@ss.hasPermi('app:position:remove')") @Log(title = "app位置", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(ardAppPositionService.deleteArdAppPositionByIds(ids)); } /** * 获取所有用户 */ @ApiOperation("获取所有用户") @GetMapping("/getUserlist") public AjaxResult getUserlist(Long deptId) { SysUser user=new SysUser(); user.setDeptId(deptId); List list = sysUserService.selectUserList(user); return AjaxResult.success(list); } /** * 获取所有app用户 */ @ApiOperation("获取所有app用户") @GetMapping("/getAppUserList") public AjaxResult getAppUserList(Long deptId) { SysUser user = new SysUser(); user.setDeptId(deptId); List list = sysUserService.selectAllAppUserList(user); return AjaxResult.success(list); } /** * 获取所有app用户 */ @ApiOperation("获取所有app用户pc") @GetMapping("/getAppUserForPclist") public AjaxResult getAppUserForPclist(Long deptId) { SysUser user=new SysUser(); user.setDeptId(deptId); List list = sysUserService.selectAllAppUserList(user); List onLineList=new ArrayList<>(); List offLineList=new ArrayList<>(); for(SysUser sysUser:list) { ArdAppPosition ardAppPosition = ardAppPositionService.selectLastArdAppPositionByUserId(sysUser.getUserId()); if(ardAppPosition!=null) { Map params =new HashMap<>(); params.put("longitude", ardAppPosition.getLongitude()); params.put("latitude", ardAppPosition.getLatitude()); params.put("altitude", ardAppPosition.getAltitude()); params.put("bearing", ardAppPosition.getBearing()); sysUser.setParams(params); } if(StringUtils.isNotNull(sysUser.getAppOnlineState())) { if(sysUser.getAppOnlineState().equals("1")) { onLineList.add(sysUser); } else { offLineList.add(sysUser); } } else { offLineList.add(sysUser); } } Map onlineMap=new HashMap<>(); onlineMap.put("children",onLineList); onlineMap.put("name","在线用户("+onLineList.size()+")"); onlineMap.put("disabled",true); onlineMap.put("id","onLine"); Map offlineMap=new HashMap<>(); offlineMap.put("children",offLineList); offlineMap.put("name","离线用户("+offLineList.size()+")"); offlineMap.put("disabled",true); offlineMap.put("id","offLine"); List< Map > lists = new ArrayList<>(); lists.add(onlineMap); lists.add(offlineMap); return AjaxResult.success(lists); } /** * 获取用户详情 */ @ApiOperation("获取用户详情") @GetMapping("/getUserInfo") public AjaxResult getUserInfo(String userId) { SysUser sysUser = sysUserService.selectUserById(userId); return AjaxResult.success(sysUser); } @PostMapping("/uploadFile") @ApiOperation("上传文件") public AjaxResult uploadFile(MultipartFile file,String type) { String url = MinioUtil.putObjectAndGetUrl("app",type, file); return AjaxResult.success(url); } @GetMapping("/getOnlinePCOrCommander") @ApiOperation("查询本部门在线PC端及指挥端") public AjaxResult getOnlinePCOrCommander() { String usersId = SecurityUtils.getUserId(); Map> result = ardAppPositionService.getOnlinePCOrCommander(usersId); return AjaxResult.success(result); } @PostMapping("/sendCheckCommandersPosition") @ApiOperation("发起查看指挥端位置") public AjaxResult sendCheckCommandersPosition(@RequestBody Map para) { String usersId = SecurityUtils.getUserId(); try{ ardAppPositionService.sendCheckCommandersPosition(usersId,para); return AjaxResult.success(); }catch(Exception e){ return AjaxResult.error(); } } @PostMapping("/sendCheckSYCarsPosition") @ApiOperation("发起查看车辆位置") public AjaxResult sendCheckSYCarsPosition(@RequestBody Map para) { String usersId = SecurityUtils.getUserId(); try{ ardAppPositionService.sendCheckSYCarsPosition(usersId,para); return AjaxResult.success(); }catch(Exception e){ return AjaxResult.error(); } } }