yubo
2026-04-11 4e55bd9cee8e44f7a7a0d9185d8323fc7be9193d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
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;
 
/**
*
* name:EmpContractinfo
* package:cc.mrbird.febs.server.hr.controller
* description:员工合同信息实体Mapper
*
* @author luoyibo
* @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
    );
}