Browse Source

批注接口提交

shenhao 4 years ago
parent
commit
048d99d99b

+ 1 - 0
src/main/java/com/ssj/api/controller/ApiHomeworkController.java

@@ -113,6 +113,7 @@ public class ApiHomeworkController extends BaseController {
             params.put("teacherName",req.getTeacherName());
             Page<TeacherListVO> list = homeworkPictureService.teacherList(params,initPage(req.getPageNo(),req.getPageSize()));
             data.put("list",list.getContent());
+            data.put("total",Integer.parseInt(Long.toString(list.getTotalElements())));
             responseEntity.success(data,"获取分配老师列表成功!");
         } catch (Exception e) {
             logger.error("获取分配老师列表异常", e);

+ 25 - 9
src/main/java/com/ssj/api/controller/ApiManagerTeacherController.java

@@ -5,6 +5,7 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
 import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
 import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
 import com.alibaba.fastjson.JSONObject;
+import com.ssj.api.domain.vo.homework.CheckDetailVO;
 import com.ssj.api.domain.vo.statistics.HomeworkReq;
 import com.ssj.api.domain.vo.statistics.ListReq;
 import com.ssj.api.domain.vo.teacher.TeacherAddReq;
@@ -224,7 +225,7 @@ public class ApiManagerTeacherController extends BaseController {
             Page<Map<String,Object>> page = statisticsService.statisticsList(params,initPage(req.getPageNo(),req.getPageSize()));
             data.putAll(total);
             data.put("list",page.getContent());
-            data.put("pages",page.getTotalElements());
+            data.put("pages",Integer.parseInt(Long.toString(page.getTotalElements())));
             responseEntity.success(data,"获取数据统计列表成功");
         } catch (Exception e) {
             logger.error("数据统计列表异常", e);
@@ -232,6 +233,19 @@ public class ApiManagerTeacherController extends BaseController {
         }
         return responseEntity;
     }
+    @RequestMapping(value = "/initStatisticsData", method = RequestMethod.POST)
+    @ApiOperation(value = "数据统计列表",  notes = "数据统计列表")
+    public ResponseEntity statisticsList(@RequestParam(name = "accessToken") String accessToken,String date) {
+        ResponseEntity responseEntity = new ResponseEntity();
+        try {
+            statisticsService.addStatisticsData(date);
+            responseEntity.success("生成数据统计列表成功");
+        } catch (Exception e) {
+            logger.error("数据统计列表异常", e);
+            responseEntity.failure(ResponseConstant.CODE_500, "系统繁忙,请稍后重试");
+        }
+        return responseEntity;
+    }
     @RequestMapping(value = "/errorList", method = RequestMethod.POST)
     @ApiOperation(value = "查看报错列表",  notes = "数据统计列表")
     public ResponseEntity errorList(@RequestParam(name = "accessToken") String accessToken,@RequestBody ListReq req) {
@@ -256,7 +270,7 @@ public class ApiManagerTeacherController extends BaseController {
         ResponseEntity responseEntity = new ResponseEntity();
         try {
             Map<String,Object> data=new HashMap<>(2);
-            List<Map<String,Object>> list = statisticsService.checkDetailList(req.getHomeworkId());
+            List<CheckDetailVO> list = statisticsService.checkDetailList(req.getHomeworkId());
             data.put("list",list);
             responseEntity.success(data,"获取数据统计列表成功");
         } catch (Exception e) {
@@ -300,7 +314,7 @@ public class ApiManagerTeacherController extends BaseController {
     @RequestMapping(value = "/exportSalaryList", method = RequestMethod.GET)
     @ApiOperation(value = "导出薪酬列表",  notes = "导出薪酬列表")
     @ResponseBody
-    public void exportSalaryList(@RequestParam(name = "accessToken") String accessToken,@RequestBody TeacherDelReq req) {
+    public void exportSalaryList(@RequestParam(name = "accessToken") String accessToken,String id) {
         ServletOutputStream os = null;
         try {
             String libName="老师薪酬统计";
@@ -308,7 +322,8 @@ public class ApiManagerTeacherController extends BaseController {
             os = response.getOutputStream();
             //清空输出流
             response.reset();
-            TbLibManager manager = managerService.getById(req.getId());
+            exportExcelHead(response,libName);
+            TbLibManager manager = managerService.getById(id);
             List<Map<String,Object>> list = getSalaryList(manager.getUserId());
             /**
              * workDate	string	list	日期
@@ -350,7 +365,7 @@ public class ApiManagerTeacherController extends BaseController {
     @RequestMapping(value = "/exportStatisticsList", method = RequestMethod.GET)
     @ApiOperation(value = "导出数据统计列表",  notes = "导出数据统计列表")
     @ResponseBody
-    public void exportStatisticsList(@RequestParam(name = "accessToken") String accessToken,@RequestBody ListReq req) {
+    public void exportStatisticsList(@RequestParam(name = "accessToken") String accessToken,String beginDate,String endDate,String teacherName) {
         ServletOutputStream os = null;
         try {
             String libName="数据统计";
@@ -358,11 +373,12 @@ public class ApiManagerTeacherController extends BaseController {
             os = response.getOutputStream();
             //清空输出流
             response.reset();
+            exportExcelHead(response,libName);
             Map<String,Object> params = new HashMap<>(4);
-            params.put("beginDate",req.getBeginDate());
-            params.put("endDate",req.getEndDate());
-            params.put("teacherName",req.getTeacherName());
-            Page<Map<String,Object>> page = statisticsService.statisticsList(params,initPage(req.getPageNo(),100000));
+            params.put("beginDate",beginDate);
+            params.put("endDate",endDate);
+            params.put("teacherName",teacherName);
+            Page<Map<String,Object>> page = statisticsService.statisticsList(params,initPage(1,100000));
             /**
              * teacherName	string	list	老师姓名
              * subject	string	list	科目

+ 38 - 0
src/main/java/com/ssj/api/domain/vo/homework/CheckDetailVO.java

@@ -0,0 +1,38 @@
+package com.ssj.api.domain.vo.homework;
+
+/**
+ * @author sh
+ * @className checkDetailVO
+ * @description vo
+ * @date 2021/3/3
+ */
+public class CheckDetailVO {
+
+    private String pictureId;
+    private String pictureUrl;
+    private Integer checkState;
+
+    public String getPictureId() {
+        return pictureId;
+    }
+
+    public void setPictureId(String pictureId) {
+        this.pictureId = pictureId;
+    }
+
+    public String getPictureUrl() {
+        return pictureUrl;
+    }
+
+    public void setPictureUrl(String pictureUrl) {
+        this.pictureUrl = pictureUrl;
+    }
+
+    public Integer getCheckState() {
+        return checkState;
+    }
+
+    public void setCheckState(Integer checkState) {
+        this.checkState = checkState;
+    }
+}

+ 10 - 0
src/main/java/com/ssj/api/domain/vo/homework/HomeworkListVO.java

@@ -15,6 +15,7 @@ public class HomeworkListVO {
      * todayCorrectTime	string	list	今日累计批注时间
      * efficiency	string	list	响应速度
      * state	int
+     * homeworkState 0 作业份数
      */
     private String teacherId;
     private String teacherName;
@@ -23,6 +24,7 @@ public class HomeworkListVO {
     private String todayCorrectTime;
     private String efficiency;
     private Integer state;
+    private Integer homeworkCount;
 
     public String getTeacherId() {
         return teacherId;
@@ -79,4 +81,12 @@ public class HomeworkListVO {
     public void setState(Integer state) {
         this.state = state;
     }
+
+    public Integer getHomeworkCount() {
+        return homeworkCount;
+    }
+
+    public void setHomeworkCount(Integer homeworkCount) {
+        this.homeworkCount = homeworkCount;
+    }
 }

+ 86 - 0
src/main/java/com/ssj/api/domain/vo/statistics/ListBaseVO.java

@@ -0,0 +1,86 @@
+package com.ssj.api.domain.vo.statistics;
+
+import java.util.List;
+
+/**
+ * @author sh
+ * @className ListBaseVo
+ * @description TODO
+ * @date 2021/3/3
+ */
+public class ListBaseVO {
+
+    private String accuracyTotal;
+    private Integer  correctTotalNums;
+    private Integer  overtimeTotalNums;
+    private Integer  notCorrectTotalNums;
+    private Integer  notCommentTotalNums;
+    private Integer  repeatTotalNums;
+    private Integer  errorTotalNums ;
+
+    private List<ListVO> list;
+
+    public String getAccuracyTotal() {
+        return accuracyTotal;
+    }
+
+    public void setAccuracyTotal(String accuracyTotal) {
+        this.accuracyTotal = accuracyTotal;
+    }
+
+    public Integer getCorrectTotalNums() {
+        return correctTotalNums;
+    }
+
+    public void setCorrectTotalNums(Integer correctTotalNums) {
+        this.correctTotalNums = correctTotalNums;
+    }
+
+    public Integer getOvertimeTotalNums() {
+        return overtimeTotalNums;
+    }
+
+    public void setOvertimeTotalNums(Integer overtimeTotalNums) {
+        this.overtimeTotalNums = overtimeTotalNums;
+    }
+
+    public Integer getNotCorrectTotalNums() {
+        return notCorrectTotalNums;
+    }
+
+    public void setNotCorrectTotalNums(Integer notCorrectTotalNums) {
+        this.notCorrectTotalNums = notCorrectTotalNums;
+    }
+
+    public Integer getNotCommentTotalNums() {
+        return notCommentTotalNums;
+    }
+
+    public void setNotCommentTotalNums(Integer notCommentTotalNums) {
+        this.notCommentTotalNums = notCommentTotalNums;
+    }
+
+    public Integer getRepeatTotalNums() {
+        return repeatTotalNums;
+    }
+
+    public void setRepeatTotalNums(Integer repeatTotalNums) {
+        this.repeatTotalNums = repeatTotalNums;
+    }
+
+    public Integer getErrorTotalNums() {
+        return errorTotalNums;
+    }
+
+    public void setErrorTotalNums(Integer errorTotalNums) {
+        this.errorTotalNums = errorTotalNums;
+    }
+
+    public List<ListVO> getList() {
+        return list;
+    }
+
+    public void setList(List<ListVO> list) {
+        this.list = list;
+    }
+}

+ 0 - 65
src/main/java/com/ssj/api/domain/vo/statistics/ListVO.java

@@ -30,15 +30,6 @@ public class ListVO extends BaseRequest {
      * |accuracy|string|list|正确率|
      * |errorNums|int|list|报错页数|
      */
-
-    private String accuracyTotal;
-    private Integer  correctTotalNums;
-    private Integer  overtimeTotalNums;
-    private Integer  notCorrectTotalNums;
-    private Integer  notCommentTotalNums;
-    private Integer  repeatTotalNums;
-    private Integer  errorTotalNums ;
-
      private String teacherId;
      private String teacherName;
      private String subject;
@@ -51,62 +42,6 @@ public class ListVO extends BaseRequest {
      private Integer  repeatNums;
      private Integer  errorNums ;
 
-    public String getAccuracyTotal() {
-        return accuracyTotal;
-    }
-
-    public void setAccuracyTotal(String accuracyTotal) {
-        this.accuracyTotal = accuracyTotal;
-    }
-
-    public Integer getCorrectTotalNums() {
-        return correctTotalNums;
-    }
-
-    public void setCorrectTotalNums(Integer correctTotalNums) {
-        this.correctTotalNums = correctTotalNums;
-    }
-
-    public Integer getOvertimeTotalNums() {
-        return overtimeTotalNums;
-    }
-
-    public void setOvertimeTotalNums(Integer overtimeTotalNums) {
-        this.overtimeTotalNums = overtimeTotalNums;
-    }
-
-    public Integer getNotCorrectTotalNums() {
-        return notCorrectTotalNums;
-    }
-
-    public void setNotCorrectTotalNums(Integer notCorrectTotalNums) {
-        this.notCorrectTotalNums = notCorrectTotalNums;
-    }
-
-    public Integer getNotCommentTotalNums() {
-        return notCommentTotalNums;
-    }
-
-    public void setNotCommentTotalNums(Integer notCommentTotalNums) {
-        this.notCommentTotalNums = notCommentTotalNums;
-    }
-
-    public Integer getRepeatTotalNums() {
-        return repeatTotalNums;
-    }
-
-    public void setRepeatTotalNums(Integer repeatTotalNums) {
-        this.repeatTotalNums = repeatTotalNums;
-    }
-
-    public Integer getErrorTotalNums() {
-        return errorTotalNums;
-    }
-
-    public void setErrorTotalNums(Integer errorTotalNums) {
-        this.errorTotalNums = errorTotalNums;
-    }
-
     public String getTeacherId() {
         return teacherId;
     }

+ 10 - 0
src/main/java/com/ssj/bean/statistics/PlatTeacherStatistics.java

@@ -4,6 +4,7 @@ import com.ssj.bean.common.framework.core.domain.BaseEntity;
 
 import javax.persistence.Entity;
 import javax.persistence.Table;
+import java.util.Date;
 
 /**
  * @author sh
@@ -23,6 +24,7 @@ public class PlatTeacherStatistics extends BaseEntity {
     private Integer  repeatNums;
     private Integer  errorNums ;
     private String  calculateDate;
+    private Date createTime;
 
     public String getTeacherId() {
         return teacherId;
@@ -95,4 +97,12 @@ public class PlatTeacherStatistics extends BaseEntity {
     public void setCalculateDate(String calculateDate) {
         this.calculateDate = calculateDate;
     }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
 }

+ 4 - 2
src/main/java/com/ssj/dao/weixin/library/dao/impl/LibJoinQueryDaoImpl.java

@@ -1307,8 +1307,10 @@ public class LibJoinQueryDaoImpl implements ILibJoinQueryDao{
 	public Page<HomeworkListVO> findTeacherHomeworkList(Map<String, Object> params, Pageable initPage) {
 		StringBuilder selSQL = new StringBuilder();
 		List<Object> queryParams = new ArrayList<Object>();
-		selSQL.append("SELECT * from ( SELECT  \n");
-		selSQL.append("(SELECT count(DISTINCT a.homework_id) from scon_homework_picture a where a.teacher_id = t.user_id and a.is_mark in (0,2) and a.is_feedback = 0) as wait_nums, \n");
+		selSQL.append("SELECT a.wait_nums,a.state,a.teacher_id,a.teacher_name,a.wait_max_time,a.today_correct_time,a.efficiency,(ifnull(a.wait_nums,0)+ifnull(a.wait_nums2,0)) as homework_count from ( SELECT  \n");
+		selSQL.append("(SELECT count(DISTINCT a.homework_id) from scon_homework_picture a where a.teacher_id = t.user_id and a.is_mark in (0,2) and a.is_feedback = 0 and  homework_id not in (select homework_id  from scon_homework_picture_correct x where x.homework_picture_id = a.id and x.start_time is not null)) as wait_nums, \n");
+		selSQL.append("(SELECT count(1) from scon_homework_picture a where a.teacher_id = t.user_id and a.is_mark in (0,2)  and t.create_time > ? and a.is_feedback=1 group by homework_id ) as wait_nums2, \n");
+		queryParams.add(params.get("beginTime"));
 		selSQL.append("(SELECT ifnull(concat(SEC_TO_TIME(TIMESTAMPDIFF(SECOND,min(a.allot_time),NOW())),''),0)   from scon_homework_picture a where a.teacher_id = t.user_id and a.is_mark in (0,2) and a.is_feedback = 0) as wait_max_time, \n");
 		selSQL.append("t.user_id as teacher_id,t.name as teacher_name, \n");
 		selSQL.append("(select ifnull(concat(SEC_TO_TIME(sum(a.correction_time)),''),0) from scon_homework_picture a where a.teacher_id = t.user_id and a.is_mark in (0,2) and a.is_feedback=1 and t.create_time > ?) as today_correct_time, \n");

+ 2 - 4
src/main/java/com/ssj/service/sys/homework/service/impl/HomeworkPictureServiceImpl.java

@@ -188,10 +188,10 @@ public class HomeworkPictureServiceImpl extends BaseServiceImpl<HomeworkPicture,
         Date now = new Date();
         String nowString = DateUtil.format_yyyyMMddHHmmss(now);
         String today = DateUtil.format_yyyyMMdd(now);
-        String today2pm = today + " 14:00:00";
+        String today2pm = today + " 12:00:00";
         String beginTime;
         if (nowString.compareTo(today2pm) >= 0) {
-            //超过下午2点获取今天的数据
+            //超过下午12点获取今天的数据
             beginTime = today;
         } else {
             //获取昨天
@@ -283,8 +283,6 @@ public class HomeworkPictureServiceImpl extends BaseServiceImpl<HomeworkPicture,
         return resultMap;
     }
 
-    //unitId = this.getAnswerListQueryUnitId(bookId, unitId);
-    //return queryDao.findQuestionByBookIdAndPage(bookId, unitId, bookCourseId, pageIndex, bookYear);
     @Override
     public Map<String, Object> pictureDetail(String pictureId) {
 

+ 2 - 2
src/main/java/com/ssj/service/weixin/library/service/impl/BookManagerServiceImpl.java

@@ -1045,10 +1045,10 @@ public class BookManagerServiceImpl extends BaseServiceImpl<TbLibManager, String
         Date now = new Date();
         String nowString = DateUtil.format_yyyyMMddHHmmss(now);
         String today = DateUtil.format_yyyyMMdd(now);
-        String today2pm = today + " 14:00:00";
+        String today2pm = today + " 12:00:00";
         String beginTime;
         if (nowString.compareTo(today2pm) >= 0) {
-            //超过下午2点获取今天的数据
+            //超过中午12点获取今天的数据
             beginTime = today;
         } else {
             //获取昨天

+ 5 - 1
src/main/java/com/ssj/statistics/dao/IStatisticsQueryDao.java

@@ -1,5 +1,7 @@
 package com.ssj.statistics.dao;
 
+import com.ssj.api.domain.vo.homework.CheckDetailVO;
+import com.ssj.api.domain.vo.statistics.ListVO;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 
@@ -21,7 +23,9 @@ public interface IStatisticsQueryDao {
 
     Map<String, Object> findTotalData(Map<String, Object> params);
 
-    List<Map<String, Object>> checkDetailList(String homeworkId);
+    List<CheckDetailVO> checkDetailList(String homeworkId);
 
     List<Map<String, Object>> salaryList(String userId, int month, int year);
+
+    List<ListVO> statisticsDataList(String dataDate);
 }

+ 22 - 26
src/main/java/com/ssj/statistics/dao/impl/StatisticsQueryImpl.java

@@ -1,5 +1,7 @@
 package com.ssj.statistics.dao.impl;
 
+import com.ssj.api.domain.vo.homework.CheckDetailVO;
+import com.ssj.api.domain.vo.statistics.ListVO;
 import com.ssj.framework.core.persistence.PagingHibernateJdbcDao;
 import com.ssj.statistics.dao.IStatisticsQueryDao;
 import org.apache.commons.collections4.MapUtils;
@@ -130,9 +132,9 @@ public class StatisticsQueryImpl implements IStatisticsQueryDao {
         errorNums	int	list	报错页数
          */
         StringBuffer sql = new StringBuffer();
-        sql.append("select sum(a.overtimeNums) as correctTotalNums,sum(overtimeNums) as overtimeTotalNums, ");
-        sql.append("sum(a.notCorrectNums) as notCorrectTotalNums,sum(notCommentNums) as notCommentTotalNums, ");
-        sql.append("sum(a.repeatNums) as repeatTotalNums,avg(accuracy) as accuracyTotal, ");
+        sql.append("select ifnull(sum(a.overtimeNums),0) as correctTotalNums,ifnull(sum(overtimeNums),0) as overtimeTotalNums, ");
+        sql.append("ifnull(sum(a.notCorrectNums),0) as notCorrectTotalNums,ifnull(sum(notCommentNums),0) as notCommentTotalNums, ");
+        sql.append("ifnull(sum(a.repeatNums),0) as repeatTotalNums,ifnull(avg(accuracy),0) as accuracyTotal ");
         sql.append(" from (");
         List<Object> queryParams = new ArrayList<>();
         listInfo(params,queryParams,sql);
@@ -140,47 +142,41 @@ public class StatisticsQueryImpl implements IStatisticsQueryDao {
         return dao.findMap(sql.toString(),queryParams.toArray()).get(0);
     }
 
-
-    public Map<String, Object> findTotalData2(Map<String, Object> params) {
+    @Override
+    public List<ListVO> statisticsDataList(String dateTime) {
         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("SELECT a.teacher_id,a.teacher_name,a.`subject`,a.all_subject,a.correct_nums,a.overtime_nums,a.not_correct_nums,a.not_comment_nums,a.repeat_nums,a.error_nums,\n");
+        sql.append("floor(100*(a.total- a.error_nums-a.not_correct_nums)/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("SELECT t12.name as teacher_name,t.teacher_id,t.`subject`,t12.course_name as all_subject,count(if(t.is_mark in (0,2) and t.is_feedback=1,true,NULL)) as correct_nums, \n");
+        sql.append("0 as overtime_nums,\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("count(if(t11.start_time is null,true,null)) as not_correct_nums,\n");
+        sql.append("count(if(t.is_mark=10,true,null)) as not_comment_nums,\n");
+        sql.append("count(if(t.is_mark=15,true,null)) as repeat_nums,\n");
+        sql.append("count(if(t11.is_check_error=1,true,null)) as error_nums\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("where t12.type = 30 and to_days(t.create_time)= to_days(?)\n");
+        queryParams.add(dateTime);
         sql.append("GROUP BY t.teacher_id\n");
         sql.append(")a");
-        return dao.findMap(sql.toString(),queryParams.toArray()).get(0);
+        return dao.findList(sql.toString(),queryParams.toArray(),ListVO.class);
     }
 
     @Override
-    public List<Map<String, Object>> checkDetailList(String homeworkId) {
+    public List<CheckDetailVO> checkDetailList(String homeworkId) {
         StringBuffer sql = new StringBuffer();
         List<Object> queryParams = new ArrayList<>();
-        sql.append("SELECT t.id as pictureId,t.corrected_picture_url as pictureUrl,2 as checkState from scon_homework_picture t  \n");
+        sql.append("SELECT t.id as picture_id,t.corrected_picture_url as picture_url,2 as check_state  \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\n");
         sql.append("where t11.type = 8 and t11.is_check_error=1\n");
         sql.append(" and t.homework_id = ?");
         queryParams.add(homeworkId);
-        return dao.findMap(sql.toString(),queryParams.toArray());
+        return dao.findList(sql.toString(),queryParams.toArray(),CheckDetailVO.class);
     }
 
     @Override

+ 10 - 1
src/main/java/com/ssj/statistics/service/IStatisticsService.java

@@ -1,5 +1,6 @@
 package com.ssj.statistics.service;
 
+import com.ssj.api.domain.vo.homework.CheckDetailVO;
 import com.ssj.bean.statistics.PlatTeacherStatistics;
 import com.ssj.framework.core.common.service.BaseService;
 import org.springframework.data.domain.Page;
@@ -43,5 +44,13 @@ public interface IStatisticsService extends BaseService<PlatTeacherStatistics,St
      * @param homeworkId
      * @return
      */
-    List<Map<String, Object>> checkDetailList(String homeworkId);
+    List<CheckDetailVO> checkDetailList(String homeworkId);
+
+    /**
+     * 生成老师统计数据
+     * @param dataDate
+     */
+    void addStatisticsData(String dataDate);
+
+    void addTeacherSalarysData(String month);
 }

+ 32 - 1
src/main/java/com/ssj/statistics/service/impl/StatisticsServiceImpl.java

@@ -1,11 +1,16 @@
 package com.ssj.statistics.service.impl;
 
+import com.ssj.api.domain.vo.homework.CheckDetailVO;
+import com.ssj.api.domain.vo.statistics.ListVO;
 import com.ssj.bean.statistics.PlatTeacherStatistics;
 import com.ssj.framework.core.common.service.BaseServiceImpl;
+import com.ssj.framework.weixin.util.DateUtil;
 import com.ssj.statistics.dao.IStatisticsDao;
 import com.ssj.statistics.dao.IStatisticsQueryDao;
 import com.ssj.statistics.service.IStatisticsService;
 import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -66,7 +71,33 @@ public class StatisticsServiceImpl  extends BaseServiceImpl<PlatTeacherStatistic
     }
 
     @Override
-    public List<Map<String, Object>> checkDetailList(String homeworkId) {
+    public List<CheckDetailVO> checkDetailList(String homeworkId) {
         return queryDao.checkDetailList(homeworkId);
     }
+
+    @Override
+    public void addStatisticsData(String dataDate) {
+        if(StringUtils.isBlank(dataDate)){
+            dataDate = DateUtil.format_yyyyMMdd(DateUtil.addDays(new Date(), -1));
+        }
+        List<ListVO> list = queryDao.statisticsDataList(dataDate);
+        if(Objects.nonNull(list)){
+            String finalDataDate = dataDate;
+            list.forEach(o->{
+                PlatTeacherStatistics plat = new PlatTeacherStatistics();
+                BeanUtils.copyProperties(o,plat);
+                plat.setCalculateDate(finalDataDate);
+                plat.setCreateTime(new Date());
+                this.save(plat);
+            });
+        }
+    }
+
+    @Override
+    public void addTeacherSalarysData(String month) {
+        if(StringUtils.isBlank(month)){
+            month = DateUtil.format_yyyyMMdd(DateUtil.addMonth(-1));
+        }
+//        List<>
+    }
 }

+ 38 - 0
src/main/java/com/ssj/task/TeacherSalaryTask.java

@@ -0,0 +1,38 @@
+package com.ssj.task;
+
+import com.ssj.framework.core.util.SystemResourceLocator;
+import com.ssj.statistics.service.IStatisticsService;
+import org.quartz.DisallowConcurrentExecution;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author sh
+ * @className TeacherStatisticsTask
+ * @description 老师薪酬统计,每月412点后统计
+ * @date 2021/3/3
+ */
+@DisallowConcurrentExecution
+@Component
+public class TeacherSalaryTask implements Job {
+
+    private static Logger logger = LoggerFactory.getLogger(TeacherSalaryTask.class);
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext)  {
+        try {
+            logger.info("老师薪酬统计,每月4号12点后统计开始");
+            IStatisticsService statisticsService = SystemResourceLocator.getBean(IStatisticsService.class);
+            statisticsService.addTeacherSalarysData("");
+        }catch (Exception e){
+            logger.info("老师薪酬统计,每月4号12点后统计异常",e);
+        }finally {
+            logger.info("老师薪酬统计,每月4号12点后统计结束");
+        }
+
+
+    }
+}

+ 38 - 0
src/main/java/com/ssj/task/TeacherStatisticsTask.java

@@ -0,0 +1,38 @@
+package com.ssj.task;
+
+import com.ssj.framework.core.util.SystemResourceLocator;
+import com.ssj.statistics.service.IStatisticsService;
+import org.quartz.DisallowConcurrentExecution;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author sh
+ * @className TeacherStatisticsTask
+ * @description 老师数据统计,每天12点统计
+ * @date 2021/3/3
+ */
+@DisallowConcurrentExecution
+@Component
+public class TeacherStatisticsTask implements Job {
+
+    private static Logger logger = LoggerFactory.getLogger(TeacherStatisticsTask.class);
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext)  {
+        try {
+            logger.info("老师数据统计,每天12点统计开始");
+            IStatisticsService statisticsService = SystemResourceLocator.getBean(IStatisticsService.class);
+            statisticsService.addStatisticsData("");
+        }catch (Exception e){
+            logger.info("老师数据统计,每天12点统计异常",e);
+        }finally {
+            logger.info("老师数据统计,每天12点统计结束");
+        }
+
+
+    }
+}