diff --git a/src/main/java/com/rebuild/server/service/query/AdvFilterParser.java b/src/main/java/com/rebuild/server/service/query/AdvFilterParser.java index 6afad76e4..4ed5d28c9 100644 --- a/src/main/java/com/rebuild/server/service/query/AdvFilterParser.java +++ b/src/main/java/com/rebuild/server/service/query/AdvFilterParser.java @@ -23,6 +23,7 @@ import cn.devezhao.persist4j.Entity; import cn.devezhao.persist4j.Field; import cn.devezhao.persist4j.dialect.FieldType; import cn.devezhao.persist4j.dialect.Type; +import cn.devezhao.persist4j.engine.ID; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -33,8 +34,6 @@ import com.rebuild.server.metadata.entity.DisplayType; import com.rebuild.server.metadata.entity.EasyMeta; import com.rebuild.server.service.bizz.UserHelper; import com.rebuild.server.service.bizz.privileges.Department; -import com.rebuild.web.IllegalParameterException; - import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; @@ -48,6 +47,10 @@ import java.util.List; import java.util.Map; import java.util.Set; +import static cn.devezhao.commons.CalendarUtils.addDay; +import static cn.devezhao.commons.CalendarUtils.addMonth; +import static cn.devezhao.commons.DateFormatUtils.getUTCDateFormat; + /** * 高级查询解析器 * @@ -189,9 +192,9 @@ public class AdvFilterParser { if ("TDA".equalsIgnoreCase(op) || "YTA".equalsIgnoreCase(op) || "TTA".equalsIgnoreCase(op)) { value = getUTCDateFormat().format(CalendarUtils.now()); if ("YTA".equalsIgnoreCase(op)) { - value = getUTCDateFormat().format(CalendarUtils.addDay(-1)); + value = getUTCDateFormat().format(addDay(-1)); } else if ("TTA".equalsIgnoreCase(op)) { - value = getUTCDateFormat().format(CalendarUtils.addDay(1)); + value = getUTCDateFormat().format(addDay(1)); } if (dt == DisplayType.DATETIME) { @@ -217,22 +220,24 @@ public class AdvFilterParser { // TODO 自定义函数 + final ID currentUser = Application.getCurrentUser(); + if ("BFD".equalsIgnoreCase(op)) { - value = getUTCDateFormat().format(CalendarUtils.addDay(-NumberUtils.toInt(value))) + FULL_TIME; + value = getUTCDateFormat().format(addDay(-NumberUtils.toInt(value))) + FULL_TIME; } else if ("AFD".equalsIgnoreCase(op)) { - value = getUTCDateFormat().format(CalendarUtils.addDay(NumberUtils.toInt(value))) + ZERO_TIME; + value = getUTCDateFormat().format(addDay(NumberUtils.toInt(value))) + ZERO_TIME; } else if ("BFM".equalsIgnoreCase(op)) { - value = getUTCDateFormat().format(CalendarUtils.addMonth(-NumberUtils.toInt(value))) + FULL_TIME; + value = getUTCDateFormat().format(addMonth(-NumberUtils.toInt(value))) + FULL_TIME; } else if ("AFM".equalsIgnoreCase(op)) { - value = getUTCDateFormat().format(CalendarUtils.addMonth(NumberUtils.toInt(value))) + ZERO_TIME; + value = getUTCDateFormat().format(addMonth(NumberUtils.toInt(value))) + ZERO_TIME; } else if ("RED".equalsIgnoreCase(op)) { - value = getUTCDateFormat().format(CalendarUtils.addDay(-NumberUtils.toInt(value))) + FULL_TIME; + value = getUTCDateFormat().format(addDay(-NumberUtils.toInt(value))) + FULL_TIME; } else if ("REM".equalsIgnoreCase(op)) { - value = getUTCDateFormat().format(CalendarUtils.addMonth(-NumberUtils.toInt(value))) + FULL_TIME; + value = getUTCDateFormat().format(addMonth(-NumberUtils.toInt(value))) + FULL_TIME; } else if ("SFU".equalsIgnoreCase(op)) { - value = Application.getCurrentUser().toLiteral(); + value = currentUser.toLiteral(); } else if ("SFB".equalsIgnoreCase(op)) { - Department dept = UserHelper.getDepartment(Application.getCurrentUser()); + Department dept = UserHelper.getDepartment(currentUser); if (dept != null) { value = dept.getIdentity().toString(); int refe = fieldMeta.getReferenceEntity().getEntityCode(); @@ -245,7 +250,7 @@ public class AdvFilterParser { } } } else if ("SFD".equalsIgnoreCase(op)) { - Department dept = UserHelper.getDepartment(Application.getCurrentUser()); + Department dept = UserHelper.getDepartment(currentUser); if (dept != null) { int refe = fieldMeta.getReferenceEntity().getEntityCode(); if (refe == EntityHelper.Department) {