Commit 5e8fe742 authored by 韩桐桐's avatar 韩桐桐

feat(ys-应急):专家列表crud导入导出模板下载

parent 99e8d6c3
package com.yeejoin.amos.boot.module.ys.api.converter;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import java.util.HashMap;
import java.util.Map;
public class CommonConverter implements Converter<String> {
private static final Map<String, String> map = new HashMap<>();
static {
map.put("男", "1");
map.put("女", "0");
}
@Override
public Class<?> supportJavaTypeKey() {
// 实体类中对象属性类型
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public String convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty,
GlobalConfiguration globalConfiguration) {
// 从Cell中读取数据
String cellValue = cellData.getStringValue();
// 判断Excel中的值,将其转换为预期的数值
return map.getOrDefault(cellValue, null);
}
@Override
public CellData convertToExcelData(String o, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new CellData("");
}
}
package com.yeejoin.amos.boot.module.ys.api.dto;
import com.alibaba.fastjson.JSONArray;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -35,7 +37,7 @@ public class YsEmergencyExpertsDto extends BaseDto {
private String phone;
@ApiModelProperty(value = "照片")
private String photo;
private JSONArray photo;
@ApiModelProperty(value = "移动电话")
private String mobilePhone;
......@@ -44,6 +46,7 @@ public class YsEmergencyExpertsDto extends BaseDto {
private String address;
@ApiModelProperty(value = "出生日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date birthdate;
@ApiModelProperty(value = "籍贯")
......
......@@ -2,10 +2,10 @@ package com.yeejoin.amos.boot.module.ys.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import java.util.Date;
......
......@@ -2,10 +2,10 @@ package com.yeejoin.amos.boot.module.ys.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import java.util.Date;
......
......@@ -2,10 +2,10 @@ package com.yeejoin.amos.boot.module.ys.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import java.util.Date;
......
......@@ -2,10 +2,10 @@ package com.yeejoin.amos.boot.module.ys.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import java.util.Date;
......
......@@ -2,10 +2,10 @@ package com.yeejoin.amos.boot.module.ys.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import java.util.Date;
......
package com.yeejoin.amos.boot.module.ys.api.mapper;
import com.yeejoin.amos.boot.module.ys.api.entity.YsEmergencyExperts;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.ys.api.dto.YsEmergencyExpertsDto;
import com.yeejoin.amos.boot.module.ys.api.entity.YsEmergencyExperts;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* 应急专家库 Mapper 接口
......@@ -11,4 +16,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface YsEmergencyExpertsMapper extends BaseMapper<YsEmergencyExperts> {
/**
* 分页查询
*
* @param page 分页对象
* @param dto 查询参数
* @return
*/
Page<Map<String, Object>> pageList(@Param("page") Page<Map<String, Object>> page,
@Param("dto") YsEmergencyExpertsDto dto);
}
package com.yeejoin.amos.boot.module.ys.api.service;
import com.yeejoin.amos.boot.module.ys.api.dto.YsEmergencyExpertsDto;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 应急专家库接口类
*
* @author system_generator
* @date 2024-09-24
*/
public interface IYsEmergencyExpertsService {}
public interface IYsEmergencyExpertsService {
Boolean saveOrUpdate (Map<String, Object> model, AgencyUserModel userModel);
YsEmergencyExpertsDto queryBySequenceNbr (String sequenceNbr);
ResponseModel<Object> expertDataImport(MultipartFile file);
void export(HttpServletResponse response, List<String> ids);
}
package com.yeejoin.amos.boot.module.ys.api.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yeejoin.amos.boot.module.ys.api.converter.CommonConverter;
import lombok.Data;
import java.util.Date;
/**
* 专家库
*/
@Data
public class ExpertImportVo {
@ExcelProperty(value = "姓名")
private String name;
@ExcelProperty(value = "性别",converter = CommonConverter.class)
private String gender;
@ExcelProperty(value = "身份证号")
private String identity;
@ExcelProperty(value = "办公电话")
private String phone;
@ExcelProperty(value = "移动电话")
private String mobilePhone;
@ExcelProperty(value = "住址")
private String address;
@ExcelProperty(value = "出生日期")
private Date birthdate;
@ExcelProperty(value = "籍贯")
private String birthPlace;
@ExcelProperty(value = "所在单位")
private String company;
@ExcelProperty(value = "通讯地址")
private String contactAddress;
@ExcelProperty(value = "学历")
private String education;
@ExcelProperty(value = "专家领域")
private String field;
@ExcelProperty(value = "家庭电话")
private String homePhone;
@ExcelProperty(value = "部门代码")
private String orgCode;
@ExcelProperty(value = "职务")
private String position;
@ExcelProperty(value = "邮政编码")
private String postcode;
@ExcelProperty(value = "消防单位id")
private Integer xfdwid;
}
package com.yeejoin.amos.boot.module.ys.api.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* 专家库
*/
@Data
public class ExpertVo {
@ExcelProperty(value = "姓名", index = 0)
String name;
@ExcelProperty(value = "性别", index = 1)
String gender;
@ExcelProperty(value = "身份证号", index = 2)
String identity;
@ExcelProperty(value = "办公电话", index = 3)
String phone;
@ExcelProperty(value = "出生日期", index = 4)
String birthdate;
@ExcelProperty(value = "所在单位", index = 5)
String company;
@ExcelProperty(value = "专家领域", index = 6)
String field;
@ExcelProperty(value = "职务", index = 7)
String position;
@ExcelProperty(value = "通讯地址", index = 8)
String contact_address;
}
......@@ -2,4 +2,66 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.ys.api.mapper.YsEmergencyExpertsMapper">
<select id="pageList" resultType="java.util.Map">
select
tyee."birthdate" as birthdate,
tyee."education" as education,
tyee."gender" as gender,
tyee."create_user_name" as createUserName,
tyee."rec_date" as recDate,
tyee."rec_user_name" as recUserName,
tyee."xfdwid" as xfdwid,
tyee."identity" as identity,
tyee."mobile_phone" as mobilePhone,
tyee."company" as company,
tyee."create_date" as createDate,
tyee."contact_address" as contactAddress,
tyee."home_phone" as homePhone,
tyee."create_user_id" as createUserId,
tyee."address" as address,
tyee."postcode" as postcode,
tyee."sequence_nbr" as sequenceNbr,
tyee."photo" as photo,
tyee."birth_place" as birthPlace,
tyee."is_delete" as isDelete,
tyee."rec_user_id" as recUserId,
tyee."field" as field,
tyee."phone" as phone,
tyee."name" as name,
tyee."position" as position,
tyee."org_code" as orgCode
FROM tzs_ys_emergency_experts tyee
<where>
tyee.is_delete = 0
<if test="dto != null ">
<if test="dto.name != null and dto.name != ''">
AND tyee.name LIKE CONCAT('%', #{dto.name}, '%')
</if>
<if test="dto.identity != null and dto.identity != ''">
AND tyee.identity = #{dto.identity}
</if>
<if test="dto.phone != null and dto.phone != ''">
AND tyee.phone = #{dto.phone}
</if>
<if test="dto.mobilePhone != null and dto.mobilePhone != ''">
AND tyee.mobile_phone LIKE CONCAT('%', #{dto.mobilePhone}, '%')
</if>
<if test="dto.address != null and dto.address != ''">
AND tyee.address LIKE CONCAT('%', #{dto.address}, '%')
</if>
<if test="dto.company != null and dto.company != ''">
AND tyee.company LIKE CONCAT('%', #{dto.company}, '%')
</if>
<if test="dto.field != null and dto.field != ''">
AND tyee.field LIKE CONCAT('%', #{dto.field}, '%')
</if>
<if test="dto.birthdate != null">
AND tyee.birthdate LIKE concat(DATE_FORMAT(#{dto.birthdate},'%Y-%m-%d'),'%')
</if>
</if>
</where>
ORDER BY
tyee.create_date DESC
</select>
</mapper>
package com.yeejoin.amos.boot.module.ys.biz.controller;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.ys.biz.service.CommonService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author system_generator
* @date 2024-09-24
*/
@RestController
@Api(tags = "公共接口")
@RequestMapping(value = "/common")
public class CommonController extends BaseController {
@Autowired
private CommonService commonService;
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "模板下载", notes = "模板下载")
@RequestMapping(value = "/templateDownload", method = RequestMethod.GET)
public void queryForPage(HttpServletResponse response, @RequestParam(value = "path") String path) {
commonService.templateDownload(response,path);
}
}
......@@ -3,18 +3,26 @@ package com.yeejoin.amos.boot.module.ys.biz.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.ys.api.dto.YsEmergencyExpertsDto;
import com.yeejoin.amos.boot.module.ys.api.service.IYsEmergencyExpertsService;
import com.yeejoin.amos.boot.module.ys.biz.service.impl.YsEmergencyExpertsServiceImpl;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.io.FilenameUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
*
......@@ -26,6 +34,9 @@ import java.util.List;
@RequestMapping(value = "/ys-emergency-experts")
public class YsEmergencyExpertsController extends BaseController {
@Autowired
private IYsEmergencyExpertsService iYsEmergencyExpertsService;
@Autowired
YsEmergencyExpertsServiceImpl ysEmergencyExpertsServiceImpl;
......@@ -35,11 +46,11 @@ public class YsEmergencyExpertsController extends BaseController {
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<YsEmergencyExpertsDto> save(@RequestBody YsEmergencyExpertsDto model) {
model = ysEmergencyExpertsServiceImpl.createWithModel(model);
return ResponseHelper.buildResponse(model);
@PostMapping(value = "/saveOrUpdate")
@ApiOperation(httpMethod = "POST", value = "新增or更新", notes = "新增or更新")
public ResponseModel<Boolean> saveOrUpdate(@RequestBody Map<String, Object> model) {
AgencyUserModel userModel = getSelectedOrgInfo().getUserModel();
return ResponseHelper.buildResponse(iYsEmergencyExpertsService.saveOrUpdate(model,userModel));
}
/**
......@@ -76,10 +87,10 @@ public class YsEmergencyExpertsController extends BaseController {
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@GetMapping(value = "/detail")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<YsEmergencyExpertsDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(ysEmergencyExpertsServiceImpl.queryBySeq(sequenceNbr));
public ResponseModel<YsEmergencyExpertsDto> selectOne(@RequestParam String sequenceNbr) {
return ResponseHelper.buildResponse(iYsEmergencyExpertsService.queryBySequenceNbr(sequenceNbr));
}
/**
......@@ -90,14 +101,15 @@ public class YsEmergencyExpertsController extends BaseController {
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询", notes = "分页查询")
public ResponseModel<Page<YsEmergencyExpertsDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size) {
Page<YsEmergencyExpertsDto> page = new Page<YsEmergencyExpertsDto>();
@PostMapping(value = "/page")
@ApiOperation(httpMethod = "POST",value = "分页查询", notes = "分页查询")
public ResponseModel<Page<Map<String, Object>>> queryForPage(YsEmergencyExpertsDto dto,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<Map<String, Object>> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(ysEmergencyExpertsServiceImpl.queryForYsEmergencyExpertsPage(page));
return ResponseHelper.buildResponse(ysEmergencyExpertsServiceImpl.queryForYsEmergencyExpertsPage(dto,page));
}
/**
......@@ -111,4 +123,34 @@ public class YsEmergencyExpertsController extends BaseController {
public ResponseModel<List<YsEmergencyExpertsDto>> selectForList() {
return ResponseHelper.buildResponse(ysEmergencyExpertsServiceImpl.queryForYsEmergencyExpertsList());
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/import")
@ApiOperation(httpMethod = "POST", value = "专家库列表数据导入", notes = "专家库列表数据导入")
public ResponseModel<Object> expertDataImport(@RequestBody MultipartFile file) {
// 校验文件是否为空
if (file.isEmpty()) {
return ResponseHelper.buildResponse("文件不能为空");
}
// 校验文件类型为 Excel
String contentType = file.getContentType();
String fileExtension = FilenameUtils.getExtension(file.getOriginalFilename());
// 校验 Excel 文件的 MIME type 和扩展名
if (!("application/vnd.ms-excel".equals(contentType) ||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet".equals(contentType)) ||
!("xls".equalsIgnoreCase(fileExtension) || "xlsx".equalsIgnoreCase(fileExtension))) {
return ResponseHelper.buildResponse("文件类型必须是 Excel 文件");
}
return ysEmergencyExpertsServiceImpl.expertDataImport(file);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/export")
@ApiOperation(httpMethod = "GET", value = "专家库列表数据导出", notes = "专家库列表数据导出")
public void expertDataExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
ysEmergencyExpertsServiceImpl.export(response, Arrays.asList(ids.split(",")));
}
}
package com.yeejoin.amos.boot.module.ys.biz.service;
import javax.servlet.http.HttpServletResponse;
public interface CommonService {
void templateDownload(HttpServletResponse response, String type);
}
package com.yeejoin.amos.boot.module.ys.biz.service.impl;
import com.yeejoin.amos.boot.module.ys.biz.service.CommonService;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
/**
* 公共服务实现类
*
* @author system_generator
* @date 2024-09-24
*/
@Service
public class CommonServiceImpl implements CommonService {
/**
* 模板下载
* @param response 响应
* @param type 类型
* @return 模板文件
*/
@Override
public void templateDownload(HttpServletResponse response, String path) {
// TODO 调用异常
// Systemctl.fileStorageClient.downloadFile(response, "upload/tzs/common/fileTemplate/专家库数据导入模板.xlsx", null);
Systemctl.fileStorageClient.downloadFile(response, path, null);
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.ys.biz.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.excel.ExcelUtil;
import com.yeejoin.amos.boot.module.ys.api.dto.YsEmergencyExpertsDto;
import com.yeejoin.amos.boot.module.ys.api.entity.YsEmergencyExperts;
import com.yeejoin.amos.boot.module.ys.api.mapper.YsEmergencyExpertsMapper;
import com.yeejoin.amos.boot.module.ys.api.service.IYsEmergencyExpertsService;
import com.yeejoin.amos.boot.module.ys.api.vo.ExpertImportVo;
import com.yeejoin.amos.boot.module.ys.api.vo.ExpertVo;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 应急专家库服务实现类
......@@ -17,18 +42,105 @@ import java.util.List;
* @date 2024-09-24
*/
@Service
public class YsEmergencyExpertsServiceImpl extends BaseService<YsEmergencyExpertsDto,YsEmergencyExperts,YsEmergencyExpertsMapper> implements IYsEmergencyExpertsService {
public class YsEmergencyExpertsServiceImpl extends BaseService<YsEmergencyExpertsDto, YsEmergencyExperts, YsEmergencyExpertsMapper> implements IYsEmergencyExpertsService {
/**
* 分页查询
*/
public Page<YsEmergencyExpertsDto> queryForYsEmergencyExpertsPage(Page<YsEmergencyExpertsDto> page) {
return this.queryForPage(page, null, false);
public Page<Map<String, Object>> queryForYsEmergencyExpertsPage(YsEmergencyExpertsDto dto, Page<Map<String, Object>> page) {
return this.baseMapper.pageList(page,dto);
}
/**
* 列表查询 示例
*/
public List<YsEmergencyExpertsDto> queryForYsEmergencyExpertsList() {
return this.queryForList("" , false);
public List<YsEmergencyExpertsDto> queryForYsEmergencyExpertsList() {
return this.queryForList("", false);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean saveOrUpdate(Map<String, Object> model, AgencyUserModel userModel) {
YsEmergencyExperts experts = JSON.parseObject(JSONObject.toJSONString(model), YsEmergencyExperts.class);
experts.setIsDelete(Boolean.FALSE);
if (ValidationUtil.isEmpty(experts.getSequenceNbr())){//新增
experts.setCreateDate(new Date());
experts.setCreateUserId(userModel.getUserId());
experts.setCreateUserName(userModel.getUserName());
}
experts.setPhoto(experts.getPhoto());
return this.saveOrUpdate(experts);
}
@Override
public YsEmergencyExpertsDto queryBySequenceNbr(String sequenceNbr) {
YsEmergencyExpertsDto expertsDto = new YsEmergencyExpertsDto();
LambdaQueryWrapper<YsEmergencyExperts> lambda = new QueryWrapper<YsEmergencyExperts>().lambda();
lambda.eq(YsEmergencyExperts::getSequenceNbr, sequenceNbr);
YsEmergencyExperts experts = this.baseMapper.selectOne(lambda);
BeanUtils.copyProperties(experts,expertsDto);
if (!ValidationUtil.isEmpty(experts.getPhoto())){
expertsDto.setPhoto(JSON.parseArray((experts.getPhoto())));
}
return expertsDto;
}
/**
* 专家库列表数据导入
*
* @param file excel 文件
* @return 导入结果
*/
@Transactional(rollbackFor = Exception.class)
@Override
public ResponseModel<Object> expertDataImport(MultipartFile file) {
try {
InputStream inputStream = file.getInputStream();
ExcelReader excelReader = EasyExcel.read(inputStream).build();
List<ReadSheet> sheetList = excelReader.excelExecutor().sheetList();
ReadSheet sheet = sheetList.get(0);
if (ValidationUtil.isEmpty(sheet)) {
throw new BadRequest("Excel导入模板有误,请重写下载导入!");
}
ArrayList<YsEmergencyExperts> dataList = new ArrayList<>();
EasyExcel.read(file.getInputStream(), ExpertImportVo.class, new AnalysisEventListener<ExpertImportVo>() {
@Override
public void invoke(ExpertImportVo data, AnalysisContext context) {
dataList.add(JSON.parseObject(JSON.toJSONString(data), YsEmergencyExperts.class));
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
}
}).headRowNumber(1).sheet().doRead();
excelReader.finish();
// 保存数据
this.saveOrUpdateBatch(dataList);
return ResponseHelper.buildResponse("success");
} catch (Exception e) {
throw new BadRequest(e.getMessage());
}
}
/**
* 专家库列表数据导出
*
* @param response 响应
* @param ids 数据id
*/
@Override
public void export(HttpServletResponse response, List<String> ids) {
LambdaQueryWrapper<YsEmergencyExperts> lambda = new QueryWrapper<YsEmergencyExperts>().lambda();
lambda.in(YsEmergencyExperts::getSequenceNbr, ids);
List<YsEmergencyExperts> experts = this.baseMapper.selectList(lambda);
List<ExpertVo> exportData = JSON.parseArray(JSON.toJSONString(experts), ExpertVo.class);
ExcelUtil.createTemplate(response, "专家库列表数据", "专家库列表", exportData, ExpertVo.class, null, false);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment