提交 c7db2617 作者: 谭志磊

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

上级 76a93dbb
...@@ -19,6 +19,14 @@ import lombok.experimental.FieldDefaults; ...@@ -19,6 +19,14 @@ import lombok.experimental.FieldDefaults;
@FieldDefaults(level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
public class CarQueryParam { 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") @ApiModelProperty(value = "车牌号码", example = "湘A12345")
String carNum; String carNum;
......
...@@ -7,7 +7,6 @@ import com.yiring.app.param.car.CarQueryParam; ...@@ -7,7 +7,6 @@ import com.yiring.app.param.car.CarQueryParam;
import com.yiring.app.vo.car.CarVo; import com.yiring.app.vo.car.CarVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import java.util.List; import java.util.List;
import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.domain.Specification;
...@@ -71,7 +70,7 @@ public interface CarService { ...@@ -71,7 +70,7 @@ public interface CarService {
* @param carParam CarParam * @param carParam CarParam
* @return 车辆来访信息分页数据 * @return 车辆来访信息分页数据
*/ */
Result<PageVo<CarVo>> pageCarInfo(CarQueryParam carParam, PageParam param); Result<PageVo<CarVo>> pageCarInfo(CarQueryParam carParam);
/** /**
* 导出excel * 导出excel
......
...@@ -11,22 +11,17 @@ import com.yiring.auth.domain.role.Role; ...@@ -11,22 +11,17 @@ import com.yiring.auth.domain.role.Role;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.core.Status; import com.yiring.common.core.Status;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.util.StrUtils; import com.yiring.common.util.StrUtils;
import com.yiring.common.util.date.DateUtils; import com.yiring.common.util.date.DateUtils;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Predicate;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.Example; import org.springframework.data.domain.*;
import org.springframework.data.domain.Page;
import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -151,8 +146,15 @@ public class CarServiceImpl implements CarService { ...@@ -151,8 +146,15 @@ public class CarServiceImpl implements CarService {
} }
@Override @Override
public Result<PageVo<CarVo>> pageCarInfo(CarQueryParam carParam, PageParam param) { public Result<PageVo<CarVo>> pageCarInfo(CarQueryParam carParam) {
Page<Car> all = carRepository.findAll(condition(carParam), PageParam.toPageable(param)); 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 List<CarVo> data = all
.get() .get()
.map(car -> { .map(car -> {
...@@ -161,8 +163,20 @@ public class CarServiceImpl implements CarService { ...@@ -161,8 +163,20 @@ public class CarServiceImpl implements CarService {
return vo; return vo;
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());
PageVo<CarVo> vo = PageVo.build(data, all.getTotalElements()); resultVo = PageVo.build(data, all.getTotalElements());
return Result.ok(vo); } 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 @Override
...@@ -222,7 +236,7 @@ public class CarServiceImpl implements CarService { ...@@ -222,7 +236,7 @@ public class CarServiceImpl implements CarService {
if (StrUtils.isNotBlank(carParam.getOrgId())) { 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())) { if (StrUtils.isNotBlank(carParam.getReason())) {
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
package com.yiring.app.vo.car; package com.yiring.app.vo.car;
import com.fasterxml.jackson.annotation.JsonFormat; 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 com.yiring.common.util.DictUtils;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -23,6 +25,10 @@ import org.apache.commons.lang3.StringUtils; ...@@ -23,6 +25,10 @@ import org.apache.commons.lang3.StringUtils;
@FieldDefaults(level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
public class CarVo implements Serializable { public class CarVo implements Serializable {
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "主键id", example = "1458555485552")
Long id;
@ApiModelProperty(value = "车牌号码", example = "湘A99999") @ApiModelProperty(value = "车牌号码", example = "湘A99999")
String carNum; String carNum;
......
...@@ -8,7 +8,6 @@ import com.yiring.app.service.car.CarService; ...@@ -8,7 +8,6 @@ import com.yiring.app.service.car.CarService;
import com.yiring.app.vo.car.CarVo; import com.yiring.app.vo.car.CarVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.util.poi.ExcelUtils; import com.yiring.common.util.poi.ExcelUtils;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -20,10 +19,7 @@ import javax.servlet.http.HttpServletResponse; ...@@ -20,10 +19,7 @@ import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 车辆来访信息控制器 * 车辆来访信息控制器
...@@ -80,8 +76,8 @@ public class CarController { ...@@ -80,8 +76,8 @@ public class CarController {
@ApiOperation(value = "查看车辆来访信息(分页)") @ApiOperation(value = "查看车辆来访信息(分页)")
@GetMapping("pageCarInfo") @GetMapping("pageCarInfo")
public Result<PageVo<CarVo>> pageCarInfo(@Valid CarQueryParam carParam, @Valid PageParam param) { public Result<PageVo<CarVo>> pageCarInfo(@Valid CarQueryParam carParam) {
return carService.pageCarInfo(carParam, param); return carService.pageCarInfo(carParam);
} }
@ApiOperation(value = "导出车辆来访信息") @ApiOperation(value = "导出车辆来访信息")
...@@ -89,6 +85,10 @@ public class CarController { ...@@ -89,6 +85,10 @@ public class CarController {
public void exportCarInfo(HttpServletResponse response, @Valid CarQueryParam carParam) { public void exportCarInfo(HttpServletResponse response, @Valid CarQueryParam carParam) {
List<Car> export = carService.export(carParam); List<Car> export = carService.export(carParam);
ExcelUtils<Car> util = new ExcelUtils<>(Car.class); 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, "车辆来访信息"); 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> { ...@@ -180,7 +180,7 @@ public class ExcelUtils<T> {
* 对excel表单指定表格索引名转换成list * 对excel表单指定表格索引名转换成list
* *
* @param sheetName 表格索引名 * @param sheetName 表格索引名
* @param titleNum 标题占用行数 * @param titleNum 标题占用第几行数
* @param is 输入流 * @param is 输入流
* @return 转换后集合 * @return 转换后集合
*/ */
...@@ -317,8 +317,8 @@ public class ExcelUtils<T> { ...@@ -317,8 +317,8 @@ public class ExcelUtils<T> {
* @throws IOException * @throws IOException
*/ */
public void exportExcel(HttpServletResponse response, List<T> list, String sheetName, String title) { public void exportExcel(HttpServletResponse response, List<T> list, String sheetName, String title) {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); // response.setContentType("application/octet-stream");
response.setCharacterEncoding("utf-8"); // response.setCharacterEncoding("utf-8");
this.init(list, sheetName, title, Type.EXPORT); this.init(list, sheetName, title, Type.EXPORT);
exportExcel(response); exportExcel(response);
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论