From 56638c01bb2cc61a92f5e03c9a1001be5b5d3699 Mon Sep 17 00:00:00 2001
From: P15GEN2\59518 <lilith@highdatas.com>
Date: 星期六, 18 十月 2025 12:39:31 +0800
Subject: [PATCH] dev 数据清洗
---
foundation.biz/src/biz/clean/CleanEngine.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 55 insertions(+), 5 deletions(-)
diff --git a/foundation.biz/src/biz/clean/CleanEngine.java b/foundation.biz/src/biz/clean/CleanEngine.java
index 53e10b7..7a4b934 100644
--- a/foundation.biz/src/biz/clean/CleanEngine.java
+++ b/foundation.biz/src/biz/clean/CleanEngine.java
@@ -1,29 +1,46 @@
package biz.clean;
+import java.util.Date;
+
import foundation.data.entity.Entity;
+import foundation.data.entity.EntitySet;
+import foundation.data.entity.Filter;
+import foundation.data.object.DataObject;
import foundation.json.JSONReader;
import foundation.preload.Bucket;
public class CleanEngine {
private String id;
+ private String field;
private String name;
private Bucket<Rule> ruleBucket;
private String remark;
+ private Date lastUpdateTime;
public void load(Entity entity) throws Exception {
id = entity.getString("id");
+ field = entity.getString("field_name");
name = entity.getString("name");
remark = entity.getString("remark");
+
+ lastUpdateTime = new Date();
}
public void loadOneRule(Entity entity) throws Exception {
- Rule oneRule = new Rule();
- oneRule.load(entity);
-
if (ruleBucket == null) {
ruleBucket = new Bucket<Rule>();
}
- ruleBucket.loadOne(entity.getId(), oneRule);
+
+ String ruleId = entity.getId();
+ boolean active = entity.getBoolean("is_active", true);
+ if (!active) {
+ ruleBucket.remove(ruleId);
+ return ;
+ }
+
+ Rule oneRule = new Rule();
+ oneRule.load(entity);
+ ruleBucket.loadOne(ruleId, oneRule);
}
public String modify(String value) throws Exception {
@@ -36,6 +53,22 @@
}
}
return null;
+ }
+
+ public void checkUpdate() throws Exception {
+ DataObject dataObject = DataObject.getInstance("sys_clean_detail");
+ Filter filter = new Filter("last_update_time", ">=" , lastUpdateTime);
+ EntitySet detailSet = dataObject.getTableEntitySet(filter);
+
+ for (Entity detail : detailSet) {
+ String parentId = detail.getParentId();
+
+ if (id.equalsIgnoreCase(parentId)) {
+ loadOneRule(detail);
+ }
+ }
+
+ lastUpdateTime = new Date();
}
public JSONReader modify(JSONReader data, String field) throws Exception {
@@ -71,6 +104,24 @@
return null;
}
+ public Entity modify(Entity entity) throws Exception {
+ Entity data = entity;
+
+ String value = data.getString(field);
+
+ for (Rule rule: ruleBucket) {
+ String result = rule.match(value);
+
+ if (result != null) {
+ // return entity value if match anyone rule
+ data.set(field, result);
+ return data;
+ }
+ }
+
+ return null;
+ }
+
public String getId() {
return id;
}
@@ -86,5 +137,4 @@
public String getRemark() {
return remark;
}
-
}
--
Gitblit v1.8.0