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