From 91295e7ce46a9a7d33de50888c20ca8bb82cabeb Mon Sep 17 00:00:00 2001
From: 16358 <1635849544@qq.com>
Date: Sat, 19 Apr 2025 15:05:26 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E5=88=98?=
 =?UTF-8?q?=E6=A3=AE=E6=BE=B3=20=E6=97=A5=E6=9C=9F=EF=BC=9A2025/4/19=2015?=
 =?UTF-8?q?=EF=BC=9A05=20=E5=86=85=E5=AE=B9=EF=BC=9A=E5=80=BA=E5=88=B8?=
 =?UTF-8?q?=E5=8F=91=E8=A1=8C=E3=80=81=E5=80=BA=E5=88=B8=E5=8F=91=E8=A1=8C?=
 =?UTF-8?q?=E8=AE=A1=E5=88=92=E4=B8=BB=E4=BD=93=E8=AF=84=E7=BA=A7=EF=BC=8C?=
 =?UTF-8?q?=E9=9D=9E=E4=B8=BB=E4=BD=93=E8=AF=84=E7=BA=A7=E9=80=89=E6=8B=A9?=
 =?UTF-8?q?=E6=97=B6=E8=BF=87=E6=BB=A4=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../plugin/tmc/BdimbondBuildEntryPlugin.java  | 98 +++++++++++++++++++
 .../sys/plugin/tmc/BondSeletRatingPlugin.java | 57 +++--------
 .../plugin/tmc/IssuerNotMandatoryPlugin.java  | 28 ++++++
 3 files changed, 138 insertions(+), 45 deletions(-)
 create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BdimbondBuildEntryPlugin.java
 create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/IssuerNotMandatoryPlugin.java

diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BdimbondBuildEntryPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BdimbondBuildEntryPlugin.java
new file mode 100644
index 0000000..7d8395b
--- /dev/null
+++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BdimbondBuildEntryPlugin.java
@@ -0,0 +1,98 @@
+package shkd.sys.sys.plugin.tmc;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.dataentity.metadata.IDataEntityProperty;
+import kd.bos.entity.datamodel.IDataModel;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.org.OrgUnitServiceHelper;
+import kd.bos.servicehelper.org.OrgViewType;
+import kd.sdk.plugin.Plugin;
+
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.List;
+
+/**
+ *债券发行单据 自动组装债券发行 银行借款合同分录数据
+ * 动态表单插件
+ */
+public class BdimbondBuildEntryPlugin extends AbstractFormPlugin implements Plugin {
+
+    @Override
+    public void afterBindData(EventObject e) {
+        this.getView().setVisible(false, "shkd_bondissue","shkd_bankcontract");
+        DynamicObject org = (DynamicObject)this.getModel().getValue("org");
+        if (org != null) {
+            buildEntrys(org);
+        }
+    }
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.propertyChanged(e);
+        IDataEntityProperty property = e.getProperty();
+        String name = property.getName();
+        if("shkd_loanuse".equals(name)) {
+            //设置分录可见性false
+            this.getView().setVisible(false, "shkd_bondissue","shkd_bankcontract");
+            DynamicObjectCollection  loanuse = (DynamicObjectCollection )this.getModel().getValue("shkd_loanuse");
+            if (loanuse == null) return;
+            for (DynamicObject dObj : loanuse) {
+                DynamicObject shkdLoanuse = (DynamicObject)dObj.getDynamicObject("fbasedataid");
+
+                if("0001".equals(shkdLoanuse.get("number"))) {
+                    this.getView().setVisible(true, "shkd_bondissue");
+                }
+
+                if("0002".equals(shkdLoanuse.get("number"))) {
+                    this.getView().setVisible(true, "shkd_bankcontract");
+                }
+            }
+        }
+    }
+
+    //组装组装债券发行 银行借款合同分录数据
+    public void buildEntrys(DynamicObject org){
+        Long orgId = (Long)org.getPkValue();
+        IDataModel model = this.getModel();
+        //债券发行分录
+        DynamicObjectCollection shkdBondissueEntry = (DynamicObjectCollection)this.getModel().getValue("shkd_bondissue_entry");
+        //银行贷款合同分录
+        DynamicObjectCollection shkdBankcontractEntry = (DynamicObjectCollection)this.getModel().getValue("shkd_bankcontract_entry");
+
+        shkdBondissueEntry.clear();
+        shkdBankcontractEntry.clear();
+
+        //查询范围内的债券发行
+        QFilter orgidfilter = new QFilter("org","=",orgId);
+        DynamicObject[] loanbillBonList = BusinessDataServiceHelper.load("cfm_loanbill_bond","id,org.id,amount,drawamount,bizdate,expiredate", orgidfilter.toArray());
+        for (DynamicObject demo : loanbillBonList) {
+            int index = model.createNewEntryRow("shkd_bankcontract_entry");
+            model.setValue("shkd_entrybillno",demo.getPkValue(), index);
+            model.setValue("shkd_entryorg",demo.get("org.id"), index);
+            model.setValue("shkd_entrytotalmount",demo.get("amount"), index);
+            model.setValue("shkd_entryamount",demo.get("drawamount"), index);
+            model.setValue("shkd_entrystartdate",demo.get("bizdate"), index);
+            model.setValue("shkd_entryexpiredate",demo.get("expiredate"), index);
+        }
+
+        //查询范围内的银行贷款合同
+        List<Long> allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.BDControl, Collections.singletonList(orgId), true);
+        QFilter orgidfilter2 = new QFilter("org","in",allSubordinateOrgs);
+        DynamicObject[] loanconTractbillList = BusinessDataServiceHelper.load("cfm_loancontractbill","id,org.id,amount,startdate,enddate", orgidfilter2.toArray());
+        for (DynamicObject demo : loanconTractbillList) {
+            int index = model.createNewEntryRow("shkd_bankcontract_entry");
+            model.setValue("shkd_entrycontractnum",demo.getPkValue(), index);
+            model.setValue("shkd_enryborrower",demo.get("org.id"), index);
+            model.setValue("shkd_borrowamount",demo.get("amount"), index);
+            model.setValue("shkd_contractstartdate",demo.get("startdate"), index);
+            model.setValue("shkd_contractenddate",demo.get("enddate"), index);
+        }
+    }
+
+
+}
\ No newline at end of file
diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSeletRatingPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSeletRatingPlugin.java
index 8b31622..4f21bc1 100644
--- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSeletRatingPlugin.java
+++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSeletRatingPlugin.java
@@ -6,13 +6,9 @@ import kd.bos.dataentity.resource.ResManager;
 import kd.bos.form.CloseCallBack;
 import kd.bos.form.ShowFormHelper;
 import kd.bos.form.control.Control;
-import kd.bos.form.field.BasedataEdit;
 import kd.bos.form.field.TextEdit;
-import kd.bos.form.field.events.BeforeF7SelectEvent;
-import kd.bos.form.field.events.BeforeF7SelectListener;
 import kd.bos.list.ListShowParameter;
 import kd.bos.orm.query.QFilter;
-import kd.sdk.plugin.Plugin;
 import kd.tmc.fbp.common.util.EmptyUtil;
 
 import java.util.EventObject;
@@ -20,44 +16,30 @@ import java.util.EventObject;
 /**
  * 基础资料插件
  */
-public class BondSeletRatingPlugin extends AbstractBasePlugIn implements BeforeF7SelectListener {
-
-    public void registerListener(EventObject e) {
+public class BondSeletRatingPlugin extends AbstractBasePlugIn {
+    @Override
+    public void registerListener(EventObject e){
         super.registerListener(e);
-        BasedataEdit control = (BasedataEdit)this.getControl("ratingagency");
-        if (control != null) {
-            control.addBeforeF7SelectListener(this);
-        }
-
-        BasedataEdit eUnderWriter = (BasedataEdit)this.getControl("e_underwriter");
-        if (eUnderWriter != null) {
-            eUnderWriter.addBeforeF7SelectListener(this);
-        }
-
-    }
-
-    private void initRatingScale() {
-        TextEdit ratingText = (TextEdit)this.getControl("ratingscale");
+        TextEdit ratingText = (TextEdit)this.getControl("shkd_ratingscale");
         if (ratingText != null) {
             ratingText.addButtonClickListener(this);
         }
 
-        TextEdit debtRatingText = (TextEdit)this.getControl("debtratingscale");
+        TextEdit debtRatingText = (TextEdit)this.getControl("shkd_debtratingscale");
         if (debtRatingText != null) {
             debtRatingText.addButtonClickListener(this);
         }
-
     }
 
     public void click(EventObject evt) {
         super.click(evt);
         Control src = (Control)evt.getSource();
         switch (src.getKey()) {
-            case "ratingscale":
-                this.showRatingSelectForm("ratingscale");
+            case "shkd_ratingscale":
+                this.showRatingSelectForm("shkd_ratingscale");
                 break;
-            case "debtratingscale":
-                this.showRatingSelectForm("debtratingscale");
+            case "shkd_debtratingscale":
+                this.showRatingSelectForm("shkd_debtratingscale");
         }
 
     }
@@ -72,10 +54,10 @@ public class BondSeletRatingPlugin extends AbstractBasePlugIn implements BeforeF
             showParameter.setCloseCallBack(new CloseCallBack(this, actionId));
             QFilter qFilter = new QFilter("ratingagency.id", "=", ratingAgency.getPkValue());
             QFilter qFilter_entryFilter;
-            if("ratingscale".equals(actionId)){
-                qFilter_entryFilter = new QFilter("ratingagency.entrys.grade", "like", "%主体%");
+            if("shkd_ratingscale".equals(actionId)){
+                qFilter_entryFilter = new QFilter("entrys.grade", "like", "%主体%");
             }else{
-                qFilter_entryFilter = new QFilter("ratingagency.entrys.grade", "not like", "%主体%");
+                qFilter_entryFilter = new QFilter("entrys.grade", "not like", "%主体%");
             }
 
             QFilter qFilter_enable = new QFilter("enable", "=", "1");
@@ -83,19 +65,4 @@ public class BondSeletRatingPlugin extends AbstractBasePlugIn implements BeforeF
             this.getView().showForm(showParameter);
         }
     }
-
-    @Override
-    public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
-        switch (((Control)beforeF7SelectEvent.getSource()).getKey()) {
-            case "ratingagency":
-                QFilter qFilter = new QFilter("orgtype", "=", "ratingagency");
-                ListShowParameter showParameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter();
-                showParameter.getListFilterParameter().getQFilters().add(qFilter);
-                break;
-            case "e_underwriter":
-                QFilter orgTypeFilter = new QFilter("orgtype", "=", "underwriter");
-                ListShowParameter parameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter();
-                parameter.getListFilterParameter().getQFilters().add(orgTypeFilter);
-        }
-    }
 }
\ No newline at end of file
diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/IssuerNotMandatoryPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/IssuerNotMandatoryPlugin.java
new file mode 100644
index 0000000..da782fa
--- /dev/null
+++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/IssuerNotMandatoryPlugin.java
@@ -0,0 +1,28 @@
+package shkd.sys.sys.plugin.tmc;
+
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.entity.property.BasedataProp;
+import kd.bos.form.field.BasedataEdit;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.sdk.plugin.Plugin;
+
+/**
+ * 设置 债券发行计划界面 发行人账号非必填
+ * 单据界面插件
+ */
+public class IssuerNotMandatoryPlugin extends AbstractFormPlugin implements Plugin {
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        String fieldKey = e.getProperty().getName();
+        if ("issyncdraw".equals(fieldKey)){
+            //前端去掉星号,前端不一定会校验
+            BasedataEdit attch= (BasedataEdit)this.getControl("accountbank");
+            attch.setMustInput(false);
+            //后端去掉校验
+            BasedataProp attchproperty = (BasedataProp) attch.getProperty();
+            attchproperty.setMustInput(false);
+        }
+    }
+
+}
\ No newline at end of file