feat(uapbd): 优化物料信息查询功能

- 增加对 ts 参数的处理,支持单个时间戳和时间范围查询
- 将时间条件整合到 extraCondition 中,以适应特殊查询要求
- 移除直接使用 ts 参数作为查询条件的情况,确保查询逻辑的正确性
This commit is contained in:
张明 2025-05-12 18:50:50 +08:00
parent cd69de508d
commit e1c376970b
1 changed files with 38 additions and 0 deletions

View File

@ -130,6 +130,44 @@ public class QuerySync extends AbstractNCCRestResource {
* 查询物料信息
*/
private JSONString queryMaterial(ApiUfinterface ufinterface) throws DAOException {
Map<String, Object> 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");
}