如果付款申请单有下游排程单且排程单是已退单,则说明这个付款申请单不用再下推了
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.schedule.executor.AbstractTask; | ||||
| import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||
| import kd.bos.servicehelper.QueryServiceHelper; | ||||
| import kd.bos.servicehelper.operation.OperationServiceHelper; | ||||
| import kd.sdk.plugin.Plugin; | ||||
| 
 | ||||
|  | @ -51,18 +52,20 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin { | |||
|             //同一个用户在多个界面操作同一张,也不允许操作 | ||||
|             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()) { | ||||
|                 // 注意:executeOperate 需要一个数组形式的 DynamicObject[] | ||||
|                 DynamicObjectCollection entry = dynamicObject.getDynamicObjectCollection("entry"); | ||||
|                 entry = dynamicObject.getDynamicObjectCollection("entry"); | ||||
|                 if (entry!=null && entry.size()!=0){ | ||||
|                     //判断是否集团内-境内外供应商(外部系统单据类型=I,返回false) | ||||
|                     DynamicObject entryObj = entry.get(0); | ||||
|                     boolean supplierFilter = supplierFilter(dynamicObject,entryObj); | ||||
|                     boolean supplierFilter = supplierFilter(dynamicObject,entry.get(0)); | ||||
|                     //判断是否存在数据在下推期间范围(到期日是当前月月底前) | ||||
|                     boolean expirationDateFilter = expirationDateFilter(entry); | ||||
|                     if (!supplierFilter && expirationDateFilter){ | ||||
|                     //如果付款申请单有下游排程单且排程单是已退单,则说明这个付款申请单不用再下推了 | ||||
|                     scheduleflag = scheduleFilter(dynamicObject.getLong("id")); | ||||
|                     if (!supplierFilter && expirationDateFilter && scheduleflag){ | ||||
|                         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){ | ||||
|         boolean isFilterSupplier = false; | ||||
|         //如果外部系统单据类型=I,直接返回false | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue