package com.lxzn.base.service.impl;
|
|
import cn.hutool.crypto.SmUtil;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.lxzn.base.dao.DncPassLogMapper;
|
import com.lxzn.base.service.IDncPassLogService;
|
import com.lxzn.base.service.ISingleDictionaryService;
|
import com.lxzn.framework.domain.activiti.response.ActivitiCode;
|
import com.lxzn.framework.domain.base.DncPassLog;
|
import com.lxzn.framework.domain.base.SingleDictionary;
|
import com.lxzn.framework.domain.base.SysLogMessageDto;
|
import com.lxzn.framework.domain.base.SysLogTypeObjectDto;
|
import com.lxzn.framework.exception.ExceptionCast;
|
import com.lxzn.framework.utils.FileClient;
|
import com.lxzn.framework.utils.SyslogClient;
|
import com.lxzn.framework.utils.TelnetUtil;
|
import com.lxzn.framework.utils.ValidateUtil;
|
import com.lxzn.framework.utils.date.DateUtil;
|
import com.lxzn.framework.utils.file.FileUtil;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.context.annotation.PropertySource;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Service;
|
|
import java.io.File;
|
import java.io.IOException;
|
import java.net.InetAddress;
|
import java.net.URLEncoder;
|
import java.net.UnknownHostException;
|
import java.nio.file.Files;
|
import java.nio.file.Path;
|
import java.nio.file.Paths;
|
import java.time.Duration;
|
import java.time.Instant;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.stream.Stream;
|
|
/**
|
* @author clown
|
* * @date 2023/11/29
|
*/
|
@Service
|
@PropertySource("classpath:/scheduled.properties")
|
public class DncPassLogServiceImpl extends ServiceImpl<DncPassLogMapper,DncPassLog> implements IDncPassLogService {
|
|
@Value("${securedoc.serverIp}")
|
private String serverIp;
|
@Value("${securedoc.serverPort}")
|
private String serverPort;
|
@Value("${securedoc.username}")
|
private String usernameService;
|
@Value("${securedoc.pwd}")
|
private String pwdService;
|
@Value("${securedoc.addressToken}")
|
private String addressToken;
|
@Value("${securedoc.addressUploadFile}")
|
private String addressUploadFile;
|
@Value("${securedoc.localFilePath}")
|
private String localFilePathC;
|
@Value("${securedoc.servicePath}")
|
private String servicePathS;
|
@Value("${securedoc.copyFilePath}")
|
private String newFilePathC;
|
@Value("${securedoc.logIp}")
|
private String logIp;
|
@Value("${securedoc.logPort}")
|
private String logPort;
|
@Autowired
|
private ISingleDictionaryService iSingleDictionaryService;
|
|
@Override
|
public DncPassLog findDayTime(String dateDay) {
|
if (!ValidateUtil.validateString(dateDay)) {
|
return null;
|
}
|
return super.baseMapper.findDateTimeDay(dateDay);
|
}
|
|
// @Override
|
// @Scheduled(cron = "${fileCron}")
|
// public void fileClientTxtOrNc() {
|
// SysLogMessageDto message = new SysLogMessageDto();
|
// String host = "127.0.0.1";
|
// if (StringUtils.isNotBlank(serverIp)) {
|
// host = serverIp;
|
// }
|
// String port = "8299";
|
// if (StringUtils.isNotBlank(serverPort)) {
|
// port = serverPort;
|
// }
|
// String username = "admin";
|
// if (StringUtils.isNotBlank(usernameService)) {
|
// username = usernameService;
|
// }
|
// String pwd = "123";
|
// if (StringUtils.isNotBlank(pwdService)) {
|
// pwd = pwdService;
|
// }
|
// //文件本地地址,根据地址找到文件,将文件解析成文件流
|
// String localFilePath = "E:\\test\\a\\";
|
// if (StringUtils.isNotBlank(localFilePathC)) {
|
// localFilePath = localFilePathC;
|
// }
|
// //文件上传目的地址,将文件上传到该地址
|
// String servicePath = "E:\\test\\b\\";
|
// if (StringUtils.isNotBlank(servicePathS)) {
|
// servicePath = servicePathS;
|
// }
|
// boolean btelnetPort = TelnetUtil.telnetPort(serverIp,Integer.valueOf(serverPort),10);
|
// if (!btelnetPort) {
|
// System.out.println("服务器连接: " + serverIp + ":" + serverPort + " 异常!" );
|
// return;
|
// }
|
// //第一步,获取token
|
// String token = null;
|
// try {
|
// token = FileClient.getToken(host,port,username,pwd,addressToken);
|
// } catch (Throwable throwable) {
|
// throwable.printStackTrace();
|
// }
|
//
|
// //若获取token成功,再进行上传文件接口调用
|
// if (token !=null && !token.equals("")){
|
// try {
|
// File f3 = new File(localFilePath);
|
// File[] files = f3.listFiles();
|
// for (File fi : files){
|
// if (fi.isFile()){
|
// SysLogTypeObjectDto objectName = new SysLogTypeObjectDto();
|
// objectName.setDateTime(DateUtil.format(DateUtil.getNow(),DateUtil.STR_DATE_TIME_SMALL));
|
// objectName.setFileName(fi.getName());
|
// objectName.setFileSize(FileUtil.changeFileFormatKb(String.valueOf(new File(localFilePath).length())));
|
// objectName.setSourceAddress(localFilePath);
|
// objectName.setDestination(serverIp);//服务端IP
|
// //顺序号
|
// DncPassLog passLog = getById("num0001");
|
// if (passLog == null) {
|
// passLog = new DncPassLog();
|
// passLog.setId("num0001");
|
// passLog.setSequenceNumber(1);
|
// objectName.setFileNum(Integer.toString(1));
|
// save(passLog);
|
// } else {
|
// Integer number = passLog.getSequenceNumber()+1;
|
// removeById("num0001");
|
// objectName.setFileNum(Integer.toString(number));
|
//
|
// passLog = new DncPassLog();
|
// passLog.setId("num0001");
|
// passLog.setSequenceNumber(number);
|
// save(passLog);
|
// }
|
//
|
// InetAddress address = null;
|
// try {
|
// address = InetAddress.getLocalHost();
|
// String ip = address.getHostAddress();
|
// objectName.setSourceAddress("20.10.17.11");//客户端IP
|
// objectName.setAddress(ip);
|
// } catch (UnknownHostException e) {
|
// objectName.setSourceAddress("127.0.0.1");
|
// objectName.setAddress("127.0.0.1");
|
// }
|
// objectName.setDestination(host);
|
// objectName.setResult("失败");
|
// //获取某个文件下的所有文件
|
// String loFilePath = localFilePath + fi.getName();
|
// String servicePathName =servicePath+"//" + fi.getName();
|
// File file = new File(loFilePath);
|
// if (file == null || !file.exists()){
|
// objectName.setAbstract1("sm3");
|
// } else {
|
// String sm3 = SmUtil.sm3(file);
|
// objectName.setAbstract1(sm3);
|
// }
|
//
|
// String b = FileClient.uploadFile(host,port,token,fi.getName(),servicePathName,loFilePath,addressUploadFile);
|
// //文件备份删除
|
// if (b == null) {
|
// try {
|
// objectName.setResult("失败");
|
// objectName.setTypes("error");
|
// SyslogClient.sendClient(logIp,Integer.valueOf(logPort),objectName.toString());
|
// }catch (Exception e) {
|
// return;
|
// }
|
// }
|
// else if ( b.equals("成功")) {
|
// //备份数据
|
// boolean fCopy = FileUtil.copyNcFile(loFilePath,newFilePathC + "/" + DateUtil.format(DateUtil.getNow(),
|
// DateUtil.STR_YEARMONTHDAY) + "/" +fi.getName());
|
// if (fCopy) {
|
// FileUtil.deleteNcFile(loFilePath);
|
// } else {
|
// FileUtil.copyNcFile(loFilePath,newFilePathC + "/" + DateUtil.format(DateUtil.getNow(),
|
// DateUtil.STR_YEARMONTHDAY) + "/" +fi.getName());
|
// FileUtil.deleteNcFile(loFilePath);
|
// }
|
// try {
|
// objectName.setTypes("Info");
|
// objectName.setResult("成功");
|
// SyslogClient.sendClient(logIp,Integer.valueOf(logPort),objectName.toString());
|
// }catch (Exception e) {
|
// return;
|
// }
|
// } else {
|
// try {
|
// objectName.setResult("失败");
|
// objectName.setTypes("error");
|
// SyslogClient.sendClient(logIp,Integer.valueOf(logPort),objectName.toString());
|
// }catch (Exception e) {
|
// return;
|
// }
|
// }
|
// }
|
// }
|
//
|
// } catch (Throwable throwable) {
|
// throwable.printStackTrace();
|
// }
|
// }
|
// }
|
//
|
// /**
|
// * 定时任务执行器参数 每天凌晨1.30执行
|
// */
|
// @Override
|
// @Scheduled(cron = "0 30 1 * * ?")
|
// public void deleteNcSendFile() {
|
// Integer day;
|
// //取字典时间
|
// List<SingleDictionary> singleDictionaries=iSingleDictionaryService.findListFromTypeCode("DEL_TIME_SEND");
|
// if (singleDictionaries.size()!=1){
|
// return;
|
// }else {
|
// day= singleDictionaries.get(0).getDicValue();
|
// }
|
// Path ncDirectory = Paths.get("D:\\NC");
|
// //天转秒
|
// long dayToSecond = day * 24 * 60 * 60;
|
// if (Files.exists(ncDirectory) && Files.isDirectory(ncDirectory)) {
|
// // 递归查找NC目录下所有名为send的文件夹
|
// try (Stream<Path> sendFolders = Files.walk(ncDirectory)
|
// .filter(Files::isDirectory)
|
// .filter(path -> path.getFileName().toString().equalsIgnoreCase("send"))) {
|
// sendFolders.forEach(sendFolder -> {
|
// try {
|
// // 获取当前时间
|
// Instant now = Instant.now();
|
// // 遍历SEND文件夹内的所有文件
|
// Files.walk(sendFolder)
|
// .filter(Files::isRegularFile)
|
// .forEach(file -> {
|
// try {
|
// // 获取文件的最后修改时间
|
// Instant lastModified = Files.getLastModifiedTime(file).toInstant();
|
// // 计算时间差
|
// Duration duration = Duration.between(lastModified, now);
|
// // 判断是否超时(时间存在字典中,base_single_dictionary)
|
// if (duration.getSeconds() > dayToSecond) {
|
// try {
|
// Files.delete(file);
|
// System.out.println("已删除文件: " + file);
|
// } catch (IOException e) {
|
// System.err.println("删除文件 " + file + " 时出现错误: " + e.getMessage());
|
// }
|
// }
|
// } catch (IOException e) {
|
// System.err.println("获取文件 " + file + " 的最后修改时间时出现错误: " + e.getMessage());
|
// }
|
// });
|
// } catch (IOException e) {
|
// System.err.println("遍历 " + sendFolder + " 文件夹时出现错误: " + e.getMessage());
|
// }
|
// });
|
// } catch (IOException e) {
|
// System.err.println("查找send文件夹时出现错误: " + e.getMessage());
|
// }
|
// } else {
|
// System.err.println("D盘的NC目录不存在或不是有效的目录");
|
// }
|
// }
|
|
}
|