|
@@ -2,127 +2,190 @@
|
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
<mapper namespace="com.qmth.sop.business.mapper.TBDingMapper">
|
|
|
|
|
|
- <select id="query" resultType="com.qmth.sop.business.bean.result.TBDingCountQueryResult">
|
|
|
- SELECT * from (
|
|
|
- SELECT
|
|
|
- bs.NAME service,
|
|
|
- d.sop_no,
|
|
|
- c.NAME custom,
|
|
|
- ua.province,
|
|
|
- ua.city,
|
|
|
- crm.exam_start_time,
|
|
|
- crm.exam_end_time,
|
|
|
- u.real_name user_name,
|
|
|
- ua.`code` user_no,
|
|
|
- r.`name` role_name,
|
|
|
- s.NAME supplier,
|
|
|
- count( d.id ) attendance,
|
|
|
- SUM( CASE WHEN d.date_type = 'WEEKDAY' THEN 1 ELSE 0 END ) weekdays,
|
|
|
- SUM( CASE WHEN d.date_type = 'WEEKEND' THEN 1 ELSE 0 END ) weekends,
|
|
|
- SUM( CASE WHEN d.date_type = 'LEGAL_HOLIDAYS' THEN 1 ELSE 0 END ) holidays,
|
|
|
- SUM( CASE WHEN d.sign_out_time is not null and d.sign_in_time is not null THEN TIMESTAMPDIFF(HOUR, DATE_FORMAT(FROM_UNIXTIME(d.sign_out_time), '%Y-%m-%d %H:%i:%s'), DATE_FORMAT(FROM_UNIXTIME(d.sign_in_time), '%Y-%m-%d %H:%i:%s')) ELSE 0 END ) work_hours,
|
|
|
- DATEDIFF(DATE_FORMAT(FROM_UNIXTIME(crm.exam_start_time), '%Y-%m-%d'), DATE_FORMAT(FROM_UNIXTIME(crm.exam_end_time), '%Y-%m-%d'))-count( d.id )+1 violation_days,
|
|
|
- f.`status`,
|
|
|
- sub.real_name submitter,
|
|
|
- f.create_time submission_time ,
|
|
|
- d.service_id,
|
|
|
- f.create_id,
|
|
|
- s.id supplier_id
|
|
|
+ <select id="query" resultType="com.qmth.sop.business.bean.result.TBDingSubmitQueryResult">
|
|
|
|
|
|
- FROM
|
|
|
- t_b_ding d
|
|
|
- LEFT JOIN sys_user u ON u.id = d.user_id
|
|
|
- LEFT JOIN t_b_user_archives ua ON u.mobile_number = ua.mobile_number
|
|
|
- LEFT JOIN t_b_user_archives_supplier us ON us.user_archives_id = ua.id
|
|
|
- LEFT JOIN t_b_service bs ON bs.id = d.service_id
|
|
|
- LEFT JOIN t_b_sop_info sop ON sop.crm_no = d.crm_no
|
|
|
- AND sop.sop_no = d.sop_no
|
|
|
- LEFT JOIN t_b_engineer_allocation ea ON ea.crm_no = d.crm_no
|
|
|
- AND ea.sop_no = d.sop_no
|
|
|
- LEFT JOIN sys_role r ON ea.role_id = r.id
|
|
|
- LEFT JOIN t_b_crm crm ON crm.crm_no = d.crm_no
|
|
|
- LEFT JOIN sys_custom c ON c.id = sop.custom_id
|
|
|
- LEFT JOIN t_f_flow_approve f ON f.flow_id = d.flow_id
|
|
|
- LEFT JOIN sys_user sub ON sub.id = f.create_id
|
|
|
- LEFT JOIN sys_supplier s ON s.id = us.supplier_id
|
|
|
- GROUP BY
|
|
|
- bs.NAME,
|
|
|
- d.sop_no,
|
|
|
- c.NAME,
|
|
|
- ua.province,
|
|
|
- ua.city,
|
|
|
- crm.exam_start_time,
|
|
|
- crm.exam_end_time,
|
|
|
- u.real_name,
|
|
|
- ua.`code`,
|
|
|
- r.`name`,
|
|
|
- s.NAME,
|
|
|
- f.`status`,
|
|
|
- f.create_id,
|
|
|
- f.create_time,
|
|
|
- d.service_id,
|
|
|
- s.id ) a
|
|
|
+ SELECT
|
|
|
+ bs.NAME service,
|
|
|
+ d.sop_no,
|
|
|
+ c.NAME custom,
|
|
|
+ ua.province,
|
|
|
+ ua.city,
|
|
|
+ d.approach_time exam_start_time,
|
|
|
+ d.departure_time exam_end_time,
|
|
|
+ ua.name user_name,
|
|
|
+ ua.`code` user_no,
|
|
|
+ r.`name` role_name,
|
|
|
+ s.NAME supplier,
|
|
|
+ d.actual_days attendance,
|
|
|
+ d.weekdays weekdays,
|
|
|
+ d.weekends weekends,
|
|
|
+ d.legal_holidays holidays,
|
|
|
+ d.work_hours work_hours,
|
|
|
+ d.violation_days violation_days,
|
|
|
+ d.submit_status `status`,
|
|
|
+ sub.real_name submitter,
|
|
|
+ d.submit_time submission_time
|
|
|
|
|
|
- <where>
|
|
|
- <if test="serviceId != null and serviceId != ''">
|
|
|
- and a.service_id = #{serviceId}
|
|
|
- </if>
|
|
|
- <if test="status != null and status != ''">
|
|
|
- and a.status = #{status}
|
|
|
- </if>
|
|
|
- <if test="createId != null and createId != ''">
|
|
|
- and a.create_id = #{create_id}
|
|
|
- </if>
|
|
|
- <if test="userName != null and userName != ''">
|
|
|
- and a.real_name like concat('%', #{userName} , '%')
|
|
|
- </if>
|
|
|
- <if test="supplierId != null and supplierId != ''">
|
|
|
- and a.supplier_id = #{supplierId}
|
|
|
- </if>
|
|
|
- <if test="custom != null and custom != ''">
|
|
|
- and a.name like concat('%', #{custom} , '%')
|
|
|
- </if>
|
|
|
- <if test="sopNo != null and sopNo != ''">
|
|
|
- and a.sop_no like concat('%', #{sopNo} , '%')
|
|
|
- </if>
|
|
|
- <if test="days != null and days != '' ">
|
|
|
- <![CDATA[
|
|
|
- and a.days > #{days}
|
|
|
- ]]>
|
|
|
- </if>
|
|
|
- </where>
|
|
|
+ FROM
|
|
|
+ t_b_ding_submit d
|
|
|
+ LEFT JOIN t_b_user_archives ua ON d.user_archives_id = ua.id
|
|
|
+ LEFT JOIN t_b_user_archives_supplier us ON us.user_archives_id = ua.id
|
|
|
+ LEFT JOIN t_b_service bs ON bs.id = d.service_id
|
|
|
+ LEFT JOIN sys_role r ON r.type = d.role_type
|
|
|
+ LEFT JOIN t_b_crm crm ON crm.crm_no = d.crm_no
|
|
|
+ LEFT JOIN sys_custom c ON c.id = crm.custom_id
|
|
|
+ LEFT JOIN sys_user sub ON sub.id = d.submit_user_id
|
|
|
+ LEFT JOIN sys_supplier s ON s.id = us.supplier_id
|
|
|
|
|
|
- </select>
|
|
|
+ <where>
|
|
|
+ <if test="serviceId != null and serviceId != ''">
|
|
|
+ and d.service_id = #{serviceId}
|
|
|
+ </if>
|
|
|
+ <if test="status != null and status != ''">
|
|
|
+ and d.submit_status = #{status}
|
|
|
+ </if>
|
|
|
+ <if test="createId != null and createId != ''">
|
|
|
+ and d.submit_user_id = #{create_id}
|
|
|
+ </if>
|
|
|
+ <if test="userName != null and userName != ''">
|
|
|
+ and ua.name like concat('%', #{userName} , '%')
|
|
|
+ </if>
|
|
|
+ <if test="supplierId != null and supplierId != ''">
|
|
|
+ and us.supplier_id = #{supplierId}
|
|
|
+ </if>
|
|
|
+ <if test="custom != null and custom != ''">
|
|
|
+ and c.NAME like concat('%', #{custom} , '%')
|
|
|
+ </if>
|
|
|
+ <if test="sopNo != null and sopNo != ''">
|
|
|
+ and d.sop_no like concat('%', #{sopNo} , '%')
|
|
|
+ </if>
|
|
|
+ <if test="days != null and days != '' ">
|
|
|
+ <![CDATA[
|
|
|
+ and d.violation_days > #{days}
|
|
|
+ ]]>
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+
|
|
|
+ </select>
|
|
|
+
|
|
|
+<!-- <select id="query" resultType="com.qmth.sop.business.bean.result.TBDingCountQueryResult">-->
|
|
|
+<!-- SELECT * from (-->
|
|
|
+<!-- SELECT-->
|
|
|
+<!-- bs.NAME service,-->
|
|
|
+<!-- d.sop_no,-->
|
|
|
+<!-- c.NAME custom,-->
|
|
|
+<!-- ua.province,-->
|
|
|
+<!-- ua.city,-->
|
|
|
+<!-- crm.exam_start_time,-->
|
|
|
+<!-- crm.exam_end_time,-->
|
|
|
+<!-- u.real_name user_name,-->
|
|
|
+<!-- ua.`code` user_no,-->
|
|
|
+<!-- r.`name` role_name,-->
|
|
|
+<!-- s.NAME supplier,-->
|
|
|
+<!-- count( d.id ) attendance,-->
|
|
|
+<!-- SUM( CASE WHEN d.date_type = 'WEEKDAY' THEN 1 ELSE 0 END ) weekdays,-->
|
|
|
+<!-- SUM( CASE WHEN d.date_type = 'WEEKEND' THEN 1 ELSE 0 END ) weekends,-->
|
|
|
+<!-- SUM( CASE WHEN d.date_type = 'LEGAL_HOLIDAYS' THEN 1 ELSE 0 END ) holidays,-->
|
|
|
+<!-- SUM( CASE WHEN d.sign_out_time is not null and d.sign_in_time is not null THEN TIMESTAMPDIFF(HOUR, DATE_FORMAT(FROM_UNIXTIME(d.sign_out_time), '%Y-%m-%d %H:%i:%s'), DATE_FORMAT(FROM_UNIXTIME(d.sign_in_time), '%Y-%m-%d %H:%i:%s')) ELSE 0 END ) work_hours,-->
|
|
|
+<!-- DATEDIFF(DATE_FORMAT(FROM_UNIXTIME(crm.exam_start_time), '%Y-%m-%d'), DATE_FORMAT(FROM_UNIXTIME(crm.exam_end_time), '%Y-%m-%d'))-count( d.id )+1 violation_days,-->
|
|
|
+<!-- f.`status`,-->
|
|
|
+<!-- sub.real_name submitter,-->
|
|
|
+<!-- f.create_time submission_time ,-->
|
|
|
+<!-- d.service_id,-->
|
|
|
+<!-- f.create_id,-->
|
|
|
+<!-- s.id supplier_id-->
|
|
|
+
|
|
|
+<!-- FROM-->
|
|
|
+<!-- t_b_ding d-->
|
|
|
+<!-- LEFT JOIN sys_user u ON u.id = d.user_id-->
|
|
|
+<!-- LEFT JOIN t_b_user_archives ua ON u.mobile_number = ua.mobile_number-->
|
|
|
+<!-- LEFT JOIN t_b_user_archives_supplier us ON us.user_archives_id = ua.id-->
|
|
|
+<!-- LEFT JOIN t_b_service bs ON bs.id = d.service_id-->
|
|
|
+<!-- LEFT JOIN t_b_sop_info sop ON sop.crm_no = d.crm_no-->
|
|
|
+<!-- AND sop.sop_no = d.sop_no-->
|
|
|
+<!-- LEFT JOIN t_b_engineer_allocation ea ON ea.crm_no = d.crm_no-->
|
|
|
+<!-- AND ea.sop_no = d.sop_no-->
|
|
|
+<!-- LEFT JOIN sys_role r ON ea.role_id = r.id-->
|
|
|
+<!-- LEFT JOIN t_b_crm crm ON crm.crm_no = d.crm_no-->
|
|
|
+<!-- LEFT JOIN sys_custom c ON c.id = sop.custom_id-->
|
|
|
+<!-- LEFT JOIN t_f_flow_approve f ON f.flow_id = d.flow_id-->
|
|
|
+<!-- LEFT JOIN sys_user sub ON sub.id = f.create_id-->
|
|
|
+<!-- LEFT JOIN sys_supplier s ON s.id = us.supplier_id-->
|
|
|
+<!-- GROUP BY-->
|
|
|
+<!-- bs.NAME,-->
|
|
|
+<!-- d.sop_no,-->
|
|
|
+<!-- c.NAME,-->
|
|
|
+<!-- ua.province,-->
|
|
|
+<!-- ua.city,-->
|
|
|
+<!-- crm.exam_start_time,-->
|
|
|
+<!-- crm.exam_end_time,-->
|
|
|
+<!-- u.real_name,-->
|
|
|
+<!-- ua.`code`,-->
|
|
|
+<!-- r.`name`,-->
|
|
|
+<!-- s.NAME,-->
|
|
|
+<!-- f.`status`,-->
|
|
|
+<!-- f.create_id,-->
|
|
|
+<!-- f.create_time,-->
|
|
|
+<!-- d.service_id,-->
|
|
|
+<!-- s.id ) a-->
|
|
|
+
|
|
|
+<!-- <where>-->
|
|
|
+<!-- <if test="serviceId != null and serviceId != ''">-->
|
|
|
+<!-- and a.service_id = #{serviceId}-->
|
|
|
+<!-- </if>-->
|
|
|
+<!-- <if test="status != null and status != ''">-->
|
|
|
+<!-- and a.status = #{status}-->
|
|
|
+<!-- </if>-->
|
|
|
+<!-- <if test="createId != null and createId != ''">-->
|
|
|
+<!-- and a.create_id = #{create_id}-->
|
|
|
+<!-- </if>-->
|
|
|
+<!-- <if test="userName != null and userName != ''">-->
|
|
|
+<!-- and a.real_name like concat('%', #{userName} , '%')-->
|
|
|
+<!-- </if>-->
|
|
|
+<!-- <if test="supplierId != null and supplierId != ''">-->
|
|
|
+<!-- and a.supplier_id = #{supplierId}-->
|
|
|
+<!-- </if>-->
|
|
|
+<!-- <if test="custom != null and custom != ''">-->
|
|
|
+<!-- and a.name like concat('%', #{custom} , '%')-->
|
|
|
+<!-- </if>-->
|
|
|
+<!-- <if test="sopNo != null and sopNo != ''">-->
|
|
|
+<!-- and a.sop_no like concat('%', #{sopNo} , '%')-->
|
|
|
+<!-- </if>-->
|
|
|
+<!-- <if test="days != null and days != '' ">-->
|
|
|
+<!-- <![CDATA[-->
|
|
|
+<!-- and a.days > #{days}-->
|
|
|
+<!-- ]]>-->
|
|
|
+<!-- </if>-->
|
|
|
+<!-- </where>-->
|
|
|
+
|
|
|
+<!-- </select>-->
|
|
|
|
|
|
|
|
|
<select id="count" resultType="com.qmth.sop.business.bean.result.TBDingCountResult">
|
|
|
SELECT
|
|
|
- count( d.id ) total,
|
|
|
- SUM( CASE WHEN f.`status`='FINISH' THEN 1 ELSE 0 END ) submitted,
|
|
|
- SUM( CASE WHEN f.`status`!='FINISH' THEN 1 ELSE 0 END ) un_submitted,
|
|
|
- SUM( CASE WHEN f.`status`='FINISH' THEN 1 ELSE 0 END ) all_days,
|
|
|
- SUM( CASE WHEN f.`status`='FINISH' THEN TIMESTAMPDIFF(HOUR, DATE_FORMAT(FROM_UNIXTIME(d.sign_out_time), '%Y-%m-%d %H:%i:%s'), DATE_FORMAT(FROM_UNIXTIME(d.sign_in_time), '%Y-%m-%d %H:%i:%s')) ELSE 0 END ) all_hours
|
|
|
+ sum( d.id ) total,
|
|
|
+ SUM( CASE WHEN d.submit_status='AGREE_DING' THEN 1 ELSE 0 END ) submitted,
|
|
|
+ SUM( CASE WHEN d.submit_status!='AGREE_DING' THEN 1 ELSE 0 END ) un_submitted,
|
|
|
+ SUM( CASE WHEN d.submit_status='AGREE_DING' THEN d.actual_days ELSE 0 END ) all_days,
|
|
|
+ SUM( CASE WHEN d.submit_status='AGREE_DING' THEN d.work_hours ELSE 0 END ) all_hours
|
|
|
FROM
|
|
|
- t_b_ding d
|
|
|
- LEFT JOIN sys_user u ON u.id = d.user_id
|
|
|
- LEFT JOIN t_b_user_archives ua ON u.mobile_number = ua.mobile_number
|
|
|
+ t_b_ding_submit d
|
|
|
+ LEFT JOIN t_b_user_archives ua ON d.user_archives_id = ua.id
|
|
|
LEFT JOIN t_b_user_archives_supplier us ON us.user_archives_id = ua.id
|
|
|
- LEFT JOIN t_b_sop_info sop ON sop.crm_no = d.crm_no
|
|
|
- AND sop.sop_no = d.sop_no
|
|
|
- LEFT JOIN sys_custom c ON c.id = sop.custom_id
|
|
|
- LEFT JOIN t_f_flow_approve f ON f.flow_id = d.flow_id
|
|
|
+ LEFT JOIN t_b_crm crm ON crm.crm_no = d.crm_no
|
|
|
+ LEFT JOIN sys_custom c ON c.id = crm.custom_id
|
|
|
<where>
|
|
|
<if test="serviceId != null and serviceId != ''">
|
|
|
and d.service_id = #{serviceId}
|
|
|
</if>
|
|
|
<if test="createId != null and createId != ''">
|
|
|
- and f.create_id = #{create_id}
|
|
|
+ and d.submit_user_id = #{create_id}
|
|
|
</if>
|
|
|
<if test="userName != null and userName != ''">
|
|
|
- and u.real_name like concat('%', #{userName} , '%')
|
|
|
+ and ua.name like concat('%', #{userName} , '%')
|
|
|
</if>
|
|
|
<if test="supplierId != null and supplierId != ''">
|
|
|
- and ud.supplier_id = #{supplierId}
|
|
|
+ and us.supplier_id = #{supplierId}
|
|
|
</if>
|
|
|
<if test="custom != null and custom != ''">
|
|
|
and c.name like concat('%', #{custom} , '%')
|
|
@@ -136,11 +199,12 @@
|
|
|
<select id="attendanceQuery" resultType="com.qmth.sop.business.bean.result.TBDingAttendanceResult">
|
|
|
SELECT * from (
|
|
|
SELECT
|
|
|
+ d.ding_sop_no sop_no,
|
|
|
bs.NAME service,
|
|
|
c.NAME custom,
|
|
|
ua.province,
|
|
|
ua.city,
|
|
|
- u.real_name user_name,
|
|
|
+ ua.name user_name,
|
|
|
ua.`code` user_no,
|
|
|
r.`name` role_name,
|
|
|
s.NAME supplier,
|
|
@@ -157,17 +221,12 @@
|
|
|
SELECT d.*,d.sign_in_time sign_time,'IN' AS type FROM t_b_ding d UNION ALL
|
|
|
SELECT d.*,d.sign_out_time sign_time,'OUT' AS type FROM t_b_ding d
|
|
|
) d
|
|
|
- LEFT JOIN sys_user u ON u.id = d.user_id
|
|
|
- LEFT JOIN t_b_user_archives ua ON u.mobile_number = ua.mobile_number
|
|
|
+ LEFT JOIN t_b_user_archives ua ON ua.id = d.user_archives_id
|
|
|
LEFT JOIN t_b_user_archives_supplier us ON us.user_archives_id = ua.id
|
|
|
LEFT JOIN t_b_service bs ON bs.id = d.service_id
|
|
|
- LEFT JOIN t_b_sop_info sop ON sop.crm_no = d.crm_no
|
|
|
- AND sop.sop_no = d.sop_no
|
|
|
- LEFT JOIN t_b_engineer_allocation ea ON ea.crm_no = d.crm_no
|
|
|
- AND ea.sop_no = d.sop_no
|
|
|
- LEFT JOIN sys_role r ON ea.role_id = r.id
|
|
|
+ LEFT JOIN sys_role r ON r.type = d.role_type
|
|
|
LEFT JOIN t_b_crm crm ON crm.crm_no = d.crm_no
|
|
|
- LEFT JOIN sys_custom c ON c.id = sop.custom_id
|
|
|
+ LEFT JOIN sys_custom c ON c.id = crm.custom_id
|
|
|
LEFT JOIN sys_supplier s ON s.id = us.supplier_id
|
|
|
|
|
|
) a
|
|
@@ -204,7 +263,7 @@
|
|
|
and a.status = #{status}
|
|
|
</if>
|
|
|
</where>
|
|
|
-
|
|
|
+ order by d.sign_date
|
|
|
</select>
|
|
|
|
|
|
<select id="attendanceCount" resultType="com.qmth.sop.business.bean.result.TBDingAttendanceCountResult">
|