diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/BaseModuleMapper.xml b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/BaseModuleMapper.xml
index a8411d669..4bd882bc7 100644
--- a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/BaseModuleMapper.xml
+++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/BaseModuleMapper.xml
@@ -3,7 +3,7 @@
+
\ No newline at end of file
diff --git a/src/main/java/com/zhgd/xmgl/modules/yunlianwanwu/middle/MiddleController.java b/src/main/java/com/zhgd/xmgl/modules/yunlianwanwu/middle/MiddleController.java
index 3627484e8..4903a4614 100644
--- a/src/main/java/com/zhgd/xmgl/modules/yunlianwanwu/middle/MiddleController.java
+++ b/src/main/java/com/zhgd/xmgl/modules/yunlianwanwu/middle/MiddleController.java
@@ -1,35 +1,35 @@
package com.zhgd.xmgl.modules.yunlianwanwu.middle;
-import cn.hutool.core.date.DateUtil;
import cn.hutool.http.HttpUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.gexin.fastjson.JSON;
-import com.zhgd.xmgl.modules.project.entity.Project;
+import com.gexin.fastjson.TypeReference;
+import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
-import com.zhgd.xmgl.modules.video.entity.VideoItem;
import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper;
import com.zhgd.xmgl.modules.yunlianwanwu.middle.entity.MiddleGcjkd;
import com.zhgd.xmgl.modules.yunlianwanwu.middle.entity.MiddleGcxx;
import com.zhgd.xmgl.modules.yunlianwanwu.middle.entity.VideoItemConfigBo;
+import com.zhgd.xmgl.modules.yunlianwanwu.middle.entity.bo.ProjectBo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import java.math.BigDecimal;
-import java.util.Date;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
- * 云联万物的中间库的controller,只限自己调用
+ * 云联万物的中间库的controller
*/
@RestController
@RequestMapping("middle")
@Slf4j
public class MiddleController {
- private String ip = "http://localhost:8081";
+ private String ipPort = "http://localhost:22333";
@Autowired
private ProjectMapper projectMapper;
@@ -38,98 +38,170 @@ public class MiddleController {
@GetMapping("/add/project")
public void addProject() {
- List projects = projectMapper.selectList(new QueryWrapper<>());
- log.info("projects:{}", JSON.toJSONString(projects));
- if (CollectionUtils.isNotEmpty(projects)) {
- for (Project project : projects) {
- MiddleGcxx middleGcxx = new MiddleGcxx();
- middleGcxx.setId(project.getProjectSn());//id存的是projectSn
- middleGcxx.setGcmc(project.getProjectName());
- middleGcxx.setSgxkzh(project.getConstructionPermit());
- //middleGcxx.setSgzbhh();
- //middleGcxx.setSgdjyjh();
- middleGcxx.setGcjsdd(project.getProjectAddress());
- middleGcxx.setGcssjd("暂无");
- middleGcxx.setGcssjdbm("暂无");
- middleGcxx.setGcgm1(new BigDecimal(project.getProjectAcreage()));
- //middleGcxx.setGcgm2();
- //middleGcxx.setHtjg();
- //middleGcxx.setHtbh();
- //middleGcxx.setHtgq();
- //middleGcxx.setHtkgrq();
- //middleGcxx.setHtjgrq();
- //middleGcxx.setGhxkzh();
- //middleGcxx.setTdpzwh();
- //middleGcxx.setTdpzspdw();
- //middleGcxx.setRfmj();
- //middleGcxx.setGctzxz();
- //middleGcxx.setLxpzwh();
- //middleGcxx.setFwts();
- //middleGcxx.setZxlb();
- middleGcxx.setGclb(getGclb(project.getProjectType()));
- //middleGcxx.setGcxz();
- //middleGcxx.setGcxxjd();
- //middleGcxx.setZljdzt();
- //middleGcxx.setAqjdzt();
- //middleGcxx.setSxtazzt();
- //middleGcxx.setSxtazrq();
- //middleGcxx.setSxtccrq();
- middleGcxx.setQxbm("暂无");
- middleGcxx.setXzb(project.getLongitude());
- middleGcxx.setYzb(project.getLatitude());
- middleGcxx.setYszb(project.getLongitude() + "," + project.getLatitude());
- //middleGcxx.setYszblx();
- middleGcxx.setCreateDateTime(DateUtil.parseDateTime(project.getCreateTime()));
- middleGcxx.setUpdateDateTime(new Date());
- middleGcxx.setDatasource(String.valueOf(project.getSourceType()));
- //middleGcxx.setCjsj();
- //middleGcxx.setXgsj();
- String url = ip + "/middle/middleGcxx/add";
- String body = JSON.toJSONString(middleGcxx);
- log.info("url:{},body:{}", url, body);
- String post = HttpUtil.post(url, body);
- log.info("rt:{}", post);
+ //从中间库接口获取所有项目
+ String url = ipPort + "/middle/middleGcxx/list";
+ log.info("getMiddleProject:{}", url);
+ String getMiddleProject = HttpUtil.get(url);
+ log.info("getMiddleProjectRs:{}", getMiddleProject);
+ if (StringUtils.isNotBlank(getMiddleProject)) {
+ Result result = JSON.parseObject(getMiddleProject, Result.class);
+ if (result.isSuccess()) {
+ Object rs = result.getResult();
+ if (rs != null) {
+ List middleGcxxes = JSON.parseObject(rs.toString(), new TypeReference>() {
+ });
+ Map idAndMiddleGcxxMap = middleGcxxes.stream().collect(Collectors.toMap(MiddleGcxx::getId, middleGcxx -> middleGcxx));
+ //从数据库获取所有项目
+ List projects = projectMapper.queryAllProjectAndVideoInfo();
+ //比较出新增和修改的项目,调用接口更新中间库
+ log.info("projects:{}", JSON.toJSONString(projects));
+
+ if (CollectionUtils.isNotEmpty(projects)) {
+ for (ProjectBo bo : projects) {
+ if (idAndMiddleGcxxMap.get(bo.getProjectSn()) == null) {
+ //新增
+ httpAddMiddleGcxx(bo);
+ } else {
+ //修改
+ httpUpdateMiddleGcxx(bo);
+ }
+ }
+ }
+ }
}
}
+
}
@GetMapping("/middleGcjkd/add")
public void addMiddleGcjkd() {
- List bos = videoItemMapper.selectDeviceDetailAndProjectSnList();
- log.info("bos:{}", JSON.toJSONString(bos));
- if (CollectionUtils.isNotEmpty(bos)) {
- for (VideoItemConfigBo bo : bos) {
- MiddleGcjkd middleGcjkd = new MiddleGcjkd();
- middleGcjkd.setId(String.valueOf(bo.getItemId()));
- middleGcjkd.setGcid(bo.getProjectSn());
- //middleGcjkd.setSgxkzh();
- //middleGcjkd.setSgzbh();
- //middleGcjkd.setSgdjyjh();
- middleGcjkd.setJkdbh(bo.getSerialNumber());
- middleGcjkd.setJkdmc(bo.getVideoName());
- middleGcjkd.setJkdzt(getStatus(bo.getDeviceState()));
- //middleGcjkd.setXzb();
- //middleGcjkd.setYzb();
- //middleGcjkd.setYszb();
- //middleGcjkd.setYszblx();
- middleGcjkd.setDeleted(0);
- middleGcjkd.setCreateDateTime(bo.getCreateTime());
- middleGcjkd.setUpdateDateTime(new Date());
- middleGcjkd.setDatasource("暂无");
- //middleGcjkd.setCjsj();
- //middleGcjkd.setXgsj();
- //middleGcjkd.setSpbfdz();
- middleGcjkd.setJkdlx(getDeviceType(bo.getDeviceType()));
- middleGcjkd.setJkdwz("暂无");
- String url = ip + "/middle/middleGcjkd/add";
- String body = JSON.toJSONString(middleGcjkd);
- log.info("url:{},body:{}", url, body);
- String post = HttpUtil.post(url, body);
- log.info("rt:{}", post);
+ //从中间库接口获取所有监控点位
+ String url = ipPort + "/middle/middleGcjkd/list";
+ log.info("getMiddleProject:{}", url);
+ String getMiddleGcjkd = HttpUtil.get(url);
+ log.info("getMiddleGcjkdRs:{}", getMiddleGcjkd);
+ if (StringUtils.isNotBlank(getMiddleGcjkd)) {
+ Result result = JSON.parseObject(getMiddleGcjkd, Result.class);
+ if (result.isSuccess()) {
+ Object rs = result.getResult();
+ if (rs != null) {
+ List middleGcjkds = JSON.parseObject(rs.toString(), new TypeReference>() {
+ });
+ Map idAndMiddleGcjkdMap = middleGcjkds.stream().collect(Collectors.toMap(middleGcjkd -> Long.valueOf(middleGcjkd.getId()), m -> m));
+ //从数据库获取所有监控点位
+ List videoItemBos = videoItemMapper.selectDeviceDetailAndProjectSnList();
+ if (CollectionUtils.isNotEmpty(videoItemBos)) {
+ for (VideoItemConfigBo bo : videoItemBos) {
+ //比较出新增和修改的监控点位,调用接口更新中间库
+ if (idAndMiddleGcjkdMap.get(bo.getItemId()) == null) {
+ //新增
+ httpAddMiddleGcjkd(bo);
+ } else {
+ //修改
+ httpUpdateMiddleGcjkd(bo);
+ }
+ }
+ }
+ }
}
+
}
+
}
+ private void httpAddMiddleGcjkd(VideoItemConfigBo bo) {
+ MiddleGcjkd middleGcjkd = getMiddleGcjkdByVideoItem(bo);
+ String url = ipPort + "/middle/middleGcjkd/add";
+ String body = JSON.toJSONString(middleGcjkd);
+ log.info("add_url:{},body:{}", url, body);
+ String post = HttpUtil.post(url, body);
+ log.info("rt:{}", post);
+ }
+
+ private void httpUpdateMiddleGcjkd(VideoItemConfigBo bo) {
+ MiddleGcjkd middleGcjkd = getMiddleGcjkdByVideoItem(bo);
+ String url = ipPort + "/middle/middleGcjkd/edit";
+ String body = JSON.toJSONString(middleGcjkd);
+ log.info("update_url:{},body:{}", url, body);
+ String post = HttpUtil.post(url, body);
+ log.info("rt:{}", post);
+ }
+
+ private MiddleGcjkd getMiddleGcjkdByVideoItem(VideoItemConfigBo bo) {
+ MiddleGcjkd middleGcjkd = new MiddleGcjkd();
+ middleGcjkd.setId(String.valueOf(bo.getItemId()));
+ middleGcjkd.setGcid(bo.getProjectSn());
+ middleGcjkd.setJkdbh(bo.getMonitoringPointCode());
+ middleGcjkd.setJkdmc(bo.getVideoName());
+ middleGcjkd.setJkdzt(getStatus(bo.getDeviceState()));
+ middleGcjkd.setJkdlx(getDeviceType(bo.getDeviceType()));
+ middleGcjkd.setJkdwz(bo.getMonitoringPointLocation());
+ String latAndLng = bo.getLatAndLng();
+ if (StringUtils.isNotBlank(latAndLng)) {
+ String[] split = latAndLng.split(",");
+ if (split.length == 2) {
+ middleGcjkd.setXzb(split[1]);
+ middleGcjkd.setYzb(split[0]);
+ middleGcjkd.setYszb(latAndLng);
+ }
+ }
+ middleGcjkd.setYszblx("WGS-84");
+ middleGcjkd.setDeleted(0);
+ middleGcjkd.setCreateDateTime(bo.getCreateTime());
+ middleGcjkd.setDatasource(String.valueOf(15));
+ return middleGcjkd;
+ }
+
+ private void httpAddMiddleGcxx(ProjectBo project) {
+ MiddleGcxx middleGcxx = getMiddleGcxxByProject(project);
+ String url = ipPort + "/middle/middleGcxx/add";
+ String body = JSON.toJSONString(middleGcxx);
+ log.info("url:{},body:{}", url, body);
+ String post = HttpUtil.post(url, body);
+ log.info("rt:{}", post);
+ }
+
+ private void httpUpdateMiddleGcxx(ProjectBo project) {
+ MiddleGcxx middleGcxx = getMiddleGcxxByProject(project);
+ String url = ipPort + "/middle/middleGcxx/edit";
+ String body = JSON.toJSONString(middleGcxx);
+ log.info("url:{},body:{}", url, body);
+ String post = HttpUtil.post(url, body);
+ log.info("rt:{}", post);
+ }
+
+ /**
+ * 获取中间库
+ *
+ * @param bo
+ * @return
+ */
+ private MiddleGcxx getMiddleGcxxByProject(ProjectBo bo) {
+ MiddleGcxx middleGcxx = new MiddleGcxx();
+ middleGcxx.setId(bo.getProjectSn());//id存的是projectSn
+ middleGcxx.setGcmc(bo.getProjectName());
+ middleGcxx.setGcjsdd(bo.getProjectName());
+ middleGcxx.setSgxkzh(bo.getConstructionPermit());
+ middleGcxx.setGcssjd(bo.getStreetTownshipTown());
+ middleGcxx.setGcssjdbm(bo.getStreetTownshipTownCode());
+ middleGcxx.setGclb(getGclb(bo.getProjectType()));
+ middleGcxx.setSxtazzt(bo.getSxtazzt());
+ middleGcxx.setSxtazrq(bo.getSxtazrq());
+ middleGcxx.setQxbm(bo.getDistrictOrganizationCode());
+ middleGcxx.setXzb(bo.getLatitude());
+ middleGcxx.setYzb(bo.getLongitude());
+ middleGcxx.setYszb(bo.getLongitude() + "," + bo.getLatitude());
+ middleGcxx.setYszblx("WGS-84");
+ middleGcxx.setDatasource(String.valueOf(15));
+ return middleGcxx;
+ }
+
+ /**
+ * 获取设备类型
+ *
+ * @param deviceType
+ * @return
+ */
public String getDeviceType(Integer deviceType) {
//1 JKDLX001 微卡口
//2 JKDLX002 枪机
@@ -141,22 +213,28 @@ public class MiddleController {
//设备状态,1在线,2离线
switch (deviceType) {
case 1:
- return "2";
+ return "JKDLX002";
case 2:
- return "3";
+ return "JKDLX003";
case 3:
- return "3";
+ return "JKDLX003";
case 4:
- return "3";
+ return "JKDLX003";
case 5:
- return "3";
+ return "JKDLX003";
case 6:
- return "3";
+ return "JKDLX003";
}
}
return null;
}
+ /**
+ * 获取中间库的监控点的视频在线状态
+ *
+ * @param status
+ * @return
+ */
public Integer getStatus(Integer status) {
if (status != null) {
//设备状态,1在线,2离线
@@ -190,55 +268,55 @@ public class MiddleController {
//10 HB_QT 其他
//工程类别,1房建,2市政,3安装,4装饰,5公路,6冶炼,7矿山,8化工石油,9水利水电,10电力,11农林,12港口与航道,13航天航空,14通信,15其他
- Integer s = null;
+ String s = null;
switch (projectType) {
case 1:
- s = 1;
+ s = "FWJSGC";
break;
case 2:
- s = 2;
+ s = "SZ";
break;
case 3:
- s = 3;
+ s = "ZX";
break;
case 4:
- s = 3;
+ s = "ZX";
break;
case 5:
- s = 6;
+ s = "HB_JTGD";
break;
case 6:
- s = 10;
+ s = "HB_QT";
break;
case 7:
- s = 10;
+ s = "HB_QT";
break;
case 8:
- s = 10;
+ s = "HB_QT";
break;
case 9:
- s = 4;
+ s = "HB_SWGD";
break;
case 10:
- s = 5;
+ s = "HB_YLGD";
break;
case 11:
- s = 10;
+ s = "HB_QT";
break;
case 12:
- s = 10;
+ s = "HB_QT";
break;
case 13:
- s = 10;
+ s = "HB_QT";
break;
case 14:
- s = 10;
+ s = "HB_QT";
break;
case 15:
- s = 10;
+ s = "HB_QT";
break;
}
- return s != null ? String.valueOf(s) : null;
+ return s;
}
}
diff --git a/src/main/java/com/zhgd/xmgl/modules/yunlianwanwu/middle/entity/MiddleGcxx.java b/src/main/java/com/zhgd/xmgl/modules/yunlianwanwu/middle/entity/MiddleGcxx.java
index cb8a99b4c..ef07b3a97 100644
--- a/src/main/java/com/zhgd/xmgl/modules/yunlianwanwu/middle/entity/MiddleGcxx.java
+++ b/src/main/java/com/zhgd/xmgl/modules/yunlianwanwu/middle/entity/MiddleGcxx.java
@@ -200,12 +200,10 @@ public class MiddleGcxx implements Serializable {
* 1:已安装摄像头
* 2:已拆除
*/
-
private Integer sxtazzt;
/**
* 摄像头安装日期
*/
-
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "摄像头安装日期")
diff --git a/src/main/java/com/zhgd/xmgl/modules/yunlianwanwu/middle/entity/bo/ProjectBo.java b/src/main/java/com/zhgd/xmgl/modules/yunlianwanwu/middle/entity/bo/ProjectBo.java
new file mode 100644
index 000000000..9db9d2a5b
--- /dev/null
+++ b/src/main/java/com/zhgd/xmgl/modules/yunlianwanwu/middle/entity/bo/ProjectBo.java
@@ -0,0 +1,24 @@
+package com.zhgd.xmgl.modules.yunlianwanwu.middle.entity.bo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zhgd.xmgl.modules.project.entity.Project;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+@Data
+public class ProjectBo extends Project {
+ /**
+ * 摄像头安装状态0:未安装摄像头
+ * 1:已安装摄像头
+ * 2:已拆除
+ */
+ private Integer sxtazzt;
+ /**
+ * 摄像头安装日期
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @ApiModelProperty(value = "摄像头安装日期")
+ private java.util.Date sxtazrq;
+}