| | |
| | | */ |
| | | public boolean readFile() { |
| | | FTPClient ftp = new FTPClient(); |
| | | String fileName = null; |
| | | try { |
| | | //设置传输超时时间为60秒 |
| | | ftp.setDataTimeout(10000); |
| | |
| | | } |
| | | else { |
| | | for (int i = files.length-1; i >=0 ; i--) { |
| | | String fileName = files[i].getName(); |
| | | fileName = files[i].getName(); |
| | | String substring1 = fileName.substring(0, 2); |
| | | System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+":读取到文件 = " + fileName); |
| | | if (substring1.contains("nq")) { |
| | |
| | | // ftp.logout(); |
| | | } |
| | | } catch (Exception e) { |
| | | System.out.println("ftp连接失败"); |
| | | //发生异常删除文件,有可能是空文件 |
| | | FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserNameIn, ftpPasswordIn, ftpPath, fileName); |
| | | e.printStackTrace(); |
| | | } finally { |
| | | try { |
| | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 读取内外推送的管理员导入的保安员返回文件(带保安证编号) |
| | | * @return |
| | | */ |
| | | public boolean readPaperListFile() { |
| | | FTPClient ftp = new FTPClient(); |
| | | try { |
| | | //设置传输超时时间为60秒 |
| | | ftp.setDataTimeout(10000); |
| | | //连接超时为60秒 |
| | | ftp.setConnectTimeout(10000); |
| | | //连接 |
| | | ftp.connect(ftpHost, ftpPort); |
| | | System.out.println("定时任务:读取内外推送的管理员导入的保安员返回文件(带保安证编号)!"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); |
| | | // 登陆 |
| | | ftp.login(ftpUserNameIn, ftpPasswordIn); |
| | | // 检验登陆操作的返回码是否正确 |
| | | if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) { |
| | | ftp.disconnect(); |
| | | return false; |
| | | } |
| | | |
| | | // 设置文件类型为二进制,与ASCII有区别 |
| | | ftp.setFileType(FTP.BINARY_FILE_TYPE); |
| | | |
| | | // 设置编码格式 |
| | | ftp.setControlEncoding("GBK"); |
| | | |
| | | // 检验文件是否存在 |
| | | ftp.changeWorkingDirectory(ftpPath); |
| | | |
| | | // Use passive mode as default |
| | | ftp.enterLocalPassiveMode(); |
| | | |
| | | FTPFile[] files = ftp.listFiles(); |
| | | //文件处理 |
| | | if (files.length==0){ |
| | | return false; |
| | | } |
| | | else { |
| | | for (int i = files.length-1; i >=0 ; i--) { |
| | | String fileName = files[i].getName(); |
| | | String substring = fileName.substring(0, 2); |
| | | System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+":读取到文件 = " + fileName); |
| | | if (substring.contains("np")) { |
| | | //把文件下载到本地 |
| | | long l = System.currentTimeMillis(); |
| | | FtpUtil.downloadFtpFile(ftpHost, ftpUserNameIn, ftpPasswordIn, ftpPort, ftpPath, localPath, fileName); |
| | | long x = System.currentTimeMillis(); |
| | | System.out.println("下载文件耗时 = " + (x-l)+" 毫秒"); |
| | | //数据转换 |
| | | String json = OutJson.TestJson(fileName); |
| | | //取出map |
| | | Map<String,Object> map = JSON.parseObject(json, Map.class); |
| | | Result result = new Result(); |
| | | for (Map.Entry entry : map.entrySet()) { |
| | | Object value = entry.getValue(); |
| | | //转换 |
| | | result = JSON.parseObject(value.toString(), Result.class); |
| | | } |
| | | if (null!=result) { |
| | | try { |
| | | paperListInfoHandler(result); |
| | | }catch (Exception e) { |
| | | //异步用户处理逻辑 |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | //删除本地文件 |
| | | MysqlCenlint.deletess(fileName); |
| | | //删除 ftp 文件 |
| | | FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserNameIn, ftpPasswordIn, ftpPath, fileName); |
| | | System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+":成功删除ftp文件 = " + fileName); |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | System.out.println("ftp连接失败"); |
| | | e.printStackTrace(); |
| | | } finally { |
| | | if (ftp.isConnected()) { |
| | | try { |
| | | ftp.logout(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | ftp.disconnect(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 用户集合信息处理 |
| | | * @param result |
| | |
| | | handlerLog.setDeptId(user.getDeptId()); |
| | | handlerLog.setOperatorTime(user.getCreateTime()); |
| | | handlerLog.setRemark("用户["+DesensitizedUtil.desensitizedIdNumberBy4(user0.getCardid())+"]保安证编号不匹配,请核实!"); |
| | | handlerLog.setType(2); |
| | | //插入记录 |
| | | handlerLogService.save(handlerLog); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 管理员导入用户集合信息处理 |
| | | * @param result |
| | | */ |
| | | @Async |
| | | public void paperListInfoHandler(Result result) { |
| | | //获取 result |
| | | List<Result> data1 = result.getData(); |
| | | System.out.println("批量导入数据 = " + data1); |
| | | if (data1.size()>0){ |
| | | for (Result result1 : data1) { |
| | | // 取出 Msg ,此 msg 存的对应的 uuid |
| | | String[] split = result1.getMsg().split(","); |
| | | String uuid = split[0]; |
| | | //从redis 中获取用户数据 |
| | | Object o1 = redisTemplate.opsForValue().get(uuid); |
| | | User user0 = JSON.parseObject(o1.toString(), User.class); |
| | | // 从redis 中获取对应的用户信息,脱敏处理过 |
| | | User user = handlerUserInfo(uuid); |
| | | if (result1.getCode()==200){ |
| | | user.setId(result1.getUserId()); |
| | | user.setSecuritynumber(split[1]); |
| | | user.setHold("1"); |
| | | user.setExaminationType("0"); |
| | | boolean save = userService.save(user); |
| | | if (save){ |
| | | //数据异步同步到群防群控 |
| | | myAsyncService.qfqkUserSave(user); |
| | | } |
| | | } |
| | | if (result1.getCode()==202){ |
| | | //已在其他单位存在 |
| | | HandlerLog handlerLog = new HandlerLog(); |
| | | handlerLog.setCreateTime(new Date()); |
| | | handlerLog.setDeptId(user.getDeptId()); |
| | | handlerLog.setOperatorTime(user.getCreateTime()); |
| | | handlerLog.setRemark("用户["+DesensitizedUtil.desensitizedIdNumberBy4(user0.getCardid())+"]已在其他单位存在"); |
| | | handlerLog.setType(2); |
| | | //插入记录 |
| | | handlerLogService.save(handlerLog); |
| | | } |
| | | if (result1.getCode()==205){ |
| | | //审查异常 |
| | | HandlerLog handlerLog = new HandlerLog(); |
| | | handlerLog.setCreateTime(new Date()); |
| | | handlerLog.setDeptId(user.getDeptId()); |
| | | handlerLog.setOperatorTime(user.getCreateTime()); |
| | | handlerLog.setRemark("用户["+DesensitizedUtil.desensitizedIdNumberBy4(user0.getCardid())+"]导入失败,该人员审查异常!"); |
| | | handlerLog.setType(2); |
| | | //插入记录 |
| | | handlerLogService.save(handlerLog); |
| | |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | // /** |
| | | // * 读取内外推送的实操成绩导入情况信息 |
| | | // * @return |
| | | // */ |
| | | // public boolean readExamScoreFile() { |
| | | // FTPClient ftp = new FTPClient(); |
| | | // try { |
| | | // //设置传输超时时间为60秒 |
| | | // ftp.setDataTimeout(10000); |
| | | // //连接超时为60秒 |
| | | // ftp.setConnectTimeout(10000); |
| | | // //连接 |
| | | // ftp.connect(ftpHost, ftpPort); |
| | | // System.out.println("读取内外推送的实操成绩导入情况信息!"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); |
| | | // // 登陆 |
| | | // ftp.login(ftpUserNameIn, ftpPasswordIn); |
| | | // // 检验登陆操作的返回码是否正确 |
| | | // if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) { |
| | | // ftp.disconnect(); |
| | | // return false; |
| | | // } |
| | | // |
| | | //// ftp.enterLocalActiveMode(); |
| | | // |
| | | // // 设置文件类型为二进制,与ASCII有区别 |
| | | // ftp.setFileType(FTP.BINARY_FILE_TYPE); |
| | | // |
| | | // // 设置编码格式 |
| | | // ftp.setControlEncoding("GBK"); |
| | | // |
| | | // // 检验文件是否存在 |
| | | //// ftp.changeWorkingDirectory(ftpPath); |
| | | // |
| | | // // Use passive mode as default |
| | | // ftp.enterLocalPassiveMode(); |
| | | // |
| | | // FTPFile[] files = ftp.listFiles(); |
| | | // //文件个数大于10个时开始处理 |
| | | // if (files.length==0){ |
| | | //// ftp.logout(); |
| | | // return false; |
| | | // } |
| | | // else { |
| | | // for (int i = files.length-1; i >=0 ; i--) { |
| | | // String fileName = files[i].getName(); |
| | | // String substring = fileName.substring(0, 2); |
| | | // System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+":读取到文件 = " + fileName); |
| | | // if (substring.contains("ne")) { |
| | | // //把文件下载到本地 |
| | | // long l = System.currentTimeMillis(); |
| | | // FtpUtil.downloadFtpFile(ftpHost, ftpUserNameIn, ftpPasswordIn, ftpPort, ftpPath, localPath, fileName); |
| | | // long x = System.currentTimeMillis(); |
| | | // System.out.println("下载文件耗时 = " + (x-l)+" 毫秒"); |
| | | // //数据转换 |
| | | // String json = OutJson.TestJson(fileName); |
| | | // //取出map |
| | | // Map<String,Object> map = JSON.parseObject(json, Map.class); |
| | | // //取出 key/uuid,取出结果 |
| | | // String uuid = null; |
| | | // Result result = new Result(); |
| | | // for (Map.Entry entry : map.entrySet()) { |
| | | // Object value = entry.getValue(); |
| | | // //转换 |
| | | // result = JSON.parseObject(value.toString(), Result.class); |
| | | // } |
| | | // if (null!=result) { |
| | | // examScoreHandler(result); |
| | | // } |
| | | // //删除本地文件 |
| | | // MysqlCenlint.deletess(fileName); |
| | | // //删除 ftp 文件 |
| | | // FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserNameIn, ftpPasswordIn, ftpPath, fileName); |
| | | // System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+":成功删除ftp文件 = " + fileName); |
| | | // } |
| | | // } |
| | | // //关闭流 |
| | | //// ftp.completePendingCommand(); |
| | | //// ftp.logout(); |
| | | // } |
| | | // } catch (Exception e) { |
| | | // System.out.println("ftp连接失败"); |
| | | // e.printStackTrace(); |
| | | // } finally { |
| | | // try { |
| | | // ftp.logout(); |
| | | // } catch (IOException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // if (ftp.isConnected()) { |
| | | // try { |
| | | // ftp.disconnect(); |
| | | // } catch (IOException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // } |
| | | // } |
| | | // return false; |
| | | // } |
| | | |
| | | // /** |
| | | // * 实操成绩导入修改 |
| | | // * @param result |
| | | // */ |
| | | // private void examScoreHandler(Result result) { |
| | | // //导入的人员不存在 |
| | | // HandlerLog handlerLog = new HandlerLog(); |
| | | // handlerLog.setCreateTime(new Date()); |
| | | // handlerLog.setDeptId(deptId); |
| | | // handlerLog.setOperatorTime(new Date()); |
| | | // handlerLog.setType(4); |
| | | // handlerLog.setRemark(result.getMsg()); |
| | | // //插入记录 |
| | | // handlerLogService.save(handlerLog); |
| | | // } |
| | | |
| | | /** |
| | | * 报名信息处理 |