Commit 2bdd7595 authored by 刘斌's avatar 刘斌

feat: 增加电话本

parent b1848be2
package com.anplus.hr.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.alibaba.cola.dto.PageResponse;
import com.anplus.hr.domain.params.EmployeePhoneBookListParam;
import com.anplus.hr.domain.vo.EmployeePhoneBookVo;
import com.anplus.hr.service.EmployeePhoneBookServ;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import top.binfast.common.core.constant.BusinessType;
import top.binfast.common.excel.annotion.ExcelExport;
import top.binfast.common.log.annotation.PinSysLog;
import java.util.List;
/**
* 电话本管理
*
* @author LiuBin
* @date 2025-11-19
*/
@Validated
@RestController
@RequestMapping("/employee/phoneBook")
public class EmployeePhoneBookCtrl {
@Resource
private EmployeePhoneBookServ employeePhoneBookServ;
/**
* 查询电话本管理列表
*/
@SaCheckPermission("employee:phoneBook:list")
@GetMapping("/page")
public PageResponse<EmployeePhoneBookVo> pageList(EmployeePhoneBookListParam param) {
return employeePhoneBookServ.queryPageList(param);
}
/**
* 导出电话本管理列表
*/
@ExcelExport(template = "电话本模板.xlsx", fill = true)
@SaCheckPermission("employee:phoneBook:export")
@PinSysLog(value = "电话本管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public List<EmployeePhoneBookVo> export(EmployeePhoneBookListParam param) {
return employeePhoneBookServ.queryList(param);
}
// /**
// * 获取电话本管理详细信息
// *
// * @param id 主键
// */
// @SaCheckPermission("hr:phoneBook:query")
// @GetMapping("/{id}")
// public SingleResponse<EmployeePhoneBookVo> getDetail(@PathVariable @Min(1)
// Long id) {
// return SingleResponse.of(employeePhoneBookServ.queryById(id));
// }
// /**
// * 新增电话本管理
// */
// @SaCheckPermission("hr:phoneBook:add")
// @PinSysLog(value = "电话本管理", businessType = BusinessType.INSERT)
// @PostMapping()
// public Response add(@Validated(AddGroup.class) @RequestBody EmployeePhoneBookParam param) {
// return ResponseUtils.ofResult(employeePhoneBookServ.insertByParam(param));
// }
//
// /**
// * 修改电话本管理
// */
// @SaCheckPermission("hr:phoneBook:edit")
// @PinSysLog(value = "电话本管理", businessType = BusinessType.UPDATE)
// @PutMapping()
// public Response edit(@Validated(EditGroup.class) @RequestBody EmployeePhoneBookParam param) {
// return ResponseUtils.ofResult(employeePhoneBookServ.updateByParam(param));
// }
// /**
// * 删除电话本管理
// *
// * @param ids 主键串
// */
// @SaCheckPermission("hr:phoneBook:remove")
// @PinSysLog(value = "电话本管理", businessType = BusinessType.DELETE)
// @DeleteMapping("/{ids}")
// public Response remove(@NotEmpty(message = "主键不能为空")
// @PathVariable Long[] ids) {
// return ResponseUtils.ofResult(employeePhoneBookServ.delByIds(List.of(ids)));
// }
}
\ No newline at end of file
package com.anplus.hr.domain.params;
import lombok.Getter;
import lombok.Setter;
import top.binfast.common.core.bean.params.PageQueryParam;
import java.util.HashMap;
import java.util.Map;
/**
* 电话本管理分页对象 employee_phone_book
*
* @author LiuBin
* @date 2025-11-19
*/
@Getter
@Setter
public class EmployeePhoneBookListParam extends PageQueryParam {
/**
* 板块
*/
private String plate;
/**
* 一级部门
*/
private String firstLevelDepartment;
/**
* 二级部门
*/
private String secondLevelDepartment;
/**
* 三级部门
*/
private String thirdLevelDepartment;
/**
* 部门ID
*/
private Long deptId;
/**
* 主岗位
*/
private String position;
/**
* 姓名
*/
private String name;
/**
* 手机号码
*/
private String phoneNumber;
/**
* 办公电话
*/
private String officePhone;
/**
* 短线
*/
private String shortLine;
/**
* 备注
*/
private String remarks;
private Map<String, Object> params = new HashMap<>();
}
package com.anplus.hr.domain.params;
import com.anplus.hr.domain.EmployeeInfo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import top.binfast.common.core.validate.AddGroup;
import top.binfast.common.core.validate.EditGroup;
/**
* 电话本管理业务对象 employee_phone_book
*
* @author LiuBin
* @date 2025-11-19
*/
@Data
@AutoMapper(target = EmployeeInfo.class, reverseConvertGenerate = false)
public class EmployeePhoneBookParam {
/**
* 主键
*/
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
private Long id;
/**
* 板块
*/
@NotBlank(message = "板块不能为空", groups = { AddGroup.class, EditGroup.class })
private String plate;
/**
* 一级部门
*/
@NotBlank(message = "一级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String firstLevelDepartment;
/**
* 二级部门
*/
@NotBlank(message = "二级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String secondLevelDepartment;
/**
* 三级部门
*/
@NotBlank(message = "三级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String thirdLevelDepartment;
/**
* 部门ID
*/
@NotNull(message = "部门ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long deptId;
/**
* 主岗位
*/
@NotBlank(message = "主岗位不能为空", groups = { AddGroup.class, EditGroup.class })
private String position;
/**
* 姓名
*/
@NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 手机号码
*/
@NotBlank(message = "手机号码不能为空", groups = { AddGroup.class, EditGroup.class })
private String phoneNumber;
/**
* 办公电话
*/
@NotBlank(message = "办公电话不能为空", groups = { AddGroup.class, EditGroup.class })
private String officePhone;
/**
* 短线
*/
@NotBlank(message = "短线不能为空", groups = { AddGroup.class, EditGroup.class })
private String shortLine;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remarks;
}
package com.anplus.hr.domain.vo;
import cn.idev.excel.annotation.ExcelIgnore;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.anplus.hr.domain.EmployeeInfo;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 电话本管理视图对象 employee_phone_book
*
* @author LiuBin
* @date 2025-11-19
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = EmployeeInfo.class)
public class EmployeePhoneBookVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ExcelIgnore
private Long id;
/**
* 板块
*/
@ExcelProperty(value = "板块")
private String plate;
/**
* 一级部门
*/
@ExcelProperty(value = "一级部门")
private String firstLevelDepartment;
/**
* 二级部门
*/
@ExcelProperty(value = "二级部门")
private String secondLevelDepartment;
/**
* 三级部门
*/
@ExcelProperty(value = "三级部门")
private String thirdLevelDepartment;
/**
* 部门ID
*/
@ExcelIgnore
private Long deptId;
/**
* 主岗位
*/
@ExcelProperty(value = "岗位")
private String position;
/**
* 姓名
*/
@ExcelProperty(value = "姓名")
private String name;
/**
* 手机号码
*/
@ExcelProperty(value = "手机")
private String phoneNumber;
/**
* 办公电话
*/
@ExcelProperty(value = "办公电话")
private String officePhone;
/**
* 短线
*/
@ExcelProperty(value = "短线")
private String shortLine;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remarks;
}
package com.anplus.hr.service;
import com.alibaba.cola.dto.PageResponse;
import com.anplus.hr.domain.EmployeeInfo;
import com.anplus.hr.domain.params.EmployeePhoneBookListParam;
import com.anplus.hr.domain.params.EmployeePhoneBookParam;
import com.anplus.hr.domain.vo.EmployeePhoneBookVo;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* 电话本管理Service接口
*
* @author LiuBin
* @date 2025-11-19
*/
public interface EmployeePhoneBookServ extends IService<EmployeeInfo> {
/**
* 分页查询电话本管理列表
*
* @param param 查询条件
* @return 电话本管理分页列表
*/
PageResponse<EmployeePhoneBookVo> queryPageList(EmployeePhoneBookListParam param);
/**
* 查询符合条件的电话本管理列表
*
* @param param 查询条件
* @return 电话本管理列表
*/
List<EmployeePhoneBookVo> queryList(EmployeePhoneBookListParam param);
/**
* 查询电话本管理
*
* @param id 主键
* @return 电话本管理
*/
EmployeePhoneBookVo queryById(Long id);
/**
* 新增电话本管理
*
* @param param 电话本管理
* @return 是否新增成功
*/
Boolean insertByParam(EmployeePhoneBookParam param);
/**
* 修改电话本管理
*
* @param param 电话本管理
* @return 是否修改成功
*/
Boolean updateByParam(EmployeePhoneBookParam param);
/**
* 校验并批量删除电话本管理信息
*
* @param ids 待删除的主键集合
* @return 是否删除成功
*/
Boolean delByIds(List<Long> ids);
}
package com.anplus.hr.service.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.cola.dto.PageResponse;
import com.anplus.hr.domain.EmployeeInfo;
import com.anplus.hr.domain.params.EmployeePhoneBookListParam;
import com.anplus.hr.domain.params.EmployeePhoneBookParam;
import com.anplus.hr.domain.vo.EmployeePhoneBookVo;
import com.anplus.hr.mapper.EmployeeInfoMapper;
import com.anplus.hr.service.EmployeePhoneBookServ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import top.binfast.common.core.util.MapstructUtils;
import top.binfast.common.mybatis.util.QueryUtil;
import java.util.List;
/**
* 电话本管理Service业务层处理
*
* @author LiuBin
* @date 2025-11-19
*/
@RequiredArgsConstructor
@Service
public class EmployeePhoneBookServImpl extends ServiceImpl<EmployeeInfoMapper, EmployeeInfo> implements EmployeePhoneBookServ {
private final EmployeeInfoMapper employeeInfoMapper;
/**
* 分页查询电话本管理列表
*
* @param param 查询条件
* @return 电话本管理分页列表
*/
@Override
public PageResponse<EmployeePhoneBookVo> queryPageList(EmployeePhoneBookListParam param) {
Page<EmployeeInfo> page = QueryUtil.getPage(param);
LambdaQueryWrapper<EmployeeInfo> lambdaQuery = this.buildQueryWrapper(param);
employeeInfoMapper.selectPage(page, lambdaQuery);
return QueryUtil.getPageResponse(page, MapstructUtils.convert(page.getRecords(), EmployeePhoneBookVo.class));
}
/**
* 查询符合条件的电话本管理列表
*
* @param param 查询条件
* @return 电话本管理列表
*/
@Override
public List<EmployeePhoneBookVo> queryList(EmployeePhoneBookListParam param) {
LambdaQueryWrapper<EmployeeInfo> lambdaQuery = this.buildQueryWrapper(param);
return MapstructUtils.convert(employeeInfoMapper.selectList(lambdaQuery), EmployeePhoneBookVo.class);
}
private LambdaQueryWrapper<EmployeeInfo> buildQueryWrapper(EmployeePhoneBookListParam param) {
LambdaQueryWrapper<EmployeeInfo> lambdaQuery = Wrappers.<EmployeeInfo>lambdaQuery();
lambdaQuery.orderByDesc(EmployeeInfo::getId);
lambdaQuery.eq(StrUtil.isNotBlank(param.getPlate()), EmployeeInfo::getPlate, param.getPlate());
lambdaQuery.eq(StrUtil.isNotBlank(param.getFirstLevelDepartment()), EmployeeInfo::getFirstLevelDepartment, param.getFirstLevelDepartment());
lambdaQuery.eq(StrUtil.isNotBlank(param.getSecondLevelDepartment()), EmployeeInfo::getSecondLevelDepartment, param.getSecondLevelDepartment());
lambdaQuery.eq(StrUtil.isNotBlank(param.getThirdLevelDepartment()), EmployeeInfo::getThirdLevelDepartment, param.getThirdLevelDepartment());
lambdaQuery.eq(param.getDeptId() != null, EmployeeInfo::getDeptId, param.getDeptId());
lambdaQuery.eq(StrUtil.isNotBlank(param.getPosition()), EmployeeInfo::getPosition, param.getPosition());
lambdaQuery.like(StrUtil.isNotBlank(param.getName()), EmployeeInfo::getName, param.getName());
lambdaQuery.eq(StrUtil.isNotBlank(param.getPhoneNumber()), EmployeeInfo::getPhoneNumber, param.getPhoneNumber());
lambdaQuery.eq(StrUtil.isNotBlank(param.getOfficePhone()), EmployeeInfo::getOfficePhone, param.getOfficePhone());
lambdaQuery.eq(StrUtil.isNotBlank(param.getShortLine()), EmployeeInfo::getShortLine, param.getShortLine());
lambdaQuery.eq(StrUtil.isNotBlank(param.getRemarks()), EmployeeInfo::getRemarks, param.getRemarks());
return lambdaQuery;
}
/**
* 查询电话本管理
*
* @param id 主键
* @return 电话本管理
*/
@Override
public EmployeePhoneBookVo queryById(Long id){
EmployeeInfo employeePhoneBook = employeeInfoMapper.selectById(id);
return MapstructUtils.convert(employeePhoneBook, EmployeePhoneBookVo.class);
}
/**
* 新增电话本管理
*
* @param param 电话本管理
* @return 是否新增成功
*/
@Override
public Boolean insertByParam(EmployeePhoneBookParam param) {
// EmployeeInfo employeePhoneBook = MapstructUtils.convert(param, EmployeeInfo.class);
// return this.save(employeePhoneBook);
return true;
}
/**
* 修改电话本管理
*
* @param param 电话本管理
* @return 是否修改成功
*/
@Override
public Boolean updateByParam(EmployeePhoneBookParam param) {
// EmployeeInfo employeePhoneBook = MapstructUtils.convert(param, EmployeeInfo.class);
// return this.updateById(employeePhoneBook);
return true;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EmployeeInfo entity){
// 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除电话本管理信息
*
* @param ids 待删除的主键集合
* @return 是否删除成功
*/
@Override
// @Transactional(rollbackFor = {Exception.class})
public Boolean delByIds(List<Long> ids) {
//做一些业务上的校验,判断是否需要校验
// return this.removeByIds(ids);
return true;
}
}
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