云联万物中间库代码
This commit is contained in:
parent
df90b4f1e6
commit
57a10e0978
@ -179,6 +179,12 @@ public class VideoItem implements Serializable {
|
||||
@ApiModelProperty(value = "云联万物-监控点位置(JKDWZ001:作业面,JKDWZ002:料场,JKDWZ003:车辆出入口,JKDWZ004:人员出入口,JKDWZ005:洗轮机,JKDWZ006:围墙,JKDWZ007:塔吊,JKDWZ008:其他)")
|
||||
private java.lang.String monitoringPointLocation;
|
||||
|
||||
@ApiModelProperty(value = "云联万物-经纬坐标")
|
||||
private java.lang.String latAndLng;
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private String latitude;
|
||||
/**
|
||||
*经度
|
||||
*/
|
||||
private String longitude;
|
||||
}
|
||||
|
||||
@ -1,27 +1,12 @@
|
||||
package com.zhgd.xmgl.modules.yunlianwanwu.middle;
|
||||
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.gexin.fastjson.JSON;
|
||||
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.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 com.zhgd.xmgl.modules.yunlianwanwu.middle.service.MiddleService;
|
||||
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.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 云联万物的中间库的controller
|
||||
*/
|
||||
@ -29,294 +14,19 @@ import java.util.stream.Collectors;
|
||||
@RequestMapping("middle")
|
||||
@Slf4j
|
||||
public class MiddleController {
|
||||
private String ipPort = "http://localhost:22333";
|
||||
@Autowired
|
||||
private ProjectMapper projectMapper;
|
||||
|
||||
@Autowired
|
||||
private VideoItemMapper videoItemMapper;
|
||||
private MiddleService middleService;
|
||||
|
||||
@GetMapping("/add/project")
|
||||
public void addProject() {
|
||||
//从中间库接口获取所有项目
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
middleService.syncProject();
|
||||
}
|
||||
|
||||
@GetMapping("/middleGcjkd/add")
|
||||
public void addMiddleGcjkd() {
|
||||
//从中间库接口获取所有监控点位
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
middleService.syncMiddleGcjkd();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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 枪机
|
||||
//3 JKDLX003 球机
|
||||
//4 JKDLX004 人脸识别
|
||||
|
||||
//设备类型,1 枪机,2球机,3热成像,4单兵,5全景,6无人机
|
||||
if (deviceType != null) {
|
||||
//设备状态,1在线,2离线
|
||||
switch (deviceType) {
|
||||
case 1:
|
||||
return "JKDLX002";
|
||||
case 2:
|
||||
return "JKDLX003";
|
||||
case 3:
|
||||
return "JKDLX003";
|
||||
case 4:
|
||||
return "JKDLX003";
|
||||
case 5:
|
||||
return "JKDLX003";
|
||||
case 6:
|
||||
return "JKDLX003";
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取中间库的监控点的视频在线状态
|
||||
*
|
||||
* @param status
|
||||
* @return
|
||||
*/
|
||||
public Integer getStatus(Integer status) {
|
||||
if (status != null) {
|
||||
//设备状态,1在线,2离线
|
||||
switch (status) {
|
||||
case 1:
|
||||
return 0;
|
||||
case 2:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工程类别
|
||||
*
|
||||
* @param projectType
|
||||
* @return
|
||||
*/
|
||||
public String getGclb(Integer projectType) {
|
||||
//1 FWJSGC 房屋建设工程
|
||||
//2 SZ 市政
|
||||
//3 ZX 装修
|
||||
//其他委办局工地
|
||||
//4 HB_SWGD 水务
|
||||
//5 HB_YLGD 园林
|
||||
//6 HB_JTGD 交通
|
||||
//7 HB_FJ 房建
|
||||
//8 HB_HNTGD 混凝土搅拌站
|
||||
//9 HB_JZLJXNC 建筑垃圾消纳场
|
||||
//10 HB_QT 其他
|
||||
|
||||
//工程类别,1房建,2市政,3安装,4装饰,5公路,6冶炼,7矿山,8化工石油,9水利水电,10电力,11农林,12港口与航道,13航天航空,14通信,15其他
|
||||
String s = null;
|
||||
switch (projectType) {
|
||||
case 1:
|
||||
s = "FWJSGC";
|
||||
break;
|
||||
case 2:
|
||||
s = "SZ";
|
||||
break;
|
||||
case 3:
|
||||
s = "ZX";
|
||||
break;
|
||||
case 4:
|
||||
s = "ZX";
|
||||
break;
|
||||
case 5:
|
||||
s = "HB_JTGD";
|
||||
break;
|
||||
case 6:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 7:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 8:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 9:
|
||||
s = "HB_SWGD";
|
||||
break;
|
||||
case 10:
|
||||
s = "HB_YLGD";
|
||||
break;
|
||||
case 11:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 12:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 13:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 14:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 15:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,335 @@
|
||||
package com.zhgd.xmgl.modules.yunlianwanwu.middle.service;
|
||||
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.gexin.fastjson.JSON;
|
||||
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.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.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MiddleService {
|
||||
private String ipPort = "http://localhost:22333";
|
||||
@Autowired
|
||||
private ProjectMapper projectMapper;
|
||||
|
||||
@Autowired
|
||||
private VideoItemMapper videoItemMapper;
|
||||
|
||||
/**
|
||||
* 同步项目结构化数据到北京市政局
|
||||
*/
|
||||
public void syncProject() {
|
||||
//从中间库接口获取所有项目
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.error("获取远程结构化数据失败(syncProject)");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步视频点位结构化数据到北京市政局
|
||||
*/
|
||||
public void syncMiddleGcjkd() {
|
||||
//从中间库接口获取所有监控点位
|
||||
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) {
|
||||
//比较出新增和修改的监控点位,调用接口更新中间库
|
||||
Long itemId = bo.getItemId();
|
||||
if (idAndMiddleGcjkdMap.get(itemId) == null) {
|
||||
//新增
|
||||
httpAddMiddleGcjkd(bo);
|
||||
} else {
|
||||
//修改
|
||||
httpUpdateMiddleGcjkd(bo);
|
||||
}
|
||||
//修改完删除
|
||||
idAndMiddleGcjkdMap.remove(itemId);
|
||||
}
|
||||
}
|
||||
//设置中间库中多余的摄像头为deleted状态
|
||||
if (idAndMiddleGcjkdMap.size() != 0) {
|
||||
for (Map.Entry<Long, MiddleGcjkd> entry : idAndMiddleGcjkdMap.entrySet()) {
|
||||
MiddleGcjkd value = entry.getValue();
|
||||
value.setDeleted(1);
|
||||
doHttpUpdateMiddleGcjkd(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.error("获取远程结构化数据失败(syncMiddleGcjkd)");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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);
|
||||
doHttpUpdateMiddleGcjkd(middleGcjkd);
|
||||
}
|
||||
|
||||
private void doHttpUpdateMiddleGcjkd(MiddleGcjkd middleGcjkd) {
|
||||
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 latitude = bo.getLatitude();
|
||||
String longitude = bo.getLongitude();
|
||||
middleGcjkd.setXzb(latitude);
|
||||
middleGcjkd.setYzb(longitude);
|
||||
middleGcjkd.setYszb(longitude + "," + latitude);
|
||||
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.getAreaCode());
|
||||
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 枪机
|
||||
//3 JKDLX003 球机
|
||||
//4 JKDLX004 人脸识别
|
||||
|
||||
//设备类型,1 枪机,2球机,3热成像,4单兵,5全景,6无人机
|
||||
if (deviceType != null) {
|
||||
//设备状态,1在线,2离线
|
||||
switch (deviceType) {
|
||||
case 1:
|
||||
return "JKDLX002";
|
||||
case 2:
|
||||
return "JKDLX003";
|
||||
case 3:
|
||||
return "JKDLX003";
|
||||
case 4:
|
||||
return "JKDLX003";
|
||||
case 5:
|
||||
return "JKDLX003";
|
||||
case 6:
|
||||
return "JKDLX003";
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取中间库的监控点的视频在线状态
|
||||
*
|
||||
* @param status
|
||||
* @return
|
||||
*/
|
||||
public Integer getStatus(Integer status) {
|
||||
if (status != null) {
|
||||
//设备状态,1在线,2离线
|
||||
switch (status) {
|
||||
case 1:
|
||||
return 0;
|
||||
case 2:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工程类别
|
||||
*
|
||||
* @param projectType
|
||||
* @return
|
||||
*/
|
||||
public String getGclb(Integer projectType) {
|
||||
//1 FWJSGC 房屋建设工程
|
||||
//2 SZ 市政
|
||||
//3 ZX 装修
|
||||
//其他委办局工地
|
||||
//4 HB_SWGD 水务
|
||||
//5 HB_YLGD 园林
|
||||
//6 HB_JTGD 交通
|
||||
//7 HB_FJ 房建
|
||||
//8 HB_HNTGD 混凝土搅拌站
|
||||
//9 HB_JZLJXNC 建筑垃圾消纳场
|
||||
//10 HB_QT 其他
|
||||
|
||||
//工程类别,1房建,2市政,3安装,4装饰,5公路,6冶炼,7矿山,8化工石油,9水利水电,10电力,11农林,12港口与航道,13航天航空,14通信,15其他
|
||||
String s = null;
|
||||
switch (projectType) {
|
||||
case 1:
|
||||
s = "FWJSGC";
|
||||
break;
|
||||
case 2:
|
||||
s = "SZ";
|
||||
break;
|
||||
case 3:
|
||||
s = "ZX";
|
||||
break;
|
||||
case 4:
|
||||
s = "ZX";
|
||||
break;
|
||||
case 5:
|
||||
s = "HB_JTGD";
|
||||
break;
|
||||
case 6:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 7:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 8:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 9:
|
||||
s = "HB_SWGD";
|
||||
break;
|
||||
case 10:
|
||||
s = "HB_YLGD";
|
||||
break;
|
||||
case 11:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 12:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 13:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 14:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
case 15:
|
||||
s = "HB_QT";
|
||||
break;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package com.zhgd.xmgl.modules.yunlianwanwu.middle.task;
|
||||
|
||||
import com.zhgd.xmgl.modules.yunlianwanwu.middle.service.MiddleService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.javacrumbs.shedlock.core.SchedulerLock;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 云联万物同步结构化数据任务
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class MiddleTask {
|
||||
@Value("${spring.profiles.active}")
|
||||
private String activeProfile;
|
||||
|
||||
@Autowired
|
||||
private MiddleService middleService;
|
||||
|
||||
/**
|
||||
* 云联万物同步结构化数据任务,每天同步一次
|
||||
*/
|
||||
@SchedulerLock(name = "aysnMiddle", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5)
|
||||
@Scheduled(cron = "0 0 2 * * ?")
|
||||
public void aysnMiddle() {
|
||||
//判断是云联万物
|
||||
if (activeProfile.equals("ylww")) {
|
||||
middleService.syncProject();
|
||||
middleService.syncMiddleGcjkd();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user