云联万物中间库
This commit is contained in:
parent
ee8bbf58f6
commit
f9616330f5
@ -3,7 +3,7 @@
|
||||
<mapper namespace="com.zhgd.xmgl.modules.basicdata.mapper.BaseModuleMapper">
|
||||
|
||||
<select id="getCompanyModuleList" resultType="com.zhgd.xmgl.modules.basicdata.entity.BaseModule">
|
||||
SELECT a.*
|
||||
SELECT DISTINCT a.*
|
||||
from base_module a INNER JOIN base_module_project b ON (a.module_id=b.module_id and b.type=1)
|
||||
WHERE b.type=1 AND b.sn=#{headquartersSn} and a.style_type=#{styleType}
|
||||
<if test="projectSelectType == '1'.toString()">
|
||||
|
||||
@ -7,6 +7,7 @@ import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectProgressVo;
|
||||
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectTypeVo;
|
||||
import com.zhgd.xmgl.modules.project.entity.vo.ProjectDurationVO;
|
||||
import com.zhgd.xmgl.modules.yunlianwanwu.middle.entity.bo.ProjectBo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@ -83,4 +84,6 @@ public interface ProjectMapper extends BaseMapper<Project> {
|
||||
List<GroupByProjectTypeVo> groupByProjectType(Map<String, Object> map);
|
||||
|
||||
List<GroupByProjectProgressVo> groupByProjectProgress();
|
||||
|
||||
List<ProjectBo> queryAllProjectAndVideoInfo();
|
||||
}
|
||||
|
||||
@ -665,4 +665,14 @@
|
||||
HAVING
|
||||
p.project_progress is NOT null
|
||||
</select>
|
||||
<select id="queryAllProjectAndVideoInfo"
|
||||
resultType="com.zhgd.xmgl.modules.yunlianwanwu.middle.entity.bo.ProjectBo">
|
||||
SELECT p.*,
|
||||
IF(count(vi.item_id) > 0, 1, 0) sxtazzt,
|
||||
min(vi.create_time) sxtazrq
|
||||
FROM project p
|
||||
LEFT JOIN project_video_config pvc ON pvc.project_sn = p.project_sn
|
||||
LEFT JOIN video_item vi ON vi.video_id = pvc.id
|
||||
GROUP BY p.project_sn
|
||||
</select>
|
||||
</mapper>
|
||||
@ -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<Project> 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<MiddleGcxx> middleGcxxes = JSON.parseObject(rs.toString(), new TypeReference<List<MiddleGcxx>>() {
|
||||
});
|
||||
Map<String, MiddleGcxx> idAndMiddleGcxxMap = middleGcxxes.stream().collect(Collectors.toMap(MiddleGcxx::getId, middleGcxx -> middleGcxx));
|
||||
//从数据库获取所有项目
|
||||
List<ProjectBo> 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<VideoItemConfigBo> 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<MiddleGcjkd> middleGcjkds = JSON.parseObject(rs.toString(), new TypeReference<List<MiddleGcjkd>>() {
|
||||
});
|
||||
Map<Long, MiddleGcjkd> idAndMiddleGcjkdMap = middleGcjkds.stream().collect(Collectors.toMap(middleGcjkd -> Long.valueOf(middleGcjkd.getId()), m -> m));
|
||||
//从数据库获取所有监控点位
|
||||
List<VideoItemConfigBo> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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 = "摄像头安装日期")
|
||||
|
||||
@ -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;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user