diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BdimBondIntSelectPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BdimBondIntSelectPlugin.java new file mode 100644 index 0000000..42ab3c1 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BdimBondIntSelectPlugin.java @@ -0,0 +1,39 @@ +package shkd.sys.sys.plugin.tmc; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.datamodel.IDataModel; +import kd.bos.form.control.Control; +import kd.bos.form.field.TextEdit; +import kd.sdk.plugin.Plugin; + +import java.util.EventObject; + +/** + * 债券注册额度上拉中介机构招标遴选按钮插件 + * 单据界面插件 + */ +public class BdimBondIntSelectPlugin extends AbstractBillPlugIn implements Plugin { + + @Override + public void registerListener(EventObject e){ + super.registerListener(e); + TextEdit shkd_intermediaryselect = getControl("shkd_intermediaryselect"); + shkd_intermediaryselect.addClickListener(this); + } + + @Override + public void click(EventObject evt){ + Control source = (Control) evt.getSource(); + IDataModel model = this.getView().getModel(); + DynamicObject dataEntity = model.getDataEntity(); + String key = source.getKey(); + if("shkd_intermediaryselect".equals(key)){ + this.getView().invokeOperation("draw"); + +// OperationServiceHelper.executeOperate("draw","bdim_bond_limit",new DynamicObject[]{dataEntity}, OperateOption.create()); + } + } + + +} \ No newline at end of file diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BdimbondBOTPPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BdimbondBOTPPlugin.java new file mode 100644 index 0000000..4ef4350 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BdimbondBOTPPlugin.java @@ -0,0 +1,79 @@ +package shkd.sys.sys.plugin.tmc; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.BillEntityType; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.botp.plugin.AbstractConvertPlugIn; +import kd.bos.entity.botp.plugin.args.AfterFieldMappingEventArgs; +import kd.bos.entity.botp.runtime.ConvertConst; +import kd.bos.servicehelper.BusinessDataServiceHelper; + +import java.util.List; + +/** + * 中介招标遴选下推债券注册额度转换路线botp插件 + * 动态表单插件 + */ +public class BdimbondBOTPPlugin extends AbstractConvertPlugIn { + + @Override + public void afterFieldMapping(AfterFieldMappingEventArgs e){ + super.afterFieldMapping(e); + BillEntityType srcMainType = this.getSrcMainType();//源单标识 + String srcMainTypeName = srcMainType.getName();//源单名称 + BillEntityType tgtMainType = this.getTgtMainType();//目标单标识 + String tgtMainTypeName = tgtMainType.getName();//目标单名称 + int index = 0; + Object srcMainId = ""; + ExtendedDataEntity[] extendedDataEntities = e.getTargetExtDataEntitySet().FindByEntityKey(tgtMainTypeName);//获取目标单数据 + for (int i = 0; i < extendedDataEntities.length; i++) { + ExtendedDataEntity extendedDataEntity = extendedDataEntities[i]; + DynamicObject targetDyobj = extendedDataEntity.getDataEntity();//目标单数据 + List srcRows = (List) extendedDataEntity.getValue(ConvertConst.ConvExtDataKey_SourceRows);//获取源单数据 + DynamicObject srcRow = srcRows.get(0); + Object srcId = e.getFldProperties().get("id").getValue(srcRow);//获取源单id + DynamicObject sourceDyobj = BusinessDataServiceHelper.loadSingle(srcId, srcMainTypeName);//查询源单数据 + //源单分录 + DynamicObjectCollection winningbidderentry = sourceDyobj.getDynamicObjectCollection("winningbidderentry"); + + //承销商 + DynamicObjectCollection shkd_underwriterentry = targetDyobj.getDynamicObjectCollection("shkd_underwriterentry"); + //评级机构 + DynamicObjectCollection shkd_ratingagencyentry = targetDyobj.getDynamicObjectCollection("shkd_ratingagencyentry"); + //审计机构 + DynamicObjectCollection shkd_auditinstitutentry = targetDyobj.getDynamicObjectCollection("shkd_auditinstitutentry"); + //律师事务所 + DynamicObjectCollection shkd_lawofficeentry = targetDyobj.getDynamicObjectCollection("shkd_lawofficeentry"); + //其他中介机构 + DynamicObjectCollection shkd_otherentry = targetDyobj.getDynamicObjectCollection("shkd_otherentry"); + + for (DynamicObject temp : winningbidderentry) { + switch (temp.getString("e_midorgtypewin")){ + case "underwriter":initEntrys(shkd_underwriterentry,temp,"0");break; + case "ratingagency":initEntrys(shkd_ratingagencyentry,temp,"2");break; + case "auditinstitution":initEntrys(shkd_auditinstitutentry,temp,"3");break; + case "lawoffice":initEntrys(shkd_lawofficeentry,temp,"4");break; + case "other":initEntrys(shkd_otherentry,temp,"5");break; + default:break; + } + } + } + } + + public void initEntrys(DynamicObjectCollection targetEntrys,DynamicObject orginEntry,String index){ + targetEntrys.clear(); + DynamicObject entry = targetEntrys.addNew(); + if ("0".equals(index)) index = ""; + entry.set("shkd_midorgtype"+index,orginEntry.get("e_midorgtypewin")); + entry.set("shkd_underwritertype"+index,orginEntry.get("e_underwritertypewin")); + entry.set("shkd_midorgname"+index,orginEntry.get("e_midorgname")); + entry.set("shkd_openingdate"+index,orginEntry.get("e_openingdatewin")); + entry.set("shkd_fee"+index,orginEntry.get("e_fee")); + entry.set("shkd_feerate"+index,orginEntry.get("e_feerate")); + entry.set("shkd_bidwinningnotice"+index,orginEntry.get("e_bidwinningnotice")); + entry.set("shkd_contract"+index,orginEntry.get("e_contract")); + entry.set("shkd_explain"+index,orginEntry.get("e_explainwin")); + } + +} \ 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 new file mode 100644 index 0000000..8b31622 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSeletRatingPlugin.java @@ -0,0 +1,101 @@ +package shkd.sys.sys.plugin.tmc; + +import kd.bos.base.AbstractBasePlugIn; +import kd.bos.dataentity.entity.DynamicObject; +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; + +/** + * 基础资料插件 + */ +public class BondSeletRatingPlugin extends AbstractBasePlugIn implements BeforeF7SelectListener { + + 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"); + if (ratingText != null) { + ratingText.addButtonClickListener(this); + } + + TextEdit debtRatingText = (TextEdit)this.getControl("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"); + break; + case "debtratingscale": + this.showRatingSelectForm("debtratingscale"); + } + + } + + private void showRatingSelectForm(String actionId) { + DynamicObject ratingAgency = (DynamicObject)this.getModel().getValue("ratingagency"); + if (EmptyUtil.isEmpty(ratingAgency)) { + this.getView().showTipNotification(ResManager.loadKDString("请先选择评级机构。", "BondCreditRatingEdit_0", "tmc-cfm-formplugin", new Object[0])); + } else { + ListShowParameter showParameter = ShowFormHelper.createShowListForm("tbd_ratingscale", Boolean.FALSE); + showParameter.setCustomParam("ismergerows", Boolean.FALSE); + 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", "%主体%"); + }else{ + qFilter_entryFilter = new QFilter("ratingagency.entrys.grade", "not like", "%主体%"); + } + + QFilter qFilter_enable = new QFilter("enable", "=", "1"); + showParameter.getListFilterParameter().setFilter(qFilter.and(qFilter_enable).and(qFilter_entryFilter)); + 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/LoancontractF7Plugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/LoancontractF7Plugin.java new file mode 100644 index 0000000..94d0044 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/LoancontractF7Plugin.java @@ -0,0 +1,72 @@ +package shkd.sys.sys.plugin.tmc; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.entity.OrmLocaleValue; +import kd.bos.dataentity.metadata.IDataEntityProperty; +import kd.bos.form.IFormView; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.fi.bcm.common.util.CollectionUtil; +import kd.sdk.plugin.Plugin; + +import java.util.*; + +/** + * 债券发行/债券发行计划 关联注册额度,实现承销商过滤 + * 单据界面插件 + */ +public class LoancontractF7Plugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener { + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + IFormView view = this.getView(); + //监听债券F7数据选择 + BasedataEdit affiliation = view.getControl("e_underwriter"); + affiliation.addBeforeF7SelectListener(this); + + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent evt) { + ListShowParameter formShowParameter = (ListShowParameter) evt.getFormShowParameter(); + String formId = this.getView().getFormShowParameter().getFormId(); + //获取当前选择的债券注册额度 + DynamicObject shkd_bondlimit; + IDataEntityProperty property = evt.getProperty(); + String name = property.getName(); + List dataFilter = new ArrayList<>(); + if("e_underwriter".equals(name)){ + //shkd_cfm_loancontrac_ext2 : 债券发行计划 其他 : 债券发行 + if("cfm_loancontract_bo".equals(formId)){ + shkd_bondlimit= (DynamicObject)this.getModel().getValue("syncoccupybondlimit"); + if(shkd_bondlimit == null) return; + }else{ + shkd_bondlimit= (DynamicObject)this.getModel().getValue("occupybondlimit"); + if(shkd_bondlimit == null) return; + } + DynamicObject bdim_bond_limit = BusinessDataServiceHelper.loadSingle(shkd_bondlimit.get("id"), "bdim_bond_limit"); + DynamicObjectCollection shkd_underwriterentry = bdim_bond_limit.getDynamicObjectCollection("shkd_underwriterentry"); + if (CollectionUtil.isEmpty(shkd_underwriterentry)) { + return; + } + ArrayList filterArr = new ArrayList<>(); + shkd_underwriterentry.forEach((temp)->{ + filterArr.add(temp.getString("shkd_midorgname.number")); + }); + //将set转换成数组 + QFilter accountQFilter = new QFilter("number", QCP.in, filterArr); + dataFilter.add(accountQFilter); + } + //formShowParameter.getListFilterParameter().setQFilters(dataFilter); + formShowParameter.getListFilterParameter().getQFilters().addAll(dataFilter); + } + +} \ No newline at end of file