设备维修申请单添加申请人部门过滤逻辑和申请人修改后赋值申请人部门逻辑

This commit is contained in:
xuhaihui 2025-09-02 09:50:54 +08:00
parent c6211f7dde
commit 2b909980b0
1 changed files with 43 additions and 8 deletions

View File

@ -16,8 +16,10 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.sdk.plugin.Plugin;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.EventObject;
import java.util.List;
/**
* 设备维修申请表单插件
@ -28,6 +30,8 @@ public class MaintenanceBillPlugin extends AbstractBillPlugIn implements Plugin,
super.registerListener(e);
BasedataEdit zcgj_equipment = this.getView().getControl("zcgj_equipment");//设备名称
zcgj_equipment.addBeforeF7SelectListener(this);
BasedataEdit zcgj_applidepart = getView().getControl("zcgj_applidepart");//申请人部门
zcgj_applidepart.addBeforeF7SelectListener(this);
}
@Override
@ -75,20 +79,51 @@ public class MaintenanceBillPlugin extends AbstractBillPlugIn implements Plugin,
entryCollection.clear();
this.getView().updateView("entryentity");//刷新分录
}
} else if ("zcgj_person".equals(name)) {
//申请人
ChangeData[] changeSet = e.getChangeSet();
ChangeData changeData = changeSet[0];
Object newValue = changeData.getNewValue();//新值
if (newValue == null) {
this.getModel().setValue("zcgj_applidepart", null);//清空申请人部门字段
return;
}
DynamicObject zcgj_reqperson = (DynamicObject) newValue;//物资申请人
long mainOrgID = UserServiceHelper.getUserMainOrgId((Long) zcgj_reqperson.getPkValue());//获取用户默认部门id
this.getModel().setValue("zcgj_applidepart", mainOrgID);//申请人部门
}
}
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
Object zcgj_accountOrg = this.getModel().getValue("zcgj_accountorg");//财务记账组织
if (zcgj_accountOrg != null) {
DynamicObject zcgj_accountOrg1 = (DynamicObject) zcgj_accountOrg;
QFilter qFilter = new QFilter("useorg", QCP.equals, zcgj_accountOrg1.getPkValue());
formShowParameter.getListFilterParameter().getQFilters().add(qFilter);
} else {
this.getView().showErrorNotification("请先填写财务记账组织!!");
beforeF7SelectEvent.setCancel(true);
String propertyName = beforeF7SelectEvent.getProperty().getName();
List<QFilter> qFilters = new ArrayList<>();
if(propertyName.equals("zcgj_equipment")){
//设备名称
Object zcgj_accountOrg = this.getModel().getValue("zcgj_accountorg");//财务记账组织
if (zcgj_accountOrg != null) {
DynamicObject zcgj_accountOrg1 = (DynamicObject) zcgj_accountOrg;
qFilters.add(new QFilter("useorg", QCP.equals, zcgj_accountOrg1.getPkValue()));
} else {
this.getView().showErrorNotification("请先填写财务记账组织!!");
beforeF7SelectEvent.setCancel(true);
}
}else if(propertyName.equals("zcgj_applidepart")){
//申请人部门
Object zcgj_person = this.getModel().getValue("zcgj_person");//申请人
if (zcgj_person == null) {
this.getView().showErrorNotification("请先填写物资申请人!!");
beforeF7SelectEvent.setCancel(true);
}
DynamicObject zcgj_person1 = (DynamicObject) zcgj_person;//申请人
List<Long> ids = new ArrayList<>();
if (zcgj_person1 != null) {
ids = UserServiceHelper.getOrgsUserJoin((Long) zcgj_person1.getPkValue());
}
qFilters.add(new QFilter("id", QCP.in, ids));
formShowParameter.setCustomParam("isIncludeAllSub", "true");//包含下级
}
formShowParameter.getListFilterParameter().setQFilters(qFilters);
}
}