ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java
@@ -38,18 +38,18 @@ private TravelCountService travelCountService; @GetMapping("/all") public AjaxResult listAll(){ public AjaxResult listAll(TravelCount travelCount){ SysUser user = SecurityUtils.getLoginUser().getUser(); Long userId = user.getUserId(); Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1); Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10); return travelCountService.selectDataList(userId,pageNum,pageSize); return travelCountService.selectDataList(userId,pageNum,pageSize,travelCount); } @GetMapping("/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(travelCountService.getById(id)); return AjaxResult.success(travelCountService.getDataById(id)); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelDetailController.java
@@ -27,8 +27,8 @@ TravelDetailService travelDetailService; @GetMapping() public AjaxResult getDataByCid(@PathParam("cid") Long cid){ List<TravelDetail> travelDetailList = travelDetailService.getDataByCid(cid); public AjaxResult getDataByCid(@PathParam("cid") Long cid,TravelDetail travelDetail){ List<TravelDetail> travelDetailList = travelDetailService.getDataByCid(cid,travelDetail); return AjaxResult.success(travelDetailList); } zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java
@@ -3,7 +3,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.io.Serializable; import java.util.Date; zhang-content/src/main/java/com/ruoyi/service/TravelCountService.java
@@ -17,7 +17,9 @@ */ public interface TravelCountService extends IService<TravelCount> { AjaxResult selectDataList(Long userId, Integer pageNum, Integer pageSize); AjaxResult selectDataList(Long userId, Integer pageNum, Integer pageSize,TravelCount travelCount); void removeData(List<Long> list); TravelCount getDataById(Long id); } zhang-content/src/main/java/com/ruoyi/service/TravelDetailService.java
@@ -16,7 +16,7 @@ */ public interface TravelDetailService extends IService<TravelDetail> { List<TravelDetail> getDataByCid(Long cid); List<TravelDetail> getDataByCid(Long cid,TravelDetail travelDetail); void removeBatchByCid(List<Long> cid); zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java
@@ -36,37 +36,24 @@ private TravelCountService travelCountService; @Override public AjaxResult selectDataList(Long userId, Integer pageNum, Integer pageSize) { public AjaxResult selectDataList(Long userId, Integer pageNum, Integer pageSize,TravelCount travelCount) { //设置查询条件 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()); } 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 +70,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))); } } zhang-content/src/main/java/com/ruoyi/service/impl/TravelDetailServiceImpl.java
@@ -22,9 +22,18 @@ public class TravelDetailServiceImpl extends ServiceImpl<TravelDetailMapper, TravelDetail> implements TravelDetailService { @Override public List<TravelDetail> getDataByCid(Long cid) { public List<TravelDetail> getDataByCid(Long cid,TravelDetail travelDetail) { LambdaQueryWrapper<TravelDetail> lqw = new LambdaQueryWrapper<>(); lqw.eq(TravelDetail::getCid,cid); if(travelDetail!=null){ lqw.like(travelDetail.getAddress()!=null,TravelDetail::getAddress,travelDetail.getAddress()); lqw.like(travelDetail.getScenic()!=null,TravelDetail::getScenic,travelDetail.getScenic()); lqw.like(travelDetail.getHotel()!=null,TravelDetail::getHotel,travelDetail.getHotel()); lqw.like(travelDetail.getTravelMode()!=null,TravelDetail::getTravelMode,travelDetail.getTravelMode()); lqw.like(travelDetail.getFlight()!=null,TravelDetail::getFlight,travelDetail.getFlight()); lqw.like(travelDetail.getDocument()!=null,TravelDetail::getDocument,travelDetail.getDocument()); } lqw.orderBy(true,true,TravelDetail::getHappenDate); return list(lqw); }