From bdfb1ab58c9d2e0ef872755375cd68c15dfe48cb Mon Sep 17 00:00:00 2001 From: zk <2762560464@qq.com> Date: Fri, 22 Sep 2023 18:38:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=98=E5=B7=A5=E6=A1=A3=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ElectronicEmployeeController.java | 102 ++++++++ .../vo/ElectronicEmployeeBaseVO.java | 65 +++++ .../vo/ElectronicEmployeeCreateReqVO.java | 100 ++++++++ .../vo/ElectronicEmployeeExcelVO.java | 69 ++++++ .../vo/ElectronicEmployeeExportReqVO.java | 66 +++++ .../vo/ElectronicEmployeePageReqVO.java | 68 ++++++ .../vo/ElectronicEmployeeRespVO.java | 16 ++ .../vo/ElectronicEmployeeUpdateReqVO.java | 97 ++++++++ .../ElectronicEmployeeConvert.java | 34 +++ .../ElectronicEmployeeDO.java | 225 ++++++++++++++++++ .../ElectronicEmployeeMapper.java | 62 +++++ .../ElectronicEmployeeService.java | 70 ++++++ .../ElectronicEmployeeServiceImpl.java | 82 +++++++ .../ea/utils/enums/BorrowStatusEnum.java | 35 +++ .../ElectronicEmployeeMapper.xml | 12 + 15 files changed, 1103 insertions(+) create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/ElectronicEmployeeController.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeBaseVO.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeCreateReqVO.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeExcelVO.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeExportReqVO.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeePageReqVO.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeRespVO.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeUpdateReqVO.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/convert/electronicemployee/ElectronicEmployeeConvert.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/dal/dataobject/electronicemployee/ElectronicEmployeeDO.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/dal/mysql/electronicemployee/ElectronicEmployeeMapper.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/service/electronicemployee/ElectronicEmployeeService.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/service/electronicemployee/ElectronicEmployeeServiceImpl.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/utils/enums/BorrowStatusEnum.java create mode 100644 yudao-module-electronic/yudao-module-ea-biz/src/main/resources/mapper/electronicemployee/ElectronicEmployeeMapper.xml diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/ElectronicEmployeeController.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/ElectronicEmployeeController.java new file mode 100644 index 00000000..3b86c99c --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/ElectronicEmployeeController.java @@ -0,0 +1,102 @@ +package cn.iocoder.yudao.module.ea.controller.admin.electronicemployee; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo.*; +import cn.iocoder.yudao.module.ea.dal.dataobject.electronicemployee.ElectronicEmployeeDO; +import cn.iocoder.yudao.module.ea.convert.electronicemployee.ElectronicEmployeeConvert; +import cn.iocoder.yudao.module.ea.service.electronicemployee.ElectronicEmployeeService; + +@Tag(name = "管理后台 - 员工档案") +@RestController +@RequestMapping("/ea/electronic-employee") +@Validated +public class ElectronicEmployeeController { + + @Resource + private ElectronicEmployeeService electronicEmployeeService; + + @PostMapping("/create") + @Operation(summary = "创建员工档案") + @PreAuthorize("@ss.hasPermission('ea:electronic-employee:create')") + public CommonResult createElectronicEmployee(@Valid @RequestBody ElectronicEmployeeCreateReqVO createReqVO) { + return success(electronicEmployeeService.createElectronicEmployee(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新员工档案") + @PreAuthorize("@ss.hasPermission('ea:electronic-employee:update')") + public CommonResult updateElectronicEmployee(@Valid @RequestBody ElectronicEmployeeUpdateReqVO updateReqVO) { + electronicEmployeeService.updateElectronicEmployee(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除员工档案") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('ea:electronic-employee:delete')") + public CommonResult deleteElectronicEmployee(@RequestParam("id") Long id) { + electronicEmployeeService.deleteElectronicEmployee(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得员工档案") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('ea:electronic-employee:query')") + public CommonResult getElectronicEmployee(@RequestParam("id") Long id) { + ElectronicEmployeeDO electronicEmployee = electronicEmployeeService.getElectronicEmployee(id); + return success(ElectronicEmployeeConvert.INSTANCE.convert(electronicEmployee)); + } + + @GetMapping("/list") + @Operation(summary = "获得员工档案列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('ea:electronic-employee:query')") + public CommonResult> getElectronicEmployeeList(@RequestParam("ids") Collection ids) { + List list = electronicEmployeeService.getElectronicEmployeeList(ids); + return success(ElectronicEmployeeConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得员工档案分页") + @PreAuthorize("@ss.hasPermission('ea:electronic-employee:query')") + public CommonResult> getElectronicEmployeePage(@Valid ElectronicEmployeePageReqVO pageVO) { + PageResult pageResult = electronicEmployeeService.getElectronicEmployeePage(pageVO); + return success(ElectronicEmployeeConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出员工档案 Excel") + @PreAuthorize("@ss.hasPermission('ea:electronic-employee:export')") + @OperateLog(type = EXPORT) + public void exportElectronicEmployeeExcel(@Valid ElectronicEmployeeExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = electronicEmployeeService.getElectronicEmployeeList(exportReqVO); + // 导出 Excel + List datas = ElectronicEmployeeConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "员工档案.xls", "数据", ElectronicEmployeeExcelVO.class, datas); + } + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeBaseVO.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeBaseVO.java new file mode 100644 index 00000000..d3cd5c48 --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeBaseVO.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import javax.validation.constraints.*; + +/** + * 员工档案 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class ElectronicEmployeeBaseVO { + + @Schema(description = "id" ) + private Long id; + + @Schema(description = "制单人") + private String createBy; + + @Schema(description = "业务实体") + private String company; + + @Schema(description = "所属部门", example = "王五") + private String deptName; + + @Schema(description = "员工姓名", example = "张三") + private String name; + + @Schema(description = "性别") + private String gender; + + @Schema(description = "国籍") + private String nationality; + + @Schema(description = "联系方式") + private String contactNumber; + + @Schema(description = "身份证号") + private String idCardNumber; + + @Schema(description = "年度") + private String year; + + @Schema(description = "月份") + private String period; + + @Schema(description = "借阅状态", example = "2") + private String borrowStatus; + + @Schema(description = "归档时间") + private String recordTime; + + @Schema(description = "纸档位置") + private String position; + + @Schema(description = "完整性") + private Integer cherks; + + @Schema(description = "归档状态", example = "2") + private String fileStatus; + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeCreateReqVO.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeCreateReqVO.java new file mode 100644 index 00000000..a1ee752b --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeCreateReqVO.java @@ -0,0 +1,100 @@ +package cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo; + +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import javax.validation.constraints.*; + +/** + * @author HP + */ +@Schema(description = "管理后台 - 员工档案创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ElectronicEmployeeCreateReqVO extends ElectronicEmployeeBaseVO { + + @Schema(description = "出生日期") + private LocalDate birthdate; + + @Schema(description = "地址") + private String address; + + @Schema(description = "护照号码") + private String passportNumber; + + @Schema(description = "毕业学校") + private String graduationSchool; + + @Schema(description = "专业") + private String major; + + @Schema(description = "学历") + private String education; + + @Schema(description = "教育经历") + private String educationExperience; + + @Schema(description = "工作经历") + private String workExperience; + + @Schema(description = "职位") + private String jobTitle; + + @Schema(description = "职位级别") + private String jobLevel; + + @Schema(description = "职位描述", example = "你说的对") + private String jobDescription; + + @Schema(description = "薪酬") + private Long salary; + + @Schema(description = "身体状况") + private String healthCondition; + + @Schema(description = "体检记录") + private String medicalRecords; + + @Schema(description = "疾病史") + private String diseaseHistory; + + @Schema(description = "养老保险") + private String socialInsurance; + + @Schema(description = "医疗保险") + private Long pensionInsurance; + + @Schema(description = "失业保险") + private Long medicalInsurance; + + @Schema(description = "失业保险") + private Long unemploymentInsurance; + + @Schema(description = "工伤保险") + private Long workInjuryInsurance; + + @Schema(description = "考核评价") + private String leaveRecords; + + @Schema(description = "奖惩记录") + private String overtimeRecords; + + @Schema(description = "培训计划") + private String welfareBenefits; + + @Schema(description = "培训成果") + private String performanceEvaluation; + + @Schema(description = "个人标签") + private String rewardsPunishments; + + @Schema(description = "兴趣爱好") + private String trainingRecords; + + @Schema(description = "特长", example = "你说的对") + private String personalDescription; + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeExcelVO.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeExcelVO.java new file mode 100644 index 00000000..79e68b32 --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeExcelVO.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + + +/** + * 员工档案 Excel VO + * + * @author 芋道源码 + */ +@Data +public class ElectronicEmployeeExcelVO { + + @ExcelProperty("制单人") + private String createBy; + + @ExcelProperty("创建日期") + private LocalDateTime createTime; + + @ExcelProperty("业务实体") + private String company; + + @ExcelProperty("所属部门") + private String deptName; + + @ExcelProperty("员工姓名") + private String name; + + @ExcelProperty(value = "性别", converter = DictConvert.class) + @DictFormat("system_user_sex") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String gender; + + @ExcelProperty("国籍") + private String nationality; + + @ExcelProperty("联系方式") + private String contactNumber; + + @ExcelProperty("身份证号") + private String idCardNumber; + + @ExcelProperty("年度") + private String year; + + @ExcelProperty("月份") + private String period; + + @ExcelProperty(value = "借阅状态", converter = DictConvert.class) + @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String borrowStatus; + + @ExcelProperty("归档时间") + private String recordTime; + + @ExcelProperty("纸档位置") + private String position; + + @ExcelProperty("完整性") + private Integer cherks; + + @ExcelProperty("归档状态") + private String fileStatus; + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeExportReqVO.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeExportReqVO.java new file mode 100644 index 00000000..326652e7 --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeExportReqVO.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 员工档案 Excel 导出 Request VO,参数和 ElectronicEmployeePageReqVO 是一致的") +@Data +public class ElectronicEmployeeExportReqVO { + + @Schema(description = "制单人") + private String createBy; + + @Schema(description = "创建日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "业务实体") + private String company; + + @Schema(description = "所属部门", example = "王五") + private String deptName; + + @Schema(description = "员工姓名", example = "张三") + private String name; + + @Schema(description = "性别") + private String gender; + + @Schema(description = "国籍") + private String nationality; + + @Schema(description = "联系方式") + private String contactNumber; + + @Schema(description = "身份证号") + private String idCardNumber; + + @Schema(description = "年度") + private String year; + + @Schema(description = "月份") + private String period; + + @Schema(description = "借阅状态", example = "2") + private String borrowStatus; + + @Schema(description = "归档时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private String[] recordTime; + + @Schema(description = "纸档位置") + private String position; + + @Schema(description = "完整性") + private Integer cherks; + + @Schema(description = "归档状态", example = "2") + private String fileStatus; + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeePageReqVO.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeePageReqVO.java new file mode 100644 index 00000000..78d44f95 --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeePageReqVO.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 员工档案分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ElectronicEmployeePageReqVO extends PageParam { + + @Schema(description = "制单人") + private String createBy; + + @Schema(description = "创建日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "业务实体") + private String company; + + @Schema(description = "所属部门", example = "王五") + private String deptName; + + @Schema(description = "员工姓名", example = "张三") + private String name; + + @Schema(description = "性别") + private String gender; + + @Schema(description = "国籍") + private String nationality; + + @Schema(description = "联系方式") + private String contactNumber; + + @Schema(description = "身份证号") + private String idCardNumber; + + @Schema(description = "年度") + private String year; + + @Schema(description = "月份") + private String period; + + @Schema(description = "借阅状态", example = "2") + private String borrowStatus; + + @Schema(description = "归档时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private String[] recordTime; + + @Schema(description = "纸档位置") + private String position; + + @Schema(description = "完整性") + private Integer cherks; + + @Schema(description = "归档状态", example = "2") + private String fileStatus; + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeRespVO.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeRespVO.java new file mode 100644 index 00000000..631b6b96 --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeRespVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 员工档案 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ElectronicEmployeeRespVO extends ElectronicEmployeeBaseVO { + + @Schema(description = "创建日期") + private LocalDateTime createTime; + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeUpdateReqVO.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeUpdateReqVO.java new file mode 100644 index 00000000..339012fb --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/controller/admin/electronicemployee/vo/ElectronicEmployeeUpdateReqVO.java @@ -0,0 +1,97 @@ +package cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 员工档案更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ElectronicEmployeeUpdateReqVO extends ElectronicEmployeeBaseVO { + + @Schema(description = "出生日期") + private LocalDate birthdate; + + @Schema(description = "地址") + private String address; + + @Schema(description = "护照号码") + private String passportNumber; + + @Schema(description = "毕业学校") + private String graduationSchool; + + @Schema(description = "专业") + private String major; + + @Schema(description = "学历") + private String education; + + @Schema(description = "教育经历") + private String educationExperience; + + @Schema(description = "工作经历") + private String workExperience; + + @Schema(description = "职位") + private String jobTitle; + + @Schema(description = "职位级别") + private String jobLevel; + + @Schema(description = "职位描述", example = "你说的对") + private String jobDescription; + + @Schema(description = "薪酬") + private Long salary; + + @Schema(description = "身体状况") + private String healthCondition; + + @Schema(description = "体检记录") + private String medicalRecords; + + @Schema(description = "疾病史") + private String diseaseHistory; + + @Schema(description = "养老保险") + private String socialInsurance; + + @Schema(description = "医疗保险") + private Long pensionInsurance; + + @Schema(description = "失业保险") + private Long medicalInsurance; + + @Schema(description = "失业保险") + private Long unemploymentInsurance; + + @Schema(description = "工伤保险") + private Long workInjuryInsurance; + + @Schema(description = "考核评价") + private String leaveRecords; + + @Schema(description = "奖惩记录") + private String overtimeRecords; + + @Schema(description = "培训计划") + private String welfareBenefits; + + @Schema(description = "培训成果") + private String performanceEvaluation; + + @Schema(description = "个人标签") + private String rewardsPunishments; + + @Schema(description = "兴趣爱好") + private String trainingRecords; + + @Schema(description = "特长", example = "你说的对") + private String personalDescription; + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/convert/electronicemployee/ElectronicEmployeeConvert.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/convert/electronicemployee/ElectronicEmployeeConvert.java new file mode 100644 index 00000000..5ba0205e --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/convert/electronicemployee/ElectronicEmployeeConvert.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.ea.convert.electronicemployee; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo.*; +import cn.iocoder.yudao.module.ea.dal.dataobject.electronicemployee.ElectronicEmployeeDO; + +/** + * 员工档案 Convert + * + * @author 芋道源码 + */ +@Mapper +public interface ElectronicEmployeeConvert { + + ElectronicEmployeeConvert INSTANCE = Mappers.getMapper(ElectronicEmployeeConvert.class); + + ElectronicEmployeeDO convert(ElectronicEmployeeCreateReqVO bean); + + ElectronicEmployeeDO convert(ElectronicEmployeeUpdateReqVO bean); + + ElectronicEmployeeRespVO convert(ElectronicEmployeeDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/dal/dataobject/electronicemployee/ElectronicEmployeeDO.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/dal/dataobject/electronicemployee/ElectronicEmployeeDO.java new file mode 100644 index 00000000..c42d1b57 --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/dal/dataobject/electronicemployee/ElectronicEmployeeDO.java @@ -0,0 +1,225 @@ +package cn.iocoder.yudao.module.ea.dal.dataobject.electronicemployee; + +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 员工档案 DO + * + * @author 芋道源码 + */ +@TableName("ea_electronic_employee") +@KeySequence("ea_electronic_employee_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ElectronicEmployeeDO extends BaseDO { + + /** + * 主键 + */ + @TableId + private Long id; + /** + * 制单人 + */ + private String createBy; + /** + * 业务实体id + */ + private Long companyId; + /** + * 业务实体 + */ + private String company; + /** + * 所属部门id + */ + private Long deptId; + /** + * 所属部门 + */ + private String deptName; + /** + * 员工姓名 + */ + private String name; + /** + * 性别 + * + * 枚举 + */ + private String gender; + /** + * 出生日期 + */ + private LocalDate birthdate; + /** + * 国籍 + */ + private String nationality; + /** + * 地址 + */ + private String address; + /** + * 联系方式 + */ + private String contactNumber; + /** + * 身份证号 + */ + private String idCardNumber; + /** + * 护照号码 + */ + private String passportNumber; + /** + * 毕业学校 + */ + private String graduationSchool; + /** + * 专业 + */ + private String major; + /** + * 学历 + */ + private String education; + /** + * 教育经历 + */ + private String educationExperience; + /** + * 工作经历 + */ + private String workExperience; + /** + * 职位 + */ + private String jobTitle; + /** + * 职位级别 + */ + private String jobLevel; + /** + * 职位描述 + */ + private String jobDescription; + /** + * 薪酬 + */ + private Long salary; + /** + * 身体状况 + */ + private String healthCondition; + /** + * 体检记录 + */ + private String medicalRecords; + /** + * 疾病史 + * + * 枚举 + */ + private String diseaseHistory; + /** + * 养老保险 + * + * 枚举 + */ + private String socialInsurance; + /** + * 医疗保险 + */ + private Long pensionInsurance; + /** + * 失业保险 + */ + private Long medicalInsurance; + /** + * 失业保险 + */ + private Long unemploymentInsurance; + /** + * 工伤保险 + */ + private Long workInjuryInsurance; + /** + * 考核评价 + */ + private String leaveRecords; + /** + * 奖惩记录 + */ + private String overtimeRecords; + /** + * 培训计划 + */ + private String welfareBenefits; + /** + * 培训成果 + */ + private String performanceEvaluation; + /** + * 个人标签 + */ + private String rewardsPunishments; + /** + * 兴趣爱好 + */ + private String trainingRecords; + /** + * 特长 + */ + private String personalDescription; + /** + * 年度 + */ + private String year; + /** + * 月份 + */ + private String period; + /** + * 借阅状态 + * + * 枚举 + */ + private String borrowStatus; + /** + * 归档时间 + */ + private String recordTime; + /** + * 纸档位置 + */ + private String position; + /** + * 完整性 + */ + private Integer cherks; + /** + * 归档id + */ + private Long recordId; + /** + * 用户id + */ + private Long userId; + /** + * 归档状态 + */ + private String fileStatus; + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/dal/mysql/electronicemployee/ElectronicEmployeeMapper.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/dal/mysql/electronicemployee/ElectronicEmployeeMapper.java new file mode 100644 index 00000000..4ec833be --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/dal/mysql/electronicemployee/ElectronicEmployeeMapper.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.ea.dal.mysql.electronicemployee; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.ea.dal.dataobject.electronicemployee.ElectronicEmployeeDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo.*; + +/** + * 员工档案 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface ElectronicEmployeeMapper extends BaseMapperX { + + default PageResult selectPage(ElectronicEmployeePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ElectronicEmployeeDO::getCreateBy, reqVO.getCreateBy()) + .betweenIfPresent(ElectronicEmployeeDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(ElectronicEmployeeDO::getCompany, reqVO.getCompany()) + .likeIfPresent(ElectronicEmployeeDO::getDeptName, reqVO.getDeptName()) + .likeIfPresent(ElectronicEmployeeDO::getName, reqVO.getName()) + .eqIfPresent(ElectronicEmployeeDO::getGender, reqVO.getGender()) + .eqIfPresent(ElectronicEmployeeDO::getNationality, reqVO.getNationality()) + .eqIfPresent(ElectronicEmployeeDO::getContactNumber, reqVO.getContactNumber()) + .eqIfPresent(ElectronicEmployeeDO::getIdCardNumber, reqVO.getIdCardNumber()) + .eqIfPresent(ElectronicEmployeeDO::getYear, reqVO.getYear()) + .eqIfPresent(ElectronicEmployeeDO::getPeriod, reqVO.getPeriod()) + .eqIfPresent(ElectronicEmployeeDO::getBorrowStatus, reqVO.getBorrowStatus()) + .betweenIfPresent(ElectronicEmployeeDO::getRecordTime, reqVO.getRecordTime()) + .eqIfPresent(ElectronicEmployeeDO::getPosition, reqVO.getPosition()) + .eqIfPresent(ElectronicEmployeeDO::getCherks, reqVO.getCherks()) + .eqIfPresent(ElectronicEmployeeDO::getFileStatus, reqVO.getFileStatus()) + .orderByDesc(ElectronicEmployeeDO::getId)); + } + + default List selectList(ElectronicEmployeeExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ElectronicEmployeeDO::getCreateBy, reqVO.getCreateBy()) + .betweenIfPresent(ElectronicEmployeeDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(ElectronicEmployeeDO::getCompany, reqVO.getCompany()) + .likeIfPresent(ElectronicEmployeeDO::getDeptName, reqVO.getDeptName()) + .likeIfPresent(ElectronicEmployeeDO::getName, reqVO.getName()) + .eqIfPresent(ElectronicEmployeeDO::getGender, reqVO.getGender()) + .eqIfPresent(ElectronicEmployeeDO::getNationality, reqVO.getNationality()) + .eqIfPresent(ElectronicEmployeeDO::getContactNumber, reqVO.getContactNumber()) + .eqIfPresent(ElectronicEmployeeDO::getIdCardNumber, reqVO.getIdCardNumber()) + .eqIfPresent(ElectronicEmployeeDO::getYear, reqVO.getYear()) + .eqIfPresent(ElectronicEmployeeDO::getPeriod, reqVO.getPeriod()) + .eqIfPresent(ElectronicEmployeeDO::getBorrowStatus, reqVO.getBorrowStatus()) + .betweenIfPresent(ElectronicEmployeeDO::getRecordTime, reqVO.getRecordTime()) + .eqIfPresent(ElectronicEmployeeDO::getPosition, reqVO.getPosition()) + .eqIfPresent(ElectronicEmployeeDO::getCherks, reqVO.getCherks()) + .eqIfPresent(ElectronicEmployeeDO::getFileStatus, reqVO.getFileStatus()) + .orderByDesc(ElectronicEmployeeDO::getId)); + } + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/service/electronicemployee/ElectronicEmployeeService.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/service/electronicemployee/ElectronicEmployeeService.java new file mode 100644 index 00000000..35fabf96 --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/service/electronicemployee/ElectronicEmployeeService.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.ea.service.electronicemployee; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo.*; +import cn.iocoder.yudao.module.ea.dal.dataobject.electronicemployee.ElectronicEmployeeDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +/** + * 员工档案 Service 接口 + * + * @author 芋道源码 + */ +public interface ElectronicEmployeeService { + + /** + * 创建员工档案 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createElectronicEmployee(@Valid ElectronicEmployeeCreateReqVO createReqVO); + + /** + * 更新员工档案 + * + * @param updateReqVO 更新信息 + */ + void updateElectronicEmployee(@Valid ElectronicEmployeeUpdateReqVO updateReqVO); + + /** + * 删除员工档案 + * + * @param id 编号 + */ + void deleteElectronicEmployee(Long id); + + /** + * 获得员工档案 + * + * @param id 编号 + * @return 员工档案 + */ + ElectronicEmployeeDO getElectronicEmployee(Long id); + + /** + * 获得员工档案列表 + * + * @param ids 编号 + * @return 员工档案列表 + */ + List getElectronicEmployeeList(Collection ids); + + /** + * 获得员工档案分页 + * + * @param pageReqVO 分页查询 + * @return 员工档案分页 + */ + PageResult getElectronicEmployeePage(ElectronicEmployeePageReqVO pageReqVO); + + /** + * 获得员工档案列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 员工档案列表 + */ + List getElectronicEmployeeList(ElectronicEmployeeExportReqVO exportReqVO); + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/service/electronicemployee/ElectronicEmployeeServiceImpl.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/service/electronicemployee/ElectronicEmployeeServiceImpl.java new file mode 100644 index 00000000..cb7ce91b --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/service/electronicemployee/ElectronicEmployeeServiceImpl.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.ea.service.electronicemployee; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import cn.iocoder.yudao.module.ea.controller.admin.electronicemployee.vo.*; +import cn.iocoder.yudao.module.ea.dal.dataobject.electronicemployee.ElectronicEmployeeDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +import cn.iocoder.yudao.module.ea.convert.electronicemployee.ElectronicEmployeeConvert; +import cn.iocoder.yudao.module.ea.dal.mysql.electronicemployee.ElectronicEmployeeMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.ea.enums.ErrorCodeConstants.*; + +/** + * 员工档案 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class ElectronicEmployeeServiceImpl implements ElectronicEmployeeService { + + @Resource + private ElectronicEmployeeMapper electronicEmployeeMapper; + + @Override + public Long createElectronicEmployee(ElectronicEmployeeCreateReqVO createReqVO) { + // 插入 + ElectronicEmployeeDO electronicEmployee = ElectronicEmployeeConvert.INSTANCE.convert(createReqVO); + electronicEmployeeMapper.insert(electronicEmployee); + // 返回 + return electronicEmployee.getId(); + } + + @Override + public void updateElectronicEmployee(ElectronicEmployeeUpdateReqVO updateReqVO) { + // 校验存在 + validateElectronicEmployeeExists(updateReqVO.getId()); + // 更新 + ElectronicEmployeeDO updateObj = ElectronicEmployeeConvert.INSTANCE.convert(updateReqVO); + electronicEmployeeMapper.updateById(updateObj); + } + + @Override + public void deleteElectronicEmployee(Long id) { + // 校验存在 + validateElectronicEmployeeExists(id); + // 删除 + electronicEmployeeMapper.deleteById(id); + } + + private void validateElectronicEmployeeExists(Long id) { + if (electronicEmployeeMapper.selectById(id) == null) { + throw exception(ELECTRONIC_EMPLOYEE_NOT_EXISTS); + } + } + + @Override + public ElectronicEmployeeDO getElectronicEmployee(Long id) { + return electronicEmployeeMapper.selectById(id); + } + + @Override + public List getElectronicEmployeeList(Collection ids) { + return electronicEmployeeMapper.selectBatchIds(ids); + } + + @Override + public PageResult getElectronicEmployeePage(ElectronicEmployeePageReqVO pageReqVO) { + return electronicEmployeeMapper.selectPage(pageReqVO); + } + + @Override + public List getElectronicEmployeeList(ElectronicEmployeeExportReqVO exportReqVO) { + return electronicEmployeeMapper.selectList(exportReqVO); + } + +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/utils/enums/BorrowStatusEnum.java b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/utils/enums/BorrowStatusEnum.java new file mode 100644 index 00000000..1fcfaf3a --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/java/cn/iocoder/yudao/module/ea/utils/enums/BorrowStatusEnum.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.ea.utils.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; + +/** + * author: zk + * date: 2023/9/22 + * description: 借阅状态枚举 + * @author HP + */ +@Getter +public enum BorrowStatusEnum { + /** + * 借阅状态枚举 + */ + BORROWSTATUS_TRUE("true", "1"), + BORROWSTATUS_FALSE("false", "0") + ; + + @JsonValue + private final String status; + + /** + * 获取转换后的状态 + */ + @EnumValue + private final String isStatus; + + BorrowStatusEnum(String status, String isStatus) { + this.status = status; + this.isStatus = isStatus; + } +} diff --git a/yudao-module-electronic/yudao-module-ea-biz/src/main/resources/mapper/electronicemployee/ElectronicEmployeeMapper.xml b/yudao-module-electronic/yudao-module-ea-biz/src/main/resources/mapper/electronicemployee/ElectronicEmployeeMapper.xml new file mode 100644 index 00000000..b00652db --- /dev/null +++ b/yudao-module-electronic/yudao-module-ea-biz/src/main/resources/mapper/electronicemployee/ElectronicEmployeeMapper.xml @@ -0,0 +1,12 @@ + + + + + + +