寻源二开指南--变更单组件加载数据插件

使用场景:暂存的变更单,如果切换变更单的来源单据(寻源项目、寻源申请、项目立项),需重新加载新单据的数据,以【项目成员变更】重新加载数据为例
一、继承插件
变更单编辑插件继承PdsChgCompReloadDataTpl插件
package kd.scm.pds.formplugin.edit;
import java.util.EventObject;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.form.IFormView;
import kd.scm.common.constant.BillAssistConstant;
import kd.scm.common.enums.BillStatusEnum;
import kd.scm.pds.common.constant.SrcCommonConstant;
import kd.scm.pds.common.util.PdsCommonUtils;
/**
* 变更单组件--重新加载数据--模板
*
* @author rd_fumin_huang
*
*/
public class PdsChgCompReloadDataTpl extends AbstractBillPlugIn {
@Override
public void beforeBindData(EventObject e) {
super.beforeBindData(e);
IFormView parentView = this.getView().getParentView();
if (parentView == null) {
return;
}
// 是否需要重新加载数据
if (isNeedReload()) {
// 重新加载 单据数据
reloadBillData();
// 重新加载 分录据数据
reloadEntryData();
}
}
/**
* 重新加载 单据数据,如果需要,可以重写该方法
*/
protected void reloadBillData() {
}
/**
* 重新加载 分录据数据,如果需要,可以重写该方法
*/
protected void reloadEntryData() {
}
/**
* 是否需要重新加载数据
*
* @return
*/
protected boolean isNeedReload() {
// 单据状态不是暂存,不需要重新加载数据
if (!isSaveStatus()) {
return false;
}
// 变更单的来源单据ID 如果发生变化,则需要重新加载数据
if (isChgSrcBillId()) {
return true;
}
// 如果单据为空,或分录为空,则需要重新加载数据
if (isBillEmpty() || isEntryEmpty()) {
return true;
}
return false;
}
/**
* 单据状态是否为 暂存
*
* @return
*/
protected boolean isSaveStatus() {
String billStatus = this.getView().getParentView().getModel().getDataEntity().getString(BillAssistConstant.BILL_STATUS);
if (StringUtils.isBlank(billStatus) || BillStatusEnum.SAVE.getVal().equals(billStatus)) {
return true;
}
return false;
}
/**
* 变更单的来源单据ID 是否发生变化
*
* @return
*/
protected boolean isChgSrcBillId() {
// 变更单的来源单据ID(寻源项目、寻源申请、项目立项)
long chgSrcBillId = getChgSrcBillId(this.getView().getParentView().getModel().getDataEntity());
// 源单为空,不需要加载
if (chgSrcBillId == 0) {
return false;
}
// 变更单的来源单据ID 不等于 当前组件的来源单据ID
if (chgSrcBillId != this.getModel().getDataEntity().getLong(SrcCommonConstant.CHGSRCBILLID)) {
// 重新赋值
this.getModel().setValue(SrcCommonConstant.CHGSRCBILLID, chgS寻源二开指南--变更单组件加载数据插件
使用场景:暂存的变更单,如果切换变更单的来源单据(寻源项目、寻源申请、项目立项),需重新加载新单据的数据,以【项目成员变更】重新加...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



