package com.sooka.sponest.data.digitalfirecontrol.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.utils.DeptLevelUtil; import com.sooka.sponest.data.app.domain.VisuForestCloudMapVO; import com.sooka.sponest.data.basicdata.domain.CenterdataTForestFirehydrant; import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWatercrane; import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWaterintake; import com.sooka.sponest.data.digitalfirecontrol.domain.*; import com.sooka.sponest.data.digitalfirecontrol.domain.vo.DataVisuFireCloudMapVO; import com.sooka.sponest.data.digitalfirecontrol.service.IFireControlBigDataService; import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestImportarea; import com.sooka.sponest.data.generalbusiness.domain.vo.CenterdataTForestWeatherinformationBigDataVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @Auther: mjq * @Date: 2023/5/12 - 05 - 12 - 9:25 * @Description: com.sooka.sponest.data.digitalfirecontrol.controller * @version: 1.0 */ @RestController @RequestMapping("/fireControlBigData") @Api(tags = "消防数据中台控制器") public class FireControlBigDataController extends BaseController { @Autowired private IFireControlBigDataService iFireControlBigDataService; @Resource private DeptLevelUtil deptLevelUtil; /** * 水鹤数量按部门分组 */ @ApiOperation(value = "查询水鹤数量按部门分组", notes = "查询水鹤数量按部门分组") @PostMapping("/selectBigDataWatercraneDeptCount") public R selectBigDataWatercraneDeptCount() { CenterdataTForestWatercrane centerdataTForestWatercrane = new CenterdataTForestWatercrane(); return R.ok(iFireControlBigDataService.selectBigDataWatercraneDeptCount(centerdataTForestWatercrane)); } /** * 查询消防各资源数量 */ @ApiOperation(value = "远程调用查询消防各资源数量", notes = "远程调用查询消防各资源数量") @PostMapping("/selectAllResource") public R geFireControltTotal(@RequestBody VisuForestCloudMapVO visuForestCloudMapVO) { return R.ok(iFireControlBigDataService.geFireControltTotal(visuForestCloudMapVO)); } /** * 取水口数量按部门分组 */ @ApiOperation(value = "查询取水口数量按部门分组远端调用", notes = "查询取水口数量按部门分组远端调用") @PostMapping("/selectBigDataWaterintakeDeptCount") public R selectBigDataWaterintakeDeptCount(CenterdataTForestWaterintake centerdataTForestWaterintake) { return R.ok(iFireControlBigDataService.selectBigDataWaterintakeDeptCount(centerdataTForestWaterintake)); } /** * 按年月日模糊查询天气综合信息 */ @ApiImplicitParams(value = { @ApiImplicitParam(name = "day", value = "日期", dataType = "String", required = true, paramType = "body") }) @ApiOperation(value = "按年月日模糊查询天气综合信息远端调用", notes = "按年月日模糊查询天气综合信息远端调用") @PostMapping("/selectBigDataByYearMonthFegin") public R selectBigDataByYearMonthFegin(@ApiIgnore @RequestBody CenterdataTForestWeatherinformationBigDataVO centerdataTForestWeatherinformationBigDataVO) { return R.ok(iFireControlBigDataService.selectBigDataByYearMonth(centerdataTForestWeatherinformationBigDataVO)); } /** * 专职站 */ @PostMapping("/selectBigDataFirecontrolFulltimeStationDeptCount") public R selectBigDataFirecontrolFulltimeStationDeptCount() { CenterdataTFirecontrolFulltimeStation centerdataTFirecontrolFulltimeStation = new CenterdataTFirecontrolFulltimeStation(); return R.ok(iFireControlBigDataService.selectBigDataFirecontrolFulltimeStationDeptCount(centerdataTFirecontrolFulltimeStation)); } /** * 消火栓 */ @ApiOperation(value = "远端调用查询消火栓数量按部门分组", notes = "远端调用查询消火栓数量按部门分组") @PostMapping("/selectBigDataFirehydrantDeptCount") public R selectBigDataFirehydrantDeptCount(CenterdataTForestFirehydrant centerdataTForestFirehydrant) { return R.ok(iFireControlBigDataService.selectBigDataFirehydrantDeptCount(centerdataTForestFirehydrant)); } /** * 泡沫液 */ @ApiOperation(value = "远端调用查询泡沫液数量按部门分组", notes = "远端调用查询泡沫液数量按部门分组") @PostMapping("/selectBigDataFirecontrolFoamLiquidDeptCount") public R selectBigDataFirecontrolFoamLiquidDeptCount(@RequestBody CenterdataTFirecontrolFoamLiquid centerdataTFirecontrolFoamLiquid) { List> mapList = iFireControlBigDataService.selectBigDataFirecontrolFoamLiquidDeptCount(centerdataTFirecontrolFoamLiquid); if (StringUtils.isNull(centerdataTFirecontrolFoamLiquid.getDeptId())){ centerdataTFirecontrolFoamLiquid.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId()); } return R.ok(deptLevelUtil.getDeptLevel(String.valueOf(centerdataTFirecontrolFoamLiquid.getDeptId()),mapList,"reserves")); } /** * 基本联动力量 */ @ApiOperation(value = "可视化获取基本联动力量列表", notes = "可视化获取基本联动力量列表") @PostMapping("/getbasiclinkageforeList") public AjaxResult getbasiclinkageforeList(@RequestBody CenterdataTFirecontrolBasicLinkageForce centerdataTFirecontrolOtherLinkageForce) { List> mapList = iFireControlBigDataService.getbasiclinkageforeList(centerdataTFirecontrolOtherLinkageForce); if (StringUtils.isNull(centerdataTFirecontrolOtherLinkageForce.getDeptId())){ centerdataTFirecontrolOtherLinkageForce.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId()); } List addKeys = new ArrayList<>(); addKeys.add("forkliftNum"); addKeys.add("fightingNum"); addKeys.add("ton"); return AjaxResult.success(deptLevelUtil.getDeptLevel(String.valueOf(centerdataTFirecontrolOtherLinkageForce.getDeptId()),mapList,addKeys)); } /** * 其他力量统计 */ @ApiOperation(value = "其他联动力量统计饼图", notes = "其他联动力量统计饼图") @PostMapping("/getOtherlinkageforceList") public AjaxResult getOtherlinkageforceList(@RequestBody CenterdataTFirecontrolOtherLinkageForce centerdataTFirecontrolOtherLinkageForce) { return AjaxResult.success(iFireControlBigDataService.getOtherlinkageforceList(centerdataTFirecontrolOtherLinkageForce)); } /** * 重点区域 */ @ApiImplicitParams(value = { @ApiImplicitParam(name = "areaType", value = "区域类型", dataType = "String", required = true, paramType = "body") }) @ApiOperation(value = "远端调用查询重点区域数量按部门分组", notes = "远端调用查询重点区域数量按部门分组") @PostMapping("/selectBigDataImportareaDeptCount") public R selectBigDataImportareaDeptCount(@ApiIgnore @RequestBody CenterdataTForestImportarea centerdataTForestImportarea) { return R.ok(iFireControlBigDataService.selectBigDataImportareaDeptCount(centerdataTForestImportarea)); } /** * 消防力量 */ @ApiOperation(value = "远端调用查询消防力量管理数量按部门分组", notes = "远端调用查询消防力量管理数量按部门分组") @PostMapping("/selectBigDataFireforceDeptCount") public R selectBigDataFireforceDeptCount(@RequestBody CenterdataTFirecontrolFireForce centerdataTFirecontrolFireForce) { List> list = iFireControlBigDataService.selectBigDataFireforceDeptCount(centerdataTFirecontrolFireForce); if (StringUtils.isNull(centerdataTFirecontrolFireForce.getDeptId())){ centerdataTFirecontrolFireForce.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId()); } return R.ok(deptLevelUtil.getDeptLevel(String.valueOf(centerdataTFirecontrolFireForce.getDeptId()),list,"value")); } /** * 水鹤+取水口+消火栓 */ @ApiOperation(value = "查询水鹤+取水口+消火栓远端调用", notes = "查询水鹤+取水口+消火栓远端调用") @PostMapping("/selectBigDataNumWithDeptCount") public R selectBigDataNumWithDeptCount(@RequestBody VisuForestCloudMapVO visuForestCloudMapVO) { List> list = iFireControlBigDataService.selectBigDataNumWithDeptCount(visuForestCloudMapVO); if (StringUtils.isNull(visuForestCloudMapVO.getDeptId())){ visuForestCloudMapVO.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId()); } List addKeys = new ArrayList<>(); addKeys.add("fireHydrant"); addKeys.add("waterIntake"); addKeys.add("waterCranes"); return R.ok(deptLevelUtil.getDeptLevel(String.valueOf(visuForestCloudMapVO.getDeptId()),list,addKeys)); } /** * 重点场所统计 * * @author 韩福成 * @date 2023/10/31 16:21 */ @ApiOperation(value = "重点场所统计", notes = "重点场所统计") @PostMapping("/selectKeyLocations") public R selectKeyLocations(@RequestBody DataVisuFireCloudMapVO dataVisuFireCloudMapVO){ List> list = iFireControlBigDataService.selectKeyLocations(dataVisuFireCloudMapVO); if (StringUtils.isNull(dataVisuFireCloudMapVO.getDeptId())){ dataVisuFireCloudMapVO.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId()); } return R.ok(deptLevelUtil.getDeptLevel(String.valueOf(dataVisuFireCloudMapVO.getDeptId()),list,"num")); } }