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 2ba764af..cf0b8476 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 @@ -3,11 +3,17 @@ 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.api.dept.DeptApi; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; 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.dept.DeptDO; import cn.iocoder.yudao.module.system.dal.dataobject.laborcontract.LaborContractDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.service.dept.DeptService; import cn.iocoder.yudao.module.system.service.laborcontract.LaborContractService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -18,6 +24,8 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.List; + import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 劳动合同管理") @@ -62,11 +70,22 @@ public class LaborContractController { return success(BeanUtils.toBean(laborContract, LaborContractRespVO.class)); } + @GetMapping("/get-history") + @Operation(summary = "获得用户历史签约信息") + @Parameter(name = "userId", description = "用户编号", required = true, example = "146") + @PreAuthorize("@ss.hasPermission('system:labor-contract:query')") + public CommonResult> getHistoryList(@RequestParam("userId") Long userId) { + + List laborContracts = laborContractService.getHistoryList(userId); + + return success(BeanUtils.toBean(laborContracts, 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)); + + return success(laborContractService.getLaborContractPage(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/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 index 3429fe9b..75393f2d 100644 --- 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 @@ -39,6 +39,9 @@ public class LaborContractRespVO { @Schema(description = "签约次数") private Integer signingCount; + @Schema(description = "试用期时间(月)", example = "3") + private Integer probationPeriodTime; + @Schema(description = "状态 0待签 1已签 2过期", example = "0") private Integer status; 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 index 96ecbd83..32820c7c 100644 --- 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 @@ -24,11 +24,16 @@ public class LaborContractSaveReqVO { private Long deptId; @Schema(description = "签约日期") + @NotNull(message = "签约日期不能为空") private LocalDate signingDate; @Schema(description = "签约年限") + @NotNull(message = "签约年限不能为空") private Integer contractDuration; + @Schema(description = "试用期时间(月)", example = "3") + private Integer probationPeriodTime; + @Schema(description = "状态 0待签 1已签 2过期", example = "0") private Integer status; 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 new file mode 100644 index 00000000..f74b0109 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/laborcontract/vo/UploadFile.java @@ -0,0 +1,17 @@ +package cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * 功能描述 用于给日志附件同用的上传文件对象 + */ +@Data +public class UploadFile { + + @Schema(description = "文件管理 fileId", requiredMode = Schema.RequiredMode.REQUIRED, example = "123.jpg") + private String fileId; + + @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/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 index d592ca65..c57377f8 100644 --- 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 @@ -1,6 +1,7 @@ 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.laborcontract.vo.UploadFile; import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.upload.UploadUserFile; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -50,6 +51,10 @@ public class LaborContractDO extends BaseDO { * 签约年限 */ private Integer contractDuration; + /** + * 试用期限 + */ + private Integer probationPeriodTime; /** * 状态 0待签 1已签 2过期 */ @@ -58,5 +63,5 @@ public class LaborContractDO extends BaseDO { * 附件基本信息 */ @TableField(typeHandler = JacksonTypeHandler.class) - private List fileItems; + 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 index 50778765..d84175df 100644 --- 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 @@ -1,13 +1,20 @@ package cn.iocoder.yudao.module.system.dal.mysql.laborcontract; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX; 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 cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import javax.annotation.Resource; +import java.util.List; + /** * 劳动合同管理 Mapper * @@ -16,5 +23,10 @@ import org.apache.ibatis.annotations.Param; @Mapper public interface LaborContractMapper extends BaseMapperX { - IPage selectPage(@Param("page") IPage mpPage, @Param("reqVO") LaborContractPageReqVO pageReqVO); + default List selectHistoryList(Long userId) { + + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(LaborContractDO::getUserId, userId) + .orderByDesc(LaborContractDO::getCreateTime)); + } } \ 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 index 865cc7aa..7a137aac 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 @@ -2,10 +2,12 @@ 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.LaborContractRespVO; 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; +import java.util.List; /** * 劳动合同管理 Service 接口 @@ -50,6 +52,19 @@ public interface LaborContractService { * @param pageReqVO 分页查询 * @return 劳动合同管理分页 */ - PageResult getLaborContractPage(LaborContractPageReqVO pageReqVO); + PageResult getLaborContractPage(LaborContractPageReqVO pageReqVO); + /** + * 获得用户历史签约信息 + * @param userId 用户编号 + * @return 合同信息列表 + */ + List getHistoryList(Long userId); + + /** + * 获得指定用户的签约信息列表 + * @param userIds 用户编号列表 + * @return 签约信息列表 + */ + List getListByUserIds(List userIds); } \ 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 b69f2c3b..29e242d2 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 @@ -3,14 +3,21 @@ 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.LaborContractRespVO; import cn.iocoder.yudao.module.system.controller.admin.laborcontract.vo.LaborContractSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.loginstance.LogInstanceRespVO; 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; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.List; + import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.LABOR_CONTRACT_NOT_EXISTS; @@ -26,6 +33,9 @@ public class LaborContractServiceImpl implements LaborContractService { @Resource private LaborContractMapper laborContractMapper; + @Resource + private AdminUserMapper userMapper; + @Override public Long createLaborContract(LaborContractSaveReqVO createReqVO) { // 插入 @@ -64,8 +74,23 @@ public class LaborContractServiceImpl implements LaborContractService { } @Override - public PageResult getLaborContractPage(LaborContractPageReqVO pageReqVO) { - return null; + public PageResult getLaborContractPage(LaborContractPageReqVO pageReqVO) { + + Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + IPage pageList = userMapper.selectContractPage(page, pageReqVO); + + return new PageResult<>(pageList.getRecords(), pageList.getTotal()); } + @Override + public List getHistoryList(Long userId) { + + return laborContractMapper.selectHistoryList(userId); + } + + @Override + public List getListByUserIds(List userIds) { + + return laborContractMapper.selectList(LaborContractDO::getUserId, userIds); + } } \ 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 index 3facc344..506b94d8 100644 --- 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 @@ -8,64 +8,4 @@ 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - - \ No newline at end of file