付款申请自动下推:增加过滤、批量下推
This commit is contained in:
		
							parent
							
								
									e12d9ed338
								
							
						
					
					
						commit
						585d18afd8
					
				|  | @ -16,10 +16,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||||
| import kd.bos.servicehelper.operation.OperationServiceHelper; | import kd.bos.servicehelper.operation.OperationServiceHelper; | ||||||
| import kd.sdk.plugin.Plugin; | import kd.sdk.plugin.Plugin; | ||||||
| 
 | 
 | ||||||
| import java.util.ArrayList; | import java.util.*; | ||||||
| import java.util.Calendar; |  | ||||||
| import java.util.Date; |  | ||||||
| import java.util.Map; |  | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * 定时任务 付款申请定时生成付款单 |  * 定时任务 付款申请定时生成付款单 | ||||||
|  | @ -36,7 +33,6 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin { | ||||||
|     public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException { |     public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException { | ||||||
|         // 【单据状态】=已审核 |         // 【单据状态】=已审核 | ||||||
|         QFilter qFilter = new QFilter("billstatus", QCP.equals, "C"); |         QFilter qFilter = new QFilter("billstatus", QCP.equals, "C"); | ||||||
| 
 |  | ||||||
|         DynamicObject[] collection = BusinessDataServiceHelper.load(AP_PAYAPPLY, "id,billstatus", qFilter.toArray()); |         DynamicObject[] collection = BusinessDataServiceHelper.load(AP_PAYAPPLY, "id,billstatus", qFilter.toArray()); | ||||||
|         if (collection.length!=0){ |         if (collection.length!=0){ | ||||||
|             ArrayList<Long> ids = new ArrayList<>(); |             ArrayList<Long> ids = new ArrayList<>(); | ||||||
|  | @ -53,6 +49,9 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin { | ||||||
|             //operateOption.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(true)); |             //operateOption.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(true)); | ||||||
|             //同一个用户在多个界面操作同一张,也不允许操作 |             //同一个用户在多个界面操作同一张,也不允许操作 | ||||||
|             operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true)); |             operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true)); | ||||||
|  | 
 | ||||||
|  |             List<DynamicObject> qualifiedBills = new ArrayList<>(); | ||||||
|  | 
 | ||||||
|             for (DynamicObject dynamicObject : recBillMap.values()) { |             for (DynamicObject dynamicObject : recBillMap.values()) { | ||||||
|                 // 注意:executeOperate 需要一个数组形式的 DynamicObject[] |                 // 注意:executeOperate 需要一个数组形式的 DynamicObject[] | ||||||
|                 DynamicObjectCollection entry = dynamicObject.getDynamicObjectCollection("entry"); |                 DynamicObjectCollection entry = dynamicObject.getDynamicObjectCollection("entry"); | ||||||
|  | @ -63,17 +62,26 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin { | ||||||
|                     //判断是否存在数据在下推期间范围(到期日是当前月月底前) |                     //判断是否存在数据在下推期间范围(到期日是当前月月底前) | ||||||
|                     boolean expirationDateFilter = expirationDateFilter(entry); |                     boolean expirationDateFilter = expirationDateFilter(entry); | ||||||
|                     if (!supplierFilter && expirationDateFilter){ |                     if (!supplierFilter && expirationDateFilter){ | ||||||
|                         DynamicObject[] billArray = new DynamicObject[]{dynamicObject}; |                         qualifiedBills.add(dynamicObject); | ||||||
|                         OperationResult operationResult = OperationServiceHelper.executeOperate("pushandsave", AP_PAYAPPLY, billArray, operateOption); |  | ||||||
|                         // 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 |  | ||||||
|                         if (operationResult.isSuccess()) { |  | ||||||
|                             logger.info("执行 pay 成功,单据编号:" + dynamicObject.getPkValue()); |  | ||||||
|                         } else { |  | ||||||
|                             logger.error(operationResult.getMessage()); |  | ||||||
|                         } |  | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |             if (!qualifiedBills.isEmpty()){ | ||||||
|  |                 DynamicObject[] billArray = qualifiedBills.toArray(new DynamicObject[0]); | ||||||
|  |                 OperationResult operationResult = OperationServiceHelper.executeOperate("pushandsave", AP_PAYAPPLY, billArray, operateOption); | ||||||
|  |                 // 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 | ||||||
|  |                 if (operationResult.isSuccess()) { | ||||||
|  |                     logger.info("执行 pay 成功,共处理单据数量:" + qualifiedBills.size()); | ||||||
|  |                     // Log individual successful bills if needed | ||||||
|  |                     for (DynamicObject bill : qualifiedBills) { | ||||||
|  |                         logger.info("成功单据编号:" + bill.getPkValue()); | ||||||
|  |                     } | ||||||
|  |                 } else { | ||||||
|  |                     logger.error("批量下推失败:" + operationResult.getMessage()); | ||||||
|  |                 } | ||||||
|  |             }else { | ||||||
|  |                 logger.info("没有符合条件的单据需要下推"); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue