月计划天数按当月最后所在的组织决定
This commit is contained in:
parent
de8a9f61aa
commit
960d9cd6f1
|
|
@ -54,7 +54,7 @@ public interface AttSourceDataDao {
|
||||||
* 查询月考勤情况
|
* 查询月考勤情况
|
||||||
* @return list bean
|
* @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);
|
List<AttDayReportBean> dayReportList = attSourceDataDao.selectAttDayReport(pushDate, pushType);
|
||||||
//日报表新增
|
//日报表新增
|
||||||
attSourceDataDao.insertAttDayReport(dayReportList);
|
attSourceDataDao.insertAttDayReport(dayReportList);
|
||||||
String attRuleDate;
|
List<AttMonthReportBean> monthReportList = attSourceDataDao.selectAttMonthReport(pushDate);
|
||||||
//月报表查询
|
|
||||||
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);
|
|
||||||
//人员对应出月出勤天数
|
//人员对应出月出勤天数
|
||||||
monthReportList.forEach(c ->
|
monthReportList.forEach(c ->
|
||||||
groupList.stream()
|
groupList.stream()
|
||||||
|
|
|
||||||
|
|
@ -204,35 +204,47 @@
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!--att_setting_history 的处理是为了获取当月最后一天在哪个考勤规则,去计算他的当月考勤天数 -->
|
||||||
<select id="selectAttMonthReport" resultType="com.bonus.system.att.entity.AttMonthReportBean">
|
<select id="selectAttMonthReport" resultType="com.bonus.system.att.entity.AttMonthReportBean">
|
||||||
select g.org_id,
|
SELECT
|
||||||
v.user_id,
|
g.org_id,
|
||||||
su.user_name,
|
v.user_id,
|
||||||
so.org_name,
|
su.user_name,
|
||||||
g.group_id,
|
so.org_name,
|
||||||
DATE_FORMAT(att_current_day, '%Y-%m') as attCurrentMonth,
|
g.group_id,
|
||||||
IFNULL( sum( IF ( toWorkAttStatus = 1, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 1, 0.5, 0 )), 0 ) AS normalNum,
|
DATE_FORMAT( att_current_day, '%Y-%m' ) AS attCurrentMonth,
|
||||||
IFNULL( sum( IF ( toWorkAttStatus = 2, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 2, 0.5, 0 )), 0 ) AS lateNum,
|
IFNULL( sum( IF ( toWorkAttStatus = 1, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 1, 0.5, 0 )), 0 ) AS normalNum,
|
||||||
IFNULL( sum( IF ( toWorkAttStatus = 3, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 3, 0.5, 0 )), 0 ) AS skippingNum,
|
IFNULL( sum( IF ( toWorkAttStatus = 2, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 2, 0.5, 0 )), 0 ) AS lateNum,
|
||||||
IFNULL( sum( IF ( toWorkAttStatus = 4, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 4, 0.5, 0 )), 0 ) AS earlyNum,
|
IFNULL( sum( IF ( toWorkAttStatus = 3, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 3, 0.5, 0 )), 0 ) AS skippingNum,
|
||||||
IFNULL( sum( IF ( toWorkAttStatus = 5, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 5, 0.5, 0 )), 0 ) AS restNum,
|
IFNULL( sum( IF ( toWorkAttStatus = 4, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 4, 0.5, 0 )), 0 ) AS earlyNum,
|
||||||
sum(
|
IFNULL( sum( IF ( toWorkAttStatus = 5, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 5, 0.5, 0 )), 0 ) AS restNum,
|
||||||
IF
|
sum(
|
||||||
( toWorkAttStatus IN ( SELECT dict_value FROM sys_dict_data WHERE dict_type = 'att_status' AND is_leave = '1' ), 0.5, 0 ))+ sum(
|
IF
|
||||||
IF
|
( toWorkAttStatus IN ( SELECT dict_value FROM sys_dict_data WHERE dict_type = 'att_status' AND is_leave = '1' ), 0.5, 0 ))+ sum(
|
||||||
( offWorkAttStatus IN ( SELECT dict_value FROM sys_dict_data WHERE dict_type = 'att_status' AND is_leave = '1' ), 0.5, 0 )) AS leaveNum,
|
IF
|
||||||
IFNULL( sum( IF ( toWorkAttStatus = 7, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 7, 0.5, 0 )), 0 ) AS outNum,
|
( 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 = 8, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 8, 0.5, 0 )), 0 ) AS einErrorNum,
|
IFNULL( sum( IF ( toWorkAttStatus = 7, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 7, 0.5, 0 )), 0 ) AS outNum,
|
||||||
IFNULL( sum( IF ( toWorkAttStatus = 9, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 9, 0.5, 0 )), 0 ) AS addressErrorNum,
|
IFNULL( sum( IF ( toWorkAttStatus = 8, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 8, 0.5, 0 )), 0 ) AS einErrorNum,
|
||||||
IFNULL( sum( IF ( toWorkAttStatus = 10, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 10, 0.5, 0 )), 0 ) AS businessTripNum
|
IFNULL( sum( IF ( toWorkAttStatus = 9, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 9, 0.5, 0 )), 0 ) AS addressErrorNum,
|
||||||
from v_att_update_data v
|
IFNULL( sum( IF ( toWorkAttStatus = 10, 0.5, 0 )), 0 ) + IFNULL( sum( IF ( offWorkAttStatus = 10, 0.5, 0 )), 0 ) AS businessTripNum
|
||||||
left join sys_user su on su.user_id = v.user_id
|
FROM
|
||||||
left join att_setting_history g
|
v_att_update_data v
|
||||||
on g.user_id = v.user_id and g.current_day = #{attRuleDate}
|
LEFT JOIN sys_user su ON su.user_id = v.user_id
|
||||||
left join sys_organization so on so.id = g.org_id
|
LEFT JOIN (
|
||||||
where DATE_FORMAT(att_current_day, '%Y-%m') = DATE_FORMAT(#{pushDate}, '%Y-%m')
|
SELECT
|
||||||
and g.group_id is not null
|
*
|
||||||
GROUP BY DATE_FORMAT(att_current_day, '%Y-%m'), v.user_id
|
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>
|
||||||
|
|
||||||
<select id="selectHolidayByMonth" resultType="com.bonus.system.att.entity.Holiday">
|
<select id="selectHolidayByMonth" resultType="com.bonus.system.att.entity.Holiday">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue