From 3aca2f84dd3465ffa63bcc5bac75661e2354607b Mon Sep 17 00:00:00 2001 From: hdka <823267011@qq.com> Date: Sat, 8 Mar 2025 18:20:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EmployeeFilesController.java | 73 +++++++++ .../EmployeeOnboardingController.java | 8 +- .../com/ruoyi/oa/domain/EmployeeFiles.java | 55 +++++++ .../ruoyi/oa/domain/EmployeeOnboarding.java | 2 + .../ruoyi/oa/domain/bo/EmployeeFilesBo.java | 65 ++++++++ .../oa/domain/bo/EmployeeOnboardingBo.java | 3 + .../ruoyi/oa/domain/vo/EmployeeFilesVo.java | 53 +++++++ .../oa/domain/vo/EmployeeOnboardingVo.java | 7 + .../java/com/ruoyi/oa/domain/vo/FileUser.java | 31 ++++ .../com/ruoyi/oa/domain/vo/UserFilesVo.java | 18 +++ .../ruoyi/oa/mapper/EmployeeFilesMapper.java | 26 ++++ .../oa/mapper/EmployeeOnboardingMapper.java | 9 ++ .../oa/service/IEmployeeFilesService.java | 58 ++++++++ .../service/IEmployeeOnboardingService.java | 8 + .../impl/EmployeeFilesServiceImpl.java | 140 ++++++++++++++++++ .../impl/EmployeeOnboardingServiceImpl.java | 27 ++-- .../mapper/oa/EmployeeFilesMapper.xml | 39 +++++ .../mapper/oa/EmployeeOnboardingMapper.xml | 52 ++++++- .../views/components/CheckInDetail/index.vue | 0 19 files changed, 656 insertions(+), 18 deletions(-) create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeFilesController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/EmployeeFiles.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/EmployeeFilesBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/EmployeeFilesVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/FileUser.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/UserFilesVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/EmployeeFilesMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IEmployeeFilesService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeFilesServiceImpl.java create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/EmployeeFilesMapper.xml create mode 100644 ruoyi-ui/src/views/components/CheckInDetail/index.vue diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeFilesController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeFilesController.java new file mode 100644 index 0000000..f8efa60 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeFilesController.java @@ -0,0 +1,73 @@ +package com.ruoyi.oa.controller; + +import java.util.List; +import java.util.Arrays; + +import com.ruoyi.oa.domain.vo.FileUser; +import com.ruoyi.oa.domain.vo.UserFilesVo; +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.oa.domain.vo.EmployeeFilesVo; +import com.ruoyi.oa.domain.bo.EmployeeFilesBo; +import com.ruoyi.oa.service.IEmployeeFilesService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 文件档案管理 + * + * @author hdka + * @date 2025-03-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/oa/files") +public class EmployeeFilesController extends BaseController { + + private final IEmployeeFilesService iEmployeeFilesService; + + /** + * 查询文件档案管理列表 + */ + @SaCheckPermission("oa:files:list") + @GetMapping("/list") + public TableDataInfo list(EmployeeFilesBo bo, PageQuery pageQuery) { + return iEmployeeFilesService.queryPageList(bo, pageQuery); + } + + /** + * 获取文件档案管理详细信息 + * + * @param userId 主键 + */ + @SaCheckPermission("oa:files:query") + @GetMapping("/{userId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("userId") Long userId) { + return R.ok(iEmployeeFilesService.queryUserFilesVoByUserId(userId)); + } + + /** + * 新增文件档案管理 + */ + @SaCheckPermission("oa:files:add") + @Log(title = "文件档案管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody UserFilesVo filesVo) { + return toAjax(iEmployeeFilesService.insertByBo(filesVo)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOnboardingController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOnboardingController.java index 3f6b2c9..aa1c459 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOnboardingController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOnboardingController.java @@ -63,13 +63,13 @@ public class EmployeeOnboardingController extends BaseController { /** * 获取入职管理详细信息 * - * @param onboardingId 主键 + * @param userId 主键 */ @SaCheckPermission("system:onboarding:query") - @GetMapping("/{onboardingId}") + @GetMapping("/{userId}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long onboardingId) { - return R.ok(iEmployeeOnboardingService.queryById(onboardingId)); + @PathVariable Long userId) { + return R.ok(iEmployeeOnboardingService.queryByUserId(userId)); } /** diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/EmployeeFiles.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/EmployeeFiles.java new file mode 100644 index 0000000..bcf3ccc --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/EmployeeFiles.java @@ -0,0 +1,55 @@ +package com.ruoyi.oa.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 文件档案管理对象 employee_files + * + * @author hdka + * @date 2025-03-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("employee_files") +public class EmployeeFiles extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 文件ID + */ + @TableId(value = "file_id") + private Long fileId; + /** + * 用户ID (外键) + */ + private Long userId; + /** + * 文件类型(hukou,id_card,bank_card,honor_certificate,education_proof) + */ + private Long fileType; + /** + * 文件名称 + */ + private String fileName; + /** + * 文件存储路径 + */ + private String filePath; + /** + * 上传时间 + */ + private Date uploadTime; + /** + * 删除标识 + */ + @TableLogic + private Integer delFlag; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/EmployeeOnboarding.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/EmployeeOnboarding.java index 13a1d5f..e3ffc7f 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/EmployeeOnboarding.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/EmployeeOnboarding.java @@ -99,4 +99,6 @@ public class EmployeeOnboarding extends BaseEntity { * 紧急联系人2 */ private String emergencyContact2; + + private Long status; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/EmployeeFilesBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/EmployeeFilesBo.java new file mode 100644 index 0000000..fdb7fa3 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/EmployeeFilesBo.java @@ -0,0 +1,65 @@ +package com.ruoyi.oa.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseEntity; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 文件档案管理业务对象 employee_files + * + * @author hdka + * @date 2025-03-08 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class EmployeeFilesBo extends BaseEntity { + + /** + * 文件ID + */ + private Long fileId; + + /** + * 用户ID (外键) + */ + private Long userId; + + /** + * 文件类型 + */ + private Long fileType; + + /** + * 文件名称 + */ + private String fileName; + + /** + * 文件存储路径 + */ + private String filePath; + + /** + * 上传时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date uploadTime; + + /** + * 用户姓名 + */ + private String nickName; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/EmployeeOnboardingBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/EmployeeOnboardingBo.java index c5a24a2..db7ca9d 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/EmployeeOnboardingBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/EmployeeOnboardingBo.java @@ -113,4 +113,7 @@ public class EmployeeOnboardingBo extends BaseEntity { private String address; + private String nickName; + + private Long status; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/EmployeeFilesVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/EmployeeFilesVo.java new file mode 100644 index 0000000..2b756b0 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/EmployeeFilesVo.java @@ -0,0 +1,53 @@ +package com.ruoyi.oa.domain.vo; + +import java.util.Date; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + + +/** + * 文件档案管理视图对象 employee_files + * + * @author hdka + * @date 2025-03-08 + */ +@Data +@ExcelIgnoreUnannotated +public class EmployeeFilesVo { + + private static final long serialVersionUID = 1L; + + /** + * 文件ID + */ + private Long fileId; + + /** + * 用户ID (外键) + */ + private Long userId; + + /** + * 文件类型(hukou,id_card,bank_card,honor_certificate,education_proof) + */ + private Long fileType; + + /** + * 文件名称 + */ + private String fileName; + + /** + * 文件存储路径 + */ + private String filePath; + + /** + * 上传时间 + */ + private Date uploadTime; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/EmployeeOnboardingVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/EmployeeOnboardingVo.java index 2b210eb..312646d 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/EmployeeOnboardingVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/EmployeeOnboardingVo.java @@ -148,5 +148,12 @@ public class EmployeeOnboardingVo extends EmployeeOnboarding { /** 银行卡号 */ private String bankCard; + /** 至今工作时间 */ + private Long workTime; + /** 是否转正 */ + private Long confirmStatus; + + + private Long status; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/FileUser.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/FileUser.java new file mode 100644 index 0000000..a5c54fc --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/FileUser.java @@ -0,0 +1,31 @@ +package com.ruoyi.oa.domain.vo; + +import com.ruoyi.common.core.domain.entity.SysUser; +import lombok.Data; + +import java.util.Date; + + +@Data +public class FileUser extends SysUser { + + /** + * 入职日期 + */ + private Date joiningDate; + + /** + * 姓名 + */ + private String nickName; + + /** + * userId + */ + private Long userId; + + /** + * 文件数 + */ + private Long fileTotal; +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/UserFilesVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/UserFilesVo.java new file mode 100644 index 0000000..5031d90 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/UserFilesVo.java @@ -0,0 +1,18 @@ +package com.ruoyi.oa.domain.vo; + + +import lombok.Data; + +import java.util.List; + +@Data +public class UserFilesVo { + + private Long userId; + + private String nickName; + + private String phonenumber; + + private List fileList; +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/EmployeeFilesMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/EmployeeFilesMapper.java new file mode 100644 index 0000000..e1f262e --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/EmployeeFilesMapper.java @@ -0,0 +1,26 @@ +package com.ruoyi.oa.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.oa.domain.EmployeeFiles; +import com.ruoyi.oa.domain.OaSalary; +import com.ruoyi.oa.domain.vo.EmployeeFilesVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; +import com.ruoyi.oa.domain.vo.FileUser; +import org.apache.ibatis.annotations.Param; + +/** + * 文件档案管理Mapper接口 + * + * @author hdka + * @date 2025-03-08 + */ +public interface EmployeeFilesMapper extends BaseMapperPlus { + + Page selectFileUserVoPage(Page build,@Param(Constants.WRAPPER) Wrapper userLambdaQueryWrapper); + + void deleteByUserId(Long userId); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/EmployeeOnboardingMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/EmployeeOnboardingMapper.java index 1c95d43..d943858 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/EmployeeOnboardingMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/EmployeeOnboardingMapper.java @@ -1,9 +1,14 @@ package com.ruoyi.oa.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.mapper.BaseMapperPlus; import com.ruoyi.oa.domain.EmployeeOnboarding; import com.ruoyi.oa.domain.vo.EmployeeOnboardingVo; +import org.apache.ibatis.annotations.Param; /** * 入职管理Mapper接口 @@ -14,4 +19,8 @@ import com.ruoyi.oa.domain.vo.EmployeeOnboardingVo; public interface EmployeeOnboardingMapper extends BaseMapperPlus { Boolean updateByUserId(EmployeeOnboarding update); + + Page selectVoPagePlus(Page build,@Param(Constants.WRAPPER) Wrapper lqw); + + EmployeeOnboardingVo selectVoByUserId(Long userId); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IEmployeeFilesService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IEmployeeFilesService.java new file mode 100644 index 0000000..fcde4ca --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IEmployeeFilesService.java @@ -0,0 +1,58 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.vo.EmployeeFilesVo; +import com.ruoyi.oa.domain.bo.EmployeeFilesBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.oa.domain.vo.FileUser; +import com.ruoyi.oa.domain.vo.UserFilesVo; + +import javax.validation.constraints.NotNull; +import java.util.Collection; +import java.util.List; + +/** + * 文件档案管理Service接口 + * + * @author hdka + * @date 2025-03-08 + */ +public interface IEmployeeFilesService { + + /** + * 查询文件档案管理 + */ + EmployeeFilesVo queryById(Long fileId); + + /** + * 查询文件档案管理列表 + */ + TableDataInfo queryPageList(EmployeeFilesBo bo, PageQuery pageQuery); + + /** + * 查询文件档案管理列表 + */ + List queryList(EmployeeFilesBo bo); + + /** + * 新增文件档案管理 + */ + Boolean insertByBo(UserFilesVo userFilesVo); + + /** + * 修改文件档案管理 + */ + Boolean updateByBo(EmployeeFilesBo bo); + + /** + * 校验并批量删除文件档案管理信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 查询此用户的大概信息和文件列表 + * @param userId + * @return + */ + UserFilesVo queryUserFilesVoByUserId(@NotNull(message = "主键不能为空") Long userId); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IEmployeeOnboardingService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IEmployeeOnboardingService.java index 892c533..3240ecb 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IEmployeeOnboardingService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IEmployeeOnboardingService.java @@ -6,6 +6,7 @@ import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.oa.domain.bo.EmployeeOnboardingBo; import com.ruoyi.oa.domain.vo.EmployeeOnboardingVo; +import javax.validation.constraints.NotNull; import java.util.Collection; import java.util.List; @@ -46,4 +47,11 @@ public interface IEmployeeOnboardingService { * 校验并批量删除入职管理信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 查询入职信息 + * @param userId + * @return + */ + EmployeeOnboardingVo queryByUserId(@NotNull(message = "主键不能为空") Long userId); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeFilesServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeFilesServiceImpl.java new file mode 100644 index 0000000..bb3a204 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeFilesServiceImpl.java @@ -0,0 +1,140 @@ +package com.ruoyi.oa.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.oa.domain.vo.FileUser; +import com.ruoyi.oa.domain.vo.UserFilesVo; +import com.ruoyi.system.service.ISysUserService; +import liquibase.pro.packaged.A; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.oa.domain.bo.EmployeeFilesBo; +import com.ruoyi.oa.domain.vo.EmployeeFilesVo; +import com.ruoyi.oa.domain.EmployeeFiles; +import com.ruoyi.oa.mapper.EmployeeFilesMapper; +import com.ruoyi.oa.service.IEmployeeFilesService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 文件档案管理Service业务层处理 + * + * @author hdka + * @date 2025-03-08 + */ +@RequiredArgsConstructor +@Service +public class EmployeeFilesServiceImpl implements IEmployeeFilesService { + + private final EmployeeFilesMapper baseMapper; + + @Autowired + private ISysUserService userService; + + /** + * 查询文件档案管理 + */ + @Override + public EmployeeFilesVo queryById(Long fileId){ + return baseMapper.selectVoById(fileId); + } + + /** + * 查询文件档案管理列表 + */ + @Override + public TableDataInfo queryPageList(EmployeeFilesBo bo, PageQuery pageQuery) { + LambdaQueryWrapper userLambdaQueryWrapper = new LambdaQueryWrapper<>(); + userLambdaQueryWrapper.like(bo.getNickName() != null, SysUser::getNickName, bo.getNickName()); + Page result = baseMapper.selectFileUserVoPage(pageQuery.build(), userLambdaQueryWrapper); + return TableDataInfo.build(result); + } + + /** + * 查询文件档案管理列表 + */ + @Override + public List queryList(EmployeeFilesBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(EmployeeFilesBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getUserId() != null, EmployeeFiles::getUserId, bo.getUserId()); + lqw.eq(bo.getFileType() != null, EmployeeFiles::getFileType, bo.getFileType()); + lqw.like(StringUtils.isNotBlank(bo.getFileName()), EmployeeFiles::getFileName, bo.getFileName()); + lqw.eq(StringUtils.isNotBlank(bo.getFilePath()), EmployeeFiles::getFilePath, bo.getFilePath()); + lqw.eq(bo.getUploadTime() != null, EmployeeFiles::getUploadTime, bo.getUploadTime()); + return lqw; + } + + /** + * 新增文件档案管理 + */ + @Override + public Boolean insertByBo(UserFilesVo userFilesVo) { + // 删除该用户所有的文件,重新填入 + baseMapper.deleteByUserId(userFilesVo.getUserId()); + List fileList = userFilesVo.getFileList(); + fileList.forEach(file -> { + EmployeeFiles employeeFiles = BeanUtil.toBean(file, EmployeeFiles.class); + employeeFiles.setUserId(userFilesVo.getUserId()); + baseMapper.insert(employeeFiles); + }); + return true; + } + + /** + * 修改文件档案管理 + */ + @Override + public Boolean updateByBo(EmployeeFilesBo bo) { + EmployeeFiles update = BeanUtil.toBean(bo, EmployeeFiles.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(EmployeeFiles entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除文件档案管理 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } + + @Override + public UserFilesVo queryUserFilesVoByUserId(Long userId) { + UserFilesVo userFilesVo = new UserFilesVo(); + SysUser sysUser = userService.selectUserById(userId); + userFilesVo.setUserId(sysUser.getUserId()); + userFilesVo.setNickName(sysUser.getNickName()); + userFilesVo.setPhonenumber(sysUser.getPhonenumber()); + EmployeeFilesBo employeeFilesBo = new EmployeeFilesBo(); + employeeFilesBo.setUserId(userId); + LambdaQueryWrapper employeeFilesLambdaQueryWrapper = buildQueryWrapper(employeeFilesBo); + List list = baseMapper.selectVoList(employeeFilesLambdaQueryWrapper); + userFilesVo.setFileList(list); + return userFilesVo; + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeOnboardingServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeOnboardingServiceImpl.java index 2ebe550..49e2a94 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeOnboardingServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeOnboardingServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.oa.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.page.TableDataInfo; @@ -60,12 +61,8 @@ public class EmployeeOnboardingServiceImpl implements IEmployeeOnboardingService */ @Override public TableDataInfo queryPageList(EmployeeOnboardingBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - result.getRecords().forEach(employeeOnboardingVo -> { - SysUser sysUser = userService.selectUserByIdAndNotDelFlag(employeeOnboardingVo.getUserId()); - employeeOnboardingVo.setNickName(sysUser.getNickName()); - }); + QueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -74,16 +71,16 @@ public class EmployeeOnboardingServiceImpl implements IEmployeeOnboardingService */ @Override public List queryList(EmployeeOnboardingBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); + QueryWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } - private LambdaQueryWrapper buildQueryWrapper(EmployeeOnboardingBo bo) { + private QueryWrapper buildQueryWrapper(EmployeeOnboardingBo bo) { Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getUserId() != null, EmployeeOnboarding::getUserId, bo.getUserId()); - lqw.eq(bo.getJoiningDate() != null, EmployeeOnboarding::getJoiningDate, bo.getJoiningDate()); - lqw.eq(bo.getManagerId() != null, EmployeeOnboarding::getManagerId, bo.getManagerId()); + QueryWrapper lqw =new QueryWrapper(); + lqw.eq(bo.getUserId() != null, "eo.user_id", bo.getUserId()); + lqw.eq(bo.getJoiningDate() != null, "eo.joining_date", bo.getJoiningDate()); + lqw.like(bo.getNickName()!=null,"su.nick_name",bo.getNickName()); return lqw; } @@ -129,4 +126,10 @@ public class EmployeeOnboardingServiceImpl implements IEmployeeOnboardingService } return baseMapper.deleteBatchIds(ids) > 0; } + + @Override + public EmployeeOnboardingVo queryByUserId(Long userId) { + + return baseMapper.selectVoById(userId); + } } diff --git a/ruoyi-oa/src/main/resources/mapper/oa/EmployeeFilesMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/EmployeeFilesMapper.xml new file mode 100644 index 0000000..40ce84e --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/EmployeeFilesMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + delete from employee_files where user_id = #{userId} + + + + + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/EmployeeOnboardingMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/EmployeeOnboardingMapper.xml index 115ebe8..4eaceca 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/EmployeeOnboardingMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/EmployeeOnboardingMapper.xml @@ -1,7 +1,7 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> @@ -26,6 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -42,6 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" birth_date = #{birthDate}, ethnicity = #{ethnicity}, confirm_date = #{confirmDate}, + status = #{status}, marital_status = #{maritalStatus}, political_status = #{politicalStatus}, height = #{height}, @@ -52,5 +54,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where user_id = #{userId} + + + + + diff --git a/ruoyi-ui/src/views/components/CheckInDetail/index.vue b/ruoyi-ui/src/views/components/CheckInDetail/index.vue new file mode 100644 index 0000000..e69de29