ensign/src/main/java/com/yem/wm/utils/AttachmentUtil.java

125 lines
5.0 KiB
Java
Raw Normal View History

2024-08-26 09:19:12 +08:00
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;
}
}