|
|
|
@ -21,8 +21,13 @@ import com.querydsl.core.types.dsl.StringPath;
|
|
|
|
|
import com.querydsl.core.types.dsl.StringTemplate;
|
|
|
|
|
import com.querydsl.sql.SQLExpressions;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.springframework.data.jpa.repository.Modifying;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import javax.persistence.EntityManager;
|
|
|
|
|
import javax.persistence.PersistenceContext;
|
|
|
|
|
import javax.persistence.Query;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
@ -34,13 +39,18 @@ import java.util.List;
|
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
|
public class JlV1BackDataServiceImpl extends AbstractService<TbJLBackDataV1Entity, Long> implements JlV1BackDataService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@PersistenceContext
|
|
|
|
|
protected EntityManager entityManager;
|
|
|
|
|
QTbJLBackDataV1Entity v1Entity = QTbJLBackDataV1Entity.tbJLBackDataV1Entity;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<DmpMonitorJpaDto> queryByTagAndTimeAndFlag
|
|
|
|
|
(Date startTime, Date endTime, List<String> tagList, Integer flag) {
|
|
|
|
|
return this.applyJPA(query -> {
|
|
|
|
|
StringPath t3 = Expressions.stringPath("t3");
|
|
|
|
|
StringTemplate dateExpr;
|
|
|
|
|
QTbJLBackDataV1Entity v1Entity = QTbJLBackDataV1Entity.tbJLBackDataV1Entity;
|
|
|
|
|
|
|
|
|
|
if (flag == 1) {
|
|
|
|
|
dateExpr = Expressions.stringTemplate(SqlConstant.DATE_EXPR, v1Entity.gmtCreate);
|
|
|
|
|
SimpleTemplate<String> t3Tag = Expressions.template(String.class, "t3.tag");
|
|
|
|
@ -48,9 +58,9 @@ public class JlV1BackDataServiceImpl extends AbstractService<TbJLBackDataV1Entit
|
|
|
|
|
SimpleTemplate<Date> t3Date = Expressions.template(Date.class, "t3.gmtCreate");
|
|
|
|
|
// 封装子查询
|
|
|
|
|
SubQueryExpression<Tuple> gmtCreate = SQLExpressions.select
|
|
|
|
|
(v1Entity.imei, v1Entity.tag,v1Entity.gmtCreate.max().as(SqlConstant.CREATE_TIME)).from
|
|
|
|
|
(v1Entity.imei, v1Entity.tag, v1Entity.gmtCreate.max().as(SqlConstant.CREATE_TIME)).from
|
|
|
|
|
(v1Entity).where(v1Entity.tag.in(tagList).and(v1Entity.imei.ne(CharSequenceUtil.EMPTY).and
|
|
|
|
|
(v1Entity.imei.ne(DataConstant.IMEI_NULL_TAG)).and(v1Entity.imei.ne(DataConstant.IMEI_TAG)))).groupBy(v1Entity.imei,v1Entity.tag);
|
|
|
|
|
(v1Entity.imei.ne(DataConstant.IMEI_NULL_TAG)).and(v1Entity.imei.ne(DataConstant.IMEI_TAG)))).groupBy(v1Entity.imei, v1Entity.tag);
|
|
|
|
|
|
|
|
|
|
// 结果返回
|
|
|
|
|
List<QueryQuantityVO> voList = query.select(Projections.bean
|
|
|
|
@ -64,31 +74,19 @@ public class JlV1BackDataServiceImpl extends AbstractService<TbJLBackDataV1Entit
|
|
|
|
|
|
|
|
|
|
List<QueryImeiVO> imeiVOList = query.select(Projections.bean
|
|
|
|
|
(QueryImeiVO.class, v1Entity.imei, v1Entity.tag, dateExpr.as(SqlConstant.CREATE_TIME))).distinct().from(v1Entity).where
|
|
|
|
|
(v1Entity.tag.in(tagList).and(v1Entity.imei.ne(CharSequenceUtil.EMPTY).and(v1Entity.imei.ne(DataConstant.IMEI_NULL_TAG)).and(v1Entity.imei.ne
|
|
|
|
|
(DataConstant.IMEI_TAG)))).groupBy(v1Entity.imei,v1Entity.tag).fetch();
|
|
|
|
|
(v1Entity.tag.in(tagList).and(v1Entity.imei.ne(CharSequenceUtil.EMPTY).and(v1Entity.imei.ne(DataConstant.IMEI_NULL_TAG)).and(v1Entity.imei.ne
|
|
|
|
|
(DataConstant.IMEI_TAG)))).groupBy(v1Entity.imei, v1Entity.tag).fetch();
|
|
|
|
|
return Convert.toList(DmpMonitorJpaDto.class, imeiVOList);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Integer deleteDateByDateAndLimitNum(DateTime date, Integer num) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//querydsl查询实体
|
|
|
|
|
QTbJLBackDataV1Entity v1Entity = QTbJLBackDataV1Entity.tbJLBackDataV1Entity;
|
|
|
|
|
|
|
|
|
|
this.newQuery()
|
|
|
|
|
//删除对象
|
|
|
|
|
.delete(v1Entity)
|
|
|
|
|
//删除条件
|
|
|
|
|
.where(v1Entity.gmtCreate.gt(date))
|
|
|
|
|
//执行删除
|
|
|
|
|
.execute();
|
|
|
|
|
return null;
|
|
|
|
|
public Long deleteDateByDateAndLimitNum(DateTime date, Integer num) {
|
|
|
|
|
return this.newQuery().delete(v1Entity).where(v1Entity.gmtCreate.gt(date)).execute();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Long countByDate(DateTime date) {
|
|
|
|
|
return null;
|
|
|
|
|
return 0L;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|