From 356563ae43d4775bbd1aea805a61366314c8a52b Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Wed, 7 Aug 2024 15:23:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E5=8A=B3=E5=8A=A8?= =?UTF-8?q?=E5=90=88=E5=90=8C=E7=AE=A1=E7=90=86=20=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E9=80=9A=E8=AE=AF=E5=BD=95=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3=EF=BC=8C=20=E4=B8=BA=E6=97=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/core/util/SpinnerWriteHandler.java | 4 +- .../system/enums/ErrorCodeConstants.java | 3 + .../LaborContractController.java | 72 +++++++++++++++++++ .../vo/LaborContractPageReqVO.java | 36 ++++++++++ .../laborcontract/vo/LaborContractRespVO.java | 50 +++++++++++++ .../vo/LaborContractSaveReqVO.java | 37 ++++++++++ .../controller/admin/user/UserController.java | 18 +++++ .../laborcontract/LaborContractDO.java | 62 ++++++++++++++++ .../laborcontract/LaborContractMapper.java | 20 ++++++ .../laborcontract/LaborContractService.java | 55 ++++++++++++++ .../LaborContractServiceImpl.java | 71 ++++++++++++++++++ .../laborcontract/LaborContractMapper.xml | 71 ++++++++++++++++++ 12 files changed, 498 insertions(+), 1 deletion(-) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/LaborContractController.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractPageReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractRespVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractSaveReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/laborcontract/LaborContractDO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/laborcontract/LaborContractMapper.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractService.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/laborcontract/LaborContractMapper.xml diff --git a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/SpinnerWriteHandler.java b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/SpinnerWriteHandler.java index b81c567d..a4bbb9b8 100644 --- a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/SpinnerWriteHandler.java +++ b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/SpinnerWriteHandler.java @@ -42,7 +42,9 @@ public class SpinnerWriteHandler implements SheetWriteHandler { Map mapDropDown = new HashMap<>(); // 这里的key值 对应导出列的顺序 从0开始 - mapDropDown.put(col, deptName.toArray(new String[0])); + if (deptName != null) { + mapDropDown.put(col, deptName.toArray(new String[0])); + } mapDropDown.put(col1, postName.toArray(new String[0])); Sheet sheet = writeSheetHolder.getSheet(); /// 开始设置下拉框 diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java index eeef6f3b..376cdaf8 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -249,4 +249,7 @@ public interface ErrorCodeConstants { ErrorCode REQUEST_FAILURE = new ErrorCode(1_011_002_003, "请求失败!"); ErrorCode DEVICE_NO_EXISTS = new ErrorCode(1_011_002_004, "设备号已存在!"); + + // ========== 劳动合同相关 1-012-001-001 ========== + ErrorCode LABOR_CONTRACT_NOT_EXISTS = new ErrorCode(1_012_001_001, "劳动合同管理不存在"); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/LaborContractController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/LaborContractController.java new file mode 100644 index 00000000..2ba764af --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/LaborContractController.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.system.controller.admin.laborcontract; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractRespVO; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO; +import cn.iocoder.yudao.module.system.service.laborcontract.LaborContractService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 劳动合同管理") +@RestController +@RequestMapping("/system/labor-contract") +@Validated +public class LaborContractController { + + @Resource + private LaborContractService laborContractService; + + @PostMapping("/create") + @Operation(summary = "创建劳动合同管理") + @PreAuthorize("@ss.hasPermission('system:labor-contract:create')") + public CommonResult createLaborContract(@Valid @RequestBody LaborContractSaveReqVO createReqVO) { + return success(laborContractService.createLaborContract(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新劳动合同管理") + @PreAuthorize("@ss.hasPermission('system:labor-contract:update')") + public CommonResult updateLaborContract(@Valid @RequestBody LaborContractSaveReqVO updateReqVO) { + laborContractService.updateLaborContract(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除劳动合同管理") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:labor-contract:delete')") + public CommonResult deleteLaborContract(@RequestParam("id") Long id) { + laborContractService.deleteLaborContract(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得劳动合同管理") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:labor-contract:query')") + public CommonResult getLaborContract(@RequestParam("id") Long id) { + LaborContractDO laborContract = laborContractService.getLaborContract(id); + return success(BeanUtils.toBean(laborContract, LaborContractRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得劳动合同管理分页") + @PreAuthorize("@ss.hasPermission('system:labor-contract:query')") + public CommonResult> getLaborContractPage(@Valid LaborContractPageReqVO pageReqVO) { + PageResult pageResult = laborContractService.getLaborContractPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, LaborContractRespVO.class)); + } +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractPageReqVO.java new file mode 100644 index 00000000..a9be2932 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractPageReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDate; + +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 LaborContractPageReqVO extends PageParam { + + @Schema(description = "用户名称", example = "146") + private String userName; + + @Schema(description = "部门id", example = "128") + private Long deptId; + + @Schema(description = "签约日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDate[] signingDate; + + @Schema(description = "到期日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDate[] expirationDate; + + @Schema(description = "状态 0待签 1已签 2过期", example = "0") + private Integer status; +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractRespVO.java new file mode 100644 index 00000000..3429fe9b --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractRespVO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo; + +import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.upload.UploadUserFile; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 劳动合同管理 Response VO") +@Data +public class LaborContractRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "128") + private Long userId; + + @Schema(description = "用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "146") + private String userName; + + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "128") + private Long deptId; + + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "128") + private String deptName; + + @Schema(description = "签约日期") + private LocalDate signingDate; + + @Schema(description = "到期日期") + private LocalDate expirationDate; + + @Schema(description = "签约年限") + private Integer contractDuration; + + @Schema(description = "签约次数") + private Integer signingCount; + + @Schema(description = "状态 0待签 1已签 2过期", example = "0") + private Integer status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED) + private List fileItems; +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractSaveReqVO.java new file mode 100644 index 00000000..96ecbd83 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/LaborContractSaveReqVO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo; + +import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.upload.UploadUserFile; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.time.LocalDate; +import java.util.List; + +@Schema(description = "管理后台 - 劳动合同管理新增/修改 Request VO") +@Data +public class LaborContractSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "146") + @NotNull(message = "用户id不能为空") + private Long userId; + + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "128") + @NotNull(message = "部门id不能为空") + private Long deptId; + + @Schema(description = "签约日期") + private LocalDate signingDate; + + @Schema(description = "签约年限") + private Integer contractDuration; + + @Schema(description = "状态 0待签 1已签 2过期", example = "0") + private Integer status; + + @Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED) + private List fileItems; +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java index ee5e2824..6cfdf08f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java @@ -111,6 +111,24 @@ public class UserController { pageResult.getTotal())); } + @GetMapping("/page-permission") + @Operation(summary = "获得用户分页列表 | 无数据权限接口") + @PreAuthorize("@ss.hasPermission('system:user:list')") + @DataPermission(enable = false) + public CommonResult> getUserPageNoPermission(@Valid UserPageReqVO pageReqVO) { + // 获得用户分页列表 + PageResult pageResult = userService.getUserPage(pageReqVO); + if (CollUtil.isEmpty(pageResult.getList())) { + return success(new PageResult<>(pageResult.getTotal())); + } + // 拼接数据 + Map deptMap = deptService.getDeptMap(convertList(pageResult.getList(), AdminUserDO::getDeptId)); + Map postMap = postService.getDeptMap(convertList(pageResult.getList(), AdminUserDO::getPostIds)); + + return success(new PageResult<>(UserConvert.INSTANCE.convertList(pageResult.getList(), deptMap, postMap), + pageResult.getTotal())); + } + @GetMapping({"/list-all-simple", "/simple-list"}) @Operation(summary = "获取用户精简信息列表", description = "只包含被开启的用户,主要用于前端的下拉选项") public CommonResult> getSimpleUserList() { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/laborcontract/LaborContractDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/laborcontract/LaborContractDO.java new file mode 100644 index 00000000..d592ca65 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/laborcontract/LaborContractDO.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.laborcontract; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.upload.UploadUserFile; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.*; + +import java.time.LocalDate; +import java.util.List; + +/** + * 劳动合同管理 DO + * + * @author 符溶馨 + */ +@TableName("system_labor_contract") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class LaborContractDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 用户id + */ + private Long userId; + /** + * 部门id + */ + private Long deptId; + /** + * 签约日期 + */ + private LocalDate signingDate; + /** + * 到期日期 + */ + private LocalDate expirationDate; + /** + * 签约年限 + */ + private Integer contractDuration; + /** + * 状态 0待签 1已签 2过期 + */ + private Integer status; + /** + * 附件基本信息 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List fileItems; +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/laborcontract/LaborContractMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/laborcontract/LaborContractMapper.java new file mode 100644 index 00000000..50778765 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/laborcontract/LaborContractMapper.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.system.dal.mysql.laborcontract; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 劳动合同管理 Mapper + * + * @author 符溶馨 + */ +@Mapper +public interface LaborContractMapper extends BaseMapperX { + + IPage selectPage(@Param("page") IPage mpPage, @Param("reqVO") LaborContractPageReqVO pageReqVO); +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractService.java new file mode 100644 index 00000000..865cc7aa --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.system.service.laborcontract; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO; + +import javax.validation.Valid; + +/** + * 劳动合同管理 Service 接口 + * + * @author 符溶馨 + */ +public interface LaborContractService { + + /** + * 创建劳动合同管理 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createLaborContract(@Valid LaborContractSaveReqVO createReqVO); + + /** + * 更新劳动合同管理 + * + * @param updateReqVO 更新信息 + */ + void updateLaborContract(@Valid LaborContractSaveReqVO updateReqVO); + + /** + * 删除劳动合同管理 + * + * @param id 编号 + */ + void deleteLaborContract(Long id); + + /** + * 获得劳动合同管理 + * + * @param id 编号 + * @return 劳动合同管理 + */ + LaborContractDO getLaborContract(Long id); + + /** + * 获得劳动合同管理分页 + * + * @param pageReqVO 分页查询 + * @return 劳动合同管理分页 + */ + PageResult getLaborContractPage(LaborContractPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java new file mode 100644 index 00000000..b69f2c3b --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/laborcontract/LaborContractServiceImpl.java @@ -0,0 +1,71 @@ +package cn.iocoder.yudao.module.system.service.laborcontract; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO; +import cn.iocoder.yudao.module.system.dal.mysql.laborcontract.LaborContractMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.LABOR_CONTRACT_NOT_EXISTS; + +/** + * 劳动合同管理 Service 实现类 + * + * @author 符溶馨 + */ +@Service +@Validated +public class LaborContractServiceImpl implements LaborContractService { + + @Resource + private LaborContractMapper laborContractMapper; + + @Override + public Long createLaborContract(LaborContractSaveReqVO createReqVO) { + // 插入 + LaborContractDO laborContract = BeanUtils.toBean(createReqVO, LaborContractDO.class); + laborContractMapper.insert(laborContract); + // 返回 + return laborContract.getId(); + } + + @Override + public void updateLaborContract(LaborContractSaveReqVO updateReqVO) { + // 校验存在 + validateLaborContractExists(updateReqVO.getId()); + // 更新 + LaborContractDO updateObj = BeanUtils.toBean(updateReqVO, LaborContractDO.class); + laborContractMapper.updateById(updateObj); + } + + @Override + public void deleteLaborContract(Long id) { + // 校验存在 + validateLaborContractExists(id); + // 删除 + laborContractMapper.deleteById(id); + } + + private void validateLaborContractExists(Long id) { + if (laborContractMapper.selectById(id) == null) { + throw exception(LABOR_CONTRACT_NOT_EXISTS); + } + } + + @Override + public LaborContractDO getLaborContract(Long id) { + return laborContractMapper.selectById(id); + } + + @Override + public PageResult getLaborContractPage(LaborContractPageReqVO pageReqVO) { + return null; + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/laborcontract/LaborContractMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/laborcontract/LaborContractMapper.xml new file mode 100644 index 00000000..3facc344 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/laborcontract/LaborContractMapper.xml @@ -0,0 +1,71 @@ + + + + + + + + \ No newline at end of file