市级责任人抽查模块开发
parent
7e4772db46
commit
da00fc2b1a
|
|
@ -0,0 +1,185 @@
|
||||||
|
package com.whdc.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.whdc.mapper.AddressBookCityMapper;
|
||||||
|
import com.whdc.model.dto.AddressBookCityDto;
|
||||||
|
import com.whdc.model.entity.AddressBookCity;
|
||||||
|
import com.whdc.model.group.Insert;
|
||||||
|
import com.whdc.model.group.Update;
|
||||||
|
import com.whdc.service.IAddressBookCityService;
|
||||||
|
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.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
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.Objects;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
|
import static com.whdc.model.MyConstant.DEL;
|
||||||
|
import static com.whdc.model.MyConstant.REC;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* Created by XuSan on 2024/8/21.
|
||||||
|
*
|
||||||
|
* @author XuSan
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Api(tags = "市级责任人通讯录 - Controller")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/addressbookCity")
|
||||||
|
@Transactional
|
||||||
|
public class AddressBookCityController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AddressBookCityMapper thisMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IAddressBookCityService thisService;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "分页查询")
|
||||||
|
@PostMapping(value = "page")
|
||||||
|
public ResultJson<AddressBookCity> page(@RequestBody AddressBookCityDto dto) {
|
||||||
|
LambdaQueryWrapper<AddressBookCity> query = new LambdaQueryWrapper<>();
|
||||||
|
if (!Objects.isNull(dto.getName())) {
|
||||||
|
query.like(AddressBookCity::getName, dto.getName());
|
||||||
|
}
|
||||||
|
if (!Objects.isNull(dto.getUnit())) {
|
||||||
|
query.like(AddressBookCity::getUnit, dto.getUnit());
|
||||||
|
}
|
||||||
|
if (!Objects.isNull(dto.getPhone())) {
|
||||||
|
query.like(AddressBookCity::getPhone, dto.getPhone());
|
||||||
|
}
|
||||||
|
query.eq(AddressBookCity::getDel, REC);
|
||||||
|
query.orderByAsc(AddressBookCity::getId);
|
||||||
|
return ResultJson.ok(thisMapper.selectPage(dto.getPage(), query));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "添加")
|
||||||
|
@PostMapping(value = "save")
|
||||||
|
public ResultJson<Boolean> insert(@RequestBody @Validated(Insert.class) AddressBookCity model) {
|
||||||
|
LambdaQueryWrapper<AddressBookCity> query = new LambdaQueryWrapper<>();
|
||||||
|
query.eq(AddressBookCity::getName, model.getName());
|
||||||
|
query.eq(AddressBookCity::getPhone, model.getPhone());
|
||||||
|
query.eq(AddressBookCity::getDel, REC);
|
||||||
|
|
||||||
|
if (thisMapper.selectCount(query) > 0) {
|
||||||
|
return ResultJson.error("当前名字,手机号已存在");
|
||||||
|
}
|
||||||
|
model.setId(null);
|
||||||
|
return ResultJson.ok(thisMapper.insert(model) == 1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "修改")
|
||||||
|
@PostMapping(value = "edit")
|
||||||
|
public ResultJson<Boolean> update(@RequestBody @Validated(Update.class) AddressBookCity model) {
|
||||||
|
|
||||||
|
AddressBookCity obj = thisMapper.selectById(model.getId());
|
||||||
|
if (Objects.isNull(obj)) {
|
||||||
|
return ResultJson.error("当前数据不存在");
|
||||||
|
}
|
||||||
|
LambdaQueryWrapper<AddressBookCity> query = new LambdaQueryWrapper<>();
|
||||||
|
query.eq(AddressBookCity::getName, model.getName());
|
||||||
|
query.eq(AddressBookCity::getPhone, model.getPhone());
|
||||||
|
query.eq(AddressBookCity::getDel, REC);
|
||||||
|
query.ne(AddressBookCity::getId, model.getId());
|
||||||
|
|
||||||
|
if (thisMapper.selectCount(query) > 0) {
|
||||||
|
return ResultJson.error("当前名字,手机号已存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResultJson.ok(thisMapper.updateById(model) == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "删除")
|
||||||
|
@GetMapping(value = "del/{id}")
|
||||||
|
public ResultJson<Boolean> delete(@PathVariable("id") Integer id) {
|
||||||
|
|
||||||
|
|
||||||
|
if (Objects.isNull(thisMapper.selectById(id))) {
|
||||||
|
|
||||||
|
return ResultJson.error("当前数据不存在");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResultJson.ok(thisMapper.deleteById(id) == 1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "导出")
|
||||||
|
@PostMapping(value = "download")
|
||||||
|
public void download(HttpServletResponse response,@RequestBody AddressBookCityDto dto) {
|
||||||
|
LambdaQueryWrapper<AddressBookCity> query = new LambdaQueryWrapper<>();
|
||||||
|
if (!Objects.isNull(dto.getName())) {
|
||||||
|
query.like(AddressBookCity::getName, dto.getName());
|
||||||
|
}
|
||||||
|
if (!Objects.isNull(dto.getUnit())) {
|
||||||
|
query.like(AddressBookCity::getUnit, dto.getUnit());
|
||||||
|
}
|
||||||
|
if (!Objects.isNull(dto.getPhone())) {
|
||||||
|
query.like(AddressBookCity::getPhone, dto.getPhone());
|
||||||
|
}
|
||||||
|
query.eq(AddressBookCity::getDel, REC);
|
||||||
|
query.orderByAsc(AddressBookCity::getId);
|
||||||
|
List<AddressBookCity> list = thisMapper.selectList(query);
|
||||||
|
|
||||||
|
AtomicInteger i = new AtomicInteger(1);
|
||||||
|
list.forEach(o -> o.setId(i.getAndIncrement()));
|
||||||
|
ExcelCommon.exportExcel(list,
|
||||||
|
null, "市级责任人通讯录", AddressBookCity.class, "市级责任人通讯录" + LocalDateTime.now() + ".xlsx",
|
||||||
|
response);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "导入")
|
||||||
|
@PostMapping(value = "Import")
|
||||||
|
public ResultJson<String> Import(MultipartFile file) {
|
||||||
|
|
||||||
|
List<AddressBookCity> appends = ExcelCommon.importExcel(file, 0, 1, AddressBookCity.class);
|
||||||
|
|
||||||
|
if (CollectionUtils.isNotEmpty(appends)) {
|
||||||
|
long count = appends.stream().filter(o -> StringUtils.isEmpty(o.getName()) || StringUtils.isEmpty(o.getPhone()))
|
||||||
|
.count();
|
||||||
|
if (count > 0) {
|
||||||
|
return ResultJson.error("姓名和手机号不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean update = thisService.lambdaUpdate().set(AddressBookCity::getDel, DEL)
|
||||||
|
.eq(AddressBookCity::getDel, REC)
|
||||||
|
.update();
|
||||||
|
if (!update) {
|
||||||
|
log.info("更新失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
appends.forEach(o -> o.setId(null)
|
||||||
|
.setName(StringUtils.deleteWhitespace(o.getName()))
|
||||||
|
.setPhone(StringUtils.deleteWhitespace(o.getPhone()))
|
||||||
|
.setUnit(StringUtils.deleteWhitespace(o.getUnit()))
|
||||||
|
.setPosition(StringUtils.deleteWhitespace(o.getPosition()))
|
||||||
|
.setComments(StringUtils.deleteWhitespace(o.getComments()))
|
||||||
|
);
|
||||||
|
|
||||||
|
boolean data = thisService.saveBatch(appends);
|
||||||
|
if (data) {
|
||||||
|
return ResultJson.ok("上传成功");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ResultJson.error("上传失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.whdc.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.whdc.model.entity.AddressBookCity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xusan
|
||||||
|
* @date 2024-05-11
|
||||||
|
*/
|
||||||
|
public interface AddressBookCityMapper extends BaseMapper<AddressBookCity> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.whdc.model.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author xusan
|
||||||
|
* @Date 2024/5/13 10:17
|
||||||
|
* @Notes
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel(description = "市县通讯录")
|
||||||
|
public class AddressBookCityDto extends FindPageDto {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 职务
|
||||||
|
*/
|
||||||
|
@Schema(description = "职务")
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 名字
|
||||||
|
*/
|
||||||
|
@Schema(description = "姓名")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
@Schema(description = "电话")
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,98 @@
|
||||||
|
package com.whdc.model.entity;
|
||||||
|
|
||||||
|
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.whdc.model.group.Insert;
|
||||||
|
import com.whdc.model.group.Update;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* Created by XuSan on 2024/8/21.
|
||||||
|
*
|
||||||
|
* @author XuSan
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@Schema(description = "市县责任人通讯录")
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName(value = "FXKH_TXL.ADDRESS_BOOK_CITY",autoResultMap = true)
|
||||||
|
public class AddressBookCity implements Serializable {
|
||||||
|
|
||||||
|
|
||||||
|
public final static String thisTableName = "AddressBookCity";
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
@Schema(description = "主键id")
|
||||||
|
@NotNull(message = "主键id不能为空",groups = Update.class)
|
||||||
|
@Excel(name = "序号", width = 20,orderNum = "0")
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 职务
|
||||||
|
*/
|
||||||
|
@TableField(value = "UNIT")
|
||||||
|
@Schema(description = "职务")
|
||||||
|
@Size(max = 50, message = "职务最大长度要小于 50")
|
||||||
|
@Excel(name = "单位", width = 40,orderNum = "1")
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 名字
|
||||||
|
*/
|
||||||
|
@TableField(value = "name")
|
||||||
|
@Schema(description = "姓名")
|
||||||
|
@Size(max = 50, message = "名字最大长度要小于 50")
|
||||||
|
@NotEmpty(message = "姓名不能为空",groups = {Insert.class,Update.class})
|
||||||
|
@Excel(name = "姓名", width = 20,orderNum = "2")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 职务
|
||||||
|
*/
|
||||||
|
@TableField(value = "position")
|
||||||
|
@Schema(description = "职务")
|
||||||
|
@Size(max = 50, message = "职务最大长度要小于 50")
|
||||||
|
@Excel(name = "职务", width = 20,orderNum = "3")
|
||||||
|
private String position;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
@TableField(value = "phone")
|
||||||
|
@Schema(description = "电话")
|
||||||
|
@Size(max = 50, message = "电话最大长度要小于 50")
|
||||||
|
@NotEmpty (message = "电话不能为空",groups = {Insert.class,Update.class})
|
||||||
|
@Excel(name = "电话", width = 20,orderNum = "4")
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@TableField(value = "COMMENTS",updateStrategy = FieldStrategy.IGNORED)
|
||||||
|
@Schema(description = "备注")
|
||||||
|
@Size(max = 50, message = "备注最大长度要小于 50")
|
||||||
|
@Excel(name = "备注", width = 20,orderNum = "4")
|
||||||
|
private String comments;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@TableField(value = "DEL")
|
||||||
|
@Schema(description = "删除标识:1:未删除,0:已删除")
|
||||||
|
private String del;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.whdc.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.whdc.model.entity.AddressBookCity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
* @author xusan
|
||||||
|
* @date 2024-05-11
|
||||||
|
*/
|
||||||
|
public interface IAddressBookCityService extends IService<AddressBookCity> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.whdc.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.whdc.mapper.AddressBookCityMapper;
|
||||||
|
import com.whdc.model.entity.AddressBookCity;
|
||||||
|
import com.whdc.service.IAddressBookCityService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xusan
|
||||||
|
* @date 2024-05-11
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class AddressBookCityServiceImpl extends ServiceImpl<AddressBookCityMapper, AddressBookCity> implements IAddressBookCityService {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -51,6 +51,8 @@ public class ShAddressBookServiceImpl extends ServiceImpl<ShAddressBookMapper, S
|
||||||
throw new MyException("文件解析数据为空");
|
throw new MyException("文件解析数据为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AtomicInteger sort = new AtomicInteger(0);
|
||||||
|
|
||||||
appends.forEach(o->{
|
appends.forEach(o->{
|
||||||
String phone = o.getPhone();
|
String phone = o.getPhone();
|
||||||
if (StringUtils.isNotBlank(phone)){
|
if (StringUtils.isNotBlank(phone)){
|
||||||
|
|
@ -60,6 +62,9 @@ public class ShAddressBookServiceImpl extends ServiceImpl<ShAddressBookMapper, S
|
||||||
if (StringUtils.isNotBlank(name)){
|
if (StringUtils.isNotBlank(name)){
|
||||||
o.setName(StringUtils.deleteWhitespace(name));
|
o.setName(StringUtils.deleteWhitespace(name));
|
||||||
}
|
}
|
||||||
|
if (Objects.isNull(o.getSort())) {
|
||||||
|
o.setSort(sort.getAndIncrement());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 去重
|
// 去重
|
||||||
|
|
@ -103,7 +108,7 @@ public class ShAddressBookServiceImpl extends ServiceImpl<ShAddressBookMapper, S
|
||||||
|
|
||||||
// 添加第一类型
|
// 添加第一类型
|
||||||
String finalType1Str1 = type1Str;
|
String finalType1Str1 = type1Str;
|
||||||
AtomicInteger sort = new AtomicInteger(0);
|
|
||||||
appends.forEach(o -> {
|
appends.forEach(o -> {
|
||||||
|
|
||||||
// 设置负责区域
|
// 设置负责区域
|
||||||
|
|
@ -141,9 +146,7 @@ public class ShAddressBookServiceImpl extends ServiceImpl<ShAddressBookMapper, S
|
||||||
}
|
}
|
||||||
|
|
||||||
o.setType1(finalType1Str1);
|
o.setType1(finalType1Str1);
|
||||||
if (Objects.isNull(o.getSort())) {
|
|
||||||
o.setSort(sort.getAndIncrement());
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean b = this.saveBatch(appends);
|
boolean b = this.saveBatch(appends);
|
||||||
|
|
|
||||||
|
|
@ -11,12 +11,12 @@ spring:
|
||||||
datasource:
|
datasource:
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
driver-class-name: dm.jdbc.driver.DmDriver
|
driver-class-name: dm.jdbc.driver.DmDriver
|
||||||
url: jdbc:dm://local.gunshiiot.com:5236?schema=FXKH_TXL
|
# url: jdbc:dm://local.gunshiiot.com:5236?schema=FXKH_TXL
|
||||||
username: SYSDBA
|
# username: SYSDBA
|
||||||
password: SYSDBA001
|
# password: SYSDBA001
|
||||||
# url: jdbc:dm://10.42.6.247:5236?schema=FXKH_TXL
|
url: jdbc:dm://10.42.6.247:5236?schema=FXKH_TXL
|
||||||
# username: SHZH
|
username: SHZH
|
||||||
# password: Shzh_890
|
password: Shzh_890
|
||||||
druid:
|
druid:
|
||||||
initialSize: 5
|
initialSize: 5
|
||||||
minIdle: 5
|
minIdle: 5
|
||||||
|
|
@ -41,13 +41,13 @@ spring:
|
||||||
# Redis
|
# Redis
|
||||||
redis:
|
redis:
|
||||||
database: 5
|
database: 5
|
||||||
# host: 10.42.6.75
|
host: 10.42.6.75
|
||||||
|
password: Whdc_890
|
||||||
|
# host: 10.0.41.112
|
||||||
|
# password: 1234567a
|
||||||
# host: 127.0.0.1
|
# host: 127.0.0.1
|
||||||
# password:
|
# password:
|
||||||
# password: Whdc_890
|
|
||||||
port: 6379
|
port: 6379
|
||||||
host: 10.0.41.112
|
|
||||||
password: 1234567a
|
|
||||||
servlet:
|
servlet:
|
||||||
multipart:
|
multipart:
|
||||||
max-file-size: 1100MB
|
max-file-size: 1100MB
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?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.AddressBookCityMapper">
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
AND C.SH_AB_ID = #{dto.shAbId}
|
AND C.SH_AB_ID = #{dto.shAbId}
|
||||||
</if>
|
</if>
|
||||||
<if test="dto.phone != null and dto.phone != '' ">
|
<if test="dto.phone != null and dto.phone != '' ">
|
||||||
AND AB.PHONE = #{dto.phone}
|
AND AB.PHONE LIKE CONCAT('%', #{dto.phone}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="dto.land != null and dto.land != '' ">
|
<if test="dto.land != null and dto.land != '' ">
|
||||||
AND AB.LAND = #{dto.land}
|
AND AB.LAND = #{dto.land}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue