public static void main(String[] args) { ZkemSDK sdk = new ZkemSDK(); boolean connFlag = sdk.connect("192.168.1.201", 4370); System.out.println("conn:" + connFlag); boolean readGeneralLogData = sdk.readGeneralLogData(); System.out.println("读取打卡机信息到缓存:" + readGeneralLogData); //如果连接打卡机和读取信息到缓存都没问题再去缓存中获取数据 if (connFlag) { //获取打卡机所有的用户信息 List<UserInfo> userInfo = sdk.getUserInfo(); //转化为JSON字符串 String usersJsonString = JSON.toJSONString(userInfo); //反序列化对象 List<UserInfo> userInfos = JSON.parseArray(usersJsonString, UserInfo.class); userInfos.forEach(System.out::println); for (UserInfo info : userInfos) { String name = info.getName(); Boolean enabled = info.getEnabled(); String pwd = info.getPassword(); Integer privilege = info.getPrivilege(); String enrollNumber = info.getEnrollNumber(); Integer userId = Integer.valueOf(enrollNumber); /** * 上面的都是打卡机的数据,可以根据自己的需求处理 */ System.out.println(name+"-"+enabled+"-"+pwd+"-"+privilege+"-"+userId+""); } List<Map<String, Object>> generalLogData = sdk.getGeneralLogData(); String logDataJsonString = JSON.toJSONString(generalLogData); List<LogData> logDatas = JSON.parseArray(logDataJsonString, LogData.class); logDatas.forEach(System.out::println); for(LogData data : logDatas){ //打卡机的时间 String time = data.getTime(); String enrollNumber = data.getEnrollNumber(); /** * data有很多的数据,可以根据自己的业务逻辑拿想要的数据 * 我这里只取了打卡时间和enrollNumber * */ Map<String, Object> userInfoByNumber = getUserInfoByNumber(enrollNumber); System.out.println(time); } } }
时间: 2024-04-20 14:25:30 浏览: 160
C#中static void Main(string[] args) 参数示例详解
这段代码是用来连接并读取打卡机信息的。首先,它创建了一个ZkemSDK对象,并使用connect方法连接到打卡机的IP地址和端口号。然后,它使用readGeneralLogData方法将打卡机信息读取到缓存中。如果连接和读取都成功,它将获取打卡机所有的用户信息,并将其转化为JSON字符串。接着,它将JSON字符串反序列化为UserInfo对象,并输出每个用户的信息。然后,它获取打卡机的日志信息,并将其转化为JSON字符串。最后,它将JSON字符串反序列化为LogData对象,并输出每条日志的信息。在获取每条日志的时候,还会根据enrollNumber获取相应的用户信息。
阅读全文