提交人:融资编制报表修改

This commit is contained in:
root 2025-12-11 23:50:42 +08:00
parent 82d188ac69
commit 8b037e6a3d
2 changed files with 137 additions and 25 deletions

View File

@ -0,0 +1,118 @@
package shkd.sys.sys.plugin.form;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.utils.StringUtils;
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.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.sdk.plugin.Plugin;
import java.util.ArrayList;
import java.util.EventObject;
/**
* 付款处理表单插件
* 计划科目过滤
*/
public class JhkmglBillPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
private static final Log logger = LogFactory.getLog(JhkmglBillPlugin.class);
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
// 侦听-基础资料选择按钮
BasedataEdit shkd_jhkm = this.getView().getControl("shkd_jhkm");
shkd_jhkm.addBeforeF7SelectListener(this);
}
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
// 获取点击的基础资料字段按钮的基础资料标识
String propertyName = beforeF7SelectEvent.getProperty().getName();
// 都是这样获取对象然后通过此对象设置过滤条件
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
// 判断点击的按钮是否是我们想要过滤的基础资料
if (StringUtils.equals("shkd_jhkm", propertyName)) {
String entityName = this.getModel().getDataEntityType().getName();
DynamicObject[] dynamicObjects = null;
DynamicObject dynamicObj = null;
DynamicObject org = (DynamicObject) this.getModel().getValue("org");
String org_name = org.getString("name");
boolean result = false;
if ("cas_paybill".equals(entityName)) {
dynamicObjects = BusinessDataServiceHelper.load("shkd_jhkmsypz", "id,shkd_syzz,shkd_sydj",
new QFilter("shkd_sydj", QCP.equals, "付款处理").toArray());
for (DynamicObject dynamicObject : dynamicObjects) {
Object shkdSyzz = dynamicObject.get("shkd_syzz");
if (shkdSyzz != null && org_name.equals(shkdSyzz.toString())) {
dynamicObj = dynamicObject;
result = true;
break;
}
}
if (!result) {
dynamicObjects = BusinessDataServiceHelper.load("shkd_jhkmsypz", "id,shkd_syzz,shkd_sydj",
new QFilter("shkd_sydj", QCP.equals, "付款处理")
.and(new QFilter("shkd_syzz", QCP.equals, "其他公司")).toArray());
if (dynamicObjects != null && dynamicObjects.length == 1) {
dynamicObj = dynamicObjects[0];
}
}
}
if ("cas_recbill".equals(entityName)) {
dynamicObjects = BusinessDataServiceHelper.load("shkd_jhkmsypz", "id,shkd_syzz,shkd_sydj",
new QFilter("shkd_sydj", QCP.equals, "收款处理").toArray());
for (DynamicObject dynamicObject : dynamicObjects) {
Object shkdSyzz = dynamicObject.get("shkd_syzz");
if (shkdSyzz != null && org_name.equals(shkdSyzz.toString())) {
dynamicObj = dynamicObject;
result = true;
break;
}
}
if (!result) {
dynamicObjects = BusinessDataServiceHelper.load("shkd_jhkmsypz", "id,shkd_syzz,shkd_sydj",
new QFilter("shkd_sydj", QCP.equals, "收款处理")
.and(new QFilter("shkd_syzz", QCP.equals, "其他公司")).toArray());
if (dynamicObjects != null && dynamicObjects.length == 1) {
dynamicObj = dynamicObjects[0];
}
}
}
if (dynamicObj != null) {
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(dynamicObj.getPkValue(), dynamicObj.getDynamicObjectType().getName());
DynamicObject shkdSytx = dynamicObject.getDynamicObject("shkd_sytx");
DynamicObjectCollection shkdSyjhkms = dynamicObject.getDynamicObjectCollection("shkd_syjhkm");
ArrayList<String> syjhkmNumberList = new ArrayList<>();
ArrayList<String> syjhkmpPrentrList = new ArrayList<>();
for (DynamicObject shkdSyjhkm : shkdSyjhkms) {
syjhkmNumberList.add(shkdSyjhkm.getDynamicObject("fbasedataid").getString("number"));
syjhkmpPrentrList.add(shkdSyjhkm.getDynamicObject("fbasedataid").getDynamicObject("parent").getString("number"));
}
QFilter qFilter1 = new QFilter("bodysystem", QCP.equals, shkdSytx.getPkValue());
QFilter qFilter2 = new QFilter("number", QCP.in, syjhkmNumberList);
formShowParameter.getListFilterParameter().getQFilters().add(qFilter1.and(qFilter2));// formShowParameter
//设置F7列表左树的过滤条件
QFilter qFilter3 = new QFilter("number", QCP.equals, "AC-SYS-009-029");
QFilter qFilter4 = new QFilter("dimtype", QCP.equals, "Period");
formShowParameter.getTreeFilterParameter().getQFilters().add(qFilter4);
} else {
beforeF7SelectEvent.setCancel(true);
logger.info("组织名称:{},未查到符合条件的计划科目配置", org_name);
}
}
}
}

View File

@ -2,6 +2,7 @@ package shkd.sys.sys.plugin.form;
import kd.bos.bill.AbstractBillPlugIn; import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.utils.StringUtils; import kd.bos.dataentity.utils.StringUtils;
import kd.bos.form.field.BasedataEdit; import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.events.BeforeF7SelectEvent; import kd.bos.form.field.events.BeforeF7SelectEvent;
@ -14,51 +15,44 @@ import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.sdk.plugin.Plugin; import kd.sdk.plugin.Plugin;
import java.util.ArrayList;
import java.util.EventObject; import java.util.EventObject;
import java.util.List;
/** /**
* 付款处理表单插件 * 计划科目配置表单插件
* 计划科目过滤 *
*/ */
public class FkclBillPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener { public class JhkmpzBillPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
private static final Log logger = LogFactory.getLog(FkclBillPlugin.class); private static final Log logger = LogFactory.getLog(JhkmpzBillPlugin.class);
@Override @Override
public void registerListener(EventObject e) { public void registerListener(EventObject e) {
super.registerListener(e); super.registerListener(e);
// 侦听-基础资料选择按钮 // 侦听-基础资料选择按钮
BasedataEdit shkd_jhkm = this.getView().getControl("shkd_jhkm"); BasedataEdit shkd_jhkm = this.getView().getControl("shkd_syjhkm");
shkd_jhkm.addBeforeF7SelectListener(this); shkd_jhkm.addBeforeF7SelectListener(this);
} }
@Override @Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
DynamicObject dataEntity = this.getModel().getDataEntity(true);
// 获取点击的基础资料字段按钮的基础资料标识 // 获取点击的基础资料字段按钮的基础资料标识
String propertyName = beforeF7SelectEvent.getProperty().getName(); String propertyName = beforeF7SelectEvent.getProperty().getName();
// 都是这样获取对象然后通过此对象设置过滤条件 // 都是这样获取对象然后通过此对象设置过滤条件
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
// 判断点击的按钮是否是我们想要过滤的基础资料 // 判断点击的按钮是否是我们想要过滤的基础资料
if (StringUtils.equals("shkd_jhkm", propertyName)) { String org_name = "";
logger.info("点击基础资料按钮:{}", propertyName);
DynamicObject org = (DynamicObject) this.getModel().getValue("org");
String org_name = org.getString("name");
logger.info("组织名称:{}", org_name);
QFilter qFilter1 = null; QFilter qFilter1 = null;
if ("四川能源发展集团有限责任公司".equals(org_name)) { if (StringUtils.equals("shkd_syjhkm", propertyName)) {
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("fpm_bodysysmanage", "id,number", new QFilter("number", QCP.equals, "SYS-008").toArray()); logger.info("点击基础资料按钮:{}", propertyName);
// 使用体系
DynamicObject shkdSytx = dataEntity.getDynamicObject("shkd_sytx");
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("fpm_bodysysmanage", "id,number", new QFilter("id", QCP.equals, shkdSytx.getPkValue()).toArray());
if (dynamicObjects != null && dynamicObjects.length > 0) { if (dynamicObjects != null && dynamicObjects.length > 0) {
DynamicObject company = dynamicObjects[0]; DynamicObject company = dynamicObjects[0];
logger.info("体系:{}", company); logger.info("体系:{}", company);
qFilter1 = new QFilter("bodysystem", QCP.equals, company.getPkValue()); qFilter1 = new QFilter("bodysystem", QCP.equals, company.getPkValue());
} }
} else {
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("fpm_bodysysmanage", "id,number", new QFilter("number", QCP.equals, "SYS-009").toArray());
if (dynamicObjects != null && dynamicObjects.length > 0) {
DynamicObject company = dynamicObjects[0];
logger.info("体系:{}", company);
qFilter1 = new QFilter("bodysystem", QCP.equals, company.getPkValue());
}
}
// 获取列表的过滤条件,然后再赋值过滤条件 // 获取列表的过滤条件,然后再赋值过滤条件
formShowParameter.getListFilterParameter().setFilter(qFilter1); formShowParameter.getListFilterParameter().setFilter(qFilter1);
} }