Merge branch 'xjw_attendance' into prod

This commit is contained in:
guoshengxiong 2025-07-23 14:52:32 +08:00
commit 97c134b227
12 changed files with 575 additions and 14 deletions

View File

@ -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<IPage<CompanyBigScreenConfigVo>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> param) {
return Result.success(companyBigScreenConfigService.queryPageList(param));
}
/**
* 列表查询
*
* @return
*/
@OperLog(operModul = "企业大屏配置管理", operType = "列表查询", operDesc = "列表查询企业大屏配置信息")
@ApiOperation(value = "列表查询企业大屏配置信息", notes = "列表查询企业大屏配置信息", httpMethod = "GET")
@GetMapping(value = "/list")
public Result<List<CompanyBigScreenConfigVo>> queryList(@ApiIgnore @RequestParam HashMap<String, Object> param) {
return Result.success(companyBigScreenConfigService.queryList(param));
}
/**
* 添加
*
* @param companyBigScreenConfigDto
* @return
*/
@OperLog(operModul = "企业大屏配置管理", operType = "添加", operDesc = "添加企业大屏配置信息")
@ApiOperation(value = "添加企业大屏配置信息", notes = "添加企业大屏配置信息", httpMethod = "POST")
@PostMapping(value = "/add")
public Result<CompanyBigScreenConfigVo> 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<CompanyBigScreenConfig> 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<CompanyBigScreenConfig> delete(@ApiIgnore @RequestBody HashMap<String, Object> 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<CompanyBigScreenConfigVo> 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<CompanyBigScreenConfig> saveEntity(@RequestBody CompanyBigScreenConfigDto companyBigScreenConfigDto) {
CompanyBigScreenConfig config = companyBigScreenConfigService.getOne(new LambdaQueryWrapper<CompanyBigScreenConfig>()
.eq(CompanyBigScreenConfig::getCompanySn, companyBigScreenConfigDto.getCompanySn()));
if (config == null) {
companyBigScreenConfigService.add(companyBigScreenConfigDto);
} else {
companyBigScreenConfigDto.setId(config.getId());
companyBigScreenConfigService.edit(companyBigScreenConfigDto);
}
return Result.ok();
}
}

View File

@ -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<Map<String,Object>> selectWorkerAndAttendanceCount(@RequestBody Map<String, Object> map) {
public Result<Map<String, Object>> selectWorkerAndAttendanceCount(@RequestBody Map<String, Object> 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<Map<String,Object>> selectDevCountStatistics(@RequestBody Map<String, Object> map) {
public Result<Map<String, Object>> selectDevCountStatistics(@RequestBody Map<String, Object> 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<Map<String,Object>> selectDevCurrentAlarmCount(@RequestBody Map<String, Object> map) {
public Result<Map<String, Object>> selectDevCurrentAlarmCount(@RequestBody Map<String, Object> 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<List<Map<String,Object>>> selectEnvironmentSevenDayAlarmList(@RequestBody Map<String, Object> map) {
public Result<List<Map<String, Object>>> selectEnvironmentSevenDayAlarmList(@RequestBody Map<String, Object> 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<List<Map<String,Object>>> selectTowerSevenDayAlarmList(@RequestBody Map<String, Object> map) {
public Result<List<Map<String, Object>>> selectTowerSevenDayAlarmList(@RequestBody Map<String, Object> 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<List<Map<String,Object>>> selectLifterSevenDayAlarmList(@RequestBody Map<String, Object> map) {
public Result<List<Map<String, Object>>> selectLifterSevenDayAlarmList(@RequestBody Map<String, Object> 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<List<Map<String,Object>>> selectDischargingSevenDayAlarmList(@RequestBody Map<String, Object> map) {
public Result<List<Map<String, Object>>> selectDischargingSevenDayAlarmList(@RequestBody Map<String, Object> 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<List<Map<String,Object>>> selectVideoSevenDayAlarmList(@RequestBody Map<String, Object> map) {
public Result<List<Map<String, Object>>> selectVideoSevenDayAlarmList(@RequestBody Map<String, Object> map) {
return Result.success(companyBigScreenStatisticsService.selectVideoSevenDayAlarmList(map));
}
@ -131,4 +148,35 @@ public class CompanyBigScreenStatisticsController {
public Result<ProjectWorkAndInspectCountVo> selectProjectWorkAndInspectCount(@RequestBody Map<String, Object> 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<List<Company>> getRangeAddrByUserId(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
Long userId = SecurityUtils.getUser().getUserId();
if (userId == null) {
return null;
}
SystemUser systemUser = systemUserService.getById(userId);
if (systemUser == null) {
return null;
}
List<Company> rtList = new ArrayList<>();
Company company = companyService.getOne(new LambdaQueryWrapper<Company>()
.eq(Company::getCompanySn, systemUser.getSn()));
if (Objects.equals(systemUser.getAccountType(), SystemUserAccountTypeEnum.ENTERPRISE_ADMINISTRATOR_ACCOUNT.getValue())) {
//查下级的管辖区域范围
rtList = companyService.list(new LambdaQueryWrapper<Company>()
.eq(Company::getCompanyType, 2)
.eq(Company::getHeadquartersSn, company.getHeadquartersSn())
);
} else {
//查自己的管辖区域范围
rtList.add(company);
}
return Result.success(rtList);
}
}

View File

@ -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;
}

View File

@ -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 {
}

View File

@ -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 {
}

View File

@ -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<CompanyBigScreenConfig> {
/**
* 分页列表查询企业大屏配置信息
*
* @param page
* @param queryWrapper
* @param param
* @return
*/
IPage<CompanyBigScreenConfigVo> queryList(Page<CompanyBigScreenConfigVo> page, @Param(Constants.WRAPPER) QueryWrapper<CompanyBigScreenConfigVo> queryWrapper, @Param("param") HashMap<String, Object> param);
/**
* 列表查询企业大屏配置信息
*
* @param queryWrapper
* @param param
* @return
*/
List<CompanyBigScreenConfigVo> queryList(@Param(Constants.WRAPPER) QueryWrapper<CompanyBigScreenConfigVo> queryWrapper, @Param("param") HashMap<String, Object> param);
/**
* 通过id查询企业大屏配置信息
*
* @param id
* @return
*/
CompanyBigScreenConfigVo queryById(String id);
}

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.basicdata.mapper.CompanyBigScreenConfigMapper">
<select id="queryList" resultType="com.zhgd.xmgl.modules.basicdata.entity.vo.CompanyBigScreenConfigVo">
select * from (
select t.*
from company_big_screen_config t
)t
${ew.customSqlSegment}
</select>
<select id="queryById" resultType="com.zhgd.xmgl.modules.basicdata.entity.vo.CompanyBigScreenConfigVo">
select * from (
select t.*
from company_big_screen_config t
)t
where t.id = #{id}
</select>
</mapper>

View File

@ -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<CompanyBigScreenConfig> {
/**
* 分页列表查询企业大屏配置信息
*
* @param param 参数map
* @return
*/
IPage<CompanyBigScreenConfigVo> queryPageList(HashMap<String, Object> param);
/**
* 列表查询企业大屏配置信息
*
* @param param 参数map
* @return
*/
List<CompanyBigScreenConfigVo> queryList(HashMap<String, Object> 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);
}

View File

@ -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<CompanyBigScreenConfigMapper, CompanyBigScreenConfig> implements ICompanyBigScreenConfigService {
@Autowired
private CompanyBigScreenConfigMapper companyBigScreenConfigMapper;
@Override
public IPage<CompanyBigScreenConfigVo> queryPageList(HashMap<String, Object> param) {
QueryWrapper<CompanyBigScreenConfigVo> queryWrapper = this.getQueryWrapper(param);
Page<CompanyBigScreenConfigVo> page = PageUtil.getPage(param);
IPage<CompanyBigScreenConfigVo> pageList = baseMapper.queryList(page, queryWrapper, param);
pageList.setRecords(this.dealList(pageList.getRecords()));
return pageList;
}
@Override
public List<CompanyBigScreenConfigVo> queryList(HashMap<String, Object> param) {
QueryWrapper<CompanyBigScreenConfigVo> queryWrapper = getQueryWrapper(param);
return dealList(baseMapper.queryList(queryWrapper, param));
}
private QueryWrapper<CompanyBigScreenConfigVo> getQueryWrapper(HashMap<String, Object> param) {
QueryWrapper<CompanyBigScreenConfigVo> queryWrapper = QueryGenerator.initPageQueryWrapper(CompanyBigScreenConfigVo.class, param, true);
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(CompanyBigScreenConfigVo::getId));
return queryWrapper;
}
private List<CompanyBigScreenConfigVo> dealList(List<CompanyBigScreenConfigVo> 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;
}
}

View File

@ -32,4 +32,14 @@ public class CompanyProjectStat {
@ApiModelProperty(value = "项目列表")
private List<Project> projectList;
@ApiModelProperty(value = "执法记录仪数量")
private Integer policeCameraNum;
@ApiModelProperty(value = "车辆道闸数量")
private Integer carCameraNum;
@ApiModelProperty(value = "AI设备数量")
private Integer aiAnalyseHardNum;
@ApiModelProperty(value = "临边防护(有网)数量")
private Integer frontierProtectionDevNum;
}

View File

@ -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;
}

View File

@ -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<ProjectMapper, Project> 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<String> getProjectSnList(String sn) {
@ -490,14 +511,30 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
companyProjectStat.setCompleteProject((int) projectList.stream().filter(p -> p.getBulidStatus() == 4).count());
companyProjectStat.setVideoNum(videoItems.size());
companyProjectStat.setEnvironmentDevNum(environmentDevList.size());
List<PoliceCameraItem> policeCameras = policeCameraItemService.list(new LambdaQueryWrapper<PoliceCameraItem>()
.in(PoliceCameraItem::getProjectSn, snList));
companyProjectStat.setPoliceCameraNum(policeCameras.size());
List<CarCamera> carCameras = carCameraService.list(new LambdaQueryWrapper<CarCamera>()
.in(CarCamera::getProjectSn, snList));
companyProjectStat.setCarCameraNum(carCameras.size());
List<AiAnalyseHardWareRecord> aiAnalyseHards = aiAnalyseHardWareRecordService.list(new LambdaQueryWrapper<AiAnalyseHardWareRecord>()
.in(AiAnalyseHardWareRecord::getProjectSn, snList));
companyProjectStat.setAiAnalyseHardNum(aiAnalyseHards.size());
List<FrontierProtectionDev> frontierProtectionDevs = frontierProtectionDevService.list(new LambdaQueryWrapper<FrontierProtectionDev>()
.in(FrontierProtectionDev::getProjectSn, snList));
companyProjectStat.setFrontierProtectionDevNum(frontierProtectionDevs.size());
List<ProjectDevStat> projectDevStatList = new ArrayList<>();
for (Project project : projectList) {
ProjectDevStat projectDevStat = new ProjectDevStat();
projectDevStat.setProjectName(project.getProjectName());
List<String> 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);