新增获取当前登录用户入职和转正时间的API和相关服务。

This commit is contained in:
furongxin 2024-09-23 14:26:27 +08:00
parent 903192ce68
commit b5a3bcac50
5 changed files with 65 additions and 2 deletions

View File

@ -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<SigningDateRespVO> 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);
}
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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<LaborContractDO> getListByEndTime(LocalDate now);
/**
* 获得当前登录用户的入职时间和转正时间
* @param userId 用户编号
* @return 日期
*/
LaborContractDO getSigningDate(Long userId);
}

View File

@ -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<LaborContractDO> list = laborContractMapper.selectList(new LambdaQueryWrapperX<LaborContractDO>()
.eq(LaborContractDO::getUserId, userId)
.isNotNull(LaborContractDO::getProbationPeriodTime)
.orderByDesc(LaborContractDO::getCreateTime));
return CollectionUtil.isEmpty(list) ? null : list.get(0);
}
}