diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/PaymentSlipAssociationFixed.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/PaymentSlipAssociationFixed.java index f32eadd..5765983 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/PaymentSlipAssociationFixed.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/PaymentSlipAssociationFixed.java @@ -30,24 +30,43 @@ public class PaymentSlipAssociationFixed extends AbstractOperationServicePlugIn // 付款单 DynamicObject fkDynamicObject = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), dataEntity.getDynamicObjectType()); + // 付款金额 BigDecimal actpayamt = fkDynamicObject.getBigDecimal("actpayamt"); - String formattedValue = String.format("%.2f", Double.parseDouble(actpayamt.toString())); + // 大写金额 + String shkdZwamount = fkDynamicObject.getString("shkd_zwamount"); + AmountConvertResult amountConvertResult = I18nServiceHelper.amountConvertUppercase( "ZH", "CNY", formattedValue, "false"); - if (amountConvertResult.isSuccess()) { - fkDynamicObject.set("actpayamt", amountConvertResult.getResult()); + if (amountConvertResult.isSuccess() && !shkdZwamount.equals(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) { 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) { + 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()); DynamicObjectCollection releatedcasbillentrys = kpdjDynamicObject.getDynamicObjectCollection("releatedcasbillentrys"); @@ -62,14 +81,6 @@ public class PaymentSlipAssociationFixed extends AbstractOperationServicePlugIn 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}); } } }