feat(uapbd): 优化物料信息查询功能
- 增加对 ts 参数的处理,支持单个时间戳和时间范围查询 - 将时间条件整合到 extraCondition 中,以适应特殊查询要求 - 移除直接使用 ts 参数作为查询条件的情况,确保查询逻辑的正确性
This commit is contained in:
parent
cd69de508d
commit
e1c376970b
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue