|
@@ -25,8 +25,30 @@ public class BatchLogin implements CommandLineRunner {
|
|
|
LoginModule.init(new NetSDKLib.fDisConnect() {
|
|
|
@Override
|
|
|
public void invoke(NetSDKLib.LLong lLong, String s, int i, Pointer pointer) {
|
|
|
- //连接删除map配置 需考虑加锁 同步更新数据库状态
|
|
|
- //LoginModule.m_stDeviceInfo.remove(lLong);
|
|
|
+ synchronized(LoginModule.lock) {
|
|
|
+ for (NetSDKLib.LLong key : LoginModule.m_stDeviceInfo.keySet()) {
|
|
|
+
|
|
|
+ //获取handle句柄和设备信息
|
|
|
+ NetSDKLib.NET_DEVICEINFO_Ex value = LoginModule.m_stDeviceInfo.get(key);
|
|
|
+ String deviceSn = new String(value.sSerialNumber);
|
|
|
+ if (lLong.longValue() == key.longValue()) {
|
|
|
+ //先查询单条设备信息
|
|
|
+ GateInfoImpl gateImpl = new GateInfoImpl();
|
|
|
+ GateInfoImpl.Criteria c = gateImpl.createCriteria();
|
|
|
+ c.andSerialNumEqualTo(deviceSn);
|
|
|
+ List<GateInfo> list = crudMapper.selectByExample(gateImpl);
|
|
|
+ if (list.isEmpty()) {
|
|
|
+ System.err.println("未查询到设备信息");
|
|
|
+ }
|
|
|
+ GateInfo g = list.get(0);
|
|
|
+ byte b = 0;
|
|
|
+ g.setStatus(b);
|
|
|
+ crudMapper.updateByPrimaryKey(g);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ LoginModule.m_stDeviceInfo.remove(lLong);
|
|
|
+ }
|
|
|
}
|
|
|
}, new NetSDKLib.fHaveReConnect() {
|
|
|
@Override
|
|
@@ -38,8 +60,13 @@ public class BatchLogin implements CommandLineRunner {
|
|
|
GateInfoImpl gateImpl = new GateInfoImpl();
|
|
|
List<GateInfo> list = crudMapper.selectByExample(gateImpl);
|
|
|
for (GateInfo row: list) {
|
|
|
- System.out.println(row.getIp());
|
|
|
- LoginModule.login(row.getIp(),row.getPort(),row.getUserName(),row.getPassword());
|
|
|
+ boolean flag = LoginModule.login(row.getIp(),row.getPort(),row.getUserName(),row.getPassword());
|
|
|
+ if (flag) {
|
|
|
+ System.out.println("--设备连接成功--");
|
|
|
+ byte b = 1;
|
|
|
+ row.setStatus(b);
|
|
|
+ crudMapper.updateByPrimaryKey(row);
|
|
|
+ }
|
|
|
}
|
|
|
System.out.println("--初始化设备连接结束--");
|
|
|
}
|