Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
陈绍鑫 2025-05-23 11:23:58 +08:00
commit 687bf7277c
5 changed files with 114 additions and 72 deletions

View File

@ -22,7 +22,7 @@ public class BalanceExpansion implements IFillBankBalance {
JSONObject jsonObject = JSON.parseObject(balanceString);
logger.info("bankBalance数据{}balanceString数据{}", bankBalance, jsonObject);
Object balance = jsonObject.get("depositBalance");
if (balance != null) {
if (balance != null && !"".equals(balance)) {
bankBalance.set("shkd_depositbalance", new BigDecimal(String.valueOf(balance)));
} else {
bankBalance.set("shkd_depositbalance", BigDecimal.ZERO);

View File

@ -1,5 +1,6 @@
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.webapi.sdk.K3CloudApi;
@ -175,14 +176,12 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
break;
/**
* 推送星空电子回单
* 星空推送不会有影响吧
*/
case "bei_xkfile":
K3CloudApi k3CloudApi = new K3CloudApi();
ArrayList<DynamicObject> paymentObjects = new ArrayList<>(); //所有存在电子回单的付款单
ArrayList<DynamicObject> receivableObjects = new ArrayList<>(); //所有存在电子回单的收款单
ArrayList<String> receiptNos = new ArrayList<>();
ArrayList<Long> orgIds = new ArrayList<Long>();
ArrayList<DynamicObject> paymentObjects = new ArrayList<>(); //所有符合条件存在电子回单的付款单
ArrayList<DynamicObject> receivableObjects = new ArrayList<>(); //所有符合条件存在电子回单的收款单
ArrayList<Long> orgIds = new ArrayList<>();
orgIds.add(2122671180270829568L);//1
orgIds.add(2122671723777131520L);//2
orgIds.add(2122671728936125440L);//3
@ -216,39 +215,58 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
if (!details.isEmpty()) {
// 交易明细查询的电子回单关联标记字段
if (details.get(0).get("receiptno") != null) {
paymentObjects.add(dynamicObject);// 付款处理单据收集
/**
* 1第一步 通过查询到的符合条件的收款或者付款单单据编号查到对应星空的对应单据的单据ID和单据编码
* 2推送电子回单至星空对应单据
*/
//
DynamicObject[] objects = BusinessDataServiceHelper.load("shkd_apimapping", "id,billno," +
"shkd_name,shkd_sourcenumber,shkd_domainname,shkd_appkey,shkd_appsecret,shkd_token,shkd_url,shkd_bodytype," +
"shkd_sourcebill,shkd_targetsystem,entryentity,entryentity.shkd_tarfield,entryentity.shkd_tartier," +
"entryentity.shkd_tartype,entryentity.shkd_parentfield,entryentity.shkd_soufield,entryentity.shkd_defaultdata," +
"entryentity.shkd_required,entryentity.shkd_remarks,shkd_submiturl,shkd_xkusername,shkd_xkappid,shkd_xkacctid," +
"shkd_xkappsec,shkd_xkserverurl",
new QFilter("shkd_targetsystem", QCP.equals, "XK").toArray());
String billNumber = dynamicObject.getString("billno");
HashMap<String, Object> resultMap = getBillObject(objects[0], dynamicObject.getDataEntityType().getName(), billNumber);
if ((boolean) resultMap.get("result")) {
//
DynamicObject[] dynamicObjects1 = BusinessDataServiceHelper.load("t_bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, details.get(0).getString("receiptno")).toArray());
DynamicObject dynamicObjectObj = BusinessDataServiceHelper.loadSingle(dynamicObjects1[0].getPkValue(), dynamicObjects1[0].getDynamicObjectType().getName());
IFormView viewByDynamicObj = createViewByDynamicObj(dynamicObjectObj);
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, dynamicObject.getPkValue())});
String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList);
Path path = Paths.get(dynamicObject.getString("filepath"));
String upfileName = path.getFileName().toString();
logger.info("电子回单查询 → 电子回单附件推送接口 → 获取pdf地址{}", pdfUrl);
DynamicObject[] dynamicObjects1 = BusinessDataServiceHelper.load("t_bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, details.get(0).getString("receiptno")).toArray());
DynamicObject dynamicObjectObj = BusinessDataServiceHelper.loadSingle(dynamicObjects1[0].getPkValue(), dynamicObjects1[0].getDynamicObjectType().getName());
IFormView viewByDynamicObj = createViewByDynamicObj(dynamicObjectObj);
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, dynamicObject.getPkValue())});
String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList);
Path path = Paths.get(dynamicObject.getString("filepath"));
String upfileName = path.getFileName().toString();
logger.info("电子回单查询 → 电子回单附件推送接口 → 获取pdf地址{}", pdfUrl);
JSONObject jsonObject = new JSONObject();
jsonObject.put("FileName", upfileName);// 文件名
jsonObject.put("FormId", "AP_PAYBILL");// 表单id付款单AP_PAYBILL
jsonObject.put("IsLast", true);// 是否最后一次上传
jsonObject.put("InterId", "单据内码");// 单据内码
jsonObject.put("BillNO", dynamicObject.getString("billno"));// 单据编码
jsonObject.put("AliasFileName", upfileName);// 附件别名
jsonObject.put("SendByte", attachmentBase64(pdfUrl));// 文件字节数组转base64后的字符串
JSONObject jsonObject = new JSONObject();
jsonObject.put("FileName", upfileName);// 文件名
jsonObject.put("FormId", "AP_PAYBILL");// 表单id付款单AP_PAYBILL
jsonObject.put("IsLast", true);// 是否最后一次上传
jsonObject.put("InterId", "单据内码");// 单据内码
jsonObject.put("BillNO", dynamicObject.getString("billno"));// 单据编码
jsonObject.put("AliasFileName", upfileName);// 附件别名
jsonObject.put("SendByte", attachmentBase64(pdfUrl));// 文件字节数组转base64后的字符串
String uploadAttachmentResult = null;
try {
uploadAttachmentResult = k3CloudApi.attachmentUpload(jsonObject.toString());
logger.info("付款处理 → 电子回单推送星空,单据编码:"+ dynamicObject.getString("billno") +"\n附件上传结果" + uploadAttachmentResult);
} catch (Exception e) {
throw new RuntimeException(e);
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", "已推送");
paymentObjects.add(dynamicObject);// 付款处理单据收集
logger.info("付款处理 → 电子回单推送星空,单据编码:"+ dynamicObject.getString("billno") +"\n附件上传结果" + uploadAttachmentResult);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
}
@ -278,38 +296,62 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
* 1第一步 通过查询到的符合条件的收款或者付款单单据编号查到对应星空的对应单据的单据ID和单据编码
* 2推送电子回单至星空对应单据
*/
DynamicObject[] dynamicObjects1 = BusinessDataServiceHelper.load("t_bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, details.get(0).getString("receiptno")).toArray());
DynamicObject dynamicObjectObj = BusinessDataServiceHelper.loadSingle(dynamicObjects1[0].getPkValue(), dynamicObjects1[0].getDynamicObjectType().getName());
IFormView viewByDynamicObj = createViewByDynamicObj(dynamicObjectObj);
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, dynamicObject.getPkValue())});
String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList);
Path path = Paths.get(dynamicObject.getString("filepath"));
String upfileName = path.getFileName().toString();
logger.info("电子回单查询 → 电子回单附件推送接口 → 获取pdf地址{}", pdfUrl);
//
DynamicObject[] objects = BusinessDataServiceHelper.load("shkd_apimapping", "id,billno," +
"shkd_name,shkd_sourcenumber,shkd_domainname,shkd_appkey,shkd_appsecret,shkd_token,shkd_url,shkd_bodytype," +
"shkd_sourcebill,shkd_targetsystem,entryentity,entryentity.shkd_tarfield,entryentity.shkd_tartier," +
"entryentity.shkd_tartype,entryentity.shkd_parentfield,entryentity.shkd_soufield,entryentity.shkd_defaultdata," +
"entryentity.shkd_required,entryentity.shkd_remarks,shkd_submiturl,shkd_xkusername,shkd_xkappid,shkd_xkacctid," +
"shkd_xkappsec,shkd_xkserverurl",
new QFilter("shkd_targetsystem", QCP.equals, "XK").toArray());
String billNumber = dynamicObject.getString("billno");
HashMap<String, Object> resultMap = getBillObject(objects[0], dynamicObject.getDataEntityType().getName(), billNumber);
if ((boolean) resultMap.get("result")) {
//
DynamicObject[] dynamicObjects1 = BusinessDataServiceHelper.load("t_bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, details.get(0).getString("receiptno")).toArray());
DynamicObject dynamicObjectObj = BusinessDataServiceHelper.loadSingle(dynamicObjects1[0].getPkValue(), dynamicObjects1[0].getDynamicObjectType().getName());
IFormView viewByDynamicObj = createViewByDynamicObj(dynamicObjectObj);
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, dynamicObject.getPkValue())});
String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList);
Path path = Paths.get(dynamicObject.getString("filepath"));
String upfileName = path.getFileName().toString();
logger.info("电子回单查询 → 电子回单附件推送接口 → 获取pdf地址{}", pdfUrl);
JSONObject jsonObject = new JSONObject();
jsonObject.put("FileName", upfileName);// 文件名
jsonObject.put("FormId", "AP_PAYBILL");// 表单id收款单
jsonObject.put("IsLast", true);// 是否最后一次上传
jsonObject.put("InterId", "单据内码");// 单据内码
jsonObject.put("BillNO", dynamicObject.getString("billno"));// 单据编码
jsonObject.put("AliasFileName", upfileName);// 附件别名
jsonObject.put("SendByte", attachmentBase64(pdfUrl));// 文件字节数组转base64后的字符串
JSONObject jsonObject = new JSONObject();
jsonObject.put("FileName", upfileName);// 文件名
jsonObject.put("FormId", "AP_PAYBILL");// 表单id收款单
jsonObject.put("IsLast", true);// 是否最后一次上传
jsonObject.put("InterId", "单据内码");// 单据内码
jsonObject.put("BillNO", dynamicObject.getString("billno"));// 单据编码
jsonObject.put("AliasFileName", upfileName);// 附件别名
jsonObject.put("SendByte", attachmentBase64(pdfUrl));// 文件字节数组转base64后的字符串
String uploadAttachmentResult = null;
try {
uploadAttachmentResult = k3CloudApi.attachmentUpload(jsonObject.toString());
logger.info("收款处理 → 电子回单推送星空,单据编码:"+ dynamicObject.getString("billno") +"\n附件上传结果" + uploadAttachmentResult);
} catch (Exception e) {
throw new RuntimeException(e);
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", "已推送");
receivableObjects.add(dynamicObject);// 收款处理单据收集
logger.info("收款处理 → 电子回单推送星空,单据编码:"+ dynamicObject.getString("billno") +"\n附件上传结果" + uploadAttachmentResult);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
}
}
});
SaveServiceHelper.save(paymentObjects.toArray(new DynamicObject[0]));
SaveServiceHelper.save(receivableObjects.toArray(new DynamicObject[0]));
break;
default:
}

View File

@ -4,16 +4,10 @@ import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.control.Control;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.form.operate.EntryGridOperate;
import kd.bos.form.operate.formop.NewEntry;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.sdk.plugin.Plugin;
import java.util.EventObject;
/**
* 设置 债券发行计划界面 发行人账号非必填
* 单据界面插件

View File

@ -36,8 +36,9 @@ public class LoancontractF7Plugin extends AbstractBillPlugIn implements Plugin,
e_underwriter.addBeforeF7SelectListener(this);
//监听占用注册额度F7数据选择
BasedataEdit shkd_occupybondlimit;
shkd_occupybondlimit = view.getControl("shkd_occupybondlimit");
if(shkd_occupybondlimit == null){
try{
shkd_occupybondlimit = view.getControl("shkd_occupybondlimit");
}catch (Exception ept){
shkd_occupybondlimit = view.getControl("occupybondlimit");
}
shkd_occupybondlimit.addBeforeF7SelectListener(this);
@ -132,13 +133,18 @@ public class LoancontractF7Plugin extends AbstractBillPlugIn implements Plugin,
}
if("ratingagency".equals(name)){
//注册额度
DynamicObject occupybondlimit = (DynamicObject)this.getModel().getValue("shkd_occupybondlimit");
if(occupybondlimit == null){
this.getView().showTipNotification("请先选择占用注册额度。");
evt.setCancel(true);
return;
//债券发行occupybondlimit 债券发行计划shkd_occupybondlimit
try {
shkd_bondlimit= (DynamicObject)this.getModel().getValue("occupybondlimit");
}catch(Exception e){
shkd_bondlimit= (DynamicObject)this.getModel().getValue("shkd_occupybondlimit");
if(shkd_bondlimit == null){
evt.setCancel(true);
this.getView().showTipNotification("请先选择占用注册额度。");
return;
}
}
Long occupybondlimitId = (Long) occupybondlimit.getPkValue();
Long occupybondlimitId = (Long) shkd_bondlimit.getPkValue();
//找到注册额度中的招标遴选ID
DynamicObject intermediaryselectID = BusinessDataServiceHelper.loadSingle(occupybondlimitId,"bdim_bond_limit", "shkd_intermediaryselect");
QFilter qFilter = new QFilter("billno", QCP.equals, intermediaryselectID.getString("shkd_intermediaryselect"));