提交 c7db2617 作者: 谭志磊

fix : 修复车辆管理联调中发现的bug,配置跨域

上级 76a93dbb
......@@ -19,6 +19,14 @@ import lombok.experimental.FieldDefaults;
@FieldDefaults(level = AccessLevel.PRIVATE)
public class CarQueryParam {
@ApiModelProperty(value = "每页记录数", example = "10")
// @DecimalMin(value = "1", message = "分页条数不能小于1")
Integer pageSize;
@ApiModelProperty(value = "页码", example = "1")
// @DecimalMin(value = "1", message = "页码不能小于1")
Integer pageNo;
@ApiModelProperty(value = "车牌号码", example = "湘A12345")
String carNum;
......
......@@ -7,7 +7,6 @@ import com.yiring.app.param.car.CarQueryParam;
import com.yiring.app.vo.car.CarVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import java.util.List;
import org.springframework.data.jpa.domain.Specification;
......@@ -71,7 +70,7 @@ public interface CarService {
* @param carParam CarParam
* @return 车辆来访信息分页数据
*/
Result<PageVo<CarVo>> pageCarInfo(CarQueryParam carParam, PageParam param);
Result<PageVo<CarVo>> pageCarInfo(CarQueryParam carParam);
/**
* 导出excel
......
......@@ -11,22 +11,17 @@ import com.yiring.auth.domain.role.Role;
import com.yiring.common.core.Result;
import com.yiring.common.core.Status;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.util.StrUtils;
import com.yiring.common.util.date.DateUtils;
import com.yiring.common.vo.PageVo;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.persistence.criteria.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.*;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
......@@ -151,18 +146,37 @@ public class CarServiceImpl implements CarService {
}
@Override
public Result<PageVo<CarVo>> pageCarInfo(CarQueryParam carParam, PageParam param) {
Page<Car> all = carRepository.findAll(condition(carParam), PageParam.toPageable(param));
List<CarVo> data = all
.get()
.map(car -> {
CarVo vo = new CarVo();
BeanUtils.copyProperties(car, vo);
return vo;
})
.collect(Collectors.toList());
PageVo<CarVo> vo = PageVo.build(data, all.getTotalElements());
return Result.ok(vo);
public Result<PageVo<CarVo>> pageCarInfo(CarQueryParam carParam) {
PageVo<CarVo> resultVo = null;
//排序
Sort sort = Sort.by(Sort.Order.desc(Car.Fields.createTime));
//如果传分页参数则分页,否查全部数据
if (Objects.nonNull(carParam.getPageNo()) && Objects.nonNull(carParam.getPageSize())) {
//分页
Pageable pageable = PageRequest.of(carParam.getPageNo() - 1, carParam.getPageSize());
Page<Car> all = carRepository.findAll(condition(carParam), pageable);
List<CarVo> data = all
.get()
.map(car -> {
CarVo vo = new CarVo();
BeanUtils.copyProperties(car, vo);
return vo;
})
.collect(Collectors.toList());
resultVo = PageVo.build(data, all.getTotalElements());
} else {
List<Car> all = carRepository.findAll(condition(carParam), sort);
List<CarVo> data = all
.stream()
.map(car -> {
CarVo vo = new CarVo();
BeanUtils.copyProperties(car, vo);
return vo;
})
.collect(Collectors.toList());
resultVo = PageVo.build(data, data.size());
}
return Result.ok(resultVo);
}
@Override
......@@ -222,7 +236,7 @@ public class CarServiceImpl implements CarService {
if (StrUtils.isNotBlank(carParam.getOrgId())) {
//所属单位查询
list.add(criteriaBuilder.equal(root.get("orgId").as(String.class), carParam.getOrgId()));
list.add(criteriaBuilder.like(root.get("orgId").as(String.class), "%" + carParam.getOrgId() + "%"));
}
if (StrUtils.isNotBlank(carParam.getReason())) {
......
......@@ -2,6 +2,8 @@
package com.yiring.app.vo.car;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.common.util.DictUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -23,6 +25,10 @@ import org.apache.commons.lang3.StringUtils;
@FieldDefaults(level = AccessLevel.PRIVATE)
public class CarVo implements Serializable {
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "主键id", example = "1458555485552")
Long id;
@ApiModelProperty(value = "车牌号码", example = "湘A99999")
String carNum;
......
......@@ -8,7 +8,6 @@ import com.yiring.app.service.car.CarService;
import com.yiring.app.vo.car.CarVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.util.poi.ExcelUtils;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
......@@ -20,10 +19,7 @@ import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* 车辆来访信息控制器
......@@ -80,8 +76,8 @@ public class CarController {
@ApiOperation(value = "查看车辆来访信息(分页)")
@GetMapping("pageCarInfo")
public Result<PageVo<CarVo>> pageCarInfo(@Valid CarQueryParam carParam, @Valid PageParam param) {
return carService.pageCarInfo(carParam, param);
public Result<PageVo<CarVo>> pageCarInfo(@Valid CarQueryParam carParam) {
return carService.pageCarInfo(carParam);
}
@ApiOperation(value = "导出车辆来访信息")
......@@ -89,6 +85,10 @@ public class CarController {
public void exportCarInfo(HttpServletResponse response, @Valid CarQueryParam carParam) {
List<Car> export = carService.export(carParam);
ExcelUtils<Car> util = new ExcelUtils<>(Car.class);
// String fileName = URLEncoder.encode("车辆来访信息.xlsx", StandardCharsets.UTF_8);
response.setContentType("application/octet-stream");
// response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
// response.setCharacterEncoding("utf-8");
util.exportExcel(response, export, "车辆来访信息");
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
* 跨域设置
* @author tzl
* 2022/4/18 10:29
*/
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
final CorsConfiguration corsConfiguration = new CorsConfiguration();
// corsConfiguration.setAllowCredentials(true);
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(urlBasedCorsConfigurationSource);
}
}
......@@ -180,7 +180,7 @@ public class ExcelUtils<T> {
* 对excel表单指定表格索引名转换成list
*
* @param sheetName 表格索引名
* @param titleNum 标题占用行数
* @param titleNum 标题占用第几行数
* @param is 输入流
* @return 转换后集合
*/
......@@ -317,8 +317,8 @@ public class ExcelUtils<T> {
* @throws IOException
*/
public void exportExcel(HttpServletResponse response, List<T> list, String sheetName, String title) {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
// response.setContentType("application/octet-stream");
// response.setCharacterEncoding("utf-8");
this.init(list, sheetName, title, Type.EXPORT);
exportExcel(response);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论