|
@@ -1,25 +1,25 @@
|
|
|
package org.dromara.backstage.consumption.service.impl;
|
|
package org.dromara.backstage.consumption.service.impl;
|
|
|
|
|
|
|
|
-import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.dromara.backstage.consumption.domain.XfConsumeDetail;
|
|
import org.dromara.backstage.consumption.domain.XfConsumeDetail;
|
|
|
-import org.dromara.backstage.consumption.domain.XfCreditAccount;
|
|
|
|
|
-import org.dromara.backstage.consumption.domain.XfTerm;
|
|
|
|
|
import org.dromara.backstage.consumption.domain.bo.XfConsumeDetailBo;
|
|
import org.dromara.backstage.consumption.domain.bo.XfConsumeDetailBo;
|
|
|
|
|
+import org.dromara.backstage.consumption.domain.vo.XfConsumeAnalyzeVo;
|
|
|
import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailVo;
|
|
import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailVo;
|
|
|
import org.dromara.backstage.consumption.mapper.XfConsumeDetailMapper;
|
|
import org.dromara.backstage.consumption.mapper.XfConsumeDetailMapper;
|
|
|
import org.dromara.backstage.consumption.service.IXfConsumeDetailService;
|
|
import org.dromara.backstage.consumption.service.IXfConsumeDetailService;
|
|
|
|
|
+import org.dromara.common.core.utils.DateUtils;
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
+import java.time.YearMonth;
|
|
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.Collection;
|
|
import java.util.Collection;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -58,8 +58,11 @@ public class XfConsumeDetailServiceImpl implements IXfConsumeDetailService {
|
|
|
public TableDataInfo<XfConsumeDetailVo> queryPageList(XfConsumeDetailBo bo, PageQuery pageQuery) {
|
|
public TableDataInfo<XfConsumeDetailVo> queryPageList(XfConsumeDetailBo bo, PageQuery pageQuery) {
|
|
|
LambdaQueryWrapper<XfConsumeDetail> lqw = buildQueryWrapper(bo);
|
|
LambdaQueryWrapper<XfConsumeDetail> lqw = buildQueryWrapper(bo);
|
|
|
Map<String, Object> params = bo.getParams();
|
|
Map<String, Object> params = bo.getParams();
|
|
|
- lqw.between(params.get("beginConsumeDate") != null && params.get("endConsumeDate") != null,
|
|
|
|
|
- XfConsumeDetail::getConsumeDate, params.get("beginConsumeDate"), params.get("endConsumeDate"));
|
|
|
|
|
|
|
+ Object beginDate = params.get("beginConsumeDate");
|
|
|
|
|
+ Object endDate = params.get("endConsumeDate");
|
|
|
|
|
+ if(beginDate != null && endDate != null){
|
|
|
|
|
+ lqw.between(XfConsumeDetail::getConsumeDate, beginDate + " 00:00:00", endDate + " 23:59:59");
|
|
|
|
|
+ }
|
|
|
lqw.orderByDesc(XfConsumeDetail::getConsumeDate);
|
|
lqw.orderByDesc(XfConsumeDetail::getConsumeDate);
|
|
|
Page<XfConsumeDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
Page<XfConsumeDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
return TableDataInfo.build(result);
|
|
return TableDataInfo.build(result);
|
|
@@ -203,4 +206,42 @@ public class XfConsumeDetailServiceImpl implements IXfConsumeDetailService {
|
|
|
updateWrapper.eq(XfConsumeDetail::getConsumeId, bo.getConsumeId());
|
|
updateWrapper.eq(XfConsumeDetail::getConsumeId, bo.getConsumeId());
|
|
|
return baseMapper.update(null, updateWrapper)>0;
|
|
return baseMapper.update(null, updateWrapper)>0;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public TableDataInfo<XfConsumeAnalyzeVo> consumeAnalyze(PageQuery pageQuery,String dateFormat, boolean groupByTerm,
|
|
|
|
|
+ String accountIds,
|
|
|
|
|
+ String roomIds, String beginDate, String endDate) {
|
|
|
|
|
+
|
|
|
|
|
+ if(StringUtils.isNotBlank(beginDate)){
|
|
|
|
|
+ if("yyyy".equals(dateFormat)){
|
|
|
|
|
+ // 按年统计
|
|
|
|
|
+ beginDate = DateUtils.firstDayOfYear(Integer.parseInt(beginDate)).format(
|
|
|
|
|
+ DateTimeFormatter.ofPattern("yyyy-MM-dd" +" 00:00:00"));
|
|
|
|
|
+ }else if("yyyy-MM".equals(dateFormat)){
|
|
|
|
|
+ String[] dateArr = beginDate.split("-");
|
|
|
|
|
+ beginDate = DateUtils.firstDayOfMonth(Integer.parseInt(dateArr[0]), Integer.parseInt(dateArr[1])).format(
|
|
|
|
|
+ DateTimeFormatter.ofPattern("yyyy-MM-dd" +" 00:00:00"));;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ beginDate += " 00:00:00";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isNotBlank(endDate)){
|
|
|
|
|
+ if("yyyy".equals(dateFormat)){
|
|
|
|
|
+ // 按年统计
|
|
|
|
|
+ endDate = DateUtils.lastDayOfYear(Integer.parseInt(endDate)).format(
|
|
|
|
|
+ DateTimeFormatter.ofPattern("yyyy-MM-dd" +" 23:59:59"));
|
|
|
|
|
+ }else if("yyyy-MM".equals(dateFormat)) {
|
|
|
|
|
+ String[] dateArr = endDate.split("-");
|
|
|
|
|
+ endDate = DateUtils.lastDayOfMonth(Integer.parseInt(dateArr[0]), Integer.parseInt(dateArr[1])).format(
|
|
|
|
|
+ DateTimeFormatter.ofPattern("yyyy-MM-dd" + " 23:59:59"));
|
|
|
|
|
+ }else {
|
|
|
|
|
+ endDate += " 23:59:59";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return TableDataInfo.build(baseMapper.consumeAnalyze(pageQuery.build(),dateFormat, groupByTerm, accountIds,
|
|
|
|
|
+ roomIds,
|
|
|
|
|
+ beginDate, endDate));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|