wang-hao-jie
2022-01-18 d9da603305a2b94bde78483fa8777a43ee352548
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/CarController.java
@@ -4,10 +4,13 @@
import cn.exrick.xboot.core.common.utils.ResultUtil;
import cn.exrick.xboot.core.common.vo.PageVo;
import cn.exrick.xboot.core.common.vo.Result;
import cn.exrick.xboot.your.entity.Car;
import cn.exrick.xboot.your.service.ICarService;
import cn.exrick.xboot.your.entity.*;
import cn.exrick.xboot.your.service.*;
import cn.exrick.xboot.your.vo.CarVo;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -16,7 +19,11 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * @author zhangzeli
@@ -30,6 +37,13 @@
    @Autowired
    private ICarService iCarService;
    @Autowired
    private IAddOilService iAddOilService;
    @Autowired
    private IDrivingRecordService iDrivingRecordService;
    @Autowired
    private ICustomerService iCustomerService;
    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
    @ApiOperation(value = "通过id获取")
@@ -39,19 +53,95 @@
        return new ResultUtil<Car>().setData(car);
    }
    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    @RequestMapping(value = "/getAllCar", method = RequestMethod.GET)
    @ApiOperation(value = "获取全部数据")
    public Result<List<Car>> getAll() {
    public Result<List<Car>> getAllCar() {
        List<Car> list = iCarService.list();
        return new ResultUtil<List<Car>>().setData(list);
    }
    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    @ApiOperation(value = "获取全部数据")
    public Result<List<CarVo>> getAll(String beginTime,String endTime,PageVo page) {
        List<CarVo> carVos = new ArrayList<>();
        IPage<Car> list = iCarService.getAll2(PageUtil.initMpPage(page));
        for (Car car:list.getRecords()){
            CarVo carVo = new CarVo();
            //加油信息
            QueryWrapper<AddOil> queryWrapper = new QueryWrapper<>();
            queryWrapper.select("sum(money) as money,sum(amount) as amount").eq("car_id", car.getId());
            //从发车时间行驶里程判断初始里程
            QueryWrapper<DrivingRecord> wrapper = new QueryWrapper<>();
            wrapper.select("min(mileage) as beginMileage,max(mileage) as endMileage").eq("car_id",car.getId());
            wrapper.ge(beginTime!=null && beginTime!="","out_time",beginTime);
            queryWrapper.ge(beginTime!=null && beginTime!="","add_date",beginTime);
            wrapper.le(endTime!=null && endTime!="","in_time",endTime);
            queryWrapper.le(endTime!=null && endTime!="","add_date",endTime);
            QueryWrapper<OrderTask> wrapper1 = new QueryWrapper<>();
            wrapper1.eq("car_id",car.getId());
            wrapper1.ge(beginTime!=null && beginTime!="","send_date",beginTime);
            wrapper1.le(endTime!=null && endTime!="","send_date",endTime);
            DrivingRecord drivingRecord = iDrivingRecordService.getOne(wrapper);
            AddOil addOil = iAddOilService.getOne(queryWrapper);
            if (addOil!=null){
                carVo.setMoney(addOil.getMoney());
                carVo.setOilWear(addOil.getAmount());
            }
            if (drivingRecord!=null) {
                carVo.setBeginMileage(drivingRecord.getBeginMileage());
                carVo.setEndMileage(drivingRecord.getEndMileage());
            }
            carVo.setCar(car);
            carVos.add(carVo);
            carVo.setTotal(list.getTotal());
        }
        return new ResultUtil<List<CarVo>>().setData(carVos);
    }
    @RequestMapping(value = "/getInfo", method = RequestMethod.GET)
    @ApiOperation(value = "通过车辆id获取")
    public Result<List<Car>> getInfo(String beginTime,String endTime) {
        QueryWrapper<Car> wrapper = new QueryWrapper<>();
        wrapper.ge(beginTime!=null && beginTime!="","a.add_date",beginTime);
        wrapper.le(endTime!=null && endTime!="","a.add_date",endTime);
        wrapper.groupBy("car_no");
        List<Car> list2 = iCarService.getCarInfo2(wrapper);
        List<Car> list = iCarService.getCarInfo();
        for (Car car:list2){
            for (Car car1:list){
                if (car.getId().equals(car1.getId())){
                    car1.setAmount(car.getAmount());
                    car1.setMileage(car.getMileage());
                    car1.setMoney(car.getMoney());
                    continue;
                }
            }
        }
        return new ResultUtil<List<Car>>().setData(list);
    }
    @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
    @ApiOperation(value = "分页获取")
    public Result<IPage<Car>> getByPage(PageVo page) {
        IPage<Car> data = iCarService.page(PageUtil.initMpPage(page));
    public Result<IPage<Car>> getByPage(String carNo,PageVo page) {
        QueryWrapper<Car> wrapper = new QueryWrapper<>();
        if(!StrUtil.isEmpty(carNo)){
            wrapper.like("a.car_no","%"+carNo+"%");
        }
        IPage<Car> data = iCarService.page2(PageUtil.initMpPage(page),wrapper);
        return new ResultUtil<IPage<Car>>().setData(data);
    }
@@ -59,12 +149,40 @@
    @ApiOperation(value = "编辑或更新数据")
    public Result<Car> saveOrUpdate(Car car) {
        QueryWrapper<Car> wrapper = new QueryWrapper<>();
        QueryWrapper<Car> wrapper1 = new QueryWrapper<>();
        if (!car.getUserId().equals("")){
            wrapper.eq("user_id",car.getUserId());
            Car car1 = iCarService.getOne(wrapper);
            if (car1!=null && !car1.getId().equals(car.getId())){
                return new ResultUtil<Car>().setErrorMsg("该驾驶员已被其他车辆绑定,请先解绑");
            }
        }
        if (!car.getFollowUserId().equals("")){
            wrapper1.eq("follow_user_id",car.getFollowUserId());
            Car car1 = iCarService.getOne(wrapper1);
            if (car1!=null && !car1.getId().equals(car.getId())){
                return new ResultUtil<Car>().setErrorMsg("该配送员已被其他车辆绑定,请先解绑");
            }
        }
        if (iCarService.saveOrUpdate(car)) {
            return new ResultUtil<Car>().setData(car);
        }
        return new ResultUtil<Car>().setErrorMsg("操作失败");
    }
    @RequestMapping(value = "/bindCar", method = RequestMethod.POST)
    @ApiOperation(value = "绑定车辆人员")
    public Result<Car> bindCar(String carId,String userId) {
        Car car = iCarService.getById(carId);
        car.setUserId(userId);
        iCarService.saveOrUpdate(car);
        return ResultUtil.success("绑定成功");
    }
    @RequestMapping(value = "/delByIds", method = RequestMethod.POST)
    @ApiOperation(value = "批量通过id删除")
    public Result<Object> delAllByIds(@RequestParam String[] ids) {