secondev-demo/secondev-xianghui-performance/src/main/resources/mapper/HrKpiFlowMapper.xml

101 lines
4.9 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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.weaver.seconddev.xianghui.performance.mapper.HrKpiFlowMapper">
<resultMap id="hrKpiFlowResultMap" type="com.weaver.seconddev.xianghui.performance.entity.po.HrKpiFlowPO">
<id property="id" column="id"/>
<result property="kpiUser" column="KPI_USER"/>
<result property="name" column="NAME"/>
<result property="kpiCurrentStep" column="kpi_current_step"/>
<result property="dateType" column="DATE_TYPE"/>
<result property="flowStatus" column="flow_status"/>
<result property="realPeriod" column="REAL_PERIOD"/>
<result property="createTime" column="create_time"/>
<result property="departmentId" column="department"/>
<result property="score" column="score"/>
<result property="jobNum" column="job_num"/>
<!-- 未查询的字段不需要映射会自动为null -->
</resultMap>
<select id="selectHrKpiFlowList" resultMap="hrKpiFlowResultMap">
SELECT
hkf.id,
hkf.KPI_USER,
hkf.NAME,
hkf.kpi_current_step,
hkf.DATE_TYPE,
hkf.score,
e.job_num,
CASE
WHEN hkf.flow_status IN ('noScore', 'noApprove')
THEN 'scoreOverTime'
ELSE hkf.flow_status
END AS flow_status,
hkf.create_time,
hkf.REAL_PERIOD,
CASE
WHEN d.id = sub.id AND sub.id IS NOT NULL
THEN NULL
ELSE d.id
END AS department
FROM
HR_KPI_FLOW hkf
JOIN
eteams.employee e ON hkf.kpi_user = e.id
LEFT JOIN
eteams.department d ON e.department = d.id
LEFT JOIN
eteams.department sub ON d.subcompanyid = sub.id
WHERE
hkf.delete_type = 0
AND hkf.TENANT_KEY = #{tenantKey}
AND hkf.REAL_PERIOD >= #{startDate}
AND hkf.REAL_PERIOD &lt;= #{endDate}
</select>
<select id="findOperatorsByStepId" resultType="java.lang.Long">
SELECT CASE WHEN hrfs.step_status='appeals' THEN Hkfo.complainant_User ELSE hkfo.OPERATER END AS OPERATER
FROM hr_kpi_flow_step hrfs
LEFT JOIN hr_kpi_flow_step hrfs2 ON hrfs.KPI_FLOW = hrfs2.KPI_FLOW
and hrfs.STEP_TYPE = hrfs2.STEP_TYPE
AND (
(hrfs2.DISTRIBUTE_TYPE = hrfs.DISTRIBUTE_TYPE and (hrfs.next_step = hrfs2.next_step or (hrfs.next_step IS NULL
AND hrfs2.next_step IS NULL)) and
(hrfs2.STEP_STATUS = 'kpsing' or hrfs2.STEP_STATUS = 'kpsback'))
or (
hrfs2.STEP_STATUS = 'processing' or hrfs2.STEP_STATUS = 'back' or hrfs2.STEP_STATUS = 'appeals')
)
JOIN HR_KPI_FLOW_OPERATOR hkfo ON hkfo.KPI_FLOW_STEP = hrfs.id
and hkfo.OPERATER is not null
and hkfo.OPERATE_STATUS = 'opKpsStart'
and hkfo.delete_type = 0
and (hrfs.delete_type=0 or hrfs.delete_type is null)
and (hrfs2.delete_type=0 or hrfs2.delete_type is null)
and hkfo.TENANT_KEY = #{tenantKey}
WHERE hrfs.id = #{stepId}
and hrfs.TENANT_KEY = #{tenantKey}
UNION ALL
SELECT CASE WHEN hrfs2.step_status='appeals' THEN Hkfo.complainant_User ELSE hkfo.OPERATER END AS OPERATER
FROM hr_kpi_flow_step hrfs
LEFT JOIN hr_kpi_flow_step hrfs2 ON hrfs.KPI_FLOW = hrfs2.KPI_FLOW
and hrfs.STEP_TYPE = hrfs2.STEP_TYPE
AND ((hrfs2.DISTRIBUTE_TYPE = hrfs.DISTRIBUTE_TYPE and (hrfs.next_step = hrfs2.next_step or (hrfs.next_step IS
NULL AND hrfs2.next_step IS NULL)) and
(hrfs2.STEP_STATUS = 'kpsing' or hrfs2.STEP_STATUS = 'kpsback'))
or (
hrfs2.STEP_STATUS = 'processing' or hrfs2.STEP_STATUS = 'back' or hrfs2.STEP_STATUS = 'appeals')
)
JOIN HR_KPI_FLOW_OPERATOR hkfo ON hkfo.KPI_FLOW_STEP = hrfs2.id
and hkfo.OPERATER is not null
and hkfo.OPERATE_STATUS = 'opKpsStart'
and hkfo.delete_type = 0
and (hrfs.delete_type=0 or hrfs.delete_type is null)
and (hrfs2.delete_type=0 or hrfs2.delete_type is null)
and hkfo.TENANT_KEY = #{tenantKey}
WHERE hrfs.id = #{stepId}
and hrfs.TENANT_KEY = #{tenantKey}
</select>
</mapper>