Forráskód Böngészése

反写合同台账付款明细

wanwei 7 hónapja
szülő
commit
352a5851cb

+ 19 - 0
src/main/java/fi/cas/opplugin/PaymentProcessOpPlugin.java

@@ -4,6 +4,7 @@ import com.alibaba.druid.util.StringUtils;
 import dm.jdbc.util.StringUtil;
 import fi.cas.common.SettlementStatusEnum;
 import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
 import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
 import kd.bos.orm.query.QCP;
@@ -12,6 +13,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.HashMap;
 
 //付款处理单付款反写
@@ -28,6 +30,14 @@ public class PaymentProcessOpPlugin extends AbstractOperationServicePlugIn {
         for (int i = 0; i < dynamicObjects.length; i++) {
             //当前单头数据包
             DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+            //付款金额
+            BigDecimal actpayamt = info.getBigDecimal("actpayamt");
+            //单据编号
+            String billno = info.getString("billno");
+            //付款处理id
+            long id = info.getLong("id");
+            //付款日期
+            Date paydate = info.getDate("paydate");
             //获取源单id
             Long sourcebillid = info.getLong("sourcebillid");
             //存储源单分录id和付款处理分录实付金额
@@ -181,6 +191,15 @@ public class PaymentProcessOpPlugin extends AbstractOperationServicePlugIn {
                                 htInfo.set("nckd_settleamount", nckd_settleamount);
                                 htInfo.set("nckd_unsettleamount", nckd_unsettleamount);
                             }
+
+                            //反写付款明细
+                            DynamicObjectCollection entryEntity = htInfo.getDynamicObjectCollection("nckd_payentry");
+                            DynamicObject entry1 = entryEntity.addNew();
+                            entry1.set("nckd_pay_billno1", billno);//付款处理单据编号
+                            entry1.set("nckd_pay_id1", id);//付款处理单据id
+                            entry1.set("nckd_amountfield1", actpayamt);//付款金额
+                            entry1.set("nckd_timefield1", paydate);//付款日期
+
                             SaveServiceHelper.save(new DynamicObject[]{htInfo});
                         }
                     }

+ 43 - 0
src/main/java/fi/er/formPlugin/ContratBillFormPlugin.java

@@ -0,0 +1,43 @@
+package fi.er.formPlugin;
+
+import com.alibaba.nacos.common.utils.StringUtils;
+import kd.bos.bill.BillShowParameter;
+import kd.bos.form.ShowType;
+import kd.bos.form.control.EntryGrid;
+import kd.bos.form.events.HyperLinkClickEvent;
+import kd.bos.form.events.HyperLinkClickListener;
+import kd.bos.form.plugin.AbstractFormPlugin;
+
+import java.util.EventObject;
+
+public class ContratBillFormPlugin extends AbstractFormPlugin implements HyperLinkClickListener {
+    @Override
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+        // 监听分录行
+        EntryGrid entryGrid = this.getView().getControl("nckd_payentry");
+        entryGrid.addHyperClickListener(this);
+    }
+    @Override
+    public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) {
+        //  获取超链接点击的属性名
+        String fieldName = hyperLinkClickEvent.getFieldName();
+        //  获取点击分录行的下标
+        int rowIndex = hyperLinkClickEvent.getRowIndex();
+        if (StringUtils.containsIgnoreCase(fieldName,"nckd_pay_billno1")){
+            //付款处理id
+            Object id = this.getModel().getValue("nckd_pay_id1");
+
+            BillShowParameter billShowParameter = new BillShowParameter();
+            // 设置打开单据的标识
+            billShowParameter.setFormId("cas_paybill");
+            // 设置打开单据的id
+            billShowParameter.setPkId(id);
+            // 设置打开的样式
+            billShowParameter.getOpenStyle().setShowType(ShowType.Modal);
+
+            this.getView().showForm(billShowParameter);
+        }
+    }
+
+}