weaver-hrm-salary/src/com/engine/salary/mapper/datacollection/EmployMapper.xml

369 lines
14 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.datacollection.EmployMapper">
<!-- 员工基本信息 -->
<select id="listEmployee" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select e.ID as employeeId,
e.LASTNAME as username,
d.DEPARTMENTNAME as departmentName,
e.status,
e.mobile,
e.workcode
from hrmresource e
left join hrmdepartment d on e.departmentid = d.id
where e.status not in (7)
and (e.accounttype is null or e.accounttype = 0)
</select>
<select id="getEmployeeByIds" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select e.id as employeeId,
e.lastname as username,
e.certificatenum as idNo,
e.status as status,
e.workcode as workcode,
e.companystartdate as companystartdate,
e.mobile as mobile
from hrmresource e
where e.status not in (7) and (e.accounttype is null or e.accounttype = 0)
<if test="collection != null and collection.size()>0">
AND e.id IN
<foreach collection="collection" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
</select>
<select id="getEmployeeByIdsAll" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select e.id as employeeId,
e.lastname as username,
d.departmentname as departmentName,
d.id as departmentId,
sc.SUBCOMPANYNAME as subcompanyName,
c.jobtitlename as jobtitleName,
c.id as jobtitleId,
e.companystartdate as companystartdate,
e.mobile as mobile,
e.status as status,
e.workcode as workcode,
e.sex as sex,
e.email as email,
e.telephone as telephone,
e.jobcall as jobcall,
e.birthday as birthday,
e.certificatenum as idNo,
c.id as jobtitleId,
e.enddate as dismissdate
from hrmresource e
left join hrmdepartment d on e.departmentid = d.id
left join hrmjobtitles c on e.jobtitle = c.id
left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id
where e.status not in (7) and (e.accounttype is null or e.accounttype = 0)
<if test="collection != null and collection.size()>0">
AND e.id IN
<foreach collection="collection" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
</select>
<select id="listPositionInfo" resultType="com.engine.salary.entity.hrm.PositionInfo">
select t.id,
t.jobtitlename as name
from hrmjobtitles t
where 1=1
<if test="collection != null and collection.size()>0">
AND t.id IN
<foreach collection="collection" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
</select>
<select id="getAdminEmployeeByIds" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select e.id as employeeId,
e.lastname as username
from hrmresourcemanager e
where e.status not in (7)
<if test="collection != null and collection.size()>0">
AND e.id IN
<foreach collection="collection" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
</select>
<select id="listByParams" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select e.id as employeeId,
e.lastname as username,
e.status as status,
e.certificatenum as idNo,
e.workcode as workcode,
d.departmentname as departmentName,
d.id as departmentId,
c.jobtitlename as jobtitleName,
c.id as jobtitleId,
e.companystartdate as companystartdate,
e.mobile as mobile
from hrmresource e
left join hrmdepartment d on e.departmentid = d.id
left join hrmjobtitles c on e.jobtitle = c.id
WHERE e.status not in (7) and (e.accounttype is null or e.accounttype = 0)
<if test="params != null and params.size() > 0">
AND ( 1=2
<foreach collection="params" item="param">
OR
(
<if test="param.targetType == 'EMPLOYEE'">
e.id IN
<foreach collection="param.targetIds" open="(" item="targetId" separator="," close=")">
#{targetId}
</foreach>
</if>
<if test="param.targetType == 'DEPT'">
d.id IN
<foreach collection="param.targetIds" open="(" item="targetId" separator="," close=")">
#{targetId}
</foreach>
</if>
<if test="param.targetType == 'POSITION'">
c.id IN
<foreach collection="param.targetIds" open="(" item="targetId" separator="," close=")">
#{targetId}
</foreach>
</if>
<if test="param.targetType == 'SUBCOMPANY'">
e.subcompanyid1 IN
<foreach collection="param.targetIds" open="(" item="targetId" separator="," close=")">
#{targetId}
</foreach>
</if>
<if test="param.employeeStatus != null and param.employeeStatus.size() > 0">
AND e.status IN
<foreach collection="param.employeeStatus" open="(" item="status" separator="," close=")">
#{status}
</foreach>
</if>
<!-- &#45;&#45; 在职-->
<!-- <if test="param.employeeStatus != null and param.employeeStatus == 'normal'">-->
<!-- AND em.status in (0,1,2,3)-->
<!-- </if>-->
<!-- &#45;&#45; 离职-->
<!-- <if test="param.employeeStatus != null and param.employeeStatus == 'unavailable'">-->
<!-- AND em.status in (4,5,6)-->
<!-- </if>-->
)
</foreach>
)
</if>
</select>
<select id="getEmployeeById" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select e.id as employeeId,
e.lastname as username,
e.status as status,
e.certificatenum as idNo,
e.workcode as workcode,
d.departmentname as departmentName,
d.id as departmentId,
c.jobtitlename as jobtitleName,
c.id as jobtitleId,
e.companystartdate as companystartdate,
e.mobile as mobile,
e.enddate as dismissdate,
sc.SUBCOMPANYNAME as subcompanyName,
sc.id as subcompanyid
from hrmresource e
left join hrmdepartment d on e.departmentid = d.id
left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id
left join hrmjobtitles c on e.jobtitle = c.id
where e.status not in (7)
and (e.accounttype is null or e.accounttype = 0)
AND e.id = #{id}
</select>
<sql id="paramSql">
<!-- 关键字(姓名、 -->
<if test="userName != null and userName != ''">
AND
(
a.lastname like CONCAT('%',#{userName},'%')
)
</if>
</sql>
<sql id="paramSql" databaseId="oracle">
<if test="userName != null and userName != ''">
AND
(
a.lastname like '%'||#{userName}||'%'
)
</if>
</sql>
<sql id="paramSql" databaseId="sqlserver">
<if test="userName != null and userName != ''">
AND
(
a.lastname like '%'+#{userName}+'%'
)
</if>
</sql>
<select id="getEmployeeIdsByUserName" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select
a.LASTNAME as username
from hrmresource a
where
e.status not in (7)
and (e.accounttype is null or e.accounttype = 0)
<include refid="paramSql"/>
</select>
<select id="listAllFields" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select e.id as employeeId,
e.lastname as username,
e.status as status,
e.workcode as workcode,
e.certificatenum as idNo,
e.companystartdate as companystartdate,
e.mobile as mobile,
e.subcompanyid1 as subcompanyid,
d.departmentname as departmentName,
d.id as departmentId,
c.jobtitlename as jobtitleName,
c.id as jobtitleId
from hrmresource e
left join hrmdepartment d on e.departmentid = d.id
left join hrmjobtitles c on e.jobtitle = c.id
where e.status not in (7)
and (e.accounttype is null or e.accounttype = 0)
</select>
<select id="listAll" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select e.id as employeeId,
e.lastname as username,
e.status as status,
e.workcode as workcode,
e.certificatenum as idNo,
e.companystartdate as companystartdate,
e.mobile as mobile,
e.subcompanyid1 as subcompanyid,
e.departmentid as departmentId,
e.jobtitle as jobtitleId
from hrmresource e
where e.status not in (7)
and (e.accounttype is null or e.accounttype = 0)
</select>
<select id="listAllForReport" resultType="com.engine.salary.entity.datacollection.DataCollectionEmployee">
select e.id as employeeId,
e.lastname as username,
e.status as status,
e.workcode as workcode,
e.certificatenum as idNo,
e.companystartdate as companystartdate,
e.mobile as mobile,
e.departmentid as departmentId,
e.subcompanyid1 as subcompanyid,
e.costcenterid as costcenterId,
e.locationid as locationId,
e.jobtitle as jobtitleId,
d.departmentname as departmentName,
d.id as departmentId
from hrmresource e
left join hrmdepartment d on e.departmentid = d.id
where e.status not in (7)
and (e.accounttype is null or e.accounttype = 0)
</select>
<select id="getDeptInfoList" resultType="com.engine.salary.entity.hrm.DeptInfo">
select d.departmentname as name,
d.id as id
from hrmdepartment d
where 1=1
<if test="departmentIds != null and departmentIds.size()>0">
AND d.id IN
<foreach collection="departmentIds" open="(" item="departmentId" separator="," close=")">
#{departmentId}
</foreach>
</if>
</select>
<select id="getSubCompanyInfoList" resultType="com.engine.salary.entity.hrm.SubCompanyInfo">
select d.subcompanyname as name,
d.id as id
from hrmsubcompany d
where 1=1
<if test="subDepartmentIds != null and subDepartmentIds.size()>0">
AND d.id IN
<foreach collection="subDepartmentIds" open="(" item="subDepartmentId" separator="," close=")">
#{subDepartmentId}
</foreach>
</if>
</select>
<select id="listHrmInfoByIdAndName" resultType="com.engine.salary.entity.hrm.dto.HrmInfoDTO">
select e.id as employeeId,
e.lastname as username
from hrmresource e
where 1=1
<if test="param.ids != null and param.ids.size()>0">
AND e.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userName != null and param.userName != ''">
AND
(
e.lastname like CONCAT('%',#{param.userName},'%')
)
</if>
</select>
<select id="listHrmInfoByIdAndName" resultType="com.engine.salary.entity.hrm.dto.HrmInfoDTO" databaseId="sqlserver">
select e.id as employeeId,
e.lastname as username
from hrmresource e
where 1=1
<if test="param.ids != null and param.ids.size()>0">
AND e.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userName != null and param.userName != ''">
AND
(
e.lastname like '%'+#{param.userName}+'%'
)
</if>
</select>
<select id="listHrmInfoByIdAndName" resultType="com.engine.salary.entity.hrm.dto.HrmInfoDTO" databaseId="oracle">
select e.id as employeeId,
e.lastname as username
from hrmresource e
where 1=1
<if test="param.ids != null and param.ids.size()>0">
AND e.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userName != null and param.userName != ''">
AND
(
e.lastname like '%'||#{param.userName}||'%'
)
</if>
</select>
</mapper>