yubo
2026-04-11 4e55bd9cee8e44f7a7a0d9185d8323fc7be9193d
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpContractInfoMapper.java
@@ -1,7 +1,15 @@
package cc.mrbird.febs.server.hr.mapper;
import cc.mrbird.febs.server.hr.entity.EmpContractInfo;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import java.util.List;
/**
*
@@ -10,9 +18,128 @@
* description:员工合同信息实体Mapper
*
* @author luoyibo
* @date 2021-01-24 20:35:42
* @date 2021-01-31 11:28:23
* @since JDK1.8
*/
public interface EmpContractInfoMapper extends BaseMapper<EmpContractInfo> {
   IPage<EmpContractInfo> selectPageVo(Page<?> page, @Param(Constants.WRAPPER) Wrapper wrapper);
/**
*
* 根据Id批量逻辑删除记录
*
* date luoyibo
* @author: 2021-01-31 11:28:23
* @param list 待删除Id
* @param operatorId 操作员Id
* @return void
*/
@Update("<script> " +
    " UPDATE t_emp_contractinfo SET delFlag = 1,\n" +
    " modifyTime = NOW(),\n" +
    " modifier = #{operatorId}, \n" +
    " version = version+1 \n" +
    " WHERE contractId IN \n" +
    "        <foreach item=\"delId\" collection=\"list\" open=\"(\" close=\")\" separator=\",\">\n" +
    "            #{delId} \n" +
    "        </foreach>\n" +
    "</script>")
void logicDeleteByIds(@Param("list") List<String> list,@Param("operatorId") String operatorId);
    /**
     *
     * 暂存记录提交
     *
     * date luoyibo
     * @author: 2021-01-31 11:28:23
     * @param list 待删除Id
     * @param operatorId 操作员Id
     * @return void
     */
    @Update("<script> " +
            " UPDATE t_emp_contractinfo SET delFlag = 0,\n" +
            " modifyTime = NOW(),\n" +
            " modifier = #{operatorId}, \n" +
            " version = version+1 \n" +
            " WHERE contractId IN \n" +
            "        <foreach item=\"delId\" collection=\"list\" open=\"(\" close=\")\" separator=\",\">\n" +
            "            #{delId} \n" +
            "        </foreach>\n" +
            "</script>")
    int momentToNormal(@Param("list") List<String> list,@Param("operatorId") String operatorId);
}
    @Update("<script> " +
            " UPDATE t_emp_contractinfo SET contractStatus='3',\n" +
            " empStatus='1',\n" +
            " modifyTime = NOW(),\n" +
            " modifier = #{operatorId}, \n" +
            " version = version+1 \n" +
            " WHERE contractStatus in ('1','2') " +
            " and  empId IN \n" +
            "        <foreach item=\"delId\" collection=\"list\" open=\"(\" close=\")\" separator=\",\">\n" +
            "            #{delId} \n" +
            "        </foreach>\n" +
            "</script>")
    int terminateContract(@Param("list") List<String> list,@Param("operatorId") String operatorId);
    @Update("<script> " +
            " UPDATE t_emp_contractinfo SET delFlag = 1,\n" +
            " modifyTime = NOW(),\n" +
            " modifier = #{operatorId}, \n" +
            " version = version+1 \n" +
            " WHERE empId IN \n" +
            "        <foreach item=\"delId\" collection=\"list\" open=\"(\" close=\")\" separator=\",\">\n" +
            "            #{delId} \n" +
            "        </foreach>\n" +
            "</script>")
    void logicDelByUserIds(@Param("list") List<String> list,@Param("operatorId") String operatorId);
    @Update("<script> " +
            " UPDATE t_emp_contractinfo SET contractStatus='4',\n" +
            " empStatus='1',\n" +
            " remindFlag=1,\n" +
            " modifyTime = NOW(),\n" +
            " modifier = #{operatorId}, \n" +
            " version = version+1 \n" +
            " WHERE TO_DAYS(t_emp_contractinfo.endDate) = TO_DAYS(NOW()) " +
            "</script>")
    int autoStopContract(@Param("operatorId") String operatorId);
    @Update("<script>" +
            " UPDATE t_emp_contractinfo SET diffDay=DATEDIFF(endDate, NOW())\n" +
            " WHERE endDate>=now()" +
            "</script>")
    int updateContractRemindDay();
    @Update("<script>" +
            " UPDATE t_emp_contractinfo SET remindFlag=1\n" +
            " WHERE contractId=#{contractId}" +
            "</script>")
    int updateEmpContractRemind(@Param("contractId") Long contractId);
    /**
     * UNION查询:即将到期 + 已到期未续签的合同
     *
     * @param page 分页参数
     * @param sqlSegment1 即将到期的查询条件SQL
     * @param sqlSegment2 已到期未续签的查询条件SQL
     * @return 分页结果
     */
    IPage<EmpContractInfo> selectUnionPageVo(
            @Param("page") Page<EmpContractInfo> page,
            @Param("sqlSegment1") String sqlSegment1,
            @Param("sqlSegment2") String sqlSegment2
    );
    /**
     * 查询在职人员的最后一份合同
     *
     * @param page 分页参数
     * @param sqlSegment 查询条件SQL
     * @return 分页结果
     */
    IPage<EmpContractInfo> selectLastContractPageVo(
            @Param("page") Page<EmpContractInfo> page,
            @Param("sqlSegment") String sqlSegment
    );
}