feige
2024-02-24 088e8db2bc8f0869bdc2494864992e756eb0e461
zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java
@@ -4,10 +4,12 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.MapUtils;
import com.ruoyi.domain.TravelCount;
import com.ruoyi.domain.TravelDetail;
import com.ruoyi.domain.ZfProperty;
import com.ruoyi.mapper.TravelCountMapper;
import com.ruoyi.service.TravelCountService;
import com.ruoyi.service.TravelDetailService;
@@ -16,6 +18,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.List;
/**
@@ -36,37 +39,30 @@
    private TravelCountService travelCountService;
    @Override
    public AjaxResult selectDataList(Long userId, Integer pageNum, Integer pageSize) {
    public AjaxResult selectDataList(Long userId, Integer pageNum, Integer pageSize, TravelCount travelCount, String happenStartTime, String happenEndTime) {
        //设置查询条件
        LambdaQueryWrapper<TravelCount> lqw = new LambdaQueryWrapper<>();
        lqw.eq(TravelCount::getUid,userId);
        if(travelCount!=null){
            lqw.like(travelCount.getName()!=null,TravelCount::getName,travelCount.getName());
            lqw.like(travelCount.getDestination()!=null,TravelCount::getDestination,travelCount.getDestination());
            lqw.like(travelCount.getProperty()!=null,TravelCount::getProperty,travelCount.getProperty());
            lqw.like(travelCount.getManner()!=null,TravelCount::getManner,travelCount.getManner());
            lqw.like(travelCount.getName()!=null,TravelCount::getName,travelCount.getName());
            lqw.like(travelCount.getName()!=null,TravelCount::getName,travelCount.getName());
            lqw.like(travelCount.getName()!=null,TravelCount::getName,travelCount.getName());
        }
        if(happenStartTime!=null){
            lqw.gt(TravelCount::getStartTime,happenStartTime);
        }
        if(happenEndTime!=null){
            lqw.lt(TravelCount::getEndTime,happenEndTime);
        }
        lqw.orderByDesc(TravelCount::getCreateTime);
        Page<TravelCount> resultPage = page(new Page<>(pageNum, pageSize), lqw);
        resultPage.getRecords().forEach(data ->{
            //先找到对应一条统计数据的所有详细数据
            List<TravelDetail> travelDetailList = travelDetailService.getDataByCid(data.getId());
            double entranceTotal = 0;
            double eatTotal = 0;
            double stayTotal = 0;
            double travelTotal = 0;
            //把所有详细数据的费用值累加起来
            for (TravelDetail detail : travelDetailList) {
                entranceTotal+=detail.getEntrance();
                eatTotal+=detail.getEat();
                stayTotal+=detail.getStay();
                travelTotal+=detail.getTravel();
            }
            data.setEntranceTotal(entranceTotal);
            data.setEatTotal(eatTotal);
            data.setStayTotal(stayTotal);
            data.setTravelTotal(travelTotal);
            DecimalFormat df = new DecimalFormat("0.00");
            data.setTotalPrice(Double.parseDouble(df.format(entranceTotal+eatTotal+data.getGroupTotal()+stayTotal+travelTotal)));
        });
        resultPage.getRecords().forEach(this::inputTotalData);
        return AjaxResult.success(MapUtils.getResult(resultPage));
    }
@@ -83,4 +79,36 @@
        //再删除自己表的数据
        travelCountService.removeBatchByIds(list);
    }
    @Override
    public TravelCount getDataById(Long id) {
        TravelCount travelCount = getById(id);
        inputTotalData(travelCount);
        return travelCount;
    }
    private void inputTotalData(TravelCount travelCount){
        //先找到对应一条统计数据的所有详细数据
        List<TravelDetail> travelDetailList = travelDetailService.getDataByCid(travelCount.getId(),null);
        double entranceTotal = 0;
        double eatTotal = 0;
        double stayTotal = 0;
        double travelTotal = 0;
        //把所有详细数据的费用值累加起来
        for (TravelDetail detail : travelDetailList) {
            entranceTotal+=detail.getEntrance();
            eatTotal+=detail.getEat();
            stayTotal+=detail.getStay();
            travelTotal+=detail.getTravel();
        }
        travelCount.setEntranceTotal(entranceTotal);
        travelCount.setEatTotal(eatTotal);
        travelCount.setStayTotal(stayTotal);
        travelCount.setTravelTotal(travelTotal);
        DecimalFormat df = new DecimalFormat("0.00");
        travelCount.setTotalPrice(Double.parseDouble(df.format(entranceTotal+eatTotal+travelCount.getGroupTotal()+stayTotal+travelTotal)));
    }
}