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

This commit is contained in:
fang 2025-06-20 18:01:44 +08:00
commit 950f2f595d
9 changed files with 263 additions and 50 deletions

View File

@ -315,7 +315,8 @@ public class ApiService {
case "https://10.1.9.43/iuap-api-auth/yonbip/ctm/api/settlement/feedback":
saveResponseBody = pushBill(token, saveUrl, saveRequestBody);
jsonObject = JSON.parseObject(saveResponseBody);
if (jsonObject.getJSONObject("data").getIntValue("successnum") > 0) {
code = jsonObject.getString("code");
if ("200".equals(code)) {
if ("TS".equals(dynamic.getString("bankpaystatus"))) {
dynamic.set("shkd_pushstatus", "已结算");
} else {

View File

@ -185,12 +185,15 @@ public class PlanningService {
* @return
*/
public static String queryPlanning(String reportPeriod, String reportOrg) {
logger.info("查询计划编制入参reportPeriod={},reportOrg={}", reportPeriod, reportOrg);
DynamicObject[] fpm_member1 = BusinessDataServiceHelper.load("fpm_member", "id,name,number", new QFilter("name", QCP.equals, reportPeriod).toArray());
if (fpm_member1 == null || fpm_member1.length == 0) {
logger.info("查询编报期间fpm_member1 == null || fpm_member1.length == 0");
return null;
}
DynamicObject[] fpm_member2 = BusinessDataServiceHelper.load("fpm_member", "id,name,number", new QFilter("name", QCP.equals, reportOrg).toArray());
if (fpm_member2 == null || fpm_member2.length == 0) {
logger.info("查询编报主体fpm_member2 == null || fpm_member2.length == 0");
return null;
}
ReportDataQParam reportDataQParam = new ReportDataQParam();

View File

@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
@ -24,13 +26,30 @@ public class BalanceExpansion implements IFillBankBalance {
@Override
public void fillExtBankBalance(DynamicObject bankBalance, String balanceString) {
JSONObject jsonObject = JSON.parseObject(balanceString);
logger.info("bankBalance数据{}balanceString数据{}", bankBalance, jsonObject);
Object balance = jsonObject.get("depositBalance");
BigDecimal depositBalance = BigDecimal.ZERO;
Object balanceDateTimeObj = jsonObject.get("balanceDateTime");
if (balanceDateTimeObj != null && !"".equals(balanceDateTimeObj.toString())) {
String balanceDateTimeStr = balanceDateTimeObj.toString();// 格式为 "yyyy-MM-dd'T'HH:mm:ss"2025-06-09T14:06:03.064
LocalDateTime balanceDateTime;
try {
balanceDateTime = LocalDateTime.parse(balanceDateTimeStr, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
} catch (Exception e) {
logger.warn("balanceString数据{}\n时间格式错误无法解析{}", balanceString, e);
return;
}
LocalDateTime now = LocalDateTime.now();
if (balance != null && !"".equals(balance.toString())) {
depositBalance = new BigDecimal(balance.toString());
if (now.toLocalDate().isEqual(balanceDateTime.toLocalDate())) {
// 当前日期与 balanceDateTime 是同一天
// 执行相应的逻辑
logger.info("bankBalance数据{}balanceString数据{}", bankBalance, jsonObject);
Object balance = jsonObject.get("depositBalance");
BigDecimal depositBalance = BigDecimal.ZERO;
if (balance != null && !"".equals(balance.toString())) {
depositBalance = new BigDecimal(balance.toString());
}
bankBalance.set("shkd_depositbalance", depositBalance);
}
}
bankBalance.set("shkd_depositbalance", depositBalance);
}
}

View File

@ -119,8 +119,8 @@ public class InterfacePracticePlug extends AbstractListPlugin implements Seriali
*/
@ApiPostMapping(value = "planAdjustment_query", desc = "计划编制查询")
public CustomApiResult<@ApiResponseBody("返回参数") String> planAdjustment_query(@ApiParam(value = "查询字段值") HashMap<String, Object> hashMap) {
String reportPeriodName = hashMap.get("reportPeriodName").toString();// 编报期间ID
String reportOrgName = hashMap.get("reportOrgName").toString();// 编报主体ID
String reportPeriodName = hashMap.get("reportPeriodName").toString();// 编报期间IDname
String reportOrgName = hashMap.get("reportOrgName").toString();// 编报主体IDname
String queryPlanning = queryPlanning(reportPeriodName, reportOrgName);
return CustomApiResult.fail("404", queryPlanning);
}

View File

@ -24,6 +24,7 @@ import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -68,7 +69,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
Map<String, Object> billtype = (Map<String, Object>) map.get("billtype");
String billtype_number = billtype.get("number").toString();
if ("cas_paybill_other_BT_S".equals(billtype_number) && "共享系统".equals(shkd_businessname)) {
logger.info("进入付款处理单API");
logger.info("单据类型 → 其他付款,推送系统 → 共享系统");
// 收款人ID
fieldName1 = "payee";
// 付款银行编码
@ -177,7 +178,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
}
}
else if ("cas_paybill_syn_BT_S".equals(billtype_number) && "共享系统".equals(shkd_businessname)) {// BIP传的跨主体调拨
logger.info("进入付款处理单API");
logger.info("单据类型 → 同名转账,推送系统 → 共享系统");
// 收款人ID
fieldName1 = "payee";
// 付款银行编码
@ -286,7 +287,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
}
}
else if ("cas_paybill_span_BT_S".equals(billtype_number) && "共享系统".equals(shkd_businessname)) {// BIP传的同名转账
logger.info("进入付款处理单API");
logger.info("单据类型 → 跨主体调拨,推送系统 → 共享系统");
// 收款人ID
fieldName1 = "payee";
// 付款银行编码
@ -395,7 +396,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
}
}
else if ("cas_paybill_other_BT_S".equals(billtype_number) && "XK".equals(shkd_businessname)) {//星空推送的其他单据类型付款单
logger.info("进入付款处理单API");
logger.info("单据类型 → 其他付款,推送系统 → XK");
// 收款人ID
fieldName1 = "payee";
// 付款银行编码
@ -429,11 +430,26 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
map.put("payeetype", "bos_org");
map.put("payeeformid", "bos_org");
} else if ("FIN_OTHERS".equals(payeetype)) {
payeetype = "other";
map.put("payeetype", "other");
map.put("payeeformid", "other");
payeetype = "bd_supplier";
map.put("payeetype", "bd_supplier");
map.put("payeeformid", "bd_supplier");
}
// 赋值付款金额折本位币
map.put("localamt", map.get("actpayamt"));
// 赋值分录应付折本币
List<Map<String, Object>> entryList = (List<Map<String, Object>>) map.get("entry");
if (entryList != null && !entryList.isEmpty()) {
Map<String, Object> stringObjectMap = entryList.get(0);
// 获取 e_payableamt 的值
stringObjectMap.put("e_payablelocamt", stringObjectMap.get("e_payableamt"));
map.put("entry", entryList);
}
Map<String, Object> payeebank = (Map<String, Object>) map.get("payeebank");
String payeebank_number = payeebank.get("number").toString();
DynamicObject[] bd_bebank = BusinessDataServiceHelper.load("bd_bebank", "id,number,provincetxt,citytxt", new QFilter("number", QCP.equals, payeebank_number).toArray());
@ -470,12 +486,18 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
// 如果为供应商或者客户
if ("bd_supplier".equals(payeetype)) {
logger.info("收款人类型 → 供应商");
Map<String, Object> societycreditcode = new HashMap<>();
societycreditcode.put("societycreditcode", map.get("payeenumber").toString());
map.put("shkd_supplier", societycreditcode);
logger.info("收款人ID{}", map.get("payeenumber"));
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, map.get("payeenumber").toString()).toArray());
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id," +
"number,name,societycreditcode,shkd_xknumber,entry_bank,entry_bank.bankaccount,entry_bank.accountname," +
"entry_bank.bank",
new QFilter("societycreditcode", QCP.equals, map.get("payeenumber").toString())
.or("shkd_xknumber", QCP.equals, map.get("payeenumber").toString())
.or("name", QCP.equals, map.get("payeename").toString()).toArray());
if (objects.length > 0) {
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
@ -488,6 +510,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
//收款人编码
}
} else if ("bd_customer".equals(payeetype)) {
logger.info("收款人类型 → 客户");
Map<String, Object> societycreditcode = new HashMap<>();
societycreditcode.put("societycreditcode", map.get("payeenumber").toString());
map.put("shkd_customer", societycreditcode);
@ -505,13 +528,16 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
//收款人编码
}
} else if ("bos_user".equals(payeetype)) {
logger.info("收款人类型 → 人员");
Map<String, Object> user_number = new HashMap<>();
user_number.put("number", map.get("payernumber").toString());
user_number.put("number", map.get("payeenumber").toString());
logger.info("收款人编码:{}", map.get("payeenumber"));
map.put("shkd_user", user_number);
DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,name,number,username", new QFilter("number", QCP.equals, map.get("payernumber").toString()).toArray());
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,name,number,username", new QFilter("number", QCP.equals, map.get("payeenumber").toString()).toArray());
logger.info("人员查询,通过人员工号查对应的人员数据长度:{}", objects.length);
if (objects.length > 0) {
// 款人编码
map.put("payernumber", objects[0].getString("number"));
// 款人编码
map.put("payeenumber", objects[0].getString("number"));
// 付款人ID
map.put(fieldName1, objects[0].getPkValue());
}
@ -531,6 +557,42 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
}
}
else if ("cas_paybill_span_BT_S".equals(billtype_number) && "XK".equals(shkd_businessname)) {// 星空传的跨主体调拨
logger.info("单据类型 → 跨主体调拨,推送系统 → XK");
if ("BD_Supplier".equals(payeetype)) {
payeetype = "bd_supplier";
map.put("payeetype", "bd_supplier");
map.put("payeeformid", "bd_supplier");
} else if ("BD_Customer".equals(payeetype)) {
payeetype = "bd_customer";
map.put("payeetype", "bd_customer");
map.put("payeeformid", "bd_customer");
} else if ("BD_Empinfo".equals(payeetype)) {
payeetype = "bos_user";
map.put("payeetype", "bos_user");
map.put("payeeformid", "bos_user");
} else if ("ORG_Organizations".equals(payeetype)) {
payeetype = "bos_org";
map.put("payeetype", "bos_org");
map.put("payeeformid", "bos_org");
} else if ("FIN_OTHERS".equals(payeetype)) {
payeetype = "bd_supplier";
map.put("payeetype", "bd_supplier");
map.put("payeeformid", "bd_supplier");
}
// 赋值付款金额折本位币
map.put("localamt", map.get("actpayamt"));
// 赋值分录应付折本币
List<Map<String, Object>> entryList = (List<Map<String, Object>>) map.get("entry");
if (entryList != null && !entryList.isEmpty()) {
Map<String, Object> stringObjectMap = entryList.get(0);
// 获取 e_payableamt 的值
stringObjectMap.put("e_payablelocamt", stringObjectMap.get("e_payableamt"));
map.put("entry", entryList);
}
fieldName1 = "payee";// 收款人ID
// 付款银行编码
fieldName2 = "payerbank";
@ -581,7 +643,42 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
}
}
else if ("cas_paybill_syn_BT_S".equals(billtype_number) && "XK".equals(shkd_businessname)) {// 星空传的同名转账
logger.info("同名转账");
logger.info("单据类型 → 同名转账,推送系统 → XK");
if ("BD_Supplier".equals(payeetype)) {
payeetype = "bd_supplier";
map.put("payeetype", "bd_supplier");
map.put("payeeformid", "bd_supplier");
} else if ("BD_Customer".equals(payeetype)) {
payeetype = "bd_customer";
map.put("payeetype", "bd_customer");
map.put("payeeformid", "bd_customer");
} else if ("BD_Empinfo".equals(payeetype)) {
payeetype = "bos_user";
map.put("payeetype", "bos_user");
map.put("payeeformid", "bos_user");
} else if ("ORG_Organizations".equals(payeetype)) {
payeetype = "bos_org";
map.put("payeetype", "bos_org");
map.put("payeeformid", "bos_org");
} else if ("FIN_OTHERS".equals(payeetype)) {
payeetype = "bd_supplier";
map.put("payeetype", "bd_supplier");
map.put("payeeformid", "bd_supplier");
}
// 赋值付款金额折本位币
map.put("localamt", map.get("actpayamt"));
// 赋值分录应付折本币
List<Map<String, Object>> entryList = (List<Map<String, Object>>) map.get("entry");
if (entryList != null && !entryList.isEmpty()) {
Map<String, Object> stringObjectMap = entryList.get(0);
// 获取 e_payableamt 的值
stringObjectMap.put("e_payablelocamt", stringObjectMap.get("e_payableamt"));
map.put("entry", entryList);
}
// 收款人ID
fieldName1 = "payee";
// 付款银行编码

View File

@ -25,7 +25,7 @@ public class TicketRegistration implements Serializable, ApiSavePlugin {
@Override
public List<Map<String, Object>> preHandleRequestData(List<Map<String, Object>> reqData) {
logger.info("进入TicketRegistration");
logger.info("进入TicketRegistration,接口调用接口参数:{}\n数据长度{}", reqData, reqData.size());
for (Map<String, Object> map : reqData) {
String payeetype = map.get("payeetype").toString();
/**
@ -41,23 +41,28 @@ public class TicketRegistration implements Serializable, ApiSavePlugin {
logger.info("进入收票登记");
Map<String, Object> deliver = (Map<String, Object>) map.get("deliver");
String deliveraccountbase = map.get("deliveraccountbase").toString();// 交票人账号
logger.info("收票登记→收票人账号:{}", deliveraccountbase);
String deliver_number = deliver.get("number").toString();
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype, "id,number," +
"name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank",
new QFilter("societycreditcode", QCP.equals, deliver_number).toArray());
if (objects.length > 0) {
logger.info("进入收票登记→objects.length > 0");
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
dynamicObjectCollection.forEach(dynamicObject -> {
if (dynamicObject.getString("bankaccount").equals(deliveraccountbase)) {
Object bank = dynamicObject.get("bank");
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("bd_bebank", "id,number", new QFilter("id", QCP.equals, bank).toArray());
Map<String, Object> deliveropenbank = new HashMap<>();
deliveropenbank.put("number", dynamicObjects[0].getString("number"));
map.put("deliveropenbank", deliveropenbank);
map.put("deliveropenbanknum", dynamicObjects[0].getString("number"));
}
});
// DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
//
// for (DynamicObject dynamicObject : dynamicObjectCollection) {
// logger.info("进入收票登记→objects.length > 0→dynamicObjectCollection.forEach\nbankaccount → {}", dynamicObject.getString("bankaccount"));
// if (dynamicObject.getString("bankaccount").equals(deliveraccountbase)) {
// DynamicObject bank = dynamicObject.getDynamicObject("bank");
// logger.info("进入收票登记→objects.length > 0→dynamicObjectCollection.forEachbank → {}", bank);
// Map<String, Object> deliveropenbank = new HashMap<>();
// deliveropenbank.put("number", bank.getString("number"));
// map.put("deliveropenbank", deliveropenbank);
// map.put("deliveropenbanknum", bank.getString("number"));
// // 跳出循环
// break;
// }
// }
Map<String, Object> societycreditcode = new HashMap<>();
societycreditcode.put("number", objects[0].getString("number"));
map.put("deliver", societycreditcode);
@ -68,23 +73,29 @@ public class TicketRegistration implements Serializable, ApiSavePlugin {
logger.info("进入开票登记");
Map<String, Object> deliver = (Map<String, Object>) map.get("receiver");
String receiveraccount = map.get("receiveraccount").toString();// 收款人账号
logger.info("开票登记→收款人账号:{}", receiveraccount);
String receiver_number = deliver.get("number").toString();
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype, "id,number," +
"name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank",
new QFilter("societycreditcode", QCP.equals, receiver_number).toArray());
if (objects.length > 0) {
logger.info("进入开票登记→objects.length > 0");
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
dynamicObjectCollection.forEach(dynamicObject -> {
if (dynamicObject.getString("bankaccount").equals(receiveraccount)) {
Object bank = dynamicObject.get("bank");
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("bd_bebank", "id,number", new QFilter("id", QCP.equals, bank).toArray());
Map<String, Object> receiverbank = new HashMap<>();
receiverbank.put("number", dynamicObjects[0].getString("number"));
map.put("receiverbank", receiverbank);
map.put("receiverbankno", dynamicObjects[0].getString("number"));
}
});
// DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
//
// for (DynamicObject dynamicObject : dynamicObjectCollection) {
// logger.info("进入开票登记→objects.length > 0→dynamicObjectCollection.forEach\nbankaccount → {}", dynamicObject.getString("bankaccount"));
// if (dynamicObject.getString("bankaccount").equals(receiveraccount)) {
// DynamicObject bank = dynamicObject.getDynamicObject("bank");
// logger.info("进入开票登记→objects.length > 0→dynamicObjectCollection.forEachbank → {}", bank);
// Map<String, Object> receiverbank = new HashMap<>();
// receiverbank.put("number", bank.getString("number"));
// map.put("receiverbank", receiverbank);
// map.put("receiverbankno", bank.getString("number"));
// // 跳出循环
// break;
// }
// }
Map<String, Object> societycreditcode = new HashMap<>();
societycreditcode.put("number", objects[0].getString("number"));
map.put("receiver", societycreditcode);

View File

@ -123,6 +123,7 @@ public class ApiTestBillPlugin extends AbstractBillPlugIn implements Plugin {
Path path = Paths.get(dynamic.getString("filepath"));
String upfileName = path.getFileName().toString();
String dataUrl = convertUrlToBase64DataUrl(pdfUrl);
logger.info("pdfUrl" + dataUrl);
this.getView().showTipNotification("dataUrl" + dataUrl + "\n文件名" + upfileName);
}

View File

@ -8,6 +8,8 @@ import kd.bos.entity.operate.result.OperationResult;
import kd.bos.ext.fi.bei.util.EmptyUtil;
import kd.bos.form.control.Toolbar;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.i18n.mservice.I18nServiceHelper;
import kd.bos.i18n.mservice.utils.AmountConvertResult;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QCP;
@ -88,6 +90,7 @@ public class PaymentProcessingBillPlugin extends AbstractBillPlugIn implements P
}
}
public void propertyChanged(PropertyChangedArgs e) {
String key = e.getProperty().getName();
ChangeData[] changeData = e.getChangeSet();
@ -95,13 +98,13 @@ public class PaymentProcessingBillPlugin extends AbstractBillPlugIn implements P
Object oldValue = changeData[0].getOldValue();
DynamicObject settleType;
Object value = this.getModel().getValue("settletype");
settleType=value != null ? (DynamicObject)value : null;
settleType = value != null ? (DynamicObject) value : null;
if (newValue != oldValue) {
DynamicObject applyDo;
switch (key) {
case "settletype":
if (EmptyUtil.isNoEmpty(settleType)) {
if ("电汇".equals(settleType.getString("name"))){
if ("电汇".equals(settleType.getString("name"))) {
this.getView().setVisible(true, new String[]{"settletnumber"});
this.getView().setVisible(true, new String[]{"draftbill"});
}
@ -109,21 +112,28 @@ public class PaymentProcessingBillPlugin extends AbstractBillPlugIn implements P
break;
case "paymentchannel":
if (EmptyUtil.isNoEmpty(settleType)) {
if ("电汇".equals(settleType.getString("name"))){
if ("电汇".equals(settleType.getString("name"))) {
this.getView().setVisible(true, new String[]{"settletnumber"});
this.getView().setVisible(true, new String[]{"draftbill"});
}
}
break;
case "actpayamt":
AmountConvertResult result = I18nServiceHelper.amountConvertUppercase("ZH", "CNY", newValue.toString(), "false");
if (result.isSuccess()) {
this.getModel().setValue("actpayamt", result.getResult());
break;
}
}
}
}
public void afterBindData(EventObject e) {
DynamicObject settleType;
Object value = this.getModel().getValue("settletype");
settleType=value != null ? (DynamicObject)value : null;
settleType = value != null ? (DynamicObject) value : null;
if (EmptyUtil.isNoEmpty(settleType)) {
if ("电汇".equals(settleType.getString("name"))){
if ("电汇".equals(settleType.getString("name"))) {
this.getView().setVisible(true, new String[]{"settletnumber"});
this.getView().setVisible(true, new String[]{"draftbill"});
}

View File

@ -0,0 +1,71 @@
package shkd.sys.sys.plugin.operation;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.args.AfterOperationArgs;
import kd.bos.i18n.mservice.I18nServiceHelper;
import kd.bos.i18n.mservice.utils.AmountConvertResult;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import java.math.BigDecimal;
import java.util.Date;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.fi.cas.helper.CasBotpHelper;
import kd.sdk.plugin.Plugin;
/**
* 单据操作插件
* 修复付款单和应收票据关联关系
*/
public class PaymentSlipAssociationFixed extends AbstractOperationServicePlugIn implements Plugin {
@Override
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
super.afterExecuteOperationTransaction(e);
DynamicObject[] dataEntities = e.getDataEntities();
DynamicObject dataEntity = dataEntities[0];
// 付款单
DynamicObject fkDynamicObject = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), dataEntity.getDynamicObjectType());
BigDecimal actpayamt = fkDynamicObject.getBigDecimal("actpayamt");
AmountConvertResult result = I18nServiceHelper.amountConvertUppercase("ZH", "CNY", actpayamt.toString(), "false");
if (result.isSuccess()) {
fkDynamicObject.set("actpayamt", result.getResult());
}
String shkdBusinessname = dataEntity.getString("shkd_businessname");//来源系统
if (dataEntity.get("settletnumber") != null) {
String settletnumber = dataEntity.getString("settletnumber");//结算号
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("cdm_payablebill", "id,draftbillno", new QFilter("draftbillno", QCP.equals, settletnumber).toArray());
if ("XK".equals(shkdBusinessname) && dynamicObjects.length > 0) {
// 写入票据关联付款单关联关系
DynamicObject kpdjDynamicObject = BusinessDataServiceHelper.loadSingle(dynamicObjects[0].getPkValue(), dynamicObjects[0].getDynamicObjectType());
DynamicObjectCollection releatedcasbillentrys = kpdjDynamicObject.getDynamicObjectCollection("releatedcasbillentrys");
DynamicObject kpLinkRow = new DynamicObject(releatedcasbillentrys.getDynamicObjectType());
kpLinkRow.set("rel_billtype", "cas_paybill");// 关联单据类型
kpLinkRow.set("rel_billno", fkDynamicObject.getString("billno"));// 关联单据编号
kpLinkRow.set("rel_billid", fkDynamicObject.getPkValue());// 关联单据ID
kpLinkRow.set("rel_bizdate", fkDynamicObject.get("bizdate"));// 出纳单据业务日期
kpLinkRow.set("rel_billamount", fkDynamicObject.get("actpayamt"));// 关联单据金额
kpLinkRow.set("rel_createtime", new Date());// 关联信息创建时间
kpLinkRow.set("rel_modifytime", new Date());// 记录修改时间
kpLinkRow.set("rel_isrefuse", "0");// 票据退票
releatedcasbillentrys.add(kpLinkRow);
SaveServiceHelper.save(new DynamicObject[]{kpdjDynamicObject});
// 写入付款单关联票据关联关系
String blEntryKey = fkDynamicObject.getDataEntityType().getName() + "_bl";
DynamicObjectCollection dynamicObjectCollection = fkDynamicObject.getDynamicObjectCollection(blEntryKey);
DynamicObject linkRow = new DynamicObject(dynamicObjectCollection.getDynamicObjectType());
linkRow.set(blEntryKey + "_basedataid", dynamicObjects[0].getPkValue());
dynamicObjectCollection.add(linkRow);
SaveServiceHelper.save(new DynamicObject[]{fkDynamicObject});
}
}
}
}