|
@@ -1,15 +1,19 @@
|
|
|
package com.persagy.dmp.rwd.migrate.controller;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.fasterxml.jackson.databind.node.ArrayNode;
|
|
|
+import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
import com.persagy.dmp.basic.model.QueryCriteria;
|
|
|
import com.persagy.dmp.basic.utils.QueryCriteriaHelper;
|
|
|
import com.persagy.dmp.common.constant.CommonConstant;
|
|
|
import com.persagy.dmp.common.constant.ResponseCode;
|
|
|
import com.persagy.dmp.common.context.AppContext;
|
|
|
import com.persagy.dmp.common.exception.BusinessException;
|
|
|
+import com.persagy.dmp.common.model.entity.AuditableEntity;
|
|
|
import com.persagy.dmp.common.model.response.CommonResult;
|
|
|
import com.persagy.dmp.common.utils.ParamCheckUtil;
|
|
|
import com.persagy.dmp.common.utils.ResultHelper;
|
|
@@ -53,6 +57,7 @@ public class DigitalMigrateLogController {
|
|
|
// 添加所属项目条件
|
|
|
ConditionUtil.ensureProjectCriteriaDirectly(wrapper);
|
|
|
// 转换查询条件
|
|
|
+ processCreateTime(criteria, wrapper);
|
|
|
QueryCriteriaHelper.toWrapper(wrapper, criteria, SyncData.class);
|
|
|
Page page = QueryCriteriaHelper.toPage(criteria);
|
|
|
if(criteria.isOnlyCount()) {
|
|
@@ -86,6 +91,7 @@ public class DigitalMigrateLogController {
|
|
|
// 添加所属项目条件
|
|
|
ConditionUtil.ensureProjectCriteriaDirectly(wrapper);
|
|
|
// 转换查询条件
|
|
|
+ processCreateTime(criteria, wrapper);
|
|
|
QueryCriteriaHelper.toWrapper(wrapper, criteria, SyncData.class);
|
|
|
service.remove(wrapper);
|
|
|
return ResultHelper.success();
|
|
@@ -107,4 +113,33 @@ public class DigitalMigrateLogController {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 兼容
|
|
|
+ * {
|
|
|
+ * "order": "lastUpdate asc, objId asc",
|
|
|
+ * "pageNumber": 1,
|
|
|
+ * "pageSize": 15,
|
|
|
+ * "filters": "projectId='Pj9909990004';sign=2;type='create';tableName='dt_relation';creationTime in ['20220120121146','20220123121146']"
|
|
|
+ * }
|
|
|
+ * 特殊处理creation_time in ['20220120121146', '20220122121146'] 转化为时间段查询 -> creation_time >= '20220120121146' AND creation_time <= '20220122121146'
|
|
|
+ * @param criteria
|
|
|
+ * @param wrapper
|
|
|
+ */
|
|
|
+ private void processCreateTime(QueryCriteria criteria, QueryWrapper<SyncData> wrapper){
|
|
|
+ if(criteria == null){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ ObjectNode objectNode = criteria.getCriteria();
|
|
|
+ if(objectNode.get(AuditableEntity.DO_PROP_CREATIONTIME).isArray()){
|
|
|
+ ArrayNode arrayNode = (ArrayNode) objectNode.get(AuditableEntity.DO_PROP_CREATIONTIME);
|
|
|
+ if(arrayNode.size() != 2 || CollUtil.isEmpty(arrayNode)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ wrapper.ge(AuditableEntity.PROP_CREATIONTIME,arrayNode.get(0).textValue())
|
|
|
+ .le(AuditableEntity.PROP_CREATIONTIME,arrayNode.get(1).textValue());
|
|
|
+ objectNode.remove(AuditableEntity.DO_PROP_CREATIONTIME);
|
|
|
+ criteria.setCriteria(objectNode);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|