parent
78b5d1c91b
commit
21b6a01732
|
@ -10,13 +10,11 @@ import kd.bos.entity.plugin.args.AfterOperationArgs;
|
|||
import kd.bos.entity.plugin.args.BeforeOperationArgs;
|
||||
import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
|
||||
import kd.bos.entity.plugin.args.ReturnOperationArgs;
|
||||
import kd.bos.entity.validate.AbstractValidator;
|
||||
import kd.bos.entity.validate.ValidatePriority;
|
||||
import kd.bos.entity.validate.ValidateResult;
|
||||
import kd.bos.entity.validate.ValidateResultCollection;
|
||||
import kd.bos.entity.validate.*;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import shkd.sys.sys.plugin.list.ElectronicPayDealListPlugin;
|
||||
import shkd.sys.sys.plugin.operation.domain.TimeValidator;
|
||||
|
||||
import java.time.Duration;
|
||||
|
@ -33,14 +31,14 @@ public class ElectronicPayDealOPPlugin extends AbstractOperationServicePlugIn im
|
|||
@Override
|
||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||
super.onPreparePropertys(e);
|
||||
Iterator<Map.Entry<Long, LocalDateTime>> iterator = timemap.entrySet().iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Map.Entry<Long, LocalDateTime> entry = iterator.next();
|
||||
Duration duration = Duration.between(entry.getValue(), LocalDateTime.now());
|
||||
if (duration.getSeconds() > 10) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
// Iterator<Map.Entry<Long, LocalDateTime>> iterator = timemap.entrySet().iterator();
|
||||
// while (iterator.hasNext()) {
|
||||
// Map.Entry<Long, LocalDateTime> entry = iterator.next();
|
||||
// Duration duration = Duration.between(entry.getValue(), LocalDateTime.now());
|
||||
// if (duration.getSeconds() > 10) {
|
||||
// iterator.remove();
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -78,25 +76,25 @@ public class ElectronicPayDealOPPlugin extends AbstractOperationServicePlugIn im
|
|||
|
||||
@Override
|
||||
public void onReturnOperation(ReturnOperationArgs e) {
|
||||
List<Object> overtime = new ArrayList<>();//存放因连续点击而校验失败的数据
|
||||
super.onReturnOperation(e);
|
||||
ValidateResultCollection validateResult = this.operationResult.getValidateResult();
|
||||
List<ValidateResult> validateErrors = validateResult.getValidateErrors();
|
||||
for (ValidateResult validateError : validateErrors) {
|
||||
List<OperateErrorInfo> allErrorInfo = validateError.getAllErrorInfo();
|
||||
for (OperateErrorInfo operateErrorInfo : allErrorInfo) {
|
||||
String message = operateErrorInfo.getMessage();
|
||||
if (message.contains("当前单据已更新操作结果,请十秒后再更新")){
|
||||
overtime.add(operateErrorInfo.getPkValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
List<Object> successPkIds = e.getOperationResult().getSuccessPkIds();//执行成功的数据
|
||||
Map<Object, String> billNos = ((OperationResult) e.getOperationResult()).getBillNos();
|
||||
billNos.keySet().removeAll(successPkIds);
|
||||
billNos.keySet().removeAll(overtime);
|
||||
for (Object key : billNos.keySet()) {
|
||||
timemap.remove(key);
|
||||
}
|
||||
// List<Object> overtime = new ArrayList<>();//存放因连续点击而校验失败的数据
|
||||
// super.onReturnOperation(e);
|
||||
// ValidateResultCollection validateResult = this.operationResult.getValidateResult();
|
||||
// List<ValidateResult> validateErrors = validateResult.getValidateErrors();
|
||||
// for (ValidateResult validateError : validateErrors) {
|
||||
// List<OperateErrorInfo> allErrorInfo = validateError.getAllErrorInfo();
|
||||
// for (OperateErrorInfo operateErrorInfo : allErrorInfo) {
|
||||
// String message = operateErrorInfo.getMessage();
|
||||
// if (message.contains("当前单据已更新操作结果,请十秒后再更新")){
|
||||
// overtime.add(operateErrorInfo.getPkValue());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// List<Object> successPkIds = e.getOperationResult().getSuccessPkIds();//执行成功的数据
|
||||
// Map<Object, String> billNos = ((OperationResult) e.getOperationResult()).getBillNos();//用于存放要去除的数据
|
||||
// billNos.keySet().removeAll(successPkIds);
|
||||
// billNos.keySet().removeAll(overtime);
|
||||
// for (Object key : billNos.keySet()) {
|
||||
// timemap.remove(key);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,21 +20,26 @@ public class TimeValidator extends AbstractValidator {
|
|||
for(ExtendedDataEntity obj :dataEntities){
|
||||
DynamicObject bill = obj.getDataEntity();//获取当前单据的数据包
|
||||
Long id = bill.getLong("id");//进一步获取编码字段
|
||||
Map<Long, LocalDateTime> timemap = ElectronicPayDealOPPlugin.timemap;
|
||||
LocalDateTime localDateTime = timemap.get(id);
|
||||
LocalDateTime currentTime = LocalDateTime.now();
|
||||
if (localDateTime!=null){
|
||||
|
||||
Duration duration = Duration.between(localDateTime, currentTime);
|
||||
// 判断时间差是否超过 10 秒
|
||||
if (duration.getSeconds() <= 10) {
|
||||
this.addMessage(obj,"当前单据已更新操作结果,请十秒后再更新", ErrorLevel.Error);//错误消息
|
||||
timemap.put(id,localDateTime);
|
||||
}else {
|
||||
timemap.put(id,currentTime);
|
||||
}
|
||||
}else {
|
||||
timemap.put(id,currentTime);
|
||||
// Map<Long, LocalDateTime> timemap = ElectronicPayDealOPPlugin.timemap;
|
||||
// LocalDateTime localDateTime = timemap.get(id);
|
||||
// LocalDateTime currentTime = LocalDateTime.now();
|
||||
// if (localDateTime!=null){
|
||||
//
|
||||
// Duration duration = Duration.between(localDateTime, currentTime);
|
||||
// // 判断时间差是否超过 10 秒
|
||||
// if (duration.getSeconds() <= 10) {
|
||||
// this.addMessage(obj,"当前单据已更新操作结果,请十秒后再更新", ErrorLevel.Error);//错误消息
|
||||
// timemap.put(id,localDateTime);
|
||||
// }else {
|
||||
// timemap.put(id,currentTime);
|
||||
// }
|
||||
// }else {
|
||||
// timemap.put(id,currentTime);
|
||||
// }
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(id, obj.getDataEntity().getDataEntityType().getName());
|
||||
boolean shkd_lock = dynamicObject.getBoolean("shkd_lock");
|
||||
if (shkd_lock){
|
||||
this.addMessage(obj,"当前单据已锁定", ErrorLevel.Error);//错误消息
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue