SFTP上传

This commit is contained in:
曹磊 2024-05-25 17:11:56 +08:00
parent 83d9a7f79a
commit 5830dcbb83
4 changed files with 170 additions and 86 deletions

View File

@ -317,36 +317,49 @@ public class ZyJxdgController extends JeecgController<ZyJxdg, IZyJxdgService> {
if(StringUtils.equals("pdf",nameLast)){
zyJxdg.setPdfPath(zyJxdg.getFilePath());
}else{
Global global = SpringContextHolder.getBean(Global.class);
FileUtil.mkdir(global.getContractDickPath());
String dd = DateUtils.formatDate(new Date(),"yyyyMMddHHmmss");
// String docPath = upLoadPath+ File.separator+ zyJxdg.getFilePath();
String docPath = zyJxdg.getFilePath();
String namePath = dd + ".pdf";
String pdfPath = global.getContractDickPath() + namePath;
Map<String,String> map = zykService.downloadRemoteFile(docPath);
PDFUtil.office2PDF(map.get("data"),pdfPath);
zyJxdg.setPdfPath("contract/"+namePath);
}
}else{
zyJxdg.setPdfPath(null);
}
//--------上传ftp工具---------------
// Map<String,String> saveToZyk(ZykInfo zykInfo);
if(StringUtils.isNotEmpty(zyJxdg.getFilePath())){
// Global global = SpringContextHolder.getBean(Global.class);
// FileUtil.mkdir(global.getContractDickPath());
// String dd = DateUtils.formatDate(new Date(),"yyyyMMddHHmmss");
//// String docPath = upLoadPath+ File.separator+ zyJxdg.getFilePath();
// String docPath = zyJxdg.getFilePath();
// String namePath = dd + ".pdf";
// String pdfPath = global.getContractDickPath() + namePath;
// Map<String,String> map = zykService.downloadRemoteFile(docPath);
// PDFUtil.office2PDF(map.get("data"),pdfPath);
// zyJxdg.setPdfPath("contract/"+namePath);
ZykInfo zykInfo = new ZykInfo();
zykInfo.setBizId(zyJxdg.getId());
zykInfo.setBizTable("zy_jxdg");
zykInfo.setWjlx(WjlxEnum.JXDG.getType());
zykInfo.setRwbh(zyJxdg.getRwbh());
zykInfo.setFileName(zyJxdg.getFilePath());
zykInfo.setPdfName(zyJxdg.getPdfPath());
Map<String,String> map = zykService.saveToZyk(zykInfo);
String fileName = map.get("data");
String pdfName = map.get("pdfData");
Map<String,Object> map = zykService.saveToZykJxdg(zykInfo);
String fileName = map.get("data").toString();
String pdfName = map.get("pdfData").toString();
zyJxdg.setFilePath(fileName);
zyJxdg.setPdfPath(pdfName);
}
}else{
zyJxdg.setPdfPath(null);
}
//--------上传ftp工具---------------
// Map<String,String> saveToZyk(ZykInfo zykInfo);
// if(StringUtils.isNotEmpty(zyJxdg.getFilePath())){
// ZykInfo zykInfo = new ZykInfo();
// zykInfo.setBizId(zyJxdg.getId());
// zykInfo.setBizTable("zy_jxdg");
// zykInfo.setWjlx(WjlxEnum.JXDG.getType());
// zykInfo.setRwbh(zyJxdg.getRwbh());
// zykInfo.setFileName(zyJxdg.getFilePath());
// zykInfo.setPdfName(zyJxdg.getPdfPath());
// Map<String,String> map = zykService.saveToZyk(zykInfo);
// String fileName = map.get("data");
// String pdfName = map.get("pdfData");
// zyJxdg.setFilePath(fileName);
// zyJxdg.setPdfPath(pdfName);
// }
//--------上传ftp工具---------------

View File

@ -31,7 +31,7 @@ public interface IZykService extends IService<ZykInfo> {
* @param filePath
* @return 下载结果
*/
Map<String,String> downloadRemoteFile(String filePath);
Map<String,Object> downloadRemoteFile(String filePath);
/**
* 下载远端文件流含接口
@ -44,8 +44,9 @@ public interface IZykService extends IService<ZykInfo> {
* @param zykInfo
* @return 上传结果
*/
Map<String,String> saveToZyk(ZykInfo zykInfo);
Map<String,String> uploadFileToSftp(String filePath);
Map<String,Object> saveToZyk(ZykInfo zykInfo);
Map<String,Object> saveToZykJxdg(ZykInfo zykInfo);
Map<String,Object> uploadFileToSftp(Map<String,Object> map,String filePath);
/**
* 删除资源库接口

View File

@ -5,9 +5,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.SpringContextHolder;
import org.jeecg.common.util.text.StringUtils;
import org.jeecg.modules.kc.ktgl.entity.KcKechengbiao;
import org.jeecg.modules.kc.ktgl.service.IKcKechengbiaoService;
import org.jeecg.modules.tools.Global;
import org.jeecg.modules.tools.pdf.PDFUtil;
import org.jeecg.modules.zyk.entity.ZykInfo;
import org.jeecg.modules.zyk.mapper.ZykMapper;
import org.jeecg.modules.zyk.service.IZykService;
@ -52,16 +56,16 @@ public class ZykServiceImpl extends ServiceImpl<ZykMapper, ZykInfo> implements I
@Override
public String saveInfo(ZykInfo zykInfo){
// Map<String,String> map = fileHandleUtil.uploadFile(zykInfo);
Map<String,String> map = fileHandleUtil.moveFiles(zykInfo);
Map<String,Object> map = fileHandleUtil.moveFiles(null,zykInfo);
if(!map.get("code").equals("0")){
return map.get("msg");
return map.get("msg").toString();
}
if(!StringUtils.isEmpty(map.get("data"))){
String fileName = map.get("data");
if(!StringUtils.isEmpty(map.get("data").toString())){
String fileName = map.get("data").toString();
zykInfo.setFileName(fileName);
}
if(!StringUtils.isEmpty(map.get("pdfData"))){
String pdfName = map.get("pdfData");
if(!StringUtils.isEmpty(map.get("pdfData").toString())){
String pdfName = map.get("pdfData").toString();
zykInfo.setPdfName(pdfName);
}
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@ -76,16 +80,16 @@ public class ZykServiceImpl extends ServiceImpl<ZykMapper, ZykInfo> implements I
@Override
public String modifyInfo(ZykInfo zykInfo){
// Map<String,String> map = fileHandleUtil.uploadFile(zykInfo);
Map<String,String> map = fileHandleUtil.moveFiles(zykInfo);
Map<String,Object> map = fileHandleUtil.moveFiles(null,zykInfo);
if(!map.get("code").equals("0")){
return map.get("msg");
return map.get("msg").toString();
}
if(!StringUtils.isEmpty(map.get("data"))){
String fileName = map.get("data");
if(!StringUtils.isEmpty(map.get("data").toString())){
String fileName = map.get("data").toString();
zykInfo.setFileName(fileName);
}
if(!StringUtils.isEmpty(map.get("pdfData"))){
String pdfName = map.get("pdfData");
if(!StringUtils.isEmpty(map.get("pdfData").toString())){
String pdfName = map.get("pdfData").toString();
zykInfo.setPdfName(pdfName);
}
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@ -142,8 +146,8 @@ public class ZykServiceImpl extends ServiceImpl<ZykMapper, ZykInfo> implements I
* @return 下载结果
*/
@Override
public Map<String,String> downloadRemoteFile(String filePath){
Map<String,String> map = new HashMap<String,String>();
public Map<String,Object> downloadRemoteFile(String filePath){
Map<String,Object> map = new HashMap<String,Object>();
map.put("code","0");
if(filePath == null || filePath.equals("")){
map.put("code","1");
@ -162,11 +166,12 @@ public class ZykServiceImpl extends ServiceImpl<ZykMapper, ZykInfo> implements I
map.put("code","1");
map.put("msg","文件不存在!");
}
Map<String,String> downloadMap = fileHandleUtil.download(df[0],df[1]);
Map<String,Object> downloadMap = fileHandleUtil.download(null,df[0],df[1]);
if(!downloadMap.get("code").equals("0")){
return downloadMap;
}
map.put("data",downloadMap.get("fileName"));
map.put("sftp",downloadMap.get("sftp"));
return map;
}
@ -195,7 +200,7 @@ public class ZykServiceImpl extends ServiceImpl<ZykMapper, ZykInfo> implements I
* @return 上传结果
*/
@Override
public Map<String,String> saveToZyk(ZykInfo zykInfo){
public Map<String,Object> saveToZyk(ZykInfo zykInfo){
KcKechengbiao kcb = new KcKechengbiao();
kcb.setRwbh(zykInfo.getRwbh());
kcb = kcKechengbiaoService.getKcbhByRwbh(kcb);
@ -203,17 +208,67 @@ public class ZykServiceImpl extends ServiceImpl<ZykMapper, ZykInfo> implements I
zykInfo.setKkdw(kcb.getKkdw());
zykInfo.setKcmc(kcb.getKcmc());
zykInfo.setSkjs(kcb.getSkjs());
// Map<String,String> map = fileHandleUtil.uploadFile(zykInfo);
Map<String,String> map = fileHandleUtil.moveFiles(zykInfo);
// Map<String,Object> map = fileHandleUtil.uploadFile(zykInfo);
Map<String,Object> map = fileHandleUtil.moveFiles(null,zykInfo);
if(!map.get("code").equals("0")){
return map;
}
if(!StringUtils.isEmpty(map.get("data"))){
String fileName = map.get("data");
if(!StringUtils.isEmpty(map.get("data").toString())){
String fileName = map.get("data").toString();
zykInfo.setFileName(fileName);
}
if(!StringUtils.isEmpty(map.get("pdfData"))){
String pdfName = map.get("pdfData");
if(!StringUtils.isEmpty(map.get("pdfData").toString())){
String pdfName = map.get("pdfData").toString();
zykInfo.setPdfName(pdfName);
}
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
zykInfo.setCreateBy(user.getUsername());
zykInfo.setCreateTime(new Date());
Long id = new DefaultIdentifierGenerator().nextId(new ZykInfo());
zykInfo.setId(id.toString());
zykMapper.addInfo(zykInfo);
return map;
}
/**
* 更新到资源库-教学大纲接口
* @param zykInfo
* @return 上传结果
*/
@Override
public Map<String,Object> saveToZykJxdg(ZykInfo zykInfo){
KcKechengbiao kcb = new KcKechengbiao();
kcb.setRwbh(zykInfo.getRwbh());
kcb = kcKechengbiaoService.getKcbhByRwbh(kcb);
zykInfo.setXqxn(kcb.getXqxn());
zykInfo.setKkdw(kcb.getKkdw());
zykInfo.setKcmc(kcb.getKcmc());
zykInfo.setSkjs(kcb.getSkjs());
Map<String,Object> downloadMap = downloadRemoteFile(zykInfo.getFileName());
Global global = SpringContextHolder.getBean(Global.class);
String dd = DateUtils.formatDate(new Date(),"yyyyMMddHHmmss");
String namePath = dd + ".pdf";
String pdfPath = global.getContractDickPath() + namePath;
if(!downloadMap.get("code").equals("0")){
return downloadMap;
}
PDFUtil.office2PDF(downloadMap.get("data").toString(),pdfPath);
Map<String,Object> uploadMap = uploadFileToSftp(downloadMap,"contract/"+namePath);
if(!uploadMap.get("code").equals("0")){
return uploadMap;
}
zykInfo.setPdfName(uploadMap.get("data").toString());
Map<String,Object> map = fileHandleUtil.moveFiles(downloadMap,zykInfo);
if(!map.get("code").equals("0")){
return map;
}
if(!StringUtils.isEmpty(map.get("data").toString())){
String fileName = map.get("data").toString();
zykInfo.setFileName(fileName);
}
if(!StringUtils.isEmpty(map.get("pdfData").toString())){
String pdfName = map.get("pdfData").toString();
zykInfo.setPdfName(pdfName);
}
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@ -231,8 +286,8 @@ public class ZykServiceImpl extends ServiceImpl<ZykMapper, ZykInfo> implements I
* @return 上传结果
*/
@Override
public Map<String,String> uploadFileToSftp(String filePath){
Map<String,String> map = fileHandleUtil.uploadFileToSftp(filePath);
public Map<String,Object> uploadFileToSftp(Map<String,Object> downloadMap,String filePath){
Map<String,Object> map = fileHandleUtil.uploadFileToSftp(downloadMap,filePath);
if(!map.get("code").equals("0")){
return map;
}

View File

@ -1,5 +1,6 @@
package org.jeecg.modules.zyk.utils;
import com.jcraft.jsch.ChannelSftp;
import org.apache.commons.compress.utils.Lists;
import org.jeecg.common.util.SFTPUtil;
import org.jeecg.common.util.text.StringUtils;
@ -26,24 +27,24 @@ public class FileHandleUtil {
@Value(value = "${jeecg.path.webapp}")
private String downloadpath;
public Map<String,String> uploadFile(ZykInfo zykInfo){
Map<String,String> map = new HashMap<String,String>();
public Map<String,Object> uploadFile(ZykInfo zykInfo){
Map<String,Object> map = new HashMap<String,Object>();
map.put("code","0");
Map<String,String> directoryMap = getDirectory(zykInfo);
Map<String,Object> directoryMap = getDirectory(zykInfo);
if(!directoryMap.get("code").equals("0")){
return directoryMap;
}
//资源库文件路径
String directory = directoryMap.get("directory");
String directory = directoryMap.get("directory").toString();
if(!StringUtils.isEmpty(zykInfo.getFileName())) {
//源文件路径
Map<String,String> fileNameMap = getFileName(zykInfo);
Map<String,Object> fileNameMap = getFileName(zykInfo);
if(!fileNameMap.get("code").equals("0")){
return fileNameMap;
}
//上传文件
Map<String,String> uploadMap = SFTPUtil.upload(sftpConfig,true,directory,fileNameMap.get("filePath"),fileNameMap.get("fileName"));
Map<String,Object> uploadMap = SFTPUtil.upload(null,sftpConfig,true,directory,fileNameMap.get("filePath").toString(),fileNameMap.get("fileName").toString());
if(!uploadMap.get("code").equals("0")){
return uploadMap;
}
@ -52,12 +53,12 @@ public class FileHandleUtil {
if(!StringUtils.isEmpty(zykInfo.getPdfName())) {
//源文件路径
Map<String,String> fileNameMap = getPdfName(zykInfo);
Map<String,Object> fileNameMap = getPdfName(zykInfo);
if(!fileNameMap.get("code").equals("0")){
return fileNameMap;
}
//上传文件
Map<String,String> uploadMap = SFTPUtil.upload(sftpConfig,true,directory,fileNameMap.get("filePath"),fileNameMap.get("pdfName"));
Map<String,Object> uploadMap = SFTPUtil.upload(null,sftpConfig,true,directory,fileNameMap.get("filePath").toString(),fileNameMap.get("pdfName").toString());
if(!uploadMap.get("code").equals("0")){
return uploadMap;
}
@ -66,23 +67,22 @@ public class FileHandleUtil {
return map;
}
public Map<String,String> uploadFileToSftp(String filePath){
Map<String,String> map = new HashMap<String,String>();
public Map<String,Object> uploadFileToSftp(Map<String,Object> sftpMap, String filePath){
Map<String,Object> map = new HashMap<String,Object>();
map.put("code","0");
if(!StringUtils.isEmpty(filePath)) {
//源文件路径
Map<String,String> fileNameMap = getFileName(filePath);
Map<String,Object> fileNameMap = getFileName(filePath);
if(!fileNameMap.get("code").equals("0")){
return fileNameMap;
}
//上传文件
Map<String,String> uploadMap = SFTPUtil.upload(sftpConfig,false,"temp/",fileNameMap.get("filePath"),fileNameMap.get("fileName"));
Map<String,Object> uploadMap = SFTPUtil.upload((ChannelSftp)sftpMap.get("sftp"),sftpConfig,false,"temp/",fileNameMap.get("filePath").toString(),fileNameMap.get("fileName").toString());
if(!uploadMap.get("code").equals("0")){
return uploadMap;
}
map.put("data",uploadMap.get("data"));
}
return map;
}
@ -96,28 +96,28 @@ public class FileHandleUtil {
return ss;
}
public Map<String,String> download(String directory, String downloadFile){
return SFTPUtil.download(sftpConfig,directory,downloadFile,getDownloadPath("temp"));
public Map<String,Object> download(ChannelSftp sftp, String directory, String downloadFile){
return SFTPUtil.download(sftp,sftpConfig,directory,downloadFile,getDownloadPath("temp"));
}
public void downloadRes(String directory, String downloadFile,HttpServletResponse response) throws Exception{
SFTPUtil.writeFileToRes(sftpConfig,downloadFile,response);
}
public Map<String,String> moveFile(ZykInfo zykInfo){
Map<String,String> map = new HashMap<String,String>();
public Map<String,Object> moveFile(ZykInfo zykInfo){
Map<String,Object> map = new HashMap<String,Object>();
map.put("code","0");
Map<String,String> directoryMap = getDirectory(zykInfo);
Map<String,Object> directoryMap = getDirectory(zykInfo);
if(!directoryMap.get("code").equals("0")){
return directoryMap;
}
//资源库文件路径
String directory = directoryMap.get("directory");
String directory = directoryMap.get("directory").toString();
if(!StringUtils.isEmpty(zykInfo.getFileName())) {
//源文件路径
String newname = getName(zykInfo,false);
Map<String,String> uploadMap = SFTPUtil.moveFile(sftpConfig,zykInfo.getFileName(),directory,newname);
Map<String,Object> uploadMap = SFTPUtil.moveFile(sftpConfig,zykInfo.getFileName(),directory,newname);
if(!uploadMap.get("code").equals("0")){
return uploadMap;
}
@ -126,7 +126,7 @@ public class FileHandleUtil {
if(!StringUtils.isEmpty(zykInfo.getPdfName())) {
String newname = getName(zykInfo,true);
Map<String,String> uploadMap = SFTPUtil.moveFile(sftpConfig,zykInfo.getFileName(),directory,newname);
Map<String,Object> uploadMap = SFTPUtil.moveFile(sftpConfig,zykInfo.getFileName(),directory,newname);
if(!uploadMap.get("code").equals("0")){
return uploadMap;
}
@ -135,19 +135,24 @@ public class FileHandleUtil {
return map;
}
public Map<String,String> moveFiles(ZykInfo zykInfo){
Map<String,String> map = new HashMap<String,String>();
public Map<String,Object> moveFiles(Map<String,Object> sftpMap, ZykInfo zykInfo){
Map<String,Object> map = new HashMap<String,Object>();
map.put("code","0");
Map<String,String> directoryMap = getDirectory(zykInfo);
Map<String,Object> directoryMap = getDirectory(zykInfo);
if(!directoryMap.get("code").equals("0")){
return directoryMap;
}
//资源库文件路径
String directory = directoryMap.get("directory");
String directory = directoryMap.get("directory").toString();
if(!StringUtils.isEmpty(zykInfo.getFileName())) {
List<String[]> list = getPathsAndNames(zykInfo,false);
Map<String,String> uploadMap = SFTPUtil.moveFiles(sftpConfig,directory,list);
Map<String,Object> uploadMap = null;
if(sftpMap!=null){
uploadMap = SFTPUtil.moveFiles((ChannelSftp)sftpMap.get("sftp"),sftpConfig,directory,list);
}else{
uploadMap = SFTPUtil.moveFiles(sftpConfig,directory,list);
}
if(!uploadMap.get("code").equals("0")){
return uploadMap;
}
@ -155,12 +160,20 @@ public class FileHandleUtil {
}
if(!StringUtils.isEmpty(zykInfo.getPdfName())) {
List<String[]> list = getPathsAndNames(zykInfo,true);
Map<String,String> uploadMap = SFTPUtil.moveFiles(sftpConfig,directory,list);
Map<String,Object> uploadMap = null;
if(sftpMap!=null){
uploadMap = SFTPUtil.moveFiles((ChannelSftp)sftpMap.get("sftp"),sftpConfig,directory,list);
}else{
uploadMap = SFTPUtil.moveFiles(sftpConfig,directory,list);
}
if(!uploadMap.get("code").equals("0")){
return uploadMap;
}
map.put("pdfData",uploadMap.get("data"));
}
if(sftpMap!=null){
SFTPUtil.disConnect((ChannelSftp)sftpMap.get("sftp"));
}
return map;
}
@ -173,8 +186,8 @@ public class FileHandleUtil {
* @param zykInfo
* @return
*/
private Map<String,String> getDirectory(ZykInfo zykInfo){
Map<String,String> map = new HashMap<String,String>();
private Map<String,Object> getDirectory(ZykInfo zykInfo){
Map<String,Object> map = new HashMap<String,Object>();
map.put("code","0");
StringBuffer sb = new StringBuffer();
if(StringUtils.isEmpty(zykInfo.getXqxn())){
@ -221,8 +234,8 @@ public class FileHandleUtil {
* @param zykInfo
* @return
*/
private Map<String,String> getFileName(ZykInfo zykInfo){
Map<String,String> map = new HashMap<String,String>();
private Map<String,Object> getFileName(ZykInfo zykInfo){
Map<String,Object> map = new HashMap<String,Object>();
map.put("code","0");
String uploadFileName = getRealFileFullPath(zykInfo.getFileName());
if(StringUtils.isEmpty(uploadFileName)){
@ -277,8 +290,8 @@ public class FileHandleUtil {
* @param fileNamePath
* @return
*/
private Map<String,String> getFileName(String fileNamePath){
Map<String,String> map = new HashMap<String,String>();
private Map<String,Object> getFileName(String fileNamePath){
Map<String,Object> map = new HashMap<String,Object>();
map.put("code","0");
String uploadFileName = getRealFileFullPath(fileNamePath);
if(StringUtils.isEmpty(uploadFileName)){
@ -376,8 +389,8 @@ public class FileHandleUtil {
* @param zykInfo
* @return
*/
private Map<String,String> getPdfName(ZykInfo zykInfo){
Map<String,String> map = new HashMap<String,String>();
private Map<String,Object> getPdfName(ZykInfo zykInfo){
Map<String,Object> map = new HashMap<String,Object>();
map.put("code","0");
String uploadFileName = getRealFileFullPath(zykInfo.getPdfName());
if(StringUtils.isEmpty(uploadFileName)){
@ -466,4 +479,6 @@ public class FileHandleUtil {
return filePath;
}
}