日报表,月报表加外勤类型
This commit is contained in:
parent
d5539692c5
commit
d5e5eb3c9d
|
|
@ -34,6 +34,13 @@ public class AttDayReportBean {
|
|||
*/
|
||||
@Excel(name = "出入异常人数", sort = 10)
|
||||
private Long einErrorNum;
|
||||
|
||||
/**
|
||||
* 出入异常人数
|
||||
*/
|
||||
@Excel(name = "外勤人数", sort = 11)
|
||||
private Long outsideAttNum;
|
||||
|
||||
/**
|
||||
* 迟到人数
|
||||
*/
|
||||
|
|
@ -65,6 +72,8 @@ public class AttDayReportBean {
|
|||
@Excel(name = "旷工人数", sort = 5)
|
||||
private Long skippingNum;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 组织编号
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -96,6 +96,12 @@ public class AttMonthReportBean {
|
|||
@Excel(name = "出差人数", sort = 13)
|
||||
private Double businessTripNum;
|
||||
|
||||
/**
|
||||
* 出差人数
|
||||
*/
|
||||
@Excel(name = "外勤人数", sort = 15)
|
||||
private Double outsideAttNum;
|
||||
|
||||
/**
|
||||
* 月份
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@
|
|||
att_current_time, att_type, att_address, province,is_outside_att, att_lon, att_lat, data_source, remark)
|
||||
values (#{params.name}, #{params.idNumber}, #{params.orgId}, #{params.orgName},
|
||||
#{params.attCurrentDay}, #{params.attCurrentTime}, #{params.attType},
|
||||
#{params.attAddress}, #{params.province},#{params.isOutsideAtt}, #{params.attLon}, #{params.attLat}, #{params.dataSource},
|
||||
#{params.attAddress}, #{params.province},#{params.isOutsideAtt}, #{params.attLon}, #{params.attLat},
|
||||
#{params.dataSource},
|
||||
#{params.remark})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
|
@ -23,10 +24,11 @@
|
|||
<insert id="insertAttDayReport">
|
||||
<foreach collection="list" item="params" separator=";">
|
||||
replace into att_day_report(att_current_day, normal_num, late_num, early_num, skipping_num,
|
||||
leave_num, address_error_num, ein_error_num, rest_num, out_num)
|
||||
leave_num, address_error_num, ein_error_num, rest_num, out_num,outside_att_num)
|
||||
values (#{params.attCurrentDay}, #{params.normalNum}, #{params.lateNum},
|
||||
#{params.earlyNum}, #{params.skippingNum}, #{params.leaveNum},
|
||||
#{params.addressErrorNum}, #{params.einErrorNum}, #{params.restNum}, #{params.outNum})
|
||||
#{params.addressErrorNum}, #{params.einErrorNum}, #{params.restNum}, #{params.outNum},
|
||||
#{params.outsideAttNum})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
|
|
@ -85,7 +87,7 @@
|
|||
required_days)
|
||||
values
|
||||
<foreach collection="list" item="params" separator=",">
|
||||
(#{params.userId}, #{params.userName}, #{params.orgId}, #{params.orgName},
|
||||
(#{params.userId}, #{params.userName}, #{params.orgId}, #{params.orgName},
|
||||
#{params.attCurrentMonth}, #{params.requiredDays})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
|
@ -185,18 +187,24 @@
|
|||
<update id="updateAttMonthReport">
|
||||
<foreach collection="list" item="v" separator=";">
|
||||
update att_month_report
|
||||
set org_id = #{v.orgId},
|
||||
org_name = #{v.orgName},
|
||||
normal_num = #{v.normalNum},
|
||||
late_num = #{v.lateNum},
|
||||
early_num = #{v.earlyNum},
|
||||
skipping_num = #{v.skippingNum},
|
||||
leave_num = #{v.leaveNum},
|
||||
set
|
||||
<if test='v.orgId != null'>
|
||||
org_id = #{v.orgId},
|
||||
</if>
|
||||
<if test='v.orgName != null'>
|
||||
org_name = #{v.orgName},
|
||||
</if>
|
||||
normal_num = #{v.normalNum},
|
||||
late_num = #{v.lateNum},
|
||||
early_num = #{v.earlyNum},
|
||||
skipping_num = #{v.skippingNum},
|
||||
leave_num = #{v.leaveNum},
|
||||
address_error_num = #{v.addressErrorNum},
|
||||
ein_error_num = #{v.einErrorNum},
|
||||
rest_num = #{v.restNum},
|
||||
out_num = #{v.outNum},
|
||||
business_trip_num = #{v.businessTripNum}
|
||||
ein_error_num = #{v.einErrorNum},
|
||||
rest_num = #{v.restNum},
|
||||
out_num = #{v.outNum},
|
||||
business_trip_num = #{v.businessTripNum},
|
||||
outside_att_num = #{v.outsideAttNum}
|
||||
where
|
||||
user_id = #{v.userId}
|
||||
and att_current_month = #{v.attCurrentMonth}
|
||||
|
|
@ -260,7 +268,7 @@
|
|||
'0' as attAddress,
|
||||
lon as attLon,
|
||||
lat as attLat,
|
||||
IF(attendance_external = '外勤打卡',1,2) as isOutsideAtt,
|
||||
IF(attendance_external = '外勤打卡', 1, 2) as isOutsideAtt,
|
||||
'1' as dataSource
|
||||
from gz_cloud_test.fc_sup_attendance sup
|
||||
where sup.attendance_date = #{pushDate}
|
||||
|
|
@ -283,58 +291,74 @@
|
|||
|
||||
<select id="selectAttDayReport" resultType="com.bonus.system.att.entity.AttDayReportBean">
|
||||
select att_current_day,
|
||||
IFNULL(sum(toWorkAttStatus = 1 and offWorkAttStatus = 1), 0) as normalNum,
|
||||
IFNULL(sum(toWorkAttStatus = 2 or offWorkAttStatus = 2), 0) as lateNum,
|
||||
IFNULL(sum(toWorkAttStatus = 3 or offWorkAttStatus = 3), 0) as skippingNum,
|
||||
IFNULL(sum(toWorkAttStatus = 4 or offWorkAttStatus = 4), 0) as earlyNum,
|
||||
IFNULL(sum(toWorkAttStatus = 5 or offWorkAttStatus = 5), 0) as restNum,
|
||||
IFNULL(sum(toWorkAttStatus in (SELECT dict_value
|
||||
FROM sys_dict_data
|
||||
where dict_type = 'att_status' and is_leave = '1') or
|
||||
offWorkAttStatus in (SELECT dict_value
|
||||
FROM sys_dict_data
|
||||
where dict_type = 'att_status' and is_leave = '1')), 0) as leaveNum,
|
||||
IFNULL(sum(toWorkAttStatus = 7 or offWorkAttStatus = 7), 0) as outNum,
|
||||
IFNULL(sum(toWorkAttStatus = 8 or offWorkAttStatus = 8), 0) as einErrorNum,
|
||||
IFNULL(sum(toWorkAttStatus = 9 or offWorkAttStatus = 9), 0) as addressErrorNum
|
||||
IFNULL(sum(toWorkAttStatus = 1 and offWorkAttStatus = 1), 0) as normalNum,
|
||||
IFNULL(sum(toWorkAttStatus = 2 or offWorkAttStatus = 2), 0) as lateNum,
|
||||
IFNULL(sum(toWorkAttStatus = 3 or offWorkAttStatus = 3), 0) as skippingNum,
|
||||
IFNULL(sum(toWorkAttStatus = 4 or offWorkAttStatus = 4), 0) as earlyNum,
|
||||
IFNULL(sum(toWorkAttStatus = 5 or offWorkAttStatus = 5), 0) as restNum,
|
||||
IFNULL(sum(toWorkAttStatus in (SELECT dict_value
|
||||
FROM sys_dict_data
|
||||
where dict_type = 'att_status'
|
||||
and is_leave = '1') or
|
||||
offWorkAttStatus in (SELECT dict_value
|
||||
FROM sys_dict_data
|
||||
where dict_type = 'att_status'
|
||||
and is_leave = '1')), 0) as leaveNum,
|
||||
IFNULL(sum(toWorkAttStatus = 7 or offWorkAttStatus = 7), 0) as outNum,
|
||||
IFNULL(sum(toWorkAttStatus = 8 or offWorkAttStatus = 8), 0) as einErrorNum,
|
||||
IFNULL(sum(toWorkAttStatus = 9 or offWorkAttStatus = 9), 0) as addressErrorNum,
|
||||
IFNULL(sum(toOutsideAtt = 1 or offOutsideAtt = 1), 0) -
|
||||
IFNULL(sum(toWorkAttStatus = 9 or offWorkAttStatus = 9), 0) as outsideAttNum
|
||||
from v_att_update_data
|
||||
where att_current_day = #{pushDate}
|
||||
GROUP BY att_current_day
|
||||
|
||||
</select>
|
||||
|
||||
<!--att_setting_history 的处理是为了获取当月最后一天在哪个考勤规则,去计算他的当月考勤天数 -->
|
||||
<select id="selectAttMonthReport" resultType="com.bonus.system.att.entity.AttMonthReportBean">
|
||||
SELECT
|
||||
v.user_id,
|
||||
su.user_name,
|
||||
suo.org_id,
|
||||
so.org_name,
|
||||
DATE_FORMAT( att_current_day, '%Y-%m' ) AS attCurrentMonth,
|
||||
IFNULL( sum( IF ( toWorkAttStatus = 1, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 1, 0.5, 0 )), 0 ) AS normalNum,
|
||||
IFNULL( sum( IF ( toWorkAttStatus = 2, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 2, 0.5, 0 )), 0 ) AS lateNum,
|
||||
IFNULL( sum( IF ( toWorkAttStatus = 3, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 3, 0.5, 0 )), 0 ) AS skippingNum,
|
||||
IFNULL( sum( IF ( toWorkAttStatus = 4, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 4, 0.5, 0 )), 0 ) AS earlyNum,
|
||||
IFNULL( sum( IF ( toWorkAttStatus = 5, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 5, 0.5, 0 )), 0 ) AS restNum,
|
||||
sum(
|
||||
IF
|
||||
( toWorkAttStatus IN ( SELECT dict_value FROM sys_dict_data WHERE dict_type = 'att_status' AND is_leave = '1' ), 0.5, 0 )) + sum(
|
||||
IF
|
||||
( offWorkAttStatus IN ( SELECT dict_value FROM sys_dict_data WHERE dict_type = 'att_status' AND is_leave = '1' ), 0.5, 0 )) AS leaveNum,
|
||||
IFNULL( sum( IF ( toWorkAttStatus = 7, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 7, 0.5, 0 )), 0 ) AS outNum,
|
||||
IFNULL( sum( IF ( toWorkAttStatus = 8, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 8, 0.5, 0 )), 0 ) AS einErrorNum,
|
||||
IFNULL( sum( IF ( toWorkAttStatus = 9, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 9, 0.5, 0 )), 0 ) AS addressErrorNum,
|
||||
IFNULL( sum( IF ( toWorkAttStatus = 10, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 10, 0.5, 0 )), 0 ) AS businessTripNum
|
||||
FROM
|
||||
v_att_update_data v
|
||||
LEFT JOIN sys_user su ON su.user_id = v.user_id
|
||||
LEFT JOIN sys_user_org suo ON suo.user_id = v.user_id
|
||||
LEFT JOIN sys_organization so ON so.id = suo.org_id
|
||||
WHERE
|
||||
DATE_FORMAT( att_current_day, '%Y-%m' ) = DATE_FORMAT( #{pushDate}, '%Y-%m' )
|
||||
GROUP BY
|
||||
DATE_FORMAT( att_current_day, '%Y-%m' ),
|
||||
v.user_id
|
||||
SELECT v.user_id,
|
||||
su.user_name,
|
||||
suo.org_id,
|
||||
so.org_name,
|
||||
DATE_FORMAT(att_current_day, '%Y-%m') AS attCurrentMonth,
|
||||
IFNULL(sum(IF(toWorkAttStatus = 1, 0.5, 0)), 0) +
|
||||
IFNULL(sum(IF(offWorkAttStatus = 1, 0.5, 0)), 0) AS normalNum,
|
||||
IFNULL(sum(IF(toWorkAttStatus = 2, 0.5, 0)), 0) +
|
||||
IFNULL(sum(IF(offWorkAttStatus = 2, 0.5, 0)), 0) AS lateNum,
|
||||
IFNULL(sum(IF(toWorkAttStatus = 3, 0.5, 0)), 0) +
|
||||
IFNULL(sum(IF(offWorkAttStatus = 3, 0.5, 0)), 0) AS skippingNum,
|
||||
IFNULL(sum(IF(toWorkAttStatus = 4, 0.5, 0)), 0) +
|
||||
IFNULL(sum(IF(offWorkAttStatus = 4, 0.5, 0)), 0) AS earlyNum,
|
||||
IFNULL(sum(IF(toWorkAttStatus = 5, 0.5, 0)), 0) +
|
||||
IFNULL(sum(IF(offWorkAttStatus = 5, 0.5, 0)), 0) AS restNum,
|
||||
sum(
|
||||
IF
|
||||
(toWorkAttStatus IN
|
||||
(SELECT dict_value FROM sys_dict_data WHERE dict_type = 'att_status' AND is_leave = '1'), 0.5,
|
||||
0)) + sum(
|
||||
IF
|
||||
(offWorkAttStatus IN
|
||||
(SELECT dict_value FROM sys_dict_data WHERE dict_type = 'att_status' AND is_leave = '1'), 0.5,
|
||||
0)) AS leaveNum,
|
||||
IFNULL(sum(IF(toWorkAttStatus = 7, 0.5, 0)), 0) +
|
||||
IFNULL(sum(IF(offWorkAttStatus = 7, 0.5, 0)), 0) AS outNum,
|
||||
IFNULL(sum(IF(toWorkAttStatus = 8, 0.5, 0)), 0) +
|
||||
IFNULL(sum(IF(offWorkAttStatus = 8, 0.5, 0)), 0) AS einErrorNum,
|
||||
IFNULL(sum(IF(toWorkAttStatus = 9, 0.5, 0)), 0) +
|
||||
IFNULL(sum(IF(offWorkAttStatus = 9, 0.5, 0)), 0) AS addressErrorNum,
|
||||
IFNULL(sum(IF(toWorkAttStatus = 10, 0.5, 0)), 0) +
|
||||
IFNULL(sum(IF(offWorkAttStatus = 10, 0.5, 0)), 0) AS businessTripNum,
|
||||
IFNULL(sum(IF(toOutsideAtt = 1, 0.5, 0)), 0) +
|
||||
IFNULL(sum(IF(offOutsideAtt = 1, 0.5, 0)), 0) -
|
||||
IFNULL(sum(IF(toWorkAttStatus = 9, 0.5, 0)), 0) -
|
||||
IFNULL(sum(IF(offWorkAttStatus = 9, 0.5, 0)), 0) AS outsideAttNum
|
||||
FROM v_att_update_data v
|
||||
LEFT JOIN sys_user su ON su.user_id = v.user_id
|
||||
LEFT JOIN sys_user_org suo ON suo.user_id = v.user_id
|
||||
LEFT JOIN sys_organization so ON so.id = suo.org_id
|
||||
WHERE DATE_FORMAT(att_current_day, '%Y-%m') = DATE_FORMAT(#{pushDate}, '%Y-%m')
|
||||
GROUP BY DATE_FORMAT(att_current_day, '%Y-%m'),
|
||||
v.user_id
|
||||
</select>
|
||||
|
||||
<select id="selectHolidayByMonth" resultType="com.bonus.system.att.entity.Holiday">
|
||||
|
|
@ -480,24 +504,26 @@
|
|||
SELECT ash.user_id,
|
||||
ash.group_id,
|
||||
suo.org_id,
|
||||
'1' AS attType,
|
||||
'1' AS attType,
|
||||
#{pushDate} AS attCurrentDay,
|
||||
'0' AS attStatus
|
||||
'0' AS attStatus
|
||||
FROM att_setting_history ash
|
||||
LEFT JOIN sys_user su ON ash.user_id = su.user_id
|
||||
left join sys_user_org suo ON su.user_id = suo.user_id
|
||||
WHERE ash.current_day = #{pushDate} and suo.org_id is not null
|
||||
WHERE ash.current_day = #{pushDate}
|
||||
and suo.org_id is not null
|
||||
UNION
|
||||
SELECT ash.user_id,
|
||||
ash.group_id,
|
||||
suo.org_id,
|
||||
'2' AS attType,
|
||||
'2' AS attType,
|
||||
#{pushDate} AS attCurrentDay,
|
||||
'0' AS attStatus
|
||||
'0' AS attStatus
|
||||
FROM att_setting_history ash
|
||||
LEFT JOIN sys_user su ON ash.user_id = su.user_id
|
||||
left join sys_user_org suo ON su.user_id = suo.user_id
|
||||
WHERE ash.current_day = #{pushDate} and suo.org_id is not null
|
||||
WHERE ash.current_day = #{pushDate}
|
||||
and suo.org_id is not null
|
||||
</select>
|
||||
<select id="getAttDataPerson" resultType="java.lang.Long">
|
||||
SELECT distinct user_id
|
||||
|
|
@ -538,63 +564,49 @@
|
|||
</select>
|
||||
|
||||
<select id="selectAttMonthReportTemp" resultType="com.bonus.system.att.entity.AttMonthReportBean">
|
||||
SELECT
|
||||
su.user_id,
|
||||
su.user_name,
|
||||
suo.org_id,
|
||||
so.org_name,
|
||||
ash.group_id,
|
||||
DATE_FORMAT( #{pushDate}, '%Y-%m' ) as attCurrentMonth
|
||||
FROM
|
||||
att_setting_history ash
|
||||
LEFT JOIN sys_user su ON su.user_id = ash.user_id
|
||||
LEFT JOIN sys_user_org suo ON suo.user_id = su.user_id
|
||||
LEFT JOIN sys_organization so ON so.id = suo.org_id
|
||||
WHERE
|
||||
DATE_FORMAT( ash.current_day, '%Y-%m' ) = DATE_FORMAT( #{pushDate}, '%Y-%m' )
|
||||
and suo.org_id is not null
|
||||
GROUP BY
|
||||
DATE_FORMAT( #{pushDate}, '%Y-%m' ),
|
||||
su.user_id
|
||||
SELECT su.user_id,
|
||||
su.user_name,
|
||||
suo.org_id,
|
||||
so.org_name,
|
||||
ash.group_id,
|
||||
DATE_FORMAT(#{pushDate}, '%Y-%m') as attCurrentMonth
|
||||
FROM att_setting_history ash
|
||||
LEFT JOIN sys_user su ON su.user_id = ash.user_id
|
||||
LEFT JOIN sys_user_org suo ON suo.user_id = su.user_id
|
||||
LEFT JOIN sys_organization so ON so.id = suo.org_id
|
||||
WHERE DATE_FORMAT(ash.current_day, '%Y-%m') = DATE_FORMAT(#{pushDate}, '%Y-%m')
|
||||
and suo.org_id is not null
|
||||
GROUP BY DATE_FORMAT(#{pushDate}, '%Y-%m'),
|
||||
su.user_id
|
||||
</select>
|
||||
<select id="getAttMonthReportPerson" resultType="java.lang.Long">
|
||||
SELECT
|
||||
user_id
|
||||
FROM
|
||||
att_month_report
|
||||
WHERE
|
||||
att_current_month = DATE_FORMAT( #{pushDate}, '%Y-%m' )
|
||||
SELECT user_id
|
||||
FROM att_month_report
|
||||
WHERE att_current_month = DATE_FORMAT(#{pushDate}, '%Y-%m')
|
||||
</select>
|
||||
<select id="getMonthReportTempDataIsExist" resultType="java.lang.Integer">
|
||||
SELECT
|
||||
count(1)
|
||||
FROM
|
||||
att_month_report
|
||||
WHERE
|
||||
att_current_month = DATE_FORMAT( #{pushDate}, '%Y-%m' ) and user_id = #{userId}
|
||||
SELECT count(1)
|
||||
FROM att_month_report
|
||||
WHERE att_current_month = DATE_FORMAT(#{pushDate}, '%Y-%m')
|
||||
and user_id = #{userId}
|
||||
</select>
|
||||
<select id="getAttSettingHistoryByUserAndDate" resultType="com.bonus.system.att.entity.AttGroupBean">
|
||||
SELECT
|
||||
ash.group_id,
|
||||
ash.user_id,
|
||||
ash.current_day
|
||||
from
|
||||
att_setting_history ash
|
||||
WHERE
|
||||
ash.user_id = #{userId}
|
||||
and locate(DATE_FORMAT( #{nowDate}, '%Y-%m' ),ash.current_day)
|
||||
order by current_day ASC
|
||||
SELECT ash.group_id,
|
||||
ash.user_id,
|
||||
ash.current_day
|
||||
from att_setting_history ash
|
||||
WHERE ash.user_id = #{userId}
|
||||
and locate(DATE_FORMAT(#{nowDate}, '%Y-%m'), ash.current_day)
|
||||
order by current_day ASC
|
||||
</select>
|
||||
<select id="getOrgDataByUserId" resultType="com.bonus.system.att.entity.AttMonthReportBean">
|
||||
SELECT
|
||||
su.user_id,
|
||||
su.user_name,
|
||||
suo.org_id,
|
||||
so.org_name
|
||||
FROM
|
||||
sys_user su
|
||||
LEFT JOIN sys_user_org suo ON suo.user_id = su.user_id
|
||||
LEFT JOIN sys_organization so ON so.id = suo.org_id
|
||||
SELECT su.user_id,
|
||||
su.user_name,
|
||||
suo.org_id,
|
||||
so.org_name
|
||||
FROM sys_user su
|
||||
LEFT JOIN sys_user_org suo ON suo.user_id = su.user_id
|
||||
LEFT JOIN sys_organization so ON so.id = suo.org_id
|
||||
where su.user_id = #{userId}
|
||||
</select>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue