合同台账列表插件添加跳过下推校验逻辑
This commit is contained in:
parent
4dcab8e9ad
commit
a17157d7b8
|
|
@ -6,15 +6,7 @@
|
||||||
package zcgj.zcdev.zcdev.fs.plugin.form;
|
package zcgj.zcdev.zcdev.fs.plugin.form;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
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.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
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.Log;
|
||||||
import kd.bos.logging.LogFactory;
|
import kd.bos.logging.LogFactory;
|
||||||
import kd.bos.mvc.list.ListView;
|
import kd.bos.mvc.list.ListView;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
import kd.bos.servicehelper.QueryServiceHelper;
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
import kd.fi.er.business.isc.IscHelper;
|
import kd.fi.er.business.isc.IscHelper;
|
||||||
import kd.fi.er.business.pub.ContractUtil;
|
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 kd.fi.er.model.EntityInfo;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 合同台账列表插件
|
||||||
|
* 说明:添加跳过下推校验逻辑
|
||||||
|
*/
|
||||||
public class ContractBillListExt extends AbstractListPlugin {
|
public class ContractBillListExt extends AbstractListPlugin {
|
||||||
private static final String BAR_CHANGEA = "bar_changea";
|
private static final String BAR_CHANGEA = "bar_changea";
|
||||||
private static final String BAR_CHANGEB = "bar_changeb";
|
private static final String BAR_CHANGEB = "bar_changeb";
|
||||||
|
|
@ -268,15 +266,43 @@ public class ContractBillListExt extends AbstractListPlugin {
|
||||||
args.setCancel(true);
|
args.setCancel(true);
|
||||||
return;
|
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";
|
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) {
|
if (listpub.size() > 0) {
|
||||||
this.getView().showTipNotification(String.format(String.format(ResManager.loadKDString("已存在未完成的下游单据,请完成流程后再发起%1$s。", "ContractBillList_9", "fi-er-formplugin", new Object[0]), opName)));
|
this.getView().showTipNotification(String.format(String.format(ResManager.loadKDString("已存在未完成的下游单据,请完成流程后再发起%1$s。", "ContractBillList_9", "fi-er-formplugin", new Object[0]), opName)));
|
||||||
args.setCancel(true);
|
args.setCancel(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ContractUtil.checkMultiPublicReim(rows, this.getView())) {
|
if (!ContractUtil.checkMultiPublicReim(filteredRows, this.getView())) {//二开替换
|
||||||
|
// if (!ContractUtil.checkMultiPublicReim(rows, this.getView())) {//源码
|
||||||
args.setCancel(true);
|
args.setCancel(true);
|
||||||
}
|
}
|
||||||
break;
|
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]))) {
|
if (!ContractUtil.checkRelationContract(this.getView(), rows, ResManager.loadKDString("预付单", "ErHomeAddNewDialogPlugin_5", "fi-er-formplugin", new Object[0]))) {
|
||||||
args.setCancel(true);
|
args.setCancel(true);
|
||||||
} else {
|
} 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";
|
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) {
|
if (listpre.size() > 0) {
|
||||||
this.getView().showTipNotification(String.format(String.format(ResManager.loadKDString("已存在未完成的下游单据,请完成流程后再发起%1$s。", "ContractBillList_9", "fi-er-formplugin", new Object[0]), opName)));
|
this.getView().showTipNotification(String.format(String.format(ResManager.loadKDString("已存在未完成的下游单据,请完成流程后再发起%1$s。", "ContractBillList_9", "fi-er-formplugin", new Object[0]), opName)));
|
||||||
args.setCancel(true);
|
args.setCancel(true);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue