支付信息变更单-列表过滤锁定当前变更人
This commit is contained in:
parent
9361e4ec6e
commit
e12d9ed338
|
|
@ -3,6 +3,7 @@ package shjh.jhzj7.fi.fi.plugin.task;
|
|||
import kd.bos.context.RequestContext;
|
||||
import kd.bos.dataentity.OperateOption;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.operate.OperateOptionConst;
|
||||
import kd.bos.entity.operate.result.OperationResult;
|
||||
import kd.bos.exception.KDException;
|
||||
|
|
@ -16,6 +17,8 @@ import kd.bos.servicehelper.operation.OperationServiceHelper;
|
|||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
|
@ -47,11 +50,19 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin {
|
|||
// 不显示交互提示,自动执行到底
|
||||
operateOption.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true));
|
||||
// 全部校验通过才保存
|
||||
operateOption.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(true));
|
||||
//operateOption.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(true));
|
||||
//同一个用户在多个界面操作同一张,也不允许操作
|
||||
operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true));
|
||||
for (DynamicObject dynamicObject : recBillMap.values()) {
|
||||
// 注意:executeOperate 需要一个数组形式的 DynamicObject[]
|
||||
DynamicObjectCollection entry = dynamicObject.getDynamicObjectCollection("entry");
|
||||
if (entry!=null && entry.size()!=0){
|
||||
//判断是否集团内-境内外供应商
|
||||
DynamicObject dynamicObject1 = entry.get(0);
|
||||
boolean supplierFilter = supplierFilter(dynamicObject1);
|
||||
//判断是否存在数据在下推期间范围(到期日是当前月月底前)
|
||||
boolean expirationDateFilter = expirationDateFilter(entry);
|
||||
if (!supplierFilter && expirationDateFilter){
|
||||
DynamicObject[] billArray = new DynamicObject[]{dynamicObject};
|
||||
OperationResult operationResult = OperationServiceHelper.executeOperate("pushandsave", AP_PAYAPPLY, billArray, operateOption);
|
||||
// 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等
|
||||
|
|
@ -63,4 +74,45 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean supplierFilter(DynamicObject dynamicObject){
|
||||
boolean isFilterSupplier = false;
|
||||
String asstacttype = dynamicObject.getString("e_asstacttype");
|
||||
if ("bd_supplier".equals(asstacttype)){
|
||||
DynamicObject asstact = dynamicObject.getDynamicObject("e_asstact");
|
||||
if (asstact!=null){
|
||||
//获取供应商分类映射
|
||||
QFilter qFilter1 = new QFilter("supplier.id", QCP.equals, asstact.getPkValue());
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle("bd_suppliergroupdetail", qFilter1.toArray());
|
||||
if (dynamicObject1!=null){
|
||||
String number = dynamicObject1.getString("group.number");
|
||||
if ("D200".equals(number) || "D201".equals(number)){
|
||||
isFilterSupplier=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return isFilterSupplier;
|
||||
}
|
||||
|
||||
private boolean expirationDateFilter(DynamicObjectCollection entry){
|
||||
boolean hasValidDueDate = false; // 默认false,表示没有符合条件的数据
|
||||
|
||||
// 获取当前月的最后一天(月底)
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
Date endOfCurrentMonth = calendar.getTime();
|
||||
|
||||
//遍历entry集合,检查是否有到期日小于等于当前月月底的数据
|
||||
for (DynamicObject object : entry) {
|
||||
Date dueDate = object.getDate("e_duedate");
|
||||
if (dueDate != null && dueDate.compareTo(endOfCurrentMonth) <= 0) {
|
||||
hasValidDueDate = true; // 找到符合条件的数据
|
||||
break; // 只要有一条符合就退出循环
|
||||
}
|
||||
}
|
||||
return hasValidDueDate;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue