Commit f6f93ed0 authored by jiaorz's avatar jiaorz

Merge remote-tracking branch 'remotes/origin/dev' into base-modify

# Conflicts:
#	xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleActiveService.java
parents 89266e66 d74c428f
...@@ -209,7 +209,7 @@ ...@@ -209,7 +209,7 @@
<artifactId>spring-boot</artifactId> <artifactId>spring-boot</artifactId>
<version>2.1.3.RELEASE</version> <version>2.1.3.RELEASE</version>
</dependency> </dependency>
<dependency> <!-- <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-openfeign-core</artifactId> <artifactId>spring-cloud-openfeign-core</artifactId>
<version>2.1.0.RELEASE</version> <version>2.1.0.RELEASE</version>
...@@ -226,12 +226,12 @@ ...@@ -226,12 +226,12 @@
<artifactId>feign-core</artifactId> <artifactId>feign-core</artifactId>
<version>10.1.0</version> <version>10.1.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>-->
<!-- <dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId> <artifactId>spring-cloud-starter-openfeign</artifactId>
<scope>compile</scope> <scope>compile</scope>
</dependency>--> </dependency>
</dependencies> </dependencies>
......
...@@ -40,8 +40,8 @@ public class RandomUtil ...@@ -40,8 +40,8 @@ public class RandomUtil
* @param n * @param n
* @param set * @param set
*/ */
public static void randomSet(int max, int n, Set<Integer> set) { public static void randomSet(int max, int n, Set<Integer> set, int total) {
if (n > (max + 1) || max < 0) { if (n > (max) || max < 0) {
return; return;
} }
for (int i = 0; i < n; i++) { for (int i = 0; i < n; i++) {
...@@ -50,8 +50,8 @@ public class RandomUtil ...@@ -50,8 +50,8 @@ public class RandomUtil
} }
int setSize = set.size(); int setSize = set.size();
// 如果存入的数小于指定生成的个数,则调用递归再生成剩余个数的随机数,如此循环,直到达到指定大小 // 如果存入的数小于指定生成的个数,则调用递归再生成剩余个数的随机数,如此循环,直到达到指定大小
if (setSize < n) { if (setSize < total) {
randomSet( max, n-setSize, set);// 递归 randomSet(max, total - setSize, set, total);// 递归
} }
} }
...@@ -63,9 +63,9 @@ public class RandomUtil ...@@ -63,9 +63,9 @@ public class RandomUtil
public static void main(String[] args) { public static void main(String[] args) {
int max = 20; int max = 20;
int n = 5; int n = 20;
Set<Integer> set = new HashSet<>(); Set<Integer> set = new HashSet<>();
randomSet(max, n, set); randomSet(max, n, set, n);
for(Integer a : set) { for(Integer a : set) {
System.out.println(a); System.out.println(a);
} }
......
...@@ -347,7 +347,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> { ...@@ -347,7 +347,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
return ObjectRestResponse.succ(list); return ObjectRestResponse.succ(list);
} }
Set<Integer> set = new HashSet<>(); Set<Integer> set = new HashSet<>();
RandomUtil.randomSet(list.size(), number, set); RandomUtil.randomSet(list.size(), number, set, number);
for(Integer i : set) { for(Integer i : set) {
resultList.add(list.get(i)); resultList.add(list.get(i));
} }
......
...@@ -338,7 +338,7 @@ public class TourGoodBiz extends BaseBiz<TourGoodMapper, TourGood> { ...@@ -338,7 +338,7 @@ public class TourGoodBiz extends BaseBiz<TourGoodMapper, TourGood> {
return ObjectRestResponse.succ(list); return ObjectRestResponse.succ(list);
} }
Set<Integer> set = new HashSet<>(); Set<Integer> set = new HashSet<>();
RandomUtil.randomSet(list.size(), number, set); RandomUtil.randomSet(list.size(), number, set, number);
for(Integer i : set) { for(Integer i : set) {
resultList.add(list.get(i)); resultList.add(list.get(i));
} }
......
package com.xxfc.platform.uccn.comstnt;
/**
* 访问路径
* @author Administrator
*/
public enum UrlType {
OFFICIAL_WEBSITE("官网访问",1),BACKGROUND_MANAGEMENT("后台访问",2);
private String name;
private Integer code;
UrlType(String name, Integer code) {
this.name = name;
this.code = code;
}
public String getName() {
return name;
}
public Integer getCode() {
return code;
}
}
...@@ -10,6 +10,7 @@ import tk.mybatis.mapper.annotation.KeySql; ...@@ -10,6 +10,7 @@ import tk.mybatis.mapper.annotation.KeySql;
import tk.mybatis.mapper.code.IdentityDialect; import tk.mybatis.mapper.code.IdentityDialect;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.Table; import javax.persistence.Table;
import java.util.Date; import java.util.Date;
...@@ -26,6 +27,7 @@ public class Article { ...@@ -26,6 +27,7 @@ public class Article {
@Id @Id
@KeySql(dialect = IdentityDialect.MYSQL) @KeySql(dialect = IdentityDialect.MYSQL)
// @GeneratedValue(generator = "JDBC")
private Integer id; private Integer id;
/** /**
* 标题 * 标题
......
package com.xxfc.platform.uccn.vo;
import lombok.Data;
/**
* 新闻文章查询条件
* @author Administrator
*/
@Data
public class ArticleQuery {
private Integer page;
private Integer limit;
// private String newsContent;
}
...@@ -3,8 +3,10 @@ package com.xxfc.platform.uccn.biz; ...@@ -3,8 +3,10 @@ package com.xxfc.platform.uccn.biz;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.uccn.comstnt.UrlType;
import com.xxfc.platform.uccn.entity.Article; import com.xxfc.platform.uccn.entity.Article;
import com.xxfc.platform.uccn.mapper.ArticleMapper; import com.xxfc.platform.uccn.mapper.ArticleMapper;
import com.xxfc.platform.uccn.vo.ArticleQuery;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
...@@ -21,16 +23,17 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> { ...@@ -21,16 +23,17 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> {
/** /**
* 随机文章条数 * 随机文章条数
*/ */
private final Integer RANDOM_NUMBER=3; private final Integer RANDOM_NUMBER = 3;
/** /**
* 首页文章条数 * 首页文章条数
*/ */
private final Integer HOME_PAGE_NUMBER=4; private final Integer HOME_PAGE_NUMBER = 4;
/** /**
* 文章列表 * 文章列表
*
* @param page * @param page
* @param limit * @param limit
* @param type * @param type
...@@ -44,23 +47,27 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> { ...@@ -44,23 +47,27 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> {
/** /**
* 获取一条数据 * 获取一条数据
*
* @param id * @param id
* @param urlType
* @return * @return
*/ */
public Article getOne(Integer id) { public Article getOne(Integer id, Integer urlType) {
Example example = Example.builder(Article.class).where(
WeekendSqls.<Article>custom() Example example = new Example(Article.class);
.andEqualTo(Article::getId,id) Example.Criteria criteria = example.createCriteria();
.andEqualTo(Article::getIsDel, 0) criteria.andEqualTo("id", id);
.andEqualTo(Article::getStatus, 1) criteria.andEqualTo("isDel", 0);
).build(); if (UrlType.OFFICIAL_WEBSITE.getCode().equals(urlType)) {
Article article = mapper.selectOneByExample(example); criteria.andEqualTo("status", 1);
return article; }
return mapper.selectOneByExample(example);
} }
/** /**
* 随机获取三条连续的文章 * 随机获取三条连续的文章
*
* @param type * @param type
* @return * @return
*/ */
...@@ -69,14 +76,14 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> { ...@@ -69,14 +76,14 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> {
List<Article> articleList = mapper.getArticleList(type); List<Article> articleList = mapper.getArticleList(type);
if (!Objects.isNull(articleList)) { if (!Objects.isNull(articleList)) {
int size = articleList.size(); int size = articleList.size();
if (RANDOM_NUMBER>=size) { if (RANDOM_NUMBER >= size) {
return articleList; return articleList;
}else { } else {
Random random = new Random(); Random random = new Random();
int r = random.nextInt(size -RANDOM_NUMBER+1); int r = random.nextInt(size - RANDOM_NUMBER + 1);
List<Article> result = new ArrayList<>(); List<Article> result = new ArrayList<>();
for (int i=0;i<RANDOM_NUMBER.intValue();i++){ for (int i = 0; i < RANDOM_NUMBER.intValue(); i++) {
int index= i+r; int index = i + r;
result.add(articleList.get(index)); result.add(articleList.get(index));
} }
return result; return result;
...@@ -88,17 +95,18 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> { ...@@ -88,17 +95,18 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> {
/** /**
* 首页文章列表 * 首页文章列表
*
* @param type * @param type
* @return * @return
*/ */
public List getHomePageArticle(Integer type){ public List getHomePageArticle(Integer type) {
List<Article> articleList = mapper.getArticleList(type); List<Article> articleList = mapper.getArticleList(type);
if (Objects.isNull(articleList)) { if (Objects.isNull(articleList)) {
return new ArrayList(); return new ArrayList();
}else { } else {
if (articleList.size()>HOME_PAGE_NUMBER) { if (articleList.size() > HOME_PAGE_NUMBER) {
return articleList.subList(0,HOME_PAGE_NUMBER); return articleList.subList(0, HOME_PAGE_NUMBER);
}else { } else {
return articleList; return articleList;
} }
} }
...@@ -106,19 +114,64 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> { ...@@ -106,19 +114,64 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void add(Article article) { public void add(Article article) {
if (article==null) { if (article == null) {
return; return;
} }
article.setIsDel(0); article.setIsDel(0);
if (article.getStatus()==null){ if (article.getStatus() == null) {
article.setStatus(0); article.setStatus(0);
} }
if (article.getType()==null){ if (article.getType() == null) {
article.setType(0); article.setType(0);
} }
article.setCreTime(new Date()); article.setCreTime(new Date());
mapper.insertSelective(article); mapper.insertSelective(article);
} }
public PageInfo findAll(ArticleQuery query) {
PageHelper.startPage(query.getPage(),query.getLimit());
Example exa = Example.builder(Article.class).where(
WeekendSqls.<Article>custom()
.andEqualTo(Article::getIsDel,0)
).orderByAsc("weight").orderByDesc("addTime").build();
List<Article> articles = mapper.selectByExample(exa);
return PageInfo.of(articles);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int updateSelectiveByIdRe(Article article){
article.setUpdTime(new Date());
return mapper.updateByPrimaryKeySelective(article);
}
public int putaway(Integer id) {
Article article = new Article();
article.setId(id);
article.setUpdTime(new Date());
article.setAddTime(new Date());
article.setStatus(1);
return mapper.updateByPrimaryKeySelective(article);
}
public int soldOut(Integer id) {
Article article = new Article();
article.setId(id);
article.setUpdTime(new Date());
article.setStatus(0);
return mapper.updateByPrimaryKeySelective(article);
}
public int remove(Integer id) {
Article article = new Article();
article.setId(id);
article.setUpdTime(new Date());
article.setIsDel(1);
return mapper.updateByPrimaryKeySelective(article);
}
} }
...@@ -194,7 +194,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv ...@@ -194,7 +194,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv
} }
} else { } else {
Set<Integer> resultSet = new HashSet<>(); Set<Integer> resultSet = new HashSet<>();
RandomUtil.randomSet(summitActivities.size(), num, resultSet); RandomUtil.randomSet(summitActivities.size(), num, resultSet, num);
for (Integer i : resultSet) { for (Integer i : resultSet) {
summitActivityVo = new SummitActivityVo(); summitActivityVo = new SummitActivityVo();
SummitActivity summitActivity = summitActivities.get(i); SummitActivity summitActivity = summitActivities.get(i);
......
...@@ -4,12 +4,11 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; ...@@ -4,12 +4,11 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.uccn.biz.ArticleBiz; import com.xxfc.platform.uccn.biz.ArticleBiz;
import com.xxfc.platform.uccn.entity.Article; import com.xxfc.platform.uccn.entity.Article;
import com.xxfc.platform.uccn.vo.ArticleQuery;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Map;
/** /**
* 文章 * 文章
...@@ -21,29 +20,30 @@ import java.util.Map; ...@@ -21,29 +20,30 @@ import java.util.Map;
@Api(tags = {"文章"}) @Api(tags = {"文章"})
public class ArticleController extends BaseController<ArticleBiz, Article> { public class ArticleController extends BaseController<ArticleBiz, Article> {
@GetMapping("/list") @GetMapping("/app/unauth/list")
@ApiOperation(value = "获取文章列表") @ApiOperation(value = "获取文章列表")
public ObjectRestResponse getArticleList( public ObjectRestResponse getArticleList(
@RequestParam(name = "page", defaultValue = "1") Integer page, @RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "limit", defaultValue = "10") Integer limit, @RequestParam(name = "limit", defaultValue = "10") Integer limit,
@RequestParam(name = "type", defaultValue = "0") Integer type) { @RequestParam(name = "type", defaultValue = "1") Integer type) {
return ObjectRestResponse.succ(baseBiz.getArticleList(page, limit, type)); return ObjectRestResponse.succ(baseBiz.getArticleList(page, limit, type));
} }
@GetMapping("/one/{id}") @GetMapping("/app/unauth/one")
@ApiOperation(value = "获取一条数据") @ApiOperation(value = "获取一条数据")
public ObjectRestResponse getOne(@PathVariable Integer id) { public ObjectRestResponse getOne(@RequestParam Integer id,
return ObjectRestResponse.succ(baseBiz.getOne(id)); @RequestParam(required = false) Integer urlType) {
return ObjectRestResponse.succ(baseBiz.getOne(id,urlType));
} }
@GetMapping("/three/{type}") @GetMapping("/app/unauth/three/{type}")
@ApiOperation(value = "随机获取三条数据") @ApiOperation(value = "随机获取三条数据")
public ObjectRestResponse randomAccessToThreeData(@PathVariable Integer type){ public ObjectRestResponse randomAccessToThreeData(@PathVariable Integer type){
return ObjectRestResponse.succ(baseBiz.getThree(type)); return ObjectRestResponse.succ(baseBiz.getThree(type));
} }
@GetMapping("/homePage/{type}") @GetMapping("/app/unauth/homePage/{type}")
@ApiOperation(value = "获取首页文章列表") @ApiOperation(value = "获取首页文章列表")
public ObjectRestResponse getHomePageArticle(@PathVariable Integer type){ public ObjectRestResponse getHomePageArticle(@PathVariable Integer type){
return ObjectRestResponse.succ(baseBiz.getHomePageArticle(type)); return ObjectRestResponse.succ(baseBiz.getHomePageArticle(type));
...@@ -51,11 +51,58 @@ public class ArticleController extends BaseController<ArticleBiz, Article> { ...@@ -51,11 +51,58 @@ public class ArticleController extends BaseController<ArticleBiz, Article> {
@Override @Override
@PostMapping("/add") @PostMapping("/add")
@ApiOperation(value = "获取首页文章列表") @ApiOperation(value = "添加")
public ObjectRestResponse add(@RequestBody Article article){ public ObjectRestResponse add(@RequestBody Article article){
baseBiz.add(article); baseBiz.add(article);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
@PostMapping("/all")
@ApiOperation(value = "获取新闻列表")
public ObjectRestResponse<Article> findAll(@RequestBody ArticleQuery query){
return ObjectRestResponse.succ(baseBiz.findAll(query));
}
@Override
@PutMapping("/update")
@ApiOperation(value = "修改")
public ObjectRestResponse update(@RequestBody Article article){
int flag = baseBiz.updateSelectiveByIdRe(article);
if (flag==1) {
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
@PutMapping("/putaway/{id}")
@ApiOperation(value = "上架")
public ObjectRestResponse putaway(@PathVariable Integer id){
int flag = baseBiz.putaway(id);
if (flag==1) {
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
@PutMapping("/soldOut/{id}")
@ApiOperation(value = "下架")
public ObjectRestResponse soldOut(@PathVariable Integer id){
int flag = baseBiz.soldOut(id);
if (flag==1) {
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
@PutMapping("/remove/{id}")
@ApiOperation(value = "删除")
public ObjectRestResponse remove(@PathVariable Integer id){
int flag = baseBiz.remove(id);
if (flag==1) {
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
} }
...@@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@RestController @RestController
@RequestMapping("/tour") @RequestMapping("app/unauth/tour")
@Slf4j @Slf4j
@IgnoreClientToken @IgnoreClientToken
public class GwTourController extends CommonBaseController { public class GwTourController extends CommonBaseController {
......
...@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; ...@@ -5,6 +5,7 @@ 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.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.CommonBaseController; import com.github.wxiaoqi.security.common.rest.CommonBaseController;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.VModelDetailVO; import com.xxfc.platform.vehicle.pojo.VModelDetailVO;
...@@ -52,9 +53,10 @@ public class VehicleModelController extends CommonBaseController { ...@@ -52,9 +53,10 @@ public class VehicleModelController extends CommonBaseController {
* @return * @return
*/ */
@ApiOperation("车型列表") @ApiOperation("车型列表")
@PostMapping(value = "/findVehicleModelPage") @GetMapping(value = "/findVehicleModelPage")
@IgnoreUserToken @IgnoreUserToken
public ObjectRestResponse<VehicleModelVo> findVehicleModelPageUnauthfind(@RequestBody VehicleModelQueryCondition vmqc) { public ObjectRestResponse<PageDataVO<VehicleModelVo>> findVehicleModelPageUnauthfind(VehicleModelQueryCondition vmqc) {
return vehicleFeign.findVehicleModelPageUnauthfind(vmqc); ObjectRestResponse<PageDataVO<VehicleModelVo>> objectRestResponse = vehicleFeign.findVehicleModelPageUnauthfind(vmqc);
return objectRestResponse;
} }
} }
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<select id="getArticleList" resultType="com.xxfc.platform.uccn.entity.Article"> <select id="getArticleList" resultType="com.xxfc.platform.uccn.entity.Article">
select title,epitome,add_time,cover_image from article select title,epitome,add_time,cover_image from article
where is_del=0 and status=1 and (type=#{type} or type=0) order by weight DESC,add_time DESC where is_del=0 and status=1 and (type=#{type} or type=0) order by weight ASC ,add_time DESC
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.feign; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.feign;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.GoodDataVO; import com.github.wxiaoqi.security.common.vo.GoodDataVO;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.entity.*; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
...@@ -133,5 +134,5 @@ public interface VehicleFeign { ...@@ -133,5 +134,5 @@ public interface VehicleFeign {
ObjectRestResponse<VModelDetailVO> detailByParam(@RequestParam("vehicleModel") Map<String, Object> vehicleModel); ObjectRestResponse<VModelDetailVO> detailByParam(@RequestParam("vehicleModel") Map<String, Object> vehicleModel);
@PostMapping("/vehicleModel/app/unauth/findVehicleModelPage") @PostMapping("/vehicleModel/app/unauth/findVehicleModelPage")
public ObjectRestResponse<VehicleModelVo> findVehicleModelPageUnauthfind(@RequestBody VehicleModelQueryCondition vmqc); public ObjectRestResponse<PageDataVO<VehicleModelVo>> findVehicleModelPageUnauthfind(@RequestBody VehicleModelQueryCondition vmqc);
} }
...@@ -85,7 +85,6 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -85,7 +85,6 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
private VehicleBiz vehicleBiz; private VehicleBiz vehicleBiz;
/** /**
* 按主键获取公司 * 按主键获取公司
* *
...@@ -120,7 +119,7 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -120,7 +119,7 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
* @param id * @param id
* @return * @return
*/ */
@Cache(key = RedisKey.BRANCH_COMPANY_CACHE+ "{1}") @Cache(key = RedisKey.BRANCH_COMPANY_CACHE + "{1}")
public CompanyDetail getDetailById(Integer id) { public CompanyDetail getDetailById(Integer id) {
BranchCompany branchCompany = this.getById(id); BranchCompany branchCompany = this.getById(id);
CompanyDetail detail = null; CompanyDetail detail = null;
...@@ -161,35 +160,35 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -161,35 +160,35 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
} }
public PageDataVO<BranchCompany> getAll(Integer page, Integer limit, Integer addrProvince, Integer addrCity, public PageDataVO<BranchCompany> getAll(Integer page, Integer limit, Integer addrProvince, Integer addrCity,
Integer addrTown,Integer zoneId, UserDTO userDTO) { Integer addrTown, Integer zoneId, UserDTO userDTO) {
Example example = new Example(BranchCompany.class); Example example = new Example(BranchCompany.class);
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
String provinceIds=""; String provinceIds = "";
if (Objects.nonNull(zoneId)){ if (Objects.nonNull(zoneId)) {
Area area = areaBiz.selectById(zoneId); Area area = areaBiz.selectById(zoneId);
provinceIds = area.getProvinceIds(); provinceIds = area.getProvinceIds();
} }
if (StringUtils.isNotEmpty(provinceIds)){ if (StringUtils.isNotEmpty(provinceIds)) {
List<String> provinceIdList = Arrays.asList(provinceIds.split(",")); List<String> provinceIdList = Arrays.asList(provinceIds.split(","));
if (Objects.nonNull(addrProvince)){ if (Objects.nonNull(addrProvince)) {
if (provinceIdList.contains(String.valueOf(addrProvince))){ if (provinceIdList.contains(String.valueOf(addrProvince))) {
criteria.andEqualTo("addrProvince",addrProvince); criteria.andEqualTo("addrProvince", addrProvince);
}else { } else {
return new PageDataVO<BranchCompany>(); return new PageDataVO<BranchCompany>();
} }
}else { } else {
criteria.andIn("addrProvince",provinceIdList); criteria.andIn("addrProvince", provinceIdList);
} }
}else { } else {
if (addrProvince != null) { if (addrProvince != null) {
criteria.andEqualTo("addrProvince",addrProvince); criteria.andEqualTo("addrProvince", addrProvince);
} }
} }
if (addrCity != null) { if (addrCity != null) {
criteria.andEqualTo("addrCity",addrCity); criteria.andEqualTo("addrCity", addrCity);
} }
if (addrTown != null) { if (addrTown != null) {
criteria.andEqualTo("addrTown",addrTown); criteria.andEqualTo("addrTown", addrTown);
} }
if (userDTO != null && DATA_ALL_FALSE.equals(userDTO.getDataAll())) { if (userDTO != null && DATA_ALL_FALSE.equals(userDTO.getDataAll())) {
if (StringUtils.isNotBlank(userDTO.getDataZone())) { if (StringUtils.isNotBlank(userDTO.getDataZone())) {
...@@ -361,14 +360,14 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -361,14 +360,14 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
} }
public Map<Integer, BranComanyLeaderVo> findCompanyLeaderMapByIds(List<Integer> companyIds) { public Map<Integer, BranComanyLeaderVo> findCompanyLeaderMapByIds(List<Integer> companyIds) {
Map<Integer,BranComanyLeaderVo> companyIdAndLeaderMap = new HashMap<>(companyIds.size()); Map<Integer, BranComanyLeaderVo> companyIdAndLeaderMap = new HashMap<>(companyIds.size());
List<BranchCompany> branchCompanies = mapper.selectByIdList(companyIds); List<BranchCompany> branchCompanies = mapper.selectByIdList(companyIds);
if (CollectionUtils.isEmpty(branchCompanies)){ if (CollectionUtils.isEmpty(branchCompanies)) {
return companyIdAndLeaderMap; return companyIdAndLeaderMap;
} }
return branchCompanies.stream().collect(Collectors.toMap(BranchCompany::getId,branchCompany -> { return branchCompanies.stream().collect(Collectors.toMap(BranchCompany::getId, branchCompany -> {
BranComanyLeaderVo branComanyLeaderVo = new BranComanyLeaderVo(); BranComanyLeaderVo branComanyLeaderVo = new BranComanyLeaderVo();
BeanUtils.copyProperties(branchCompany,branComanyLeaderVo); BeanUtils.copyProperties(branchCompany, branComanyLeaderVo);
return branComanyLeaderVo; return branComanyLeaderVo;
})); }));
} }
...@@ -377,14 +376,14 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -377,14 +376,14 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
PageDataVO<BranchCompanyListVO> pageDataVO = new PageDataVO<>(); PageDataVO<BranchCompanyListVO> pageDataVO = new PageDataVO<>();
PageDataVO<BranchCompanyListDTO> dataVO = PageDataVO.pageInfo(branchCompanyFindDTO.getPage(), branchCompanyFindDTO.getLimit(), () -> mapper.findBranchCompanys(branchCompanyFindDTO.getAddrProvince(), branchCompanyFindDTO.getAddrCity())); PageDataVO<BranchCompanyListDTO> dataVO = PageDataVO.pageInfo(branchCompanyFindDTO.getPage(), branchCompanyFindDTO.getLimit(), () -> mapper.findBranchCompanys(branchCompanyFindDTO.getAddrProvince(), branchCompanyFindDTO.getAddrCity()));
List<BranchCompanyListDTO> data = dataVO.getData(); List<BranchCompanyListDTO> data = dataVO.getData();
if (CollectionUtils.isEmpty(data)){ if (CollectionUtils.isEmpty(data)) {
return pageDataVO; return pageDataVO;
} }
List<BranchCompanyListVO> branchCompanyListVOS = new ArrayList<>(); List<BranchCompanyListVO> branchCompanyListVOS = new ArrayList<>();
BranchCompanyListVO branchCompanyListVO; BranchCompanyListVO branchCompanyListVO;
for (BranchCompanyListDTO companyListDTO : data) { for (BranchCompanyListDTO companyListDTO : data) {
branchCompanyListVO = new BranchCompanyListVO(); branchCompanyListVO = new BranchCompanyListVO();
BeanUtils.copyProperties(companyListDTO,branchCompanyListVO); BeanUtils.copyProperties(companyListDTO, branchCompanyListVO);
branchCompanyListVOS.add(branchCompanyListVO); branchCompanyListVOS.add(branchCompanyListVO);
} }
pageDataVO.setData(branchCompanyListVOS); pageDataVO.setData(branchCompanyListVOS);
......
...@@ -65,7 +65,7 @@ public class VehicleActiveService { ...@@ -65,7 +65,7 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(), throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode());
} }
if(StringUtils.isBlank(departureVo.getCheckMan()) || StringUtils.isBlank(departureVo.getCheckManTel())) { if (StringUtils.isBlank(departureVo.getCheckMan()) || StringUtils.isBlank(departureVo.getCheckManTel())) {
throw new BaseException(ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getDesc(), throw new BaseException(ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getDesc(),
ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getCode()); ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getCode());
} }
...@@ -75,13 +75,13 @@ public class VehicleActiveService { ...@@ -75,13 +75,13 @@ public class VehicleActiveService {
} }
//添加出车时间过滤 再出车开始时间前一天至结束时间内可以出车,并且预定记录为已审核状态 //添加出车时间过滤 再出车开始时间前一天至结束时间内可以出车,并且预定记录为已审核状态
checkDateInvalide(departureVo); checkDateInvalide(departureVo);
Integer MileageLift=vehicle.getMileageLastUpdate(); Integer MileageLift = vehicle.getMileageLastUpdate();
Integer MileageLift1=departureVo.getMileage(); Integer MileageLift1 = departureVo.getMileage();
if(MileageLift1==null){ if (MileageLift1 == null) {
throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(), throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(),
ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode()); ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
} }
if(MileageLift == null || MileageLift1 >= MileageLift){ if (MileageLift == null || MileageLift1 >= MileageLift) {
// 写入车辆公里数,预计目的地 // 写入车辆公里数,预计目的地
vehicle.setMileageLastUpdate(MileageLift1); vehicle.setMileageLastUpdate(MileageLift1);
vehicle.setExpectDestinationBranchCompanyId(departureVo.getExpectArrivalBranchCompanyId()); vehicle.setExpectDestinationBranchCompanyId(departureVo.getExpectArrivalBranchCompanyId());
...@@ -97,19 +97,19 @@ public class VehicleActiveService { ...@@ -97,19 +97,19 @@ public class VehicleActiveService {
} }
//修改预约记录状态 //修改预约记录状态
VehicleBookRecord vehicleBookRecord = null; VehicleBookRecord vehicleBookRecord = null;
if(departureVo.getBookRecordId() != null) { if (departureVo.getBookRecordId() != null) {
vehicleBookRecord = vehicleBookRecordBiz.selectById(departureVo.getBookRecordId()); vehicleBookRecord = vehicleBookRecordBiz.selectById(departureVo.getBookRecordId());
updateBookRecordStatus(vehicleBookRecord, 1); updateBookRecordStatus(vehicleBookRecord, 1);
} }
VehicleDepartureLogVo vehicleDepartureLogVo = vehicleDepartureLogMapper.selectByBookRecordId(departureVo.getBookRecordId()); VehicleDepartureLogVo vehicleDepartureLogVo = vehicleDepartureLogMapper.selectByBookRecordId(departureVo.getBookRecordId());
if(vehicleDepartureLogVo != null) { if (vehicleDepartureLogVo != null) {
BeanUtil.copyProperties(departureVo, vehicleDepartureLogVo, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true)); BeanUtil.copyProperties(departureVo, vehicleDepartureLogVo, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
VehicleDepartureLog departureLog = vehicleDepartureLogVo.getVehicleDeparture(vehicleDepartureLogVo); VehicleDepartureLog departureLog = vehicleDepartureLogVo.getVehicleDeparture(vehicleDepartureLogVo);
departureLog.setDepartureTime(new Date()); departureLog.setDepartureTime(new Date());
departureLog.setUpdateTime(new Date()); departureLog.setUpdateTime(new Date());
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode()); departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setDepartureRemark(departureVo.getRemark()); departureLog.setDepartureRemark(departureVo.getRemark());
if(vehicleBookRecord != null) { if (vehicleBookRecord != null) {
departureLog.setDepartureBranchCompanyId(vehicleBookRecord.getLiftCompany()); departureLog.setDepartureBranchCompanyId(vehicleBookRecord.getLiftCompany());
departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType())); departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType()));
departureLog.setUser(vehicleBookRecord.getVehicleUsername()); departureLog.setUser(vehicleBookRecord.getVehicleUsername());
...@@ -126,7 +126,7 @@ public class VehicleActiveService { ...@@ -126,7 +126,7 @@ public class VehicleActiveService {
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode()); departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setBookRecordId(departureVo.getBookRecordId()); departureLog.setBookRecordId(departureVo.getBookRecordId());
departureLog.setDepartureRemark(departureVo.getRemark()); departureLog.setDepartureRemark(departureVo.getRemark());
if(vehicleBookRecord != null) { if (vehicleBookRecord != null) {
departureLog.setDepartureBranchCompanyId(vehicleBookRecord.getLiftCompany()); departureLog.setDepartureBranchCompanyId(vehicleBookRecord.getLiftCompany());
departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType())); departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType()));
departureLog.setUser(vehicleBookRecord.getVehicleUsername()); departureLog.setUser(vehicleBookRecord.getVehicleUsername());
...@@ -143,7 +143,7 @@ public class VehicleActiveService { ...@@ -143,7 +143,7 @@ public class VehicleActiveService {
activeLog.setStartTime(new Date()); activeLog.setStartTime(new Date());
activeLog.setCreateTime(new Date()); activeLog.setCreateTime(new Date());
vehicleActiveLogMapper.insert(activeLog); vehicleActiveLogMapper.insert(activeLog);
}else { } else {
throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(), throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(),
ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode()); ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
} }
...@@ -170,21 +170,20 @@ public class VehicleActiveService { ...@@ -170,21 +170,20 @@ public class VehicleActiveService {
break; break;
} }
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByVehicleId(vehicleId); List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByVehicleId(vehicleId);
if(vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) { if (vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) {
Iterator<VehicleBookRecordVo> iterator = vehicleBookRecordVos.iterator(); Iterator<VehicleBookRecordVo> iterator = vehicleBookRecordVos.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
VehicleBookRecordVo vehicleBookRecordVo = iterator.next(); VehicleBookRecordVo vehicleBookRecordVo = iterator.next();
if (vehicleBookRecordVo.getVehicleDepartureLogVo() != null && vehicleBookRecordVo.getVehicleDepartureLogVo().getState() != 1 ) { //已经出车 if (vehicleBookRecordVo.getVehicleDepartureLogVo() != null && vehicleBookRecordVo.getVehicleDepartureLogVo().getState() != 1) { //已经出车
stringBuilder.append("中,使用人:"); stringBuilder.append("中,使用人:");
stringBuilder.append(vehicleBookRecordVos.get(0).getVehicleUsername()); stringBuilder.append(vehicleBookRecordVo.getVehicleUsername());
stringBuilder.append(" 使用人电话:"); stringBuilder.append(" 使用人电话:");
stringBuilder.append(vehicleBookRecordVos.get(0).getVehicleUserPhone()); stringBuilder.append(vehicleBookRecordVo.getVehicleUserPhone());
return stringBuilder.toString(); return stringBuilder.toString();
} }
} }
} else {
stringBuilder.append(", 请联系管理员修改车辆状态为正常状态");
} }
stringBuilder.append(", 请联系管理员修改车辆状态为正常状态");
return stringBuilder.toString(); return stringBuilder.toString();
} }
...@@ -195,7 +194,7 @@ public class VehicleActiveService { ...@@ -195,7 +194,7 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(), throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode());
} }
if(StringUtils.isBlank(arrivalVo.getRecycleMan()) || StringUtils.isBlank(arrivalVo.getRecycleManTel())) { if (StringUtils.isBlank(arrivalVo.getRecycleMan()) || StringUtils.isBlank(arrivalVo.getRecycleManTel())) {
throw new BaseException(ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getDesc(), throw new BaseException(ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getDesc(),
ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getCode()); ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getCode());
} }
...@@ -211,14 +210,14 @@ public class VehicleActiveService { ...@@ -211,14 +210,14 @@ public class VehicleActiveService {
} }
if (Mileagerest != null && Mileagerest1 >= Mileagerest) { if (Mileagerest != null && Mileagerest1 >= Mileagerest) {
VehicleBookRecord vehicleBookRecord = null; VehicleBookRecord vehicleBookRecord = null;
if(arrivalVo.getBookRecordId() != null) { if (arrivalVo.getBookRecordId() != null) {
vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId()); vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId());
updateBookRecordStatus(vehicleBookRecord, 2); updateBookRecordStatus(vehicleBookRecord, 2);
} }
// 写入车辆公里数,还车分公司id // 写入车辆公里数,还车分公司id
vehicle.setMileageLastUpdate(Mileagerest1); vehicle.setMileageLastUpdate(Mileagerest1);
if(vehicleBookRecord != null) { if (vehicleBookRecord != null) {
vehicle.setParkBranchCompanyId(vehicleBookRecord.getRetCompany()); vehicle.setParkBranchCompanyId(vehicleBookRecord.getRetCompany());
} }
vehicle.setExpectDestinationBranchCompanyId(0); vehicle.setExpectDestinationBranchCompanyId(0);
...@@ -242,7 +241,7 @@ public class VehicleActiveService { ...@@ -242,7 +241,7 @@ public class VehicleActiveService {
DateTime arrivalDate = new DateTime(vehicleBookRecord.getBookEndDate()); DateTime arrivalDate = new DateTime(vehicleBookRecord.getBookEndDate());
DateTime actualArrivalDate = new DateTime(new Date()); DateTime actualArrivalDate = new DateTime(new Date());
//提前还车处理 //提前还车处理
if(actualArrivalDate.compareTo(arrivalDate) < 0) { //实际还车时间小于预计还车时间,需要释放后面的时间 if (actualArrivalDate.compareTo(arrivalDate) < 0) { //实际还车时间小于预计还车时间,需要释放后面的时间
BookVehicleVO bookVehicleVo = new BookVehicleVO(); BookVehicleVO bookVehicleVo = new BookVehicleVO();
BeanUtils.copyProperties(vehicleBookRecord, bookVehicleVo); BeanUtils.copyProperties(vehicleBookRecord, bookVehicleVo);
bookVehicleVo.setNotCheckTimeLegal(Boolean.TRUE); bookVehicleVo.setNotCheckTimeLegal(Boolean.TRUE);
...@@ -252,10 +251,10 @@ public class VehicleActiveService { ...@@ -252,10 +251,10 @@ public class VehicleActiveService {
bookVehicleVo.setUnbookEndDate(arrivalDate.toString(DATE_TIME_FORMATTER)); bookVehicleVo.setUnbookEndDate(arrivalDate.toString(DATE_TIME_FORMATTER));
try { try {
Boolean hasSuc = vehicleBiz.unbookVehicle(bookVehicleVo); Boolean hasSuc = vehicleBiz.unbookVehicle(bookVehicleVo);
if(!hasSuc){ if (!hasSuc) {
throw new BaseException(ResCode.VEHICLE_UNBOOK_FAIL.getDesc(), ResCode.VEHICLE_UNBOOK_FAIL.getCode()); throw new BaseException(ResCode.VEHICLE_UNBOOK_FAIL.getDesc(), ResCode.VEHICLE_UNBOOK_FAIL.getCode());
} }
} catch ( Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
...@@ -270,7 +269,7 @@ public class VehicleActiveService { ...@@ -270,7 +269,7 @@ public class VehicleActiveService {
departureLog.setIllegalAmount(arrivalVo.getIllegalAmount()); departureLog.setIllegalAmount(arrivalVo.getIllegalAmount());
departureLog.setArrivalPic(arrivalVo.getArrivalPic()); departureLog.setArrivalPic(arrivalVo.getArrivalPic());
departureLog.setArrivalRemark(arrivalVo.getRemark()); departureLog.setArrivalRemark(arrivalVo.getRemark());
if(vehicleBookRecord != null) { if (vehicleBookRecord != null) {
departureLog.setArrivalBranchCompanyId(vehicleBookRecord.getRetCompany()); departureLog.setArrivalBranchCompanyId(vehicleBookRecord.getRetCompany());
} }
vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog); vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog);
...@@ -308,20 +307,20 @@ public class VehicleActiveService { ...@@ -308,20 +307,20 @@ public class VehicleActiveService {
//添加出车时间过滤 再出车开始时间前一天至结束时间内可以出车,并且预定记录为已审核状态 //添加出车时间过滤 再出车开始时间前一天至结束时间内可以出车,并且预定记录为已审核状态
public void checkDateInvalide(VehicleDepartureVo arrivalVo) { public void checkDateInvalide(VehicleDepartureVo arrivalVo) {
if(arrivalVo.getBookRecordId() != null) { if (arrivalVo.getBookRecordId() != null) {
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId()); VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId());
if(vehicleBookRecord != null) { if (vehicleBookRecord != null) {
DateTime startDate = new DateTime(vehicleBookRecord.getBookStartDate()); DateTime startDate = new DateTime(vehicleBookRecord.getBookStartDate());
DateTime endDate = new DateTime(vehicleBookRecord.getBookEndDate()); DateTime endDate = new DateTime(vehicleBookRecord.getBookEndDate());
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("vehicleId", vehicleBookRecord.getVehicleId()); param.put("vehicleId", vehicleBookRecord.getVehicleId());
param.put("bookedEndDate", vehicleBookRecord.getBookStartDate()); param.put("bookedEndDate", vehicleBookRecord.getBookStartDate());
List<VehicleBookRecordVo> list = vehicleBookRecordBiz.selectByVehicleIdAndTime(param); List<VehicleBookRecordVo> list = vehicleBookRecordBiz.selectByVehicleIdAndTime(param);
if(list != null && list.size() > 0) { if (list != null && list.size() > 0) {
Iterator<VehicleBookRecordVo> iterator = list.iterator(); Iterator<VehicleBookRecordVo> iterator = list.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
VehicleBookRecordVo vehicleBookRecordVo = iterator.next(); VehicleBookRecordVo vehicleBookRecordVo = iterator.next();
if(vehicleBookRecordVo.getVehicleDepartureLogVo() == null && (vehicleBookRecordVo.getBookEndDate().getTime() - new Date().getTime()) < 0) { if (vehicleBookRecordVo.getVehicleDepartureLogVo() == null && vehicleBookRecordVo.getBookEndDate().getTime() - new Date().getTime() < 0) {
iterator.remove(); iterator.remove();
} }
} }
...@@ -337,8 +336,8 @@ public class VehicleActiveService { ...@@ -337,8 +336,8 @@ public class VehicleActiveService {
public void updateBookRecordStatus(VehicleBookRecord vehicleBookRecord, Integer type) { public void updateBookRecordStatus(VehicleBookRecord vehicleBookRecord, Integer type) {
if(vehicleBookRecord != null) { if (vehicleBookRecord != null) {
if(type == 1) { if (type == 1) {
vehicleBookRecord.setActualStartDate(new Date()); vehicleBookRecord.setActualStartDate(new Date());
} else { } else {
vehicleBookRecord.setActualEndDate(new Date()); vehicleBookRecord.setActualEndDate(new Date());
...@@ -369,9 +368,9 @@ public class VehicleActiveService { ...@@ -369,9 +368,9 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_UPKEEP_VEHICLE_DISABLE.getDesc(), throw new BaseException(ResCode.VEHICLE_UPKEEP_VEHICLE_DISABLE.getDesc(),
ResCode.VEHICLE_UPKEEP_VEHICLE_DISABLE.getCode()); ResCode.VEHICLE_UPKEEP_VEHICLE_DISABLE.getCode());
} }
Integer lastMileage=vehicleUpkeepVo.getMileage(); Integer lastMileage = vehicleUpkeepVo.getMileage();
int result = vehicleMapper.upMileageByIdAndStatus(vehicleUpkeepVo.getVehicleId(), VehicleStatus.UPKEEP.getCode(), int result = vehicleMapper.upMileageByIdAndStatus(vehicleUpkeepVo.getVehicleId(), VehicleStatus.UPKEEP.getCode(),
VehicleStatus.NORMAL.getCode(),lastMileage); VehicleStatus.NORMAL.getCode(), lastMileage);
if (result == 0) { if (result == 0) {
// 车辆状态异常 // 车辆状态异常
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
...@@ -422,9 +421,9 @@ public class VehicleActiveService { ...@@ -422,9 +421,9 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_UPKEEP_VEHICLE_UNUPKEEP.getDesc(), throw new BaseException(ResCode.VEHICLE_UPKEEP_VEHICLE_UNUPKEEP.getDesc(),
ResCode.VEHICLE_UPKEEP_VEHICLE_UNUPKEEP.getCode()); ResCode.VEHICLE_UPKEEP_VEHICLE_UNUPKEEP.getCode());
} }
Integer mileageLastUpdate=vehicle.getMileageLastUpdate()==null?0:vehicle.getMileageLastUpdate(); Integer mileageLastUpdate = vehicle.getMileageLastUpdate() == null ? 0 : vehicle.getMileageLastUpdate();
Integer maintenance_mileage=Mileage+mileageLastUpdate; Integer maintenance_mileage = Mileage + mileageLastUpdate;
int result = vehicleMapper.updateMileageStatusByIdAndStatus(vehicleId, VehicleStatus.NORMAL.getCode(), VehicleStatus.UPKEEP.getCode(),maintenance_mileage); int result = vehicleMapper.updateMileageStatusByIdAndStatus(vehicleId, VehicleStatus.NORMAL.getCode(), VehicleStatus.UPKEEP.getCode(), maintenance_mileage);
if (result == 0) { if (result == 0) {
throw new BaseException(ResCode.VEHICLE_UPKEEP_VEHICLE_UNUPKEEP.getDesc(), throw new BaseException(ResCode.VEHICLE_UPKEEP_VEHICLE_UNUPKEEP.getDesc(),
ResCode.VEHICLE_UPKEEP_VEHICLE_UNUPKEEP.getCode()); ResCode.VEHICLE_UPKEEP_VEHICLE_UNUPKEEP.getCode());
......
...@@ -99,9 +99,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -99,9 +99,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
} }
@Value("${vehicle.baseUploadPath}") @Value("${vehicle.baseUploadPath}")
private String baseUploadPath ; private String baseUploadPath;
@Value("${vehicle.fristMileage}") @Value("${vehicle.fristMileage}")
private Integer fristMileage ; private Integer fristMileage;
/** /**
* 每批次最大更、插入车辆最大条目数 * 每批次最大更、插入车辆最大条目数
...@@ -110,17 +110,18 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -110,17 +110,18 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 写入上传文件,返回相对路径 * 写入上传文件,返回相对路径
*
* @param file * @param file
* @return * @return
*/ */
public RestResponse<String> uploadDrivingLicense(MultipartFile file) throws Exception{ public RestResponse<String> uploadDrivingLicense(MultipartFile file) throws Exception {
//创建本日存放目录 //创建本日存放目录
DateTime now = DateTime.now(); DateTime now = DateTime.now();
String dirPathToday = File.separator + now.toString(DEFAULT_DATE_TIME_FORMATTER); String dirPathToday = File.separator + now.toString(DEFAULT_DATE_TIME_FORMATTER);
String redisNoKey = RedisKey.UPLOAD_FILE_NO_PREFIX + now.toString(DEFAULT_DATE_TIME_FORMATTER); String redisNoKey = RedisKey.UPLOAD_FILE_NO_PREFIX + now.toString(DEFAULT_DATE_TIME_FORMATTER);
Long no = customRedisTemplate.opsForValue().increment(redisNoKey); Long no = customRedisTemplate.opsForValue().increment(redisNoKey);
if(no.equals(1l)){ if (no.equals(1l)) {
customRedisTemplate.expire(redisNoKey,1, TimeUnit.DAYS); customRedisTemplate.expire(redisNoKey, 1, TimeUnit.DAYS);
} }
String fileName = file.getOriginalFilename(); String fileName = file.getOriginalFilename();
String realFileRelPath = dirPathToday + File.separator + no + fileName.substring(fileName.lastIndexOf(".")); String realFileRelPath = dirPathToday + File.separator + no + fileName.substring(fileName.lastIndexOf("."));
...@@ -133,11 +134,12 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -133,11 +134,12 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 下载行驶证图片 * 下载行驶证图片
*
* @param realFileRelPath * @param realFileRelPath
* @return * @return
* @throws Exception * @throws Exception
*/ */
public ResponseEntity<byte[]> downloadDrivingLicense(String realFileRelPath) throws Exception{ public ResponseEntity<byte[]> downloadDrivingLicense(String realFileRelPath) throws Exception {
String filePath = baseUploadPath + realFileRelPath; String filePath = baseUploadPath + realFileRelPath;
File file = new File(filePath);//新建一个文件 File file = new File(filePath);//新建一个文件
...@@ -145,37 +147,39 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -145,37 +147,39 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
String downloadFileName = new String(file.getName());//设置编码 String downloadFileName = new String(file.getName());//设置编码
headers.setContentDispositionFormData("attachment", downloadFileName); headers.setContentDispositionFormData("attachment", downloadFileName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
} }
// @Cache(key = "vehical") // @Cache(key = "vehical")
public Vehicle get(String id){ public Vehicle get(String id) {
Vehicle vehicle = mapper.selectByPrimaryKey(id); Vehicle vehicle = mapper.selectByPrimaryKey(id);
return vehicle; return vehicle;
} }
/** /**
* 获取相关预订记录 * 获取相关预订记录
*
* @param vehicle * @param vehicle
* @param yearMonth * @param yearMonth
* @return * @return
*/ */
public VehicleBookInfo getByVehicleIdAndYearMonth(String vehicle,String yearMonth){ public VehicleBookInfo getByVehicleIdAndYearMonth(String vehicle, String yearMonth) {
Map<String,Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("vehicle",vehicle); params.put("vehicle", vehicle);
params.put("yearMonth",yearMonth); params.put("yearMonth", yearMonth);
List<VehicleBookInfo> vehicleBookInfoList = vehicleBookInfoMapper.getByVehicleIdAndYearMonth(params); List<VehicleBookInfo> vehicleBookInfoList = vehicleBookInfoMapper.getByVehicleIdAndYearMonth(params);
return CollectionUtils.isEmpty(vehicleBookInfoList)? null:vehicleBookInfoList.get(0); return CollectionUtils.isEmpty(vehicleBookInfoList) ? null : vehicleBookInfoList.get(0);
} }
/** /**
* 获取相关预订记录 * 获取相关预订记录
*
* @param vehicle * @param vehicle
* @return * @return
*/ */
public List<VehicleBookInfo> getByVehicleIdAndYearMonth(String vehicle){ public List<VehicleBookInfo> getByVehicleIdAndYearMonth(String vehicle) {
Map<String,Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("vehicle",vehicle); params.put("vehicle", vehicle);
params.put("yearMonths", params.put("yearMonths",
Lists.newArrayList( Lists.newArrayList(
DateTime.now().toString(YEARMONTH_DATE_TIME_FORMATTER), DateTime.now().toString(YEARMONTH_DATE_TIME_FORMATTER),
...@@ -190,7 +194,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -190,7 +194,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 检查常量是否合法 * 检查常量是否合法
*/ */
private void checkIfConstantValid(AddOrUpdateVehicleVo addOrUpdateVehicleVo){ private void checkIfConstantValid(AddOrUpdateVehicleVo addOrUpdateVehicleVo) {
//检查常量是否合法 //检查常量是否合法
if (addOrUpdateVehicleVo.getUseType() != null && addOrUpdateVehicleVo.getUseType() > 0) { if (addOrUpdateVehicleVo.getUseType() != null && addOrUpdateVehicleVo.getUseType() > 0) {
constantBiz.checkIfExists(ConstantType.VEHICLE_USE.getCode(), addOrUpdateVehicleVo.getUseType()); constantBiz.checkIfExists(ConstantType.VEHICLE_USE.getCode(), addOrUpdateVehicleVo.getUseType());
...@@ -202,28 +206,29 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -202,28 +206,29 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 增加车辆 * 增加车辆
*
* @param addOrUpdateVehicleVoList * @param addOrUpdateVehicleVoList
*/ */
@Transactional @Transactional
public RestResponse add(List<AddOrUpdateVehicleVo> addOrUpdateVehicleVoList) throws Exception{ public RestResponse add(List<AddOrUpdateVehicleVo> addOrUpdateVehicleVoList) throws Exception {
if(addOrUpdateVehicleVoList.size()>MAX_BATCH_SIZE_VEHICLE){ if (addOrUpdateVehicleVoList.size() > MAX_BATCH_SIZE_VEHICLE) {
throw new BaseException(ResultCode.ADD_VEHICLE_MORE); throw new BaseException(ResultCode.ADD_VEHICLE_MORE);
} }
for(AddOrUpdateVehicleVo addOrUpdateVehicleVo:addOrUpdateVehicleVoList) { for (AddOrUpdateVehicleVo addOrUpdateVehicleVo : addOrUpdateVehicleVoList) {
Vehicle vehicle = new Vehicle(); Vehicle vehicle = new Vehicle();
BeanUtilsBean.getInstance().copyProperties(vehicle, addOrUpdateVehicleVo); BeanUtilsBean.getInstance().copyProperties(vehicle, addOrUpdateVehicleVo);
if (addOrUpdateVehicleVo.getParkBranchCompanyId()==null) { if (addOrUpdateVehicleVo.getParkBranchCompanyId() == null) {
throw new BaseException(ResultCode.RET_COMPANY_CAN_NOT_BE_NULL); throw new BaseException(ResultCode.RET_COMPANY_CAN_NOT_BE_NULL);
} }
vehicle.setId(UUID.randomUUID().toString()); vehicle.setId(UUID.randomUUID().toString());
// 检查车牌或者编码是否已存在,已存在则返回失败 // 检查车牌或者编码是否已存在,已存在则返回失败
List<Vehicle> exitsVehicles = lockByCode(addOrUpdateVehicleVo); List<Vehicle> exitsVehicles = lockByCode(addOrUpdateVehicleVo);
if(CollectionUtils.isNotEmpty(exitsVehicles)){ if (CollectionUtils.isNotEmpty(exitsVehicles)) {
return RestResponse.codeAndMessage(ResCode.VEHICLE_INFO_SAME_NUM_PLATE_EXISTS.getCode(), return RestResponse.codeAndMessage(ResCode.VEHICLE_INFO_SAME_NUM_PLATE_EXISTS.getCode(),
ResCode.VEHICLE_INFO_SAME_NUM_PLATE_EXISTS.getDesc()); ResCode.VEHICLE_INFO_SAME_NUM_PLATE_EXISTS.getDesc());
...@@ -242,15 +247,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -242,15 +247,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 此方法必须置于事务中以使锁生效 * 此方法必须置于事务中以使锁生效
* 符合查询条件记录的修改活且相关记录的锁获取操作将被锁定 * 符合查询条件记录的修改活且相关记录的锁获取操作将被锁定
*
* @param addOrUpdateVehicleVo * @param addOrUpdateVehicleVo
* @return 锁定成功返回 * @return 锁定成功返回
*/ */
private List<Vehicle> lockByCode(AddOrUpdateVehicleVo addOrUpdateVehicleVo)throws CustomIllegalParamException{ private List<Vehicle> lockByCode(AddOrUpdateVehicleVo addOrUpdateVehicleVo) throws CustomIllegalParamException {
// if(addOrUpdateVehicleVo.getCode() == null){ // if(addOrUpdateVehicleVo.getCode() == null){
// return null; // return null;
// } // }
if(addOrUpdateVehicleVo.getNumberPlate() == null){ if (addOrUpdateVehicleVo.getNumberPlate() == null) {
throw new BaseException(ResultCode.NUMBER_PLAT_CAN_NOT_BE_NULL); throw new BaseException(ResultCode.NUMBER_PLAT_CAN_NOT_BE_NULL);
} }
List<Vehicle> vehicles = mapper.lockByCode(addOrUpdateVehicleVo); List<Vehicle> vehicles = mapper.lockByCode(addOrUpdateVehicleVo);
...@@ -259,27 +265,28 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -259,27 +265,28 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 修改汽车信息 * 修改汽车信息
*
* @param addOrUpdateVehicleVoList * @param addOrUpdateVehicleVoList
* @return * @return
*/ */
@Transactional @Transactional
public RestResponse update(List<AddOrUpdateVehicleVo> addOrUpdateVehicleVoList) throws Exception{ public RestResponse update(List<AddOrUpdateVehicleVo> addOrUpdateVehicleVoList) throws Exception {
if(addOrUpdateVehicleVoList.size()>MAX_BATCH_SIZE_VEHICLE){ if (addOrUpdateVehicleVoList.size() > MAX_BATCH_SIZE_VEHICLE) {
throw new BaseException(ResultCode.ADD_VEHICLE_MORE); throw new BaseException(ResultCode.ADD_VEHICLE_MORE);
} }
for(AddOrUpdateVehicleVo addOrUpdateVehicleVo:addOrUpdateVehicleVoList){ for (AddOrUpdateVehicleVo addOrUpdateVehicleVo : addOrUpdateVehicleVoList) {
Vehicle vehicle = new Vehicle(); Vehicle vehicle = new Vehicle();
BeanUtilsBean.getInstance().copyProperties(vehicle, addOrUpdateVehicleVo); BeanUtilsBean.getInstance().copyProperties(vehicle, addOrUpdateVehicleVo);
if (addOrUpdateVehicleVo.getParkBranchCompanyId()==null) { if (addOrUpdateVehicleVo.getParkBranchCompanyId() == null) {
throw new BaseException(ResultCode.RET_COMPANY_CAN_NOT_BE_NULL); throw new BaseException(ResultCode.RET_COMPANY_CAN_NOT_BE_NULL);
} }
//悲观锁,检查是否已存在车牌或编码 //悲观锁,检查是否已存在车牌或编码
List<Vehicle> exitsVehicles = lockByCode(addOrUpdateVehicleVo); List<Vehicle> exitsVehicles = lockByCode(addOrUpdateVehicleVo);
if(CollectionUtils.isNotEmpty(exitsVehicles)){ if (CollectionUtils.isNotEmpty(exitsVehicles)) {
for(Vehicle exitsVehicle:exitsVehicles){ for (Vehicle exitsVehicle : exitsVehicles) {
if(exitsVehicle.getId().equals(addOrUpdateVehicleVo.getId())){ if (exitsVehicle.getId().equals(addOrUpdateVehicleVo.getId())) {
continue; continue;
} }
return RestResponse.codeAndMessage(ResCode.VEHICLE_INFO_SAME_NUM_PLATE_EXISTS.getCode(), return RestResponse.codeAndMessage(ResCode.VEHICLE_INFO_SAME_NUM_PLATE_EXISTS.getCode(),
...@@ -300,15 +307,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -300,15 +307,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 废弃车辆(状态设置为废弃) * 废弃车辆(状态设置为废弃)
*
* @param idList * @param idList
* @return * @return
*/ */
public RestResponse discard(List<String> idList){ public RestResponse discard(List<String> idList) {
if(idList.size()>MAX_BATCH_SIZE_VEHICLE){ if (idList.size() > MAX_BATCH_SIZE_VEHICLE) {
throw new BaseException(ResultCode.ADD_VEHICLE_MORE); throw new BaseException(ResultCode.ADD_VEHICLE_MORE);
} }
Map<String,Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("idList",idList); params.put("idList", idList);
params.put("status", VehicleStatus.DISCARD.getCode()); params.put("status", VehicleStatus.DISCARD.getCode());
mapper.updateStatusById(params); mapper.updateStatusById(params);
return RestResponse.suc(); return RestResponse.suc();
...@@ -405,6 +413,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -405,6 +413,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 不需要审核 * 不需要审核
*
* @param userId * @param userId
* @param bookVehicleVo * @param bookVehicleVo
* @param userName * @param userName
...@@ -412,11 +421,11 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -412,11 +421,11 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
* @throws Exception * @throws Exception
*/ */
@Transactional @Transactional
public VehicleBookRecord applyVehicle(Integer userId, BookVehicleVO bookVehicleVo, String userName) throws Exception{ public VehicleBookRecord applyVehicle(Integer userId, BookVehicleVO bookVehicleVo, String userName) throws Exception {
log.info("预定车辆参数:userId = {}, bookVehicleVo = {},username = {}", userId, bookVehicleVo, userName); log.info("预定车辆参数:userId = {}, bookVehicleVo = {},username = {}", userId, bookVehicleVo, userName);
//检查车辆信息是否合法 //检查车辆信息是否合法
Vehicle vehicle = mapper.selectByPrimaryKey(bookVehicleVo.getVehicleId()); Vehicle vehicle = mapper.selectByPrimaryKey(bookVehicleVo.getVehicleId());
if(vehicle == null) { if (vehicle == null) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(), ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode()); throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(), ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode());
} }
if (vehicle.getStatus().equals(VehicleStatus.DISCARD.getCode())) { if (vehicle.getStatus().equals(VehicleStatus.DISCARD.getCode())) {
...@@ -427,16 +436,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -427,16 +436,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DELETE.getDesc(), throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DELETE.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DELETE.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_DELETE.getCode());
} }
if(StringUtils.isBlank(bookVehicleVo.getBookStartDate()) || StringUtils.isBlank(bookVehicleVo.getBookEndDate())) { if (StringUtils.isBlank(bookVehicleVo.getBookStartDate()) || StringUtils.isBlank(bookVehicleVo.getBookEndDate())) {
throw new BaseException(ResultCode.DATE_TIME_IS_NULL); throw new BaseException(ResultCode.DATE_TIME_IS_NULL);
} }
//提取日期和相应的预定目标日期 //提取日期和相应的预定目标日期
Map<String,List<String>> yearMonthAndDate = Maps.newHashMap(); Map<String, List<String>> yearMonthAndDate = Maps.newHashMap();
DateTime startDay = DateTime.parse(bookVehicleVo.getBookStartDate(), DATE_TIME_FORMATTER); DateTime startDay = DateTime.parse(bookVehicleVo.getBookStartDate(), DATE_TIME_FORMATTER);
DateTime endDay = DateTime.parse(bookVehicleVo.getBookEndDate(), DATE_TIME_FORMATTER); DateTime endDay = DateTime.parse(bookVehicleVo.getBookEndDate(), DATE_TIME_FORMATTER);
//转换日期范围为列表,并检查是否合法 //转换日期范围为列表,并检查是否合法
fillDateList4DatePeriod(yearMonthAndDate, DateTime.parse(startDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER), DateTime.parse(endDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER)); fillDateList4DatePeriod(yearMonthAndDate, DateTime.parse(startDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER), DateTime.parse(endDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER));
if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月 if (yearMonthAndDate.size() > 3) {//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH); throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH);
} }
...@@ -444,7 +453,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -444,7 +453,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
Map<String, Integer> map = new HashMap<>(); Map<String, Integer> map = new HashMap<>();
//加入预定申请记录 //加入预定申请记录
VehicleBookRecord vehicleBookRecord = null; VehicleBookRecord vehicleBookRecord = null;
if(bookVehicleVo.getVehicleBookRecordId() == null) { if (bookVehicleVo.getVehicleBookRecordId() == null) {
//检验时间是否可以预定 //检验时间是否可以预定
map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getBookStartDate(), bookVehicleVo.getBookEndDate(), bookVehicleVo.getNotCheckTimeLegal()); map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getBookStartDate(), bookVehicleVo.getBookEndDate(), bookVehicleVo.getNotCheckTimeLegal());
vehicleBookRecord = new VehicleBookRecord(); vehicleBookRecord = new VehicleBookRecord();
...@@ -458,7 +467,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -458,7 +467,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
vehicleBookRecordBiz.save(vehicleBookRecord); vehicleBookRecordBiz.save(vehicleBookRecord);
} else { } else {
vehicleBookRecord = vehicleBookRecordBiz.selectById(bookVehicleVo.getVehicleBookRecordId()); vehicleBookRecord = vehicleBookRecordBiz.selectById(bookVehicleVo.getVehicleBookRecordId());
if(vehicleBookRecord == null) { if (vehicleBookRecord == null) {
throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_NOT_EXIST.getDesc(), ResCode.VEHICLE_BOOKED_RECORD_NOT_EXIST.getCode()); throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_NOT_EXIST.getDesc(), ResCode.VEHICLE_BOOKED_RECORD_NOT_EXIST.getCode());
} else { } else {
//先取消预定,然后再修改 //先取消预定,然后再修改
...@@ -473,20 +482,20 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -473,20 +482,20 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
vehicleBookRecordBiz.updateSelectiveByIdRe(vehicleBookRecord); vehicleBookRecordBiz.updateSelectiveByIdRe(vehicleBookRecord);
} }
} }
for(Map.Entry<String,List<String>> entry : yearMonthAndDate.entrySet()) { for (Map.Entry<String, List<String>> entry : yearMonthAndDate.entrySet()) {
Boolean rsEach = applyVehicle4EmployeePerMonth(bookVehicleVo.getVehicleId(),entry.getValue(),entry.getKey(), map); Boolean rsEach = applyVehicle4EmployeePerMonth(bookVehicleVo.getVehicleId(), entry.getValue(), entry.getKey(), map);
if(Boolean.FALSE.equals(rsEach)){ if (Boolean.FALSE.equals(rsEach)) {
throw new BaseException(ResultCode.VEHICLE_IS_BOOKED); throw new BaseException(ResultCode.VEHICLE_IS_BOOKED);
} }
} }
//添加预定日期记录 //添加预定日期记录
Boolean hasSuc = bookedVehicle(bookVehicleVo); Boolean hasSuc = bookedVehicle(bookVehicleVo);
if(!hasSuc){ if (!hasSuc) {
throw new BaseException(ResultCode.BOOKED_FAILED_CODE); throw new BaseException(ResultCode.BOOKED_FAILED_CODE);
} }
// //添加预定时间记录 // //添加预定时间记录
for(Map.Entry<String, Integer> entry : map.entrySet()) { for (Map.Entry<String, Integer> entry : map.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto(); VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setVehicleId(bookVehicleVo.getVehicleId()); vehicleBookHourInfoDto.setVehicleId(bookVehicleVo.getVehicleId());
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey()); vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
...@@ -495,13 +504,13 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -495,13 +504,13 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
} }
//添加随车物品 //添加随车物品
List<Map<String,Object>> params = Lists.newArrayList(); List<Map<String, Object>> params = Lists.newArrayList();
if(MapUtils.isNotEmpty(bookVehicleVo.getSelectedAccItem())){ if (MapUtils.isNotEmpty(bookVehicleVo.getSelectedAccItem())) {
for(Map.Entry<Integer,Integer> idAndAmount : bookVehicleVo.getSelectedAccItem().entrySet()){ for (Map.Entry<Integer, Integer> idAndAmount : bookVehicleVo.getSelectedAccItem().entrySet()) {
Map<String,Object> row = Maps.newHashMap(); Map<String, Object> row = Maps.newHashMap();
row.put("id",idAndAmount.getKey()); row.put("id", idAndAmount.getKey());
row.put("amount",idAndAmount.getValue()); row.put("amount", idAndAmount.getValue());
row.put("bookRecordId",vehicleBookRecord.getId()); row.put("bookRecordId", vehicleBookRecord.getId());
params.add(row); params.add(row);
} }
bookRecordAccItemMapper.batchAdd(params); bookRecordAccItemMapper.batchAdd(params);
...@@ -512,21 +521,21 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -512,21 +521,21 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
@Transactional @Transactional
public Boolean applyVehicle4EmployeePerMonth(String vehicleId, List<String> bookedDates, String yearMonth, Map<String, Integer> hourInfo){ public Boolean applyVehicle4EmployeePerMonth(String vehicleId, List<String> bookedDates, String yearMonth, Map<String, Integer> hourInfo) {
//检查车辆是否有空档 //检查车辆是否有空档
//获得当月预定记录 //获得当月预定记录
VehicleBookInfo vehicleBookInfo = getByVehicleIdAndYearMonth(vehicleId,yearMonth); VehicleBookInfo vehicleBookInfo = getByVehicleIdAndYearMonth(vehicleId, yearMonth);
//位操作确定目标日期是否可预订 //位操作确定目标日期是否可预订
Map<String,Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
Map<String,List<String>> yearMonthAndDate = new HashMap<>(); Map<String, List<String>> yearMonthAndDate = new HashMap<>();
yearMonthAndDate.put(yearMonth,bookedDates); yearMonthAndDate.put(yearMonth, bookedDates);
fillBookedDateSearchParam(params,null,yearMonthAndDate);//转换为查询对应日期未预定的条件 fillBookedDateSearchParam(params, null, yearMonthAndDate);//转换为查询对应日期未预定的条件
Map<String,Map<String,Integer>> yearMonthAndParam = (Map<String,Map<String,Integer>>)params.get("yearMonthAndParam"); Map<String, Map<String, Integer>> yearMonthAndParam = (Map<String, Map<String, Integer>>) params.get("yearMonthAndParam");
Map<String,Integer> andOpratorParam = yearMonthAndParam.get(yearMonth); Map<String, Integer> andOpratorParam = yearMonthAndParam.get(yearMonth);
Integer andOperationFactor = andOpratorParam.get("andOperationFactor"); Integer andOperationFactor = andOpratorParam.get("andOperationFactor");
Integer andOperationRs = andOpratorParam.get("andOperationRs"); Integer andOperationRs = andOpratorParam.get("andOperationRs");
if(vehicleBookInfo != null && vehicleBookInfo.getBookedDate() != null && if (vehicleBookInfo != null && vehicleBookInfo.getBookedDate() != null &&
((vehicleBookInfo.getBookedDate() & andOperationFactor) != 0)){//已经被预定 ((vehicleBookInfo.getBookedDate() & andOperationFactor) != 0)) {//已经被预定
//当天已经被预定检查小时是否也被预定 //当天已经被预定检查小时是否也被预定
return filterHourInfoBooked(vehicleId, hourInfo); return filterHourInfoBooked(vehicleId, hourInfo);
} }
...@@ -535,16 +544,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -535,16 +544,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
public boolean filterHourInfoBooked(String vehicleId, Map<String, Integer> hourInfo) { public boolean filterHourInfoBooked(String vehicleId, Map<String, Integer> hourInfo) {
if(MapUtils.isEmpty(hourInfo)) { if (MapUtils.isEmpty(hourInfo)) {
return false; return false;
} }
for(Map.Entry<String, Integer> entry : hourInfo.entrySet()) { for (Map.Entry<String, Integer> entry : hourInfo.entrySet()) {
if(entry.getValue() == 0) {//0点 查询是否有已经预约的记录 if (entry.getValue() == 0) {//0点 查询是否有已经预约的记录
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("vehicleId", vehicleId); param.put("vehicleId", vehicleId);
param.put("bookedEndDate", DateTime.parse(entry.getKey() + " 00:00:00", DATE_TIME_FORMATTER)); param.put("bookedEndDate", DateTime.parse(entry.getKey() + " 00:00:00", DATE_TIME_FORMATTER));
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectZeroHourRecord(param); List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectZeroHourRecord(param);
if(vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) { if (vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) {
return false; return false;
} }
} }
...@@ -552,8 +561,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -552,8 +561,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey()); vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
vehicleBookHourInfoDto.setVehicleId(vehicleId); vehicleBookHourInfoDto.setVehicleId(vehicleId);
List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto); List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto);
if(vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) { if (vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) {
if((vehicleBookHourInfos.get(0).getBookedHour() & entry.getValue()) != 0) { // 已经被预定 if ((vehicleBookHourInfos.get(0).getBookedHour() & entry.getValue()) != 0) { // 已经被预定
log.info(entry.getKey() + "预定的时间段已经被预约!"); log.info(entry.getKey() + "预定的时间段已经被预约!");
return Boolean.FALSE; return Boolean.FALSE;
} }
...@@ -564,48 +573,49 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -564,48 +573,49 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 批准预定车辆预定 * 批准预定车辆预定
*
* @param operatorId * @param operatorId
* @param bookRecordId * @param bookRecordId
* @return * @return
*/ */
@Transactional @Transactional
public RestResponse<Integer> reviewVehicleBooking(Integer operatorId, Long bookRecordId,Integer rsStatus,String userName, String rejectRemark, Boolean notCheckTimeLegal) throws Exception{ public RestResponse<Integer> reviewVehicleBooking(Integer operatorId, Long bookRecordId, Integer rsStatus, String userName, String rejectRemark, Boolean notCheckTimeLegal) throws Exception {
try { try {
//获取相关申请记录 //获取相关申请记录
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId); VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId);
//申请记录验证 //申请记录验证
if(vehicleBookRecord == null){ if (vehicleBookRecord == null) {
return RestResponse.codeAndMessage(ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getCode(), ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getDesc()); return RestResponse.codeAndMessage(ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getCode(), ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getDesc());
} }
if(VehicleBookRecordStatus.APPROVE.getCode().equals(vehicleBookRecord.getStatus())){ if (VehicleBookRecordStatus.APPROVE.getCode().equals(vehicleBookRecord.getStatus())) {
return RestResponse.codeAndMessage(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode(), ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getDesc()); return RestResponse.codeAndMessage(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode(), ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getDesc());
} }
//转换为相应预定参数 //转换为相应预定参数
BookVehicleVO bookVehicleVo = new BookVehicleVO(); BookVehicleVO bookVehicleVo = new BookVehicleVO();
BeanUtils.copyProperties(bookVehicleVo,vehicleBookRecord); BeanUtils.copyProperties(bookVehicleVo, vehicleBookRecord);
bookVehicleVo.setBookStartDate(new DateTime(vehicleBookRecord.getBookStartDate()).toString(DATE_TIME_FORMATTER)); bookVehicleVo.setBookStartDate(new DateTime(vehicleBookRecord.getBookStartDate()).toString(DATE_TIME_FORMATTER));
bookVehicleVo.setBookEndDate(new DateTime(vehicleBookRecord.getBookEndDate()).toString(DATE_TIME_FORMATTER)); bookVehicleVo.setBookEndDate(new DateTime(vehicleBookRecord.getBookEndDate()).toString(DATE_TIME_FORMATTER));
//成功后修改预定记录状态 //成功后修改预定记录状态
Map<String,Object> updateParam = Maps.newHashMap(); Map<String, Object> updateParam = Maps.newHashMap();
updateParam.put("id",bookRecordId); updateParam.put("id", bookRecordId);
updateParam.put("status",rsStatus); updateParam.put("status", rsStatus);
updateParam.put("reviewerApply",operatorId); updateParam.put("reviewerApply", operatorId);
updateParam.put("reviewerNameApply",userName); updateParam.put("reviewerNameApply", userName);
updateParam.put("statusCondition",VehicleBookRecordStatus.APPLY.getCode()); updateParam.put("statusCondition", VehicleBookRecordStatus.APPLY.getCode());
if(StringUtils.isNotBlank(rejectRemark)) { if (StringUtils.isNotBlank(rejectRemark)) {
updateParam.put("rejectRemark",rejectRemark); updateParam.put("rejectRemark", rejectRemark);
} }
Integer effected = vehicleBookRecordBiz.changeRecordStatus(updateParam); Integer effected = vehicleBookRecordBiz.changeRecordStatus(updateParam);
if(effected == 0){//修改失败,手动回滚 if (effected == 0) {//修改失败,手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode()); return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode());
}else if(VehicleBookRecordStatus.REJECTED.getCode().equals(rsStatus)){ } else if (VehicleBookRecordStatus.REJECTED.getCode().equals(rsStatus)) {
//拒绝,则释放bookinfo //拒绝,则释放bookinfo
bookVehicleVo.setUnbookStartDate(bookVehicleVo.getBookStartDate()); bookVehicleVo.setUnbookStartDate(bookVehicleVo.getBookStartDate());
bookVehicleVo.setUnbookEndDate(bookVehicleVo.getBookEndDate()); bookVehicleVo.setUnbookEndDate(bookVehicleVo.getBookEndDate());
Boolean hasSuc = unbookVehicle(bookVehicleVo); Boolean hasSuc = unbookVehicle(bookVehicleVo);
if(hasSuc) { if (hasSuc) {
return RestResponse.suc(); return RestResponse.suc();
} }
} }
...@@ -618,23 +628,24 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -618,23 +628,24 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 取消预定 * 取消预定
*
* @return * @return
*/ */
@Transactional @Transactional
public RestResponse unbookVehicle4Employee(Integer operatorId,Long bookRecordId,String userName, String rejectRemark, Boolean notCheckTimeLegal) throws Exception{ public RestResponse unbookVehicle4Employee(Integer operatorId, Long bookRecordId, String userName, String rejectRemark, Boolean notCheckTimeLegal) throws Exception {
//获取相关申请记录 //获取相关申请记录
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId); VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId);
//申请记录验证 //申请记录验证
if(vehicleBookRecord == null){ if (vehicleBookRecord == null) {
return RestResponse.codeAndMessage(ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getCode(), ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getDesc()); return RestResponse.codeAndMessage(ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getCode(), ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getDesc());
} }
//已通过审核的可以取消预定 //已通过审核的可以取消预定
if(!VehicleBookRecordStatus.APPROVE.getCode().equals(vehicleBookRecord.getStatus())){ if (!VehicleBookRecordStatus.APPROVE.getCode().equals(vehicleBookRecord.getStatus())) {
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode()); return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode());
} }
//转换为相应取消预定参数 //转换为相应取消预定参数
BookVehicleVO bookVehicleVo = new BookVehicleVO(); BookVehicleVO bookVehicleVo = new BookVehicleVO();
BeanUtils.copyProperties(bookVehicleVo,vehicleBookRecord); BeanUtils.copyProperties(bookVehicleVo, vehicleBookRecord);
bookVehicleVo.setNotCheckTimeLegal(notCheckTimeLegal); bookVehicleVo.setNotCheckTimeLegal(notCheckTimeLegal);
bookVehicleVo.setBookStartDate(null); bookVehicleVo.setBookStartDate(null);
bookVehicleVo.setBookEndDate(null); bookVehicleVo.setBookEndDate(null);
...@@ -642,21 +653,21 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -642,21 +653,21 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
bookVehicleVo.setUnbookEndDate(new DateTime(vehicleBookRecord.getBookEndDate()).toString(DATE_TIME_FORMATTER)); bookVehicleVo.setUnbookEndDate(new DateTime(vehicleBookRecord.getBookEndDate()).toString(DATE_TIME_FORMATTER));
//取消预定 //取消预定
Boolean hasSuc = unbookVehicle(bookVehicleVo); Boolean hasSuc = unbookVehicle(bookVehicleVo);
if(!hasSuc){ if (!hasSuc) {
return RestResponse.codeAndMessage(ResCode.VEHICLE_UNBOOK_FAIL.getCode(), ResCode.VEHICLE_UNBOOK_FAIL.getDesc()); return RestResponse.codeAndMessage(ResCode.VEHICLE_UNBOOK_FAIL.getCode(), ResCode.VEHICLE_UNBOOK_FAIL.getDesc());
} }
//修改预定状态,写入取消人 //修改预定状态,写入取消人
Map<String,Object> updateParam = Maps.newHashMap(); Map<String, Object> updateParam = Maps.newHashMap();
updateParam.put("id",bookRecordId); updateParam.put("id", bookRecordId);
updateParam.put("status",VehicleBookRecordStatus.CANCEL_APPLY.getCode()); updateParam.put("status", VehicleBookRecordStatus.CANCEL_APPLY.getCode());
updateParam.put("reviewerCancel",operatorId); updateParam.put("reviewerCancel", operatorId);
updateParam.put("reviewerNameCancel",userName); updateParam.put("reviewerNameCancel", userName);
updateParam.put("statusCondition",VehicleBookRecordStatus.APPROVE.getCode()); updateParam.put("statusCondition", VehicleBookRecordStatus.APPROVE.getCode());
if(StringUtils.isNotBlank(rejectRemark)) { if (StringUtils.isNotBlank(rejectRemark)) {
updateParam.put("rejectRemark",rejectRemark); updateParam.put("rejectRemark", rejectRemark);
} }
Integer effected = vehicleBookRecordBiz.changeRecordStatus(updateParam); Integer effected = vehicleBookRecordBiz.changeRecordStatus(updateParam);
if(effected == 0){//修改失败,手动回滚 if (effected == 0) {//修改失败,手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode()); return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode());
} }
...@@ -675,54 +686,56 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -675,54 +686,56 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 获取预定车辆相关与操作参数 * 获取预定车辆相关与操作参数
*
* @return * @return
*/ */
private Integer getBitOpratorFactor4Booked(List<String> dates){ private Integer getBitOpratorFactor4Booked(List<String> dates) {
Integer andOperationFactor = 0; Integer andOperationFactor = 0;
for (String dateStr:dates) {//已预定作为条件,该位与1作与运算必定为1 for (String dateStr : dates) {//已预定作为条件,该位与1作与运算必定为1
DateTime dateTime = DateTime.parse(dateStr, DEFAULT_DATE_TIME_FORMATTER); DateTime dateTime = DateTime.parse(dateStr, DEFAULT_DATE_TIME_FORMATTER);
//仅对应位为1的整形值 //仅对应位为1的整形值
andOperationFactor |= 1<<(dateTime.dayOfMonth().get()-1); andOperationFactor |= 1 << (dateTime.dayOfMonth().get() - 1);
} }
return andOperationFactor; return andOperationFactor;
} }
/** /**
* 获取预定车辆相关与操作参数 * 获取预定车辆相关与操作参数
*
* @return * @return
*/ */
private Integer getBitOpratorFactor4UnBooked(List<String> dates){ private Integer getBitOpratorFactor4UnBooked(List<String> dates) {
Integer andOperationFactor = Integer.MAX_VALUE; Integer andOperationFactor = Integer.MAX_VALUE;
for (String dateStr:dates) {//已预定作为条件,该位与1作与运算必定为1 for (String dateStr : dates) {//已预定作为条件,该位与1作与运算必定为1
DateTime dateTime = DateTime.parse(dateStr, DEFAULT_DATE_TIME_FORMATTER); DateTime dateTime = DateTime.parse(dateStr, DEFAULT_DATE_TIME_FORMATTER);
//仅对应位为1的整形值 //仅对应位为1的整形值
andOperationFactor ^= 1<<(dateTime.dayOfMonth().get()-1); andOperationFactor ^= 1 << (dateTime.dayOfMonth().get() - 1);
} }
return andOperationFactor; return andOperationFactor;
} }
/** /**
* 根据预定日期逐条修改预定记录 * 根据预定日期逐条修改预定记录
*
* @param bookVehicleVo * @param bookVehicleVo
* @return * @return
*/ */
@Transactional @Transactional
public Boolean bookedVehicle( BookVehicleVO bookVehicleVo) throws Exception{ public Boolean bookedVehicle(BookVehicleVO bookVehicleVo) throws Exception {
//提取日期和相应的预定目标日期 //提取日期和相应的预定目标日期
Map<String,List<String>> yearMonthAndDate = Maps.newHashMap(); Map<String, List<String>> yearMonthAndDate = Maps.newHashMap();
DateTime startDay =DateTime.parse(bookVehicleVo.getBookStartDate(), DATE_TIME_FORMATTER); DateTime startDay = DateTime.parse(bookVehicleVo.getBookStartDate(), DATE_TIME_FORMATTER);
DateTime endDay =DateTime.parse(bookVehicleVo.getBookEndDate(), DATE_TIME_FORMATTER); DateTime endDay = DateTime.parse(bookVehicleVo.getBookEndDate(), DATE_TIME_FORMATTER);
//转换日期范围为列表,并检查是否合法 //转换日期范围为列表,并检查是否合法
fillDateList4DatePeriod(yearMonthAndDate,startDay,endDay); fillDateList4DatePeriod(yearMonthAndDate, startDay, endDay);
if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月 if (yearMonthAndDate.size() > 3) {//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH); throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH);
} }
Boolean rs = Boolean.TRUE; Boolean rs = Boolean.TRUE;
for(Map.Entry<String,List<String>> entry:yearMonthAndDate.entrySet()){ for (Map.Entry<String, List<String>> entry : yearMonthAndDate.entrySet()) {
Boolean rsEach = bookedVehiclePerMonth(bookVehicleVo.getVehicleId(),entry.getValue(),entry.getKey()); Boolean rsEach = bookedVehiclePerMonth(bookVehicleVo.getVehicleId(), entry.getValue(), entry.getKey());
if(Boolean.FALSE.equals(rsEach)){ if (Boolean.FALSE.equals(rsEach)) {
rs = Boolean.FALSE; rs = Boolean.FALSE;
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
} }
...@@ -732,13 +745,14 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -732,13 +745,14 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 不存在插入、存在更新,利用唯一索引确保相同车辆以及年月序列化提交事务 * 不存在插入、存在更新,利用唯一索引确保相同车辆以及年月序列化提交事务
*
* @param vehicleId * @param vehicleId
* @param bookedDates * @param bookedDates
* @param yearMonth * @param yearMonth
* @return 是否更新或插入成功 * @return 是否更新或插入成功
*/ */
@Transactional @Transactional
public Boolean bookedVehiclePerMonth(String vehicleId, List<String> bookedDates, String yearMonth) throws Exception{ public Boolean bookedVehiclePerMonth(String vehicleId, List<String> bookedDates, String yearMonth) throws Exception {
VehicleBookInfo vehicleBookInfo = new VehicleBookInfo(); VehicleBookInfo vehicleBookInfo = new VehicleBookInfo();
vehicleBookInfo.setVehicle(vehicleId); vehicleBookInfo.setVehicle(vehicleId);
vehicleBookInfo.setYearMonth(yearMonth); vehicleBookInfo.setYearMonth(yearMonth);
...@@ -746,47 +760,48 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -746,47 +760,48 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
checkIfVehicleExists(vehicleId); checkIfVehicleExists(vehicleId);
Integer orRsOperationFactor = getBitOpratorFactor4Booked(bookedDates);//预定的相关或运算因子,当前月份没有预定记录时同时也是结果 Integer orRsOperationFactor = getBitOpratorFactor4Booked(bookedDates);//预定的相关或运算因子,当前月份没有预定记录时同时也是结果
vehicleBookInfo.setBookedDate(orRsOperationFactor); vehicleBookInfo.setBookedDate(orRsOperationFactor);
Map<String,Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("vehicle", vehicleId); map.put("vehicle", vehicleId);
map.put("yearMonth", yearMonth); map.put("yearMonth", yearMonth);
List<VehicleBookInfo> vehicleBookInfos = vehicleBookInfoMapper.getByVehicleIdAndYearMonth(map); List<VehicleBookInfo> vehicleBookInfos = vehicleBookInfoMapper.getByVehicleIdAndYearMonth(map);
if(vehicleBookInfos != null && vehicleBookInfos.size() > 0) { if (vehicleBookInfos != null && vehicleBookInfos.size() > 0) {
if((vehicleBookInfos.get(0).getBookedDate() & orRsOperationFactor) == orRsOperationFactor) { if ((vehicleBookInfos.get(0).getBookedDate() & orRsOperationFactor) == orRsOperationFactor) {
return Boolean.TRUE; return Boolean.TRUE;
} }
} }
Integer effected = vehicleBookInfoMapper.insertIgnore(vehicleBookInfo); Integer effected = vehicleBookInfoMapper.insertIgnore(vehicleBookInfo);
if(effected == 0){//已存在则需要更新 if (effected == 0) {//已存在则需要更新
Map<String,Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("vehicleId",vehicleBookInfo.getVehicle()); params.put("vehicleId", vehicleBookInfo.getVehicle());
params.put("yearMonth",yearMonth); params.put("yearMonth", yearMonth);
//加入更新条件 //加入更新条件
if(CollectionUtils.isEmpty(bookedDates)){ if (CollectionUtils.isEmpty(bookedDates)) {
throw new BaseException(ResultCode.BOOKED_DATE_IS_EMPTY); throw new BaseException(ResultCode.BOOKED_DATE_IS_EMPTY);
} }
Map<String,List<String>> yearMonthAndDate = new HashMap<>(); Map<String, List<String>> yearMonthAndDate = new HashMap<>();
yearMonthAndDate.put(vehicleBookInfo.getYearMonth(),bookedDates); yearMonthAndDate.put(vehicleBookInfo.getYearMonth(), bookedDates);
//转换为查询对应日期未预定的条件 //转换为查询对应日期未预定的条件
fillBookedDateSearchParam(params,null,yearMonthAndDate); fillBookedDateSearchParam(params, null, yearMonthAndDate);
//提取相关参数组装更细条件 //提取相关参数组装更细条件
Map<String,Map<String,Integer>> yearMonthAndParam = (Map<String,Map<String,Integer>>)params.get("yearMonthAndParam"); Map<String, Map<String, Integer>> yearMonthAndParam = (Map<String, Map<String, Integer>>) params.get("yearMonthAndParam");
Map<String,Integer> andOpratorParam = yearMonthAndParam.get(vehicleBookInfo.getYearMonth()); Map<String, Integer> andOpratorParam = yearMonthAndParam.get(vehicleBookInfo.getYearMonth());
params.putAll(andOpratorParam); params.putAll(andOpratorParam);
params.put("orRsOperationFactor", params.put("orRsOperationFactor",
orRsOperationFactor); orRsOperationFactor);
effected = vehicleBookInfoMapper.updateBookedInfo(params); effected = vehicleBookInfoMapper.updateBookedInfo(params);
} }
return effected>0?Boolean.TRUE:Boolean.FALSE; return effected > 0 ? Boolean.TRUE : Boolean.FALSE;
} }
/** /**
* 检查车辆是否存在 * 检查车辆是否存在
*
* @param id * @param id
*/ */
public boolean checkIfVehicleExists(String id){ public boolean checkIfVehicleExists(String id) {
Vehicle vehicle = mapper.selectByPrimaryKey(id); Vehicle vehicle = mapper.selectByPrimaryKey(id);
if(vehicle == null) { if (vehicle == null) {
return false; return false;
} }
if (vehicle.getStatus().equals(VehicleStatus.DISCARD.getCode())) { if (vehicle.getStatus().equals(VehicleStatus.DISCARD.getCode())) {
...@@ -817,7 +832,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -817,7 +832,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
} }
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByVehicleId(vehicleId); List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByVehicleId(vehicleId);
vehicleBookRecordBiz.removeStatus2(vehicleBookRecordVos); vehicleBookRecordBiz.removeStatus2(vehicleBookRecordVos);
if(vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0 && vehicleBookRecordVos.get(0).getBookEndDate() != null && vehicleBookRecordVos.get(0).getBookEndDate().after(new Date())) { if (vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0 && vehicleBookRecordVos.get(0).getBookEndDate() != null && vehicleBookRecordVos.get(0).getBookEndDate().after(new Date())) {
stringBuilder.append("中,使用人:"); stringBuilder.append("中,使用人:");
stringBuilder.append(vehicleBookRecordVos.get(0).getVehicleUsername()); stringBuilder.append(vehicleBookRecordVos.get(0).getVehicleUsername());
stringBuilder.append(" 使用人电话:"); stringBuilder.append(" 使用人电话:");
...@@ -830,71 +845,73 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -830,71 +845,73 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 把日期范围转换为列表,并检查操作范围是否合法 * 把日期范围转换为列表,并检查操作范围是否合法
*
* @param yearMonthAndDate * @param yearMonthAndDate
* @param startDay * @param startDay
* @param endDay * @param endDay
*/ */
private void fillDateList4DatePeriod(Map<String,List<String>> yearMonthAndDate,DateTime startDay,DateTime endDay){ private void fillDateList4DatePeriod(Map<String, List<String>> yearMonthAndDate, DateTime startDay, DateTime endDay) {
for( DateTime curDate = startDay; curDate.compareTo(endDay) <= 0; curDate = curDate.plusDays(1)){ for (DateTime curDate = startDay; curDate.compareTo(endDay) <= 0; curDate = curDate.plusDays(1)) {
String curDateStr = curDate.toString(DEFAULT_DATE_TIME_FORMATTER); String curDateStr = curDate.toString(DEFAULT_DATE_TIME_FORMATTER);
if(curDateStr.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER))<0){ if (curDateStr.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER)) < 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY); throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
} }
String curYearMonth = curDate.toString(YEARMONTH_DATE_TIME_FORMATTER); String curYearMonth = curDate.toString(YEARMONTH_DATE_TIME_FORMATTER);
if(!yearMonthAndDate.containsKey(curYearMonth)){ if (!yearMonthAndDate.containsKey(curYearMonth)) {
yearMonthAndDate.put(curYearMonth,Lists.newArrayList()); yearMonthAndDate.put(curYearMonth, Lists.newArrayList());
} }
List<String> curBookedDateList = yearMonthAndDate.get(curYearMonth); List<String> curBookedDateList = yearMonthAndDate.get(curYearMonth);
curBookedDateList.add(curDateStr); curBookedDateList.add(curDateStr);
} }
if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月 if (yearMonthAndDate.size() > 3) {//连续的日期最多夸3个月
throw new BaseException(" 只可以预约两个月内的车辆"); throw new BaseException(" 只可以预约两个月内的车辆");
} }
} }
private void unbookDateList4DatePeriod(Map<String,List<String>> yearMonthAndDate,DateTime startDay,DateTime endDay){ private void unbookDateList4DatePeriod(Map<String, List<String>> yearMonthAndDate, DateTime startDay, DateTime endDay) {
for( DateTime curDate = startDay; curDate.compareTo(endDay) <= 0; curDate = curDate.plusDays(1)){ for (DateTime curDate = startDay; curDate.compareTo(endDay) <= 0; curDate = curDate.plusDays(1)) {
String curDateStr = curDate.toString(DEFAULT_DATE_TIME_FORMATTER); String curDateStr = curDate.toString(DEFAULT_DATE_TIME_FORMATTER);
// if(curDateStr.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER))<0){ // if(curDateStr.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER))<0){
// throw new BaseException("只可以取消当前时间之后的车辆"); // throw new BaseException("只可以取消当前时间之后的车辆");
// } // }
String curYearMonth = curDate.toString(YEARMONTH_DATE_TIME_FORMATTER); String curYearMonth = curDate.toString(YEARMONTH_DATE_TIME_FORMATTER);
if(!yearMonthAndDate.containsKey(curYearMonth)){ if (!yearMonthAndDate.containsKey(curYearMonth)) {
yearMonthAndDate.put(curYearMonth, Lists.newArrayList()); yearMonthAndDate.put(curYearMonth, Lists.newArrayList());
} }
List<String> curBookedDateList = yearMonthAndDate.get(curYearMonth); List<String> curBookedDateList = yearMonthAndDate.get(curYearMonth);
curBookedDateList.add(curDateStr); curBookedDateList.add(curDateStr);
} }
if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月 if (yearMonthAndDate.size() > 3) {//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH); throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH);
} }
} }
/** /**
* 取消预定(释放bookinfo) * 取消预定(释放bookinfo)
*
* @return * @return
*/ */
@Transactional @Transactional
public Boolean unbookVehicle(BookVehicleVO bookVehicleVo) throws Exception{ public Boolean unbookVehicle(BookVehicleVO bookVehicleVo) throws Exception {
//提取日期参数,改为每月一份 //提取日期参数,改为每月一份
//提取日期和相应的预定目标日期 //提取日期和相应的预定目标日期
Map<String,List<String>> yearMonthAndDate = Maps.newHashMap(); Map<String, List<String>> yearMonthAndDate = Maps.newHashMap();
DateTime startDay =DateTime.parse(bookVehicleVo.getUnbookStartDate(), DATE_TIME_FORMATTER); DateTime startDay = DateTime.parse(bookVehicleVo.getUnbookStartDate(), DATE_TIME_FORMATTER);
DateTime endDay =DateTime.parse(bookVehicleVo.getUnbookEndDate(), DATE_TIME_FORMATTER); DateTime endDay = DateTime.parse(bookVehicleVo.getUnbookEndDate(), DATE_TIME_FORMATTER);
//转换日期范围为列表,并检查是否合法 //转换日期范围为列表,并检查是否合法
unbookDateList4DatePeriod(yearMonthAndDate, DateTime.parse(startDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER), DateTime.parse(endDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER)); unbookDateList4DatePeriod(yearMonthAndDate, DateTime.parse(startDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER), DateTime.parse(endDay.toString(DEFAULT_DATE_TIME_FORMATTER), DEFAULT_DATE_TIME_FORMATTER));
//原设计为 读取 bookVehicleVo.getNotCheckTimeLegal(), 现在取消/拒绝 true //原设计为 读取 bookVehicleVo.getNotCheckTimeLegal(), 现在取消/拒绝 true
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getUnbookStartDate(), bookVehicleVo.getUnbookEndDate(), Boolean.TRUE); Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getUnbookStartDate(), bookVehicleVo.getUnbookEndDate(), Boolean.TRUE);
if(yearMonthAndDate.size() > 3){//连续的日期最多夸3个月 if (yearMonthAndDate.size() > 3) {//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_UNBOOK_TWO_MONTH); throw new BaseException(ResultCode.ONLY_UNBOOK_TWO_MONTH);
} }
Boolean rs = Boolean.TRUE; Boolean rs = Boolean.TRUE;
for(Map.Entry<String, List<String>> entry : yearMonthAndDate.entrySet()){ for (Map.Entry<String, List<String>> entry : yearMonthAndDate.entrySet()) {
Boolean rsEach = unbookVehiclePerMonth(bookVehicleVo.getVehicleId(),entry.getValue(),entry.getKey(), map); Boolean rsEach = unbookVehiclePerMonth(bookVehicleVo.getVehicleId(), entry.getValue(), entry.getKey(), map);
if(Boolean.FALSE.equals(rsEach)){ if (Boolean.FALSE.equals(rsEach)) {
rs = Boolean.FALSE; rs = Boolean.FALSE;
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
} }
...@@ -904,22 +921,22 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -904,22 +921,22 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
@Transactional @Transactional
public Boolean unbookVehiclePerMonth(String vehicleId, List<String> unbookDates, String yearMonth, Map<String, Integer> hourInfo){ public Boolean unbookVehiclePerMonth(String vehicleId, List<String> unbookDates, String yearMonth, Map<String, Integer> hourInfo) {
checkIfVehicleExists(vehicleId); checkIfVehicleExists(vehicleId);
Map<String,Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("vehicleId",vehicleId); params.put("vehicleId", vehicleId);
params.put("yearMonth",yearMonth); params.put("yearMonth", yearMonth);
//加入更新条件 //加入更新条件
if(CollectionUtils.isEmpty(unbookDates)){ if (CollectionUtils.isEmpty(unbookDates)) {
throw new BaseException(ResultCode.VEHICLE_CAN_NOT_UNBOOK); throw new BaseException(ResultCode.VEHICLE_CAN_NOT_UNBOOK);
} }
Map<String,List<String>> yearMonthAndDate = new HashMap<>(); Map<String, List<String>> yearMonthAndDate = new HashMap<>();
yearMonthAndDate.put(yearMonth,unbookDates); yearMonthAndDate.put(yearMonth, unbookDates);
//转换为查询对应日期未预定的条件 //转换为查询对应日期未预定的条件
fillBookedDateSearchParam(params,yearMonthAndDate,null); fillBookedDateSearchParam(params, yearMonthAndDate, null);
//提取相关参数组装更细条件 //提取相关参数组装更细条件
Map<String,Map<String,Integer>> yearMonthAndParam = (Map<String,Map<String,Integer>>)params.get("yearMonthAndParam"); Map<String, Map<String, Integer>> yearMonthAndParam = (Map<String, Map<String, Integer>>) params.get("yearMonthAndParam");
Map<String,Integer> andOpratorParam = yearMonthAndParam.get(yearMonth); Map<String, Integer> andOpratorParam = yearMonthAndParam.get(yearMonth);
params.putAll(andOpratorParam); params.putAll(andOpratorParam);
Integer andRsOperationFactor = getBitOpratorFactor4UnBooked(unbookDates);//预定的相关或运算因子,当前月份没有预定记录时同时也是结果 Integer andRsOperationFactor = getBitOpratorFactor4UnBooked(unbookDates);//预定的相关或运算因子,当前月份没有预定记录时同时也是结果
params.put("andRsOperationFactor", params.put("andRsOperationFactor",
...@@ -927,19 +944,19 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -927,19 +944,19 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
return unbookHourInfo(vehicleId, hourInfo, params); return unbookHourInfo(vehicleId, hourInfo, params);
} }
public boolean unbookHourInfo(String vehicleId, Map<String, Integer> hourInfo, Map<String,Object> params) { public boolean unbookHourInfo(String vehicleId, Map<String, Integer> hourInfo, Map<String, Object> params) {
for (Map.Entry<String, Integer> entry : hourInfo.entrySet()) { for (Map.Entry<String, Integer> entry : hourInfo.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto(); VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey()); vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
vehicleBookHourInfoDto.setVehicleId(vehicleId); vehicleBookHourInfoDto.setVehicleId(vehicleId);
List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto); List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto);
if (vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) { if (vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) {
if((vehicleBookHourInfos.get(0).getBookedHour() & ~entry.getValue()) == 0) { //时间取与运算为0说明当天全部取消预定 if ((vehicleBookHourInfos.get(0).getBookedHour() & ~entry.getValue()) == 0) { //时间取与运算为0说明当天全部取消预定
DateTime dateTime = DateTime.parse(entry.getKey(), DEFAULT_DATE_TIME_FORMATTER); DateTime dateTime = DateTime.parse(entry.getKey(), DEFAULT_DATE_TIME_FORMATTER);
Integer andOperationFactor = 0; Integer andOperationFactor = 0;
andOperationFactor |= 1 << ( dateTime.dayOfMonth().get() - 1); andOperationFactor |= 1 << (dateTime.dayOfMonth().get() - 1);
VehicleBookInfo vehicleBookInfo = getByVehicleIdAndYearMonth(vehicleId, dateTime.toString(YEARMONTH_DATE_TIME_FORMATTER)); VehicleBookInfo vehicleBookInfo = getByVehicleIdAndYearMonth(vehicleId, dateTime.toString(YEARMONTH_DATE_TIME_FORMATTER));
if(vehicleBookInfo != null) { if (vehicleBookInfo != null) {
vehicleBookInfo.setBookedDate(vehicleBookInfo.getBookedDate() & ~andOperationFactor); vehicleBookInfo.setBookedDate(vehicleBookInfo.getBookedDate() & ~andOperationFactor);
int effected = vehicleBookInfoBiz.update(vehicleBookInfo); int effected = vehicleBookInfoBiz.update(vehicleBookInfo);
if (effected < 1) { if (effected < 1) {
...@@ -963,77 +980,78 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -963,77 +980,78 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 获取某月份相应预定日期查询条件 * 获取某月份相应预定日期查询条件
*
* @param yearMonthAndDate 年月 - 预定日期条件字符串(yyyy-MM-dd) * @param yearMonthAndDate 年月 - 预定日期条件字符串(yyyy-MM-dd)
* @param yearMonthAndDateNotBooked 年月 - 未预定日期条件字符串 * @param yearMonthAndDateNotBooked 年月 - 未预定日期条件字符串
* @return * @return
*/ */
public void fillBookedDateSearchParam(Map<String, Object> params, public void fillBookedDateSearchParam(Map<String, Object> params,
Map<String,List<String>> yearMonthAndDate,Map<String,List<String>> yearMonthAndDateNotBooked){ Map<String, List<String>> yearMonthAndDate, Map<String, List<String>> yearMonthAndDateNotBooked) {
if(MapUtils.isEmpty(yearMonthAndDate)&&MapUtils.isEmpty(yearMonthAndDateNotBooked)){//没有预定信息查询条件 if (MapUtils.isEmpty(yearMonthAndDate) && MapUtils.isEmpty(yearMonthAndDateNotBooked)) {//没有预定信息查询条件
throw new BaseException(ResultCode.BOOKED_DATE_IS_EMPTY); throw new BaseException(ResultCode.BOOKED_DATE_IS_EMPTY);
} }
Map<String,Map<String,Integer>> yearMonthAndParam = new HashMap<>(); Map<String, Map<String, Integer>> yearMonthAndParam = new HashMap<>();
Set<String> bookedYearMonth = new HashSet<>();//记录未预定查询条件,供检查是否是否存在同一天既是已预定,又是没有预定 Set<String> bookedYearMonth = new HashSet<>();//记录未预定查询条件,供检查是否是否存在同一天既是已预定,又是没有预定
if(MapUtils.isNotEmpty(yearMonthAndDate)) { if (MapUtils.isNotEmpty(yearMonthAndDate)) {
for(Map.Entry<String,List<String>> entry:yearMonthAndDate.entrySet()){ for (Map.Entry<String, List<String>> entry : yearMonthAndDate.entrySet()) {
String curYearMonth = entry.getKey(); String curYearMonth = entry.getKey();
if(CollectionUtils.isEmpty(entry.getValue())){ if (CollectionUtils.isEmpty(entry.getValue())) {
continue; continue;
} }
Integer andOperationFactor = 0;//查找条件中作与运算的参数 Integer andOperationFactor = 0;//查找条件中作与运算的参数
Integer andOperationRs = 0;//与运算结果 Integer andOperationRs = 0;//与运算结果
for (String dateStr:entry.getValue()) {//已预定作为条件,该位与1作与运算必定为1 for (String dateStr : entry.getValue()) {//已预定作为条件,该位与1作与运算必定为1
DateTime dateTime = DateTime.parse(dateStr, DEFAULT_DATE_TIME_FORMATTER); DateTime dateTime = DateTime.parse(dateStr, DEFAULT_DATE_TIME_FORMATTER);
bookedYearMonth.add(dateStr); bookedYearMonth.add(dateStr);
//仅对应位为1的整形值 //仅对应位为1的整形值
andOperationFactor |= 1<<(dateTime.dayOfMonth().get()-1); andOperationFactor |= 1 << (dateTime.dayOfMonth().get() - 1);
andOperationRs |= 1<<(dateTime.dayOfMonth().get()-1); andOperationRs |= 1 << (dateTime.dayOfMonth().get() - 1);
} }
Map<String,Integer> andOperationParam = Maps.newHashMap(); Map<String, Integer> andOperationParam = Maps.newHashMap();
andOperationParam.put("andOperationFactor",andOperationFactor); andOperationParam.put("andOperationFactor", andOperationFactor);
andOperationParam.put("andOperationRs",andOperationRs); andOperationParam.put("andOperationRs", andOperationRs);
yearMonthAndParam.put(curYearMonth,andOperationParam); yearMonthAndParam.put(curYearMonth, andOperationParam);
} }
} }
if(MapUtils.isNotEmpty(yearMonthAndDateNotBooked)) { if (MapUtils.isNotEmpty(yearMonthAndDateNotBooked)) {
for(Map.Entry<String,List<String>> entry:yearMonthAndDateNotBooked.entrySet()){ for (Map.Entry<String, List<String>> entry : yearMonthAndDateNotBooked.entrySet()) {
String curYearMonth = entry.getKey(); String curYearMonth = entry.getKey();
if(CollectionUtils.isEmpty(entry.getValue())){ if (CollectionUtils.isEmpty(entry.getValue())) {
continue; continue;
} }
Map<String,Integer> andOperationParam = Maps.newHashMap(); Map<String, Integer> andOperationParam = Maps.newHashMap();
andOperationParam.put("andOperationFactor",0); andOperationParam.put("andOperationFactor", 0);
andOperationParam.put("andOperationRs",0); andOperationParam.put("andOperationRs", 0);
Integer andOperationFactor=0;//查找条件中作与运算的参数 Integer andOperationFactor = 0;//查找条件中作与运算的参数
if(yearMonthAndParam.containsKey(curYearMonth)){ if (yearMonthAndParam.containsKey(curYearMonth)) {
andOperationParam = yearMonthAndParam.get(curYearMonth); andOperationParam = yearMonthAndParam.get(curYearMonth);
andOperationFactor = andOperationParam.get("andOperationFactor"); andOperationFactor = andOperationParam.get("andOperationFactor");
}else{ } else {
yearMonthAndParam.put(curYearMonth,andOperationParam); yearMonthAndParam.put(curYearMonth, andOperationParam);
} }
for (String dateStr:entry.getValue()) {//已预定作为条件,该位与1作与运算必定为1 for (String dateStr : entry.getValue()) {//已预定作为条件,该位与1作与运算必定为1
if(bookedYearMonth.contains(dateStr)){ if (bookedYearMonth.contains(dateStr)) {
log.info("当天不可预定,日期为:dateStr = {}", dateStr); log.info("当天不可预定,日期为:dateStr = {}", dateStr);
throw new BaseException(ResultCode.TODAY_CAN_NOT_BOOK); throw new BaseException(ResultCode.TODAY_CAN_NOT_BOOK);
} }
DateTime dateTime = DateTime.parse(dateStr, DEFAULT_DATE_TIME_FORMATTER); DateTime dateTime = DateTime.parse(dateStr, DEFAULT_DATE_TIME_FORMATTER);
//仅对应位为1的整形值 //仅对应位为1的整形值
andOperationFactor |= 1<<(dateTime.dayOfMonth().get()-1); andOperationFactor |= 1 << (dateTime.dayOfMonth().get() - 1);
} }
andOperationParam.put("andOperationFactor",andOperationFactor); andOperationParam.put("andOperationFactor", andOperationFactor);
// if(!bookedYearMonth.contains(curYearMonth)){//仅以未预定日期条件查询时,不存在预定记录即为没有预定 // if(!bookedYearMonth.contains(curYearMonth)){//仅以未预定日期条件查询时,不存在预定记录即为没有预定
// andOperationParam.put("notBookedOnly",1); // andOperationParam.put("notBookedOnly",1);
// } // }
} }
} }
if(MapUtils.isNotEmpty(yearMonthAndParam)){ if (MapUtils.isNotEmpty(yearMonthAndParam)) {
params.put("yearMonthAndParam",yearMonthAndParam); params.put("yearMonthAndParam", yearMonthAndParam);
String bitStr = ""; String bitStr = "";
for(String key : yearMonthAndParam.keySet()) { for (String key : yearMonthAndParam.keySet()) {
bitStr+= "1"; bitStr += "1";
} }
params.put("yearMonthAndParamBitStr", bitStr); params.put("yearMonthAndParamBitStr", bitStr);
} }
...@@ -1042,15 +1060,15 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1042,15 +1060,15 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 根据月份分类到map中 * 根据月份分类到map中
*/ */
private void classifyByYearMonth(List<String> target,Map<String,List<String>> yearMonthAndDate,Set<String> allYearMonth){ private void classifyByYearMonth(List<String> target, Map<String, List<String>> yearMonthAndDate, Set<String> allYearMonth) {
if(CollectionUtils.isNotEmpty(target)) {//已预约 if (CollectionUtils.isNotEmpty(target)) {//已预约
for (String dateStr : target) { for (String dateStr : target) {
String curYearMonth = DateTime.parse(dateStr, DEFAULT_DATE_TIME_FORMATTER).toString(YEARMONTH_DATE_TIME_FORMATTER); String curYearMonth = DateTime.parse(dateStr, DEFAULT_DATE_TIME_FORMATTER).toString(YEARMONTH_DATE_TIME_FORMATTER);
allYearMonth.add(curYearMonth); allYearMonth.add(curYearMonth);
List<String> dateStrList = yearMonthAndDate.get(curYearMonth); List<String> dateStrList = yearMonthAndDate.get(curYearMonth);
if(dateStrList == null ){ if (dateStrList == null) {
dateStrList = Lists.newArrayList(); dateStrList = Lists.newArrayList();
yearMonthAndDate.put(curYearMonth,dateStrList); yearMonthAndDate.put(curYearMonth, dateStrList);
} }
dateStrList.add(dateStr); dateStrList.add(dateStr);
} }
...@@ -1059,15 +1077,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1059,15 +1077,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 把日期范围转换成列表 * 把日期范围转换成列表
*
* @param startDate * @param startDate
* @param endDate * @param endDate
* @return * @return
*/ */
private List<String> convertDatePeriod2List(String startDate,String endDate){ private List<String> convertDatePeriod2List(String startDate, String endDate) {
DateTime startDay =DateTime.parse(startDate, DEFAULT_DATE_TIME_FORMATTER); DateTime startDay = DateTime.parse(startDate, DEFAULT_DATE_TIME_FORMATTER);
DateTime endDay =DateTime.parse(endDate, DEFAULT_DATE_TIME_FORMATTER); DateTime endDay = DateTime.parse(endDate, DEFAULT_DATE_TIME_FORMATTER);
List<String> rs = Lists.newArrayList(); List<String> rs = Lists.newArrayList();
for( DateTime curDate = startDay;curDate.compareTo(endDay)<=0;curDate=curDate.plusDays(1)){ for (DateTime curDate = startDay; curDate.compareTo(endDay) <= 0; curDate = curDate.plusDays(1)) {
String curDateStr = curDate.toString(DEFAULT_DATE_TIME_FORMATTER); String curDateStr = curDate.toString(DEFAULT_DATE_TIME_FORMATTER);
rs.add(curDateStr); rs.add(curDateStr);
} }
...@@ -1076,13 +1095,14 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1076,13 +1095,14 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 根据前端预定日期查询条件转换为实际查询条件 * 根据前端预定日期查询条件转换为实际查询条件
*
* @param params * @param params
* @return * @return
*/ */
public void adjustBookedInfoParam(Map<String, Object> params,VehiclePageQueryVo vehiclePageQueryVo){ public void adjustBookedInfoParam(Map<String, Object> params, VehiclePageQueryVo vehiclePageQueryVo) {
//加入每月预定信息查询条件 //加入每月预定信息查询条件
List<String> bookedDates = Lists.newArrayList(); List<String> bookedDates = Lists.newArrayList();
if(StringUtils.isNotBlank(vehiclePageQueryVo.getBookedStartDate())&& if (StringUtils.isNotBlank(vehiclePageQueryVo.getBookedStartDate()) &&
StringUtils.isNotBlank(vehiclePageQueryVo.getBookedEndDate())) { StringUtils.isNotBlank(vehiclePageQueryVo.getBookedEndDate())) {
bookedDates = convertDatePeriod2List(vehiclePageQueryVo.getBookedStartDate(), bookedDates = convertDatePeriod2List(vehiclePageQueryVo.getBookedStartDate(),
vehiclePageQueryVo.getBookedEndDate()); vehiclePageQueryVo.getBookedEndDate());
...@@ -1091,7 +1111,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1091,7 +1111,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
params.remove("bookEndDate"); params.remove("bookEndDate");
List<String> notBookedDates = Lists.newArrayList(); List<String> notBookedDates = Lists.newArrayList();
if(StringUtils.isNotBlank(vehiclePageQueryVo.getNotBookedStartDate())&& if (StringUtils.isNotBlank(vehiclePageQueryVo.getNotBookedStartDate()) &&
StringUtils.isNotBlank(vehiclePageQueryVo.getNotBookedEndDate())) { StringUtils.isNotBlank(vehiclePageQueryVo.getNotBookedEndDate())) {
notBookedDates = convertDatePeriod2List(vehiclePageQueryVo.getNotBookedStartDate(), notBookedDates = convertDatePeriod2List(vehiclePageQueryVo.getNotBookedStartDate(),
vehiclePageQueryVo.getNotBookedEndDate()); vehiclePageQueryVo.getNotBookedEndDate());
...@@ -1100,68 +1120,71 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1100,68 +1120,71 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
params.remove("norBookedEndDate"); params.remove("norBookedEndDate");
//若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月) //若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月)
if(CollectionUtils.isEmpty(bookedDates) && CollectionUtils.isEmpty(notBookedDates)){ if (CollectionUtils.isEmpty(bookedDates) && CollectionUtils.isEmpty(notBookedDates)) {
return; return;
} }
//筛选出查询条件所在月份 //筛选出查询条件所在月份
Set<String> allYearMonth = new HashSet<>();//记录所有年月 Set<String> allYearMonth = new HashSet<>();//记录所有年月
Map<String,List<String>> yearMonthAndDate = new HashMap<>();//预定年月 - 预定日期列表 Map<String, List<String>> yearMonthAndDate = new HashMap<>();//预定年月 - 预定日期列表
classifyByYearMonth(bookedDates,yearMonthAndDate,allYearMonth); classifyByYearMonth(bookedDates, yearMonthAndDate, allYearMonth);
Map<String,List<String>> yearMonthAndDateNotBooked = new HashMap<>();//未预定年月 - 未预定日期列表 Map<String, List<String>> yearMonthAndDateNotBooked = new HashMap<>();//未预定年月 - 未预定日期列表
classifyByYearMonth(notBookedDates,yearMonthAndDateNotBooked,allYearMonth); classifyByYearMonth(notBookedDates, yearMonthAndDateNotBooked, allYearMonth);
if(allYearMonth.size()>0 && params.get("subordinateBranch") == null){ if (allYearMonth.size() > 0 && params.get("subordinateBranch") == null) {
throw new BaseException(" <subordinateBranch> must included in params while using <bookedInfo> param. "); throw new BaseException(" <subordinateBranch> must included in params while using <bookedInfo> param. ");
} }
if(allYearMonth.size()>MAX_MONTH_COUNT_BOOKED_INFO_QUERY){ if (allYearMonth.size() > MAX_MONTH_COUNT_BOOKED_INFO_QUERY) {
throw new BaseException(" only 3 month can be included <bookedInfo> param."); throw new BaseException(" only 3 month can be included <bookedInfo> param.");
} }
//加入预定信息查询条件 //加入预定信息查询条件
fillBookedDateSearchParam(params,yearMonthAndDate,yearMonthAndDateNotBooked); fillBookedDateSearchParam(params, yearMonthAndDate, yearMonthAndDateNotBooked);
} }
/** /**
* 按页查询 * 按页查询
*
* @param vehiclePageQueryVo * @param vehiclePageQueryVo
* @return * @return
* @throws Exception * @throws Exception
*/ */
public PageDataVO<ResultVehicleVo> getByPage(VehiclePageQueryVo vehiclePageQueryVo) throws Exception{ public PageDataVO<ResultVehicleVo> getByPage(VehiclePageQueryVo vehiclePageQueryVo) throws Exception {
Map<String, Object> params = PropertyUtils.describe(vehiclePageQueryVo); Map<String, Object> params = PropertyUtils.describe(vehiclePageQueryVo);
Integer pageSize = (Integer) params.get("limit"); Integer pageSize = (Integer) params.get("limit");
params.remove("pageSize"); params.remove("pageSize");
Integer pageNo = (Integer) params.get("page"); Integer pageNo = (Integer) params.get("page");
params.remove("pageNo"); params.remove("pageNo");
//处理预定日期相关参数 //处理预定日期相关参数
adjustBookedInfoParam(params,vehiclePageQueryVo); adjustBookedInfoParam(params, vehiclePageQueryVo);
params.get("yearMonthAndParam"); params.get("yearMonthAndParam");
if(vehiclePageQueryVo.getModelId() == null) { if (vehiclePageQueryVo.getModelId() == null) {
params.remove("modelId"); params.remove("modelId");
} }
PageHelper.startPage(pageNo,pageSize); PageHelper.startPage(pageNo, pageSize);
List<ResultVehicleVo> vehicles = mapper.getByPage(params); List<ResultVehicleVo> vehicles = mapper.getByPage(params);
PageInfo<ResultVehicleVo> vehiclePageInfo = new PageInfo<>(vehicles); PageInfo<ResultVehicleVo> vehiclePageInfo = new PageInfo<>(vehicles);
return PageDataVO.pageInfo(vehiclePageInfo); return PageDataVO.pageInfo(vehiclePageInfo);
} }
/** /**
* 按页查询(非所有数据,过滤分公司信息) * 按页查询(非所有数据,过滤分公司信息)
*
* @param vehiclePageQueryVo * @param vehiclePageQueryVo
* @return * @return
* @throws Exception * @throws Exception
*/ */
public PageDataVO<ResultVehicleVo> getByPageNotAllData(VehiclePageQueryVo vehiclePageQueryVo, List<Integer> companyList) throws Exception{ public PageDataVO<ResultVehicleVo> getByPageNotAllData(VehiclePageQueryVo vehiclePageQueryVo, List<Integer> companyList) throws Exception {
Map<String, Object> params = PropertyUtils.describe(vehiclePageQueryVo); Map<String, Object> params = PropertyUtils.describe(vehiclePageQueryVo);
Integer pageSize = (Integer) params.get("limit"); Integer pageSize = (Integer) params.get("limit");
params.remove("pageSize"); params.remove("pageSize");
Integer pageNo = (Integer) params.get("page"); Integer pageNo = (Integer) params.get("page");
params.remove("pageNo"); params.remove("pageNo");
//处理预定日期相关参数 //处理预定日期相关参数
adjustBookedInfoParam(params,vehiclePageQueryVo); adjustBookedInfoParam(params, vehiclePageQueryVo);
if (companyList != null && companyList.size() > 0) { if (companyList != null && companyList.size() > 0) {
params.put("companyList", companyList); params.put("companyList", companyList);
} else { } else {
params.put("companyList", Arrays.asList(-1)); params.put("companyList", Arrays.asList(-1));
} }
PageHelper.startPage(pageNo,pageSize); PageHelper.startPage(pageNo, pageSize);
List<ResultVehicleVo> vehicles = mapper.getByPageNotAllData(params); List<ResultVehicleVo> vehicles = mapper.getByPageNotAllData(params);
PageInfo<ResultVehicleVo> vehiclePageInfo = new PageInfo<>(vehicles); PageInfo<ResultVehicleVo> vehiclePageInfo = new PageInfo<>(vehicles);
return PageDataVO.pageInfo(vehiclePageInfo); return PageDataVO.pageInfo(vehiclePageInfo);
...@@ -1171,7 +1194,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1171,7 +1194,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
List<BranchCompany> zoneCompanys = branchCompanyBiz.dataCompany(dataZone); List<BranchCompany> zoneCompanys = branchCompanyBiz.dataCompany(dataZone);
//((VehicleBiz)AopContext.currentProxy()).dataCompany(dataZone); //((VehicleBiz)AopContext.currentProxy()).dataCompany(dataZone);
List<Integer> zoneCompanyIds = zoneCompanys.parallelStream().map(BranchCompany::getId).collect(Collectors.toList()); List<Integer> zoneCompanyIds = zoneCompanys.parallelStream().map(BranchCompany::getId).collect(Collectors.toList());
if(StringUtils.isNotBlank(dataCompany)) { if (StringUtils.isNotBlank(dataCompany)) {
List<Integer> dataCompanyIds = Arrays.asList(dataCompany.split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList()); List<Integer> dataCompanyIds = Arrays.asList(dataCompany.split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());
zoneCompanyIds.addAll(dataCompanyIds); zoneCompanyIds.addAll(dataCompanyIds);
} }
...@@ -1179,15 +1202,15 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1179,15 +1202,15 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
return zoneCompanyIds.parallelStream().distinct().collect(Collectors.toList()); return zoneCompanyIds.parallelStream().distinct().collect(Collectors.toList());
} }
public PageDataVO<UsableVehicleModelVO> searchUsableModel(UsableVeicleDTO dto){ public PageDataVO<UsableVehicleModelVO> searchUsableModel(UsableVeicleDTO dto) {
Map<String, Object> params = BeanUtil.beanToMap(dto); Map<String, Object> params = BeanUtil.beanToMap(dto);
if(StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) { if (StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) {
initBookSearchParam(dto, params); initBookSearchParam(dto, params);
} }
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params)); return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params));
} }
public PageDataVO<UsableVehicleModelVO> hotModel(HotVeicleDTO dto){ public PageDataVO<UsableVehicleModelVO> hotModel(HotVeicleDTO dto) {
dto.setHotSign(1); dto.setHotSign(1);
Map<String, Object> params = BeanUtil.beanToMap(dto); Map<String, Object> params = BeanUtil.beanToMap(dto);
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params)); return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params));
...@@ -1195,7 +1218,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1195,7 +1218,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
private void initBookSearchParam(UsableVeicleDTO dto, Map<String, Object> params) { private void initBookSearchParam(UsableVeicleDTO dto, Map<String, Object> params) {
List<String> notBookedDates = Lists.newArrayList(); List<String> notBookedDates = Lists.newArrayList();
if(StringUtils.isNotBlank(dto.getStartDate())&& if (StringUtils.isNotBlank(dto.getStartDate()) &&
StringUtils.isNotBlank(dto.getEndDate())) { StringUtils.isNotBlank(dto.getEndDate())) {
// notBookedDates = convertDatePeriod2List(dto.getStartDate(), // notBookedDates = convertDatePeriod2List(dto.getStartDate(),
// dto.getEndDate()); // dto.getEndDate());
...@@ -1204,27 +1227,27 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1204,27 +1227,27 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
} }
//若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月) //若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月)
if(CollectionUtils.isEmpty(notBookedDates)){ if (CollectionUtils.isEmpty(notBookedDates)) {
throw new BaseException(ResultCode.NOTEXIST_CODE); throw new BaseException(ResultCode.NOTEXIST_CODE);
} }
//筛选出查询条件所在月份 如 想预定 8月29 ~ 9月 4日 //筛选出查询条件所在月份 如 想预定 8月29 ~ 9月 4日
Set<String> allYearMonth = new HashSet<>();//记录所有年月 "2019-08","2019-09" Set<String> allYearMonth = new HashSet<>();//记录所有年月 "2019-08","2019-09"
Map<String,List<String>> yearMonthAndDate = new HashMap<>();//需比较已预定的年月 - 预定日期列表 为空(拒绝 预约记录时用到) Map<String, List<String>> yearMonthAndDate = new HashMap<>();//需比较已预定的年月 - 预定日期列表 为空(拒绝 预约记录时用到)
Map<String,List<String>> yearMonthAndDateNotBooked = new HashMap<>();//需比较未预定的年月 - 未预定日期列表 "2019-08-29"...."2019-09-04", Map<String, List<String>> yearMonthAndDateNotBooked = new HashMap<>();//需比较未预定的年月 - 未预定日期列表 "2019-08-29"...."2019-09-04",
classifyByYearMonth(notBookedDates,yearMonthAndDateNotBooked,allYearMonth); classifyByYearMonth(notBookedDates, yearMonthAndDateNotBooked, allYearMonth);
if(allYearMonth.size()>MAX_MONTH_COUNT_BOOKED_INFO_QUERY){ if (allYearMonth.size() > MAX_MONTH_COUNT_BOOKED_INFO_QUERY) {
throw new BaseException(" only 3 month can be included <bookedInfo> param."); throw new BaseException(" only 3 month can be included <bookedInfo> param.");
} }
//加入预定信息查询条件 //加入预定信息查询条件
fillBookedDateSearchParam(params,yearMonthAndDate,yearMonthAndDateNotBooked); fillBookedDateSearchParam(params, yearMonthAndDate, yearMonthAndDateNotBooked);
} }
public PageDataVO<Vehicle> searchUsableVehicle(RentVehicleBookDTO dto){ public PageDataVO<Vehicle> searchUsableVehicle(RentVehicleBookDTO dto) {
Map<String, Object> params = BeanUtil.beanToMap(dto); Map<String, Object> params = BeanUtil.beanToMap(dto);
List<String> notBookedDates = Lists.newArrayList(); List<String> notBookedDates = Lists.newArrayList();
if(StringUtils.isNotBlank(dto.getBookEndDate())&& if (StringUtils.isNotBlank(dto.getBookEndDate()) &&
StringUtils.isNotBlank(dto.getBookEndDate())) { StringUtils.isNotBlank(dto.getBookEndDate())) {
// notBookedDates = convertDatePeriod2List(dto.getBookStartDate(), // notBookedDates = convertDatePeriod2List(dto.getBookStartDate(),
// dto.getBookEndDate()); // dto.getBookEndDate());
...@@ -1233,19 +1256,19 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1233,19 +1256,19 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
} }
//若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月) //若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月)
if(CollectionUtils.isEmpty(notBookedDates)){ if (CollectionUtils.isEmpty(notBookedDates)) {
//return; //return;
} }
//筛选出查询条件所在月份 //筛选出查询条件所在月份
Set<String> allYearMonth = new HashSet<>();//记录所有年月 Set<String> allYearMonth = new HashSet<>();//记录所有年月
Map<String,List<String>> yearMonthAndDate = new HashMap<>();//预定年月 - 预定日期列表 Map<String, List<String>> yearMonthAndDate = new HashMap<>();//预定年月 - 预定日期列表
Map<String,List<String>> yearMonthAndDateNotBooked = new HashMap<>();//未预定年月 - 未预定日期列表 Map<String, List<String>> yearMonthAndDateNotBooked = new HashMap<>();//未预定年月 - 未预定日期列表
classifyByYearMonth(notBookedDates,yearMonthAndDateNotBooked,allYearMonth); classifyByYearMonth(notBookedDates, yearMonthAndDateNotBooked, allYearMonth);
if(allYearMonth.size()>MAX_MONTH_COUNT_BOOKED_INFO_QUERY){ if (allYearMonth.size() > MAX_MONTH_COUNT_BOOKED_INFO_QUERY) {
throw new BaseException(" only 3 month can be included <bookedInfo> param."); throw new BaseException(" only 3 month can be included <bookedInfo> param.");
} }
//加入预定信息查询条件 //加入预定信息查询条件
fillBookedDateSearchParam(params,yearMonthAndDate,yearMonthAndDateNotBooked); fillBookedDateSearchParam(params, yearMonthAndDate, yearMonthAndDateNotBooked);
PageHelper.startPage(dto.getPage(), dto.getLimit()); PageHelper.startPage(dto.getPage(), dto.getLimit());
List<Vehicle> lists = mapper.searchUsableVehicle(params); List<Vehicle> lists = mapper.searchUsableVehicle(params);
...@@ -1255,12 +1278,13 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1255,12 +1278,13 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 保存 * 保存
*
* @param vehicle * @param vehicle
* @return * @return
*/ */
@Transactional @Transactional
public ObjectRestResponse save(Vehicle vehicle){ public ObjectRestResponse save(Vehicle vehicle) {
if (vehicle==null) { if (vehicle == null) {
ObjectRestResponse.paramIsEmpty(); ObjectRestResponse.paramIsEmpty();
} }
...@@ -1268,7 +1292,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1268,7 +1292,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
if (StringUtils.isBlank(id)) { if (StringUtils.isBlank(id)) {
insertSelective(vehicle); insertSelective(vehicle);
insertSelective(vehicle); insertSelective(vehicle);
}else { } else {
updateSelectiveById(vehicle); updateSelectiveById(vehicle);
} }
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
...@@ -1276,17 +1300,18 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1276,17 +1300,18 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 查找 * 查找
*
* @param vehicleVo * @param vehicleVo
* @param page * @param page
* @param limit * @param limit
* @return * @return
*/ */
public ObjectRestResponse findListByVehicle(VehicleVo vehicleVo, Integer page, Integer limit){ public ObjectRestResponse findListByVehicle(VehicleVo vehicleVo, Integer page, Integer limit) {
Vehicle vehicle = new Vehicle(); Vehicle vehicle = new Vehicle();
// vehicleVo复制一份到vehicle // vehicleVo复制一份到vehicle
try { try {
BeanUtilsBean.getInstance().copyProperties(vehicle,vehicleVo); BeanUtilsBean.getInstance().copyProperties(vehicle, vehicleVo);
} catch (IllegalAccessException e) { } catch (IllegalAccessException e) {
e.printStackTrace(); e.printStackTrace();
} catch (InvocationTargetException e) { } catch (InvocationTargetException e) {
...@@ -1297,33 +1322,33 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1297,33 +1322,33 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
WeekendSqls<Vehicle> sqls = WeekendSqls.<Vehicle>custom(); WeekendSqls<Vehicle> sqls = WeekendSqls.<Vehicle>custom();
//车辆状态 //车辆状态
if (vehicle.getStatus()!=null||vehicle.getStatus()!=0){ if (vehicle.getStatus() != null || vehicle.getStatus() != 0) {
sqls.andEqualTo(Vehicle::getStatus,vehicle.getStatus()); sqls.andEqualTo(Vehicle::getStatus, vehicle.getStatus());
} }
//车牌号 //车牌号
if (StringUtils.isBlank(vehicle.getNumberPlate())){ if (StringUtils.isBlank(vehicle.getNumberPlate())) {
sqls.andEqualTo(Vehicle::getNumberPlate,vehicle.getNumberPlate()); sqls.andEqualTo(Vehicle::getNumberPlate, vehicle.getNumberPlate());
Function<Vehicle, Integer> getStatus = Vehicle::getStatus; Function<Vehicle, Integer> getStatus = Vehicle::getStatus;
} }
//公司 //公司
if (vehicle.getSubordinateBranch()==null||vehicle.getSubordinateBranch()==0){ if (vehicle.getSubordinateBranch() == null || vehicle.getSubordinateBranch() == 0) {
sqls.andEqualTo(Vehicle::getSubordinateBranch,vehicle.getSubordinateBranch()); sqls.andEqualTo(Vehicle::getSubordinateBranch, vehicle.getSubordinateBranch());
} }
//大区 //大区
if (vehicleVo.getZoneId()==null||vehicleVo.getZoneId()==0){ if (vehicleVo.getZoneId() == null || vehicleVo.getZoneId() == 0) {
//获取大区内的公司id //获取大区内的公司id
Example example= Example.builder(BranchCompany.class).where(WeekendSqls.<BranchCompany>custom() Example example = Example.builder(BranchCompany.class).where(WeekendSqls.<BranchCompany>custom()
.andEqualTo(BranchCompany::getZoneId,vehicleVo.getZoneId())).build(); .andEqualTo(BranchCompany::getZoneId, vehicleVo.getZoneId())).build();
List<BranchCompany> branchCompanies = branchCompanyBiz.selectByExample(example); List<BranchCompany> branchCompanies = branchCompanyBiz.selectByExample(example);
ArrayList<Integer> bIds = new ArrayList<>(); ArrayList<Integer> bIds = new ArrayList<>();
for (BranchCompany branchCompany : branchCompanies) { for (BranchCompany branchCompany : branchCompanies) {
bIds.add(branchCompany.getId()); bIds.add(branchCompany.getId());
} }
sqls.andIn(Vehicle::getSubordinateBranch,bIds); sqls.andIn(Vehicle::getSubordinateBranch, bIds);
} }
sqls.andEqualTo(Vehicle::getStatus,0); sqls.andEqualTo(Vehicle::getStatus, 0);
Example exa = Example.builder(Vehicle.class).where(sqls).build(); Example exa = Example.builder(Vehicle.class).where(sqls).build();
PageDataVO<Object> objectPageDataVO = PageDataVO.pageInfo(page, limit, () -> selectByExample(exa)); PageDataVO<Object> objectPageDataVO = PageDataVO.pageInfo(page, limit, () -> selectByExample(exa));
return ObjectRestResponse.succ(objectPageDataVO); return ObjectRestResponse.succ(objectPageDataVO);
...@@ -1331,16 +1356,17 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1331,16 +1356,17 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/** /**
* 查询条 * 查询条
*
* @param id * @param id
* @return * @return
*/ */
public ObjectRestResponse getOneById(Integer id){ public ObjectRestResponse getOneById(Integer id) {
return ObjectRestResponse.succ(selectByExample( return ObjectRestResponse.succ(selectByExample(
Example.builder(Vehicle.class) Example.builder(Vehicle.class)
.where(WeekendSqls.<Vehicle>custom() .where(WeekendSqls.<Vehicle>custom()
.andEqualTo(Vehicle::getId,id) .andEqualTo(Vehicle::getId, id)
.andEqualTo(Vehicle::getStatus,0)) .andEqualTo(Vehicle::getStatus, 0))
.build())); .build()));
} }
...@@ -1356,21 +1382,21 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1356,21 +1382,21 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
} }
public ObjectRestResponse<PageDataVO<VehicleAndModelInfoVo>> getVehicle(VehiclePlanDto vehiclePlanDto) { public ObjectRestResponse<PageDataVO<VehicleAndModelInfoVo>> getVehicle(VehiclePlanDto vehiclePlanDto) {
Integer page = vehiclePlanDto.getPage() == null ? 1 :vehiclePlanDto.getPage(); Integer page = vehiclePlanDto.getPage() == null ? 1 : vehiclePlanDto.getPage();
Integer limit = vehiclePlanDto.getLimit() == null ? 10 : vehiclePlanDto.getLimit(); Integer limit = vehiclePlanDto.getLimit() == null ? 10 : vehiclePlanDto.getLimit();
vehiclePlanDto.setPage(page); vehiclePlanDto.setPage(page);
vehiclePlanDto.setLimit(limit); vehiclePlanDto.setLimit(limit);
UserDTO userDTO = getAdminUserInfo(); UserDTO userDTO = getAdminUserInfo();
if(userDTO == null) { if (userDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, "token失效"); return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, "token失效");
} }
List<Integer> companyList = Lists.newArrayList(); List<Integer> companyList = Lists.newArrayList();
List<BranchCompany> branchCompany = branchCompanyBiz.getListByUser(userDTO); List<BranchCompany> branchCompany = branchCompanyBiz.getListByUser(userDTO);
companyList = branchCompany.stream().map(BranchCompany::getId).collect(Collectors.toList()); companyList = branchCompany.stream().map(BranchCompany::getId).collect(Collectors.toList());
if(vehiclePlanDto.getParkBranchCompanyId() != null) { if (vehiclePlanDto.getParkBranchCompanyId() != null) {
if(companyList.size() > 0) { if (companyList.size() > 0) {
if(companyList.contains(vehiclePlanDto.getParkBranchCompanyId())) { if (companyList.contains(vehiclePlanDto.getParkBranchCompanyId())) {
companyList.clear(); companyList.clear();
companyList.add(vehiclePlanDto.getParkBranchCompanyId()); companyList.add(vehiclePlanDto.getParkBranchCompanyId());
} else { } else {
...@@ -1388,8 +1414,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1388,8 +1414,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
} }
//删除车辆信息 //删除车辆信息
public RestResponse delVehicleById(String id){ public RestResponse delVehicleById(String id) {
Vehicle vehicle=new Vehicle(); Vehicle vehicle = new Vehicle();
vehicle.setId(id); vehicle.setId(id);
vehicle.setIsDel(1); vehicle.setIsDel(1);
updateSelectiveById(vehicle); updateSelectiveById(vehicle);
...@@ -1399,16 +1425,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1399,16 +1425,16 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
public List<String> getHourList(String result) { public List<String> getHourList(String result) {
StringBuffer stringBuffer = new StringBuffer(); StringBuffer stringBuffer = new StringBuffer();
if(result.length() < 24) {//如果不足24位补0 if (result.length() < 24) {//如果不足24位补0
for(int i = 0; i < 24 - result.length(); i++) { for (int i = 0; i < 24 - result.length(); i++) {
stringBuffer.append("0"); stringBuffer.append("0");
} }
log.info(stringBuffer.toString()); log.info(stringBuffer.toString());
} }
stringBuffer.append(result); stringBuffer.append(result);
List<String> list = new ArrayList<>(24); List<String> list = new ArrayList<>(24);
for(int i = 0 ; i < stringBuffer.toString().length(); i++) { for (int i = 0; i < stringBuffer.toString().length(); i++) {
if("1".equals(stringBuffer.toString().charAt(i)+"")) { if ("1".equals(stringBuffer.toString().charAt(i) + "")) {
list.add(i, "1"); list.add(i, "1");
} else { } else {
list.add(i, "0"); list.add(i, "0");
......
...@@ -45,15 +45,15 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -45,15 +45,15 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startDate = null; Date startDate = null;
Date endDate = null; Date endDate = null;
try{ try {
startDate = simpleDateFormat.parse(bookStartDate); startDate = simpleDateFormat.parse(bookStartDate);
endDate = simpleDateFormat.parse(bookEndDate); endDate = simpleDateFormat.parse(bookEndDate);
}catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
//判定时间是否合法 //判定时间是否合法
if(!Boolean.TRUE.equals(notCheckTimeLegal)) { if (!Boolean.TRUE.equals(notCheckTimeLegal)) {
if (bookStartDate.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER)) < 0) { if (bookStartDate.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER)) < 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY); throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
} }
...@@ -78,17 +78,17 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -78,17 +78,17 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
} }
DateTime startDay = DateTime.parse(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), DATE_TIME_FORMATTER); DateTime startDay = DateTime.parse(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), DATE_TIME_FORMATTER);
DateTime endDay = DateTime.parse(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), DATE_TIME_FORMATTER); DateTime endDay = DateTime.parse(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), DATE_TIME_FORMATTER);
if(startPredictableHour == 0) { //如果是0点就直接预订全天 if (startPredictableHour == 0) { //如果是0点就直接预订全天
startPredictableHour = 16777215; startPredictableHour = 16777215;
} }
if(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER).equals(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER))) {//同一天预定 if (DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER).equals(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER))) {//同一天预定
//如果开始时间是0点开始 //如果开始时间是0点开始
predictableHours.put(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour & endPredictableHour); predictableHours.put(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour & endPredictableHour);
} else { //非同一天开始 } else { //非同一天开始
predictableHours.put(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour); predictableHours.put(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour);
predictableHours.put(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), endPredictableHour); predictableHours.put(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), endPredictableHour);
} }
if(endDay.getMillis() - startDay.getMillis() > 24 * 3600 * 1000 ){ // if (endDay.getMillis() - startDay.getMillis() > 24 * 3600 * 1000) { //
for (DateTime curDate = startDay.plusDays(1); curDate.compareTo(endDay) < 0; curDate = curDate.plusDays(1)) { for (DateTime curDate = startDay.plusDays(1); curDate.compareTo(endDay) < 0; curDate = curDate.plusDays(1)) {
String curDateStr = curDate.toString(DATE_TIME_FORMATTER); String curDateStr = curDate.toString(DATE_TIME_FORMATTER);
//全天预定 //全天预定
...@@ -115,14 +115,14 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -115,14 +115,14 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
@Transactional @Transactional
@CacheClear(key = "vehicle.hourInfo") @CacheClear(key = "vehicle.hourInfo")
public ObjectRestResponse save(VehicleBookHourInfoDto vehicleBookHourInfoDto) { public ObjectRestResponse save(VehicleBookHourInfoDto vehicleBookHourInfoDto) {
if(vehicleBookHourInfoDto == null) { if (vehicleBookHourInfoDto == null) {
return ObjectRestResponse.paramIsEmpty(); return ObjectRestResponse.paramIsEmpty();
} }
List<VehicleBookHourInfo> vehicleBookHourInfos = mapper.selectByVehicleAndDate(vehicleBookHourInfoDto); List<VehicleBookHourInfo> vehicleBookHourInfos = mapper.selectByVehicleAndDate(vehicleBookHourInfoDto);
//有数据直接更新 //有数据直接更新
if(vehicleBookHourInfos.size() >=1) { if (vehicleBookHourInfos.size() >= 1) {
for(VehicleBookHourInfo vehicleBookHourInfo : vehicleBookHourInfos) { for (VehicleBookHourInfo vehicleBookHourInfo : vehicleBookHourInfos) {
if(vehicleBookHourInfo.getBookedHour().equals(vehicleBookHourInfoDto.getBookedHour())) { if (vehicleBookHourInfo.getBookedHour().equals(vehicleBookHourInfoDto.getBookedHour())) {
return ObjectRestResponse.createFailedResult(ResCode.VEHICLE_IS_BOOKED_TODAY.getCode(), ResCode.VEHICLE_IS_BOOKED_TODAY.getDesc()); return ObjectRestResponse.createFailedResult(ResCode.VEHICLE_IS_BOOKED_TODAY.getCode(), ResCode.VEHICLE_IS_BOOKED_TODAY.getDesc());
} else { } else {
vehicleBookHourInfo.setBookedHour(vehicleBookHourInfo.getBookedHour() | vehicleBookHourInfoDto.getBookedHour()); vehicleBookHourInfo.setBookedHour(vehicleBookHourInfo.getBookedHour() | vehicleBookHourInfoDto.getBookedHour());
...@@ -138,6 +138,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -138,6 +138,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
/** /**
* 删除预定车辆小时记录信息 * 删除预定车辆小时记录信息
*
* @param vehicleId 车辆Id * @param vehicleId 车辆Id
* @param dateList 日期列表 * @param dateList 日期列表
* @return * @return
...@@ -145,7 +146,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -145,7 +146,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
@Transactional @Transactional
@CacheClear(key = "vehicle.hourInfo") @CacheClear(key = "vehicle.hourInfo")
public ObjectRestResponse delete(String vehicleId, List<String> dateList) { public ObjectRestResponse delete(String vehicleId, List<String> dateList) {
if(StringUtils.isBlank(vehicleId) || dateList.size() <= 0) { if (StringUtils.isBlank(vehicleId) || dateList.size() <= 0) {
return ObjectRestResponse.paramIsEmpty(); return ObjectRestResponse.paramIsEmpty();
} }
Map<String, Object> param = Maps.newHashMap(); Map<String, Object> param = Maps.newHashMap();
...@@ -159,12 +160,12 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -159,12 +160,12 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
public ObjectRestResponse checkBookHourInfo() { public ObjectRestResponse checkBookHourInfo() {
List<VehicleBookHourInfoDto> vehicleBookHourInfos = new ArrayList<>(); List<VehicleBookHourInfoDto> vehicleBookHourInfos = new ArrayList<>();
List<VehicleBookRecord> list = vehicleBookRecordBiz.selectListAll(); List<VehicleBookRecord> list = vehicleBookRecordBiz.selectListAll();
if(CollectionUtils.isNotEmpty(list)) { if (CollectionUtils.isNotEmpty(list)) {
for(VehicleBookRecord vehicleBookRecord : list) { for (VehicleBookRecord vehicleBookRecord : list) {
VehicleDepartureLogVo vehicleDepartureLog = vehicleDepartureService.getByRecordId(vehicleBookRecord.getId()); VehicleDepartureLogVo vehicleDepartureLog = vehicleDepartureService.getByRecordId(vehicleBookRecord.getId());
if((vehicleDepartureLog == null || vehicleDepartureLog.getState() != 1) && (vehicleBookRecord.getStatus() == 2 || vehicleBookRecord.getStatus() == 1)) { //未出车或未还车 if ((vehicleDepartureLog == null || vehicleDepartureLog.getState() != 1) && (vehicleBookRecord.getStatus() == 2 || vehicleBookRecord.getStatus() == 1)) { //未出车或未还车
Map<String, Integer> map = getPredictableHours(new DateTime(vehicleBookRecord.getBookStartDate()).toString(DEFAULT_DATE_TIME_FORMATTER), new DateTime(vehicleBookRecord.getBookEndDate()).toString(DEFAULT_DATE_TIME_FORMATTER), Boolean.TRUE); Map<String, Integer> map = getPredictableHours(new DateTime(vehicleBookRecord.getBookStartDate()).toString(DEFAULT_DATE_TIME_FORMATTER), new DateTime(vehicleBookRecord.getBookEndDate()).toString(DEFAULT_DATE_TIME_FORMATTER), Boolean.TRUE);
for(Map.Entry<String, Integer> entry : map.entrySet()) { for (Map.Entry<String, Integer> entry : map.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto(); VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setVehicleId(vehicleBookRecord.getVehicleId()); vehicleBookHourInfoDto.setVehicleId(vehicleBookRecord.getVehicleId());
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey()); vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
...@@ -204,10 +205,10 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -204,10 +205,10 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
} }
public static void main(String[] args) throws Exception{ public static void main(String[] args) throws Exception {
VehicleBookHourInfoBiz vehicleBookHourInfoBiz = new VehicleBookHourInfoBiz(); VehicleBookHourInfoBiz vehicleBookHourInfoBiz = new VehicleBookHourInfoBiz();
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours("2019-08-26 10:00:00", "2019-08-27 10:00:00", Boolean.TRUE); Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours("2019-08-26 10:00:00", "2019-08-27 10:00:00", Boolean.TRUE);
for(Map.Entry<String, Integer> entry : map.entrySet()) { for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey()); System.out.println(entry.getKey());
System.out.println(entry.getValue()); System.out.println(entry.getValue());
} }
......
...@@ -29,7 +29,7 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo ...@@ -29,7 +29,7 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo
public static final DateTimeFormatter YEARMONTH_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM"); public static final DateTimeFormatter YEARMONTH_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM");
public static final Integer DEL_BATCH_SIZE = 1000; public static final Integer DEL_BATCH_SIZE = 1000;
public static final Integer COPY_BATCH_SIZE = 100; public static final Integer COPY_BATCH_SIZE = 100;
public static final int MONTH_INTERVAL=2; public static final int MONTH_INTERVAL = 2;
@Autowired @Autowired
private RedisTemplate customRedisTemplate; private RedisTemplate customRedisTemplate;
...@@ -40,14 +40,14 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo ...@@ -40,14 +40,14 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo
*/ */
@Scheduled(cron = "0 0 0 1 * ?")//每月1号0点触发 @Scheduled(cron = "0 0 0 1 * ?")//每月1号0点触发
@Transactional @Transactional
public void transfer2HistoryTb(){ public void transfer2HistoryTb() {
//获取表格名称 //获取表格名称
String tbName = getTbNameNow(); String tbName = getTbNameNow();
DateTime now = DateTime.now();//当前获取的时间为标准 DateTime now = DateTime.now();//当前获取的时间为标准
log.info("开始预定信息迁移至历史表的定时任务。"); log.info("开始预定信息迁移至历史表的定时任务。");
//每月初将上月数据复制到历史表 //每月初将上月数据复制到历史表
Boolean needRun= copyDataLastMoth(now,tbName); Boolean needRun = copyDataLastMoth(now, tbName);
if(needRun) { if (needRun) {
//每月初将上上月数据从当前信息表中删除 //每月初将上上月数据从当前信息表中删除
delDataTheMonthBeforeLast(now, tbName); delDataTheMonthBeforeLast(now, tbName);
} }
...@@ -57,14 +57,14 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo ...@@ -57,14 +57,14 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo
* 获取上月数据,并复制到历史表 * 获取上月数据,并复制到历史表
*/ */
@Transactional @Transactional
public Boolean copyDataLastMoth(DateTime now,String tbName){ public Boolean copyDataLastMoth(DateTime now, String tbName) {
String lastMonthStr = now.plusMonths(-1).toString(YEARMONTH_DATE_TIME_FORMATTER); String lastMonthStr = now.plusMonths(-1).toString(YEARMONTH_DATE_TIME_FORMATTER);
String redisKey = RedisKey.DEL_BOOK_INFO_LOCK_PREFIX +lastMonthStr; String redisKey = RedisKey.DEL_BOOK_INFO_LOCK_PREFIX + lastMonthStr;
Boolean hasSuc = customRedisTemplate.opsForValue().setIfAbsent(redisKey,String.valueOf(DateTime.now().getMillis())); Boolean hasSuc = customRedisTemplate.opsForValue().setIfAbsent(redisKey, String.valueOf(DateTime.now().getMillis()));
if(hasSuc){//设置1天后过期 if (hasSuc) {//设置1天后过期
customRedisTemplate.expire(redisKey,1, TimeUnit.DAYS); customRedisTemplate.expire(redisKey, 1, TimeUnit.DAYS);
}else{ } else {
log.info("[预定信息迁移]乐观锁获取失败,该线程不执行任务。"); log.info("[预定信息迁移]乐观锁获取失败,该线程不执行任务。");
return Boolean.FALSE; return Boolean.FALSE;
} }
...@@ -78,9 +78,9 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo ...@@ -78,9 +78,9 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo
params.put("pageStart", (curPageNo - 1) * COPY_BATCH_SIZE); params.put("pageStart", (curPageNo - 1) * COPY_BATCH_SIZE);
params.put("pageSize", COPY_BATCH_SIZE); params.put("pageSize", COPY_BATCH_SIZE);
vehicleBookInfoList = mapper.getByPage4YearMonth(params); vehicleBookInfoList = mapper.getByPage4YearMonth(params);
if(CollectionUtils.isNotEmpty(vehicleBookInfoList)){ if (CollectionUtils.isNotEmpty(vehicleBookInfoList)) {
//插入数据到历史表 //插入数据到历史表
for(VehicleBookInfo vehicleBookInfo : vehicleBookInfoList){ for (VehicleBookInfo vehicleBookInfo : vehicleBookInfoList) {
Map<String, Object> insertHisParams = Maps.newHashMap(); Map<String, Object> insertHisParams = Maps.newHashMap();
insertHisParams.put("tbName", tbName); insertHisParams.put("tbName", tbName);
insertHisParams.put("id", vehicleBookInfo.getId()); insertHisParams.put("id", vehicleBookInfo.getId());
...@@ -91,17 +91,18 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo ...@@ -91,17 +91,18 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo
} }
} }
curPageNo++; curPageNo++;
log.info("【复制上月预定信息至历史表中】,当前复制页【"+curPageNo+"】,页大小【"+COPY_BATCH_SIZE+"】"); log.info("【复制上月预定信息至历史表中】,当前复制页【" + curPageNo + "】,页大小【" + COPY_BATCH_SIZE + "】");
}while(CollectionUtils.isNotEmpty(vehicleBookInfoList)); } while (CollectionUtils.isNotEmpty(vehicleBookInfoList));
log.info("复制上月预定信息至历史表中完成,总页数【"+(curPageNo-1)+"】"); log.info("复制上月预定信息至历史表中完成,总页数【" + (curPageNo - 1) + "】");
; return Boolean.TRUE; ;
return Boolean.TRUE;
} }
/** /**
* 删除上上月数据 * 删除上上月数据
*/ */
@Transactional @Transactional
public void delDataTheMonthBeforeLast(DateTime now,String tbName){ public void delDataTheMonthBeforeLast(DateTime now, String tbName) {
String theMonthBeforeLastStr = now.plusMonths(-2).toString(YEARMONTH_DATE_TIME_FORMATTER); String theMonthBeforeLastStr = now.plusMonths(-2).toString(YEARMONTH_DATE_TIME_FORMATTER);
Integer effected = 0; Integer effected = 0;
Integer total = 0; Integer total = 0;
...@@ -110,21 +111,21 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo ...@@ -110,21 +111,21 @@ public class VehicleBookInfoBiz extends BaseBiz<VehicleBookInfoMapper, VehicleBo
params.put("batchSize", DEL_BATCH_SIZE); params.put("batchSize", DEL_BATCH_SIZE);
do { do {
effected = mapper.del4YearMoth(params); effected = mapper.del4YearMoth(params);
total+=effected; total += effected;
log.info("开始删除预定信息数据,删除总数【"+total+"】"); log.info("开始删除预定信息数据,删除总数【" + total + "】");
}while(effected!=0); } while (effected != 0);
log.info("删除预定信息数据完成"); log.info("删除预定信息数据完成");
} }
private String getTbNameNow(){ private String getTbNameNow() {
return TB_NAME_PREFIX+ DateTime.now().toString(YEAR_DATE_TIME_FORMATTER); return TB_NAME_PREFIX + DateTime.now().toString(YEAR_DATE_TIME_FORMATTER);
} }
/** /**
* 创建当年相关表格 * 创建当年相关表格
*/ */
private void createTbIfNotExists(String tbName){ private void createTbIfNotExists(String tbName) {
mapper.createTbIfNotExists(tbName); mapper.createTbIfNotExists(tbName);
} }
......
...@@ -201,7 +201,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -201,7 +201,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
PageDataVO<VehicleBookRecordVo> vehicleBookRecordVoPageDataVO = PageDataVO.pageInfo(vehicleBookRecordVoPageInfo); PageDataVO<VehicleBookRecordVo> vehicleBookRecordVoPageDataVO = PageDataVO.pageInfo(vehicleBookRecordVoPageInfo);
vehicleBookRecordVoPageDataVO.setPageNum(pageNo); vehicleBookRecordVoPageDataVO.setPageNum(pageNo);
vehicleBookRecordVoPageDataVO.setPageSize(pageSize); vehicleBookRecordVoPageDataVO.setPageSize(pageSize);
vehicleBookRecordVoPageDataVO.setTotalCount((long)vehicleBookRecordVoPageInfo.getList().size()); vehicleBookRecordVoPageDataVO.setTotalCount((long) vehicleBookRecordVoPageInfo.getList().size());
vehicleBookRecordVoPageDataVO.setTotalPage((vehicleBookRecordVoPageInfo.getList().size() + pageSize - 1) / pageSize); vehicleBookRecordVoPageDataVO.setTotalPage((vehicleBookRecordVoPageInfo.getList().size() + pageSize - 1) / pageSize);
vehicleBookRecordVoPageDataVO.setData(getData(vehicleBookRecordVoPageInfo.getList(), pageNo, pageSize)); vehicleBookRecordVoPageDataVO.setData(getData(vehicleBookRecordVoPageInfo.getList(), pageNo, pageSize));
return RestResponse.suc(vehicleBookRecordVoPageDataVO); return RestResponse.suc(vehicleBookRecordVoPageDataVO);
...@@ -212,7 +212,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -212,7 +212,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
} }
public void removeStatus2(List<VehicleBookRecordVo> list) { public void removeStatus2(List<VehicleBookRecordVo> list) {
if(list != null && list.size() > 0) { if (list != null && list.size() > 0) {
Iterator<VehicleBookRecordVo> iterator = list.iterator(); Iterator<VehicleBookRecordVo> iterator = list.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
if (iterator.next().getVehicleDepartureLogVo() != null) { if (iterator.next().getVehicleDepartureLogVo() != null) {
...@@ -360,29 +360,30 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -360,29 +360,30 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
/** /**
* 检验数据库预定记录日期是否和时间,日期表中的二进制数据一致 * 检验数据库预定记录日期是否和时间,日期表中的二进制数据一致
*
* @return * @return
*/ */
public ObjectRestResponse checkDateInvalide(){ public ObjectRestResponse checkDateInvalide() {
List<VehicleBookRecord> list = mapper.selectAll(); List<VehicleBookRecord> list = mapper.selectAll();
List<VehicleBookRecord> unRightList = new ArrayList<>(); List<VehicleBookRecord> unRightList = new ArrayList<>();
if(list != null && list.size() > 0) { if (list != null && list.size() > 0) {
for(VehicleBookRecord vehicleBookRecord : list) { for (VehicleBookRecord vehicleBookRecord : list) {
log.info("vehicleBookRecord = {}", vehicleBookRecord); log.info("vehicleBookRecord = {}", vehicleBookRecord);
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(DateUtil.dateToStr(vehicleBookRecord.getBookStartDate(), "yyyy-MM-dd HH:mm:ss"), DateUtil.dateToStr(vehicleBookRecord.getBookStartDate(), "yyyy-MM-dd HH:mm:ss"), Boolean.TRUE); Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(DateUtil.dateToStr(vehicleBookRecord.getBookStartDate(), "yyyy-MM-dd HH:mm:ss"), DateUtil.dateToStr(vehicleBookRecord.getBookStartDate(), "yyyy-MM-dd HH:mm:ss"), Boolean.TRUE);
log.info("转换为时间二进制:map = {}", map); log.info("转换为时间二进制:map = {}", map);
//检验数据有效性 //检验数据有效性
if(vehicleBookRecord.getStatus() == 2) { if (vehicleBookRecord.getStatus() == 2) {
VehicleDepartureLogVo vehicleDepartureLog = vehicleDepartureService.getByRecordId(vehicleBookRecord.getId()); VehicleDepartureLogVo vehicleDepartureLog = vehicleDepartureService.getByRecordId(vehicleBookRecord.getId());
if(vehicleDepartureLog == null || vehicleDepartureLog.getState() != 1) { //未出车或未还车 if (vehicleDepartureLog == null || vehicleDepartureLog.getState() != 1) { //未出车或未还车
for(Map.Entry<String, Integer> entry : map.entrySet()) { for (Map.Entry<String, Integer> entry : map.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto(); VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setVehicleId(vehicleBookRecord.getVehicleId()); vehicleBookHourInfoDto.setVehicleId(vehicleBookRecord.getVehicleId());
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey()); vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto); List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto);
log.info("预定时间信息:vehicleBookHourInfos = {}", vehicleBookHourInfos); log.info("预定时间信息:vehicleBookHourInfos = {}", vehicleBookHourInfos);
if(vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) { if (vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) {
//检验数据是否存在 //检验数据是否存在
if((vehicleBookHourInfos.get(0).getBookedHour() & entry.getValue()) == entry.getValue()) { if ((vehicleBookHourInfos.get(0).getBookedHour() & entry.getValue()) == entry.getValue()) {
log.info("时间正确,已经存在"); log.info("时间正确,已经存在");
} else { } else {
log.info("时间不正确"); log.info("时间不正确");
......
...@@ -86,7 +86,7 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper, ...@@ -86,7 +86,7 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
} else { } else {
vehicleDepartureLog.setUpdateTime(new Date()); vehicleDepartureLog.setUpdateTime(new Date());
VehicleDepartureLog oldValue = mapper.selectByPrimaryKey(vehicleDepartureLog); VehicleDepartureLog oldValue = mapper.selectByPrimaryKey(vehicleDepartureLog);
if(oldValue != null) { if (oldValue != null) {
log.info("更新出行记录: vehicleDepartureLog = {}", oldValue); log.info("更新出行记录: vehicleDepartureLog = {}", oldValue);
BeanUtil.copyProperties(vehicleDepartureLog, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true)); BeanUtil.copyProperties(vehicleDepartureLog, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
oldValue.setUpdateTime(new Date()); oldValue.setUpdateTime(new Date());
...@@ -104,7 +104,6 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper, ...@@ -104,7 +104,6 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
} }
public ObjectRestResponse findOne(Integer vid) throws Exception { public ObjectRestResponse findOne(Integer vid) throws Exception {
Example exm = Example.builder(VehicleDepartureLog.class) Example exm = Example.builder(VehicleDepartureLog.class)
.where(WeekendSqls.<VehicleDepartureLog>custom() .where(WeekendSqls.<VehicleDepartureLog>custom()
...@@ -116,7 +115,7 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper, ...@@ -116,7 +115,7 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
List<VehicleDepartureLog> vehicleDepartureLogs = mapper.selectByExample(exm); List<VehicleDepartureLog> vehicleDepartureLogs = mapper.selectByExample(exm);
if (vehicleDepartureLogs.size() == 1) { if (vehicleDepartureLogs.size() == 1) {
VehicleDepartureLog vehicleDepartureLog = vehicleDepartureLogs.get(0); VehicleDepartureLog vehicleDepartureLog = vehicleDepartureLogs.get(0);
if (vehicleDepartureLog!=null) { if (vehicleDepartureLog != null) {
return ObjectRestResponse.succ(vehicleDepartureLog); return ObjectRestResponse.succ(vehicleDepartureLog);
} }
} }
...@@ -124,7 +123,7 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper, ...@@ -124,7 +123,7 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
} }
@Transactional @Transactional
public ObjectRestResponse collect(VehicleDepartureLog vdl){ public ObjectRestResponse collect(VehicleDepartureLog vdl) {
vdl.setArrivalTime(new Date()); vdl.setArrivalTime(new Date());
vdl.setState(1); vdl.setState(1);
updateSelectiveById(vdl); updateSelectiveById(vdl);
......
...@@ -87,7 +87,7 @@ public class VehicleModelBiz extends BaseBiz<VehicleModelMapper, VehicleModel> { ...@@ -87,7 +87,7 @@ public class VehicleModelBiz extends BaseBiz<VehicleModelMapper, VehicleModel> {
return ObjectRestResponse.succ(list); return ObjectRestResponse.succ(list);
} }
Set<Integer> set = new HashSet<>(); Set<Integer> set = new HashSet<>();
RandomUtil.randomSet(list.size(), number, set); RandomUtil.randomSet(list.size(), number, set, number);
for(Integer i : set) { for(Integer i : set) {
resultList.add(list.get(i)); resultList.add(list.get(i));
} }
......
...@@ -46,12 +46,10 @@ public class VehicleJobHandler extends IJobHandler { ...@@ -46,12 +46,10 @@ public class VehicleJobHandler extends IJobHandler {
List<String> existVehicleIds = vehicleBiz.findExistVehicleIds(); List<String> existVehicleIds = vehicleBiz.findExistVehicleIds();
Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(DIC_VEHICLE_TYPE, DIC_VEHICLE_CODE); Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(DIC_VEHICLE_TYPE, DIC_VEHICLE_CODE);
LocalDate date = LocalDate.now(); LocalDate date = LocalDate.now();
date = date.plusMonths(Integer.valueOf(dictionary.getDetail()));
int year = date.getYear(); int year = date.getYear();
int nowMonth = date.getMonthValue(); int month = date.getMonthValue();
int betweenMonth = Integer.valueOf(dictionary.getDetail()).intValue(); String yearAndMonth = String.format("%d-%02d", year,month);
int month = nowMonth + betweenMonth> 12 ? (betweenMonth + nowMonth) - 12 : nowMonth + betweenMonth;
year = month > nowMonth ? year : year + 1;
String yearAndMonth = String.format("%d-%s", year, month>=10?month:"0"+month);
XxlJobLogger.log("----查询到的车型ids:【{}】",existVehicleIds); XxlJobLogger.log("----查询到的车型ids:【{}】",existVehicleIds);
if (CollectionUtils.isNotEmpty(existVehicleIds)) { if (CollectionUtils.isNotEmpty(existVehicleIds)) {
List<VehicleBookInfo> bookInfos = existVehicleIds.stream().map(vehicleId -> { List<VehicleBookInfo> bookInfos = existVehicleIds.stream().map(vehicleId -> {
......
...@@ -11,6 +11,7 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; ...@@ -11,6 +11,7 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.GoodDataVO; import com.github.wxiaoqi.security.common.vo.GoodDataVO;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.biz.VehicleCataBiz; import com.xxfc.platform.vehicle.biz.VehicleCataBiz;
import com.xxfc.platform.vehicle.biz.VehicleModelBiz; import com.xxfc.platform.vehicle.biz.VehicleModelBiz;
import com.xxfc.platform.vehicle.biz.VehiclePlatCataBiz; import com.xxfc.platform.vehicle.biz.VehiclePlatCataBiz;
...@@ -133,7 +134,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi ...@@ -133,7 +134,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
@ApiOperation("车型列表") @ApiOperation("车型列表")
@PostMapping(value = "/app/unauth/findVehicleModelPage") @PostMapping(value = "/app/unauth/findVehicleModelPage")
@IgnoreUserToken @IgnoreUserToken
public ObjectRestResponse<VehicleModelVo> findVehicleModelPageUnauthfind( public ObjectRestResponse<PageDataVO<VehicleModelVo>> findVehicleModelPageUnauthfind(
@RequestBody @ApiParam("查询条件") VehicleModelQueryCondition vmqc, HttpServletRequest request) { @RequestBody @ApiParam("查询条件") VehicleModelQueryCondition vmqc, HttpServletRequest request) {
if (vmqc.getIsDel() == null) { if (vmqc.getIsDel() == null) {
vmqc.setIsDel(0); vmqc.setIsDel(0);
......
...@@ -380,7 +380,7 @@ ...@@ -380,7 +380,7 @@
</select> </select>
<select id="selectByVehicleId" parameterType="java.lang.String" <select id="selectByVehicleId" parameterType="java.lang.String"
resultType="com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo"> resultMap="searchBookRecord">
SELECT v1.*,bc2.name retCompanyName from vehicle_book_record v1 SELECT v1.*,bc2.name retCompanyName from vehicle_book_record v1
LEFT JOIN branch_company bc2 on v1.ret_company = bc2.id LEFT JOIN branch_company bc2 on v1.ret_company = bc2.id
where v1.vehicle_id = #{vehicleId} and v1.status BETWEEN 1 and 2 where v1.vehicle_id = #{vehicleId} and v1.status BETWEEN 1 and 2
......
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