From 7dfee323ee364b6b97ce49e37967eb7697b702d2 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Wed, 16 Jul 2025 09:08:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=81=E4=B8=9A=E5=A4=A7=E5=B1=8F=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=92=8C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CompanyBigScreenConfigController.java | 141 ++++++++++++++++++ .../CompanyBigScreenStatisticsController.java | 68 +++++++-- .../entity/CompanyBigScreenConfig.java | 65 ++++++++ .../entity/dto/CompanyBigScreenConfigDto.java | 11 ++ .../entity/vo/CompanyBigScreenConfigVo.java | 11 ++ .../mapper/CompanyBigScreenConfigMapper.java | 53 +++++++ .../xml/CompanyBigScreenConfigMapper.xml | 18 +++ .../ICompanyBigScreenConfigService.java | 67 +++++++++ .../CompanyBigScreenConfigServiceImpl.java | 93 ++++++++++++ .../entity/dto/CompanyProjectStat.java | 10 ++ .../project/entity/dto/ProjectDevStat.java | 13 +- .../service/impl/ProjectServiceImpl.java | 39 ++++- 12 files changed, 575 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/basicdata/controller/CompanyBigScreenConfigController.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/basicdata/entity/CompanyBigScreenConfig.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/basicdata/entity/dto/CompanyBigScreenConfigDto.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/basicdata/entity/vo/CompanyBigScreenConfigVo.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/CompanyBigScreenConfigMapper.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/CompanyBigScreenConfigMapper.xml create mode 100644 src/main/java/com/zhgd/xmgl/modules/basicdata/service/ICompanyBigScreenConfigService.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyBigScreenConfigServiceImpl.java diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/CompanyBigScreenConfigController.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/CompanyBigScreenConfigController.java new file mode 100644 index 000000000..a298fa8a3 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/CompanyBigScreenConfigController.java @@ -0,0 +1,141 @@ +package com.zhgd.xmgl.modules.basicdata.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zhgd.annotation.OperLog; +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.modules.basicdata.entity.CompanyBigScreenConfig; +import com.zhgd.xmgl.modules.basicdata.entity.dto.CompanyBigScreenConfigDto; +import com.zhgd.xmgl.modules.basicdata.entity.vo.CompanyBigScreenConfigVo; +import com.zhgd.xmgl.modules.basicdata.service.ICompanyBigScreenConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.MapUtils; +import org.simpleframework.xml.core.Validate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.HashMap; +import java.util.List; + + +/** + * @Title: Controller + * @Description: 企业大屏配置 + * @author: pds + * @date: 2025-07-15 + * @version: V1.0 + */ +@RestController +@RequestMapping("/xmgl/companyBigScreenConfig") +@Slf4j +@Api(tags = "企业大屏配置相关Api") +public class CompanyBigScreenConfigController { + @Lazy + @Autowired + private ICompanyBigScreenConfigService companyBigScreenConfigService; + + /** + * 分页列表查询 + * + * @return + */ + @OperLog(operModul = "企业大屏配置管理", operType = "分页查询", operDesc = "分页列表查询企业大屏配置信息") + @ApiOperation(value = "分页列表查询企业大屏配置信息", notes = "分页列表查询企业大屏配置信息", httpMethod = "GET") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), + }) + @GetMapping(value = "/page") + public Result> queryPageList(@ApiIgnore @RequestParam HashMap param) { + return Result.success(companyBigScreenConfigService.queryPageList(param)); + } + + /** + * 列表查询 + * + * @return + */ + @OperLog(operModul = "企业大屏配置管理", operType = "列表查询", operDesc = "列表查询企业大屏配置信息") + @ApiOperation(value = "列表查询企业大屏配置信息", notes = "列表查询企业大屏配置信息", httpMethod = "GET") + @GetMapping(value = "/list") + public Result> queryList(@ApiIgnore @RequestParam HashMap param) { + return Result.success(companyBigScreenConfigService.queryList(param)); + } + + /** + * 添加 + * + * @param companyBigScreenConfigDto + * @return + */ + @OperLog(operModul = "企业大屏配置管理", operType = "添加", operDesc = "添加企业大屏配置信息") + @ApiOperation(value = "添加企业大屏配置信息", notes = "添加企业大屏配置信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody @Validate CompanyBigScreenConfigDto companyBigScreenConfigDto) { + companyBigScreenConfigService.add(companyBigScreenConfigDto); + return Result.ok(); + } + + /** + * 编辑 + * + * @param companyBigScreenConfigDto + * @return + */ + @OperLog(operModul = "企业大屏配置管理", operType = "编辑", operDesc = "编辑企业大屏配置信息") + @ApiOperation(value = "编辑企业大屏配置信息", notes = "编辑企业大屏配置信息", httpMethod = "POST") + @PostMapping(value = "/edit") + public Result edit(@RequestBody CompanyBigScreenConfigDto companyBigScreenConfigDto) { + companyBigScreenConfigService.edit(companyBigScreenConfigDto); + return Result.ok(); + } + + /** + * 通过id删除 + * + * @return + */ + @OperLog(operModul = "企业大屏配置管理", operType = "删除", operDesc = "删除企业大屏配置信息") + @ApiOperation(value = "删除企业大屏配置信息", notes = "删除企业大屏配置信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "企业大屏配置ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}") + @PostMapping(value = "/delete") + public Result delete(@ApiIgnore @RequestBody HashMap map) { + companyBigScreenConfigService.delete(MapUtils.getString(map, "id")); + return Result.ok(); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @OperLog(operModul = "企业大屏配置管理", operType = "通过id查询", operDesc = "通过id查询企业大屏配置信息") + @ApiOperation(value = "通过id查询企业大屏配置信息", notes = "通过id查询企业大屏配置信息", httpMethod = "GET") + @ApiImplicitParam(name = "id", value = "企业大屏配置ID", paramType = "query", required = true, dataType = "Integer") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id", required = true) String id) { + return Result.success(companyBigScreenConfigService.queryById(id)); + } + + @OperLog(operModul = "企业大屏配置管理", operType = "", operDesc = "保存企业大屏配置信息") + @ApiOperation(value = "保存企业大屏配置信息", notes = "保存企业大屏配置信息", httpMethod = "POST") + @PostMapping(value = "/saveEntity") + public Result saveEntity(@RequestBody CompanyBigScreenConfigDto companyBigScreenConfigDto) { + CompanyBigScreenConfig config = companyBigScreenConfigService.getOne(new LambdaQueryWrapper() + .eq(CompanyBigScreenConfig::getCompanySn, companyBigScreenConfigDto.getCompanySn())); + if (config == null) { + companyBigScreenConfigService.add(companyBigScreenConfigDto); + } else { + companyBigScreenConfigDto.setId(config.getId()); + companyBigScreenConfigService.edit(companyBigScreenConfigDto); + } + return Result.ok(); + } +} diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/CompanyBigScreenStatisticsController.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/CompanyBigScreenStatisticsController.java index 62155c298..11c8dba41 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/CompanyBigScreenStatisticsController.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/CompanyBigScreenStatisticsController.java @@ -1,20 +1,32 @@ package com.zhgd.xmgl.modules.basicdata.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jgoodies.common.base.Objects; import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.modules.basicdata.entity.Company; +import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.entity.vo.CompanyProjectTypeCountVo; import com.zhgd.xmgl.modules.basicdata.entity.vo.ProjectWorkAndInspectCountVo; +import com.zhgd.xmgl.modules.basicdata.enums.SystemUserAccountTypeEnum; import com.zhgd.xmgl.modules.basicdata.service.ICompanyBigScreenStatisticsService; +import com.zhgd.xmgl.modules.basicdata.service.ICompanyService; +import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; +import com.zhgd.xmgl.security.util.SecurityUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; 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 java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -27,11 +39,16 @@ import java.util.Map; @RestController @RequestMapping("/xmgl/companyBigScreen") @Slf4j -@Api(tags="企业大屏统计") +@Api(tags = "企业大屏统计") public class CompanyBigScreenStatisticsController { @Autowired private ICompanyBigScreenStatisticsService companyBigScreenStatisticsService; - + @Lazy + @Autowired + private ISystemUserService systemUserService; + @Lazy + @Autowired + private ICompanyService companyService; @ApiOperation(value = "统计企业下项目类型统计", notes = "统计企业下项目类型统计") @ApiImplicitParams({ @@ -56,7 +73,7 @@ public class CompanyBigScreenStatisticsController { @ApiImplicitParam(name = "sn", value = "公司sn", paramType = "body", required = true, dataType = "String"), }) @PostMapping("/selectWorkerAndAttendanceCount") - public Result> selectWorkerAndAttendanceCount(@RequestBody Map map) { + public Result> selectWorkerAndAttendanceCount(@RequestBody Map map) { return Result.success(companyBigScreenStatisticsService.selectWorkerAndAttendanceCount(map)); } @@ -65,7 +82,7 @@ public class CompanyBigScreenStatisticsController { @ApiImplicitParam(name = "sn", value = "公司sn或项目sn", paramType = "body", required = true, dataType = "String"), }) @PostMapping("/selectDevCountStatistics") - public Result> selectDevCountStatistics(@RequestBody Map map) { + public Result> selectDevCountStatistics(@RequestBody Map map) { return Result.success(companyBigScreenStatisticsService.selectDevCountStatistics(map)); } @@ -74,7 +91,7 @@ public class CompanyBigScreenStatisticsController { @ApiImplicitParam(name = "sn", value = "公司sn或项目sn", paramType = "body", required = true, dataType = "String"), }) @PostMapping("/selectDevCurrentAlarmCount") - public Result> selectDevCurrentAlarmCount(@RequestBody Map map) { + public Result> selectDevCurrentAlarmCount(@RequestBody Map map) { return Result.success(companyBigScreenStatisticsService.selectDevCurrentAlarmCount(map)); } @@ -83,7 +100,7 @@ public class CompanyBigScreenStatisticsController { @ApiImplicitParam(name = "sn", value = "公司sn或项目sn", paramType = "body", required = true, dataType = "String"), }) @PostMapping("/selectEnvironmentSevenDayAlarmList") - public Result>> selectEnvironmentSevenDayAlarmList(@RequestBody Map map) { + public Result>> selectEnvironmentSevenDayAlarmList(@RequestBody Map map) { return Result.success(companyBigScreenStatisticsService.selectEnvironmentSevenDayAlarmList(map)); } @@ -92,7 +109,7 @@ public class CompanyBigScreenStatisticsController { @ApiImplicitParam(name = "sn", value = "公司sn或项目sn", paramType = "body", required = true, dataType = "String"), }) @PostMapping("/selectTowerSevenDayAlarmList") - public Result>> selectTowerSevenDayAlarmList(@RequestBody Map map) { + public Result>> selectTowerSevenDayAlarmList(@RequestBody Map map) { return Result.success(companyBigScreenStatisticsService.selectTowerSevenDayAlarmList(map)); } @@ -101,7 +118,7 @@ public class CompanyBigScreenStatisticsController { @ApiImplicitParam(name = "sn", value = "公司sn或项目sn", paramType = "body", required = true, dataType = "String"), }) @PostMapping("/selectLifterSevenDayAlarmList") - public Result>> selectLifterSevenDayAlarmList(@RequestBody Map map) { + public Result>> selectLifterSevenDayAlarmList(@RequestBody Map map) { return Result.success(companyBigScreenStatisticsService.selectLifterSevenDayAlarmList(map)); } @@ -110,7 +127,7 @@ public class CompanyBigScreenStatisticsController { @ApiImplicitParam(name = "sn", value = "公司sn或项目sn", paramType = "body", required = true, dataType = "String"), }) @PostMapping("/selectDischargingSevenDayAlarmList") - public Result>> selectDischargingSevenDayAlarmList(@RequestBody Map map) { + public Result>> selectDischargingSevenDayAlarmList(@RequestBody Map map) { return Result.success(companyBigScreenStatisticsService.selectDischargingSevenDayAlarmList(map)); } @@ -119,7 +136,7 @@ public class CompanyBigScreenStatisticsController { @ApiImplicitParam(name = "sn", value = "公司sn或项目sn", paramType = "body", required = true, dataType = "String"), }) @PostMapping("/selectVideoSevenDayAlarmList") - public Result>> selectVideoSevenDayAlarmList(@RequestBody Map map) { + public Result>> selectVideoSevenDayAlarmList(@RequestBody Map map) { return Result.success(companyBigScreenStatisticsService.selectVideoSevenDayAlarmList(map)); } @@ -131,4 +148,35 @@ public class CompanyBigScreenStatisticsController { public Result selectProjectWorkAndInspectCount(@RequestBody Map map) { return Result.success(companyBigScreenStatisticsService.selectProjectWorkAndInspectCount(map)); } + + @ApiOperation(value = "根据企业账号查询该公司的管辖区域范围(总公司看子级的管辖区域范围,其他公司他自己的管辖区域范围)", notes = "根据企业账号查询该公司的管辖区域范围(总公司看子级的管辖区域范围,其他公司他自己的管辖区域范围)", httpMethod = "POST") + @ApiImplicitParams({ +// @ApiImplicitParam(name = "userId", value = "用户id", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/getRangeAddrByUserId") + public Result> getRangeAddrByUserId(@ApiIgnore @RequestBody HashMap paramMap) { + Long userId = SecurityUtils.getUser().getUserId(); + if (userId == null) { + return null; + } + SystemUser systemUser = systemUserService.getById(userId); + if (systemUser == null) { + return null; + } + List rtList = new ArrayList<>(); + Company company = companyService.getOne(new LambdaQueryWrapper() + .eq(Company::getCompanySn, systemUser.getSn())); + if (Objects.equals(systemUser.getAccountType(), SystemUserAccountTypeEnum.ENTERPRISE_ADMINISTRATOR_ACCOUNT.getValue())) { + //查下级的管辖区域范围 + rtList = companyService.list(new LambdaQueryWrapper() + .eq(Company::getCompanyType, 2) + .eq(Company::getHeadquartersSn, company.getHeadquartersSn()) + ); + } else { + //查自己的管辖区域范围 + rtList.add(company); + } + return Result.success(rtList); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/CompanyBigScreenConfig.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/CompanyBigScreenConfig.java new file mode 100644 index 000000000..1158b0bf7 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/CompanyBigScreenConfig.java @@ -0,0 +1,65 @@ +package com.zhgd.xmgl.modules.basicdata.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description: 企业大屏配置 + * @author: pds + * @date: 2025-07-15 + * @version: V1.0 + */ +@Data +@TableName("company_big_screen_config") +@ApiModel(value = "CompanyBigScreenConfig实体类", description = "CompanyBigScreenConfig") +public class CompanyBigScreenConfig implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.Long id; + /** + * companySn + */ + @ApiModelProperty(value = "companySn") + private java.lang.String companySn; + /** + * 摄像头数量统计:是否启用,0否,1是 + */ + @ApiModelProperty(value = "摄像头数量统计:是否启用,0否,1是") + private java.lang.Integer enableVideoDev; + /** + * 扬尘设备监测数量统计:是否启用,0否,1是 + */ + @ApiModelProperty(value = "扬尘设备监测数量统计:是否启用,0否,1是") + private java.lang.Integer enableDustDev; + /** + * 执法记录仪设备监测数量统计:是否启用,0否,1是 + */ + @ApiModelProperty(value = "执法记录仪设备监测数量统计:是否启用,0否,1是") + private java.lang.Integer enablePoliceCameraDev; + /** + * 车辆道闸设备监测数量统计:是否启用,0否,1是 + */ + @ApiModelProperty(value = "车辆道闸设备监测数量统计:是否启用,0否,1是") + private java.lang.Integer enableCarCameraDev; + /** + * AI设备监测数量统计:是否启用,0否,1是 + */ + @ApiModelProperty(value = "AI设备监测数量统计:是否启用,0否,1是") + private java.lang.Integer enableAiAnalyseDev; + /** + * 临边防护监测数量统计:是否启用,0否,1是 + */ + @ApiModelProperty(value = "临边防护监测数量统计:是否启用,0否,1是") + private java.lang.Integer enableFrontierProtectionDev; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/dto/CompanyBigScreenConfigDto.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/dto/CompanyBigScreenConfigDto.java new file mode 100644 index 000000000..39c0340ac --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/dto/CompanyBigScreenConfigDto.java @@ -0,0 +1,11 @@ +package com.zhgd.xmgl.modules.basicdata.entity.dto; + +import com.zhgd.xmgl.modules.basicdata.entity.CompanyBigScreenConfig; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(value = "CompanyBigScreenConfigDto实体类", description = "CompanyBigScreenConfigDto实体类") +public class CompanyBigScreenConfigDto extends CompanyBigScreenConfig { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/vo/CompanyBigScreenConfigVo.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/vo/CompanyBigScreenConfigVo.java new file mode 100644 index 000000000..a89b46f0a --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/vo/CompanyBigScreenConfigVo.java @@ -0,0 +1,11 @@ +package com.zhgd.xmgl.modules.basicdata.entity.vo; + +import com.zhgd.xmgl.modules.basicdata.entity.CompanyBigScreenConfig; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(value = "CompanyBigScreenConfigVo实体类", description = "CompanyBigScreenConfigVo实体类") +public class CompanyBigScreenConfigVo extends CompanyBigScreenConfig { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/CompanyBigScreenConfigMapper.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/CompanyBigScreenConfigMapper.java new file mode 100644 index 000000000..b424992a7 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/CompanyBigScreenConfigMapper.java @@ -0,0 +1,53 @@ +package com.zhgd.xmgl.modules.basicdata.mapper; + +import java.util.List; +import java.util.HashMap; + +import com.zhgd.xmgl.modules.basicdata.entity.CompanyBigScreenConfig; +import com.zhgd.xmgl.modules.basicdata.entity.vo.CompanyBigScreenConfigVo; +import com.zhgd.xmgl.modules.basicdata.entity.dto.CompanyBigScreenConfigDto; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 企业大屏配置 + * @author: pds + * @date: 2025-07-15 + * @version: V1.0 + */ +@Mapper +public interface CompanyBigScreenConfigMapper extends BaseMapper { + + /** + * 分页列表查询企业大屏配置信息 + * + * @param page + * @param queryWrapper + * @param param + * @return + */ + IPage queryList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("param") HashMap param); + + /** + * 列表查询企业大屏配置信息 + * + * @param queryWrapper + * @param param + * @return + */ + List queryList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("param") HashMap param); + + + /** + * 通过id查询企业大屏配置信息 + * + * @param id + * @return + */ + CompanyBigScreenConfigVo queryById(String id); +} diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/CompanyBigScreenConfigMapper.xml b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/CompanyBigScreenConfigMapper.xml new file mode 100644 index 000000000..26c447f82 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/CompanyBigScreenConfigMapper.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ICompanyBigScreenConfigService.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ICompanyBigScreenConfigService.java new file mode 100644 index 000000000..9d1d3f13a --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ICompanyBigScreenConfigService.java @@ -0,0 +1,67 @@ +package com.zhgd.xmgl.modules.basicdata.service; + +import com.zhgd.xmgl.modules.basicdata.entity.CompanyBigScreenConfig; +import com.zhgd.xmgl.modules.basicdata.entity.vo.CompanyBigScreenConfigVo; +import com.zhgd.xmgl.modules.basicdata.entity.dto.CompanyBigScreenConfigDto; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.HashMap; +import java.util.List; + +/** + * @Description: 企业大屏配置 + * @author: pds + * @date: 2025-07-15 + * @version: V1.0 + */ +public interface ICompanyBigScreenConfigService extends IService { + /** + * 分页列表查询企业大屏配置信息 + * + * @param param 参数map + * @return + */ + IPage queryPageList(HashMap param); + + /** + * 列表查询企业大屏配置信息 + * + * @param param 参数map + * @return + */ + List queryList(HashMap param); + + /** + * 添加企业大屏配置信息 + * + * @param companyBigScreenConfigDto 企业大屏配置 + * @return + */ + void add(CompanyBigScreenConfigDto companyBigScreenConfigDto); + + /** + * 编辑企业大屏配置信息 + * + * @param companyBigScreenConfigDto 企业大屏配置 + * @return + */ + void edit(CompanyBigScreenConfigDto companyBigScreenConfigDto); + + /** + * 根据id删除企业大屏配置信息 + * + * @param id 企业大屏配置的id + * @return + */ + void delete(String id); + + /** + * 根据id查询企业大屏配置信息 + * + * @param id 企业大屏配置的id + * @return + */ + CompanyBigScreenConfigVo queryById(String id); + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyBigScreenConfigServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyBigScreenConfigServiceImpl.java new file mode 100644 index 000000000..1c1a3ea9a --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyBigScreenConfigServiceImpl.java @@ -0,0 +1,93 @@ +package com.zhgd.xmgl.modules.basicdata.service.impl; + +import com.zhgd.jeecg.common.execption.OpenAlertException; +import com.zhgd.xmgl.modules.basicdata.entity.CompanyBigScreenConfig; +import com.zhgd.xmgl.modules.basicdata.entity.vo.CompanyBigScreenConfigVo; +import com.zhgd.xmgl.modules.basicdata.entity.dto.CompanyBigScreenConfigDto; +import com.zhgd.xmgl.modules.basicdata.mapper.CompanyBigScreenConfigMapper; +import com.zhgd.xmgl.modules.basicdata.service.ICompanyBigScreenConfigService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.util.PageUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.HashMap; +import java.util.List; + +import com.zhgd.xmgl.util.RefUtil; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description: 企业大屏配置 + * @author: pds + * @date: 2025-07-15 + * @version: V1.0 + */ +@Service +public class CompanyBigScreenConfigServiceImpl extends ServiceImpl implements ICompanyBigScreenConfigService { + @Autowired + private CompanyBigScreenConfigMapper companyBigScreenConfigMapper; + + @Override + public IPage queryPageList(HashMap param) { + QueryWrapper queryWrapper = this.getQueryWrapper(param); + Page page = PageUtil.getPage(param); + IPage pageList = baseMapper.queryList(page, queryWrapper, param); + pageList.setRecords(this.dealList(pageList.getRecords())); + return pageList; + } + + @Override + public List queryList(HashMap param) { + QueryWrapper queryWrapper = getQueryWrapper(param); + return dealList(baseMapper.queryList(queryWrapper, param)); + } + + private QueryWrapper getQueryWrapper(HashMap param) { + QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(CompanyBigScreenConfigVo.class, param, true); + queryWrapper.orderByDesc(RefUtil.fieldNameUlc(CompanyBigScreenConfigVo::getId)); + return queryWrapper; + } + + private List dealList(List list) { + return list; + } + + @Override + public void add(CompanyBigScreenConfigDto companyBigScreenConfigDto) { + companyBigScreenConfigDto.setId(null); + baseMapper.insert(companyBigScreenConfigDto); + } + + @Override + public void edit(CompanyBigScreenConfigDto companyBigScreenConfigDto) { + CompanyBigScreenConfig oldCompanyBigScreenConfig = baseMapper.selectById(companyBigScreenConfigDto.getId()); + if (oldCompanyBigScreenConfig == null) { + throw new OpenAlertException("未找到对应实体"); + } + baseMapper.updateById(companyBigScreenConfigDto); + } + + @Override + public void delete(String id) { + CompanyBigScreenConfig companyBigScreenConfig = baseMapper.selectById(id); + if (companyBigScreenConfig == null) { + throw new OpenAlertException("未找到对应实体"); + } + baseMapper.deleteById(id); + } + + @Override + public CompanyBigScreenConfigVo queryById(String id) { + CompanyBigScreenConfigVo entity = baseMapper.queryById(id); + if (entity == null) { + throw new OpenAlertException("未找到对应实体"); + } + return entity; + } + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/project/entity/dto/CompanyProjectStat.java b/src/main/java/com/zhgd/xmgl/modules/project/entity/dto/CompanyProjectStat.java index 818b1354a..21e592235 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/entity/dto/CompanyProjectStat.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/entity/dto/CompanyProjectStat.java @@ -32,4 +32,14 @@ public class CompanyProjectStat { @ApiModelProperty(value = "项目列表") private List projectList; + + @ApiModelProperty(value = "执法记录仪数量") + private Integer policeCameraNum; + @ApiModelProperty(value = "车辆道闸数量") + private Integer carCameraNum; + @ApiModelProperty(value = "AI设备数量") + private Integer aiAnalyseHardNum; + @ApiModelProperty(value = "临边防护(有网)数量") + private Integer frontierProtectionDevNum; + } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/entity/dto/ProjectDevStat.java b/src/main/java/com/zhgd/xmgl/modules/project/entity/dto/ProjectDevStat.java index 6cc889db3..0f0c98e81 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/entity/dto/ProjectDevStat.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/entity/dto/ProjectDevStat.java @@ -1,11 +1,8 @@ package com.zhgd.xmgl.modules.project.entity.dto; -import com.zhgd.xmgl.modules.project.entity.Project; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.List; - @Data public class ProjectDevStat { @@ -17,4 +14,14 @@ public class ProjectDevStat { @ApiModelProperty(value = "扬尘设备") private Integer environmentDevNum; + + @ApiModelProperty(value = "执法记录仪数量") + private Integer policeCameraNum; + @ApiModelProperty(value = "车辆道闸数量") + private Integer carCameraNum; + @ApiModelProperty(value = "AI设备数量") + private Integer aiAnalyseHardNum; + @ApiModelProperty(value = "临边防护(有网)数量") + private Integer frontierProtectionDevNum; + } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java index 6bdeb073f..435acfe9f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.project.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.NumberUtil; @@ -44,13 +45,18 @@ import com.zhgd.xmgl.modules.bimface.entity.BimfaceConfig; import com.zhgd.xmgl.modules.bimface.mapper.BimfaceConfigMapper; import com.zhgd.xmgl.modules.car.entity.CarCamera; import com.zhgd.xmgl.modules.car.mapper.CarCameraMapper; +import com.zhgd.xmgl.modules.car.service.ICarCameraService; import com.zhgd.xmgl.modules.car.service.ICarInfoService; import com.zhgd.xmgl.modules.electrical.entity.ElectricalDev; import com.zhgd.xmgl.modules.electrical.service.IElectricalDevService; import com.zhgd.xmgl.modules.environment.entity.EnvironmentDev; import com.zhgd.xmgl.modules.environment.service.IAirQualityAnalysisService; import com.zhgd.xmgl.modules.environment.service.IEnvironmentDevService; +import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDev; +import com.zhgd.xmgl.modules.frontier.service.FrontierProtectionDevService; import com.zhgd.xmgl.modules.massrebound.service.IFunctionRoomService; +import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraItem; +import com.zhgd.xmgl.modules.policecamera.service.IPoliceCameraItemService; import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.entity.ProjectConfig; import com.zhgd.xmgl.modules.project.entity.WSSsdrAddress; @@ -66,10 +72,12 @@ import com.zhgd.xmgl.modules.project.service.IProjectService; import com.zhgd.xmgl.modules.project.service.IProjectVideoConfigService; import com.zhgd.xmgl.modules.standard.entity.StandardDev; import com.zhgd.xmgl.modules.standard.service.IStandardDevService; +import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord; import com.zhgd.xmgl.modules.video.entity.VideoGroup; import com.zhgd.xmgl.modules.video.entity.VideoItem; import com.zhgd.xmgl.modules.video.mapper.VideoGroupMapper; import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper; +import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareRecordService; import com.zhgd.xmgl.modules.worker.entity.UfaceDev; import com.zhgd.xmgl.modules.worker.service.*; import com.zhgd.xmgl.util.*; @@ -78,6 +86,7 @@ import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -189,6 +198,18 @@ public class ProjectServiceImpl extends ServiceImpl impl */ @Value("${fmsMonitoringScreenPageUrl:}") private String fmsMonitoringScreenPageUrl; + @Lazy + @Autowired + private IAiAnalyseHardWareRecordService aiAnalyseHardWareRecordService; + @Lazy + @Autowired + private ICarCameraService carCameraService; + @Lazy + @Autowired + private IPoliceCameraItemService policeCameraItemService; + @Lazy + @Autowired + private FrontierProtectionDevService frontierProtectionDevService; @Override public List getProjectSnList(String sn) { @@ -490,14 +511,30 @@ public class ProjectServiceImpl extends ServiceImpl impl companyProjectStat.setCompleteProject((int) projectList.stream().filter(p -> p.getBulidStatus() == 4).count()); companyProjectStat.setVideoNum(videoItems.size()); companyProjectStat.setEnvironmentDevNum(environmentDevList.size()); + List policeCameras = policeCameraItemService.list(new LambdaQueryWrapper() + .in(PoliceCameraItem::getProjectSn, snList)); + companyProjectStat.setPoliceCameraNum(policeCameras.size()); + List carCameras = carCameraService.list(new LambdaQueryWrapper() + .in(CarCamera::getProjectSn, snList)); + companyProjectStat.setCarCameraNum(carCameras.size()); + List aiAnalyseHards = aiAnalyseHardWareRecordService.list(new LambdaQueryWrapper() + .in(AiAnalyseHardWareRecord::getProjectSn, snList)); + companyProjectStat.setAiAnalyseHardNum(aiAnalyseHards.size()); + List frontierProtectionDevs = frontierProtectionDevService.list(new LambdaQueryWrapper() + .in(FrontierProtectionDev::getProjectSn, snList)); + companyProjectStat.setFrontierProtectionDevNum(frontierProtectionDevs.size()); List projectDevStatList = new ArrayList<>(); for (Project project : projectList) { ProjectDevStat projectDevStat = new ProjectDevStat(); projectDevStat.setProjectName(project.getProjectName()); List groupIds = videoGroups.stream().filter(v -> v.getProjectSn().equals(project.getProjectSn())).map(v -> v.getId().toString()).collect(Collectors.toList()); groupIds.add("0"); - projectDevStat.setVideoNum((int) videoItems.stream().filter(v -> groupIds.contains(v.getGroupId())).count()); + projectDevStat.setVideoNum((int) videoItems.stream().filter(v -> groupIds.contains(Convert.toStr(v.getGroupId()))).count()); projectDevStat.setEnvironmentDevNum((int) environmentDevList.stream().filter(e -> e.getProjectSn().equals(project.getProjectSn())).count()); + projectDevStat.setPoliceCameraNum((int) policeCameras.stream().filter(e -> e.getProjectSn().equals(project.getProjectSn())).count()); + projectDevStat.setCarCameraNum((int) carCameras.stream().filter(e -> e.getProjectSn().equals(project.getProjectSn())).count()); + projectDevStat.setAiAnalyseHardNum((int) aiAnalyseHards.stream().filter(e -> e.getProjectSn().equals(project.getProjectSn())).count()); + projectDevStat.setFrontierProtectionDevNum((int) frontierProtectionDevs.stream().filter(e -> e.getProjectSn().equals(project.getProjectSn())).count()); projectDevStatList.add(projectDevStat); } companyProjectStat.setProjectDevStatList(projectDevStatList);