作废验证
parent
25b1161928
commit
f323a4ba5b
@ -0,0 +1,58 @@
|
||||
package com.docus.server.report.config;
|
||||
|
||||
import com.docus.core.util.Func;
|
||||
import com.docus.server.report.util.TableJsonRead;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TaskValidateConfig {
|
||||
private final static String CONFIG_PATH = "data-config";
|
||||
private final static String CONFIG_FILE_NAME = "task-validate-config.json";
|
||||
|
||||
public static void main(String[] args) {
|
||||
CollectTaskConfig collectTaskConfig = getCollectTaskConfig("1");
|
||||
System.out.println(collectTaskConfig);
|
||||
}
|
||||
|
||||
public static CollectTaskConfig getCollectTaskConfig(String collectorId) {
|
||||
TableJsonRead tableJsonRead = new TableJsonRead();
|
||||
String configContent = tableJsonRead.ReadContent(CONFIG_PATH, CONFIG_FILE_NAME);
|
||||
if (Func.isBlank(configContent)) {
|
||||
return null;
|
||||
}
|
||||
List<CollectTaskConfig> configs = Func.parseJsonArray(configContent, CollectTaskConfig.class);
|
||||
for (CollectTaskConfig config : configs) {
|
||||
if (collectorId.equals(config.getCollectorId())) {
|
||||
return config;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class CollectTaskConfig {
|
||||
private String collectorId;
|
||||
private List<CollectTaskFilterConfig> cancel;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class CollectTaskFilterConfig {
|
||||
private ValidateConfig admissionDate;
|
||||
private ValidateConfig dischargeDate;
|
||||
private ValidateConfig admissionDepartment;
|
||||
private ValidateConfig dischargeDepartment;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class ValidateConfig {
|
||||
private String operator;
|
||||
private String value;
|
||||
private Integer dataType;
|
||||
public boolean isEffective() {
|
||||
return dataType != null && Func.isNotBlank(operator) && Func.isNotBlank(value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.docus.server.report.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum DataTypeEnum {
|
||||
NUMBER(1,"数字类型"),
|
||||
STRING(2,"字符串"),
|
||||
DATE_TIME(3,"时间 pattern=yyyy-MM-dd HH:mm:ss");
|
||||
Integer code;
|
||||
String desc;
|
||||
DataTypeEnum(Integer code,String desc){
|
||||
this.code=code;
|
||||
this.desc=desc;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package com.docus.server.report.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author wyb
|
||||
*/
|
||||
|
||||
@Getter
|
||||
public enum OperatorEnum {
|
||||
|
||||
EQ("=","eq","等于"),
|
||||
NOT_EQ_1("!=","not","不等于"),
|
||||
NOT_EQ_2("<>","not","不等于"),
|
||||
GT(">","gt","大于"),
|
||||
GE(">=","ge","大于等于"),
|
||||
LT("<","lt","小于"),
|
||||
LE("<=","le","小于等于");
|
||||
|
||||
String masterCode;
|
||||
String slaveCode;
|
||||
String desc;
|
||||
|
||||
OperatorEnum(String masterCode,String slaveCode,String desc){
|
||||
this.masterCode=masterCode;
|
||||
this.slaveCode=slaveCode;
|
||||
this.desc=desc;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,169 @@
|
||||
package com.docus.server.report.validate;
|
||||
|
||||
import com.docus.infrastructure.web.api.ResultCode;
|
||||
import com.docus.server.report.config.TaskValidateConfig;
|
||||
import com.docus.server.report.enums.DataTypeEnum;
|
||||
import com.docus.server.report.enums.OperatorEnum;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.ValidationException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
public abstract class CollectTaskValidation {
|
||||
private final static DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
/**
|
||||
* 验证
|
||||
*
|
||||
* @param text
|
||||
* @param validateConfig
|
||||
*/
|
||||
public abstract ValidationResult validate(String text, TaskValidateConfig.ValidateConfig validateConfig);
|
||||
|
||||
/**
|
||||
* 验证时间
|
||||
*/
|
||||
public static ValidationResult validateDate(String text, TaskValidateConfig.ValidateConfig validateConfig) {
|
||||
String operator = validateConfig.getOperator().toLowerCase();
|
||||
String message="日期验证,操作符号:" + operator + ",操作表达:" + text + ".compareTo(" + validateConfig.getValue() + ")";
|
||||
LocalDateTime localDateTime1 = LocalDateTime.parse(text, DATETIME_FORMATTER);
|
||||
LocalDateTime localDateTime2 = LocalDateTime.parse(validateConfig.getValue(), DATETIME_FORMATTER);
|
||||
int compareToResult = localDateTime1.compareTo(localDateTime2);
|
||||
return getValidationResultByCompareToResult(operator,compareToResult,message);
|
||||
}
|
||||
|
||||
|
||||
private static ValidationResult getValidationResultByCompareToResult(String operator,int compareToResult,String message){
|
||||
if (OperatorEnum.EQ.getMasterCode().equals(operator) || OperatorEnum.EQ.getSlaveCode().equals(operator)) {
|
||||
if (compareToResult == 0) {
|
||||
return new ValidationResult(ResultCode.SUCCESS, message + " 通过");
|
||||
}
|
||||
return new ValidationResult(ResultCode.FAILED, message + " 不通过"); }
|
||||
if (OperatorEnum.NOT_EQ_1.getMasterCode().equals(operator) || OperatorEnum.NOT_EQ_1.getSlaveCode().equals(operator)) {
|
||||
if (compareToResult != 0) {
|
||||
return new ValidationResult(ResultCode.SUCCESS, message + " 通过");
|
||||
}
|
||||
return new ValidationResult(ResultCode.FAILED, message + " 不通过"); }
|
||||
if (OperatorEnum.NOT_EQ_2.getMasterCode().equals(operator) || OperatorEnum.NOT_EQ_2.getSlaveCode().equals(operator)) {
|
||||
if (compareToResult != 0) {
|
||||
return new ValidationResult(ResultCode.SUCCESS, message + " 通过");
|
||||
}
|
||||
return new ValidationResult(ResultCode.FAILED, message + " 不通过"); }
|
||||
if (OperatorEnum.GT.getMasterCode().equals(operator) || OperatorEnum.GT.getSlaveCode().equals(operator)) {
|
||||
if (compareToResult > 0) {
|
||||
return new ValidationResult(ResultCode.SUCCESS, message + " 通过");
|
||||
}
|
||||
return new ValidationResult(ResultCode.FAILED, message + " 不通过"); }
|
||||
if (OperatorEnum.GE.getMasterCode().equals(operator) || OperatorEnum.GE.getSlaveCode().equals(operator)) {
|
||||
if (compareToResult >= 0) {
|
||||
return new ValidationResult(ResultCode.SUCCESS, message + " 通过");
|
||||
}
|
||||
return new ValidationResult(ResultCode.FAILED, message + " 不通过"); }
|
||||
if (OperatorEnum.LT.getMasterCode().equals(operator) || OperatorEnum.LT.getSlaveCode().equals(operator)) {
|
||||
if (compareToResult < 0) {
|
||||
return new ValidationResult(ResultCode.SUCCESS, message + " 通过");
|
||||
}
|
||||
return new ValidationResult(ResultCode.FAILED, message + " 不通过"); }
|
||||
if (OperatorEnum.LE.getMasterCode().equals(operator) || OperatorEnum.LE.getSlaveCode().equals(operator)) {
|
||||
if (compareToResult <= 0) {
|
||||
return new ValidationResult(ResultCode.SUCCESS, message + " 通过");
|
||||
}
|
||||
return new ValidationResult(ResultCode.FAILED, message + " 不通过");
|
||||
}
|
||||
throw new ValidationException("未知的操作符号!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证字符串
|
||||
*/
|
||||
public static ValidationResult validateString(String text, TaskValidateConfig.ValidateConfig validateConfig) {
|
||||
String operator = validateConfig.getOperator().toLowerCase();
|
||||
int compareToResult = text.compareTo(validateConfig.getValue());
|
||||
String message = "字符串验证,操作符号:" + operator + ",操作表达:" + text + ".compareTo(" + validateConfig.getValue() + ")";
|
||||
return getValidationResultByCompareToResult(operator,compareToResult,message);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 验证数字
|
||||
*/
|
||||
public static ValidationResult validateNumber(String text, TaskValidateConfig.ValidateConfig validateConfig) {
|
||||
throw new RuntimeException("任务验证数字类型待开发!");
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class ValidationResult {
|
||||
private ResultCode code;
|
||||
private String message;
|
||||
|
||||
public ValidationResult() {
|
||||
}
|
||||
|
||||
public ValidationResult(ResultCode code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
}
|
||||
|
||||
public static class CollectTaskAdmissionDateValidation extends CollectTaskValidation {
|
||||
|
||||
@Override
|
||||
public ValidationResult validate(String text, TaskValidateConfig.ValidateConfig validateConfig) {
|
||||
if (DataTypeEnum.DATE_TIME.getCode().equals(validateConfig.getDataType())) {
|
||||
return validateDate(text, validateConfig);
|
||||
}
|
||||
return new ValidationResult(ResultCode.FAILED,"日期验证,数据类型不为"+DataTypeEnum.DATE_TIME.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
public static class CollectTaskDischargeDateValidation extends CollectTaskValidation {
|
||||
|
||||
@Override
|
||||
public ValidationResult validate(String text, TaskValidateConfig.ValidateConfig validateConfig) {
|
||||
if (DataTypeEnum.DATE_TIME.getCode().equals(validateConfig.getDataType())) {
|
||||
return validateDate(text, validateConfig);
|
||||
}
|
||||
return new ValidationResult(ResultCode.FAILED,"日期验证,数据类型不为"+DataTypeEnum.DATE_TIME.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
public static class CollectTaskAdmissionDepartmentValidation extends CollectTaskValidation {
|
||||
|
||||
@Override
|
||||
public ValidationResult validate(String text, TaskValidateConfig.ValidateConfig validateConfig) {
|
||||
if (DataTypeEnum.STRING.getCode().equals(validateConfig.getDataType())) {
|
||||
return validateString(text, validateConfig);
|
||||
}
|
||||
return new ValidationResult(ResultCode.FAILED,"字符串验证,数据类型不为"+DataTypeEnum.STRING.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
public static class CollectTaskDischargeDepartmentValidation extends CollectTaskValidation {
|
||||
|
||||
@Override
|
||||
public ValidationResult validate(String text, TaskValidateConfig.ValidateConfig validateConfig) {
|
||||
if (DataTypeEnum.STRING.getCode().equals(validateConfig.getDataType())) {
|
||||
return validateString(text, validateConfig);
|
||||
}
|
||||
return new ValidationResult(ResultCode.FAILED,"字符串验证,数据类型不为"+DataTypeEnum.STRING.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
CollectTaskValidation admissionDepartmentValidation = new CollectTaskValidation.CollectTaskAdmissionDateValidation();
|
||||
TaskValidateConfig.ValidateConfig validateConfig = new TaskValidateConfig.ValidateConfig();
|
||||
validateConfig.setValue("2023-04-30 00:00:00");
|
||||
validateConfig.setDataType(DataTypeEnum.DATE_TIME.getCode());
|
||||
validateConfig.setOperator("=");
|
||||
System.out.println(admissionDepartmentValidation.validate("2023-05-01 00:00:00", validateConfig));
|
||||
validateConfig.setOperator("<=");
|
||||
System.out.println(admissionDepartmentValidation.validate("2023-05-01 00:00:00", validateConfig));
|
||||
validateConfig.setOperator(">=");
|
||||
System.out.println(admissionDepartmentValidation.validate("2023-05-01 00:00:00", validateConfig));
|
||||
|
||||
validateConfig.setOperator("not");
|
||||
System.out.println(admissionDepartmentValidation.validate("2023-05-01 00:00:00", validateConfig));
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue