Commit f91ac20c authored by hezhen's avatar hezhen

123

parent 1692e5d2
package com.xxfc.platform.vehicle.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 用车调度申请
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
@Table(name = "vehicle_dispatch_info")
public class VehicleDispatchInfo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
@Column(name = "account_id")
@ApiModelProperty(value = "账号id")
private Integer accountId;
@Column(name = "account_name")
@ApiModelProperty(value = "账号名称")
private String accountName;
@Column(name = "company_id")
@ApiModelProperty(value = "申请分公司id")
private Integer companyId;
@Column(name = "mode_id")
@ApiModelProperty(value = "车型id")
private Integer modeId;
@Column(name = "user")
@ApiModelProperty(value = "使用人")
private String user;
@Column(name = "user_tel")
@ApiModelProperty(value = "使用人电话")
private String userTel;
@Column(name = "start_time")
@ApiModelProperty(value = "用车开始时间" )
private Long startTime;
@Column(name = "end_time")
@ApiModelProperty(value = "用车结束时间")
private Long endTime;
@Column(name = "wish_ret_company")
@ApiModelProperty(value = "期望还车公司")
private Integer wishRetCompany;
@Column(name = "book_type")
@ApiModelProperty(value = "用途(枚举类)")
private Integer bookType;
@Column(name = "book_remark")
@ApiModelProperty(value = "用途备注")
private String bookRemark;
@Column(name = "reason")
@ApiModelProperty(value = "拒绝原因")
private String reason;
@Column(name = "status")
@ApiModelProperty(value = "状态:0-申请中;1-已通过;2-拒绝")
private Integer status;
@Column(name = "record_ids")
@ApiModelProperty(value = "预约ids(逗号隔开)")
private String recordIds;
@Column(name = "status_time")
@ApiModelProperty(value = "通过审核时间")
private Long statusTime;
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间")
private Long crtTime;
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间")
private Long updTime;
@Column(name = "isdel")
@ApiModelProperty(value = "删除状态 0:有效 1:删除")
private Integer isdel;
}
package com.xxfc.platform.vehicle.pojo.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class VehicleDispatchInfoDto extends PageParam {
@ApiModelProperty(value = "分公司")
private List<Integer> companyList;
@ApiModelProperty(value = "状态")
private Integer status;
@ApiModelProperty(value = "预定月份")
private String dispatchMonth;
}
package com.xxfc.platform.vehicle.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 用车调度预约记录
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
public class VehiclDispatchRecordVo {
@ApiModelProperty("主键id")
private Integer id;
@ApiModelProperty(value = "提车地点(公司)")
private Integer liftCompany;
@ApiModelProperty(value = "提车地点(公司)名称")
private String liftCompanyName;
@ApiModelProperty(value = "提车分公司联系人")
private String liftCompanyLeader;
@ApiModelProperty(value = "提车分公司联系人电话")
private String liftCompanyLeaderTel;
@ApiModelProperty(value = "实际开始日期(提车时间)")
private Date actualStartDate;
@ApiModelProperty(value = "还车地点(公司)")
private Integer retCompany;
@ApiModelProperty(value = "还车地点(公司)名称")
private String retCompanyName;
@ApiModelProperty(value = "还车分公司联系人")
private String retCompanyLeader;
@ApiModelProperty(value = "还车分公司联系人电话")
private String retCompanyLeaderTel;
@ApiModelProperty(value = "实际结束日期(还车时间)")
private Date actualEndDate;
}
package com.xxfc.platform.vehicle.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 用车调度申请
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
public class VehicleDispatchInfoVo{
@ApiModelProperty("主键id")
private Integer id;
@ApiModelProperty(value = "账号id")
private Integer accountId;
@ApiModelProperty(value = "账号名称")
private String accountName;
@ApiModelProperty(value = "申请分公司id")
private Integer companyId;
@ApiModelProperty(value = "申请分公司名称")
private String companyName;
@ApiModelProperty(value = "车型id")
private Integer modeId;
@ApiModelProperty(value = "使用人")
private String user;
@ApiModelProperty(value = "使用人电话")
private String userTel;
@ApiModelProperty(value = "用车开始时间" )
private Long startTime;
@ApiModelProperty(value = "用车结束时间")
private Long endTime;
@ApiModelProperty(value = "期望还车公司")
private Integer wishRetCompany;
@ApiModelProperty(value = "期望还车公司名称")
private String wishRetCompanyName;
@ApiModelProperty(value = "用途(枚举类)")
private Integer bookType;
@ApiModelProperty(value = "用途备注")
private String bookRemark;
@ApiModelProperty(value = "拒绝原因")
private String reason;
@ApiModelProperty(value = "状态:0-申请中;1-已通过;2-拒绝")
private Integer status;
@ApiModelProperty(value = "预约ids(逗号隔开)")
private String recordIds;
@ApiModelProperty(value = "通过审核时间")
private Long statusTime;
@ApiModelProperty(value = "创建时间")
private Long crtTime;
@ApiModelProperty(value = "更新时间")
private Long updTime;
@ApiModelProperty(value = "删除状态 0:有效 1:删除")
private Integer isdel;
@ApiModelProperty(value = "调度申请用车详情")
List<VehiclDispatchRecordVo> dispatchRecords;
}
package com.xxfc.platform.vehicle.biz;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.entity.VehicleDispatchInfo;
import com.xxfc.platform.vehicle.mapper.VehicleDispatchInfoMapper;
import com.xxfc.platform.vehicle.pojo.dto.VehicleDispatchInfoDto;
import com.xxfc.platform.vehicle.pojo.vo.VehiclDispatchRecordVo;
import com.xxfc.platform.vehicle.pojo.vo.VehicleDispatchInfoVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
*车辆调度
*/
@Service
@Slf4j
public class VehicleDispatchInfoBiz extends BaseBiz<VehicleDispatchInfoMapper,VehicleDispatchInfo> {
@Autowired
UserFeign userFeign;
@Autowired
private UserAuthConfig userAuthConfig;
@Autowired
VehicleBiz vehicleBiz;
//提交调度申请表单
public ObjectRestResponse addDisspatchInfo(VehicleDispatchInfo vehicleDispatchInfo){
if (vehicleDispatchInfo==null){
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE, "参数为空");
}
insertSelective(vehicleDispatchInfo);
return ObjectRestResponse.succ();
}
//获取申请列表
public ObjectRestResponse getInfoList(VehicleDispatchInfoDto dispatchInfoDto, HttpServletRequest request){
UserDTO userDTO = userFeign.userinfoByToken(userAuthConfig.getToken(request)).getData();
List<VehicleDispatchInfoVo> list=new ArrayList<>();
Integer pageSize=dispatchInfoDto.getPage()==null?1:dispatchInfoDto.getPage();
Integer pageNo=dispatchInfoDto.getPage()==null?10:dispatchInfoDto.getLimit();
if (userDTO != null) {
List<Integer> companyList=new ArrayList<>();
if (userDTO.getDataAll() == 1) {
companyList=dispatchInfoDto.getCompanyList();
}else {
companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
}
dispatchInfoDto.setCompanyList(companyList);
list=mapper.getInfoList(dispatchInfoDto);
if (list.size()>0){
for (VehicleDispatchInfoVo vehicleDispatchInfoVo:list){
String recordIds=vehicleDispatchInfoVo.getRecordIds();
if (StringUtils.isBlank(recordIds)){
continue;
}
String[] ids=recordIds.split(",");
List<VehiclDispatchRecordVo> recordVos= mapper.getRecordList(Arrays.asList(ids));
if (recordVos.size()>0) {
vehicleDispatchInfoVo.setDispatchRecords(recordVos);
}
}
}
}
PageHelper.startPage(pageNo,pageSize);
PageInfo<VehicleDispatchInfoVo> pageInfo = new PageInfo<>(list);
return ObjectRestResponse.succ(PageDataVO.pageInfo(pageInfo));
}
}
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleDispatchInfo;
import com.xxfc.platform.vehicle.pojo.dto.VehicleDispatchInfoDto;
import com.xxfc.platform.vehicle.pojo.vo.VehiclDispatchRecordVo;
import com.xxfc.platform.vehicle.pojo.vo.VehicleDispatchInfoVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface VehicleDispatchInfoMapper extends Mapper<VehicleDispatchInfo> {
//获取调度申请列表
List<VehicleDispatchInfoVo> getInfoList(VehicleDispatchInfoDto vehicleDispatchInfoDto);
//获取调度申请用车详情列表
List<VehiclDispatchRecordVo> getRecordList(@Param("recordIds")List<String> recordIds);
}
\ No newline at end of file
package com.xxfc.platform.vehicle.rest;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Maps;
import com.xxfc.platform.vehicle.biz.*;
import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.BookType;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookInfo;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleDispatchInfo;
import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehicleDispatchInfoDto;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP_NAME;
@RestController
@RequestMapping("dispatch")
@Slf4j
@IgnoreClientToken
@Api(value="用车调度申请controller",tags={"用车调度申请接口"})
public class VehicleDispatchController extends BaseController<VehicleDispatchInfoBiz> {
@GetMapping("page")
@ApiModelProperty("获取申请列表")
public ObjectRestResponse page(@RequestBody VehicleDispatchInfoDto dispatchInfoDto, HttpServletRequest request){
return baseBiz.getInfoList(dispatchInfoDto,request);
}
@PostMapping("edit")
@ApiModelProperty("获取申请列表")
public ObjectRestResponse edit(@RequestBody VehicleDispatchInfo dispatchInfo){
return baseBiz.addDisspatchInfo(dispatchInfo);
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleDispatchInfoMapper" >
<!-- 获取调度申请列表-->
<select id="getInfoList" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehicleDispatchInfoDto"
resultType="com.xxfc.platform.vehicle.pojo.vo.VehicleDispatchInfoVo">
SELECT
DISTINCT
i.id,
i.company_id as companyId,
c.`name` as companyName,
i.mode_id as modeId,
i.`user`,
i.user_tel as userTel,
i.start_time as startTime,
i.end_time as endTime,
i.wish_ret_company as wishRetCompany,
c1.`name` as wishRetCompanyName,
i.book_type as bookType,
i.book_remark as bookRemark,
i.reason,
i.`status`,
i.record_ids as recordIds,
i.status_time as statusTime,
i.crt_time as crtTime,
i.upd_time as updTime
FROM vehicle_dispatch_info i
LEFT JOIN branch_company c ON i.company_id=c.id
LEFT JOIN branch_company c1 ON i.company_id=c1.id
<where>
i.is_del=0
<if test="companyList != null">
and i.company_id in (
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
#{companyId},
</foreach>
</trim>
)
</if>
<if test="status !=null">
and i.status = #{status}
</if>
</where>
order by i.crt_time desc
</select>
<!-- 获取调度申请用车详情列表-->
<select id="getRecordList" resultType="com.xxfc.platform.vehicle.pojo.vo.VehiclDispatchRecordVo">
SELECT
DISTINCT
r.id,
r.lift_company as liftCompany,
c.`name` as liftCompanyName,
c.leader as liftCompanyLeader,
c.leader_contact_info as liftCompanyLeaderTel,
r.actual_start_date as actualStartDate,
r.ret_company as retCompany,
c1.`name` as retCompanyName,
c1.leader as retCompanyLeader,
c1.leader_contact_info as retCompanyLeaderTel,
r.actual_end_date as actualEndDate
FROM vehicle_book_record r
LEFT JOIN branch_company c ON r.lift_company=c.id
LEFT JOIN branch_company c1 ON r.ret_company=c1.id
<where>
r.id in (
<trim suffixOverrides=",">
<foreach collection="recordIds" item="id">
#{id},
</foreach>
</trim>
)
</where>
order by i.actual_start_date
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment