VehicleInfoController.java 7.0 KB
package com.sunyo.wlpt.dispatch.controller;

import com.github.pagehelper.PageInfo;
import com.sunyo.wlpt.dispatch.domain.VehicleInfo;
import com.sunyo.wlpt.dispatch.response.ResultJson;
import com.sunyo.wlpt.dispatch.service.VehicleInfoService;
import com.sunyo.wlpt.dispatch.utils.GetUUID;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.Date;

/**
 * @author 子诚
 * Description:车辆信息管理.
 * 时间:2020/4/24 17:03
 */
@CrossOrigin
@Api(value = "车辆信息", tags = "业务管理——车辆信息管理")
@RequestMapping("dispatch/vehicleInfo")
@RestController
public class VehicleInfoController {
    @Resource
    private VehicleInfoService vehicleInfoService;

    /**
     * 分页获取车辆列表.
     *
     * @param vehicleStatus      车辆状态
     * @param vehicleType        车辆类型
     * @param licensePlateNumber 车牌号码
     * @param vehicleCompany     车辆所属公司
     * @param pageNum            当前页数
     * @param pageSize           每页数量
     * @return 成功返回查询列表
     */
    @ApiOperation("获取车辆列表")
    @GetMapping("/selectVehicleInfoList")
    public ResultJson<PageInfo> selectVehicleInfoList(
            @ApiParam(name = "vehicleStatus", value = "车辆状态:1.空闲状态;2.执行状态;3、在修状态;4.损坏未修状态;5.保养状态", required = false)
            @RequestParam(value = "vehicleStatus", required = false) String vehicleStatus,
            @ApiParam(name = "vehicleType", value = "车辆类型", required = false)
            @RequestParam(value = "vehicleType", required = false) String vehicleType,
            @ApiParam(name = "licensePlateNumber", value = "车牌号", required = false)
            @RequestParam(value = "licensePlateNumber", required = false) String licensePlateNumber,
            @ApiParam(name = "vehicleCompany", value = "车辆所属公司", required = false)
            @RequestParam(value = "vehicleCompany", required = false) String vehicleCompany,
            @ApiParam(name = "pageNum", value = "第几页,默认为第一页", required = false)
            @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
            @ApiParam(name = "pageSize", value = "每页数量,默认10条", required = false)
            @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {

        ResultJson<PageInfo> result = new ResultJson<>();
        VehicleInfo vehicleInfo = new VehicleInfo();
        //获取参数,车辆状态
        vehicleInfo.setVehicleStatus(vehicleStatus);
        //获取参数,车辆类型
        vehicleInfo.setVehicleType(vehicleType);
        //获取参数,车牌号
        vehicleInfo.setLicensePlateNumber(licensePlateNumber);
        //获取参数,公司名
        vehicleInfo.setVehicleCompany(vehicleCompany);
        PageInfo pageInfo = vehicleInfoService.selectVehicleInfoList(vehicleInfo, pageNum, pageSize);
        if (pageInfo.getTotal() > 0) {
            result.setData(pageInfo);
            result.setCode("200");
            result.setMsg("获取车辆列表,成功");
        } else {
            result.setCode("400");
            result.setMsg("获取车辆列表,失败");
        }
        return result;
    }

    /**
     * 添加车辆信息.
     *
     * @param vehicleInfo {@link VehicleInfo}
     * @return
     */
    @ApiOperation("添加车辆信息")
    @PostMapping("/insertVehicleInfo")
    public ResultJson insertVehicleInfo(@RequestBody VehicleInfo vehicleInfo) {
        String message = validateVehicle(vehicleInfo);
        //验证通过
        if (message == null) {
            ResultJson result = new ResultJson<>();
            //设置车辆id,(uuid)
            vehicleInfo.setId(GetUUID.getuuid());
            //设置车辆状态,为空闲状态
            vehicleInfo.setVehicleStatus("1");
            //设置车辆开始空闲时间
            vehicleInfo.setFreetime(new Date());
            int num = vehicleInfoService.insertSelective(vehicleInfo);
            if (num > 0) {
                result.setCode("200");
                result.setMsg("添加车辆信息,成功");
            } else {
                result.setCode("400");
                result.setMsg("添加车辆信息,失败");
            }
            return result;
        }
        return new ResultJson("406", message != null ? message : "添加车辆信息,失败!");
    }

    /**
     * 修改车辆信息.
     *
     * @param vehicleInfo {@link VehicleInfo}
     * @return
     */
    @ApiOperation("修改车辆信息")
    @PutMapping("/updateVehicleInfo")
    public ResultJson updateVehicleInfo(@RequestBody VehicleInfo vehicleInfo) {
        ResultJson result = new ResultJson<>();
        int num = vehicleInfoService.updateByPrimaryKeySelective(vehicleInfo);
        if (num > 0) {
            result.setCode("200");
            result.setMsg("修改车辆信息,成功");
        } else {
            result.setCode("400");
            result.setMsg("修改车辆信息,失败");
        }
        return result;
    }

    /**
     * 删除车辆信息.
     *
     * @param vehicleInfo {@link VehicleInfo}
     * @return
     */
    @ApiOperation("删除车辆信息")
    @DeleteMapping("/deleteVehicleInfo")
    public ResultJson deleteVehicleInfo(@RequestBody VehicleInfo vehicleInfo) {
        ResultJson result = new ResultJson<>();
        int num = vehicleInfoService.deleteByPrimaryKey(vehicleInfo.getId());
        if (num > 0) {
            result.setCode("200");
            result.setMsg("删除车辆信息,成功");
        } else {
            result.setCode("400");
            result.setMsg("删除车辆信息,失败");
        }
        return result;
    }

    /**
     * 批量删除车辆信息.
     *
     * @param ids 所要删除的id以','相连接的字符串
     * @return
     */
    @ApiOperation("批量删除车辆信息")
    @GetMapping("/batchRemove")
    public ResultJson batchRemoveVehicleInfo(String ids) {
        ResultJson result = new ResultJson<>();
        int num = vehicleInfoService.deleteByPrimaryKey(ids);
        if (num > 0) {
            result.setCode("200");
            result.setMsg("删除车辆信息,成功");
        } else {
            result.setCode("400");
            result.setMsg("删除车辆信息,失败");
        }
        return result;
    }

    /**
     * 验证新增车辆信息
     *
     * @param vehicleInfo {@link VehicleInfo}
     * @return 错误信息
     */
    private String validateVehicle(VehicleInfo vehicleInfo) {
        VehicleInfo info = vehicleInfoService.selectByLPN(vehicleInfo.getLicensePlateNumber());
        if (info != null) {
            return "车牌号已存在,请谨慎输入";
        }
        return null;
    }
}