如果付款申请单有下游排程单且排程单是已退单,则说明这个付款申请单不用再下推了
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