ycl-common/src/main/java/constant/PointHeaderConstant.java
@@ -19,9 +19,12 @@ public final static String Province_Tag_Face = "是否省厅人脸标签(可修改)"; public final static String Impotrant_Command_Image = "是否重点指挥图像(可修改)"; public final static String Dept_Tag = "是否部级标签(可修改)"; public final static String Username = "用户名(可修改)"; public final static String Password = "密码(可修改)"; // 可以将这些已知的键放入一个集合中,方便检查 public static final Set<String> KNOWN_KEYS = new HashSet<>(Arrays.asList( ID,Point_Name, IP, Serial_Number,Area, Unit,Province_Tag_Video,Province_Tag_Car,Province_Tag_Face, Impotrant_Command_Image, Dept_Tag ,Username,Password )); } ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java
@@ -148,4 +148,6 @@ /** 设备厂商: 0海康 1大华 2宇视*/ private Integer deviceType; private String username; private String password; } ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
@@ -104,4 +104,9 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date recoveryTime; //设备登录的用户名密码 @TableField("username") private String username; @TableField("password") private String password; } ycl-pojo/src/main/java/com/ycl/platform/domain/excel/PointExport.java
@@ -84,6 +84,12 @@ @ExcelProperty("是否重点点位") private String importantTagString; @ColumnWidth(20) @ExcelProperty("用户名(可修改)") private String username; @ColumnWidth(20) @ExcelProperty("密码(可修改)") private String password; @ExcelIgnore private Boolean importantCommandImageTag; ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java
@@ -83,6 +83,9 @@ @TableField("end_time") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date endTime; private String username; private String password; public static YwPoint getEntityByForm(@NonNull YwPointForm form, YwPoint entity) { if(entity == null) { entity = new YwPoint(); ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java
@@ -1,5 +1,6 @@ package com.ycl.platform.domain.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.platform.base.AbsVo; import com.ycl.platform.domain.entity.YwPoint; @@ -68,6 +69,10 @@ */ private List<DynamicColumnVO> dynamicColumnList; /** 设备登录的用户名密码 */ private String username; private String password; public static YwPointVO getVoByEntity(@NonNull YwPoint entity, YwPointVO vo) { if(vo == null) { vo = new YwPointVO(); ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -265,7 +265,7 @@ if (!CollectionUtils.isEmpty(dynamics)) { dynamicMap = dynamics.stream().filter(vo -> vo.getRefId() != null).collect(Collectors.groupingBy(DynamicColumnVO::getRefId)); } //定义表头列表 //定义固定表头列表 LinkedHashSet<String> headers = new LinkedHashSet<>(); headers.add(PointHeaderConstant.ID); headers.add(PointHeaderConstant.Point_Name); @@ -278,6 +278,8 @@ headers.add(PointHeaderConstant.Province_Tag_Face); headers.add(PointHeaderConstant.Impotrant_Command_Image); headers.add(PointHeaderConstant.Dept_Tag); headers.add(PointHeaderConstant.Username); headers.add(PointHeaderConstant.Password); List<String> headersList = new LinkedList<>(); if (!CollectionUtils.isEmpty(dynamicsHeaders)) { //使用链表保证后续补充数据时获取数据顺序一致 @@ -300,6 +302,8 @@ list.add(export.getProvinceTagFaceString()); list.add(export.getImportantCommandImageTagString()); list.add(export.getDeptTagString()); list.add(export.getUsername()); list.add(export.getPassword()); for (String header : headersList) { //创建一个变量记录找没找到这个header boolean flag = false; @@ -357,6 +361,8 @@ pointExport.setProvinceTagFace("是".equals(map.get(PointHeaderConstant.Province_Tag_Face))); pointExport.setImportantCommandImageTag("是".equals(map.get(PointHeaderConstant.Impotrant_Command_Image))); pointExport.setDeptTag("是".equals(map.get(PointHeaderConstant.Dept_Tag))); pointExport.setUsername(map.get(PointHeaderConstant.Username)); pointExport.setPassword(map.get(PointHeaderConstant.Password)); List<DynamicColumnVO> dynamics = new ArrayList<>(); // 处理动态列 for (Map.Entry<String, String> entry : map.entrySet()) { @@ -403,6 +409,8 @@ point.setProvinceTagCar(item.getProvinceTagCar()); point.setProvinceTagFace(item.getProvinceTagFace()); point.setDeptTag(item.getDeptTag()); point.setUsername(item.getUsername()); point.setPassword(item.getPassword()); if (needUpdateUnit) { if (Objects.nonNull(unitId)) { point.setUnitId(Long.valueOf(unitId)); ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -29,6 +29,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; @@ -61,7 +62,10 @@ private YwPointMapper ywPointMapper; @Autowired private RedisTemplate redisTemplate; @Value("${DH.userName}") public String userName; @Value("${DH.password}") public String password; //同步点位在线率到mongo(弃用) // public void siteOnline() { // log.info("开始同步点位在线率到mongo"); @@ -169,6 +173,8 @@ ywPoint.setCreateTime(new Date()); ywPoint.setUpdateTime(new Date()); ywPoint.setOnline(ApiConstants.UY_OnlineSite_Unknown); ywPoint.setUsername(userName); ywPoint.setPassword(password); } //状态设置为考核设备 ywPoint.setExamineStatus(Boolean.TRUE); ycl-server/src/main/java/com/ycl/task/OsdTask.java
@@ -99,7 +99,7 @@ List<Future<OSDResult>> futureList = new ArrayList<>(48); List<OSDResult> osdResultList = new ArrayList<>(); for (TMonitor monitor : monitors) { OSDCheckThread thread = new OSDCheckThread(monitor,HKUserName,HKPassword,DHUserName,DHPassword,YSUserName,YSPassword); OSDCheckThread thread = new OSDCheckThread(monitor); Future<OSDResult> future = executorService.submit(thread); futureList.add(future); } ycl-server/src/main/java/com/ycl/thread/OSDCheckThread.java
@@ -13,21 +13,9 @@ @Slf4j public class OSDCheckThread implements Callable<OSDResult> { private TMonitor monitor; public String HKUserName; public String HKPassword; public String DHUserName; public String DHPassword; public String YSUserName; public String YSPassword; public OSDCheckThread(TMonitor monitor, String HKUserName, String HKPassword, String DHUserName, String DHPassword, String YSUserName, String YSPassword) { public OSDCheckThread(TMonitor monitor) { this.monitor = monitor; this.HKUserName = HKUserName; this.HKPassword = HKPassword; this.DHUserName = DHUserName; this.DHPassword = DHPassword; this.YSUserName = YSUserName; this.YSPassword = YSPassword; } public TMonitor getMonitor() { @@ -38,59 +26,11 @@ this.monitor = monitor; } public String getHKUserName() { return HKUserName; } public void setHKUserName(String HKUserName) { this.HKUserName = HKUserName; } public String getHKPassword() { return HKPassword; } public void setHKPassword(String HKPassword) { this.HKPassword = HKPassword; } public String getDHUserName() { return DHUserName; } public void setDHUserName(String DHUserName) { this.DHUserName = DHUserName; } public String getDHPassword() { return DHPassword; } public void setDHPassword(String DHPassword) { this.DHPassword = DHPassword; } public String getYSUserName() { return YSUserName; } public void setYSUserName(String YSUserName) { this.YSUserName = YSUserName; } public String getYSPassword() { return YSPassword; } public void setYSPassword(String YSPassword) { this.YSPassword = YSPassword; } @Override public OSDResult call() throws Exception { if (DeviceType.HK.getType().equals(monitor.getDeviceType())) { //海康 OSDResult osd = HKApi.getOsdByIP(monitor.getSerialNumber(),monitor.getIp(), HKUserName, HKPassword); OSDResult osd = HKApi.getOsdByIP(monitor.getSerialNumber(),monitor.getIp(),monitor.getUsername(),monitor.getPassword()); OSDResult osdResult = checkSuccess(monitor, osd); if (osdResult!=null) { return osd; @@ -99,7 +39,7 @@ } } else if (DeviceType.DH.getType().equals(monitor.getDeviceType())) { //大华 OSDResult osd = DHApi.getOsd(monitor.getSerialNumber(),monitor.getIp(), DHUserName, DHPassword); OSDResult osd = DHApi.getOsd(monitor.getSerialNumber(),monitor.getIp(), monitor.getUsername(),monitor.getPassword()); OSDResult osdResult = checkSuccess(monitor, osd); if (osdResult!=null) { return osd; @@ -108,7 +48,7 @@ } } else if (DeviceType.YS.getType().equals(monitor.getDeviceType())) { //宇视 OSDResult osd = YSApi.getOsd(monitor.getIp(), YSUserName, YSPassword); OSDResult osd = YSApi.getOsd(monitor.getIp(), monitor.getUsername(),monitor.getPassword()); OSDResult osdResult = checkSuccess(monitor, osd); if (osdResult!=null) { return osd; @@ -123,19 +63,19 @@ private OSDResult tryAllApi(TMonitor monitor) { //尝试海康的api OSDResult hkosd = HKApi.getOsdByIP(monitor.getSerialNumber(),monitor.getIp(), HKUserName, HKPassword); OSDResult hkosd = HKApi.getOsdByIP(monitor.getSerialNumber(),monitor.getIp(), monitor.getUsername(),monitor.getPassword()); if (hkosd != null) { hkosd.setSerialNumber(monitor.getSerialNumber()); return hkosd; } //尝试大华的api OSDResult dhosd = DHApi.getOsd(monitor.getSerialNumber(),monitor.getIp(), DHUserName, DHPassword); OSDResult dhosd = DHApi.getOsd(monitor.getSerialNumber(),monitor.getIp(),monitor.getUsername(),monitor.getPassword()); if (dhosd != null) { dhosd.setSerialNumber(monitor.getSerialNumber()); return dhosd; } //宇视api OSDResult ysosd = YSApi.getOsd(monitor.getIp(), YSUserName, YSPassword); OSDResult ysosd = YSApi.getOsd(monitor.getIp(), monitor.getUsername(),monitor.getPassword()); if (ysosd != null) { ysosd.setSerialNumber(monitor.getSerialNumber()); return ysosd; ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -90,7 +90,9 @@ </select> <select id="selectByNumbers" resultType="com.ycl.platform.domain.entity.TMonitor"> select * from t_monitor where serial_number in select m.*,p.username,p.password from t_monitor m left join t_yw_point p on m.serial_number = p.serial_number where serial_number in <foreach collection="numbers" separator="," open="(" close=")" item="number"> #{number} </foreach> ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -13,6 +13,8 @@ <result column="status" property="status"/> <result column="dept_id" property="deptId"/> <result column="dept_name" property="deptName"/> <result column="username" property="username"/> <result column="password" property="password"/> <result column="remark" property="remark"/> <result column="create_time" property="createTime"/> <result column="update_time" property="updateTime"/> @@ -104,6 +106,8 @@ yu.unit_name, yp.start_time, yp.end_time, yp.username, yp.password, d.area, CASE WHEN yp.province_tag_video = 0 THEN '否' ELSE '是' END AS provinceTagVideoString, CASE WHEN yp.province_tag_car = 0 THEN '否' ELSE '是' END AS provinceTagCarString, @@ -146,7 +150,9 @@ province_tag_car = #{point.provinceTagCar}, province_tag_face = #{point.provinceTagFace}, important_command_image_tag = #{point.importantCommandImageTag}, dept_tag = #{point.deptTag} dept_tag = #{point.deptTag}, username = #{point.username}, password = #{point.password} WHERE serial_number = #{point.serialNumber} </foreach> </update> @@ -284,6 +290,12 @@ <if test="deptTag !=null"> dept_tag = #{deptTag}, </if> <if test="username !=null and username!=''"> username = #{username}, </if> <if test="password !=null and password !=''"> password = #{password}, </if> unit_id = #{unitId}, start_time = #{startTime}, end_time = #{endTime},