skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java
@@ -163,6 +163,10 @@ */ public static final String regionNodesByParamsURLs = "/api/irds/v2/region/nodesByParams"; /** * 查询水尺监测信息 */ public static final String waterGaugeURLs = "/api/v1/waterGauge/list"; skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkStaffGaugeMonController.java
New file @@ -0,0 +1,114 @@ package cn.gistack.sm.hk.controller; import cn.gistack.sm.hk.entity.HkStaffGaugeMon; import cn.gistack.sm.hk.service.HkStaffGaugeMonService; import cn.gistack.sm.hk.vo.HkStaffGaugeMonVO; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.*; /** * @author zhongrj * @Description: 水尺监测 * @date 2024-06-05 */ @Slf4j @Api(tags = "水尺监测") @RestController @RequestMapping("/hk/hkStaffGaugeMon") @AllArgsConstructor public class HkStaffGaugeMonController { private final HkStaffGaugeMonService hkStaffGaugeMonService; /** * 分页列表查询 * * @param hkStaffGaugeMon * @return */ @ApiOperation(value="水尺监测-分页列表查询", notes="水尺监测-分页列表查询") @GetMapping(value = "/list") public R queryPageList(HkStaffGaugeMon hkStaffGaugeMon, Query query) { IPage<HkStaffGaugeMon> pageList = hkStaffGaugeMonService.page(Condition.getPage(query), Condition.getQueryWrapper(hkStaffGaugeMon)); return R.data(pageList); } /** * 自定义分页列表查询 * @param query * @param hkStaffGaugeMon * @return */ @ApiOperation(value="水尺监测-自定义分页列表查询", notes="水尺监测-自定义分页列表查询") @GetMapping(value = "/page") public R selectAlarmPage(HkStaffGaugeMonVO hkStaffGaugeMon, Query query) { return R.data(hkStaffGaugeMonService.selectHkStaffGaugeMonPage(Condition.getPage(query),hkStaffGaugeMon)); } /** * 添加 * * @param hkStaffGaugeMon * @return */ @ApiOperation(value="水尺监测-添加", notes="水尺监测-添加") @PostMapping(value = "/add") public R add(@RequestBody HkStaffGaugeMon hkStaffGaugeMon) { return R.data(hkStaffGaugeMonService.save(hkStaffGaugeMon)); } /** * 编辑 * * @param hkStaffGaugeMon * @return */ @ApiOperation(value="水尺监测-编辑", notes="水尺监测-编辑") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public R edit(@RequestBody HkStaffGaugeMon hkStaffGaugeMon) { return R.data(hkStaffGaugeMonService.updateById(hkStaffGaugeMon)); } /** * 通过id查询 * * @param id * @return */ @ApiOperation(value="水尺监测-通过id查询", notes="水尺监测-通过id查询") @GetMapping(value = "/queryById") public R queryById(@RequestParam(name="id",required=true) String id) { HkStaffGaugeMon hkStaffGaugeMon = hkStaffGaugeMonService.getById(id); return R.data(hkStaffGaugeMon); } /** * 定时读取 * @return */ @GetMapping(value = "/insert") public void insert() { // 保存数据 hkStaffGaugeMonService.saveHkStaffGaugeMonInfo(); } /** * 定时读取 * @return */ @PostMapping(value = "/test") public void insert(@RequestBody String data) { // 保存数据 hkStaffGaugeMonService.saveHkStaffGaugeMonInfo(data); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/entity/HkEvent.java
@@ -19,7 +19,7 @@ */ @Data @TableName(value = "sm_hk_event") @ApiModel(value = "sm_hk_event对象", description = "考核方案") @ApiModel(value = "sm_hk_event对象", description = "海康视频事件") public class HkEvent implements Serializable { /** skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/entity/HkStaffGaugeMon.java
New file @@ -0,0 +1,144 @@ package cn.gistack.sm.hk.entity; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; /** * 海康水尺监测 * * @author zhongrj * @date 2024-06-05 */ @Data @TableName(value = "sm_hk_staff_gauge_mon") @ApiModel(value = "sm_hk_staff_gauge_mon对象", description = "水尺监测") public class HkStaffGaugeMon implements Serializable { /** * 主键id */ @TableId(value = "id") private String id; /** * 水尺名称 */ @ApiModelProperty(value = "水尺名称") private String waterGaugeName; /** * 水尺编号 */ @ApiModelProperty(value = "水尺编号") private String waterGaugeCode; /** * 设备编号 */ @ApiModelProperty(value = "设备编号") private String cameraIndexCode; /** * 设备名称 */ @ApiModelProperty(value = "设备名称") private String cameraName; /** * 监测位置 */ @ApiModelProperty(value = "监测位置") private String location; /** * 原始的比对的图片 */ @ApiModelProperty(value = "原始的比对的图片") private String markPic; /** * 虚拟水尺的坐标 */ private String markData; /** * 当前虚拟水尺图片 */ @ApiModelProperty(value = "当前虚拟水尺图片") private String currentPic; /** * 水位高度 */ @ApiModelProperty(value = "水位高度") private Double alarmHeight; /** * 备注1 */ @ApiModelProperty(value = "备注1") private String remark1; /** * 备注2 */ @ApiModelProperty(value = "备注2") private String remark2; /** * 备注3 */ @ApiModelProperty(value = "备注3") private String remark3; /** * 备注4 */ @ApiModelProperty(value = "备注4") private String remark4; /** * 备注5 */ @ApiModelProperty(value = "备注5") private String remark5; /** * 设置更新时间 */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "设置更新时间") private Date configUpdateTime; /** * 创建时间 */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "创建时间") @TableField(value = "create_time",fill = FieldFill.INSERT) private Date createTime; /** * 数据分析上报时间 */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "数据分析上报时间") @TableField(value = "update_time") private Date updateTime; /** * 删除状态 */ @ApiModelProperty(value = "删除状态") private Integer deleteStatus; } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/mapper/HkStaffGaugeMonMapper.java
New file @@ -0,0 +1,21 @@ package cn.gistack.sm.hk.mapper; import cn.gistack.sm.hk.entity.HkStaffGaugeMon; import cn.gistack.sm.hk.vo.HkStaffGaugeMonVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; import java.util.List; public interface HkStaffGaugeMonMapper extends BaseMapper<HkStaffGaugeMon> { /** * 自定义分页列表查询 * @param page * @param hkStaffGaugeMon * @return */ List<HkStaffGaugeMonVO> selectHkStaffGaugeMonPage(@Param("page") IPage<HkStaffGaugeMonVO> page, @Param("hkStaffGaugeMon") HkStaffGaugeMonVO hkStaffGaugeMon); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/mapper/HkStaffGaugeMonMapper.xml
New file @@ -0,0 +1,49 @@ <?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="cn.gistack.sm.hk.mapper.HkStaffGaugeMonMapper"> <!--自定义分页列表查询--> <select id="selectHkStaffGaugeMonPage" resultType="cn.gistack.sm.hk.vo.HkStaffGaugeMonVO"> select shsgm.*, awb."res_guid" as resGuid, a."name" as resName, case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS townName, case when b."ad_grad" = 3 THEN b."ad_name" when c."ad_grad" = 3 THEN C."ad_name" END AS countyName, case when b."ad_grad" = 2 THEN b."ad_name" when c."ad_grad" = 2 THEN c."ad_name" ELSE d."ad_name" END AS cityName from YWXT.sm_hk_staff_gauge_mon shsgm left join ( select "res_guid","video_guid" from SJZT_MD."att_wmst_base" union all select "regionindexcode" as "res_guid","gbindexcode" as "video_guid" from SJZT_ODS."haik_gb_wmst_base" ) awb on awb."video_guid" = shsgm.camera_index_code left join SJZT_MD."att_res_base" a on a."guid" = awb."res_guid" left join SJZT_MD."att_ad_base" b on b."guid" = a."interior_ad_guid" LEFT JOIN SJZT_MD."att_ad_base" c ON b."p_ad_code" = c."guid" LEFT JOIN SJZT_MD."att_ad_base" d ON c."p_ad_code" = d."guid" where 1 =1 <if test="hkStaffGaugeMon.cameraName!=null and hkStaffGaugeMon.cameraName!=''"> and shsgm.camera_name like concat('%',#{hkStaffGaugeMon.cameraName},'%') </if> <if test="hkStaffGaugeMon.resName!=null and hkStaffGaugeMon.resName!=''"> and a."name" like concat('%',#{hkStaffGaugeMon.resName},'%') </if> <if test="hkStaffGaugeMon.startTime !=null and hkStaffGaugeMon.startTime !=''"> AND DATE_FORMAT(shsgm.update_time,'%Y-%m-%d') >= #{hkStaffGaugeMon.startTime} </if> <if test="hkStaffGaugeMon.endTime !=null and hkStaffGaugeMon.endTime !=''"> AND DATE_FORMAT(shsgm.update_time,'%Y-%m-%d') <= #{hkStaffGaugeMon.endTime} </if> <if test="hkStaffGaugeMon.adCode != null and hkStaffGaugeMon.adCode !='' and hkStaffGaugeMon.adCode !='420000000000'"> AND (b."ad_code" = #{hkStaffGaugeMon.adCode} or c."ad_code" =#{hkStaffGaugeMon.adCode} or d."ad_code" = #{hkStaffGaugeMon.adCode}) </if> order by shsgm.id desc,shsgm.update_time desc </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/HkStaffGaugeMonService.java
New file @@ -0,0 +1,36 @@ package cn.gistack.sm.hk.service; import cn.gistack.sm.hk.entity.HkStaffGaugeMon; import cn.gistack.sm.hk.vo.HkStaffGaugeMonVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; /** * 水尺监测服务接口层 * @author zhongrj * @date 2024-06-05 */ public interface HkStaffGaugeMonService extends IService<HkStaffGaugeMon> { /** * 自定义分页列表查询 * @param page * @param hkStaffGaugeMon * @return */ IPage<HkStaffGaugeMonVO> selectHkStaffGaugeMonPage(IPage<HkStaffGaugeMonVO> page, HkStaffGaugeMonVO hkStaffGaugeMon); /** * 保存数据 * @return */ void saveHkStaffGaugeMonInfo(); /** * 保存数据 * @param data * @return */ void saveHkStaffGaugeMonInfo(String data); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/impl/HkStaffGaugeMonServiceImpl.java
New file @@ -0,0 +1,91 @@ package cn.gistack.sm.hk.service.impl; import cn.gistack.sm.hk.entity.HkEvent; import cn.gistack.sm.hk.entity.HkStaffGaugeMon; import cn.gistack.sm.hk.mapper.HkStaffGaugeMonMapper; import cn.gistack.sm.hk.service.HkStaffGaugeMonService; import cn.gistack.sm.hk.util.GetCameraUtils; import cn.gistack.sm.hk.vo.HkStaffGaugeMonVO; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.Date; import java.util.Map; import static cn.gistack.sm.hk.constant.HkConstant.waterGaugeURLs; /** * 水尺监测服务接口实现层 * @author zhongrj * @date 2024-06-05 */ @Service @Slf4j public class HkStaffGaugeMonServiceImpl extends ServiceImpl<HkStaffGaugeMonMapper, HkStaffGaugeMon> implements HkStaffGaugeMonService { /** * 自定义分页列表查询 * @param page * @param hkStaffGaugeMon * @return */ @Override public IPage<HkStaffGaugeMonVO> selectHkStaffGaugeMonPage(IPage<HkStaffGaugeMonVO> page, HkStaffGaugeMonVO hkStaffGaugeMon) { return page.setRecords(baseMapper.selectHkStaffGaugeMonPage(page,hkStaffGaugeMon)); } /** * 保存数据 * @return */ @Override public void saveHkStaffGaugeMonInfo() { // 解析json String result = GetCameraUtils.getStaffGaugeMon(3, waterGaugeURLs); // 保存 saveHkStaffGaugeMonInfo(result); } /** * 保存数据 * @param result * @return */ @Override public void saveHkStaffGaugeMonInfo(String result) { // 解析json log.info("水尺监测信息:" + result); JSONObject jsonObject = JSONObject.parseObject(result); JSONArray jsonArray = jsonObject.getJSONArray("data"); if (null!= jsonArray && jsonArray.size()>0) { for (int i = 0; i < jsonArray.size(); i++) { HkStaffGaugeMon hkStaffGaugeMon = new HkStaffGaugeMon(); hkStaffGaugeMon.setId(jsonArray.getJSONObject(i).getString("id")); hkStaffGaugeMon.setWaterGaugeName(jsonArray.getJSONObject(i).getString("waterGaugeName")); hkStaffGaugeMon.setWaterGaugeCode(jsonArray.getJSONObject(i).getString("waterGaugeCode")); hkStaffGaugeMon.setCameraIndexCode(jsonArray.getJSONObject(i).getString("cameraIndexCode")); hkStaffGaugeMon.setCameraName(jsonArray.getJSONObject(i).getString("cameraName")); hkStaffGaugeMon.setLocation(jsonArray.getJSONObject(i).getString("location")); hkStaffGaugeMon.setMarkPic(jsonArray.getJSONObject(i).getString("markPic")); hkStaffGaugeMon.setMarkData(jsonArray.getJSONObject(i).getString("markData")); hkStaffGaugeMon.setCreateTime(jsonArray.getJSONObject(i).getDate("createTime")); hkStaffGaugeMon.setConfigUpdateTime(jsonArray.getJSONObject(i).getDate("configUpdateTime")); hkStaffGaugeMon.setUpdateTime(jsonArray.getJSONObject(i).getDate("updateTime")); hkStaffGaugeMon.setDeleteStatus(jsonArray.getJSONObject(i).getInteger("deleteStatus")); hkStaffGaugeMon.setCurrentPic(jsonArray.getJSONObject(i).getString("currentPic")); hkStaffGaugeMon.setAlarmHeight(jsonArray.getJSONObject(i).getDouble("alarmHeight")); hkStaffGaugeMon.setRemark1(jsonArray.getJSONObject(i).getString("remark1")); hkStaffGaugeMon.setRemark2(jsonArray.getJSONObject(i).getString("remark2")); hkStaffGaugeMon.setRemark3(jsonArray.getJSONObject(i).getString("remark3")); hkStaffGaugeMon.setRemark4(jsonArray.getJSONObject(i).getString("remark4")); hkStaffGaugeMon.setRemark5(jsonArray.getJSONObject(i).getString("remark5")); // 保存 save(hkStaffGaugeMon); } } } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraUtils.java
@@ -370,6 +370,26 @@ return common(null==eventVO.getType()?1:eventVO.getType(),url, body); } /** * 调用水尺检测信息 * @param type * @param url * @return */ public static String getStaffGaugeMon(Integer type, String url) { /** * 组装请求参数 */ JSONObject jsonBody = new JSONObject(); String body = jsonBody.toJSONString(); /** * 调用接口并返回数据 * post请求application/json类型参数; */ return common(null==type?1:type,url, body); } // public static void main(String[] args) { // // String previewURL = GetCameraPreviewURL(1, HkConstant.previewURLs, skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/vo/HkStaffGaugeMonVO.java
New file @@ -0,0 +1,48 @@ package cn.gistack.sm.hk.vo; import cn.gistack.sm.hk.entity.HkStaffGaugeMon; import lombok.Data; import java.io.Serializable; @Data public class HkStaffGaugeMonVO extends HkStaffGaugeMon implements Serializable { /** * 开始时间 */ private String startTime; /** * 结束时间 */ private String endTime; /** * 水库编号 */ private String resGuid; /** * 水库名称 */ private String resName; /** * 市州名称 */ private String cityName; /** * 区县 */ private String countyName; /** * 乡镇 */ private String townName; /** * 区域编号 */ private String adCode; }