付款申请单费用项目过滤问题处理

This commit is contained in:
zhangzhiguo 2025-07-30 15:58:46 +08:00
parent 8321bb3b40
commit e370c05eba
1 changed files with 32 additions and 71 deletions

View File

@ -5,6 +5,7 @@ import kd.bos.bill.BillShowParameter;
import kd.bos.bill.OperationStatus; import kd.bos.bill.OperationStatus;
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.entity.datamodel.events.PropertyChangedArgs;
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,6 +15,7 @@ import kd.bos.mvc.bill.BillView;
import kd.bos.orm.query.QCP; import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter; import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.QueryServiceHelper; import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.util.StringUtils;
import kd.sdk.plugin.Plugin; import kd.sdk.plugin.Plugin;
import java.util.ArrayList; import java.util.ArrayList;
@ -58,64 +60,20 @@ public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plu
@Override @Override
public void propertyChanged(PropertyChangedArgs e) { public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e); super.propertyChanged(e);
String name = e.getProperty().getName(); String billFormId = ((BillView) this.getView()).getFormId();//单据标识
/*if("person".equals(name)){ if("ec_paymentapply".equals(billFormId)) {//付款申请单
String name = e.getProperty().getName();
ChangeData changeData = e.getChangeSet()[0];//获取改变的数据 ChangeData changeData = e.getChangeSet()[0];//获取改变的数据
DynamicObject oldValue = (DynamicObject) changeData.getOldValue(); if("paymenttype".equals(name)){
DynamicObject newValue = (DynamicObject) changeData.getNewValue(); int rowIndex = e.getChangeSet()[0].getRowIndex();
if(newValue !=null){ DynamicObject dataEntity = this.getModel().getDataEntity(true);
long userid = newValue.getLong("id"); DynamicObjectCollection entryentity = (DynamicObjectCollection)dataEntity.get("entryentity");
long mainOrgId = UserServiceHelper.getUserMainOrgId(userid); if(entryentity != null){
List<Long> orgsUserJoin = UserServiceHelper.getOrgsUserJoin(userid); entryentity.get(rowIndex).set("zcgj_expenseitem", null);
DynamicObject org = (DynamicObject) this.getModel().getValue("fiaccountorg"); this.getView().updateView("zcgj_expenseitem",rowIndex);
if(org!=null && orgsUserJoin!=null && !orgsUserJoin.isEmpty()){
Set<Long> collect = new HashSet<>(orgsUserJoin);
if(collect.contains(org.getLong("id"))){
this.getModel().setValue("zcgj_persondepart", org.getLong("id"));
this.getView().updateView("zcgj_persondepart");
}else{
this.getModel().setValue("zcgj_persondepart", mainOrgId);
this.getView().updateView("zcgj_persondepart");
}
}else{
this.getModel().setValue("zcgj_persondepart", mainOrgId);
this.getView().updateView("zcgj_persondepart");
} }
}else{
this.getView().showErrorNotification("申请人不能为空");
} }
}*/ }
/*else if("fiaccountorg".equals(name)){
ChangeData changeData = e.getChangeSet()[0];//获取改变的数据
DynamicObject oldValue = (DynamicObject) changeData.getOldValue();
DynamicObject newValue = (DynamicObject) changeData.getNewValue();
if(newValue !=null){
DynamicObject person = this.getModel().getDataEntity().getDynamicObject("person");
long userid = person.getLong("id");
long mainOrgId = UserServiceHelper.getUserMainOrgId(userid);
List<Long> orgsUserJoin = UserServiceHelper.getOrgsUserJoin(userid);
List<Long> allDepartment = UserServiceHelper.getAllDepartmentByUserId(userid);
HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(userid,false);
List<Long> hasPermOrgs = userHasPermOrgs.getHasPermOrgs();
List<Long> userDepartment = UserServiceHelper.getUserDepartment(userid, false);
if(hasPermOrgs!=null && !hasPermOrgs.isEmpty()){
Set<Long> collect = new HashSet<>(hasPermOrgs);
if(collect.contains(newValue.getLong("id"))){
this.getModel().setValue("zcgj_persondepart", newValue.getLong("id"));
this.getView().updateView("zcgj_persondepart");
}else{
this.getModel().setValue("zcgj_persondepart", mainOrgId);
this.getView().updateView("zcgj_persondepart");
}
}else{
this.getModel().setValue("zcgj_persondepart", mainOrgId);
this.getView().updateView("zcgj_persondepart");
}
}else{
this.getView().showErrorNotification("所属组织不能为空!");
}
}*/
} }
@Override @Override
@ -139,26 +97,29 @@ public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plu
DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity"); DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");
if (dynamicObjectCollection != null) { if (dynamicObjectCollection != null) {
String paymenttype = dynamicObjectCollection.get(row).getString("paymenttype");//支付类型 String paymenttype = dynamicObjectCollection.get(row).getString("paymenttype");//支付类型
List<String> numbers = new ArrayList<>();
QFilter biztypefilter = null;
if("PREPAYMENT".equals(paymenttype)){ if("PREPAYMENT".equals(paymenttype)){
QFilter biztypefilter = new QFilter("zcgj_biztype", QCP.equals, "50"); //过滤业务单据为支出财务确认单 biztypefilter= new QFilter("zcgj_biztype", QCP.equals, "50");
//分录过滤 }else{
//使用BusinessDataServiceHelper.load查出来的数据返回的是符合条件的整单即使只有分录中的某一行符合条件也会返回整张单包括其他分录行的数据 biztypefilter = new QFilter("zcgj_biztype", QCP.not_equals, "50");
//使用 QueryServiceHelper.query查出来的数据只会包含符合条件的分录行不含其他行数据 }
DynamicObjectCollection accountfeeEntries = QueryServiceHelper.query("zcgj_accountfee", //分录过滤
"zcgj_entryentity.zcgj_fee.number", new QFilter[]{biztypefilter});//费用与科目分类单 //使用BusinessDataServiceHelper.load查出来的数据返回的是符合条件的整单即使只有分录中的某一行符合条件也会返回整张单包括其他分录行的数据
List<String> numbers = new ArrayList<>(); //使用 QueryServiceHelper.query查出来的数据只会包含符合条件的分录行不含其他行数据
if (accountfeeEntries != null) { DynamicObjectCollection accountfeeEntries = QueryServiceHelper.query("zcgj_accountfee",
for (DynamicObject dynamicObject : accountfeeEntries) { "zcgj_entryentity.zcgj_fee.number", new QFilter[]{biztypefilter});//费用与科目分类单
String zcgjAccounttypeNumber = dynamicObject.getString("zcgj_entryentity.zcgj_fee.number"); if (accountfeeEntries != null) {
if (zcgjAccounttypeNumber != null) { for (DynamicObject dynamicObject : accountfeeEntries) {
numbers.add(zcgjAccounttypeNumber); String zcgjAccounttypeNumber = dynamicObject.getString("zcgj_entryentity.zcgj_fee.number");
} if (zcgjAccounttypeNumber != null) {
numbers.add(zcgjAccounttypeNumber);
} }
} }
QFilter qFilter = new QFilter("number", QCP.in, numbers);
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
formShowParameter.getListFilterParameter().getQFilters().add(qFilter);
} }
QFilter qFilter = new QFilter("number", QCP.in, numbers);
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
formShowParameter.getListFilterParameter().getQFilters().add(qFilter);
} }
} }