DetachedCriteria dc = DetachedCriteria.forClass(EnterpriseSummaryMonth.class);
if (isNotEmpty(c.getEnterpriseId())) {
dc.add(Restrictions.eq("enterpriseId", c.getEnterpriseId()));
}else{
if (isNotEmpty(c.getCityId())) {
dc.add(Restrictions.eq("cityId", c.getCityId()));
}else{
if (isNotEmpty(c.getProvinceId())) {
dc.add(Restrictions.eq("provinceId", c.getProvinceId()));
}
}
}
if (isNotEmpty(c.getYearMonth())) {
dc.add(Restrictions.eq("yearMonth", c.getYearMonth()));
}
dc.setProjection(Projections.projectionList()
.add(Projections.max("enterpriseName"),"enterpriseName")
.add(Projections.min("startTime"),"startTime")
.add(Projections.sum("outworkerNum"),"outworkerNum")
.add(Projections.max("smsExpressionNum"),"smsExpressionNum")
.add(Projections.sum("smsNum"),"smsNum")
.add(Projections.sum("noticeNum"),"noticeNum")
.add(Projections.max("customerNum"),"customerNum")
.add(Projections.sum("customerVisitLogNum"),"customerVisitLogNum")
.add(Projections.sum("taskNum"),"taskNum")
.add(Projections.sum("phoneTaskNum"),"phoneTaskNum")
.add(Projections.sum("templateNum"),"templateNum")
.add(Projections.sum("travelLogNum"),"travelLogNum")
.add(Projections.sum("attendanceNum"),"attendanceNum")
.add(Projections.sum("attendPhoneNum"),"attendPhoneNum")
.add(Projections.sum("travelPosNum"),"travelPosNum")
.add(Projections.sum("locNum"),"locNum")
.add(Projections.sum("alarmNum"),"alarmNum")
.add(Projections.max("summaryTime"),"summaryTime")
.add( Projections.groupProperty("enterpriseId"))
);
dc.setResultTransformer(Transformers.aliasToBean(EnterpriseSummaryMonth.class));
return dao.findByPage(dc, pv);hibernate group by
最新推荐文章于 2025-04-13 11:41:54 发布
本文介绍了一种使用Hibernate Criteria API进行复杂的企业月度统计数据查询方法。通过DetachedCriteria对象,根据不同的条件筛选企业信息,并利用Projections进行聚合操作,如求最大值、最小值、总和等,以获取特定时间段内企业的各项关键指标。
5576

被折叠的 条评论
为什么被折叠?



