Merge branch 'master' of http://local.gunshiiot.com:10000/xjm/fxkh-txl-service
commit
27dbfbb722
|
|
@ -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<AddressBookVo> page(@RequestBody AddressBootDto dto) {
|
||||
public ResultJson<AddressBookVo> page(@RequestBody AddressBookDto dto) {
|
||||
dto.setUserId(String.valueOf(StpUtil.getLoginId()));
|
||||
IPage<AddressBookVo> 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<ExcelDataVo> getExcelData(MultipartFile file) {
|
||||
|
||||
List<ExcelABVo> 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<ExcelABVo> appends = ExcelCommon.importExcel(file, 0, 1, ExcelABVo.class);
|
||||
|
|
|
|||
|
|
@ -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<String,String> redisTemplate;
|
||||
|
||||
|
||||
|
||||
@ApiOperation(value = "查询所有联系人")
|
||||
@PostMapping(value = "find")
|
||||
public ResultJson<List<AddressBookOld>> find(@RequestBody AddressBookOldDto dto) {
|
||||
|
||||
LambdaQueryChainWrapper<AddressBookOld> 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<AddressBookOld> data = query.list();
|
||||
return ResultJson.ok(data);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "下载excel")
|
||||
@GetMapping(value = "downloadExcel")
|
||||
public void downloadExcel( HttpServletResponse response) {
|
||||
|
||||
List<AddressBookOld> list = service.lambdaQuery()
|
||||
.list();
|
||||
ExcelCommon.exportExcel(list,
|
||||
null, "防汛抗旱通讯录", AddressBookOld.class, "防汛抗旱通讯录_" + LocalDateTime.now() + ".xlsx",
|
||||
response);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "解析文件数据")
|
||||
@PostMapping(value = "getExcelData")
|
||||
public ResultJson<ExcelDataVo> getExcelData(MultipartFile file) {
|
||||
|
||||
List<AddressBookOld> 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<AddressBookOld> appends = JSON.parseArray(s, AddressBookOld.class);
|
||||
|
||||
if (CollectionUtils.isEmpty(appends)) {
|
||||
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);
|
||||
if (!r1) {
|
||||
throw new MyException("通讯录数据删除失败");
|
||||
}
|
||||
|
||||
|
||||
if (!service.saveBatch(appends)) {
|
||||
throw new MyException("表格数据新增失败");
|
||||
}
|
||||
|
||||
return ResultJson.ok("数据新增成功");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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<AddressBook> {
|
||||
|
||||
IPage<AddressBookVo> page(@Param("page") IPage<AddressBook> page, @Param("dto") AddressBootDto dto);
|
||||
IPage<AddressBookVo> page(@Param("page") IPage<AddressBook> page, @Param("dto") AddressBookDto dto);
|
||||
|
||||
List<AddressBook> find(@Param("dto") AddressBook dto);
|
||||
|
||||
|
|
|
|||
|
|
@ -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<AddressBookOld> {
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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<AddressBookOld> 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;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.whdc.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.whdc.model.entity.AddressBookOld;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
* @author xusan
|
||||
* @date 2024-05-11
|
||||
*/
|
||||
public interface IAddressBookOldService extends IService<AddressBookOld> {
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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<AddressBook> {
|
||||
|
||||
// 获取所有规则分页
|
||||
IPage<AddressBookVo> page(AddressBootDto dto);
|
||||
IPage<AddressBookVo> page(AddressBookDto dto);
|
||||
|
||||
// 获取所有规则
|
||||
List<AddressBook> find(AddressBook dto);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author xusan
|
||||
* @date 2024-05-11
|
||||
*/
|
||||
@Service
|
||||
public class AddressBookOldServiceImpl extends ServiceImpl<AddressBookOldMapper, AddressBookOld> implements IAddressBookOldService {
|
||||
|
||||
}
|
||||
|
|
@ -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<AddressBookMapper, Addre
|
|||
|
||||
|
||||
@Override
|
||||
public IPage<AddressBookVo> page(AddressBootDto dto) {
|
||||
public IPage<AddressBookVo> page(AddressBookDto dto) {
|
||||
|
||||
String adcd = dto.getAdcd();
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,94 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.whdc.mapper.AddressBookOldMapper">
|
||||
|
||||
<!-- AND AB.ADCD ${dto.v} #{dto.adcd}-->
|
||||
<select id="page" resultType="com.whdc.model.vo.AddressBookVo">
|
||||
SELECT
|
||||
AB.*,F.SORT FSORT,F.ID FCID,U.ROLE,F.TYPE FTYPE,IF(UD.NAME IS NOT NULL,UD.NAME,O.NAME) ONAME,A.ADNM
|
||||
FROM
|
||||
ADDRESS_BOOK AB
|
||||
LEFT JOIN FC F ON F.AB_ID = AB.ID AND F.USER_ID = #{dto.userId}
|
||||
LEFT JOIN ORGANIZATION O ON AB.ORGANIZATION = O.ID
|
||||
LEFT JOIN UNIT_DICT UD ON AB.ORGANIZATION = UD.ID
|
||||
LEFT JOIN ADINFO A ON AB.ADCD = A.ADCD
|
||||
LEFT JOIN AB_UD_R R ON R.AD_ID = AB.ID
|
||||
LEFT JOIN USERS U ON U.AB_ID = AB.ID
|
||||
WHERE 1=1
|
||||
<if test="dto.dictId != null and dto.dictId != '' ">
|
||||
AND R.DICT_ID = #{dto.dictId}
|
||||
</if>
|
||||
<if test="dto.type != null and dto.type != '' ">
|
||||
AND R.TYPE = #{dto.type}
|
||||
</if>
|
||||
<if test="dto.ftype != null and dto.ftype != '' ">
|
||||
AND F.TYPE = #{dto.ftype}
|
||||
</if>
|
||||
<if test="dto.name != null and dto.name != '' ">
|
||||
AND AB.NAME LIKE CONCAT('%', #{dto.name}, '%')
|
||||
</if>
|
||||
<if test="dto.adcd != null and dto.adcd != '' ">
|
||||
AND AB.ADCD ${dto.v} #{dto.adcd}
|
||||
</if>
|
||||
<if test="dto.phone != null and dto.phone != '' ">
|
||||
AND AB.PHONE LIKE CONCAT('', #{dto.phone}, '%')
|
||||
</if>
|
||||
<if test="dto.allLikeStr != null and dto.allLikeStr != '' ">
|
||||
AND (
|
||||
AB.NAME LIKE CONCAT('%', #{dto.allLikeStr}, '%')
|
||||
OR AB.PHONE LIKE CONCAT('%', #{dto.allLikeStr}, '%')
|
||||
OR AB.TEL LIKE CONCAT('%', #{dto.allLikeStr}, '%')
|
||||
OR AB.FAXES LIKE CONCAT('%', #{dto.allLikeStr}, '%')
|
||||
OR O.NAME LIKE CONCAT('%', #{dto.allLikeStr}, '%')
|
||||
OR UD.NAME LIKE CONCAT('%', #{dto.allLikeStr}, '%')
|
||||
OR A.ADNM LIKE CONCAT('%', #{dto.allLikeStr}, '%')
|
||||
OR AB.POSITION LIKE CONCAT('%', #{dto.allLikeStr}, '%')
|
||||
)
|
||||
</if>
|
||||
ORDER BY F.SORT NULLS LAST,F.SORT,R.SORT,AB.SORT
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getListByAdnm" resultType="com.whdc.model.entity.AddressBook">
|
||||
SELECT
|
||||
AB.*,
|
||||
A.ADNM
|
||||
FROM
|
||||
ADDRESS_BOOK AB
|
||||
LEFT JOIN ADINFO A ON AB.ADCD = A.ADCD AND AB.ADCD IS NOT NULL
|
||||
LEFT JOIN AB_UD_R R ON R.AD_ID = AB.ID
|
||||
<where>
|
||||
<if test="adcd != null and adcd != '' ">
|
||||
A.ADCD = #{adcd}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY R.SORT
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getVoById" resultType="com.whdc.model.vo.AddressBookVo">
|
||||
SELECT
|
||||
AB.*,IF(UD.NAME IS NOT NULL,UD.NAME,O.NAME) ONAME,A.ADNM
|
||||
FROM
|
||||
ADDRESS_BOOK AB
|
||||
LEFT JOIN ORGANIZATION O ON AB.ORGANIZATION = O.ID
|
||||
LEFT JOIN UNIT_DICT UD ON AB.ORGANIZATION = UD.ID
|
||||
LEFT JOIN ADINFO A ON AB.ADCD = A.ADCD
|
||||
WHERE AB.id = #{id}
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<select id="getVoByOpenid" resultType="com.whdc.model.vo.AddressBookVo">
|
||||
SELECT
|
||||
AB.*,IF(UD.NAME IS NOT NULL,UD.NAME,O.NAME) ONAME,A.ADNM
|
||||
FROM
|
||||
ADDRESS_BOOK AB
|
||||
LEFT JOIN ORGANIZATION O ON AB.ORGANIZATION = O.ID
|
||||
LEFT JOIN UNIT_DICT UD ON AB.ORGANIZATION = UD.ID
|
||||
LEFT JOIN ADINFO A ON AB.ADCD = A.ADCD
|
||||
WHERE AB.OPENID = #{id}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue