如果付款申请单有下游排程单且排程单是已退单,则说明这个付款申请单不用再下推了
This commit is contained in:
parent
502fedf8b5
commit
82b76f0756
|
|
@ -13,6 +13,7 @@ import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.schedule.executor.AbstractTask;
|
import kd.bos.schedule.executor.AbstractTask;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
|
@ -51,18 +52,20 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin {
|
||||||
//同一个用户在多个界面操作同一张,也不允许操作
|
//同一个用户在多个界面操作同一张,也不允许操作
|
||||||
operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true));
|
operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true));
|
||||||
|
|
||||||
List<DynamicObject> qualifiedBills = new ArrayList<>();
|
List<DynamicObject> qualifiedBills = new ArrayList<>();//需要下推的付款申请单的集合
|
||||||
|
DynamicObjectCollection entry;
|
||||||
|
boolean scheduleflag;
|
||||||
for (DynamicObject dynamicObject : recBillMap.values()) {
|
for (DynamicObject dynamicObject : recBillMap.values()) {
|
||||||
// 注意:executeOperate 需要一个数组形式的 DynamicObject[]
|
// 注意:executeOperate 需要一个数组形式的 DynamicObject[]
|
||||||
DynamicObjectCollection entry = dynamicObject.getDynamicObjectCollection("entry");
|
entry = dynamicObject.getDynamicObjectCollection("entry");
|
||||||
if (entry!=null && entry.size()!=0){
|
if (entry!=null && entry.size()!=0){
|
||||||
//判断是否集团内-境内外供应商(外部系统单据类型=I,返回false)
|
//判断是否集团内-境内外供应商(外部系统单据类型=I,返回false)
|
||||||
DynamicObject entryObj = entry.get(0);
|
boolean supplierFilter = supplierFilter(dynamicObject,entry.get(0));
|
||||||
boolean supplierFilter = supplierFilter(dynamicObject,entryObj);
|
|
||||||
//判断是否存在数据在下推期间范围(到期日是当前月月底前)
|
//判断是否存在数据在下推期间范围(到期日是当前月月底前)
|
||||||
boolean expirationDateFilter = expirationDateFilter(entry);
|
boolean expirationDateFilter = expirationDateFilter(entry);
|
||||||
if (!supplierFilter && expirationDateFilter){
|
//如果付款申请单有下游排程单且排程单是已退单,则说明这个付款申请单不用再下推了
|
||||||
|
scheduleflag = scheduleFilter(dynamicObject.getLong("id"));
|
||||||
|
if (!supplierFilter && expirationDateFilter && scheduleflag){
|
||||||
qualifiedBills.add(dynamicObject);
|
qualifiedBills.add(dynamicObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -86,6 +89,19 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean scheduleFilter(Long payrequestid){
|
||||||
|
//如果付款申请单有下游排程单且排程单是已退单,则说明这个付款申请单不用再下推了,返回false
|
||||||
|
//否则返回true继续下推
|
||||||
|
//付款申请单的id存于排程单的sourcebillid中 如果id无效果,则用sourcebillnumber 对应付款申请单的billno
|
||||||
|
QFilter sqfilter = new QFilter("sourcebillid", QCP.equals, payrequestid);
|
||||||
|
sqfilter.and("schedulstatus", QCP.equals, "yetchargeback");//排程状态已退单
|
||||||
|
if (QueryServiceHelper.exists("psd_schedulebill", sqfilter.toArray())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//entry为付款申请单的第一行
|
||||||
private boolean supplierFilter(DynamicObject dynamicObject,DynamicObject entry){
|
private boolean supplierFilter(DynamicObject dynamicObject,DynamicObject entry){
|
||||||
boolean isFilterSupplier = false;
|
boolean isFilterSupplier = false;
|
||||||
//如果外部系统单据类型=I,直接返回false
|
//如果外部系统单据类型=I,直接返回false
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue