Commit 73c984cb authored by 廖旭伟's avatar 廖旭伟

增加接口查询当月异常考勤次数排行榜;昨日考勤统计

parent 863e9d4b
...@@ -2,6 +2,11 @@ package com.mortals.xhx.module.attendance.dao; ...@@ -2,6 +2,11 @@ package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao; import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity; import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorQuery;
import com.mortals.xhx.module.attendance.model.vo.ErrorSummaryVo;
import java.util.List;
/** /**
* 考勤打卡记录异常信息Dao * 考勤打卡记录异常信息Dao
* 考勤打卡记录异常信息 DAO接口 * 考勤打卡记录异常信息 DAO接口
...@@ -19,4 +24,11 @@ public interface AttendanceRecordErrorDao extends ICRUDDao<AttendanceRecordErro ...@@ -19,4 +24,11 @@ public interface AttendanceRecordErrorDao extends ICRUDDao<AttendanceRecordErro
int errorAttendance(Long id); int errorAttendance(Long id);
/**
* 统计每月异常次数top10
* @param query
* @return
*/
List<ErrorSummaryVo> getMonthTop10(AttendanceRecordErrorQuery query);
} }
...@@ -4,7 +4,12 @@ package com.mortals.xhx.module.attendance.dao.ibatis; ...@@ -4,7 +4,12 @@ package com.mortals.xhx.module.attendance.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis; import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.attendance.dao.AttendanceRecordErrorDao; import com.mortals.xhx.module.attendance.dao.AttendanceRecordErrorDao;
import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity; import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorQuery;
import com.mortals.xhx.module.attendance.model.vo.ErrorSummaryVo;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
/** /**
* 考勤打卡记录异常信息DaoImpl DAO接口 * 考勤打卡记录异常信息DaoImpl DAO接口
* *
...@@ -19,4 +24,9 @@ public class AttendanceRecordErrorDaoImpl extends BaseCRUDDaoMybatis<AttendanceR ...@@ -19,4 +24,9 @@ public class AttendanceRecordErrorDaoImpl extends BaseCRUDDaoMybatis<AttendanceR
public int errorAttendance(Long id) { public int errorAttendance(Long id) {
return getSqlSession().selectOne(getSqlId("errorAttendance"),id); return getSqlSession().selectOne(getSqlId("errorAttendance"),id);
} }
@Override
public List<ErrorSummaryVo> getMonthTop10(AttendanceRecordErrorQuery query) {
return getSqlSession().selectList(getSqlId("getMonthTop10"),query);
}
} }
...@@ -54,4 +54,7 @@ public class ErrorSummaryVo { ...@@ -54,4 +54,7 @@ public class ErrorSummaryVo {
* 离职时间 * 离职时间
*/ */
private Date leaveDate; private Date leaveDate;
/** 异常次数 **/
private Integer errorCount;
} }
...@@ -3,8 +3,10 @@ import com.mortals.framework.model.Context; ...@@ -3,8 +3,10 @@ import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService; import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity; import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorQuery; import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorQuery;
import com.mortals.xhx.module.attendance.model.vo.ErrorSummaryVo;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* AttendanceRecordErrorService * AttendanceRecordErrorService
...@@ -34,4 +36,11 @@ public interface AttendanceRecordErrorService extends ICRUDService<AttendanceRec ...@@ -34,4 +36,11 @@ public interface AttendanceRecordErrorService extends ICRUDService<AttendanceRec
* @param query * @param query
*/ */
void doReprocess(AttendanceRecordErrorQuery query, Context context); void doReprocess(AttendanceRecordErrorQuery query, Context context);
/**
* 统计每月异常次数top10
* @param query
* @return
*/
List<ErrorSummaryVo> getMonthTop10(AttendanceRecordErrorQuery query);
} }
\ No newline at end of file
...@@ -14,6 +14,7 @@ import com.mortals.xhx.common.code.ErrorStatusEnum; ...@@ -14,6 +14,7 @@ import com.mortals.xhx.common.code.ErrorStatusEnum;
import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.module.attendance.model.*; import com.mortals.xhx.module.attendance.model.*;
import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery; import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery;
import com.mortals.xhx.module.attendance.model.vo.ErrorSummaryVo;
import com.mortals.xhx.module.attendance.service.*; import com.mortals.xhx.module.attendance.service.*;
import com.mortals.xhx.module.perform.service.PerformAttendRecordService; import com.mortals.xhx.module.perform.service.PerformAttendRecordService;
import com.mortals.xhx.module.staff.service.StaffService; import com.mortals.xhx.module.staff.service.StaffService;
...@@ -305,4 +306,9 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At ...@@ -305,4 +306,9 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
} }
return dates; return dates;
} }
@Override
public List<ErrorSummaryVo> getMonthTop10(AttendanceRecordErrorQuery query) {
return dao.getMonthTop10(query);
}
} }
\ No newline at end of file
...@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil; ...@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.Excel; import com.mortals.framework.annotation.Excel;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest; import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.OrderCol; import com.mortals.framework.model.OrderCol;
...@@ -19,7 +20,9 @@ import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; ...@@ -19,7 +20,9 @@ import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.base.system.upload.service.UploadService; import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.code.*; import com.mortals.xhx.common.code.*;
import com.mortals.xhx.common.key.RedisKey;
import com.mortals.xhx.common.keys.RedisCacheKeys; import com.mortals.xhx.common.keys.RedisCacheKeys;
import com.mortals.xhx.common.pdu.HomeStatInfo;
import com.mortals.xhx.module.attendance.model.*; import com.mortals.xhx.module.attendance.model.*;
import com.mortals.xhx.module.attendance.model.vo.AttendStatInfo; import com.mortals.xhx.module.attendance.model.vo.AttendStatInfo;
import com.mortals.xhx.module.attendance.service.AttendanceClassService; import com.mortals.xhx.module.attendance.service.AttendanceClassService;
...@@ -471,4 +474,25 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle ...@@ -471,4 +474,25 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
} }
return jsonObject.toJSONString(); return jsonObject.toJSONString();
} }
/**
* 昨日统计
*/
@PostMapping(value = "yesterday/stat")
@UnAuth
public String statByYesterDay() {
JSONObject jsonObject = new JSONObject();
String busiDesc = "昨日考勤统计";
try {
HomeStatInfo homeStatInfo = cacheService.get(RedisKey.KEY_HOME_STAT_CACHE, HomeStatInfo.class);
recordSysLog(request, busiDesc + " 【成功】");
jsonObject.put(KEY_RESULT_DATA,homeStatInfo);
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) {
log.error("申诉审核", e);
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
jsonObject.put(KEY_RESULT_MSG, super.convertException(e));
}
return jsonObject.toJSONString();
}
} }
...@@ -17,6 +17,7 @@ import com.mortals.xhx.common.code.ErrorStatusEnum; ...@@ -17,6 +17,7 @@ import com.mortals.xhx.common.code.ErrorStatusEnum;
import com.mortals.xhx.common.code.ProcessStatusEnum; import com.mortals.xhx.common.code.ProcessStatusEnum;
import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.module.attendance.model.*; import com.mortals.xhx.module.attendance.model.*;
import com.mortals.xhx.module.attendance.model.vo.ErrorSummaryVo;
import com.mortals.xhx.module.attendance.service.*; import com.mortals.xhx.module.attendance.service.*;
import com.mortals.xhx.module.dept.model.DeptQuery; import com.mortals.xhx.module.dept.model.DeptQuery;
import com.mortals.xhx.module.dept.service.DeptService; import com.mortals.xhx.module.dept.service.DeptService;
...@@ -348,4 +349,42 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont ...@@ -348,4 +349,42 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
thread.start(); thread.start();
return Rest.ok(); return Rest.ok();
} }
/**
* 查询当月异常考勤次数排行榜
* @return
*/
@PostMapping({"month/top"})
@UnAuth
public Rest<Object> getMonthTopList(){
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "查询当月异常考勤次数排行榜";
int code = 1;
try {
AttendanceRecordErrorQuery query = new AttendanceRecordErrorQuery();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 1);
query.setErrorDateTimeStart(sdf.format(calendar.getTime()));
calendar.roll(Calendar.DAY_OF_MONTH, -1);
query.setErrorDateTimeEnd(sdf.format(calendar.getTime()));
List<ErrorSummaryVo> result = this.getService().getMonthTop10(query);
model.put("data", result);
model.put("message_info", busiDesc + "成功");
if (!ObjectUtils.isEmpty(context) && !ObjectUtils.isEmpty(context.getUser())) {
this.recordSysLog(this.request, busiDesc + " 【成功】");
}
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
this.init(model, context);
ret.setCode(code);
ret.setData(model.get("data"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.attendance.dao.ibatis.AttendanceRecordErrorDaoImpl">
<!-- 获取每月异常top10列表 -->
<select id="getMonthTop10" parameterType="com.mortals.xhx.module.attendance.model.AttendanceRecordErrorQuery"
resultType="com.mortals.xhx.module.attendance.model.vo.ErrorSummaryVo">
SELECT
*
FROM
(
SELECT
staffId,
staffName,
count(1) AS errorCount
FROM
mortals_xhx_attendance_record_error
WHERE
errorDateTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{errorDateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
AND errorDateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{errorDateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
GROUP BY
staffId,
staffName
) AS a
ORDER BY
errorCount DESC
LIMIT 10
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment