提交内容:修复付款单和票据的关联关系

时间:2025-06-23 10:35
提交人:邹江涛
This commit is contained in:
zoujiangtao 2025-06-23 10:36:01 +08:00
parent 5b24ce7357
commit b7e2ed4f7a
1 changed files with 24 additions and 13 deletions

View File

@ -30,24 +30,43 @@ public class PaymentSlipAssociationFixed extends AbstractOperationServicePlugIn
// 付款单 // 付款单
DynamicObject fkDynamicObject = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), dataEntity.getDynamicObjectType()); DynamicObject fkDynamicObject = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), dataEntity.getDynamicObjectType());
// 付款金额
BigDecimal actpayamt = fkDynamicObject.getBigDecimal("actpayamt"); BigDecimal actpayamt = fkDynamicObject.getBigDecimal("actpayamt");
String formattedValue = String.format("%.2f", Double.parseDouble(actpayamt.toString())); String formattedValue = String.format("%.2f", Double.parseDouble(actpayamt.toString()));
// 大写金额
String shkdZwamount = fkDynamicObject.getString("shkd_zwamount");
AmountConvertResult amountConvertResult = I18nServiceHelper.amountConvertUppercase( AmountConvertResult amountConvertResult = I18nServiceHelper.amountConvertUppercase(
"ZH", "CNY", formattedValue, "false"); "ZH", "CNY", formattedValue, "false");
if (amountConvertResult.isSuccess()) { if (amountConvertResult.isSuccess() && !shkdZwamount.equals(amountConvertResult.getResult())) {
fkDynamicObject.set("actpayamt", amountConvertResult.getResult()); fkDynamicObject.set("shkd_zwamount", amountConvertResult.getResult());
} }
String shkdBusinessname = dataEntity.getString("shkd_businessname");//来源系统 // 来源系统
Object businessnameObj = fkDynamicObject.get("shkd_businessname");
// 付款单关联票据分录
String blEntryKey = fkDynamicObject.getDataEntityType().getName() + "_bl";
DynamicObjectCollection dynamicObjectCollection = fkDynamicObject.getDynamicObjectCollection(blEntryKey);
// 票据关联付款单不为空说明已经关联了
if (!dynamicObjectCollection.isEmpty()) {
return;
}
if (dataEntity.get("settletnumber") != null) { if (dataEntity.get("settletnumber") != null) {
String settletnumber = dataEntity.getString("settletnumber");//结算号 String settletnumber = dataEntity.getString("settletnumber");//结算号
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("cdm_payablebill", "id,draftbillno", new QFilter("draftbillno", QCP.equals, settletnumber).toArray()); DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("cdm_payablebill", "id,draftbillno", new QFilter("draftbillno", QCP.equals, settletnumber).toArray());
if ("XK".equals(shkdBusinessname) && dynamicObjects.length > 0) { if (businessnameObj != null && "XK".equals(businessnameObj.toString()) && dynamicObjects.length > 0) {
// 写入付款单关联票据关联关系
DynamicObject linkRow = new DynamicObject(dynamicObjectCollection.getDynamicObjectType());
linkRow.set(blEntryKey + "_basedataid", dynamicObjects[0].getPkValue());
dynamicObjectCollection.add(linkRow);
SaveServiceHelper.save(new DynamicObject[]{fkDynamicObject});
// 写入票据关联付款单关联关系 // 写入票据关联付款单关联关系
DynamicObject kpdjDynamicObject = BusinessDataServiceHelper.loadSingle(dynamicObjects[0].getPkValue(), dynamicObjects[0].getDynamicObjectType()); DynamicObject kpdjDynamicObject = BusinessDataServiceHelper.loadSingle(dynamicObjects[0].getPkValue(), dynamicObjects[0].getDynamicObjectType());
DynamicObjectCollection releatedcasbillentrys = kpdjDynamicObject.getDynamicObjectCollection("releatedcasbillentrys"); DynamicObjectCollection releatedcasbillentrys = kpdjDynamicObject.getDynamicObjectCollection("releatedcasbillentrys");
@ -62,14 +81,6 @@ public class PaymentSlipAssociationFixed extends AbstractOperationServicePlugIn
kpLinkRow.set("rel_isrefuse", "0");// 票据退票 kpLinkRow.set("rel_isrefuse", "0");// 票据退票
releatedcasbillentrys.add(kpLinkRow); releatedcasbillentrys.add(kpLinkRow);
SaveServiceHelper.save(new DynamicObject[]{kpdjDynamicObject}); 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});
} }
} }
} }