diff --git a/uapbd/src/public/nccloud/api/uapbd/QuerySync.java b/uapbd/src/public/nccloud/api/uapbd/QuerySync.java index a24eed7..180519e 100644 --- a/uapbd/src/public/nccloud/api/uapbd/QuerySync.java +++ b/uapbd/src/public/nccloud/api/uapbd/QuerySync.java @@ -130,6 +130,44 @@ 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"); }