parent
8530ae9da8
commit
f7c4bc11a3
|
@ -328,7 +328,7 @@ public class ApiService {
|
||||||
|
|
||||||
logger.info("付款处理(支付结果) → BIP推送接口 → 成功\n成功单据编号:{}\n成功请求体:{}\n推送成功接口返回数据:{}",
|
logger.info("付款处理(支付结果) → BIP推送接口 → 成功\n成功单据编号:{}\n成功请求体:{}\n推送成功接口返回数据:{}",
|
||||||
dynamic.getString("billno"), saveRequestBody, saveResponseBody);
|
dynamic.getString("billno"), saveRequestBody, saveResponseBody);
|
||||||
result = "推送 → 付款处理(支付结果) → 成功,返回信息:";
|
result = "推送 → 付款处理(支付结果) → 成功,返回信息:" + JSON.parseObject(saveResponseBody).getString("message");
|
||||||
} else {
|
} else {
|
||||||
// LogService.newLog("ERROR", "付款单(结算结果)", dynamic.getString("billno"), "付款处理(支付结果) → BIP推送接口 → 失败", "请求数据:" + saveRequestBody + "\n推送失败接口返回数据:" + saveResponseBody);
|
// LogService.newLog("ERROR", "付款单(结算结果)", dynamic.getString("billno"), "付款处理(支付结果) → BIP推送接口 → 失败", "请求数据:" + saveRequestBody + "\n推送失败接口返回数据:" + saveResponseBody);
|
||||||
|
|
||||||
|
@ -1152,7 +1152,7 @@ public class ApiService {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 推送星空单据附件
|
* 推送星空单据附件(测试推送附件 → 此附件为API映射元数据的单据附件)
|
||||||
* @param dataEntity API映射元数据对象
|
* @param dataEntity API映射元数据对象
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@ -1225,4 +1225,82 @@ public class ApiService {
|
||||||
}
|
}
|
||||||
return attachments;
|
return attachments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取付款单、收款单、上划单、下拨单关联的回单附件地址
|
||||||
|
*
|
||||||
|
* @param receiptNo 回单编号
|
||||||
|
* @param resultMap 回单信息
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static void getReceipt(String receiptNo, Map<String, Object> resultMap) {
|
||||||
|
DynamicObject[] bei_elecreceipts = BusinessDataServiceHelper.load("bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, receiptNo).toArray());
|
||||||
|
DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceipts[0].getPkValue(), bei_elecreceipts[0].getDynamicObjectType().getName());
|
||||||
|
IFormView viewByDynamicObj = createViewByDynamicObj(bei_elecreceipt);
|
||||||
|
List<String> errMsgList = new ArrayList<>();
|
||||||
|
DynamicObjectCollection receipts = QueryServiceHelper.query("bei_elecreceipt", "id,bank," +
|
||||||
|
"fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," +
|
||||||
|
"bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, bei_elecreceipt.getPkValue())});
|
||||||
|
String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList);
|
||||||
|
|
||||||
|
Path path = Paths.get(bei_elecreceipt.getString("filepath"));
|
||||||
|
String upfileName = path.getFileName().toString();
|
||||||
|
resultMap.put("pdfUrl", pdfUrl);
|
||||||
|
resultMap.put("fileName", upfileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推送星空回单附件
|
||||||
|
*
|
||||||
|
* @param dynamicObject 星瀚单据
|
||||||
|
* @param pdfUrl 星瀚回单附件地址
|
||||||
|
* @param fileName 星瀚回单附件名称
|
||||||
|
* @param resultMap 查询星空单据结果(编码,id)
|
||||||
|
* @param k3CloudApi 星瀚接口访问实例对象
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String pushXkAttachment(DynamicObject dynamicObject, String pdfUrl, String fileName, Map<String, Object> resultMap, K3CloudApi k3CloudApi) {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("FileName", fileName);// 文件名
|
||||||
|
|
||||||
|
String entityName = dynamicObject.getDataEntityType().getName();
|
||||||
|
if ("cas_paybill".equals(entityName)) {
|
||||||
|
jsonObject.put("FormId", "AP_PAYBILL");// 表单id(付款处理 → 付款单:AP_PAYBILL)
|
||||||
|
} else if ("cas_recbill".equals(entityName)) {
|
||||||
|
jsonObject.put("FormId", "AR_RECEIVEBILL");// 表单id(收款处理 → 收款单:AR_RECEIVEBILL)
|
||||||
|
} else if ("fca_transupbill".equals(entityName)) {
|
||||||
|
jsonObject.put("FormId", "AR_RECEIVEBILL");// 表单id(上划处理 → 收款单:AR_RECEIVEBILL)
|
||||||
|
} else if ("fca_transdownbil".equals(entityName)) {
|
||||||
|
jsonObject.put("FormId", "AP_PAYBILL");// 表单id(下拨处理 → 付款单:AP_PAYBILL)
|
||||||
|
}
|
||||||
|
|
||||||
|
jsonObject.put("IsLast", true);// 是否最后一次上传
|
||||||
|
jsonObject.put("InterId", resultMap.get("billId"));// 单据内码
|
||||||
|
jsonObject.put("BillNO", resultMap.get("billNumber"));// 单据编码
|
||||||
|
jsonObject.put("AliasFileName", fileName);// 附件别名
|
||||||
|
jsonObject.put("SendByte", attachmentBase64(pdfUrl));// 文件字节数组转base64后的字符串
|
||||||
|
|
||||||
|
String uploadAttachmentResult;
|
||||||
|
try {
|
||||||
|
uploadAttachmentResult = k3CloudApi.attachmentUpload(jsonObject.toString());
|
||||||
|
JSONObject resultJson = JSON.parseObject(uploadAttachmentResult);
|
||||||
|
JSONObject Result = resultJson.getJSONObject("Result");
|
||||||
|
JSONObject ResponseStatus = Result.getJSONObject("ResponseStatus");
|
||||||
|
Boolean isSuccess = ResponseStatus.getBoolean("IsSuccess");
|
||||||
|
if (isSuccess) {
|
||||||
|
logger.info(entityName + " → 电子回单推送星空成功,单据编码:" + dynamicObject.getString("billno") + "\n附件上传结果:" + uploadAttachmentResult);
|
||||||
|
return entityName + " → 电子回单推送星空成功,单据编码:" + dynamicObject.getString("billno") +
|
||||||
|
" → 附件上传结果:" + uploadAttachmentResult;
|
||||||
|
} else {
|
||||||
|
logger.info(entityName + " → 电子回单推送星空失败,单据编码:" + dynamicObject.getString("billno") + "\n附件上传结果:" + uploadAttachmentResult);
|
||||||
|
return entityName + " → 电子回单推送星空失败,单据编码:" + dynamicObject.getString("billno") +
|
||||||
|
" → 附件上传结果:" + uploadAttachmentResult;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.info(entityName + " → 电子回单推送星空失败,单据编码:" + dynamicObject.getString("billno") + "\nk3CloudApi.attachmentUpload(jsonObject.toString())报错:" + e.getMessage());
|
||||||
|
return entityName + " → 电子回单推送星空失败,单据编码:" + dynamicObject.getString("billno") +
|
||||||
|
" → k3CloudApi.attachmentUpload(jsonObject.toString())报错:" + e.getMessage();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -3,7 +3,6 @@ package shkd.sys.sys.plugin.form;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.kingdee.bos.webapi.entity.IdentifyInfo;
|
|
||||||
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
@ -211,46 +210,38 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询上划单的回单编号
|
// 补偿推送星空电子回单
|
||||||
if ("shkd_upbill".equals(itemKey)) {
|
// 补偿方案(推送BIP电子回单)
|
||||||
|
if ("shkd_compensatexk".equals(itemKey)) {
|
||||||
|
// 推送单据类型
|
||||||
|
String billMark = dataEntity.getDynamicObject("shkd_sourcebill").getString("number");
|
||||||
|
|
||||||
|
// 推送单据编码
|
||||||
String shkdSourcenumber = dataEntity.getString("shkd_sourcenumber");
|
String shkdSourcenumber = dataEntity.getString("shkd_sourcenumber");
|
||||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("fca_transupbill", "id,billno,name", new QFilter("billno", QCP.equals, shkdSourcenumber).toArray());
|
|
||||||
|
// 查询单据对象
|
||||||
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(billMark, "id,billno,name", new QFilter("billno", QCP.equals, shkdSourcenumber).toArray());
|
||||||
|
|
||||||
|
// 获取k3cloudapi
|
||||||
|
K3CloudApi k3CloudApi = getK3CloudApi(dataEntity);
|
||||||
|
|
||||||
|
// 获取关联的回单编号
|
||||||
List<String> receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName());
|
List<String> receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName());
|
||||||
logger.info("上划单回单编号:{}", receiptNos);//电子回单号
|
logger.info(billMark + " → 关联回单编号:{}", receiptNos);//电子回单号
|
||||||
|
if (receiptNos.isEmpty()) {
|
||||||
DynamicObject[] bei_elecreceipts = BusinessDataServiceHelper.load("bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, receiptNos.get(0)).toArray());
|
this.getView().showTipNotification("未查询到关联回单");
|
||||||
DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceipts[0].getPkValue(), bei_elecreceipts[0].getDynamicObjectType().getName());
|
} else {
|
||||||
IFormView viewByDynamicObj = createViewByDynamicObj(bei_elecreceipt);
|
HashMap<String, Object> resultMap = getSKPushXKBill(dataEntity, billMark, dynamicObject.getString("billno"));
|
||||||
List<String> errMsgList = new ArrayList<>();
|
Map<String, Object> receiptResult = new HashMap<>();
|
||||||
DynamicObjectCollection receipts = QueryServiceHelper.query("bei_elecreceipt", "id,bank," +
|
// 获取回单
|
||||||
"fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," +
|
getReceipt(receiptNos.get(0), receiptResult);
|
||||||
"bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, bei_elecreceipt.getPkValue())});
|
String pdfUrl = receiptResult.get("pdfUrl").toString();
|
||||||
String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList);
|
String fileName = receiptResult.get("fileName").toString();
|
||||||
|
logger.info(billMark + ":{},电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", dynamicObject.getString("billno"), pdfUrl);
|
||||||
Path path = Paths.get(bei_elecreceipt.getString("filepath"));
|
// 推送星空附件
|
||||||
String upfileName = path.getFileName().toString();
|
String result = pushXkAttachment(dynamicObject, pdfUrl, fileName, resultMap, k3CloudApi);
|
||||||
this.getView().showTipNotification("上划单回单编号:" + receiptNos.get(0) + ",电子回单查询 → 获取pdf地址:" + pdfUrl);
|
this.getView().showTipNotification(result);
|
||||||
}
|
}
|
||||||
// 查询下拨单的回单编号
|
|
||||||
if ("shkd_dowbill".equals(itemKey)) {
|
|
||||||
String shkdSourcenumber = dataEntity.getString("shkd_sourcenumber");
|
|
||||||
// 这个方法可以查询(付款单、收款单、上划单、下拨单关联的回单编号)
|
|
||||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("fca_transdownbill", "id,billno,name", new QFilter("billno", QCP.equals, shkdSourcenumber).toArray());
|
|
||||||
List<String> receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName());
|
|
||||||
logger.info("下拨单回单编号:{}", receiptNos);
|
|
||||||
|
|
||||||
DynamicObject[] bei_elecreceipts = BusinessDataServiceHelper.load("bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, receiptNos.get(0)).toArray());
|
|
||||||
DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceipts[0].getPkValue(), bei_elecreceipts[0].getDynamicObjectType().getName());
|
|
||||||
IFormView viewByDynamicObj = createViewByDynamicObj(bei_elecreceipt);
|
|
||||||
List<String> errMsgList = new ArrayList<>();
|
|
||||||
DynamicObjectCollection receipts = QueryServiceHelper.query("bei_elecreceipt", "id,bank," +
|
|
||||||
"fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," +
|
|
||||||
"bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, bei_elecreceipt.getPkValue())});
|
|
||||||
String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList);
|
|
||||||
|
|
||||||
Path path = Paths.get(bei_elecreceipt.getString("filepath"));
|
|
||||||
String upfileName = path.getFileName().toString();
|
|
||||||
this.getView().showTipNotification("上划单回单编号:" + receiptNos.get(0) + ",电子回单查询 → 获取pdf地址:" + pdfUrl);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,31 +1,24 @@
|
||||||
package shkd.sys.sys.plugin.task;
|
package shkd.sys.sys.plugin.task;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.kingdee.bos.qing.util.DateUtils;
|
import com.kingdee.bos.qing.util.DateUtils;
|
||||||
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
||||||
import kd.bos.context.RequestContext;
|
import kd.bos.context.RequestContext;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
import kd.bos.exception.KDException;
|
import kd.bos.exception.KDException;
|
||||||
import kd.bos.form.IFormView;
|
|
||||||
import kd.bos.logging.Log;
|
import kd.bos.logging.Log;
|
||||||
import kd.bos.logging.LogFactory;
|
import kd.bos.logging.LogFactory;
|
||||||
import kd.bos.orm.query.QCP;
|
import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.schedule.executor.AbstractTask;
|
import kd.bos.schedule.executor.AbstractTask;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
import kd.bos.servicehelper.QueryServiceHelper;
|
|
||||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
import kd.tmc.fca.common.helper.HandLinkBillHelper;
|
import kd.tmc.fca.common.helper.HandLinkBillHelper;
|
||||||
import shkd.sys.sys.mservice.ApiService;
|
import shkd.sys.sys.mservice.ApiService;
|
||||||
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.Month;
|
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.temporal.TemporalAdjusters;
|
import java.time.temporal.TemporalAdjusters;
|
||||||
|
@ -308,7 +301,11 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
String fileName = receiptResult.get("fileName").toString();
|
String fileName = receiptResult.get("fileName").toString();
|
||||||
logger.info("付款单:{},电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", dynamicObject.getString("billno"), pdfUrl);
|
logger.info("付款单:{},电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", dynamicObject.getString("billno"), pdfUrl);
|
||||||
// 推送星空附件
|
// 推送星空附件
|
||||||
pushXkAttachment(dynamicObject, pdfUrl, fileName, resultMap, k3CloudApi);
|
String result = pushXkAttachment(dynamicObject, pdfUrl, fileName, resultMap, k3CloudApi);
|
||||||
|
if (result.contains("推送星空成功")) {
|
||||||
|
dynamicObject.set("shkd_xkfilestatus", "已推送");
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -343,7 +340,11 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
String fileName = receiptResult.get("fileName").toString();
|
String fileName = receiptResult.get("fileName").toString();
|
||||||
logger.info("收款单:{},电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", dynamicObject.getString("billno"), pdfUrl);
|
logger.info("收款单:{},电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", dynamicObject.getString("billno"), pdfUrl);
|
||||||
// 推送星空附件
|
// 推送星空附件
|
||||||
pushXkAttachment(dynamicObject, pdfUrl, fileName, resultMap, k3CloudApi);
|
String result = pushXkAttachment(dynamicObject, pdfUrl, fileName, resultMap, k3CloudApi);
|
||||||
|
if (result.contains("推送星空成功")) {
|
||||||
|
dynamicObject.set("shkd_xkfilestatus", "已推送");
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -375,7 +376,11 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
String fileName = receiptResult.get("fileName").toString();
|
String fileName = receiptResult.get("fileName").toString();
|
||||||
logger.info("上划处理:{},电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", dynamicObject.getString("billno"), pdfUrl);
|
logger.info("上划处理:{},电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", dynamicObject.getString("billno"), pdfUrl);
|
||||||
// 推送星空附件
|
// 推送星空附件
|
||||||
pushXkAttachment(dynamicObject, pdfUrl, fileName, resultMap, k3CloudApi);
|
String result = pushXkAttachment(dynamicObject, pdfUrl, fileName, resultMap, k3CloudApi);
|
||||||
|
if (result.contains("推送星空成功")) {
|
||||||
|
dynamicObject.set("shkd_xkfilestatus", "已推送");
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -408,7 +413,11 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
String fileName = receiptResult.get("fileName").toString();
|
String fileName = receiptResult.get("fileName").toString();
|
||||||
logger.info("下拨处理:{},电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", dynamicObject.getString("billno"), pdfUrl);
|
logger.info("下拨处理:{},电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", dynamicObject.getString("billno"), pdfUrl);
|
||||||
// 推送星空附件
|
// 推送星空附件
|
||||||
pushXkAttachment(dynamicObject, pdfUrl, fileName, resultMap, k3CloudApi);
|
String result = pushXkAttachment(dynamicObject, pdfUrl, fileName, resultMap, k3CloudApi);
|
||||||
|
if (result.contains("推送星空成功")) {
|
||||||
|
dynamicObject.set("shkd_xkfilestatus", "已推送");
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -473,76 +482,4 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
return Date.from(firstDayOfMonth.atStartOfDay(DEFAULT_ZONE).toInstant());
|
return Date.from(firstDayOfMonth.atStartOfDay(DEFAULT_ZONE).toInstant());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取付款单、收款单、上划单、下拨单关联的回单附件地址
|
|
||||||
*
|
|
||||||
* @param receiptNo 回单编号
|
|
||||||
* @param resultMap 回单信息
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private static void getReceipt(String receiptNo, Map<String, Object> resultMap) {
|
|
||||||
DynamicObject[] bei_elecreceipts = BusinessDataServiceHelper.load("bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, receiptNo).toArray());
|
|
||||||
DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceipts[0].getPkValue(), bei_elecreceipts[0].getDynamicObjectType().getName());
|
|
||||||
IFormView viewByDynamicObj = createViewByDynamicObj(bei_elecreceipt);
|
|
||||||
List<String> errMsgList = new ArrayList<>();
|
|
||||||
DynamicObjectCollection receipts = QueryServiceHelper.query("bei_elecreceipt", "id,bank," +
|
|
||||||
"fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," +
|
|
||||||
"bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, bei_elecreceipt.getPkValue())});
|
|
||||||
String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList);
|
|
||||||
|
|
||||||
Path path = Paths.get(bei_elecreceipt.getString("filepath"));
|
|
||||||
String upfileName = path.getFileName().toString();
|
|
||||||
resultMap.put("pdfUrl", pdfUrl);
|
|
||||||
resultMap.put("fileName", upfileName);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 推送星空回单附件
|
|
||||||
*
|
|
||||||
* @param dynamicObject 星瀚单据
|
|
||||||
* @param pdfUrl 星瀚回单附件地址
|
|
||||||
* @param fileName 星瀚回单附件名称
|
|
||||||
* @param resultMap 查询星空单据结果(编码,id)
|
|
||||||
* @param k3CloudApi 星瀚接口访问实例对象
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private static void pushXkAttachment(DynamicObject dynamicObject, String pdfUrl, String fileName, Map<String, Object> resultMap, K3CloudApi k3CloudApi) {
|
|
||||||
JSONObject jsonObject = new JSONObject();
|
|
||||||
jsonObject.put("FileName", fileName);// 文件名
|
|
||||||
|
|
||||||
String entityName = dynamicObject.getDataEntityType().getName();
|
|
||||||
if ("cas_paybill".equals(entityName)) {
|
|
||||||
jsonObject.put("FormId", "AP_PAYBILL");// 表单id(付款处理 → 付款单:AP_PAYBILL)
|
|
||||||
} else if ("cas_recbill".equals(entityName)) {
|
|
||||||
jsonObject.put("FormId", "AR_RECEIVEBILL");// 表单id(收款处理 → 收款单:AR_RECEIVEBILL)
|
|
||||||
} else if ("fca_transupbill".equals(entityName)) {
|
|
||||||
jsonObject.put("FormId", "AR_RECEIVEBILL");// 表单id(上划处理 → 收款单:AR_RECEIVEBILL)
|
|
||||||
} else if ("fca_transdownbil".equals(entityName)) {
|
|
||||||
jsonObject.put("FormId", "AP_PAYBILL");// 表单id(下拨处理 → 付款单:AP_PAYBILL)
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonObject.put("IsLast", true);// 是否最后一次上传
|
|
||||||
jsonObject.put("InterId", resultMap.get("billId"));// 单据内码
|
|
||||||
jsonObject.put("BillNO", resultMap.get("billNumber"));// 单据编码
|
|
||||||
jsonObject.put("AliasFileName", fileName);// 附件别名
|
|
||||||
jsonObject.put("SendByte", attachmentBase64(pdfUrl));// 文件字节数组转base64后的字符串
|
|
||||||
|
|
||||||
String uploadAttachmentResult;
|
|
||||||
try {
|
|
||||||
uploadAttachmentResult = k3CloudApi.attachmentUpload(jsonObject.toString());
|
|
||||||
JSONObject resultJson = JSON.parseObject(uploadAttachmentResult);
|
|
||||||
JSONObject Result = resultJson.getJSONObject("Result");
|
|
||||||
JSONObject ResponseStatus = Result.getJSONObject("ResponseStatus");
|
|
||||||
Boolean isSuccess = ResponseStatus.getBoolean("IsSuccess");
|
|
||||||
if (isSuccess) {
|
|
||||||
dynamicObject.set("shkd_xkfilestatus", "已推送");
|
|
||||||
logger.info(entityName + " → 电子回单推送星空,单据编码:" + dynamicObject.getString("billno") + "\n附件上传结果:" + uploadAttachmentResult);
|
|
||||||
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue