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

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

parent 863e9d4b
......@@ -2,6 +2,11 @@ package com.mortals.xhx.module.attendance.dao;
import com.mortals.framework.dao.ICRUDDao;
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接口
......@@ -19,4 +24,11 @@ public interface AttendanceRecordErrorDao extends ICRUDDao<AttendanceRecordErro
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;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.attendance.dao.AttendanceRecordErrorDao;
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 java.util.List;
/**
* 考勤打卡记录异常信息DaoImpl DAO接口
*
......@@ -19,4 +24,9 @@ public class AttendanceRecordErrorDaoImpl extends BaseCRUDDaoMybatis<AttendanceR
public int errorAttendance(Long 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 {
* 离职时间
*/
private Date leaveDate;
/** 异常次数 **/
private Integer errorCount;
}
......@@ -3,8 +3,10 @@ import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
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.Date;
import java.util.List;
/**
* AttendanceRecordErrorService
......@@ -34,4 +36,11 @@ public interface AttendanceRecordErrorService extends ICRUDService<AttendanceRec
* @param query
*/
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;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.module.attendance.model.*;
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.perform.service.PerformAttendRecordService;
import com.mortals.xhx.module.staff.service.StaffService;
......@@ -305,4 +306,9 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
}
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;
import cn.hutool.core.util.ReflectUtil;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.OrderCol;
......@@ -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.upload.service.UploadService;
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.pdu.HomeStatInfo;
import com.mortals.xhx.module.attendance.model.*;
import com.mortals.xhx.module.attendance.model.vo.AttendStatInfo;
import com.mortals.xhx.module.attendance.service.AttendanceClassService;
......@@ -471,4 +474,25 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
}
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;
import com.mortals.xhx.common.code.ProcessStatusEnum;
import com.mortals.xhx.common.code.YesNoEnum;
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.dept.model.DeptQuery;
import com.mortals.xhx.module.dept.service.DeptService;
......@@ -348,4 +349,42 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
thread.start();
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