Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
陈绍鑫 2025-04-17 14:19:56 +08:00
commit c876302e05
4 changed files with 291 additions and 0 deletions

View File

@ -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());
}
}
}

View File

@ -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<DynamicObject> srcRows = (List<DynamicObject>) 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"));
}
}

View File

@ -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);
}
}
}

View File

@ -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<QFilter> 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<String> 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);
}
}