合同台账列表插件添加跳过下推校验逻辑
This commit is contained in:
parent
4dcab8e9ad
commit
a17157d7b8
|
|
@ -6,15 +6,7 @@
|
|||
package zcgj.zcdev.zcdev.fs.plugin.form;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.EventObject;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
|
|
@ -40,7 +32,9 @@ import kd.bos.list.plugin.AbstractListPlugin;
|
|||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.mvc.list.ListView;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import kd.fi.er.business.isc.IscHelper;
|
||||
import kd.fi.er.business.pub.ContractUtil;
|
||||
|
|
@ -50,6 +44,10 @@ import kd.fi.er.formplugin.publicbiz.bill.contract.ContractBillList;
|
|||
import kd.fi.er.model.EntityInfo;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
/*
|
||||
* 合同台账列表插件
|
||||
* 说明:添加跳过下推校验逻辑
|
||||
*/
|
||||
public class ContractBillListExt extends AbstractListPlugin {
|
||||
private static final String BAR_CHANGEA = "bar_changea";
|
||||
private static final String BAR_CHANGEB = "bar_changeb";
|
||||
|
|
@ -268,15 +266,43 @@ public class ContractBillListExt extends AbstractListPlugin {
|
|||
args.setCancel(true);
|
||||
return;
|
||||
}
|
||||
// 获取需要跳过校验的单据列表
|
||||
Set<Object> skipDocIds = new HashSet<>();
|
||||
QFilter[] qFilter1 = new QFilter[]{new QFilter("number", QCP.equals, "er_contractbill")};
|
||||
DynamicObject zcgj_bypass_push_validate = BusinessDataServiceHelper.loadSingle("zcgj_bypass_push_validate", qFilter1);
|
||||
if (zcgj_bypass_push_validate != null) {
|
||||
String zcgj_skip_doc_check = zcgj_bypass_push_validate.getString("zcgj_skip_doc_check");
|
||||
if (zcgj_skip_doc_check != null) {
|
||||
QFilter[] qFilter2 = new QFilter[]{new QFilter("billno", QCP.equals, zcgj_skip_doc_check)};
|
||||
DynamicObject er_contractbill = BusinessDataServiceHelper.loadSingle("er_contractbill", "id", qFilter2);
|
||||
if (er_contractbill != null) {
|
||||
// 将需要跳过的单据ID添加到集合中
|
||||
skipDocIds.add(er_contractbill.getPkValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 从rows中过滤掉需要跳过的单据
|
||||
ListSelectedRowCollection filteredRows = new ListSelectedRowCollection();
|
||||
for (ListSelectedRow row1 : rows) {
|
||||
if (!skipDocIds.contains(row1.getPrimaryKeyValue())) {
|
||||
filteredRows.add(row1);
|
||||
}
|
||||
}
|
||||
if (filteredRows.size() == 0){
|
||||
return;
|
||||
}
|
||||
|
||||
OnWayStatus = OnWayStatus + ",F";
|
||||
List listpub = ContractUtil.checkDownBills(rows, operateKey);
|
||||
List listpub = ContractUtil.checkDownBills(filteredRows, operateKey);//二开替换
|
||||
// List listpub = ContractUtil.checkDownBills(rows, operateKey);//源码
|
||||
if (listpub.size() > 0) {
|
||||
this.getView().showTipNotification(String.format(String.format(ResManager.loadKDString("已存在未完成的下游单据,请完成流程后再发起%1$s。", "ContractBillList_9", "fi-er-formplugin", new Object[0]), opName)));
|
||||
args.setCancel(true);
|
||||
}
|
||||
|
||||
if (!ContractUtil.checkMultiPublicReim(rows, this.getView())) {
|
||||
if (!ContractUtil.checkMultiPublicReim(filteredRows, this.getView())) {//二开替换
|
||||
// if (!ContractUtil.checkMultiPublicReim(rows, this.getView())) {//源码
|
||||
args.setCancel(true);
|
||||
}
|
||||
break;
|
||||
|
|
@ -284,8 +310,36 @@ public class ContractBillListExt extends AbstractListPlugin {
|
|||
if (!ContractUtil.checkRelationContract(this.getView(), rows, ResManager.loadKDString("预付单", "ErHomeAddNewDialogPlugin_5", "fi-er-formplugin", new Object[0]))) {
|
||||
args.setCancel(true);
|
||||
} else {
|
||||
// 获取需要跳过校验的单据列表
|
||||
Set<Object> skipDocIds1 = new HashSet<>();
|
||||
QFilter[] qFilter11 = new QFilter[]{new QFilter("number", QCP.equals, "er_contractbill")};
|
||||
DynamicObject zcgj_bypass_push_validate1 = BusinessDataServiceHelper.loadSingle("zcgj_bypass_push_validate", qFilter11);
|
||||
if (zcgj_bypass_push_validate1 != null) {
|
||||
String zcgj_skip_doc_check = zcgj_bypass_push_validate1.getString("zcgj_skip_doc_check");
|
||||
if (zcgj_skip_doc_check != null) {
|
||||
QFilter[] qFilter2 = new QFilter[]{new QFilter("billno", QCP.equals, zcgj_skip_doc_check)};
|
||||
DynamicObject er_contractbill = BusinessDataServiceHelper.loadSingle("er_contractbill", "id", qFilter2);
|
||||
if (er_contractbill != null) {
|
||||
// 将需要跳过的单据ID添加到集合中
|
||||
skipDocIds1.add(er_contractbill.getPkValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 从rows中过滤掉需要跳过的单据
|
||||
ListSelectedRowCollection filteredRows1 = new ListSelectedRowCollection();
|
||||
for (ListSelectedRow row1 : rows) {
|
||||
if (!skipDocIds1.contains(row1.getPrimaryKeyValue())) {
|
||||
filteredRows1.add(row1);
|
||||
}
|
||||
}
|
||||
if (filteredRows1.size() == 0){
|
||||
return;
|
||||
}
|
||||
|
||||
OnWayStatus = OnWayStatus + ",F";
|
||||
List listpre = ContractUtil.checkDownBills(rows, operateKey);
|
||||
List listpre = ContractUtil.checkDownBills(filteredRows1, operateKey);//二开替代
|
||||
// List listpre = ContractUtil.checkDownBills(rows, operateKey);//源码
|
||||
if (listpre.size() > 0) {
|
||||
this.getView().showTipNotification(String.format(String.format(ResManager.loadKDString("已存在未完成的下游单据,请完成流程后再发起%1$s。", "ContractBillList_9", "fi-er-formplugin", new Object[0]), opName)));
|
||||
args.setCancel(true);
|
||||
|
|
|
|||
Loading…
Reference in New Issue