收入/支出合同财务确认单合同确认所属组织过滤开发

This commit is contained in:
zhangzhiguo 2025-06-30 09:22:26 +08:00
parent 1d230f4dd5
commit 6a74206728
4 changed files with 98 additions and 3 deletions

View File

@ -9,6 +9,7 @@ import kd.bos.form.ShowType;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.form.events.FilterContainerInitArgs;
import kd.bos.form.events.HyperLinkClickArgs;
import kd.bos.form.events.SetFilterEvent;
import kd.bos.form.field.events.BeforeFilterF7SelectEvent;
import kd.bos.list.BillList;
import kd.bos.list.plugin.AbstractListPlugin;
@ -22,6 +23,7 @@ import kd.bos.servicehelper.permission.PermissionServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.sdk.plugin.Plugin;
import java.util.ArrayList;
import java.util.List;
/**
@ -95,6 +97,27 @@ public class InContractFinaceConfirmeListPlugin extends AbstractListPlugin imple
}
}
@Override
public void setFilter(SetFilterEvent e) {
super.setFilter(e);
List<QFilter> qFilters = e.getQFilters();
for (QFilter qFilter : qFilters) {
if("zcgj_org.id".equals(qFilter.getProperty())){
String cp = qFilter.getCP();
Object value = qFilter.getValue();
StringBuilder sb = new StringBuilder();
if("=".equals(cp) && value instanceof Long){ //vale值类型为Long
sb.append(value);
}else if("IN".equals(cp) && value instanceof ArrayList){ //value值类型为ArrayList
for (Object o : (ArrayList) value) {
sb.append(o).append(",");
}
}
this.getPageCache().put("current_zcgj_orgid_in", sb.substring(0, sb.length()-1));
}
}
}
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);

View File

@ -9,10 +9,15 @@ import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.FormShowParameter;
import kd.bos.form.IPageCache;
import kd.bos.form.ShowType;
import kd.bos.form.control.EntryGrid;
import kd.bos.form.events.HyperLinkClickEvent;
import kd.bos.form.events.HyperLinkClickListener;
import kd.bos.form.field.RefBillEdit;
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;
@ -21,12 +26,14 @@ import kd.sdk.plugin.Plugin;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.EventObject;
import java.util.List;
/**
* 收入合同确认单插件
*/
public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implements Plugin, HyperLinkClickListener {
public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implements Plugin, HyperLinkClickListener, BeforeF7SelectListener {
@Override
@ -84,6 +91,7 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement
item.set("zcgj_remark",dynamicObject.getString("remark"));
}
this.getView().updateView("zcgj_itementry");
}
public void propertyChanged(PropertyChangedArgs e) {
@ -133,6 +141,11 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement
super.registerListener(e);
EntryGrid control = this.getControl("zcgj_entryentity");
control.addHyperClickListener(this);
RefBillEdit outContractSett = this.getControl("zcgj_ec_in_contract_sett"); //支出合同结算单
if(outContractSett != null) {
outContractSett.addBeforeF7SelectListener(this);
}
}
@Override
@ -158,4 +171,22 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement
}
}
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
String name = beforeF7SelectEvent.getProperty().getName();
if(name.equals("zcgj_ec_in_contract_sett")){
IPageCache iPageCache = this.getView().getParentView().getService(IPageCache.class);
String listOrgId = iPageCache.get("current_zcgj_orgid_in");
List<Long> ids = new ArrayList<>();
if(StringUtils.isNotBlank(listOrgId)){
for (String s : listOrgId.split(",")) {
ids.add(Long.parseLong(s));
}
}
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
QFilter qFilter = new QFilter("org", QCP.in, ids);
showParameter.getListFilterParameter().getQFilters().add(qFilter);
}
}
}

View File

@ -105,6 +105,27 @@ public class OutContractFinaceConfirmeListPlugin extends AbstractListPlugin impl
}
}
@Override
public void setFilter(SetFilterEvent e) {
super.setFilter(e);
List<QFilter> qFilters = e.getQFilters();
for (QFilter qFilter : qFilters) {
if("zcgj_org.id".equals(qFilter.getProperty())){
String cp = qFilter.getCP();
Object value = qFilter.getValue();
StringBuilder sb = new StringBuilder();
if("=".equals(cp) && value instanceof Long){ //vale值类型为Long
sb.append(value);
}else if("IN".equals(cp) && value instanceof ArrayList){ //value值类型为ArrayList
for (Object o : (ArrayList) value) {
sb.append(o).append(",");
}
}
this.getPageCache().put("current_zcgj_orgid_out", sb.substring(0, sb.length()-1));
}
}
}
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);

View File

@ -11,11 +11,13 @@ import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.FormShowParameter;
import kd.bos.form.IPageCache;
import kd.bos.form.ShowType;
import kd.bos.form.control.EntryGrid;
import kd.bos.form.events.HyperLinkClickEvent;
import kd.bos.form.events.HyperLinkClickListener;
import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.RefBillEdit;
import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener;
import kd.bos.list.ListShowParameter;
@ -25,6 +27,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.ec.contract.common.enums.DirectionEnum;
import kd.sdk.plugin.Plugin;
import zcgj.zcdev.zcdev.pr.utils.OrgCheckUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
@ -56,8 +59,8 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
}
//calBcCxAmt();
}
}
}
public void initData(Object contractSettleIdObj){
@ -169,6 +172,11 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
super.registerListener(e);
EntryGrid control = this.getControl("zcgj_entryentity");
control.addHyperClickListener(this);
//kd.bos.form.field.RefBillEdit
RefBillEdit outContractSett = this.getControl("current_zcgj_orgid_out"); //支出合同结算单
if(outContractSett != null) {
outContractSett.addBeforeF7SelectListener(this);
}
BasedataEdit contractprocess = this.getControl("zcgj_cbs"); //承包工序
if(contractprocess != null) {
@ -257,7 +265,19 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
String name = beforeF7SelectEvent.getProperty().getName();
if(name.equals("zcgj_cbs")) {//工序根据项目过滤
if(name.equals("zcgj_ec_out_contract_sett")){
IPageCache iPageCache = this.getView().getParentView().getService(IPageCache.class);
String listOrgId = iPageCache.get("current_zcgj_orgid_out");
List<Long> ids = new ArrayList<>();
if(StringUtils.isNotBlank(listOrgId)){
for (String s : listOrgId.split(",")) {
ids.add(Long.parseLong(s));
}
}
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
QFilter qFilter = new QFilter("org", QCP.in, ids);
showParameter.getListFilterParameter().getQFilters().add(qFilter);
}else if(name.equals("zcgj_cbs")) {//工序根据项目过滤
Object projectObj = this.getModel().getValue("zcgj_project");
if(projectObj instanceof DynamicObject){
DynamicObject project = (DynamicObject) projectObj;