电子回单、电子对账单获取下载地址
This commit is contained in:
parent
147f84bffd
commit
7366547b0b
|
|
@ -0,0 +1,68 @@
|
|||
package shjh.jhzj7.fi.fi.plugin.task;
|
||||
|
||||
import kd.bos.context.RequestContext;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.dataentity.utils.StringUtils;
|
||||
import kd.bos.exception.KDException;
|
||||
import kd.bos.ext.fi.bei.util.EmptyUtil;
|
||||
import kd.bos.form.plugin.AbstractFormPlugin;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.schedule.executor.AbstractTask;
|
||||
import kd.bos.servicehelper.AttachmentServiceHelper;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import kd.bos.url.UrlService;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import kd.tmc.bei.common.helper.ReceiptPrintHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 动态表单插件
|
||||
* 单子回单查询-定时获取回单url保存
|
||||
*/
|
||||
public class ElecReceiptUrlSaveTask extends AbstractTask implements Plugin {
|
||||
|
||||
private final static Log logger = LogFactory.getLog(ElecReceiptUrlSaveTask.class);
|
||||
|
||||
@Override
|
||||
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
||||
QFilter qFilter = new QFilter("ismatch", QCP.equals, true);
|
||||
qFilter.and(new QFilter("shjh_url", QCP.equals, ""));
|
||||
//qFilter.and(new QFilter("billno", QCP.equals, "EBB-250428-000571"));
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load("bei_elecreceipt", "id,billno,billstatus,ismatch,receiptno,shjh_url", qFilter.toArray());
|
||||
if (load.length != 0) {
|
||||
for (DynamicObject dynamicObject : load) {
|
||||
Object pkValue = dynamicObject.getPkValue();
|
||||
DynamicObjectCollection fileReceiptColl = QueryServiceHelper.query("bei_elecreceipt", "id,billno,fileflag,uploadfilename,username", new QFilter[]{new QFilter("id", "in", pkValue)});
|
||||
List<String> FileBillList = (List) fileReceiptColl.stream().filter((e) -> {
|
||||
return e.getBoolean("fileflag") && StringUtils.isNotBlank("uploadfilename");
|
||||
}).map((e) -> {
|
||||
return e.getString("uploadfilename");
|
||||
}).collect(Collectors.toList());
|
||||
if (!EmptyUtil.isEmpty(FileBillList)) {
|
||||
Iterator var2 = FileBillList.iterator();
|
||||
while (var2.hasNext()) {
|
||||
String fileUrl = (String) var2.next();
|
||||
//String realPath = ReceiptPrintHelper.getRealUploadUrl(fileUrl);
|
||||
String downloadUrl = UrlService.getAttachmentDownloadUrl(fileUrl);
|
||||
logger.info("电子回单下载URL:"+downloadUrl);
|
||||
DynamicObject beiElecreceipt = BusinessDataServiceHelper.loadSingle(pkValue, "bei_elecreceipt");
|
||||
beiElecreceipt.set("shjh_url", downloadUrl);
|
||||
beiElecreceipt.set("shjh_url_tag", downloadUrl);
|
||||
SaveServiceHelper.update(beiElecreceipt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
package shjh.jhzj7.fi.fi.plugin.task;
|
||||
|
||||
import kd.bos.context.RequestContext;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.dataentity.entity.LocaleString;
|
||||
import kd.bos.dataentity.utils.StringUtils;
|
||||
import kd.bos.exception.KDException;
|
||||
import kd.bos.ext.fi.bei.util.EmptyUtil;
|
||||
import kd.bos.fileservice.FileService;
|
||||
import kd.bos.fileservice.FileServiceFactory;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.schedule.executor.AbstractTask;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.PrintServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import kd.bos.servicehelper.print.NotePrintService;
|
||||
import kd.bos.url.UrlService;
|
||||
import kd.bos.util.ExceptionUtils;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import kd.tmc.bei.common.helper.BeiHelper;
|
||||
import kd.tmc.bei.common.helper.ReceiptPrintHelper;
|
||||
import kd.tmc.fbp.common.ofd.OfdConvertUtil;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 后台任务插件
|
||||
* 电子对账单查询-获取回单地址保存在单据
|
||||
*/
|
||||
public class ElecStatementUrlSaveTask extends AbstractTask implements Plugin {
|
||||
|
||||
private final static Log logger = LogFactory.getLog(ElecStatementUrlSaveTask.class);
|
||||
|
||||
|
||||
@Override
|
||||
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load("bei_elecstatement", "id,billno,billstatus,isfile,shjh_url", new QFilter[]{new QFilter("billstatus", QCP.equals, "C")});
|
||||
if (load.length != 0) {
|
||||
ArrayList<Long> idList = new ArrayList<>();
|
||||
for (DynamicObject bill : load) {
|
||||
if (bill.getBoolean("isfile") && EmptyUtil.isEmpty(bill.getString("shjh_url"))) {
|
||||
idList.add((Long) bill.getPkValue());
|
||||
}
|
||||
}
|
||||
if (idList.size() != 0) {
|
||||
Map<Object, DynamicObject> beiElecstatement = BusinessDataServiceHelper.loadFromCache(idList.toArray(), "bei_elecstatement");
|
||||
// 处理每个单据
|
||||
for (DynamicObject bill : beiElecstatement.values()) {
|
||||
getPdfUrlFromFileBill(bill);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 从文件类型单据获取PDF URL
|
||||
*/
|
||||
private void getPdfUrlFromFileBill(DynamicObject bill) {
|
||||
|
||||
try {
|
||||
|
||||
DynamicObjectCollection urlEntry = bill.getDynamicObjectCollection("urlEntry");
|
||||
if (!EmptyUtil.isEmpty(urlEntry)) {
|
||||
for (DynamicObject urlInfo : urlEntry) {
|
||||
String downloadUrl = getRealUploadUrl(urlInfo); // 需要实现这个方法
|
||||
bill.set("shjh_url", downloadUrl);
|
||||
bill.set("shjh_url_tag", downloadUrl);
|
||||
SaveServiceHelper.update(bill);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("处理文件类型PDF失败", e);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private String getRealUploadUrl(DynamicObject statement) {
|
||||
String uploadFilName = statement.getString("e_fileservicepath");
|
||||
String downloadUrl = UrlService.getAttachmentDownloadUrl(uploadFilName);
|
||||
logger.info("获取文件下载路径:" +downloadUrl);
|
||||
return downloadUrl;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue