|
@@ -28,15 +28,44 @@ public class StatisticsQueryImpl implements IStatisticsQueryDao {
|
|
|
@Override
|
|
|
public Page<Map<String, Object>> statisticsList(Map<String, Object> params, Pageable initPage) {
|
|
|
StringBuffer sql = new StringBuffer();
|
|
|
+ List<Object> queryParams = new ArrayList<>();
|
|
|
/**
|
|
|
- *
|
|
|
+ *teacherId string list 老师id
|
|
|
+ * teacherName string list 老师姓名
|
|
|
+ * subject string list 科目
|
|
|
+ * allSubject string list 老师拥有的科目,多科目英文逗号隔开,
|
|
|
+ * correctNums int list 批注页数
|
|
|
+ * overtimeNums int list 超时批注页数
|
|
|
+ * notCorrectNums int list 未批注页数
|
|
|
+ * notCommentNums int list 不批注页数
|
|
|
+ * repeatNums int list 重复页数
|
|
|
+ * accuracy string list 正确率
|
|
|
+ * errorNums int list 报错页数
|
|
|
*/
|
|
|
- sql.append("select t.teacher_id,t11.name as teacherName,t.subject,t11.course_name as allSubject, \n");
|
|
|
+
|
|
|
+ listInfo(params,queryParams,sql);
|
|
|
+ return dao.findPage(sql.toString(),queryParams.toArray(),initPage);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void listInfo(Map<String, Object> params,List<Object> queryParams,StringBuffer sql){
|
|
|
+ sql.append("select t.teacher_id,t11.name as teacherName,t11.course_name as subject,t11.course_name as allSubject, \n");
|
|
|
+ sql.append(" t.correct_nums as correctNums,t.overtime_nums as overtimeNums,t.not_correct_nums as notCorrectNums, \n");
|
|
|
+ sql.append(" t.not_comment_nums as notCommentNums,t.repeat_nums as repeatNums,t.accuracy,t.error_nums as errorNums \n");
|
|
|
sql.append(" from plat_teacher_statistics t \n");
|
|
|
sql.append(" left join tb_lib_manager t11 on t.teacher_id = t11.user_id \n");
|
|
|
sql.append(" where t11.type = 30 \n");
|
|
|
-
|
|
|
- return null;
|
|
|
+ if(Objects.nonNull(params.get("beginDate")) && StringUtils.isNotBlank(MapUtils.getString(params,"beginDate"))){
|
|
|
+ sql.append(" and t.calculate_date >= ? ");
|
|
|
+ queryParams.add(params.get("beginDate"));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(params.get("endDate")) && StringUtils.isNotBlank(MapUtils.getString(params,"endDate"))){
|
|
|
+ sql.append(" and t.calculate_date <= ? ");
|
|
|
+ queryParams.add(params.get("endDate"));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(params.get("teacherName")) && StringUtils.isNotBlank(MapUtils.getString(params,"teacherName"))){
|
|
|
+ sql.append(" and t11.name like concat('%',?,'%') ");
|
|
|
+ queryParams.add(params.get("teacherName"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -81,6 +110,7 @@ public class StatisticsQueryImpl implements IStatisticsQueryDao {
|
|
|
return dao.findMap(sql.toString(),queryParams.toArray());
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public Map<String, Object> findTotalData(Map<String, Object> params) {
|
|
|
StringBuffer sql = new StringBuffer();
|
|
@@ -112,6 +142,37 @@ public class StatisticsQueryImpl implements IStatisticsQueryDao {
|
|
|
return dao.findMap(sql.toString(),queryParams.toArray()).get(0);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public Map<String, Object> findTotalData2(Map<String, Object> params) {
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
+ List<Object> queryParams = new ArrayList<>();
|
|
|
+ sql.append("SELECT a.teacher_id,a.teacherName,a.`subject`,a.allSubject,a.correctNums,a.overtimeNums,a.notCorrectNums,a.notCommentNums,a.repeatNums,a.errorNums,\n");
|
|
|
+ sql.append("floor(100*(a.total- a.errorNums-a.notCorrectNums)/a.total) as accuracy\n");
|
|
|
+ sql.append("from (\n");
|
|
|
+ sql.append("SELECT t12.name as teacherName,t.teacher_id,t.`subject`,t12.course_name as allSubject,count(if(t.is_mark in (0,2) and t.is_feedback=1,true,NULL)) as correctNums, \n");
|
|
|
+ sql.append("0 as overtimeNums,\n");
|
|
|
+ sql.append("count(1) as total,\n");
|
|
|
+ sql.append("count(if(t11.start_time is null,true,null)) as notCorrectNums,\n");
|
|
|
+ sql.append("count(if(t.is_mark=10,true,null)) as notCommentNums,\n");
|
|
|
+ sql.append("count(if(t.is_mark=15,true,null)) as repeatNums\n");
|
|
|
+ sql.append("count(if(t11.is_check_error=1,true,null)) as errorNums,\n");
|
|
|
+ sql.append("from scon_homework_picture t \n");
|
|
|
+ sql.append("left join scon_homework_picture_correct t11 on t.id = t11.homework_picture_id and t11.type = 8\n");
|
|
|
+ sql.append("left join tb_lib_manager t12 on t.teacher_id = t12.user_id\n");
|
|
|
+ sql.append("where t12.type = 30 \n");
|
|
|
+ if(Objects.nonNull(params.get("beginDate")) && StringUtils.isNotBlank(MapUtils.getString(params,"beginDate"))){
|
|
|
+ sql.append(" and to_days(t11.end_time) >=to_days(?) ");
|
|
|
+ queryParams.add(params.get("beginDate"));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(params.get("endDate")) && StringUtils.isNotBlank(MapUtils.getString(params,"endDate"))){
|
|
|
+ sql.append(" and to_days(t11.end_time) <=to_days(?) ");
|
|
|
+ queryParams.add(params.get("endDate"));
|
|
|
+ }
|
|
|
+ sql.append("GROUP BY t.teacher_id\n");
|
|
|
+ sql.append(")a");
|
|
|
+ return dao.findMap(sql.toString(),queryParams.toArray()).get(0);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<Map<String, Object>> checkDetailList(String homeworkId) {
|
|
|
StringBuffer sql = new StringBuffer();
|
|
@@ -123,4 +184,34 @@ public class StatisticsQueryImpl implements IStatisticsQueryDao {
|
|
|
queryParams.add(homeworkId);
|
|
|
return dao.findMap(sql.toString(),queryParams.toArray());
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> salaryList(String userId, int month, int year) {
|
|
|
+ /**
|
|
|
+ * tb_teacher_salary
|
|
|
+ *workDate string list 日期
|
|
|
+ * correctNums int list 批注总张数
|
|
|
+ * overtimeNums int list 超时批注总张数
|
|
|
+ * perkNums int list 高峰时段批注张数
|
|
|
+ * perkEfficiency String list 高峰时段平均批注时间
|
|
|
+ * errorNums int list 报错张数
|
|
|
+ * accuracy string list 正确率
|
|
|
+ * perkSalary String list 高峰时段薪资
|
|
|
+ * otherSalary String list 其他时段薪资
|
|
|
+ * salary String list 总薪资
|
|
|
+ */
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
+ List<Object> queryParams = new ArrayList<>();
|
|
|
+ sql.append("select t.work_date as workDate,t.correct_nums as correctNums, \n");
|
|
|
+ sql.append("t.overtime_nums as overtimeNums,t.correct_nums as perkNums, \n");
|
|
|
+ sql.append(" t.perk_efficiency as perkEfficiency,t.error_nums as errorNums, \n");
|
|
|
+ sql.append(" t.accuracy,t.perk_salary as perkSalary, \n");
|
|
|
+ sql.append(" t.other_salary as otherSalary,t.salary as salary \n");
|
|
|
+ sql.append("from tb_teacher_salary t \n");
|
|
|
+ sql.append("where t.teacher_id = ? and t.month=? and t.year=?");
|
|
|
+ queryParams.add(userId);
|
|
|
+ queryParams.add(month);
|
|
|
+ queryParams.add(year);
|
|
|
+ return dao.findMap(sql.toString(),queryParams.toArray());
|
|
|
+ }
|
|
|
}
|