Commit 2577fce7 authored by 164003836@qq.con's avatar 164003836@qq.con

增加随行物品模块

parent 9a5b8c8b
package com.xinxincaravan.caravan.vehicle.biz;
import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xinxincaravan.caravan.vehicle.common.RestResponse;
import com.xinxincaravan.caravan.vehicle.constant.AccompanyingItemStatus;
import com.xinxincaravan.caravan.vehicle.constant.RedisKey;
import com.xinxincaravan.caravan.vehicle.entity.AccompanyingItem;
import com.xinxincaravan.caravan.vehicle.mapper.AccompanyingItemMapper;
import com.xinxincaravan.caravan.vehicle.vo.AddOrUpdateAccompanyingItem;
import com.xinxincaravan.caravan.vehicle.vo.PageDataVo;
import com.xinxincaravan.caravan.vehicle.vo.QueryAccompanyItemVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class AccompanyingItemBiz extends BaseBiz<AccompanyingItemMapper, AccompanyingItem> {
@Cache(key = RedisKey.ACCOMPANYING_ITEM_CACHE_ALL)
public List<AccompanyingItem> getAll(){
return mapper.selectAll();
}
/**
* 按id获取列表,没有缓存
* @param id
* @return
*/
public AccompanyingItem get(Integer id){
return mapper.selectByPrimaryKey(id);
}
/**
* 按id获取列表,没有缓存
* @param ids
* @return
*/
public List<AccompanyingItem> getByIds(List<Integer> ids){
return mapper.getByIdList(ids);
}
/**
* 按页查询,
* 注意,此处一共名称的模糊查询是预测其数据量较少,有变化后考虑加入全文索引
* @param queryAccompanyItemVo
* @return
* @throws Exception
*/
public PageDataVo<AccompanyingItem> getByPage(QueryAccompanyItemVo queryAccompanyItemVo) throws Exception{
Map<String,String> params = BeanUtils.describe(queryAccompanyItemVo);
PageHelper.startPage(queryAccompanyItemVo.getPage(),queryAccompanyItemVo.getLimit());
List<AccompanyingItem> accompanyingItems = mapper.getAllByPage(params);
PageInfo<AccompanyingItem> accompanyingItemsPageInfo = new PageInfo<>(accompanyingItems);
return PageDataVo.pageInfo(accompanyingItemsPageInfo);
}
@CacheClear(key= RedisKey.ACCOMPANYING_ITEM_CACHE_ALL)
public RestResponse<Integer> add( AddOrUpdateAccompanyingItem addOrUpdateAccompanyingItem) throws Exception{
AccompanyingItem accompanyingItem = new AccompanyingItem();
accompanyingItem.setId(null);
BeanUtils.copyProperties(accompanyingItem,addOrUpdateAccompanyingItem);
Integer effected = mapper.insertSelective(accompanyingItem);
return RestResponse.suc();
}
@CacheClear(key= RedisKey.ACCOMPANYING_ITEM_CACHE_ALL)
public RestResponse<Integer> update( AddOrUpdateAccompanyingItem addOrUpdateAccompanyingItem) throws Exception{
AccompanyingItem accompanyingItem = new AccompanyingItem();
BeanUtils.copyProperties(accompanyingItem,addOrUpdateAccompanyingItem);
Integer effected = mapper.updateByPrimaryKeySelective(accompanyingItem);
return RestResponse.suc();
}
@CacheClear(key= RedisKey.ACCOMPANYING_ITEM_CACHE_ALL)
public RestResponse<Integer> del(Integer id){
Integer effected = mapper.deleteByPrimaryKey(id);
return RestResponse.suc();
}
}
......@@ -15,6 +15,7 @@ import com.xinxincaravan.caravan.vehicle.constant.VehicleStatus;
import com.xinxincaravan.caravan.vehicle.entity.Vehicle;
import com.xinxincaravan.caravan.vehicle.entity.VehicleBookInfo;
import com.xinxincaravan.caravan.vehicle.entity.VehicleBookRecord;
import com.xinxincaravan.caravan.vehicle.mapper.BookRecordAccItemMapper;
import com.xinxincaravan.caravan.vehicle.mapper.VehicleBookInfoMapper;
import com.xinxincaravan.caravan.vehicle.mapper.VehicleBookRecordMapper;
import com.xinxincaravan.caravan.vehicle.mapper.VehicleMapper;
......@@ -54,6 +55,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
private ConstantBiz constantBiz;
@Autowired
private BranchCompanyBiz branchCompanyBiz;
@Autowired
private BookRecordAccItemMapper bookRecordAccItemMapper;
/**
* 每批次最大更、插入车辆最大条目数
*/
......@@ -211,6 +215,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
* @param bookVehicleVo
* @return
*/
@Transactional
public RestResponse applyVehicle4Employee(Integer userId,BookVehicleVo bookVehicleVo,String userName){
//检查车辆信息是否合法
checkIfVehicleExists(bookVehicleVo.getVehicle());
......@@ -245,7 +250,17 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
vehicleBookRecord.setDestination(bookVehicleVo.getDestination());
vehicleBookRecord.setLiftCompany(bookVehicleVo.getLiftCompany());
vehicleBookRecordMapper.insertSelective(vehicleBookRecord);
List<Map<String,Object>> params = Lists.newArrayList();
if(MapUtils.isNotEmpty(bookVehicleVo.getSelectedAccItem())){
for(Map.Entry<Integer,Integer> idAndAmount : bookVehicleVo.getSelectedAccItem().entrySet()){
Map<String,Object> row = Maps.newHashMap();
row.put("id",idAndAmount.getKey());
row.put("amount",idAndAmount.getValue());
row.put("bookRecordId",vehicleBookRecord.getId());
params.add(row);
}
bookRecordAccItemMapper.batchAdd(params);
}
return RestResponse.suc();
}
......@@ -357,41 +372,6 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
return RestResponse.suc();
}
/**
* 车辆归还
* @param operatorId
* @param bookRecordId
* @return
*/
@Deprecated //相关是否存在提车流程?暂废弃
public RestResponse<Integer> returnVehicle(Integer operatorId, String bookRecordId){
//获取相关申请记录
VehicleBookRecord vehicleBookRecord = vehicleBookRecordMapper.selectByPrimaryKey(bookRecordId);
//申请记录验证
if(vehicleBookRecord == null){
throw new CustomIllegalParamException(" invalid book record");
}
if(!VehicleBookRecordStatus.APPROVE.getCode().equals(vehicleBookRecord.getStatus())){
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode());
}
//对比预定日期,逾期状态即为逾期归还
DateTime startDate = new DateTime(vehicleBookRecord.getBookStartDate());
DateTime endDate = new DateTime(vehicleBookRecord.getBookEndDate());
Integer status = VehicleBookRecordStatus.RETURNED.getCode();
if(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER).
compareTo(endDate.toString(DEFAULT_DATE_TIME_FORMATTER))>0){
status = VehicleBookRecordStatus.RETURNED_OUT_DATE.getCode();
}
//若提早归还则需要修改相关预定记录
//修改状态为已归还,写入实际归还日期
return null;
}
/**
......
package com.xinxincaravan.caravan.vehicle.constant;
import com.google.common.collect.Maps;
import java.util.Map;
public enum AccompanyingItemStatus {
NORMAL(1,"正常"),//这一类型不存在db中,只是用于查询所有国家
DELETED(2,"已删除"),
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
private static Map<Integer,String> codeAndDesc = Maps.newHashMap();
static{
for(AccompanyingItemStatus constantType : AccompanyingItemStatus.values()){
codeAndDesc.put(constantType.getCode(),constantType.getDesc());
}
}
AccompanyingItemStatus(Integer code, String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
}
package com.xinxincaravan.caravan.vehicle.constant;
import com.google.common.collect.Maps;
import java.util.Map;
public enum AccompanyingItemType {
TOOL(1,"随车工具"),//这一类型不存在db中,只是用于查询所有国家
EQUIPMENT(2,"随车配备"),
EQUIPABLE_ITEM(3,"可配物品"),
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
private static Map<Integer,String> codeAndDesc = Maps.newHashMap();
static{
for(AccompanyingItemType constantType : AccompanyingItemType.values()){
codeAndDesc.put(constantType.getCode(),constantType.getDesc());
}
}
AccompanyingItemType(Integer code, String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
}
......@@ -34,7 +34,7 @@ public class RedisKey {
/**
* 迁移预定记录rediseky
*/
public static final String DEL_BOOK_RECORD_LOCK_PREFIX ="lock:del:bookRecord:";
public static final String TRANSFER_BOOK_RECORD_LOCK_PREFIX ="lock:bookRecord:transfer";
/**
......@@ -42,4 +42,8 @@ public class RedisKey {
*/
public static final String BRANCH_COMPANY_CACHE_ALL ="cache:bracnCompany:all";
// 随车物品相关key
public static final String ACCOMPANYING_ITEM_CACHE_ALL ="cache:accompanyItem:all";
}
package com.xinxincaravan.caravan.vehicle.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import java.util.Date;
@Data
public class AccompanyingItem {
public static final Integer NO_AMOUNT_LIMIT = -1;
@Id
private Integer id;
/**
* 物品名称
*/
@Column(name = "name")
private String name;
/**
* 物品类型,详见AccompanyingItemType
*/
@Column(name = "type" )
private Integer type;
/**
* 备注
*/
private String remark;
private Date createTime;
private Date updateTime;
}
package com.xinxincaravan.caravan.vehicle.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Data
public class BookRecordAccItem {
/**
* 主键
*/
@Id
private Long id;
/**
* 订车记录
*/
private Long bookRecordId;
/**
* 随行物品id
*/
private Integer accItemId;
/**
* 数量
*/
private Integer amount;
}
\ No newline at end of file
......@@ -12,6 +12,7 @@ public class VehicleBookRecord {
* 主键
*/
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
/**
......
package com.xinxincaravan.caravan.vehicle.mapper;
import com.xinxincaravan.caravan.vehicle.entity.AccompanyingItem;
import com.xinxincaravan.caravan.vehicle.entity.SysRegion;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map;
public interface AccompanyingItemMapper extends Mapper<AccompanyingItem> {
public List<AccompanyingItem> getAllByPage(Map<String, String> params);
public List<AccompanyingItem> getByIdList(List<Integer> idList);
public Integer updateStatusById(AccompanyingItem accompanyingItem);
}
package com.xinxincaravan.caravan.vehicle.mapper;
import com.xinxincaravan.caravan.vehicle.entity.BookRecordAccItem;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map;
public interface BookRecordAccItemMapper extends Mapper<BookRecordAccItem> {
public Integer batchAdd(List<Map<String,Object>> list);
public Integer batchAdd2Tb(Map<String,Object> params);
public List<BookRecordAccItem> getByRecords(Map<String,Object> params);
public void createTbIfNotExists(String tbName);
}
\ No newline at end of file
......@@ -17,9 +17,14 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> {
public Integer del4YearMoth(Map<String,Object> params);
public List<Long> getIdInYearMothLimit(Map<String,Object> params);
public void createTbIfNotExists(String tbName);
public List<QueryVehicleBookRecordVo> getByPage(Map<String,Object> params);
public Integer liftOrRet(Map<String,Object> params);
public VehicleBookRecord getById(Map<String,Object> params);
}
\ No newline at end of file
package com.xinxincaravan.caravan.vehicle.rest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.xinxincaravan.caravan.vehicle.biz.AccompanyingItemBiz;
import com.xinxincaravan.caravan.vehicle.common.BaseController;
import com.xinxincaravan.caravan.vehicle.common.CustomIllegalParamException;
import com.xinxincaravan.caravan.vehicle.common.RestResponse;
import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode;
import com.xinxincaravan.caravan.vehicle.entity.AccompanyingItem;
import com.xinxincaravan.caravan.vehicle.vo.AddOrUpdateAccompanyingItem;
import com.xinxincaravan.caravan.vehicle.vo.PageDataVo;
import com.xinxincaravan.caravan.vehicle.vo.QueryAccompanyItemVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/accompanyingItem")
@IgnoreClientToken
@Slf4j
public class AccompanyingItemController extends BaseController<AccompanyingItemBiz> {
@RequestMapping(value ="/{id}",method = RequestMethod.GET)
private RestResponse<AccompanyingItem> get(@PathVariable Integer id) throws Exception{
return RestResponse.codeAndData(RestResponse.SUC_CODE,baseBiz.get(id));
}
@RequestMapping(value ="/all",method = RequestMethod.GET)
private RestResponse<List<AccompanyingItem>> getAll(){
return RestResponse.codeAndData(RestResponse.SUC_CODE,baseBiz.getAll());
}
@RequestMapping(value ="/page",method = RequestMethod.GET)
private RestResponse<PageDataVo<AccompanyingItem>> getByPage(@RequestParam String queryAccompanyItemVoJson) throws Exception{
QueryAccompanyItemVo queryAccompanyItemVo = null;
try {
queryAccompanyItemVo = JSON.parseObject(queryAccompanyItemVoJson,QueryAccompanyItemVo.class);
return RestResponse.data(baseBiz.getByPage(queryAccompanyItemVo));
} catch (JSONException ex) {
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
} catch (CustomIllegalParamException ex){
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
}
}
@RequestMapping(value ="",method = RequestMethod.POST)
private RestResponse<Integer> add(@RequestBody AddOrUpdateAccompanyingItem addOrUpdateAccompanyingItem) throws Exception{
return baseBiz.add(addOrUpdateAccompanyingItem);
}
@RequestMapping(value ="",method = RequestMethod.PUT)
private RestResponse<Integer> update(@RequestBody AddOrUpdateAccompanyingItem addOrUpdateAccompanyingItem) throws Exception{
return baseBiz.update(addOrUpdateAccompanyingItem);
}
@RequestMapping(value ="/{id}",method = RequestMethod.DELETE)
private RestResponse<Integer> del(@PathVariable Integer id) throws Exception{
return baseBiz.del(id);
}
}
......@@ -20,6 +20,9 @@ import com.xinxincaravan.caravan.vehicle.entity.VehicleBookInfo;
import com.xinxincaravan.caravan.vehicle.entity.VehicleBookRecord;
import com.xinxincaravan.caravan.vehicle.vo.*;
import lombok.extern.slf4j.Slf4j;
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.web.bind.annotation.*;
......@@ -34,6 +37,8 @@ public class VehicleController extends BaseController<VehicleBiz> {
@Autowired
private VehicleBookRecordBiz vehicleBookRecordBiz;
public static final DateTimeFormatter DEFAULT_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
@RequestMapping(value ="/{id}",method = RequestMethod.GET)
public RestResponse<Vehicle> get(@PathVariable String id) {
return RestResponse.data(baseBiz.get(id));
......@@ -139,11 +144,11 @@ public class VehicleController extends BaseController<VehicleBiz> {
return baseBiz.unbookVehicle4Employee(operatorId,bookRecordId,userName);
}
@RequestMapping(value ="/bookedRecord/{id}",method = RequestMethod.GET)
public RestResponse<VehicleBookRecord> getBookedRecord(@PathVariable Long id) throws Exception{
@RequestMapping(value ="/bookedRecord/{bookEndDate}/{id}",method = RequestMethod.GET)
public RestResponse<QueryVehicleBookRecordVo> getBookedRecord(@PathVariable String bookEndDate,@PathVariable Long id) throws Exception{
try {
return RestResponse.codeAndData(RestResponse.SUC_CODE,vehicleBookRecordBiz.getById(id));
return RestResponse.codeAndData(RestResponse.SUC_CODE,vehicleBookRecordBiz.getById(id, DateTime.parse(bookEndDate,DEFAULT_FORMATTER)));
} catch (JSONException ex) {
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
} catch (CustomIllegalParamException ex){
......
package com.xinxincaravan.caravan.vehicle.vo;
import lombok.Data;
import java.util.Date;
@Data
public class AddOrUpdateAccompanyingItem {
private Integer id;
/**
* 物品名称
*/
private String name;
/**
* 物品类型,详见AccompanyingItemType
*/
private Integer type;
/**
* 备注
*/
private String remark;
}
......@@ -5,6 +5,7 @@ import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import java.util.List;
import java.util.Map;
@Data
public class BookVehicleVo {
......@@ -51,4 +52,9 @@ public class BookVehicleVo {
*/
private String remark;
/**
* 随车物品id以及数量 List<Map<id,数量>>
*/
Map<Integer,Integer> selectedAccItem;
}
\ No newline at end of file
package com.xinxincaravan.caravan.vehicle.vo;
import lombok.Data;
/**
* 查询随行物品
*
*/
@Data
public class QueryAccompanyItemVo {
private Integer type;
private String name;
private Integer page;
private Integer limit;
}
......@@ -6,6 +6,8 @@ import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
public class QueryVehicleBookRecordVo {
......@@ -181,4 +183,11 @@ public class QueryVehicleBookRecordVo {
*/
private String reviewerNameLift;
/**
* 随车物品id以及数量 List<Map<id,数量>>
*/
Map<Integer,Integer> accItemAndAmount;
}
\ No newline at end of file
<?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.xinxincaravan.caravan.vehicle.mapper.AccompanyingItemMapper">
<select id="getAllByPage" parameterType="java.util.Map" resultType="com.xinxincaravan.caravan.vehicle.entity.AccompanyingItem">
select
`id`, `type`, `name`, `remark`, `create_time`, `update_time`
from
vehicle.accompanying_item
where
1 = 1
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="type != null">
and type = #{type}
</if>
</select>
<select id="getByIdList" parameterType="java.util.List" resultType="com.xinxincaravan.caravan.vehicle.entity.AccompanyingItem">
select
`id`, `type`, `name`, `remark`, `create_time`, `update_time`
from
vehicle.accompanying_item
where `id` in
<foreach collection="list" index="i" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
</mapper>
\ No newline at end of file
<?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.xinxincaravan.caravan.vehicle.mapper.BookRecordAccItemMapper" >
<insert id="batchAdd" parameterType="java.util.List">
insert into book_record_acc_item(book_record_id,acc_item_id,amount) values
<foreach collection="list" index="i" item="item" separator="," open="" close="">
(#{item.bookRecordId},#{item.id},#{item.amount})
</foreach>
</insert>
<insert id="batchAdd2Tb" parameterType="java.util.Map">
insert into ${tbName}(id,book_record_id,acc_item_id,amount) values
<foreach collection="list" index="i" item="item" separator="," open="" close="">
(#{item.id},#{item.bookRecordId},#{item.accItemId},#{item.amount})
</foreach>
</insert>
<select id="getByRecords" parameterType="java.util.List" resultType="com.xinxincaravan.caravan.vehicle.entity.BookRecordAccItem" >
select id,book_record_id,acc_item_id,amount from ${tbName} where book_record_id in
<foreach collection="bookRecordIds" index="i" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>
<insert id="createTbIfNotExists" parameterType="java.lang.String">
CREATE TABLE IF NOT EXISTS ${_parameter} (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`book_record_id` bigint(20) NOT NULL COMMENT '申请记录id',
`acc_item_id` int(11) NOT NULL COMMENT '对应随行物品id',
`amount` int(10) NULL DEFAULT NULL COMMENT '数量',
PRIMARY KEY (`id`) USING BTREE,
INDEX `i_book_record_id`(`book_record_id`) USING BTREE,
INDEX `i_acc_item_id`(`acc_item_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '汽车随行物品预定记录关系历史表,按年分表' ROW_FORMAT = Dynamic;
</insert>
</mapper>
\ No newline at end of file
<?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.xinxincaravan.caravan.vehicle.mapper.VehicleBookRecordMapper" >
<resultMap id="BaseResultMap" type="com.xinxincaravan.caravan.vehicle.entity.VehicleBookRecord" >
<!--
WARNING - @mbg.generated
-->
<id column="id" property="id" jdbcType="BIGINT" />
<result column="vehicle" property="vehicle" jdbcType="VARCHAR" />
<result column="statu" property="statu" jdbcType="INTEGER" />
<result column="book_type" property="bookType" jdbcType="INTEGER" />
<result column="book_user" property="bookUser" jdbcType="INTEGER" />
<result column="contact_info" property="contactInfo" jdbcType="VARCHAR" />
<result column="book_start_date" property="bookStartDate" jdbcType="TIMESTAMP" />
<result column="
lift_location" property="
liftLocation" jdbcType="VARCHAR" />
<result column="lift_addr" property="liftAddr" jdbcType="VARCHAR" />
<result column="remark" property="remark" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="destination" property="destination" jdbcType="VARCHAR" />
<result column="book_end_date" property="bookEndDate" jdbcType="TIMESTAMP" />
<result column="actal_start_date" property="actalStartDate" jdbcType="TIMESTAMP" />
<result column="actual_end_date" property="actualEndDate" jdbcType="TIMESTAMP" />
</resultMap>
<update id="changeRecordStatus" parameterType="java.util.Map">
update vehicle_book_record set
......@@ -53,6 +30,10 @@ liftLocation" jdbcType="VARCHAR" />
delete from vehicle_book_record where `book_end_date` between #{startDate} and #{endDate} limit #{batchSize}
</delete>
<select id="getIdInYearMothLimit" parameterType="java.util.Map" resultType="java.lang.Long">
select id from vehicle_book_record where `book_end_date` between #{startDate} and #{endDate} limit #{batchSize}
</select>
<update id="liftOrRet" parameterType="java.util.Map">
update vehicle_book_record
set `status` = #{targetStatus},
......@@ -76,7 +57,12 @@ liftLocation" jdbcType="VARCHAR" />
<if test="liftCompany != null">
`lift_company` = #{liftCompany},
</if>
`actual_start_date` = now()
<choose>
<when test="targetStatus == 7"> `actual_start_date` = now() </when>
<when test="targetStatus == 3"> `actual_end_date` = now() </when>
</choose>
where id = #{id} and `status` = #{conditionStatus}
</update>
......@@ -102,7 +88,13 @@ liftLocation" jdbcType="VARCHAR" />
`reviewer_cancel`,
`reviewer_name_cancel`,
`actual_start_date`,
`actual_end_date`
`actual_end_date`,
`reviewer_lift`,
`reviewer_name_lift`,
lift_company,
lift_remark,
ret_company,
ret_remark
)
values(
#{id},
......@@ -125,7 +117,13 @@ liftLocation" jdbcType="VARCHAR" />
#{reviewerCancel},
#{reviewerNameCancel},
#{actualStartDate},
#{actualEndDate}
#{actualEndDate},
#{reviewerLift},
#{reviewerNameLift},
#{liftCompany},
#{liftRemark},
#{retCompany},
#{retRemark}
);
</insert>
......@@ -153,7 +151,13 @@ liftLocation" jdbcType="VARCHAR" />
`reviewer_cancel`,
`reviewer_name_cancel`,
`actual_start_date`,
`actual_end_date`
`actual_end_date`,
`reviewer_lift`,
`reviewer_name_lift`,
lift_company,
lift_remark,
ret_company,
ret_remark
from
vehicle_book_record
where
......@@ -236,11 +240,47 @@ liftLocation" jdbcType="VARCHAR" />
order by vbr.id desc
</select>
<select id="getById" parameterType="java.util.Map" resultType="com.xinxincaravan.caravan.vehicle.entity.VehicleBookRecord" >
select
vbr.`id`,
vbr.`vehicle`,
vbr.`status`,
vbr.`book_type`,
vbr.`book_user`,
vbr.`book_user_name`,
vbr.`contact_info`,
vbr.`book_start_date`,
vbr.`book_end_date`,
vbr.`lift_location`,
vbr.`lift_addr`,
vbr.`remark`,
vbr.`create_time`,
vbr.`update_time`,
vbr.`destination`,
vbr.`reviewer_apply`,
vbr.`reviewer_name_apply`,
vbr.`reviewer_return`,
vbr.`reviewer_name_return`,
vbr.`reviewer_cancel`,
vbr.`reviewer_name_cancel`,
vbr.`actual_start_date`,
vbr.`actual_end_date`,
vbr.`reviewer_lift`,
vbr.`reviewer_name_lift`,
vbr.lift_company,
vbr.lift_remark,
vbr.ret_company,
vbr.ret_remark
from ${tbName} vbr
where id = #{id}
</select>
<insert id="createTbIfNotExists" parameterType="java.lang.String">
CREATE TABLE IF NOT EXISTS ${_parameter} (
`id` bigint(20) NOT NULL COMMENT '主键',
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`vehicle` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '车辆id',
`status` int(255) NULL DEFAULT NULL COMMENT '申请状态:1-申请中 2-已通过 3-已归还 4-拒绝 5-逾期归还 6-已取消',
`book_type` int(11) NOT NULL COMMENT '预定类型,1-用户租赁、2-内部员工申请 3-维修',
......@@ -250,7 +290,7 @@ liftLocation" jdbcType="VARCHAR" />
`book_start_date` datetime(0) NOT NULL COMMENT '申请开始日期',
`book_end_date` datetime(0) NOT NULL COMMENT '申请结束日期',
`lift_location` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提车地点(经纬度)',
`lift_addr` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '提车地址',
`lift_addr` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提车地址',
`remark` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
`update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),
......@@ -261,8 +301,14 @@ liftLocation" jdbcType="VARCHAR" />
`reviewer_name_return` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '归还审核人姓名',
`reviewer_cancel` int(10) NULL DEFAULT NULL COMMENT '取消人,-1代表系统',
`reviewer_name_cancel` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '取消预定人姓名',
`actual_start_date` datetime(0) NULL DEFAULT NULL COMMENT '实际开始日期',
`actual_end_date` datetime(0) NULL DEFAULT NULL COMMENT '实际结束日期',
`actual_start_date` datetime(0) NULL DEFAULT NULL COMMENT '实际开始日期(提车时间)',
`actual_end_date` datetime(0) NULL DEFAULT NULL COMMENT '实际结束日期(还车时间)',
`lift_company` int(10) NULL DEFAULT NULL COMMENT '提车地点(公司)',
`lift_remark` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提车备注',
`ret_company` int(10) NULL DEFAULT NULL COMMENT '还车地点(公司)',
`ret_remark` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '还车备注',
`reviewer_lift` int(10) NULL DEFAULT NULL COMMENT '提车审核人',
`reviewer_name_lift` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提车审核人姓名',
PRIMARY KEY (`id`) USING BTREE,
INDEX `i_vehicle`(`vehicle`) USING BTREE,
INDEX `i_book_user`(`book_user`) USING BTREE,
......
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