新增老平台数据库查询接口,excel导出接口,excel数据解析接口,excel导入接口

master
徐杰盟 2024-06-11 17:42:39 +08:00
parent 40e08831bf
commit 39cfebfb37
3 changed files with 50 additions and 17 deletions

View File

@ -1,11 +1,13 @@
package com.whdc.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.whdc.exception.MyException;
import com.whdc.model.dto.AddressBookOldDto;
import com.whdc.model.entity.AddressBookOld;
import com.whdc.model.vo.ExcelDataVo;
import com.whdc.model.vo.ExcelOldDataVo;
import com.whdc.service.IAddressBookOldService;
import com.whdc.utils.ExcelCommon;
import com.whdc.utils.ResultJson;
@ -23,7 +25,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@ -84,21 +85,27 @@ public class AddressBookOldController {
List<AddressBookOld> list = service.lambdaQuery()
.list();
ExcelCommon.exportExcel(list,
null, "防汛抗旱通讯录", AddressBookOld.class, "防汛抗旱通讯录_" + LocalDateTime.now() + ".xlsx",
null, "防汛抗旱通讯录", AddressBookOld.class, "湖北省防汛抗旱通信录模版" + LocalDateTime.now() + ".xlsx",
response);
}
@ApiOperation(value = "解析文件数据")
@PostMapping(value = "getExcelData")
public ResultJson<ExcelDataVo> getExcelData(MultipartFile file) {
public ResultJson<ExcelOldDataVo> getExcelData(MultipartFile file) {
List<AddressBookOld> appends = ExcelCommon.importExcel(file, 0, 1, AddressBookOld.class);
ExcelDataVo excelDataVo = new ExcelDataVo();
ExcelOldDataVo excelDataVo = new ExcelOldDataVo();
if (CollectionUtils.isNotEmpty(appends)){
appends = appends.stream().filter(vo ->
StringUtils.isNotBlank(vo.getName())
&& StringUtils.isNotBlank(vo.getCtnm())
&& StringUtils.isNotBlank(vo.getCnnm())
).collect(Collectors.toList());
String key = UUID.randomUUID().toString().replaceAll("-", "");
redisTemplate.opsForValue().set(ADDRESS_BOOK_TEMP_REDIS_KEY + key, JSON.toJSONString(appends), 30, TimeUnit.MINUTES);
excelDataVo.setKey(key);
excelDataVo.setList(appends);
}
return ResultJson.ok(excelDataVo);
@ -117,19 +124,16 @@ public class AddressBookOldController {
throw new MyException("文件数据为空");
}
Set<String> set = appends.stream().map(vo -> vo.getName() + "_" + vo.getPhone()).collect(Collectors.toSet());
if (set.size() != appends.size()){
throw new MyException("联系人重复");
}
// Set<String> set = appends.stream().map(vo -> vo.getName() + "_" + vo.getPhone()).collect(Collectors.toSet());
// if (set.size() != appends.size()){
// throw new MyException("联系人重复");
// }
LambdaQueryChainWrapper<AddressBookOld> deleteAll = service.lambdaQuery();
deleteAll.gt(AddressBookOld::getId,0);
boolean r1 = service.remove(deleteAll);
boolean r1 = service.remove(Wrappers.emptyWrapper());
if (!r1) {
throw new MyException("通讯录数据删除失败");
}
if (!service.saveBatch(appends)) {
throw new MyException("表格数据新增失败");
}

View File

@ -0,0 +1,29 @@
package com.whdc.model.vo;
import com.whdc.model.entity.AddressBookOld;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* Description:
* Created by XuSan on 2024/5/28.
*
* @author XuSan
* @version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ExcelOldDataVo {
@ApiModelProperty(value = "数据")
private List<AddressBookOld> list;
@ApiModelProperty(value = "键")
private String key;
}

View File

@ -10,7 +10,7 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: dm.jdbc.driver.DmDriver
url: jdbc:dm://10.0.41.113:5236?schema=FXKH_TXL
url: jdbc:dm://local.gunshiiot.com:5236?schema=FXKH_TXL
username: SYSDBA
password: SYSDBA001
# url: jdbc:dm://10.42.6.247:5236?schema=FXKH_TXL
@ -39,11 +39,11 @@ spring:
# Redis
redis:
database: 5
# host: 10.42.6.75
host: 127.0.0.1
host: 10.42.6.75
# host: 127.0.0.1
port: 6379
password:
# password: Whdc_890
# password:
password: Whdc_890
servlet:
multipart: