From edbfafb2c6fbe860d572f1a63d7f795ef5578ccb Mon Sep 17 00:00:00 2001 From: xjm Date: Tue, 11 Jun 2024 10:54:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=80=81=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?,excel=E5=AF=BC=E5=87=BA=E6=8E=A5=E5=8F=A3,excel=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=A7=A3=E6=9E=90=E6=8E=A5=E5=8F=A3,excel=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AddressBookController.java | 16 +- .../controller/AddressBookOldController.java | 140 ++++++++++++++++++ .../com/whdc/mapper/AddressBookMapper.java | 4 +- .../com/whdc/mapper/AddressBookOldMapper.java | 13 ++ ...ddressBootDto.java => AddressBookDto.java} | 2 +- .../com/whdc/model/dto/AddressBookOldDto.java | 18 +++ .../com/whdc/model/entity/AddressBookOld.java | 63 ++++++++ .../whdc/service/IAddressBookOldService.java | 16 ++ .../com/whdc/service/IAddressBookService.java | 5 +- .../impl/AddressBookOldServiceImpl.java | 23 +++ .../service/impl/AddressBookServiceImpl.java | 4 +- .../resources/mapper/AddressBookOldMapper.xml | 94 ++++++++++++ 12 files changed, 382 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/whdc/controller/AddressBookOldController.java create mode 100644 src/main/java/com/whdc/mapper/AddressBookOldMapper.java rename src/main/java/com/whdc/model/dto/{AddressBootDto.java => AddressBookDto.java} (95%) create mode 100644 src/main/java/com/whdc/model/dto/AddressBookOldDto.java create mode 100644 src/main/java/com/whdc/model/entity/AddressBookOld.java create mode 100644 src/main/java/com/whdc/service/IAddressBookOldService.java create mode 100644 src/main/java/com/whdc/service/impl/AddressBookOldServiceImpl.java create mode 100644 src/main/resources/mapper/AddressBookOldMapper.xml diff --git a/src/main/java/com/whdc/controller/AddressBookController.java b/src/main/java/com/whdc/controller/AddressBookController.java index 31c5e57..35fc8ac 100644 --- a/src/main/java/com/whdc/controller/AddressBookController.java +++ b/src/main/java/com/whdc/controller/AddressBookController.java @@ -6,7 +6,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.whdc.exception.MyException; -import com.whdc.model.dto.AddressBootDto; +import com.whdc.model.dto.AddressBookDto; import com.whdc.model.entity.AbUdR; import com.whdc.model.entity.AddressBook; import com.whdc.model.entity.Organization; @@ -94,7 +94,7 @@ public class AddressBookController { @ApiOperation(value = "分页查询") @PostMapping(value = "page") - public ResultJson page(@RequestBody AddressBootDto dto) { + public ResultJson page(@RequestBody AddressBookDto dto) { dto.setUserId(String.valueOf(StpUtil.getLoginId())); IPage page = service.page(dto); @@ -604,8 +604,8 @@ public class AddressBookController { } - @ApiOperation(value = "通过行政区划下载excel") - @GetMapping(value = "getExcel/{adnm}") +// @ApiOperation(value = "通过行政区划下载excel") +// @GetMapping(value = "getExcel/{adnm}") public void getExcel(@PathVariable("adnm") @ApiParam(value = "名称,all: 查询全部") String adnm, HttpServletResponse response) { @@ -687,8 +687,8 @@ public class AddressBookController { response); } - @ApiOperation(value = "解析文件数据") - @PostMapping(value = "getExcelData") +// @ApiOperation(value = "解析文件数据") +// @PostMapping(value = "getExcelData") public ResultJson getExcelData(MultipartFile file) { List appends = ExcelCommon.importExcel(file, 0, 1, ExcelABVo.class); @@ -703,8 +703,8 @@ public class AddressBookController { return ResultJson.ok(excelDataVo); } - @ApiOperation(value = "行政区划联系人导入") - @PostMapping(value = "uploadExcel") +// @ApiOperation(value = "行政区划联系人导入") +// @PostMapping(value = "uploadExcel") public ResultJson uploadExcel(@RequestBody ExcelDataVo data) { // List appends = ExcelCommon.importExcel(file, 0, 1, ExcelABVo.class); diff --git a/src/main/java/com/whdc/controller/AddressBookOldController.java b/src/main/java/com/whdc/controller/AddressBookOldController.java new file mode 100644 index 0000000..1aad34e --- /dev/null +++ b/src/main/java/com/whdc/controller/AddressBookOldController.java @@ -0,0 +1,140 @@ +package com.whdc.controller; + +import com.alibaba.fastjson.JSON; +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.service.IAddressBookOldService; +import com.whdc.utils.ExcelCommon; +import com.whdc.utils.ResultJson; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; +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; + +import static com.whdc.model.MyConstant.REDIS_KEY; + +/** + * Description: + * Created by XuSan on 2024/6/11. + * + * @author XuSan + * @version 1.0 + */ +@Slf4j +@Api(tags = "web通讯录 - Controller") +@RestController +@RequestMapping("/addressbookOld") +@Transactional +public class AddressBookOldController { + + @Autowired + private IAddressBookOldService service; + + public static final String ADDRESS_BOOK_REDIS_KEY = REDIS_KEY + "addressbookOld"; + public static final String ADDRESS_BOOK_TEMP_REDIS_KEY = ADDRESS_BOOK_REDIS_KEY + "temp:"; + + @Autowired + private RedisTemplate redisTemplate; + + + + @ApiOperation(value = "查询所有联系人") + @PostMapping(value = "find") + public ResultJson> find(@RequestBody AddressBookOldDto dto) { + + LambdaQueryChainWrapper query = service.lambdaQuery(); + + String name = dto.getName(); + if (StringUtils.isNotBlank(name)){ + query.like(AddressBookOld::getName, name); + } + + String phone = dto.getPhone(); + if (StringUtils.isNotBlank(phone)){ + query.like(AddressBookOld::getPhone, phone); + } + + List data = query.list(); + return ResultJson.ok(data); + + } + + + @ApiOperation(value = "下载excel") + @GetMapping(value = "downloadExcel") + public void downloadExcel( HttpServletResponse response) { + + List list = service.lambdaQuery() + .list(); + ExcelCommon.exportExcel(list, + null, "防汛抗旱通讯录", AddressBookOld.class, "防汛抗旱通讯录_" + LocalDateTime.now() + ".xlsx", + response); + } + + @ApiOperation(value = "解析文件数据") + @PostMapping(value = "getExcelData") + public ResultJson getExcelData(MultipartFile file) { + + List appends = ExcelCommon.importExcel(file, 0, 1, AddressBookOld.class); + + ExcelDataVo excelDataVo = new ExcelDataVo(); + if (CollectionUtils.isNotEmpty(appends)){ + String key = UUID.randomUUID().toString().replaceAll("-", ""); + redisTemplate.opsForValue().set(ADDRESS_BOOK_TEMP_REDIS_KEY + key, JSON.toJSONString(appends), 30, TimeUnit.MINUTES); + excelDataVo.setKey(key); + } + + return ResultJson.ok(excelDataVo); + } + @ApiOperation(value = "联系人导入") + @PostMapping(value = "uploadExcel") + public ResultJson uploadExcel(@RequestBody ExcelDataVo data) { + + String s = redisTemplate.opsForValue().get(ADDRESS_BOOK_TEMP_REDIS_KEY + data.getKey()); + if (StringUtils.isBlank(s)){ + throw new MyException("文件已过期"); + } + List appends = JSON.parseArray(s, AddressBookOld.class); + + if (CollectionUtils.isEmpty(appends)) { + throw new MyException("文件数据为空"); + } + + Set set = appends.stream().map(vo -> vo.getName() + "_" + vo.getPhone()).collect(Collectors.toSet()); + if (set.size() != appends.size()){ + throw new MyException("联系人重复"); + } + + LambdaQueryChainWrapper deleteAll = service.lambdaQuery(); + deleteAll.gt(AddressBookOld::getId,0); + boolean r1 = service.remove(deleteAll); + if (!r1) { + throw new MyException("通讯录数据删除失败"); + } + + + if (!service.saveBatch(appends)) { + throw new MyException("表格数据新增失败"); + } + + return ResultJson.ok("数据新增成功"); + } + +} diff --git a/src/main/java/com/whdc/mapper/AddressBookMapper.java b/src/main/java/com/whdc/mapper/AddressBookMapper.java index 0d0905f..5ffcd5a 100644 --- a/src/main/java/com/whdc/mapper/AddressBookMapper.java +++ b/src/main/java/com/whdc/mapper/AddressBookMapper.java @@ -2,7 +2,7 @@ package com.whdc.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.whdc.model.dto.AddressBootDto; +import com.whdc.model.dto.AddressBookDto; import com.whdc.model.entity.AddressBook; import com.whdc.model.vo.AddressBookVo; import org.apache.ibatis.annotations.Param; @@ -15,7 +15,7 @@ import java.util.List; */ public interface AddressBookMapper extends BaseMapper { - IPage page(@Param("page") IPage page, @Param("dto") AddressBootDto dto); + IPage page(@Param("page") IPage page, @Param("dto") AddressBookDto dto); List find(@Param("dto") AddressBook dto); diff --git a/src/main/java/com/whdc/mapper/AddressBookOldMapper.java b/src/main/java/com/whdc/mapper/AddressBookOldMapper.java new file mode 100644 index 0000000..1d45269 --- /dev/null +++ b/src/main/java/com/whdc/mapper/AddressBookOldMapper.java @@ -0,0 +1,13 @@ +package com.whdc.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.whdc.model.entity.AddressBookOld; + +/** + * @author xusan + * @date 2024-05-11 + */ +public interface AddressBookOldMapper extends BaseMapper { + + +} \ No newline at end of file diff --git a/src/main/java/com/whdc/model/dto/AddressBootDto.java b/src/main/java/com/whdc/model/dto/AddressBookDto.java similarity index 95% rename from src/main/java/com/whdc/model/dto/AddressBootDto.java rename to src/main/java/com/whdc/model/dto/AddressBookDto.java index 862a3f3..b417e73 100644 --- a/src/main/java/com/whdc/model/dto/AddressBootDto.java +++ b/src/main/java/com/whdc/model/dto/AddressBookDto.java @@ -8,7 +8,7 @@ import lombok.Data; * @date 2023年3月20日08:57:22 */ @Data -public class AddressBootDto extends CommDto{ +public class AddressBookDto extends CommDto{ @ApiModelProperty(value = "用户单位id 或 组织id") private String dictId; diff --git a/src/main/java/com/whdc/model/dto/AddressBookOldDto.java b/src/main/java/com/whdc/model/dto/AddressBookOldDto.java new file mode 100644 index 0000000..17a38aa --- /dev/null +++ b/src/main/java/com/whdc/model/dto/AddressBookOldDto.java @@ -0,0 +1,18 @@ +package com.whdc.model.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author xusan + * @date 2023年3月20日08:57:22 + */ +@Data +public class AddressBookOldDto{ + + @ApiModelProperty(value = "名字") + private String name; + + @ApiModelProperty(value = "手机号") + private String phone; +} diff --git a/src/main/java/com/whdc/model/entity/AddressBookOld.java b/src/main/java/com/whdc/model/entity/AddressBookOld.java new file mode 100644 index 0000000..185a6e8 --- /dev/null +++ b/src/main/java/com/whdc/model/entity/AddressBookOld.java @@ -0,0 +1,63 @@ +package com.whdc.model.entity; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.whdc.model.group.Update; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * Description: + * Created by XuSan on 2024/6/11. + * + * @author XuSan + * @version 1.0 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Accessors(chain = true) +@ApiModel(description = "通讯录") +@TableName("FXKH_TXL.ADDRESS_BOOK_OLD") +public class AddressBookOld extends Model implements Serializable { + + @TableId(value = "ID",type = IdType.AUTO) + @ApiModelProperty(value = "id") + @NotNull(message = "id不能为空" , groups = {Update.class}) + private Integer id; + + @Excel(name = "市", width = 20) + @TableField("CTNM") + @ApiModelProperty(value = "市") + private String ctnm; + + @Excel(name = "区县", width = 20) + @TableField("CNNM") + @ApiModelProperty(value = "区县") + private String cnnm; + + @Excel(name = "姓名", width = 20) + @TableField("NAME") + @ApiModelProperty(value = "姓名") + private String name; + + @Excel(name = "职务", width = 50) + @TableField("POSITION") + @ApiModelProperty(value = "职务") + private String position; + + @Excel(name = "手机号", width = 30) + @TableField("PHONE") + @ApiModelProperty(value = "手机号") + private String phone; + +} diff --git a/src/main/java/com/whdc/service/IAddressBookOldService.java b/src/main/java/com/whdc/service/IAddressBookOldService.java new file mode 100644 index 0000000..d0ea220 --- /dev/null +++ b/src/main/java/com/whdc/service/IAddressBookOldService.java @@ -0,0 +1,16 @@ +package com.whdc.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.whdc.model.entity.AddressBookOld; + +/** + *

+ * 服务类 + *

+ * @author xusan + * @date 2024-05-11 + */ +public interface IAddressBookOldService extends IService { + + +} \ No newline at end of file diff --git a/src/main/java/com/whdc/service/IAddressBookService.java b/src/main/java/com/whdc/service/IAddressBookService.java index dab665a..8b4d416 100644 --- a/src/main/java/com/whdc/service/IAddressBookService.java +++ b/src/main/java/com/whdc/service/IAddressBookService.java @@ -2,10 +2,9 @@ package com.whdc.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; -import com.whdc.model.dto.AddressBootDto; +import com.whdc.model.dto.AddressBookDto; import com.whdc.model.entity.AddressBook; import com.whdc.model.vo.AddressBookVo; -import com.whdc.model.vo.ExcelABVo; import java.util.List; @@ -19,7 +18,7 @@ import java.util.List; public interface IAddressBookService extends IService { // 获取所有规则分页 - IPage page(AddressBootDto dto); + IPage page(AddressBookDto dto); // 获取所有规则 List find(AddressBook dto); diff --git a/src/main/java/com/whdc/service/impl/AddressBookOldServiceImpl.java b/src/main/java/com/whdc/service/impl/AddressBookOldServiceImpl.java new file mode 100644 index 0000000..0a1f25a --- /dev/null +++ b/src/main/java/com/whdc/service/impl/AddressBookOldServiceImpl.java @@ -0,0 +1,23 @@ +package com.whdc.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.whdc.mapper.AddressBookOldMapper; +import com.whdc.model.dto.AddressBookOldDto; +import com.whdc.model.entity.AddressBookOld; +import com.whdc.service.IAddressBookOldService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author xusan + * @date 2024-05-11 + */ +@Service +public class AddressBookOldServiceImpl extends ServiceImpl implements IAddressBookOldService { + +} diff --git a/src/main/java/com/whdc/service/impl/AddressBookServiceImpl.java b/src/main/java/com/whdc/service/impl/AddressBookServiceImpl.java index 77c413c..d0ef6ad 100644 --- a/src/main/java/com/whdc/service/impl/AddressBookServiceImpl.java +++ b/src/main/java/com/whdc/service/impl/AddressBookServiceImpl.java @@ -3,7 +3,7 @@ package com.whdc.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.whdc.mapper.AddressBookMapper; -import com.whdc.model.dto.AddressBootDto; +import com.whdc.model.dto.AddressBookDto; import com.whdc.model.entity.AddressBook; import com.whdc.model.vo.AddressBookVo; import com.whdc.service.IAddressBookService; @@ -28,7 +28,7 @@ public class AddressBookServiceImpl extends ServiceImpl page(AddressBootDto dto) { + public IPage page(AddressBookDto dto) { String adcd = dto.getAdcd(); diff --git a/src/main/resources/mapper/AddressBookOldMapper.xml b/src/main/resources/mapper/AddressBookOldMapper.xml new file mode 100644 index 0000000..8bbb0b3 --- /dev/null +++ b/src/main/resources/mapper/AddressBookOldMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file