用款申请单插件

This commit is contained in:
xuhaihui 2025-07-16 14:49:32 +08:00
parent 0660fc913a
commit f8c601d531
3 changed files with 112 additions and 2 deletions

View File

@ -16,7 +16,7 @@ import kd.sdk.plugin.Plugin;
import java.util.*; import java.util.*;
/** /**
* 用款申请单部门字段过滤与初始赋值逻辑+所属组织默认赋值 * 用款申请单废弃部门字段过滤与初始赋值逻辑+所属组织默认赋值
*/ */
public class ApplicationFundsF7Plugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener { public class ApplicationFundsF7Plugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {

View File

@ -15,7 +15,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* 用款申请单插件 * 用款申请单废弃插件
*/ */
public class ApplicationfundsPlugin extends AbstractBillPlugIn implements AttachmentOperaClickListener { public class ApplicationfundsPlugin extends AbstractBillPlugIn implements AttachmentOperaClickListener {

View File

@ -0,0 +1,110 @@
package zcgj.zcdev.zcdev.fs.plugin.form;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.bill.BillShowParameter;
import kd.bos.bill.OperationStatus;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.IClientViewProxy;
import kd.bos.form.control.AttachmentPanel;
import kd.bos.form.control.events.AttachmentOperaClickListener;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.form.field.BasedataEdit;
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.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.sdk.plugin.Plugin;
import java.util.ArrayList;
import java.util.EventObject;
import java.util.List;
import java.util.Map;
/**
* 用款申请单表单插件
*/
public class PaymentApplicationPlugin extends AbstractBillPlugIn implements AttachmentOperaClickListener, Plugin, BeforeF7SelectListener {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
BasedataEdit Value = this.getView().getControl("zcgj_department");//部门
Value.addBeforeF7SelectListener(this);
AttachmentPanel panel = getControl("attachmentpanel");//附件
panel.addOperaClickListener(this);
;
}
@Override
public void afterBindData(EventObject e) {
super.afterBindData(e);
setAttFileVisble();//隐藏删除按钮
BillShowParameter bsp = (BillShowParameter) this.getView().getFormShowParameter();
if (bsp.getStatus() == OperationStatus.ADDNEW) {
//如果是新增时
DynamicObject creator = this.getModel().getDataEntity().getDynamicObject("creator");//创建人
if (creator != null) {
long mainOrgId = UserServiceHelper.getUserMainOrgId(creator.getLong("id"));
this.getModel().setValue("zcgj_department", mainOrgId);//部门
this.getView().updateView("zcgj_department");
}
}
}
@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) {
setAttFileVisble();
super.afterDoOperation(afterDoOperationEventArgs);
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
if (e.getProperty().getName().equals("attachmentpanel")) {
setAttFileVisble();
}
}
private void setAttFileVisble() {
String billstatus = String.valueOf(this.getModel().getValue("status"));
if (!billstatus.equals("A")) {
AttachmentPanel attachmentPanel = this.getControl("attachmentpanel");
List<Map<String, Object>> attachmentData = attachmentPanel.getAttachmentData();
if (attachmentData == null && attachmentData.isEmpty()) {
return;
}
List<Map<String, Object>> attachmentDatas = attachmentPanel.getAttachmentData();
for (Map<String, Object> attachmentMap : attachmentDatas) {
String visiablePreview = "1";//是否显示预览按钮
String visiableDownload = "1";//是否显示下载按钮
String visiableRename = "1";//是否显示重命名按钮
String visiableDelete = "0";//是否显示删除按钮
//visible参数规则为01组成,0代表不可见,1代表可见
attachmentMap.put("visible", visiablePreview + visiableDownload + visiableRename + visiableDelete);
//attachmentMap.put("hiddenBtn",hiddenBtnList);
}
ClientViewProxy cvp = this.getView().getService(IClientViewProxy.class);
cvp.setFieldProperty("attachmentpanel", "v", attachmentDatas);
}
}
}