用款申请单插件优化
This commit is contained in:
		
							parent
							
								
									6e29a3ed3c
								
							
						
					
					
						commit
						02ed45c2e5
					
				| 
						 | 
				
			
			@ -4,6 +4,8 @@ import kd.bos.bill.AbstractBillPlugIn;
 | 
			
		|||
import kd.bos.bill.BillShowParameter;
 | 
			
		||||
import kd.bos.bill.OperationStatus;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
import kd.bos.dataentity.metadata.IDataEntityProperty;
 | 
			
		||||
import kd.bos.entity.datamodel.events.ChangeData;
 | 
			
		||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 | 
			
		||||
import kd.bos.form.IClientViewProxy;
 | 
			
		||||
| 
						 | 
				
			
			@ -15,8 +17,10 @@ import kd.bos.form.field.events.BeforeF7SelectEvent;
 | 
			
		|||
import kd.bos.form.field.events.BeforeF7SelectListener;
 | 
			
		||||
import kd.bos.list.ListShowParameter;
 | 
			
		||||
import kd.bos.mvc.form.ClientViewProxy;
 | 
			
		||||
import kd.bos.org.utils.OrgTreeUtils;
 | 
			
		||||
import kd.bos.orm.query.QCP;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.user.UserServiceHelper;
 | 
			
		||||
import kd.sdk.plugin.Plugin;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -33,12 +37,23 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta
 | 
			
		|||
    @Override
 | 
			
		||||
    public void registerListener(EventObject e) {
 | 
			
		||||
        super.registerListener(e);
 | 
			
		||||
        BasedataEdit Value = this.getView().getControl("zcgj_department");//部门
 | 
			
		||||
        Value.addBeforeF7SelectListener(this);
 | 
			
		||||
        BasedataEdit zcgj_department = this.getView().getControl("zcgj_department");//部门
 | 
			
		||||
        zcgj_department.addBeforeF7SelectListener(this);
 | 
			
		||||
        BasedataEdit zcgj_org = this.getView().getControl("zcgj_org");//所属组织
 | 
			
		||||
        zcgj_org.addBeforeF7SelectListener(this);
 | 
			
		||||
        AttachmentPanel panel = getControl("attachmentpanel");//附件
 | 
			
		||||
        panel.addOperaClickListener(this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterCreateNewData(EventObject e) {
 | 
			
		||||
        super.afterCreateNewData(e);
 | 
			
		||||
        DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门
 | 
			
		||||
        if (costDept != null) {
 | 
			
		||||
            setOrg(costDept);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterBindData(EventObject e) {
 | 
			
		||||
        super.afterBindData(e);
 | 
			
		||||
| 
						 | 
				
			
			@ -49,29 +64,12 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta
 | 
			
		|||
            DynamicObject creator = this.getModel().getDataEntity().getDynamicObject("creator");//创建人
 | 
			
		||||
            if (creator != null) {
 | 
			
		||||
                long mainOrgId = UserServiceHelper.getUserMainOrgId(creator.getLong("id"));
 | 
			
		||||
//                long id = UserServiceHelper.getUserDefaultOrgID(creator.getLong("id"));
 | 
			
		||||
                this.getModel().setValue("zcgj_department", mainOrgId);//部门
 | 
			
		||||
//                this.getModel().setValue("zcgj_org", id);//所属组织
 | 
			
		||||
                this.getView().updateView("zcgj_department");
 | 
			
		||||
                this.getView().updateView("zcgj_org");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
 | 
			
		||||
        ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
 | 
			
		||||
        DynamicObject creator = this.getModel().getDataEntity().getDynamicObject("creator");//创建人
 | 
			
		||||
        if (creator == null) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        List<Long> id = UserServiceHelper.getOrgsUserJoin(creator.getLong("id"));
 | 
			
		||||
        List<QFilter> qFilter = new ArrayList<>();
 | 
			
		||||
        qFilter.add(new QFilter("id", QCP.in, id));
 | 
			
		||||
        formShowParameter.getListFilterParameter().setQFilters(qFilter);
 | 
			
		||||
        formShowParameter.setCustomParam("isIncludeAllSub", "true");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
 | 
			
		||||
        super.afterDoOperation(afterDoOperationEventArgs);
 | 
			
		||||
| 
						 | 
				
			
			@ -83,6 +81,50 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta
 | 
			
		|||
        super.propertyChanged(e);
 | 
			
		||||
        if (e.getProperty().getName().equals("attachmentpanel")) {
 | 
			
		||||
            setAttFileVisble();
 | 
			
		||||
        } else if (e.getProperty().getName().equals("zcgj_department")) {
 | 
			
		||||
            //部门
 | 
			
		||||
            DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门
 | 
			
		||||
            if (costDept != null) {
 | 
			
		||||
                setOrg(costDept);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
 | 
			
		||||
        ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
 | 
			
		||||
        IDataEntityProperty property = beforeF7SelectEvent.getProperty();//过滤字段信息
 | 
			
		||||
        String propertyName = property.getName();//过滤字段标识
 | 
			
		||||
        if (propertyName.equals("zcgj_department")) {
 | 
			
		||||
            // 部门
 | 
			
		||||
            DynamicObject creator = this.getModel().getDataEntity().getDynamicObject("creator");//创建人
 | 
			
		||||
            if (creator == null) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            List<Long> id = UserServiceHelper.getOrgsUserJoin(creator.getLong("id"));
 | 
			
		||||
            List<QFilter> qFilter = new ArrayList<>();
 | 
			
		||||
            qFilter.add(new QFilter("id", QCP.in, id));
 | 
			
		||||
            formShowParameter.getListFilterParameter().setQFilters(qFilter);
 | 
			
		||||
            formShowParameter.setCustomParam("isIncludeAllSub", "true");
 | 
			
		||||
        } else if (propertyName.equals("zcgj_org")) {
 | 
			
		||||
            // 所属组织
 | 
			
		||||
            DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门
 | 
			
		||||
            DynamicObject zcgj_org = (DynamicObject) this.getModel().getValue("zcgj_org");//所属组织
 | 
			
		||||
            if (costDept != null && zcgj_org != null) {
 | 
			
		||||
                DynamicObject orgPattern = costDept.getDynamicObject("orgpattern");
 | 
			
		||||
                if (orgPattern == null) {
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
                String orgPatternNumber = orgPattern.getString("number");
 | 
			
		||||
                if (orgPatternNumber.equals("Orgform06")) {
 | 
			
		||||
                    Long id = (Long) zcgj_org.get("id");
 | 
			
		||||
                    List<QFilter> qFilter = new ArrayList<>();
 | 
			
		||||
                    qFilter.add(new QFilter("id", QCP.in, id));
 | 
			
		||||
                    formShowParameter.getListFilterParameter().setQFilters(qFilter);
 | 
			
		||||
//                    formShowParameter.setCustomParam(OrgTreeUtils.PARAM_INIT_ROOT_ORG_ID, id);
 | 
			
		||||
                    formShowParameter.setCustomParam("isIncludeAllSub", "true");
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -109,4 +151,51 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta
 | 
			
		|||
            cvp.setFieldProperty("attachmentpanel", "v", attachmentDatas);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void setOrg(DynamicObject costDept) {
 | 
			
		||||
        DynamicObject orgPattern = costDept.getDynamicObject("orgpattern");
 | 
			
		||||
        if (orgPattern == null) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        String orgPatternNumber = orgPattern.getString("number");
 | 
			
		||||
        if (!orgPatternNumber.equals("Orgform06")) {
 | 
			
		||||
            //填写的部门的形态不是部门时,直接将部门值赋值给所属组织
 | 
			
		||||
            this.getModel().setValue("zcgj_org", costDept);//所属组织
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        int a = 0;
 | 
			
		||||
        DynamicObject cost;
 | 
			
		||||
        DynamicObject viewParent = null;
 | 
			
		||||
        while (true) {
 | 
			
		||||
            if (a == 0) {
 | 
			
		||||
                //第一次进入循环
 | 
			
		||||
                cost = costDept;
 | 
			
		||||
            } else {
 | 
			
		||||
                QFilter[] qFilters = new QFilter[]{
 | 
			
		||||
                        new QFilter("number", QCP.equals, viewParent.getString("number"))
 | 
			
		||||
                };
 | 
			
		||||
                cost = BusinessDataServiceHelper.loadSingle("bos_adminorg", qFilters);
 | 
			
		||||
            }
 | 
			
		||||
            DynamicObjectCollection structureCollection = cost.getDynamicObjectCollection("structure");//组织结构分录
 | 
			
		||||
            DynamicObject structure = structureCollection.get(0);
 | 
			
		||||
            viewParent = structure.getDynamicObject("viewparent");//上级组织
 | 
			
		||||
            String viewParentNumber = viewParent.getString("number");
 | 
			
		||||
            QFilter[] qFilters = new QFilter[]{
 | 
			
		||||
                    new QFilter("number", QCP.equals, viewParentNumber)
 | 
			
		||||
            };
 | 
			
		||||
            DynamicObject bos_adminOrg = BusinessDataServiceHelper.loadSingle("bos_adminorg", qFilters);//行政组织
 | 
			
		||||
            DynamicObject orgPattern1 = bos_adminOrg.getDynamicObject("orgpattern");//形态
 | 
			
		||||
            String orgPatternNumber1 = orgPattern1.getString("number");
 | 
			
		||||
            if (!orgPatternNumber1.equals("Orgform06")) {
 | 
			
		||||
                //上级不为不为部门的时候,将现在查询的部门赋值给一级承担部门
 | 
			
		||||
                break;
 | 
			
		||||
            } else {
 | 
			
		||||
                a++;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        DynamicObject bos_adminorg = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{
 | 
			
		||||
                new QFilter("number", QCP.equals, viewParent.getString("number"))});
 | 
			
		||||
        this.getModel().setValue("zcgj_org", bos_adminorg);//所属组织
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue