diff --git a/uapbd/src/public/nccloud/api/uapbd/QuerySync.java b/uapbd/src/public/nccloud/api/uapbd/QuerySync.java index 180519e..13eb400 100644 --- a/uapbd/src/public/nccloud/api/uapbd/QuerySync.java +++ b/uapbd/src/public/nccloud/api/uapbd/QuerySync.java @@ -37,18 +37,20 @@ public class QuerySync extends AbstractNCCRestResource { private JSONString baseQuery(ApiUfinterface apiUfinterface, String viewName, String pkColumnName) throws DAOException { Map data = apiUfinterface.getData().getParamdata(); + // 处理特殊字段 + processExtraParams(data); JSONObject pageInfo = (JSONObject) JSONObject.toJSON(apiUfinterface.getPageInfo()); data.remove("type"); // 移除类型参数,因为它仅用于路由,向下传递会影响查询 - + // 获取额外条件 String extraCondition = null; if (data.containsKey("extraCondition")) { extraCondition = (String) data.get("extraCondition"); data.remove("extraCondition"); // 移除额外条件参数,防止影响查询 } - + String condition = QuerySyncSqlUtils.buildUniversalCondition(data); - + // 如果存在额外条件,拼接到条件后面 if (extraCondition != null && !extraCondition.isEmpty()) { condition = condition + " AND " + extraCondition; @@ -109,6 +111,47 @@ public class QuerySync extends AbstractNCCRestResource { } } + /** + * 处理类似TS的特殊字段 + */ + private static void processExtraParams(Map data) { + // 处理ts参数 + if (data.containsKey("ts")) { + Object tsObj = data.get("ts"); + String tsCondition = null; + + if (tsObj instanceof String) { + String ts = (String) tsObj; + if (!ts.contains(",")) { // 单个时间戳 + // 从时间戳中提取日期部分,构建当天零点到该时间的范围 + String dayStart = ts.split(" ")[0] + " 00:00:00"; + tsCondition = "ts >= '" + dayStart + "' AND ts <= '" + ts + "'"; + } else { // 已经是时间范围,格式如:startTime,endTime + String[] timeRange = ts.split(","); + if (timeRange.length == 2) { + tsCondition = "ts >= '" + timeRange[0] + "' AND ts <= '" + timeRange[1] + "'"; + } + } + } + + // 将构建好的条件放入extraCondition + if (tsCondition != null) { + // 检查是否已有其他extraCondition + String existingExtraCondition = data.containsKey("extraCondition") ? + (String) data.get("extraCondition") : ""; + + if (existingExtraCondition.isEmpty()) { + data.put("extraCondition", tsCondition); + } else { + data.put("extraCondition", existingExtraCondition + " AND " + tsCondition); + } + } + + // 从参数中移除ts,避免它被直接用于查询条件 + data.remove("ts"); + } + } + private JSONString queryCustomer(ApiUfinterface ufinterface) throws DAOException { return baseQuery(ufinterface, "V_UAPBD_QUERYSYNC_CUSTOMER", "pk_customer"); } @@ -131,46 +174,10 @@ public class QuerySync extends AbstractNCCRestResource { */ private JSONString queryMaterial(ApiUfinterface ufinterface) throws DAOException { Map data = ufinterface.getData().getParamdata(); - - // 处理ts参数 - if (data.containsKey("ts")) { - Object tsObj = data.get("ts"); - String tsCondition = null; - - if (tsObj instanceof String) { - String ts = (String) tsObj; - if (!ts.contains(",")) { // 单个时间戳 - // 从时间戳中提取日期部分,构建当天零点到该时间的范围 - String dayStart = ts.split(" ")[0] + " 00:00:00"; - tsCondition = "ts >= '" + dayStart + "' AND ts <= '" + ts + "'"; - } else { // 已经是时间范围,格式如:startTime,endTime - String[] timeRange = ts.split(","); - if (timeRange.length == 2) { - tsCondition = "ts >= '" + timeRange[0] + "' AND ts <= '" + timeRange[1] + "'"; - } - } - } - - // 将构建好的条件放入extraCondition - if (tsCondition != null) { - // 检查是否已有其他extraCondition - String existingExtraCondition = data.containsKey("extraCondition") ? - (String) data.get("extraCondition") : ""; - - if (existingExtraCondition.isEmpty()) { - data.put("extraCondition", tsCondition); - } else { - data.put("extraCondition", existingExtraCondition + " AND " + tsCondition); - } - } - - // 从参数中移除ts,避免它被直接用于查询条件 - data.remove("ts"); - } - return baseQuery(ufinterface, "V_UAPBD_QUERYSYNC_MATERIAL", "pk_material"); } + /** * 查询BOM维护信息 */