From b5df1cee65f3e9dcf554efcd3f1642a8c79d1e76 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期一, 30 九月 2024 02:12:24 +0800 Subject: [PATCH] 点位监测更换对象+存入mongo+提取utils --- ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java | 14 + ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 2 ycl-server/src/main/java/com/ycl/task/MonitorTask.java | 22 +- ycl-server/src/main/java/com/ycl/task/UYTask.java | 104 +++++++++------- ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java | 84 ++++++++++++++ ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java | 105 ++++------------- ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 10 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/OnlineThreadVO.java | 4 8 files changed, 199 insertions(+), 146 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java index 329fa99..5f39dbe 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java @@ -1,6 +1,7 @@ package com.ycl.platform.domain.result.SYS; +import com.ycl.platform.domain.entity.WorkOrder; import com.ycl.platform.domain.result.BaseResult; import lombok.Data; import org.springframework.data.mongodb.core.mapping.Document; @@ -11,14 +12,19 @@ @Data @Document(collection = "t_monitor_online") public class TMonitorResult extends BaseResult { - /** - * 閮ㄩ棬id - */ + /*** 閮ㄩ棬id*/ private Integer deptId; - /** 鍦ㄧ嚎 */ + /*** 閮ㄩ棬id*/ + private String ip; + /** 鏈�杩戠洃娴嬪湪绾跨姸鎬� */ private Boolean online; + /** 褰撴棩鐩戞祴娆℃暟 */ + private Integer checkCount; + /** 褰撴棩绂荤嚎 */ + private Integer offLineCount; /** 璁惧绫诲瀷 */ private String monitorType; /** 璁惧鍚� */ private String name; + private WorkOrder workOrder; } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/OnlineThreadVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/OnlineThreadVO.java index c952333..3154ec3 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/OnlineThreadVO.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/OnlineThreadVO.java @@ -17,5 +17,9 @@ private String ip; private WorkOrder workOrder; + /** 褰撴棩鐩戞祴娆℃暟 */ + private Integer checkCount; + /** 褰撴棩绂荤嚎 */ + private Integer offLineCount; } 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 dae63c3..a8b4676 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 @@ -159,7 +159,7 @@ * * @return */ - List<TMonitor> getDistinctIP(); + List<TMonitorResult> getDistinctIP(); /** * 鏍规嵁ip淇敼鐐逛綅琛ㄧ殑鏄惁鍦ㄧ嚎瀛楁 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 eb38895..f09bb64 100644 --- a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java +++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java @@ -61,18 +61,18 @@ @Autowired private RedisTemplate redisTemplate; - //鍚屾鐐逛綅鍦ㄧ嚎鐜囧埌mongo + //鍚屾鐐逛綅鍦ㄧ嚎鐜囧埌mongo(寮冪敤) public void siteOnline() { - log.info("寮�濮嬪悓姝ョ偣浣嶅湪绾跨巼鍒癿ongo"); - List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(null); - if (!CollectionUtils.isEmpty(tMonitorResults)) { - //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 - Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); - DeleteResult result = mongoTemplate.remove(query, TMonitorResult.class); - //瀛樻斁鍦╩ongo涓� - mongoTemplate.insertAll(tMonitorResults); - log.info("缁撴潫鍚屾鐐逛綅鍦ㄧ嚎鐜囧埌mongo"); - } +// log.info("寮�濮嬪悓姝ョ偣浣嶅湪绾跨巼鍒癿ongo"); +// List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(null); +// if (!CollectionUtils.isEmpty(tMonitorResults)) { +// //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 +// Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); +// DeleteResult result = mongoTemplate.remove(query, TMonitorResult.class); +// //瀛樻斁鍦╩ongo涓� +// mongoTemplate.insertAll(tMonitorResults); +// log.info("缁撴潫鍚屾鐐逛綅鍦ㄧ嚎鐜囧埌mongo"); +// } } //鍚屾mongodb涓�鏈轰竴妗e埌鏁版嵁搴� 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 39d0d29..5504f50 100644 --- a/ycl-server/src/main/java/com/ycl/task/UYTask.java +++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java @@ -7,9 +7,11 @@ import com.ycl.platform.domain.entity.WorkOrder; import com.ycl.platform.domain.entity.YwPoint; import com.ycl.platform.domain.param.UY.*; +import com.ycl.platform.domain.result.SYS.TMonitorResult; import com.ycl.platform.domain.result.UY.RecordMetaDSumResult; import com.ycl.platform.domain.result.UY.*; import com.ycl.platform.domain.vo.OnlineThreadVO; +import com.ycl.platform.domain.vo.TMonitorVO; import com.ycl.platform.domain.vo.UpdateOnlineVO; import com.ycl.platform.mapper.TMonitorMapper; import com.ycl.platform.service.UYErrorTypeCheckService; @@ -18,6 +20,7 @@ import com.ycl.system.domain.SysConfig; import com.ycl.system.mapper.SysConfigMapper; import com.ycl.thread.OnlineCheckThread; +import com.ycl.utils.CheckPointUtil; import com.ycl.utils.DateUtils; import com.ycl.utils.http.HttpUtils; import com.ycl.utils.http.SelfHttpUtil; @@ -55,11 +58,9 @@ private final UYErrorTypeCheckService uyErrorTypeCheckService; private final YwPointService pointService; private final TMonitorMapper monitorMapper; - private final SelfHttpUtil selfHttpUtil; - private final RedisTemplate redisTemplate; private final WorkOrderService workOrderService; private final SysConfigMapper sysConfigMapper; - + private final CheckPointUtil checkPointUtil; @Value("${youYun.tenantId}") private String tenantId; @Value("${youYun.apikey}") @@ -190,15 +191,15 @@ log.error("璇烽厤缃绾挎鏁帮紝姝ゆ璁剧疆涓洪粯璁ゅ��2"); } // 鍏堟煡鍑鸿澶嘔P闆嗗悎 - List<TMonitor> monitorList = monitorMapper.getDistinctIP(); - List<Future<OnlineThreadVO>> futureList = new ArrayList<>(48); - List<OnlineThreadVO> dataList = new ArrayList<>(48); - for (TMonitor monitor : monitorList) { - OnlineCheckThread thread = new OnlineCheckThread(monitor, redisTemplate, selfHttpUtil, times); - Future<OnlineThreadVO> future = executorService.submit(thread); + List<TMonitorResult> monitorList = monitorMapper.getDistinctIP(); + List<Future<TMonitorResult>> futureList = new ArrayList<>(48); + List<TMonitorResult> dataList = new ArrayList<>(48); + for (TMonitorResult monitor : monitorList) { + OnlineCheckThread thread = new OnlineCheckThread(monitor,checkPointUtil,times); + Future<TMonitorResult> future = executorService.submit(thread); futureList.add(future); } - for (Future<OnlineThreadVO> future : futureList) { + for (Future<TMonitorResult> future : futureList) { dataList.add(future.get()); // get鏂规硶浼氶樆濉烇紝鐭ラ亾鎷垮埌缁撴灉鎵嶇户缁墽琛宖or } @@ -216,16 +217,25 @@ // 宸ュ崟 List<WorkOrder> workOrderList = dataList.stream() .filter(item -> Objects.nonNull(item.getWorkOrder())) - .map(OnlineThreadVO::getWorkOrder) + .map(TMonitorResult::getWorkOrder) .collect(Collectors.toList()); if (CollectionUtils.isEmpty(workOrderList)) { return; } workOrderService.innerAddWorkOrder(workOrderList); + //瀛樻斁鍒癿ongo + if (!CollectionUtils.isEmpty(dataList)) { + //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 + Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); + DeleteResult result = mongoTemplate.remove(query, TMonitorResult.class); + //瀛樻斁鍦╩ongo涓� + mongoTemplate.insertAll(dataList); + log.info("缁撴潫鍚屾鐐逛綅鍦ㄧ嚎鐜囧埌mongo"); + } log.info("鐐逛綅鍦ㄧ嚎鐩戞祴瀹屾垚"); } - //鐐逛綅鍦ㄧ嚎鐜� + //锛堝純鐢級鐐逛綅鍦ㄧ嚎鐜� public void videoOnlineTask() { //瑙嗛鍥惧儚璐ㄩ噺 log.info("寮�濮嬫墽琛岀偣浣嶅湪绾挎暟鎹悓姝�"); @@ -273,41 +283,41 @@ public void recordMetaDSumTask() { //褰曞儚鍙敤鐜� log.info("寮�濮嬫墽琛屽綍鍍忓彲鐢ㄦ暟鎹悓姝�"); -// RecordMetaDSumParam param = new RecordMetaDSumParam(); -// param.setTenantId(tenantId); -// Calendar instance = Calendar.getInstance(); -// instance.setTime(new Date()); -// instance.add(Calendar.DAY_OF_MONTH, -1); -// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); -// String yesterday = format.format(instance.getTime()); -// param.setStatTime(yesterday); -// JSONObject jsonObject = uyClient.recordMetaDSumList(param); -// if (jsonObject != null) { -// if (ApiConstants.UYSuccessCodeStr.equals(jsonObject.getString("code"))) { -// List<RecordMetaDSumResult> records = jsonObject.getList("data", RecordMetaDSumResult.class); -// if (!CollectionUtils.isEmpty(records)) { -// //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 -// Query query = new Query(Criteria -// .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); -// DeleteResult result = mongoTemplate.remove(query, RecordMetaDSumResult.class); -// records.stream().forEach(item -> { -// if (Objects.nonNull(item.getDeviceId())) { -// item.setNo(item.getDeviceId()); -// } -// }); -// pointService.setDeviceTagByGB(records); -// //瀛樻斁鍦╩ongo涓� -// mongoTemplate.insertAll(records); -// // 宸ュ崟鐢熸垚 -// uyErrorTypeCheckService.recordMetaDSumCheck(records); -// } -// } else { -// log.error("褰曞儚鍙敤鏁版嵁涓虹┖{}", jsonObject); -// } -// } -// 鏈湴娴嬭瘯 - Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date()))); - uyErrorTypeCheckService.recordMetaDSumCheck(mongoTemplate.find(query, RecordMetaDSumResult.class)); + RecordMetaDSumParam param = new RecordMetaDSumParam(); + param.setTenantId(tenantId); + Calendar instance = Calendar.getInstance(); + instance.setTime(new Date()); + instance.add(Calendar.DAY_OF_MONTH, -1); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + String yesterday = format.format(instance.getTime()); + param.setStatTime(yesterday); + JSONObject jsonObject = uyClient.recordMetaDSumList(param); + if (jsonObject != null) { + if (ApiConstants.UYSuccessCodeStr.equals(jsonObject.getString("code"))) { + List<RecordMetaDSumResult> records = jsonObject.getList("data", RecordMetaDSumResult.class); + if (!CollectionUtils.isEmpty(records)) { + //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 + Query query = new Query(Criteria + .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); + DeleteResult result = mongoTemplate.remove(query, RecordMetaDSumResult.class); + records.stream().forEach(item -> { + if (Objects.nonNull(item.getDeviceId())) { + item.setNo(item.getDeviceId()); + } + }); + pointService.setDeviceTagByGB(records); + //瀛樻斁鍦╩ongo涓� + mongoTemplate.insertAll(records); + // 宸ュ崟鐢熸垚 + uyErrorTypeCheckService.recordMetaDSumCheck(records); + } + } else { + log.error("褰曞儚鍙敤鏁版嵁涓虹┖{}", jsonObject); + } + } + // 鏈湴娴嬭瘯 +// Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date()))); +// uyErrorTypeCheckService.recordMetaDSumCheck(mongoTemplate.find(query, RecordMetaDSumResult.class)); log.info("缁撴潫鎵ц褰曞儚鍙敤鏁版嵁鍚屾"); } diff --git a/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java b/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java index a3c762d..5228eae 100644 --- a/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java +++ b/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java @@ -1,9 +1,9 @@ package com.ycl.thread; -import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.entity.WorkOrder; +import com.ycl.platform.domain.result.SYS.TMonitorResult; import com.ycl.platform.domain.vo.OnlineThreadVO; -import com.ycl.platform.domain.vo.UpdateOnlineVO; +import com.ycl.utils.CheckPointUtil; import com.ycl.utils.http.SelfHttpUtil; import constant.RedisConstant; import enumeration.ErrorType; @@ -12,13 +12,11 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; import java.io.IOException; import java.net.InetAddress; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.concurrent.Callable; /** @@ -26,20 +24,14 @@ * @date锛�2024/9/10 11:43 */ @Slf4j -public class OnlineCheckThread implements Callable<OnlineThreadVO> { +public class OnlineCheckThread implements Callable<TMonitorResult> { - private TMonitor monitor; - - private RedisTemplate redisTemplate; - - private SelfHttpUtil selfHttpUtil; - + private TMonitorResult monitor; + private CheckPointUtil checkPointUtil; private Integer times; - - public OnlineCheckThread(TMonitor monitor, RedisTemplate redisTemplate, SelfHttpUtil selfHttpUtil, Integer times) { + public OnlineCheckThread(TMonitorResult monitor, CheckPointUtil checkPointUtil,Integer times) { this.monitor = monitor; - this.redisTemplate = redisTemplate; - this.selfHttpUtil = selfHttpUtil; + this.checkPointUtil = checkPointUtil; this.times = times; } @@ -51,79 +43,36 @@ this.times = times; } - public SelfHttpUtil getSelfHttpUtil() { - return selfHttpUtil; - } - - public void setSelfHttpUtil(SelfHttpUtil selfHttpUtil) { - this.selfHttpUtil = selfHttpUtil; - } - - public TMonitor getMonitor() { + public TMonitorResult getMonitor() { return monitor; } - public void setMonitor(TMonitor monitor) { + public void setMonitor(TMonitorResult monitor) { this.monitor = monitor; } - public RedisTemplate getRedisTemplate() { - return redisTemplate; + public CheckPointUtil getCheckPointUtil() { + return checkPointUtil; } - public void setRedisTemplate(RedisTemplate redisTemplate) { - this.redisTemplate = redisTemplate; + public void setCheckPointUtil(CheckPointUtil checkPointUtil) { + this.checkPointUtil = checkPointUtil; } @Override - public OnlineThreadVO call() throws Exception { - // 鍏堟娴嬭兘鍚﹁闂ip鐨勭綉椤� - ResponseEntity<Object> res = null; - OnlineThreadVO vo = new OnlineThreadVO(); - vo.setIp(monitor.getIp()); - log.info("鐩戞祴IP锛�" + monitor.getIp()); - String prefix = "http://"; - if ("127.0.0.1".equals(monitor.getIp())) { - vo.setOnline(Boolean.FALSE); - return vo; + public TMonitorResult call() throws Exception { + TMonitorResult result = checkPointUtil.check(monitor); + // 涓�澶╁唴鐩戞祴鍒扮绾�1娆′互涓婏紝鐢熸垚宸ュ崟 + if (result.getOffLineCount() >= times) { + WorkOrder workOrder = new WorkOrder(); + workOrder.setSerialNumber(result.getNo()); + List<String> errList = new ArrayList<>(); + errList.add(ErrorType.DEVICE_OFFLINE.getValue()); + workOrder.setErrorTypeList(errList); + workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); + result.setWorkOrder(workOrder); } - try { - res = selfHttpUtil.get(prefix + monitor.getIp(), null, null); - vo.setOnline(Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode()); - } catch (Exception e) { - vo.setOnline(Boolean.FALSE); - } - - // 濡傛灉http寰楀埌鐨勪笉鍦ㄧ嚎锛岄偅涔堝啀ping涓�涓� - boolean reachable = false; - if (!vo.getOnline()) { - try { - reachable = InetAddress.getByName(monitor.getIp()).isReachable(3000); - } catch (IOException e) { - e.printStackTrace(); - } - vo.setOnline(reachable); - } - if (!vo.getOnline()) { - Integer outLineTimes = (Integer) redisTemplate.opsForHash().get(RedisConstant.ONLINE_KEY, monitor.getIp()); - if (Objects.isNull(outLineTimes)) { - outLineTimes = 1; - } else { - outLineTimes += 1; - } - redisTemplate.opsForHash().put(RedisConstant.ONLINE_KEY, monitor.getIp(), outLineTimes); - // 涓�澶╁唴鐩戞祴鍒扮绾�1娆′互涓婏紝鐢熸垚宸ュ崟 - if (outLineTimes >= times) { - WorkOrder workOrder = new WorkOrder(); - workOrder.setSerialNumber(monitor.getSerialNumber()); - List<String> errList = new ArrayList<>(); - errList.add(ErrorType.DEVICE_OFFLINE.getValue()); - workOrder.setErrorTypeList(errList); - workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); - vo.setWorkOrder(workOrder); - } - } - return vo; + return result; } } diff --git a/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java b/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java new file mode 100644 index 0000000..e74f2c9 --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java @@ -0,0 +1,84 @@ +package com.ycl.utils; + +import com.ycl.platform.domain.result.SYS.TMonitorResult; +import com.ycl.utils.http.SelfHttpUtil; +import constant.RedisConstant; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.http.*; +import org.springframework.lang.Nullable; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; + +import java.io.IOException; +import java.net.InetAddress; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * @author xp + * @date 2022/11/16 + */ +@Component +@RequiredArgsConstructor +@Slf4j +public class CheckPointUtil { + + private final RedisTemplate redisTemplate; + + private final SelfHttpUtil selfHttpUtil; + + /** + * 鐩戞祴鐐逛綅鍦ㄧ嚎宸ュ叿绫� + * @return + */ + public TMonitorResult check(TMonitorResult monitor) { + // 鍏堟娴嬭兘鍚﹁闂ip鐨勭綉椤� + ResponseEntity<Object> res = null; + log.info("鐩戞祴IP锛�" + monitor.getIp()); + String prefix = "http://"; + if ("127.0.0.1".equals(monitor.getIp())) { + monitor.setOnline(Boolean.FALSE); + return monitor; + } + try { + res = selfHttpUtil.get(prefix + monitor.getIp(), null, null); + monitor.setOnline(Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode()); + } catch (Exception e) { + monitor.setOnline(Boolean.FALSE); + } + + // 濡傛灉http寰楀埌鐨勪笉鍦ㄧ嚎锛岄偅涔堝啀ping涓�涓� + boolean reachable = false; + Integer checkTimes = 1; + Integer offLineTimes = 0; + Map<String, Object> map = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstant.ONLINE_KEY, monitor.getIp()); + if (!CollectionUtils.isEmpty(map)) { + checkTimes = (Integer) map.get("checkTimes") + 1; + offLineTimes = (Integer) map.get("offLineTimes"); + } else { + map = new HashMap<>(); + } + if (!monitor.getOnline()) { + try { + reachable = InetAddress.getByName(monitor.getIp()).isReachable(3000); + } catch (IOException e) { + e.printStackTrace(); + } + monitor.setOnline(reachable); + } + if (!monitor.getOnline()) { + offLineTimes++; + } + map.put("checkTimes", checkTimes); + map.put("offLineTimes", offLineTimes); + redisTemplate.opsForHash().put(RedisConstant.ONLINE_KEY, monitor.getIp(), map); + monitor.setCheckCount(checkTimes); + monitor.setOffLineCount(offLineTimes); + return monitor; + } +} diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml index 93f3d4a..1c325c0 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml @@ -637,11 +637,11 @@ serial_number in <foreach collection="gbList" open="(" separator="," close=")" item="no">#{no}</foreach> </select> - <select id="getDistinctIP" resultType="com.ycl.platform.domain.entity.TMonitor"> - SELECT - DISTINCT ip, serial_number - FROM - t_monitor + <select id="getDistinctIP" resultType="com.ycl.platform.domain.result.SYS.TMonitorResult"> + select DISTINCT m.id, m.ip,m.serial_number as no,m.name,m.camera_fun_type as monitorType,d.dept_id,p.province_tag,p.important_tag,p.important_command_image_tag,p.dept_tag,p.online + 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> <update id="updateOnline"> -- Gitblit v1.8.0