125 lines
5.0 KiB
Java
125 lines
5.0 KiB
Java
![]() |
package com.yem.wm.utils;
|
||
|
|
||
|
import java.io.File;
|
||
|
import java.io.FileInputStream;
|
||
|
import java.io.IOException;
|
||
|
import java.io.InputStream;
|
||
|
import java.net.HttpURLConnection;
|
||
|
import java.net.URL;
|
||
|
import java.net.URLConnection;
|
||
|
import java.net.URLDecoder;
|
||
|
import java.text.DateFormat;
|
||
|
import java.text.SimpleDateFormat;
|
||
|
import java.util.Date;
|
||
|
import java.util.List;
|
||
|
import java.util.Map;
|
||
|
|
||
|
import kd.bos.context.RequestContext;
|
||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||
|
import kd.bos.dataentity.utils.StringUtils;
|
||
|
import kd.bos.fileservice.FileItem;
|
||
|
import kd.bos.fileservice.FileService;
|
||
|
import kd.bos.fileservice.FileServiceFactory;
|
||
|
import kd.bos.orm.ORM;
|
||
|
import kd.bos.servicehelper.AttachmentServiceHelper;
|
||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||
|
import kd.bos.servicehelper.user.UserServiceHelper;
|
||
|
import kd.bos.url.UrlService;
|
||
|
import kd.bos.web.actions.utils.FilePathUtil;
|
||
|
|
||
|
/**
|
||
|
* @author longh zhouc
|
||
|
* @date 2023/12/29 18:04
|
||
|
* 2021年8月20日 下午4:33:59
|
||
|
* @className AttachmentUtil
|
||
|
* @description 附件面板工具类
|
||
|
*/
|
||
|
public class AttachmentUtil {
|
||
|
|
||
|
public static DynamicObject uploadAttachmentPanel(String formId, Object pkId, String attachmentKey, String fileName, String url) {
|
||
|
int size = 0;
|
||
|
try {
|
||
|
size = FileServiceFactory.getAttachmentFileService().getInputStream(url).available();
|
||
|
} catch (IOException e) {
|
||
|
e.printStackTrace();
|
||
|
}
|
||
|
if(YEM.isNotEmpty(url)) {
|
||
|
if(YEM.isEmpty(fileName)) {
|
||
|
fileName = url.substring(url.lastIndexOf("/") + 1);
|
||
|
}
|
||
|
Date today = new Date();
|
||
|
DynamicObject newAtt = BusinessDataServiceHelper.newDynamicObject("bos_attachment");
|
||
|
Long id = ORM.create().genLongId("bos_attachment");
|
||
|
newAtt.set("id", id);
|
||
|
newAtt.set("fnumber", "upload_" + id);
|
||
|
newAtt.set("FBillType", formId);
|
||
|
newAtt.set("FInterID", pkId);
|
||
|
newAtt.set("FModifyTime", today);
|
||
|
newAtt.set("fcreatetime", today);
|
||
|
newAtt.set("FaliasFileName", fileName);
|
||
|
newAtt.set("FAttachmentName", fileName);
|
||
|
newAtt.set("FFileId", url);
|
||
|
newAtt.set("FExtName", fileName.substring(fileName.lastIndexOf(46) + 1));
|
||
|
// newAtt.set("FATTACHMENTSIZE", size);
|
||
|
newAtt.set("FCREATEMEN", RequestContext.get().getCurrUserId());
|
||
|
newAtt.set("fattachmentpanel", attachmentKey);
|
||
|
newAtt.set("fdescription", "");
|
||
|
SaveServiceHelper.save(new DynamicObject[] {newAtt});
|
||
|
return newAtt;
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 上传附件至附件面板
|
||
|
*
|
||
|
* @param appId 应用标识
|
||
|
* @param formId 单据标识
|
||
|
* @param pkId 单据内码
|
||
|
* @param attachmentKey 附件面板标识
|
||
|
* @param fileName 文件名
|
||
|
* @return
|
||
|
* @throws IOException
|
||
|
*/
|
||
|
public static DynamicObject uploadAttachment(String appId, String formId, String pkId, String attachmentKey, String fileName, InputStream fileInputStream){
|
||
|
DynamicObject newAtt = null;
|
||
|
Date today = new Date();
|
||
|
DateFormat df = new SimpleDateFormat("yyyyMM");
|
||
|
String NewDateStr = df.format(today);
|
||
|
String attachmentPath = "/" + RequestContext.get().getTenantId() + "/" + RequestContext.get().getAccountId()
|
||
|
+ "/" + NewDateStr + "/" + appId + "/" + formId + "/" + pkId + "/attachments/";
|
||
|
newAtt = BusinessDataServiceHelper.newDynamicObject("bos_attachment");
|
||
|
// File file = new File(filePath);
|
||
|
// if (file.isFile()) {
|
||
|
@SuppressWarnings("resource")
|
||
|
// int size = new FileInputStream(file).available();
|
||
|
FileService fs = FileServiceFactory.getAttachmentFileService();
|
||
|
String path = attachmentPath + fileName;
|
||
|
FileItem fi = new FileItem(fileName, path, fileInputStream);
|
||
|
fi.setCreateNewFileWhenExists(true);
|
||
|
String url = fs.upload(fi);
|
||
|
Long id = ORM.create().genLongId("bos_attachment");
|
||
|
if (url != null && !"".equals(url)) {
|
||
|
newAtt.set("id", id);
|
||
|
newAtt.set("fnumber", id + "upload_" + formId);
|
||
|
newAtt.set("FBillType", formId);
|
||
|
newAtt.set("FInterID", pkId);
|
||
|
newAtt.set("FModifyTime", today);
|
||
|
newAtt.set("fcreatetime", today);
|
||
|
newAtt.set("FaliasFileName", fileName);
|
||
|
newAtt.set("FAttachmentName", fileName);
|
||
|
newAtt.set("FFileId", url);
|
||
|
newAtt.set("FExtName", fileName != null ? fileName.substring(fileName.lastIndexOf(46) + 1) : "");
|
||
|
newAtt.set("FATTACHMENTSIZE", 15132);
|
||
|
newAtt.set("FCREATEMEN", RequestContext.get().getCurrUserId());
|
||
|
newAtt.set("fattachmentpanel", attachmentKey);
|
||
|
newAtt.set("fdescription", "");
|
||
|
SaveServiceHelper.save(new DynamicObject[]{newAtt});
|
||
|
} else {
|
||
|
new Exception("附件【" + fileName + "】上传失败!");
|
||
|
}
|
||
|
return newAtt;
|
||
|
}
|
||
|
}
|