From 9731eecabe3fc87cee6859915cd8daa36ccca6ef Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 13 八月 2024 14:41:25 +0800
Subject: [PATCH] 一机一档用一机一档合格率替代
---
ycl-pojo/src/main/java/com/ycl/platform/base/AbsEntity.java | 19 +++-
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java | 6 -
ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/OneMachineFileParam.java | 4
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 7 +
ycl-server/src/main/java/com/ycl/task/MonitorTask.java | 85 +++++++++++++--------
ycl-server/src/main/java/com/ycl/task/UYTask.java | 66 ++++++++-------
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 10 ++
7 files changed, 121 insertions(+), 76 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsEntity.java b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsEntity.java
index 8d085d2..cdefd49 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsEntity.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsEntity.java
@@ -20,16 +20,23 @@
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
- /** 鍒涘缓鏃堕棿 */
- @TableField(value = "create_time", fill = FieldFill.INSERT)
+ //TODO:鍒犻櫎fill浠g爜灞傚鐞�
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ @TableField(value = "create_time")
private Date createTime;
- /** 淇敼鏃堕棿 */
- @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
+ /**
+ * 淇敼鏃堕棿
+ */
+ @TableField(value = "update_time")
private Date updateTime;
- /** 閫昏緫鍒犻櫎 */
- @TableField(value = "deleted", fill = FieldFill.INSERT)
+ /**
+ * 閫昏緫鍒犻櫎
+ */
+ @TableField(value = "deleted")
private Integer deleted;
}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
index f2eb03d..b3ec46a 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
@@ -1,8 +1,6 @@
package com.ycl.platform.domain.entity;
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.platform.base.AbsEntity;
import io.swagger.annotations.ApiModel;
@@ -42,7 +40,7 @@
private Date endTime;
@ApiModelProperty("杩愮淮鍗曚綅")
- @TableField(value = "unit_id", updateStrategy = FieldStrategy.IGNORED)
+ @TableField(value = "unit_id")
private Long unitId;
@ApiModelProperty("杩愮淮鐘舵��")
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/OneMachineFileParam.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/OneMachineFileParam.java
index efdfe1b..0b3a9d5 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/OneMachineFileParam.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/OneMachineFileParam.java
@@ -17,9 +17,9 @@
/**
* 鍒嗛〉
*/
- private String offset;
+ private Integer offset;
- private String limit;
+ private Integer limit;
/**
* 鎽勫儚鏈哄浗鏍囩紪鐮�
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
index ee883de..12ae867 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -36,6 +36,13 @@
public List<TMonitorVO> selectTMonitorList(TMonitorVO tMonitor);
/**
+ * 鏌ヨ璁惧璧勪骇鍒楄〃
+ *
+ * @param tMonitor 璁惧璧勪骇
+ * @return 璁惧璧勪骇闆嗗悎
+ */
+ public List<TMonitorVO> selectMonitorVOList();
+ /**
* 鏂板璁惧璧勪骇
*
* @param tMonitor 璁惧璧勪骇
diff --git a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
index 017bcbc..76725ba 100644
--- a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -6,13 +6,16 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ycl.platform.domain.entity.TMonitor;
import com.ycl.platform.domain.entity.YwPoint;
+import com.ycl.platform.domain.result.UY.MonitorQualifyResult;
import com.ycl.platform.domain.result.UY.OneMachineFileResult;
import com.ycl.platform.domain.vo.TMonitorVO;
+import com.ycl.platform.mapper.TMonitorMapper;
import com.ycl.platform.service.ITMonitorService;
import com.ycl.platform.service.YwPointService;
import com.ycl.system.entity.SysDictData;
import com.ycl.system.service.ISysDictDataService;
import com.ycl.utils.DateUtils;
+import com.ycl.utils.StringUtils;
import constant.RedisConstant;
import enumeration.general.AreaDeptEnum;
import enumeration.general.PointStatus;
@@ -23,6 +26,7 @@
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
@@ -40,6 +44,8 @@
@Autowired
private ITMonitorService monitorService;
@Autowired
+ private TMonitorMapper monitorMapper;
+ @Autowired
private ISysDictDataService dictDataService;
@Autowired
private YwPointService ywPointService;
@@ -47,11 +53,12 @@
private RedisTemplate redisTemplate;
//鍚屾mongodb涓�鏈轰竴妗e埌鏁版嵁搴�
+ @Transactional
public void synchronize() {
Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
- List<OneMachineFileResult> oneMachineFileResults = mongoTemplate.find(query, OneMachineFileResult.class);
+ List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class);
//鏁版嵁搴搈onitor琛ㄦ暟鎹�
- Map<String, TMonitorVO> monitorVOMap = monitorService.selectTMonitorList(null).stream().collect(Collectors.toMap(TMonitorVO::getSerialNumber, Function.identity()));
+ Map<String, TMonitorVO> monitorVOMap = monitorMapper.selectMonitorVOList().stream().collect(Collectors.toMap(TMonitorVO::getSerialNumber, Function.identity()));
//鍑嗗鎻掑叆璁惧琛ㄧ殑鏁版嵁
List<TMonitor> monitorList = new ArrayList<>();
//鍑嗗鎻掑叆鐐逛綅琛ㄧ殑鏁版嵁
@@ -67,75 +74,87 @@
List<String> importantSite = DictDataList.stream().map(SysDictData::getDictValue).collect(Collectors.toList());
//TODO:鍏ㄥ勾鐣欏瓨杩樻槸鍗曟鐣欏瓨
- for (OneMachineFileResult result : oneMachineFileResults) {
- TMonitor monitor = getMonitor(result,monitorVOMap);
+ for (MonitorQualifyResult result : oneMachineFileResults) {
+ TMonitor monitor = getMonitor(result, monitorVOMap);
YwPoint point = getPoint(result, pointMap, importantSite);
monitorList.add(monitor);
ywPointList.add(point);
//姣斿绛涢�夊嚭鏂扮殑鏁版嵁
- if (!CollectionUtils.isEmpty(monitorVOMap) && !monitorVOMap.containsKey(result.getSBBM())) {
+ if (!CollectionUtils.isEmpty(monitorVOMap) && !monitorVOMap.containsKey(result.getSerialNumber().getValue())) {
newMonitorList.add(monitor);
}
}
+ log.info("result闆嗗悎{},璁惧闆嗗悎{},鐐逛綅闆嗗悎{}", oneMachineFileResults.size(), monitorList.size(), ywPointList.size());
//鎻掑叆鏁版嵁搴�
if (!CollectionUtils.isEmpty(monitorList)) {
monitorService.saveOrUpdateBatch(monitorList);
}
- if(!CollectionUtils.isEmpty(ywPointList)){
+ if (!CollectionUtils.isEmpty(ywPointList)) {
ywPointService.saveOrUpdateBatch(ywPointList);
}
//鏂扮殑鏁版嵁鏀惧叆Redis涓瓑寰呰�冩牳鎸囨爣浠诲姟浣跨敤
redisTemplate.opsForValue().set(RedisConstant.New_Monitor_Set, JSONArray.toJSONString(newMonitorList));
}
- private YwPoint getPoint(OneMachineFileResult result, Map<String, YwPoint> pointMap, List<String> importantSite) {
+ private YwPoint getPoint(MonitorQualifyResult result, Map<String, YwPoint> pointMap, List<String> importantSite) {
YwPoint ywPoint = new YwPoint();
- if (pointMap.containsKey(result.getSBBM())) {
- ywPoint = pointMap.get(result.getSBBM());
- }else {
- ywPoint.setPointName(result.getSBMC());
+ if (pointMap.containsKey(result.getSerialNumber().getValue())) {
+ ywPoint = pointMap.get(result.getSerialNumber().getValue());
+ } else {
+ ywPoint.setPointName(result.getName().getValue());
ywPoint.setStatus(PointStatus.WAIT.getDesc());
- ywPoint.setSerialNumber(result.getSBBM());
+ ywPoint.setSerialNumber(result.getSerialNumber().getValue());
ywPoint.setImportantTag(Boolean.FALSE);
ywPoint.setProvinceTag(Boolean.FALSE);
ywPoint.setCreateTime(new Date());
ywPoint.setUpdateTime(new Date());
}
//姣斿鏄惁鏄噸鐐圭偣浣�
- if (importantSite.contains(result.getSBBM())) {
+ if (importantSite.contains(result.getSerialNumber().getValue())) {
ywPoint.setImportantTag(Boolean.TRUE);
}
//瑙f瀽deptId
//鍖哄煙琛屾斂缂栫爜
- String areaCode = result.getSBBM().substring(0, 6);
- AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromCode(areaCode);
- //濡傛灉瑙f瀽涓嶅嚭鍖哄煙deptId涓�-1
+ String serialNumber = result.getSerialNumber().getValue();
Integer deptId = -1;
- if(areaDeptEnum!=null){
- deptId = areaDeptEnum.getDeptId();
+ if (!StringUtils.isEmpty(serialNumber)) {
+ String areaCode = serialNumber.substring(0, 6);
+ AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromCode(areaCode);
+ //濡傛灉瑙f瀽涓嶅嚭鍖哄煙deptId涓�-1
+ if (areaDeptEnum != null) {
+ deptId = areaDeptEnum.getDeptId();
+ }
}
ywPoint.setDeptId(Long.valueOf(deptId + ""));
-
return ywPoint;
}
- private TMonitor getMonitor(OneMachineFileResult result, Map<String, TMonitorVO> monitorVOMap) {
+ private TMonitor getMonitor(MonitorQualifyResult result, Map<String, TMonitorVO> monitorVOMap) {
TMonitor monitor = new TMonitor();
- if (monitorVOMap.containsKey(result.getSBBM())) {
- monitor.setId(monitorVOMap.get(result.getSBBM()).getId());
+ if (monitorVOMap.containsKey(result.getSerialNumber().getValue())) {
+ monitor.setId(monitorVOMap.get(result.getSerialNumber().getValue()).getId());
}
- monitor.setSerialNumber(result.getSBBM());
- monitor.setName(result.getSBMC());
- monitor.setSiteType(Long.valueOf(result.getJKDWLX()));
- monitor.setMacAddr(result.getMACDZ());
- monitor.setIp(result.getIP());
- monitor.setCameraFunType(result.getSXJGNLX());
- monitor.setLongitude(result.getJD() + "");
- monitor.setLatitude(result.getWD() + "");
- monitor.setCameraCaptureArea(result.getSXJCJQY());
- monitor.setOnState(Long.valueOf(result.getSBZT()));
+ monitor.setSerialNumber(result.getSerialNumber().getValue());
+ monitor.setName(result.getName().getValue());
+ String siteType = result.getJkdwlx().getValue();
+ if (!StringUtils.isEmpty(siteType)) {
+ monitor.setSiteType(Long.valueOf(siteType));
+ }
+ monitor.setMacAddr(result.getMacdz().getValue());
+ monitor.setIp(result.getIp().getValue());
+ monitor.setCameraFunType(result.getSxjgnlx().getValue());
+ monitor.setLongitude(result.getLongitude().getValue());
+ monitor.setLatitude(result.getLatitude().getValue() + "");
+ monitor.setCameraCaptureArea(result.getSxjcjqy().getValue());
+ String onState = result.getSbzt().getValue();
+ if (!StringUtils.isEmpty(onState)) {
+ monitor.setOnState(Long.valueOf(onState));
+ }
//鍥芥爣鐮佸墠鍏綅涓鸿鏀跨紪鐮�
- monitor.setCivilCode(result.getSBBM().substring(0, 8));
+ String serialNumber = result.getSerialNumber().getValue();
+ if (!StringUtils.isEmpty(serialNumber)) {
+ monitor.setCivilCode(serialNumber.substring(0, 8));
+ }
return monitor;
}
}
diff --git a/ycl-server/src/main/java/com/ycl/task/UYTask.java b/ycl-server/src/main/java/com/ycl/task/UYTask.java
index e51c2a6..587d9bc 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -91,39 +91,43 @@
log.info("缁撴潫鎵ц鍥惧儚鐩戞祴鏁版嵁鍚屾");
}
- //涓�鏈轰竴妗�
- public void monitorTask() {
- // 涓�鏈轰竴妗f敞鍐岀巼
- // 妗f鑰冩牳姣�
- log.info("寮�濮嬫墽琛屼竴鏈轰竴妗f暟鎹悓姝�");
- OneMachineFileParam param = new OneMachineFileParam();
- JSONObject jsonObject = uyClient.oneMachineFile(param);
- if (jsonObject != null) {
- JSONObject cameraList = jsonObject.getJSONObject("CameraList");
- if (cameraList != null) {
- List<OneMachineFileResult> data = cameraList.getList("data", OneMachineFileResult.class);
- if (!CollectionUtils.isEmpty(data)) {
- //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
- Query query = new Query(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
- DeleteResult result = mongoTemplate.remove(query, OneMachineFileResult.class);
- //瀛樻斁鍦╩ongo涓�
- mongoTemplate.insertAll(data);
- } else {
- log.error("涓�鏈轰竴妗f暟鎹负绌簕}", cameraList);
- }
- } else {
- log.error("涓�鏈轰竴妗f暟鎹负绌簕}", jsonObject);
- }
- } else {
- log.error("涓�鏈轰竴妗f暟鎹负绌�");
- }
- log.info("缁撴潫鎵ц涓�鏈轰竴妗f暟鎹悓姝�");
- }
+// //涓�鏈轰竴妗�
+// public void monitorTask() {
+// // 涓�鏈轰竴妗f敞鍐岀巼
+// // 妗f鑰冩牳姣�
+// log.info("寮�濮嬫墽琛屼竴鏈轰竴妗f暟鎹悓姝�");
+// OneMachineFileParam param = new OneMachineFileParam();
+// param.setOffset(ApiConstants.PageNo);
+// param.setLimit(ApiConstants.PageSize);
+// JSONObject jsonObject = uyClient.oneMachineFile(param);
+// if (jsonObject != null) {
+// JSONObject cameraList = jsonObject.getJSONObject("CameraList");
+// if (cameraList != null) {
+// List<OneMachineFileResult> data = cameraList.getList("data", OneMachineFileResult.class);
+// if (!CollectionUtils.isEmpty(data)) {
+// //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+// Query query = new Query(Criteria
+// .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+// DeleteResult result = mongoTemplate.remove(query, OneMachineFileResult.class);
+// //瀛樻斁鍦╩ongo涓�
+// mongoTemplate.insertAll(data);
+// } else {
+// log.error("涓�鏈轰竴妗f暟鎹负绌簕}", cameraList);
+// }
+// } else {
+// log.error("涓�鏈轰竴妗f暟鎹负绌簕}", jsonObject);
+// }
+// } else {
+// log.error("涓�鏈轰竴妗f暟鎹负绌�");
+// }
+// log.info("缁撴潫鎵ц涓�鏈轰竴妗f暟鎹悓姝�");
+// }
- //涓�鏈轰竴妗e悎鏍肩巼
+ //涓�鏈轰竴妗�
public void monitorQualifyTask() {
//涓�鏈轰竴妗e悎鏍肩巼
+ // 涓�鏈轰竴妗f敞鍐岀巼
+ // 妗f鑰冩牳姣�
log.info("寮�濮嬫墽琛屼竴鏈轰竴妗e悎鏍肩巼鏁版嵁鍚屾");
MonitorQualifyParam param = new MonitorQualifyParam();
param.setPageNum(ApiConstants.PageNo);
@@ -213,7 +217,7 @@
if (!CollectionUtils.isEmpty(records)) {
//濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
Query query = new Query(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(instance.getTime())).lt(DateUtils.getDayEnd(instance.getTime())));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
DeleteResult result = mongoTemplate.remove(query, RecordMetaDSumResult.class);
//瀛樻斁鍦╩ongo涓�
mongoTemplate.insertAll(records);
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index 33e3d5f..0de6265 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -135,6 +135,16 @@
${params.dataScope}
</select>
+ <select id="selectMonitorVOList" resultType="com.ycl.platform.domain.vo.TMonitorVO">
+ select m.id, m.serial_number, name, site_type, mac_addr, ip, camera_fun_type, longitude, latitude,
+ camera_capture_area, on_state, civil_code, integrated_device, camera_brand, address, net_working,
+ public_security, installed_time, management_unit, mu_contact_info, storage_days
+ , monitor_azimuth, scene_photo_addr, model, site_vulgo, camera_type, camera_light_type, encoded_format,
+ camera_dept, hybm, lxbm,d.dept_id, d.dept_name from t_monitor m
+ left join t_yw_point p on m.serial_number = p.serial_number
+ left join sys_dept d on p.dept_id = d.dept_id
+ </select>
+
<select id="selectTMonitorById" parameterType="Long" resultType="com.ycl.platform.domain.vo.TMonitorVO">
<include refid="selectTMonitorVo"/>
where id = #{id}
--
Gitblit v1.8.0