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 index f84a4899..b228fe48 100644 --- 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 @@ -6,6 +6,7 @@ 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.controller.admin.laborcontract.vo.SigningDateRespVO; import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; @@ -21,9 +22,12 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @Tag(name = "管理后台 - 劳动合同管理") @RestController @@ -101,4 +105,21 @@ public class LaborContractController { return success(laborContractService.getLaborContractPage(pageReqVO)); } + + @GetMapping("/getSigningDate") + @Operation(summary = "获得当前登录用户的入职时间和转正时间") + @PreAuthorize("@ss.hasPermission('system:labor-contract:query')") + public CommonResult getSigningDate() { + + LaborContractDO contractDO = laborContractService.getSigningDate(getLoginUserId()); + if (contractDO == null) { + return success(new SigningDateRespVO()); + } + + SigningDateRespVO respVO = BeanUtils.toBean(contractDO, SigningDateRespVO.class); + // 设置转正日期 + LocalDate regularDate = contractDO.getSigningDate().plusMonths(contractDO.getProbationPeriodTime()); + respVO.setRegularDate(regularDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + return success(respVO); + } } \ 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/SigningDateRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/SigningDateRespVO.java new file mode 100644 index 00000000..31650d41 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/SigningDateRespVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; + +@Schema(description = "管理后台 - 劳动合同管理 Response VO") +@Data +public class SigningDateRespVO { + + @Schema(description = "签约日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private String signingDate; + + @Schema(description = "转正日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private String regularDate; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/UploadFile.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/UploadFile.java index 723b9c14..5ce0d6c5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/UploadFile.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/UploadFile.java @@ -9,9 +9,12 @@ import lombok.Data; @Data public class UploadFile { - @Schema(description = "文件管理 fileId", requiredMode = Schema.RequiredMode.REQUIRED, example = "123.jpg") + @Schema(description = "文件管理 fileId", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private String fileId; + @Schema(description = "文件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "123.jpg") + private String fileName; + @Schema(description = "文件URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "http://xxx.xxx/xx/xx/123.jpgss") private String url; 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 index f8853c3b..4a821ee4 100644 --- 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 @@ -4,6 +4,7 @@ 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.LaborContractRespVO; import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.SigningDateRespVO; import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO; import javax.validation.Valid; @@ -83,5 +84,10 @@ public interface LaborContractService { */ List getListByEndTime(LocalDate now); - + /** + * 获得当前登录用户的入职时间和转正时间 + * @param userId 用户编号 + * @return 日期 + */ + LaborContractDO getSigningDate(Long userId); } \ 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 index ba0a7396..5aa03550 100644 --- 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 @@ -1,11 +1,13 @@ package cn.iocoder.yudao.module.system.service.laborcontract; +import cn.hutool.core.collection.CollectionUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 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.controller.admin.laborcontract.vo.SigningDateRespVO; import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO; import cn.iocoder.yudao.module.system.dal.mysql.laborcontract.LaborContractMapper; import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper; @@ -118,4 +120,15 @@ public class LaborContractServiceImpl implements LaborContractService { .lt(LaborContractDO::getExpirationDate, now) .eq(LaborContractDO::getStatus, 3)); } + + @Override + public LaborContractDO getSigningDate(Long userId) { + + List list = laborContractMapper.selectList(new LambdaQueryWrapperX() + .eq(LaborContractDO::getUserId, userId) + .isNotNull(LaborContractDO::getProbationPeriodTime) + .orderByDesc(LaborContractDO::getCreateTime)); + + return CollectionUtil.isEmpty(list) ? null : list.get(0); + } } \ No newline at end of file