From 5b8d1d00918031e7c708b7159c524d9493862f3e Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Fri, 11 Oct 2024 18:33:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8C=BA=E5=9F=9F=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhgd/mybatis/DataScopeInterceptor.java | 46 ++-- .../mulei/controller/MlHoistController.java | 16 ++ .../xmgl/modules/mulei/entity/MlHoist.java | 106 ++++++--- .../service/impl/MlHoistServiceImpl.java | 1 + .../controller/QualityRegionController.java | 7 +- .../controller/RegionConfigController.java | 203 ++++++++++++++++++ .../modules/quality/entity/QualityRegion.java | 10 + .../modules/quality/entity/RegionConfig.java | 52 +++++ .../modules/quality/entity/RegionDev.java | 189 ++++++++++++++++ .../quality/mapper/RegionConfigMapper.java | 19 ++ .../quality/mapper/RegionDevMapper.java | 19 ++ .../xml/QualityInspectionRecordMapper.xml | 6 + .../service/IQualityRegionService.java | 2 + .../quality/service/IRegionConfigService.java | 14 ++ .../quality/service/IRegionDevService.java | 14 ++ .../impl/QualityRegionServiceImpl.java | 64 +++++- .../service/impl/RegionConfigServiceImpl.java | 19 ++ .../service/impl/RegionDevServiceImpl.java | 19 ++ .../service/ISafetyHatFenceService.java | 2 + .../impl/SafetyHatFenceServiceImpl.java | 25 ++- .../video/controller/VideoItemController.java | 19 ++ .../video/service/IVideoItemService.java | 4 + .../service/impl/VideoItemServiceImpl.java | 26 +++ .../zhgd/xmgl/security/WebSecurityConfig.java | 1 + .../java/com/zhgd/xmgl/util/HikVideoUtil.java | 32 +++ 25 files changed, 848 insertions(+), 67 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/controller/RegionConfigController.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/entity/RegionConfig.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/entity/RegionDev.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/mapper/RegionConfigMapper.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/mapper/RegionDevMapper.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/service/IRegionConfigService.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/service/IRegionDevService.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/service/impl/RegionConfigServiceImpl.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/service/impl/RegionDevServiceImpl.java diff --git a/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java b/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java index 0d2c4d66c..bfe13d211 100644 --- a/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java +++ b/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java @@ -211,29 +211,29 @@ public class DataScopeInterceptor extends JsqlParserSupport implements InnerInte @Override public void beforeUpdate(Executor executor, MappedStatement ms, Object parameter) throws SQLException { - try { - if (Objects.equals(ThreadLocalUtil.getByKey(Cts.TL_IS_FROM_WEB, Boolean.class), true)) { - SqlCommandType sct = ms.getSqlCommandType(); - if (sct == SqlCommandType.UPDATE || sct == SqlCommandType.DELETE) { - String sql = this.getShowSql(ms.getConfiguration(), ms.getBoundSql(parameter)); - String whereSql = StrUtil.subAfter(sql, "WHERE", true); - saveQueryResult(StrUtil.sub(ms.getId(), 0, StringUtils.lastIndexOf(ms.getId(), ".")), whereSql); - } else if (sct == SqlCommandType.INSERT) { - List paramList = ThreadLocalUtil.getByKey(Cts.TL_INSERT_BEFORE_PARAM, List.class); - if (paramList == null) { - paramList = new ArrayList<>(); - ThreadLocalUtil.addInKey(Cts.TL_INSERT_BEFORE_PARAM, paramList); - } - OperLogInsertChange operLogInsertChange = new OperLogInsertChange(); - operLogInsertChange.setMapperName(StrUtil.sub(ms.getId(), 0, StringUtils.lastIndexOf(ms.getId(), "."))); - operLogInsertChange.setResult(new ArrayList<>(Arrays.asList(parameter))); - operLogInsertChange.setTimestamp(System.currentTimeMillis()); - paramList.add(operLogInsertChange); - } - } - } catch (Exception e) { - log.error("前后数据变化错误", e); - } +// try { +// if (Objects.equals(ThreadLocalUtil.getByKey(Cts.TL_IS_FROM_WEB, Boolean.class), true)) { +// SqlCommandType sct = ms.getSqlCommandType(); +// if (sct == SqlCommandType.UPDATE || sct == SqlCommandType.DELETE) { +// String sql = this.getShowSql(ms.getConfiguration(), ms.getBoundSql(parameter)); +// String whereSql = StrUtil.subAfter(sql, "WHERE", true); +// saveQueryResult(StrUtil.sub(ms.getId(), 0, StringUtils.lastIndexOf(ms.getId(), ".")), whereSql); +// } else if (sct == SqlCommandType.INSERT) { +// List paramList = ThreadLocalUtil.getByKey(Cts.TL_INSERT_BEFORE_PARAM, List.class); +// if (paramList == null) { +// paramList = new ArrayList<>(); +// ThreadLocalUtil.addInKey(Cts.TL_INSERT_BEFORE_PARAM, paramList); +// } +// OperLogInsertChange operLogInsertChange = new OperLogInsertChange(); +// operLogInsertChange.setMapperName(StrUtil.sub(ms.getId(), 0, StringUtils.lastIndexOf(ms.getId(), "."))); +// operLogInsertChange.setResult(new ArrayList<>(Arrays.asList(parameter))); +// operLogInsertChange.setTimestamp(System.currentTimeMillis()); +// paramList.add(operLogInsertChange); +// } +// } +// } catch (Exception e) { +// log.error("前后数据变化错误", e); +// } } private void saveQueryResult(String mapperName, String whereSql) throws ClassNotFoundException { diff --git a/src/main/java/com/zhgd/xmgl/modules/mulei/controller/MlHoistController.java b/src/main/java/com/zhgd/xmgl/modules/mulei/controller/MlHoistController.java index 9f85be567..1160e38a6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mulei/controller/MlHoistController.java +++ b/src/main/java/com/zhgd/xmgl/modules/mulei/controller/MlHoistController.java @@ -1,8 +1,11 @@ package com.zhgd.xmgl.modules.mulei.controller; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.annotation.OperLog; @@ -99,10 +102,23 @@ public class MlHoistController { Long videoItemId = FlowUtil.getPullDownLong(map, "videoItemId"); String num = FlowUtil.getString(map, "num"); String projectSn = FlowUtil.getString(map, "projectSn"); + String code = FlowUtil.getString(map, "code"); + String unit = FlowUtil.getString(map, "unit"); + String teamName = FlowUtil.getString(map, "teamName"); + String commander = FlowUtil.getString(map, "commander"); + JSONArray planTime = JSONArray.parseArray(FlowUtil.getString(map, "planTime")); MlHoist hoist = new MlHoist(); hoist.setVideoItemId(videoItemId); hoist.setNum(num); hoist.setProjectSn(projectSn); + hoist.setCode(code); + hoist.setUnit(unit); + hoist.setTeamName(teamName); + hoist.setCommander(commander); + if (planTime != null && planTime.size() > 0) { + hoist.setStartTime(DateUtil.parseDateTime(planTime.getString(0))); + hoist.setEndTime(DateUtil.parseDateTime(planTime.getString(1))); + } mlHoistService.add(hoist); VideoItem item = new VideoItem(); item.setItemId(videoItemId); diff --git a/src/main/java/com/zhgd/xmgl/modules/mulei/entity/MlHoist.java b/src/main/java/com/zhgd/xmgl/modules/mulei/entity/MlHoist.java index ad4f1b843..9bdc7c43c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mulei/entity/MlHoist.java +++ b/src/main/java/com/zhgd/xmgl/modules/mulei/entity/MlHoist.java @@ -23,37 +23,81 @@ import io.swagger.annotations.ApiModelProperty; @TableName("ml_hoist") @ApiModel(value = "MlHoist实体类", description = "MlHoist") public class MlHoist implements Serializable { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - /** - * id - */ - @TableId(type = IdType.ASSIGN_ID) - @ApiModelProperty(value = "id") - private java.lang.Long id; + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.Long id; - @ApiModelProperty(value = "视频设备列表id") - private java.lang.Long videoItemId; - /** - * 编号 - */ - @Excel(name = "编号", width = 15) - @ApiModelProperty(value = "编号") - private java.lang.String num; - /** - * 所属项目SN - */ - @Excel(name = "所属项目SN", width = 15) - @ApiModelProperty(value = "所属项目SN") - private java.lang.String projectSn; - /** - * 创建时间 - */ - @ApiModelProperty(value = "创建时间") - private java.util.Date createDate; - /** - * 更新时间 - */ - @ApiModelProperty(value = "更新时间") - private java.util.Date updateDate; + @ApiModelProperty(value = "视频设备列表id") + private java.lang.Long videoItemId; + + @ApiModelProperty(value = "视频设备序列号") + private java.lang.String serialNumber; + /** + * 编号 + */ + @Excel(name = "编号", width = 15) + @ApiModelProperty(value = "编号") + private java.lang.String num; + /** + * 所属项目SN + */ + @Excel(name = "所属项目SN", width = 15) + @ApiModelProperty(value = "所属项目SN") + private java.lang.String projectSn; + /** + * 创建时间 + */ + @ApiModelProperty(value = "创建时间") + private java.util.Date createDate; + /** + * 更新时间 + */ + @ApiModelProperty(value = "更新时间") + private java.util.Date updateDate; + + /** + * 编号 + */ + @ApiModelProperty(value = "编号") + private java.lang.String code; + + /** + * 施工单位 + */ + @ApiModelProperty(value = "施工单位") + private java.lang.String unit; + + /** + * 吊装班组 + */ + @ApiModelProperty(value = "吊装班组") + private java.lang.String teamName; + + /** + * 工作负责人 + */ + @ApiModelProperty(value = "工作负责人") + private java.lang.String commander; + + /** + * 计划工作开始时间 + */ + @ApiModelProperty(value = "计划工作开始时间") + private java.util.Date startTime; + + /** + * 计划工作结束时间 + */ + @ApiModelProperty(value = "计划工作结束时间") + private java.util.Date endTime; + /** + * 文件路径 + */ + @ApiModelProperty(value = "文件路径") + private java.lang.String fileUrl; } diff --git a/src/main/java/com/zhgd/xmgl/modules/mulei/service/impl/MlHoistServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/mulei/service/impl/MlHoistServiceImpl.java index 9a063c4d0..c8e77b7e8 100644 --- a/src/main/java/com/zhgd/xmgl/modules/mulei/service/impl/MlHoistServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/mulei/service/impl/MlHoistServiceImpl.java @@ -58,6 +58,7 @@ public class MlHoistServiceImpl extends ServiceImpl impl @Override public void add(MlHoist mlHoist) { mlHoist.setId(null); + mlHoist.setNum(mlHoist.getCode()); baseMapper.insert(mlHoist); } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRegionController.java b/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRegionController.java index d29016ff9..1a207d40e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRegionController.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRegionController.java @@ -119,6 +119,11 @@ public class QualityRegionController { } - + @OperLog(operModul = "区域管理", operType = "查询", operDesc = "查询区域人数") + @ApiOperation(value = "查询区域人数", notes = "查询区域人数", httpMethod = "POST") + @PostMapping(value = "/queryRegionWorker") + public Result queryRegionWorker(QualityRegion qualityRegion) { + return Result.success(qualityRegionService.queryRegionWorker(qualityRegion)); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/controller/RegionConfigController.java b/src/main/java/com/zhgd/xmgl/modules/quality/controller/RegionConfigController.java new file mode 100644 index 000000000..9c84822eb --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/controller/RegionConfigController.java @@ -0,0 +1,203 @@ +package com.zhgd.xmgl.modules.quality.controller; + +import com.zhgd.annotation.OperLog; +import com.zhgd.xmgl.util.PageUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.jeecg.common.util.oConvertUtils; +import com.zhgd.xmgl.modules.quality.entity.RegionConfig; +import com.zhgd.xmgl.modules.quality.service.IRegionConfigService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.apache.commons.collections.MapUtils; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import springfox.documentation.annotations.ApiIgnore; + + +/** + * @Title: Controller + * @Description: 项目区域配置 + * @author: pengj + * @date: 2024-09-25 + * @version: V1.0 + */ +@RestController +@RequestMapping("/xmgl/regionConfig") +@Slf4j +@Api(tags = "项目区域配置管理") +public class RegionConfigController { + @Autowired + private IRegionConfigService regionConfigService; + + /** + * 分页列表查询 + * + * @return + */ + @OperLog(operModul = "项目区域配置管理", operType = "分页查询", operDesc = "分页列表查询项目区域配置信息") + @ApiOperation(value = " 分页列表查询项目区域配置信息", notes = "分页列表查询项目区域配置信息", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "页数", paramType = "body", required = true, defaultValue = "1", dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页条数", paramType = "body", required = true, defaultValue = "10", dataType = "Integer") + }) + @PostMapping(value = "/page") + public Result> queryPageList(@ApiIgnore @RequestBody Map map) { + QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(RegionConfig.class, map); + Page page = PageUtil.getPage(map); + IPage pageList = regionConfigService.page(page, queryWrapper); + return Result.success(pageList); + } + + /** + * 列表查询 + * + * @param regionConfig + * @return + */ + @OperLog(operModul = "项目区域配置管理", operType = "列表查询", operDesc = "列表查询项目区域配置信息") + @ApiOperation(value = " 列表查询项目区域配置信息", notes = "列表查询项目区域配置信息", httpMethod = "POST") + @PostMapping(value = "/list") + public Result> queryList(@RequestBody RegionConfig regionConfig) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(regionConfig); + List list = regionConfigService.list(queryWrapper); + return Result.success(list); + } + + + /** + * 添加 + * + * @param regionConfig + * @return + */ + @OperLog(operModul = "项目区域配置管理", operType = "新增", operDesc = "添加项目区域配置信息") + @ApiOperation(value = " 添加项目区域配置信息", notes = "添加项目区域配置信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody RegionConfig regionConfig) { + Result result = new Result(); + regionConfigService.save(regionConfig); + return Result.success("添加成功!"); + } + + /** + * 编辑 + * + * @param regionConfig + * @return + */ + @OperLog(operModul = "项目区域配置管理", operType = "修改", operDesc = "编辑项目区域配置信息") + @ApiOperation(value = "编辑项目区域配置信息", notes = "编辑项目区域配置信息", httpMethod = "POST") + @PostMapping(value = "/edit") + public Result edit(@RequestBody RegionConfig regionConfig) { + Result result = new Result(); + RegionConfig regionConfigEntity = regionConfigService.getById(regionConfig.getId()); + if (regionConfigEntity == null) { + result.error500("未找到对应实体"); + } else { + boolean ok = regionConfigService.updateById(regionConfig); + if (ok) { + result.success("修改成功!"); + } else { + result.success("操作失败!"); + } + } + + return result; + } + + /** + * 通过id删除 + * + * @return + */ + @OperLog(operModul = "项目区域配置管理", operType = "删除", operDesc = "删除项目区域配置信息") + @ApiOperation(value = "删除项目区域配置信息", notes = "删除项目区域配置信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "项目区域配置ID", paramType = "body", required = true, dataType = "Integer") + @PostMapping(value = "/delete") + public Result delete(@RequestBody RegionConfig regionConfig) { + Result result = new Result(); + RegionConfig regionConfigEntity = regionConfigService.getById(regionConfig.getId()); + if (regionConfigEntity == null) { + result.error500("未找到对应实体"); + } else { + boolean ok = regionConfigService.removeById(regionConfig.getId()); + if (ok) { + result.success("删除成功!"); + } else { + result.success("操作失败!"); + } + } + return result; + } + + /** + * 批量删除 + * + * @return + */ + @OperLog(operModul = "项目区域配置管理", operType = "批量删除", operDesc = "批量删除项目区域配置信息") + @ApiOperation(value = "批量删除项目区域配置信息", notes = "批量删除项目区域配置信息", httpMethod = "POST") + @ApiImplicitParam(name = "ids", value = "项目区域配置ID字符串", paramType = "body", required = true, dataType = "String") + @PostMapping(value = "/deleteBatch") + public Result deleteBatch(@ApiIgnore @RequestBody Map map) { + Result result = new Result(); + String ids = MapUtils.getString(map, "ids"); + if (ids == null || "".equals(ids.trim())) { + result.error500("参数不识别!"); + } else { + this.regionConfigService.removeByIds(Arrays.asList(ids.split(","))); + result.success("删除成功!"); + } + return result; + } + + /** + * 通过id查询 + * + * @return + */ + @OperLog(operModul = "项目区域配置管理", operType = "查询", operDesc = "通过id查询项目区域配置信息") + @ApiOperation(value = "通过id查询项目区域配置信息", notes = "通过id查询项目区域配置信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "项目区域配置ID", paramType = "body", required = true, dataType = "Integer") + @PostMapping(value = "/queryById") + public Result queryById(@ApiIgnore @RequestBody Map map) { + Result result = new Result(); + RegionConfig regionConfig = regionConfigService.getById(MapUtils.getString(map, "id")); + if (regionConfig == null) { + result.error500("未找到对应实体"); + } else { + result.setResult(regionConfig); + result.setSuccess(true); + } + return result; + } +} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegion.java b/src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegion.java index d2fa760ab..685a9e051 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegion.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegion.java @@ -90,6 +90,12 @@ public class QualityRegion implements Serializable { private java.lang.String ancestors; @ApiModelProperty(value = "区域的项目子账号id") private java.lang.Long belongUserId; + @ApiModelProperty(value = "区域配置信息") + private java.lang.String regionValue; + @ApiModelProperty(value = "区域范围信息") + private String fenceShape; + @ApiModelProperty(value = "绑定的视频监控") + private java.lang.String areaVideoData; @TableField(exist = false) private List children; @@ -114,4 +120,8 @@ public class QualityRegion implements Serializable { @ApiModelProperty(value = "AI分析硬件设备名称(逗号分割)") private java.lang.String aiAnalyseHardName; + @TableField(exist = false) + @ApiModelProperty(value = "区域设备") + private List regionDevList; + } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/entity/RegionConfig.java b/src/main/java/com/zhgd/xmgl/modules/quality/entity/RegionConfig.java new file mode 100644 index 000000000..25038c52e --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/entity/RegionConfig.java @@ -0,0 +1,52 @@ +package com.zhgd.xmgl.modules.quality.entity; + +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Description: 项目区域配置 + * @author: pengj + * @date: 2024-09-25 + * @version: V1.0 + */ +@Data +@TableName("region_config") +@ApiModel(value = "RegionConfig实体类", description = "RegionConfig") +public class RegionConfig implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 区域ID + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "区域ID") + private Long id; + /** + * 区域名称 + */ + @Excel(name = "区域名称", width = 15) + @ApiModelProperty(value = "区域名称") + private String name; + /** + * 项目sn + */ + @Excel(name = "项目sn", width = 15) + @ApiModelProperty(value = "项目sn") + private String projectSn; + /** + * 配置信息 + */ + @Excel(name = "配置信息", width = 15) + @ApiModelProperty(value = "配置信息") + private String configValue; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/entity/RegionDev.java b/src/main/java/com/zhgd/xmgl/modules/quality/entity/RegionDev.java new file mode 100644 index 000000000..da3a02873 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/entity/RegionDev.java @@ -0,0 +1,189 @@ +package com.zhgd.xmgl.modules.quality.entity; + +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Description: 区域设备 + * @author: pengj + * @date: 2024-09-25 + * @version: V1.0 + */ +@Data +@TableName("region_dev") +@ApiModel(value = "RegionDev实体类", description = "RegionDev") +public class RegionDev implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * gltf模型ID + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "gltf模型ID") + private Long id; + /** + * 名称 + */ + @Excel(name = "名称", width = 15) + @ApiModelProperty(value = "名称") + private String name; + /** + * 设备编号 + */ + @Excel(name = "设备编号", width = 15) + @ApiModelProperty(value = "设备编号") + private String code; + /** + * glTF模型的URI + */ + @Excel(name = "glTF模型的URI", width = 15) + @ApiModelProperty(value = "glTF模型的URI") + private String url; + /** + * 比例,默认1.0 + */ + @Excel(name = "比例,默认1.0", width = 15) + @ApiModelProperty(value = "比例,默认1.0") + private java.math.BigDecimal scale; + /** + * 经度 + */ + @Excel(name = "经度", width = 15) + @ApiModelProperty(value = "经度") + private String lng; + /** + * 纬度 + */ + @Excel(name = "纬度", width = 15) + @ApiModelProperty(value = "纬度") + private String lat; + /** + * 高度(单位:米) + */ + @Excel(name = "高度(单位:米)", width = 15) + @ApiModelProperty(value = "高度(单位:米)") + private String alt; + /** + * 颜色 + */ + @Excel(name = "颜色", width = 15) + @ApiModelProperty(value = "颜色") + private String color; + /** + * 最小像素大小 + */ + @Excel(name = "最小像素大小", width = 15) + @ApiModelProperty(value = "最小像素大小") + private java.math.BigDecimal minimumPixelSize; + /** + * 旋转方向, true逆时针,false顺时针 + */ + @Excel(name = "旋转方向, true逆时针,false顺时针", width = 15) + @ApiModelProperty(value = "旋转方向, true逆时针,false顺时针") + private Integer direction; + /** + * 飞行一周所需时间(单位 秒),控制速度 + */ + @Excel(name = "飞行一周所需时间(单位 秒),控制速度", width = 15) + @ApiModelProperty(value = "飞行一周所需时间(单位 秒),控制速度") + private Integer time; + /** + * 方向角 + */ + @Excel(name = "方向角", width = 15) + @ApiModelProperty(value = "方向角") + private Float heading; + /** + * 俯仰角 + */ + @Excel(name = "俯仰角", width = 15) + @ApiModelProperty(value = "俯仰角") + private Float pitch; + /** + * 翻滚角 + */ + @Excel(name = "翻滚角", width = 15) + @ApiModelProperty(value = "翻滚角") + private Float roll; + /** + * 是否轮廓 + */ + @Excel(name = "是否轮廓", width = 15) + @ApiModelProperty(value = "是否轮廓") + private Integer silhouette; + /** + * 轮廓颜色 + */ + @Excel(name = "轮廓颜色", width = 15) + @ApiModelProperty(value = "轮廓颜色") + private String silhouetteColor; + /** + * 轮廓宽度 + */ + @Excel(name = "轮廓宽度", width = 15) + @ApiModelProperty(value = "轮廓宽度") + private Float silhouetteSize; + /** + * 是否阴影 + */ + @Excel(name = "是否阴影", width = 15) + @ApiModelProperty(value = "是否阴影") + private Integer hasShadows; + /** + * 是否贴地 + */ + @Excel(name = "是否贴地", width = 15) + @ApiModelProperty(value = "是否贴地") + private Integer clampToGround; + /** + * 创建时间 + */ + @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private Date createTime; + /** + * 修改时间 + */ + @Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "修改时间") + private Date updateTime; + /** + * 是否显示 + */ + @Excel(name = "是否显示", width = 15) + @ApiModelProperty(value = "是否显示") + private Integer isShow; + /** + * 项目SN + */ + @Excel(name = "项目SN", width = 15) + @ApiModelProperty(value = "项目SN") + private String projectSn; + /** + * 设备类型(1:风机;2:光伏; 3:储能) + */ + @Excel(name = "设备类型(1:风机;2:光伏; 3:储能)", width = 15) + @ApiModelProperty(value = "设备类型(1:风机;2:光伏; 3:储能)") + private Integer type; + /** + * 区域ID + */ + @Excel(name = "区域ID", width = 15) + @ApiModelProperty(value = "区域ID") + private Long qualityRegionId; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/RegionConfigMapper.java b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/RegionConfigMapper.java new file mode 100644 index 000000000..21ea1bb51 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/RegionConfigMapper.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.quality.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import com.zhgd.xmgl.modules.quality.entity.RegionConfig; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 项目区域配置 + * @author: pengj + * @date: 2024-09-25 + * @version: V1.0 + */ +@Mapper +public interface RegionConfigMapper extends BaseMapper { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/RegionDevMapper.java b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/RegionDevMapper.java new file mode 100644 index 000000000..81d1c25b8 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/RegionDevMapper.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.quality.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import com.zhgd.xmgl.modules.quality.entity.RegionDev; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 区域设备 + * @author: pengj + * @date: 2024-09-25 + * @version: V1.0 + */ +@Mapper +public interface RegionDevMapper extends BaseMapper { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityInspectionRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityInspectionRecordMapper.xml index 7cd67b7a5..296c4a732 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityInspectionRecordMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityInspectionRecordMapper.xml @@ -320,6 +320,12 @@ and a.verify_man_id = #{param.verifyManId} + + and f.real_name like concat('%', #{param.verifyManName}, '%') + + + and d.real_name like concat('%', #{param.changeName}, '%') + and a.creator_id = #{param.creatorId} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityRegionService.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityRegionService.java index 1b802b84a..41db5fcee 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityRegionService.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityRegionService.java @@ -64,4 +64,6 @@ public interface IQualityRegionService extends IService { * @return */ QualityRegion queryBindRegion(); + + int queryRegionWorker(QualityRegion qualityRegion); } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/IRegionConfigService.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/IRegionConfigService.java new file mode 100644 index 000000000..e335f5296 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/IRegionConfigService.java @@ -0,0 +1,14 @@ +package com.zhgd.xmgl.modules.quality.service; + +import com.zhgd.xmgl.modules.quality.entity.RegionConfig; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 项目区域配置 + * @author: pengj + * @date: 2024-09-25 + * @version: V1.0 + */ +public interface IRegionConfigService extends IService { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/IRegionDevService.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/IRegionDevService.java new file mode 100644 index 000000000..3f5e01cc8 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/IRegionDevService.java @@ -0,0 +1,14 @@ +package com.zhgd.xmgl.modules.quality.service; + +import com.zhgd.xmgl.modules.quality.entity.RegionDev; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 区域设备 + * @author: pengj + * @date: 2024-09-25 + * @version: V1.0 + */ +public interface IRegionDevService extends IService { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java index 75184b2e8..7e4f88f04 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java @@ -7,26 +7,28 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl; -import com.zhgd.xmgl.modules.quality.entity.QualityRegion; -import com.zhgd.xmgl.modules.quality.entity.QualityRegionToAiAnalyseHard; -import com.zhgd.xmgl.modules.quality.entity.QualityRegionToEnterprise; -import com.zhgd.xmgl.modules.quality.entity.QualityRegionToUser; -import com.zhgd.xmgl.modules.quality.mapper.QualityRegionMapper; -import com.zhgd.xmgl.modules.quality.mapper.QualityRegionToAiAnalyseHardMapper; -import com.zhgd.xmgl.modules.quality.mapper.QualityRegionToEnterpriseMapper; -import com.zhgd.xmgl.modules.quality.mapper.QualityRegionToUserMapper; +import com.zhgd.xmgl.modules.quality.entity.*; +import com.zhgd.xmgl.modules.quality.mapper.*; import com.zhgd.xmgl.modules.quality.service.IQualityRegionService; +import com.zhgd.xmgl.modules.quality.service.IRegionDevService; +import com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatData; +import com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatFence; +import com.zhgd.xmgl.modules.safetyhat.mapper.SafetyHatDataMapper; import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord; import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo; +import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl; import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.util.ListUtils; import com.zhgd.xmgl.util.MessageUtil; +import com.zhgd.xmgl.util.RegionUtil; import org.apache.commons.collections.MapUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -55,11 +57,20 @@ public class QualityRegionServiceImpl extends ServiceImpl selectQualityRegionList(Map map) { List list = qualityRegionMapper.selectQualityRegionList(map); + List regiionDevList = regionDevService.list(Wrappers.lambdaQuery().eq(RegionDev::getProjectSn, MapUtils.getString(map, "projectSn"))); + list.forEach(l -> { + l.setRegionDevList(regiionDevList.stream().filter(r -> r.getQualityRegionId().toString().equals(l.getId().toString())).collect(Collectors.toList())); + }); list = postList(list); return BeanUtil.copyToList(ListUtils.listToTree(JSONArray.parseArray(JSON.toJSONString(list)), "id", "parentRegion", "children"), QualityRegion.class); } @@ -223,6 +234,13 @@ public class QualityRegionServiceImpl extends ServiceImpllambdaQuery().eq(RegionDev::getQualityRegionId, qualityRegion.getId())); + List regionDevList = qualityRegion.getRegionDevList(); + for (RegionDev regionDev : regionDevList) { + regionDev.setQualityRegionId(qualityRegion.getId()); + regionDev.setProjectSn(qualityRegion.getProjectSn()); + } + regionDevService.saveBatch(regionDevList); } @Override @@ -282,6 +300,35 @@ public class QualityRegionServiceImpl extends ServiceImpl dataList = safetyHatDataMapper.getNewestDataGroupByProjectSn(byId.getProjectSn()); + int workerNum = 0; + if (CollUtil.isNotEmpty(dataList)) { + for (SafetyHatData d : dataList) { + boolean inFence = false; + String fenceShape = byId.getFenceShape(); + if (StrUtil.isNotBlank(fenceShape)) { + String[] couples = StringUtils.split(fenceShape, ","); + Double[] lon = new Double[couples.length]; + Double[] lat = new Double[couples.length]; + for (int i = 0; i < couples.length; i++) { + String couple = couples[i]; + String[] two = StringUtils.split(couple, "|"); + lon[i] = Double.valueOf(two[0]); + lat[i] = Double.valueOf(two[1]); + } + inFence = RegionUtil.isInPolygon(d.getLongitude(), d.getLatitude(), lon, lat); + } + if (inFence) { + workerNum++; + } + } + } + return workerNum; + } + private void deleteRegion(Long id) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.lambda().eq(QualityRegion::getParentRegion, id); @@ -296,5 +343,6 @@ public class QualityRegionServiceImpl extends ServiceImpl() .eq(QualityRegionToUser::getQualityRegionId, id)); + regionDevService.remove(Wrappers.lambdaQuery().eq(RegionDev::getQualityRegionId, id)); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/RegionConfigServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/RegionConfigServiceImpl.java new file mode 100644 index 000000000..a832bf5df --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/RegionConfigServiceImpl.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.quality.service.impl; + +import com.zhgd.xmgl.modules.quality.entity.RegionConfig; +import com.zhgd.xmgl.modules.quality.mapper.RegionConfigMapper; +import com.zhgd.xmgl.modules.quality.service.IRegionConfigService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 项目区域配置 + * @author: pengj + * @date: 2024-09-25 + * @version: V1.0 + */ +@Service +public class RegionConfigServiceImpl extends ServiceImpl implements IRegionConfigService { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/RegionDevServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/RegionDevServiceImpl.java new file mode 100644 index 000000000..c26fd20fd --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/RegionDevServiceImpl.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.quality.service.impl; + +import com.zhgd.xmgl.modules.quality.entity.RegionDev; +import com.zhgd.xmgl.modules.quality.mapper.RegionDevMapper; +import com.zhgd.xmgl.modules.quality.service.IRegionDevService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 区域设备 + * @author: pengj + * @date: 2024-09-25 + * @version: V1.0 + */ +@Service +public class RegionDevServiceImpl extends ServiceImpl implements IRegionDevService { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/ISafetyHatFenceService.java b/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/ISafetyHatFenceService.java index 7d782d30a..3c823ddb2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/ISafetyHatFenceService.java +++ b/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/ISafetyHatFenceService.java @@ -29,4 +29,6 @@ public interface ISafetyHatFenceService extends IService { * @return */ List queryList(HashMap paramMap); + + String getWorkerInFence(String qualityRegionId); } diff --git a/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/impl/SafetyHatFenceServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/impl/SafetyHatFenceServiceImpl.java index b14f3c15e..636c909a9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/impl/SafetyHatFenceServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/impl/SafetyHatFenceServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.system.query.QueryGenerator; @@ -21,10 +22,8 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.stream.Collectors; /** * @Description: 智能安全帽-围栏 @@ -52,6 +51,23 @@ public class SafetyHatFenceServiceImpl extends ServiceImpl safetyHatFenceList = this.list(Wrappers.lambdaQuery().eq(SafetyHatFence::getQualityRegionId, qualityRegionId)); + if (safetyHatFenceList.size() > 0) { + HashMap map = new HashMap<>(); + map.put("projectSn", safetyHatFenceList.get(0).getProjectSn()); + List safetyHatFenceList1 = dealList(safetyHatFenceList, map); + for (SafetyHatFence safetyHatFence : safetyHatFenceList1) { + List workerListInFence = safetyHatFence.getWorkerListInFence(); + workerIds.append(workerListInFence.stream().map(w -> w.getId().toString()).collect(Collectors.joining(","))); + workerIds.append(","); + } + } + return workerIds.toString(); + } + private QueryWrapper getQueryWrapper(HashMap paramMap) { String alias = "t."; QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(SafetyHatFence.class, paramMap, alias); @@ -90,6 +106,7 @@ public class SafetyHatFenceServiceImpl extends ServiceImpl manualCapture(@RequestBody Map map) { + return Result.success(videoItemService.manualCapture(map)); + } + + @ApiOperation(value = "根据视频设备监控点编号对讲URL", notes = "根据视频设备监控点编号对讲URL", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "serialNumber", value = "视频设备监控点编号", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping("/getTalkURLs") + public Result getTalkURLs(@RequestBody Map map) { + return Result.success(videoItemService.getTalkURLs(map)); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/IVideoItemService.java b/src/main/java/com/zhgd/xmgl/modules/video/service/IVideoItemService.java index b75fa0fdb..7ed0cbb3a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/IVideoItemService.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/IVideoItemService.java @@ -261,4 +261,8 @@ public interface IVideoItemService extends IService { String searchCameraFromHk(Map param); + String manualCapture(Map param); + + String getTalkURLs(Map param); + } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/VideoItemServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/VideoItemServiceImpl.java index adc00da4f..4e73790b1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/VideoItemServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/VideoItemServiceImpl.java @@ -786,4 +786,30 @@ public class VideoItemServiceImpl extends ServiceImpl param) { + ProjectVideoConfig projectVideoConfig = getEnableProjectVideoConfigByProjectSn(param); + if (Objects.equals(projectVideoConfig.getVideoType(), ProjectVideoConfigVideoTypeEnum.ISC.getValue())) { + JSONObject result = HikVideoUtil.manualCapture(MapUtils.getString(param, "serialNumber") + , projectVideoConfig.getAccount(), projectVideoConfig.getPassword(), projectVideoConfig.getAppId(), projectVideoConfig.getAppSecret()); + System.out.println("===============" + result); + return JSON.toJSONString(result); + } else { + throw new OpenAlertException(MessageUtil.get("paramErr")); + } + } + + @Override + public String getTalkURLs(Map param) { + ProjectVideoConfig projectVideoConfig = getEnableProjectVideoConfigByProjectSn(param); + if (Objects.equals(projectVideoConfig.getVideoType(), ProjectVideoConfigVideoTypeEnum.ISC.getValue())) { + JSONObject result = HikVideoUtil.getTalkURLs(MapUtils.getString(param, "serialNumber") + , projectVideoConfig.getAccount(), projectVideoConfig.getPassword(), projectVideoConfig.getAppId(), projectVideoConfig.getAppSecret()); + System.out.println("===============" + result); + return JSON.toJSONString(result); + } else { + throw new OpenAlertException(MessageUtil.get("paramErr")); + } + } + } diff --git a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java index 8bd21499e..7f563a368 100644 --- a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java +++ b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java @@ -415,6 +415,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/xmgl/safetyHatData/getNewestList1").permitAll() .antMatchers("/xmgl/safetyHatData/allList").permitAll() .antMatchers("/xmgl/api/saveHardWareAlarm").permitAll() + .antMatchers("/xmgl/safetyHatData/exportUseHistory").permitAll() .antMatchers(HttpMethod.OPTIONS, "/**").anonymous() .anyRequest().authenticated() // 剩下所有的验证都需要验证. .and() diff --git a/src/main/java/com/zhgd/xmgl/util/HikVideoUtil.java b/src/main/java/com/zhgd/xmgl/util/HikVideoUtil.java index f3abc7a83..72888f85b 100644 --- a/src/main/java/com/zhgd/xmgl/util/HikVideoUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/HikVideoUtil.java @@ -506,6 +506,38 @@ public class HikVideoUtil { return JSONObject.parseObject(result); } + public static JSONObject manualCapture(String cameraIndexCode, String Ip, String port, String appke, String appSecret) { + final String playbackURLs = ARTEMIS_PATH + "/api/video/v1/manualCapture"; + Map paramMap = new HashMap();// post请求Form表单参数 + paramMap.put("cameraIndexCode", cameraIndexCode); + String body = JSON.toJSON(paramMap).toString(); + Map path = new HashMap(2) { + { + put("https://", playbackURLs); + } + }; + String host = Ip + ":" + port; + log.info("调用获取监控点抓拍图片>>>监控点唯一标识(cameraIndexCode):{}", cameraIndexCode); + String result = doPostStringArtemis(host, path, body, null, null, "application/json", appke, appSecret); + return JSONObject.parseObject(result); + } + + public static JSONObject getTalkURLs(String cameraIndexCode, String Ip, String port, String appke, String appSecret) { + final String playbackURLs = ARTEMIS_PATH + "/api/video/v1/cameras/talkURLs"; + Map paramMap = new HashMap();// post请求Form表单参数 + paramMap.put("cameraIndexCode", cameraIndexCode); + String body = JSON.toJSON(paramMap).toString(); + Map path = new HashMap(2) { + { + put("https://", playbackURLs); + } + }; + String host = Ip + ":" + port; + log.info("调用获取监控点对讲URL>>>监控点唯一标识(cameraIndexCode):{}", cameraIndexCode); + String result = doPostStringArtemis(host, path, body, null, null, "application/json", appke, appSecret); + return JSONObject.parseObject(result); + } + /** * 获取监控点回放取流URL V2, 尝试先中心存储,没有记录再设备存储 *