月计划天数按当月最后所在的组织决定
This commit is contained in:
parent
de8a9f61aa
commit
960d9cd6f1
|
|
@ -54,7 +54,7 @@ public interface AttSourceDataDao {
|
|||
* 查询月考勤情况
|
||||
* @return list bean
|
||||
*/
|
||||
List<AttMonthReportBean> selectAttMonthReport(@Param("pushDate")String pushDate,@Param("attRuleDate")String attRuleDate);
|
||||
List<AttMonthReportBean> selectAttMonthReport(@Param("pushDate")String pushDate);
|
||||
|
||||
/**
|
||||
* 新增月报表
|
||||
|
|
|
|||
|
|
@ -1161,21 +1161,7 @@ public class AttTasks {
|
|||
List<AttDayReportBean> dayReportList = attSourceDataDao.selectAttDayReport(pushDate, pushType);
|
||||
//日报表新增
|
||||
attSourceDataDao.insertAttDayReport(dayReportList);
|
||||
String attRuleDate;
|
||||
//月报表查询
|
||||
if (pushType == 2) {
|
||||
//历史数据查询
|
||||
//如果是当月,将最新时间,将最新时间存进去,如果是之前月,将之前月的最后一天存进去
|
||||
// 当前日期时间
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
// 调用方法获取目标日期
|
||||
LocalDate targetDate = getTargetDate(now);
|
||||
attRuleDate = targetDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
}else{
|
||||
//如果更新当天数据查询
|
||||
attRuleDate = DateUtil.today();
|
||||
}
|
||||
List<AttMonthReportBean> monthReportList = attSourceDataDao.selectAttMonthReport(pushDate,attRuleDate);
|
||||
List<AttMonthReportBean> monthReportList = attSourceDataDao.selectAttMonthReport(pushDate);
|
||||
//人员对应出月出勤天数
|
||||
monthReportList.forEach(c ->
|
||||
groupList.stream()
|
||||
|
|
|
|||
|
|
@ -204,35 +204,47 @@
|
|||
|
||||
</select>
|
||||
|
||||
<!--att_setting_history 的处理是为了获取当月最后一天在哪个考勤规则,去计算他的当月考勤天数 -->
|
||||
<select id="selectAttMonthReport" resultType="com.bonus.system.att.entity.AttMonthReportBean">
|
||||
select g.org_id,
|
||||
v.user_id,
|
||||
su.user_name,
|
||||
so.org_name,
|
||||
g.group_id,
|
||||
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 att_setting_history g
|
||||
on g.user_id = v.user_id and g.current_day = #{attRuleDate}
|
||||
left join sys_organization so on so.id = g.org_id
|
||||
where DATE_FORMAT(att_current_day, '%Y-%m') = DATE_FORMAT(#{pushDate}, '%Y-%m')
|
||||
and g.group_id is not null
|
||||
GROUP BY DATE_FORMAT(att_current_day, '%Y-%m'), v.user_id
|
||||
SELECT
|
||||
g.org_id,
|
||||
v.user_id,
|
||||
su.user_name,
|
||||
so.org_name,
|
||||
g.group_id,
|
||||
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 (
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
( SELECT DISTINCT * FROM att_setting_history WHERE DATE_FORMAT( current_day, '%Y-%m' ) = DATE_FORMAT(#{pushDate}, '%Y-%m' ) ORDER BY current_day DESC ) a
|
||||
GROUP BY
|
||||
user_id
|
||||
) g ON g.user_id = v.user_id
|
||||
LEFT JOIN sys_organization so ON so.id = g.org_id
|
||||
WHERE
|
||||
DATE_FORMAT( att_current_day, '%Y-%m' ) = DATE_FORMAT(#{pushDate}, '%Y-%m' )
|
||||
AND g.group_id IS NOT NULL
|
||||
GROUP BY
|
||||
DATE_FORMAT( att_current_day, '%Y-%m' ),
|
||||
v.user_id
|
||||
</select>
|
||||
|
||||
<select id="selectHolidayByMonth" resultType="com.bonus.system.att.entity.Holiday">
|
||||
|
|
|
|||
Loading…
Reference in New Issue