合同变更清单选择过滤插件

This commit is contained in:
zhangzhiguo 2025-07-24 11:18:28 +08:00
parent e087d24de1
commit 9547c02b0c
1 changed files with 79 additions and 0 deletions

View File

@ -0,0 +1,79 @@
package zcgj.zcdev.zcdev.pr.plugin.form;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.list.ListShowParameter;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.ec.contract.formplugin.ContractRevisionListingPlugin;
import java.util.List;
public class ContractRevisionListingExtPlugin extends ContractRevisionListingPlugin {
@Override
public void beforeF7Select(BeforeF7SelectEvent beforef7selectevent) {
switch (beforef7selectevent.getProperty().getName()) {
case "listid":
this.beforeListingSelect(beforef7selectevent);
break;
case "listunitproject":
this.beforeUnitProjectSelect(beforef7selectevent);
}
}
private void beforeListingSelect(BeforeF7SelectEvent beforef7selectevent) {
ListShowParameter lsp = (ListShowParameter)beforef7selectevent.getFormShowParameter();
List<QFilter> qFilters = lsp.getListFilterParameter().getQFilters();
this.addContractAndModelFilter(qFilters);
this.addNewListingSuperFilter(qFilters);
int row = beforef7selectevent.getRow();
DynamicObject con = (DynamicObject)this.getModel().getValue("contract");
String baseType = BusinessDataServiceHelper.loadSingle(con.getDynamicObject("contracttype").getPkValue(), "ec_conttype").getDynamicObject("contattr").getString("basictype");
String subChangeType = (String)this.getModel().getValue("subchangetype", row);
/*if (StringUtils.equals(subChangeType, "1") && !"09".equals(baseType)) {
qFilters.add(new QFilter("lstsettleqty", "<", "totalqty", true));
}*/
int rowIndex = this.getModel().getEntryCurrentRowIndex("kapianentry");
Object listModelId = this.getModel().getValue("listmodelid", rowIndex);
lsp.setCustomParam("listmodelid", listModelId);
}
private void addContractAndModelFilter(List<QFilter> qFilters) {
int rowIndex = this.getModel().getEntryCurrentRowIndex("kapianentry");
Object listModelId = this.getModel().getValue("listmodelid", rowIndex);
if (StringUtils.isNotBlank(listModelId)) {
qFilters.add(new QFilter("listingmodel", "=", Long.parseLong(listModelId.toString())));
}
DynamicObject contract = (DynamicObject)this.getModel().getValue("contract");
if (contract != null) {
qFilters.add(new QFilter("contractid", "=", contract.getLong("id")));
}
}
private void addNewListingSuperFilter(List<QFilter> qFilters) {
for(DynamicObject entry : this.getModel().getEntryEntity("entryentity")) {
if (!"3".equals(entry.getString("subchangetype")) && !"2".equals(entry.getString("subchangetype"))) {
DynamicObject listing = entry.getDynamicObject("listid");
if (listing != null) {
qFilters.add(new QFilter("id", "<>", listing.getLong("id")));
}
} else {
DynamicObject parent = entry.getDynamicObject("parentgroup");
if (parent != null) {
boolean isLeaf = parent.getBoolean("isleaf");
if (isLeaf) {
qFilters.add(new QFilter("id", "<>", parent.getLong("id")));
}
}
}
}
}
}