Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

shenhao 4 rokov pred
rodič
commit
b1b7175c01

+ 35 - 10
src/main/java/com/ssj/api/controller/ApiManagerTeacherQualityController.java

@@ -3,23 +3,28 @@ package com.ssj.api.controller;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 import javax.validation.Valid;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.ssj.api.security.annotation.IgnoreSecurity;
 import com.ssj.api.security.annotation.ModifySecurity;
+import com.ssj.bean.weixin.libmy.domain.TbLibManager;
 import com.ssj.framework.core.common.controller.BaseController;
 import com.ssj.framework.core.util.ResponseConstant;
 import com.ssj.framework.core.util.ResponseEntity;
 import com.ssj.service.kmt.correctsys.dto.HomeworkCheckSubjectDto;
 import com.ssj.service.kmt.correctsys.dto.HomeworkPictureCheckDto;
 import com.ssj.service.kmt.correctsys.request.CorrectCheckReq;
+import com.ssj.service.kmt.correctsys.request.InspectorAllotListReq;
 import com.ssj.service.kmt.correctsys.request.TeacherAllotReq;
 import com.ssj.service.kmt.correctsys.service.KmtCorrectSysService;
 import com.ssj.service.weixin.library.service.IBookManagerService;
@@ -38,15 +43,29 @@ public class ApiManagerTeacherQualityController extends BaseController {
     @Autowired
     private KmtCorrectSysService kmtCorrectSysService;
 
-
+	@IgnoreSecurity
     @RequestMapping(value = "/findCheckHomeworkList",method = RequestMethod.POST)
     @ApiOperation(value ="查询质检列表数据",httpMethod = "POST",notes = "查询质检列表数据")
-    public ResponseEntity findCheckHomeworkList(@RequestParam String accessToken,@RequestBody @Valid TeacherAllotReq req){
+    public ResponseEntity findCheckHomeworkList(@RequestParam(name = "accessToken") String accessToken,@RequestBody @Valid InspectorAllotListReq req){
         ResponseEntity responseEntity = new ResponseEntity();
         try {
-            List<HomeworkCheckSubjectDto> list = kmtCorrectSysService.findCheckHomeworkList(req.getTeacherId());
+        	String userId = tokenManager.getUserId(accessToken);
+        	TbLibManager managerAdmin = managerService.findAllByUserIdAndTypeAndState(userId,50,1);
+        	if(Objects.isNull(managerAdmin)){
+        		responseEntity.failure(ResponseConstant.CODE_000, "您不是质检员,无权进行此操作!");
+        		return responseEntity;
+        	}
+        	Map<String, Object> params = new HashMap<String, Object>();
+        	params.put("inspectorId", userId);
+        	params.put("subject", req.getSubject());
+        	params.put("childName", req.getChildName());
+        	
+        	Page<HomeworkCheckSubjectDto> page = kmtCorrectSysService.pageCheckHomeworkList(params,initPage(req.getPageNo(), req.getPageSize()));
             Map<String, Object> data = new HashMap<>();
-            data.put("subjectDates", list);
+            data.put("pages", page.getTotalPages());
+            data.put("pageNo", req.getPageNo());
+            data.put("pageSize", req.getPageSize());
+            data.put("list", page.getContent());
             responseEntity.success(data, "请求成功");
         } catch (Exception e) {
             logger.error("异常",e);
@@ -56,13 +75,13 @@ public class ApiManagerTeacherQualityController extends BaseController {
 
     }
 
+	@IgnoreSecurity
     @RequestMapping(value = "/findCheckHomeworkPictureList", method = RequestMethod.POST)
     @ApiOperation(value ="查询质检作业图片列表数据",httpMethod = "POST",notes = "查询质检作业图片列表数据")
-    public ResponseEntity findCheckHomeworkPictureList(@RequestParam String accessToken,@RequestBody @Valid TeacherAllotReq req){
+    public ResponseEntity findCheckHomeworkPictureList(@RequestParam(name = "accessToken") String accessToken,@RequestBody @Valid TeacherAllotReq req){
         ResponseEntity responseEntity = new ResponseEntity();
         try {
-            String userId = tokenManager.getUserId(accessToken);
-            List<HomeworkPictureCheckDto> homeworkPictures = kmtCorrectSysService.findCheckHomeworkPictureList(req.getHomeworkId(), userId);
+            List<HomeworkPictureCheckDto> homeworkPictures = kmtCorrectSysService.findCheckHomeworkPictureList(req.getHomeworkId(), req.getTeacherId());
             Map<String, Object> data = new HashMap<>();
             data.put("homeworkPictures", homeworkPictures);
             responseEntity.success(data, "请求成功");
@@ -74,13 +93,19 @@ public class ApiManagerTeacherQualityController extends BaseController {
 
     }
 
+	@IgnoreSecurity
     @ModifySecurity
     @RequestMapping(value = "/correctCheck", method = RequestMethod.POST)
     @ApiOperation(value = "提交质检结果", httpMethod = "POST", notes = "提交质检结果")
-    public ResponseEntity correctCheck(@RequestParam(name = "accessToken") String accessToken, @RequestBody CorrectCheckReq req) {
-        ResponseEntity responseEntity;
+    public ResponseEntity correctCheck(@RequestParam(name = "accessToken") String accessToken,@RequestBody CorrectCheckReq req) {
+    	ResponseEntity responseEntity = new ResponseEntity();
         try {
-            String userId = tokenManager.getUserId(accessToken);
+        	String userId = tokenManager.getUserId(accessToken);
+        	TbLibManager managerAdmin = managerService.findAllByUserIdAndTypeAndState(userId,50,1);
+        	if(Objects.isNull(managerAdmin)){
+        		responseEntity.failure(ResponseConstant.CODE_000, "您不是质检员,无权进行此操作!");
+        		return responseEntity;
+        	}
             responseEntity = kmtCorrectSysService.correctCheck(req, userId);
         } catch (Exception e) {
             logger.error("异常", e);

+ 4 - 0
src/main/java/com/ssj/dao/kmt/correctsys/CorrectSysQueryDao.java

@@ -130,6 +130,10 @@ public interface CorrectSysQueryDao {
      * @return
      */
     List<HomeworkCheckDto> findHomeworkCheckList (String teacherId, String beginTime, String endTime);
+    List<HomeworkCheckDto> findHomeworkCheckByInspectorIdList(String inspectorId,String childName,String subject, String beginTime, String endTime);
+    Page<Map<String,Object>> pageHomeworkCheckByInspectorIdPageSize(Map<String, Object> params, Pageable pageable);
+    
+    
 
     /**
      * 查询已批改的作业的对错题

+ 91 - 0
src/main/java/com/ssj/dao/kmt/correctsys/impl/CorrectSysQueryDaoImpl.java

@@ -7,6 +7,8 @@ import com.ssj.framework.core.util.StringUtil;
 import com.ssj.service.kmt.correctsys.dto.HomeworkCheckDto;
 import com.ssj.service.kmt.correctsys.dto.HomeworkCheckKnowDetailDto;
 import com.ssj.service.kmt.correctsys.dto.HomeworkExerciseQuestionsDto;
+
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -744,6 +746,93 @@ public class CorrectSysQueryDaoImpl implements CorrectSysQueryDao {
         params.add(teacherId);
         return dao.findList(sb.toString(), params.toArray(), HomeworkCheckDto.class);
     }
+    
+
+    
+    @Override
+  	public Page<Map<String,Object>> pageHomeworkCheckByInspectorIdPageSize(Map<String, Object> params, Pageable pageable) {
+      	 StringBuilder sb = new StringBuilder();
+      	 List<Object> queryparams = new ArrayList<>();
+           sb.append(" SELECT date(t1.create_time) date ");
+           sb.append(" FROM ");
+           sb.append(" ( ");
+           sb.append(" 	SELECT hp.homework_id FROM scon_homework_picture hp    ");
+           sb.append("  	LEFT JOIN tb_lib_manager m ON hp.teacher_id=m.user_id ");
+           sb.append(" 		WHERE hp.service_type = 1 AND m.inspector_id =? AND TO_DAYS(hp.create_time)>=TO_DAYS(?) AND TO_DAYS(hp.create_time)<=TO_DAYS(?) ");
+           
+           queryparams.add(params.get("inspectorId"));
+           queryparams.add(params.get("beginTime"));
+           queryparams.add(params.get("endTime"));
+           
+           sb.append(" 	GROUP BY ");
+           sb.append(" 		hp.homework_id ");
+           sb.append(" 	HAVING");
+           sb.append(" 		count( IF( hp.is_feedback = 1 OR hp.is_mark IN ( 1, 3 ), 1, 0 )) = sum( IF( hp.is_feedback = 1 OR hp.is_mark IN ( 1, 3 ), 1, 0 )) ");
+           sb.append(" ) t4");
+           sb.append(" LEFT JOIN scon_homework_picture t1 ON t4.homework_id = t1.homework_id  AND t1.service_type = 1 ");
+           sb.append(" LEFT JOIN tb_lib_manager m1 ON t1.teacher_id=m1.user_id ");
+           sb.append(" LEFT JOIN scon_homework_picture_correct hpc ON t1.id = hpc.homework_picture_id AND hpc.type = 8  ");
+           sb.append(" WHERE ");
+           sb.append(" m1.inspector_id =?  ");
+           queryparams.add(params.get("inspectorId"));
+           
+           if(params.get("childName")!=null && StringUtils.isNotEmpty(params.get("childName").toString())) {
+          	 sb.append(" AND t2.child_name LIKE CONCAT('%',?,'%') ");
+          	 queryparams.add(params.get("childName"));
+           }
+           if(params.get("subject")!=null && StringUtils.isNotEmpty(params.get("subject").toString())) {
+          	 sb.append(" AND t1.SUBJECT =? ");
+          	 queryparams.add(params.get("subject"));
+           }
+           sb.append(" GROUP BY ");
+           sb.append(" date ");
+           sb.append(" ORDER BY date desc");
+           return dao.findPage(sb.toString(), queryparams.toArray(),pageable);
+  	}
+    
+    
+    @Override
+	public List<HomeworkCheckDto> findHomeworkCheckByInspectorIdList(String inspectorId,String childName,String subject,String beginTime, String endTime) {
+    	 StringBuilder sb = new StringBuilder();
+    	 List<Object> queryparams = new ArrayList<>();
+         sb.append(" SELECT	t2.child_name,	t1.homework_id,t1.teacher_id,	t1.SUBJECT,	t2.grade,	date( t1.create_time ) date,	sum( hpc.is_check_error ) error,	sum( CASE WHEN hpc.check_date IS NOT NULL THEN 1 ELSE 0 END ) checked,	sum( 1 ) total  ");
+         sb.append(" FROM ");
+         sb.append(" ( ");
+         sb.append(" 	SELECT hp.homework_id FROM scon_homework_picture hp    ");
+         sb.append("  	LEFT JOIN tb_lib_manager m ON hp.teacher_id=m.user_id ");
+         sb.append(" 		WHERE hp.service_type = 1 AND m.inspector_id =? AND TO_DAYS(hp.create_time)>=TO_DAYS(?) AND TO_DAYS(hp.create_time)<=TO_DAYS(?) ");
+         
+         queryparams.add(inspectorId);
+         queryparams.add(beginTime);
+         queryparams.add(endTime);
+         
+         sb.append(" 	GROUP BY ");
+         sb.append(" 		hp.homework_id ");
+         sb.append(" 	HAVING");
+         sb.append(" 		count( IF( hp.is_feedback = 1 OR hp.is_mark IN ( 1, 3 ), 1, 0 )) = sum( IF( hp.is_feedback = 1 OR hp.is_mark IN ( 1, 3 ), 1, 0 )) ");
+         sb.append(" ) t4");
+         sb.append(" LEFT JOIN scon_homework_picture t1 ON t4.homework_id = t1.homework_id  AND t1.service_type = 1 ");
+         sb.append(" LEFT JOIN tb_lib_manager m1 ON t1.teacher_id=m1.user_id ");
+         sb.append(" LEFT JOIN tb_lib_vip t2 ON t1.vip_id = t2.id ");
+         sb.append(" LEFT JOIN scon_homework_picture_correct hpc ON t1.id = hpc.homework_picture_id AND hpc.type = 8  ");
+         sb.append(" WHERE ");
+         sb.append(" m1.inspector_id =?  ");
+         queryparams.add(inspectorId);
+         
+         if(StringUtils.isNotEmpty(childName)) {
+        	 sb.append(" AND t2.child_name LIKE CONCAT('%',?,'%') ");
+        	 queryparams.add(childName);
+         }
+         if(StringUtils.isNotEmpty(subject)) {
+        	 sb.append(" AND t1.SUBJECT =? ");
+        	 queryparams.add(subject);
+         }
+         sb.append(" GROUP BY ");
+         sb.append(" t2.child_name, t1.homework_id,	date, t1.SUBJECT ");
+         sb.append(" ORDER BY date desc ");
+         return dao.findList(sb.toString(), queryparams.toArray(), HomeworkCheckDto.class);
+	}
+    
 
     @Override
     public List<HomeworkExerciseQuestionsDto> findHomeworkCorrectedQuestions(String homeworkId) {
@@ -1625,4 +1714,6 @@ public class CorrectSysQueryDaoImpl implements CorrectSysQueryDao {
       return  dao.findList(sql.toString(),queryParams.toArray(),String.class);
     }
 
+	
+
 }

+ 4 - 0
src/main/java/com/ssj/dao/weixin/library/dao/IBookManagerDao.java

@@ -375,4 +375,8 @@ public interface IBookManagerDao extends JpaRepository<TbLibManager, String> {
 
 	@Query(nativeQuery = true,value = "select * from tb_lib_manager where telephone=?1 and type=?2 and  state=1 order by create_time desc  limit 1")
 	TbLibManager findManagerByPhoneAndType(String mobile, int type);
+	
+	@Query(nativeQuery = true,value ="select * from  tb_lib_manager where inspector_id=?1  " )
+	List<TbLibManager> findTbLibManagerByInspectorId(String inspectorId);
+	
 }

+ 16 - 13
src/main/java/com/ssj/framework/basic/utils/DateHelper.java

@@ -451,19 +451,22 @@ public class DateHelper {
      * @return
      * @throws Exception
      */
-    public static int daysOfTwo(Date smdate, Date bdate) throws Exception {
-
-        smdate = new SimpleDateFormat("yyyy-MM-dd").parse(new SimpleDateFormat("yyyy-MM-dd").format(smdate));
-        bdate = new SimpleDateFormat("yyyy-MM-dd").parse(new SimpleDateFormat("yyyy-MM-dd").format(bdate));
-        Calendar cal = Calendar.getInstance();
-        cal.setTime(smdate);
-        long time1 = cal.getTimeInMillis();
-        cal.setTime(bdate);
-        long time2 = cal.getTimeInMillis();
-        long between_days = (time2 - time1) / (1000 * 3600 * 24);
-
-        return daysOfTian(smdate,bdate);
-
+    public static int daysOfTwo(Date smdate, Date bdate) {
+    	try {
+	        smdate = new SimpleDateFormat("yyyy-MM-dd").parse(new SimpleDateFormat("yyyy-MM-dd").format(smdate));
+	        bdate = new SimpleDateFormat("yyyy-MM-dd").parse(new SimpleDateFormat("yyyy-MM-dd").format(bdate));
+	        Calendar cal = Calendar.getInstance();
+	        cal.setTime(smdate);
+	        long time1 = cal.getTimeInMillis();
+	        cal.setTime(bdate);
+	        long time2 = cal.getTimeInMillis();
+	        long between_days = (time2 - time1) / (1000 * 3600 * 24);
+	
+	        return daysOfTian(smdate,bdate);
+    	} catch (Exception e) {
+    		e.printStackTrace();
+		}
+    	return -1;
     }
     public static LocalDate date2LocalDate(Date date) {
         Instant instant = date.toInstant();

+ 6 - 0
src/main/java/com/ssj/service/conch/schoolmaster/util/Constant.java

@@ -40,6 +40,12 @@ public class Constant {
      * tb_lib_manager中线上老师,和kmt 的老师
      */
     public static final int KMT_122_TEACHER_TYPE = 8;
+    
+    /**
+        * 批改老师
+     */
+    public static final int HOMEWORK_30_TEACHER_TYPE = 30;
+    
 
     /**
      * tb_lib_manager小课老师的type

+ 136 - 98
src/main/java/com/ssj/service/kmt/correctsys/KmtCorrectSysServiceImpl.java

@@ -1,9 +1,9 @@
 package com.ssj.service.kmt.correctsys;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -11,6 +11,9 @@ import java.util.stream.Collectors;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -26,6 +29,7 @@ import com.ssj.conch.push.util.PushConstants;
 import com.ssj.dao.kmt.correctsys.CorrectSysQueryDao;
 import com.ssj.enums.XinGePushBusinessTypeEnum;
 import com.ssj.enums.XinGePushMessageTypeEnum;
+import com.ssj.framework.basic.utils.DateHelper;
 import com.ssj.framework.core.util.ResponseConstant;
 import com.ssj.framework.core.util.ResponseEntity;
 import com.ssj.framework.core.util.StringUtil;
@@ -95,13 +99,7 @@ public class KmtCorrectSysServiceImpl implements KmtCorrectSysService {
 
     @Override
     public List<HomeworkPictureCheckDto> findCheckHomeworkPictureList(String homeworkId, String teacherId) {
-        int teacherType = managerService.findCorrectOrKnowRoleByUserId(teacherId);
-        List<HomeworkPictureCheckDto> result = null;
-        if (teacherType == Constant.CORRECT_KNOW_TYPE) {
-            result = this.findKnowledgeCheckHomeworkPictureList(homeworkId, teacherId);
-        } else if (teacherType == Constant.KMT_122_TEACHER_TYPE) {
-            result = this.findCorrectCheckHomeworkPictureList(homeworkId, teacherId);
-        }
+        List<HomeworkPictureCheckDto> result = this.findCorrectCheckHomeworkPictureList(homeworkId, teacherId);
         return result;
     }
 
@@ -600,7 +598,7 @@ public class KmtCorrectSysServiceImpl implements KmtCorrectSysService {
         HomeworkPicture homeworkPicture = homeworkPictureService.getById(req.getHomeworkPicId());
 
         //校验作业是否已批改
-        if (teacherType == Constant.KMT_122_TEACHER_TYPE) {
+        if (teacherType == Constant.HOMEWORK_30_TEACHER_TYPE) {
             if (homeworkPicture.getIsFeedback() == 0 && (homeworkPicture.getIsMark() == 0 || homeworkPicture.getIsMark() == 2)) {
                 responseEntity.success(ResponseConstant.CODE_000, "作业未批改,不能质检");
                 return responseEntity;
@@ -630,7 +628,7 @@ public class KmtCorrectSysServiceImpl implements KmtCorrectSysService {
         if (homeworkPictureCorrect.getCheckStartTime() == null) {
             homeworkPictureCorrect.setCheckStartTime(now);
         }
-        List<TbLibManager> managers = managerService.findByUserIdAndTypeIn(userId, new int[]{11, 12, 14});
+        List<TbLibManager> managers = managerService.findByUserIdAndTypeIn(userId, new int[]{50});
         for (TbLibManager manager : managers) {
             //质检员userId
             homeworkPictureCorrect.setCheckerId(manager.getUserId());
@@ -641,7 +639,7 @@ public class KmtCorrectSysServiceImpl implements KmtCorrectSysService {
                 case 12:
                     homeworkPictureCorrect.setChecker("超级管理员");
                     break;
-                case 14:
+                case 50:
                     homeworkPictureCorrect.setChecker(manager.getName());
                     break;
                 default:
@@ -654,7 +652,7 @@ public class KmtCorrectSysServiceImpl implements KmtCorrectSysService {
         this.saveErrorCheckRecord(homeworkPictureCorrect, homeworkPicture, teacherType, checkedUserId);
         homeworkPictureCorrectService.save(homeworkPictureCorrect);
         //批改老师的质检设置为已质检
-        if (teacherType == Constant.KMT_122_TEACHER_TYPE) {
+        if (teacherType == Constant.HOMEWORK_30_TEACHER_TYPE) {
             homeworkPicture.setIsCorrect(13);
         }
         homeworkPictureService.save(homeworkPicture);
@@ -662,9 +660,9 @@ public class KmtCorrectSysServiceImpl implements KmtCorrectSysService {
         if (req.getType() == 2) {
             //批改错误,给批改老师发送报错提醒
             TbLibManager correctTeacher = null;
-            if (8 == teacherType) {
+            if (teacherType == Constant.HOMEWORK_30_TEACHER_TYPE) {
                 List<TbLibManager> libManagerList =
-                        managerService.findByUserIdAndTypeIn(homeworkPicture.getTeacherId(), new int[]{8, 11});
+                        managerService.findByUserIdAndTypeIn(homeworkPicture.getTeacherId(), new int[]{30});
                 if (CollectionUtils.isNotEmpty(libManagerList)) {
                     correctTeacher = libManagerList.get(0);
                     String content = correctTeacher.getName() + "老师,您有一份新的作业报错提醒,赶快来查看。";
@@ -693,97 +691,137 @@ public class KmtCorrectSysServiceImpl implements KmtCorrectSysService {
      * @param homeworkPictureCorrect
      * @param homeworkPicture
      */
-    private void saveErrorCheckRecord(HomeworkPictureCorrect homeworkPictureCorrect, HomeworkPicture homeworkPicture,
-                                      int teacherType, String checkedUserId) {
-        if (homeworkPictureCorrect.getIsCheckError() == 1) {
-            HomeworkPictureErrorCheck errorCheck = new HomeworkPictureErrorCheck();
-            errorCheck.setHomeworkPictureId(homeworkPicture.getId());
-            errorCheck.setChecker(homeworkPictureCorrect.getChecker());
-            errorCheck.setCreateTime(new Date());
-            errorCheck.setStartTime(homeworkPictureCorrect.getStartTime());
-            errorCheck.setEndTime(homeworkPictureCorrect.getEndTime());
-            errorCheck.setErrorReason(homeworkPictureCorrect.getErrorReason());
-            errorCheck.setType(homeworkPictureCorrect.getType());
-            if (StringUtil.isBlank(checkedUserId)) {
-                if (teacherType == Constant.KMT_122_TEACHER_TYPE) {
-                    errorCheck.setCheckedUserId(homeworkPicture.getTeacherId());
-                } else {
-                    errorCheck.setCheckedUserId(homeworkPicture.getKnowTeacherId());
-                }
-            } else {
-                errorCheck.setCheckedUserId(checkedUserId);
-            }
-            //标注图片问题
-            SconTeacherCorrectRecord sconTeacherCorrectRecord =
-                    sconTeacherCorrectRecordService.findByHomeworkPictureId(homeworkPicture.getId());
-            if (sconTeacherCorrectRecord != null && StringUtils.isNotBlank(sconTeacherCorrectRecord.getCorrected_picture_url())
-                    && teacherType == Constant.KMT_122_TEACHER_TYPE) {
-                errorCheck.setCheckPictureUrl(sconTeacherCorrectRecord.getCorrected_picture_url());
-            } else {
-                errorCheck.setCheckPictureUrl(StringUtils.isEmpty(homeworkPicture.getCorrectedPictureUrl())
-                        ? homeworkPicture.getFileKey() : homeworkPicture.getCorrectedPictureUrl());
-            }
-            if (teacherType == Constant.CORRECT_KNOW_TYPE) {
-                List<HomeworkCheckKnowDetailDto> homeworkCheckKnowDetailDtos =
-                        correctSysQueryDao.findHomeworkCorrectedKnowledgeByPictureId(homeworkPicture.getId());
-                HomeworkPictureCheckHowDetailDto homeworkPictureCheckHowDetailDto =
-                        this.getHomeworkPictureKnowCheckData(homeworkPicture, homeworkCheckKnowDetailDtos);
-                errorCheck.setErrorHowDetails(JSON.toJSONString(homeworkPictureCheckHowDetailDto));
-            }
-            homeworkPictureErrorCheckService.save(errorCheck);
-        }
-    }
+	private void saveErrorCheckRecord(HomeworkPictureCorrect homeworkPictureCorrect, HomeworkPicture homeworkPicture,
+			int teacherType, String checkedUserId) {
+		if (homeworkPictureCorrect.getIsCheckError() == 1) {
+			HomeworkPictureErrorCheck errorCheck = new HomeworkPictureErrorCheck();
+			errorCheck.setHomeworkPictureId(homeworkPicture.getId());
+			errorCheck.setChecker(homeworkPictureCorrect.getChecker());
+			errorCheck.setCreateTime(new Date());
+			errorCheck.setStartTime(homeworkPictureCorrect.getStartTime());
+			errorCheck.setEndTime(homeworkPictureCorrect.getEndTime());
+			errorCheck.setErrorReason(homeworkPictureCorrect.getErrorReason());
+			errorCheck.setType(homeworkPictureCorrect.getType());
+			if (StringUtil.isBlank(checkedUserId)) {
+				if (teacherType == Constant.HOMEWORK_30_TEACHER_TYPE) {
+					errorCheck.setCheckedUserId(homeworkPicture.getTeacherId());
+				} else {
+					errorCheck.setCheckedUserId(homeworkPicture.getKnowTeacherId());
+				}
+			} else {
+				errorCheck.setCheckedUserId(checkedUserId);
+			}
+			//标注图片问题
+			SconTeacherCorrectRecord sconTeacherCorrectRecord = sconTeacherCorrectRecordService
+					.findByHomeworkPictureId(homeworkPicture.getId());
+			if (sconTeacherCorrectRecord != null
+					&& StringUtils.isNotBlank(sconTeacherCorrectRecord.getCorrected_picture_url())
+					&& teacherType == Constant.HOMEWORK_30_TEACHER_TYPE) {
+				errorCheck.setCheckPictureUrl(sconTeacherCorrectRecord.getCorrected_picture_url());
+			} else {
+				errorCheck.setCheckPictureUrl(
+						StringUtils.isEmpty(homeworkPicture.getCorrectedPictureUrl()) ? homeworkPicture.getFileKey()
+								: homeworkPicture.getCorrectedPictureUrl());
+			}
+			if (teacherType == Constant.CORRECT_KNOW_TYPE) {
+				List<HomeworkCheckKnowDetailDto> homeworkCheckKnowDetailDtos = correctSysQueryDao
+						.findHomeworkCorrectedKnowledgeByPictureId(homeworkPicture.getId());
+				HomeworkPictureCheckHowDetailDto homeworkPictureCheckHowDetailDto = this
+						.getHomeworkPictureKnowCheckData(homeworkPicture, homeworkCheckKnowDetailDtos);
+				errorCheck.setErrorHowDetails(JSON.toJSONString(homeworkPictureCheckHowDetailDto));
+			}
+			homeworkPictureErrorCheckService.save(errorCheck);
+		}
+	}
     
     
     @Override
-    public List<HomeworkCheckSubjectDto> findCheckHomeworkList(String teacherId) {
-        String endTime = DateUtil.format_yyyyMMddHHmmss(new Date());
-        String beginTime = DateUtil.dateIncreaseByDay(endTime, "yyyy-MM-dd", -6) + " 00:00:00";
-        int type = managerService.findCorrectOrKnowRoleByUserId(teacherId);
-        List<HomeworkCheckDto> homeworks = null;
-
+    public Page<HomeworkCheckSubjectDto> pageCheckHomeworkList(Map<String, Object> params, Pageable pageable) {
+    	//作业要在提交日期的转天中午12:00之后才会出现在质检列表,判断当前时间是否大于12点,大于就取前一天的日期,小于就取前前一天的日期
+    	Calendar calendar = Calendar.getInstance(); 
+    	int curHour24 = calendar.get(Calendar.HOUR_OF_DAY);
+    	calendar.set(Calendar.HOUR_OF_DAY, 0);
+		calendar.set(Calendar.MINUTE, 0);
+		calendar.set(Calendar.SECOND, 0);
+		calendar.set(Calendar.MILLISECOND, 0);
+    	calendar.add(Calendar.DAY_OF_MONTH, -0);
+    	
+		String endTime = DateUtil.format_yyyyMMddHHmmss(calendar.getTime());
+    	if(curHour24<12) {
+    		calendar.add(Calendar.DAY_OF_MONTH, -1);  
+    		endTime = DateUtil.format_yyyyMMddHHmmss(calendar.getTime());
+    	}
+        String beginTime = DateUtil.dateIncreaseByDay(endTime, "yyyy-MM-dd", -150) + " 00:00:00";
+        
+        params.put("beginTime", beginTime);
+        params.put("endTime", endTime);
+        
         //不同的老师查询不同的数据
-        if (type == Constant.KMT_122_TEACHER_TYPE) {
-            homeworks = correctSysQueryDao.findHomeworkCheckList(teacherId, beginTime, endTime);
-        } else if (type == Constant.CORRECT_KNOW_TYPE) {
-            homeworks = correctSysQueryDao.findKnowHomeworkCheckList(teacherId, beginTime, endTime);
-        }
-
-        List<HomeworkCheckSubjectDto> result = new LinkedList<>();
-        if (homeworks != null) {
-            Map<String, Map<String, List<HomeworkCheckDto>>> homeworkChecks = homeworks.stream()
-                    .collect(Collectors.groupingBy(HomeworkCheckDto::getDate,
-                            Collectors.groupingBy(HomeworkCheckDto::getSubject)));
-
-            Map<String, List<HomeworkCheckDto>> subjectMap = null;
-            List<HomeworkCheckDto> homeworkList = null;
-            for (String date : homeworkChecks.keySet()) {
-                subjectMap = homeworkChecks.get(date);
-                for (String subject : subjectMap.keySet()) {
-                    homeworkList = subjectMap.get(subject);
-                    HomeworkCheckSubjectDto homeworkCheckSubjectDto = new HomeworkCheckSubjectDto();
-                    homeworkCheckSubjectDto.setDate(date);
-                    homeworkCheckSubjectDto.setSubject(subject);
-                    for (HomeworkCheckDto homework : homeworkList) {
-                        HomeworkCheckStudentDto homeworkCheckStudentDto = new HomeworkCheckStudentDto();
-                        homeworkCheckStudentDto.setHomeworkId(homework.getHomeworkId());
-                        homeworkCheckStudentDto.setStudentName(homework.getChildName());
-                        homeworkCheckStudentDto.setGrade(homework.getGrade());
-                        homeworkCheckStudentDto.setCheckedCount(homework.getChecked());
-                        homeworkCheckStudentDto.setTotalCount(homework.getTotal());
-                        if (homework.getError() != null && homework.getError() > 0) {
-                            homeworkCheckStudentDto.setType(1);
-                        }
-                        homeworkCheckSubjectDto.addStudent(homeworkCheckStudentDto);
-                    }
-                    this.sortInsert(result, homeworkCheckSubjectDto);
-                }
-            }
-
+        Page<Map<String, Object>> pageHomeworks = correctSysQueryDao.pageHomeworkCheckByInspectorIdPageSize(params,pageable);
+        Page<HomeworkCheckSubjectDto> resultPage =new PageImpl<HomeworkCheckSubjectDto>(new ArrayList<HomeworkCheckSubjectDto>(), pageable, pageHomeworks.getTotalElements());
+        
+        List<Map<String, Object>> pageList=pageHomeworks.getContent();
+        
+        if(pageList!=null && pageList.size()>=1) {
+        	beginTime=pageList.get(pageList.size()-1).get("date").toString();
+        	endTime=pageList.get(0).get("date").toString();
+	        
+        	List<HomeworkCheckDto> homeworks=correctSysQueryDao.findHomeworkCheckByInspectorIdList(
+        			params.get("inspectorId").toString(), 
+        			params.get("childName")!=null ? params.get("childName").toString() : "", 
+        			params.get("subject")!=null ? params.get("subject").toString() : "",
+        			beginTime, 
+        			endTime);
+        	
+        	List<HomeworkCheckSubjectDto> result =new ArrayList<HomeworkCheckSubjectDto>();
+        	
+	        if (homeworks != null) {
+	            Map<String, Map<String, List<HomeworkCheckDto>>> homeworkChecks = homeworks.stream()
+	                    .collect(Collectors.groupingBy(HomeworkCheckDto::getDate,
+	                            Collectors.groupingBy(HomeworkCheckDto::getSubject)));
+	
+	            Map<String, List<HomeworkCheckDto>> subjectMap = null;
+	            List<HomeworkCheckDto> homeworkList = null;
+	            for (String date : homeworkChecks.keySet()) {
+	                subjectMap = homeworkChecks.get(date);
+	                for (String subject : subjectMap.keySet()) {
+	                    homeworkList = subjectMap.get(subject);
+	                    HomeworkCheckSubjectDto homeworkCheckSubjectDto = new HomeworkCheckSubjectDto();
+	                    homeworkCheckSubjectDto.setDate(date);
+	                    //homeworkCheckSubjectDto.setSubject(subject);
+	                    for (HomeworkCheckDto homework : homeworkList) {
+	                        HomeworkCheckStudentDto homeworkCheckStudentDto = new HomeworkCheckStudentDto();
+	                        homeworkCheckStudentDto.setHomeworkId(homework.getHomeworkId());
+	                        homeworkCheckStudentDto.setStudentName(homework.getChildName());
+	                        homeworkCheckStudentDto.setGrade(homework.getGrade());
+	                        homeworkCheckStudentDto.setCheckedCount(homework.getChecked());
+	                        homeworkCheckStudentDto.setTotalCount(homework.getTotal());
+	                        homeworkCheckStudentDto.setTeacherId(homework.getTeacherId());
+	                        if (homework.getError() != null && homework.getError() > 0) {
+	                            homeworkCheckStudentDto.setErrorCount(homework.getError());
+	                        }else {
+	                        	homeworkCheckStudentDto.setErrorCount(0);
+	                        }
+	                        //将超过4天的作业就不可以再质检了
+	                        if(homework.getTotal()>homework.getChecked() 
+	                        		&& DateHelper.daysOfTwo(DateHelper.parseDate(homework.getDate(), "yyyy-MM-dd"),new Date())>4
+	                        		) {
+	                        	homeworkCheckStudentDto.setType(1);
+	                        }else {
+	                        	homeworkCheckStudentDto.setType(0);
+	                        }
+	                        homeworkCheckSubjectDto.addStudent(homeworkCheckStudentDto);
+	                    }
+	                    this.sortInsert(result, homeworkCheckSubjectDto);
+	                }
+	            }
+	            resultPage =new PageImpl<HomeworkCheckSubjectDto>(result, pageable, pageHomeworks.getTotalElements());
+	        }
         }
-        return result;
+        return resultPage;
     }
     
+    
     /**
      * 按日期顺序插入
      *

+ 13 - 0
src/main/java/com/ssj/service/kmt/correctsys/dto/HomeworkCheckDto.java

@@ -9,6 +9,8 @@ public class HomeworkCheckDto implements Serializable {
     private String childName;
 
     private String homeworkId;
+    
+    private String teacherId;
 
     private String subject;
 
@@ -85,4 +87,15 @@ public class HomeworkCheckDto implements Serializable {
     public void setTotal(Integer total) {
         this.total = total;
     }
+
+	public String getTeacherId() {
+		return teacherId;
+	}
+
+	public void setTeacherId(String teacherId) {
+		this.teacherId = teacherId;
+	}
+    
+    
+    
 }

+ 25 - 1
src/main/java/com/ssj/service/kmt/correctsys/dto/HomeworkCheckStudentDto.java

@@ -10,6 +10,8 @@ public class HomeworkCheckStudentDto implements Serializable {
      * 作业id
      */
     private String homeworkId;
+    
+    private String teacherId;
 
     private String studentName;
 
@@ -27,9 +29,14 @@ public class HomeworkCheckStudentDto implements Serializable {
      * 总数
      */
     private int totalCount;
+    
+    /**
+     * 报错数
+     */
+    private int errorCount;
 
     /**
-     * 默认0, 1报错
+     * 默认0, 1超时
      */
     private int type;
 
@@ -80,4 +87,21 @@ public class HomeworkCheckStudentDto implements Serializable {
     public void setType(int type) {
         this.type = type;
     }
+
+	public int getErrorCount() {
+		return errorCount;
+	}
+
+	public void setErrorCount(int errorCount) {
+		this.errorCount = errorCount;
+	}
+
+	public String getTeacherId() {
+		return teacherId;
+	}
+
+	public void setTeacherId(String teacherId) {
+		this.teacherId = teacherId;
+	}
+    
 }

+ 0 - 10
src/main/java/com/ssj/service/kmt/correctsys/dto/HomeworkCheckSubjectDto.java

@@ -10,8 +10,6 @@ public class HomeworkCheckSubjectDto implements Serializable {
 
     private String date;
 
-    private String subject;
-
     private List<HomeworkCheckStudentDto> students = new ArrayList<>();
 
     public String getDate() {
@@ -22,14 +20,6 @@ public class HomeworkCheckSubjectDto implements Serializable {
         this.date = date;
     }
 
-    public String getSubject() {
-        return subject;
-    }
-
-    public void setSubject(String subject) {
-        this.subject = subject;
-    }
-
     public List<HomeworkCheckStudentDto> getStudents() {
         return students;
     }

+ 35 - 0
src/main/java/com/ssj/service/kmt/correctsys/request/CorrectCheckInspectorReq.java

@@ -0,0 +1,35 @@
+package com.ssj.service.kmt.correctsys.request;
+
+import com.ssj.bean.common.framework.core.domain.BaseRequest;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @author Mount Liu
+ * @date 2019/5/21
+ */
+public class CorrectCheckInspectorReq extends BaseRequest {
+
+    private final static long serialVersionUID = 1L;
+
+    @ApiModelProperty(name = "homeworkPicId", value = "作业图片id", required = true)
+    private String homeworkPicId;
+    @ApiModelProperty(name = "type", value = "1:通过,2:批改错误", required = true)
+    private int type;
+
+    public String getHomeworkPicId() {
+        return homeworkPicId;
+    }
+
+    public void setHomeworkPicId(String homeworkPicId) {
+        this.homeworkPicId = homeworkPicId;
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+
+}

+ 2 - 2
src/main/java/com/ssj/service/kmt/correctsys/request/CorrectCheckReq.java

@@ -17,8 +17,8 @@ public class CorrectCheckReq extends BaseRequest {
     private String reason;
     @ApiModelProperty(name = "type", value = "1:通过,2:批改错误", required = true)
     private int type;
-    @ApiModelProperty(name = "teacherType", value = "8:批改老师 13:匹配知识点老师", required = true)
-    private int teacherType = 8;
+    @ApiModelProperty(name = "teacherType", value = "30:批改老师 ", required = true)
+    private int teacherType = 30;
 
     public String getHomeworkPicId() {
         return homeworkPicId;

+ 63 - 0
src/main/java/com/ssj/service/kmt/correctsys/request/InspectorAllotListReq.java

@@ -0,0 +1,63 @@
+package com.ssj.service.kmt.correctsys.request;
+
+import com.ssj.bean.common.framework.core.domain.BaseRequest;
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * @author Admin
+ * @title: TeacherAllotListReq
+ * @projectName ssj
+ * @description: TODO
+ * @date 2019/5/21 9:32
+ */
+public class InspectorAllotListReq extends BaseRequest {
+
+    private final static long serialVersionUID = 1L;
+
+    @ApiModelProperty(name="pageNo",value = "页码",required = true)
+    private  int pageNo;
+
+    @ApiModelProperty(name="pageSize",value = "每页条数",required = true)
+    private int pageSize;
+
+    @ApiModelProperty(name="subject",value = "科目",required = true)
+    private  String subject;
+
+    @ApiModelProperty(name="childName",value = "学生姓名",required = true)
+    private  String childName;
+
+	public int getPageNo() {
+		return pageNo;
+	}
+
+	public void setPageNo(int pageNo) {
+		this.pageNo = pageNo;
+	}
+
+	public int getPageSize() {
+		return pageSize;
+	}
+
+	public void setPageSize(int pageSize) {
+		this.pageSize = pageSize;
+	}
+
+	public String getSubject() {
+		return subject;
+	}
+
+	public void setSubject(String subject) {
+		this.subject = subject;
+	}
+
+	public String getChildName() {
+		return childName;
+	}
+
+	public void setChildName(String childName) {
+		this.childName = childName;
+	}
+
+   
+}

+ 3 - 3
src/main/java/com/ssj/service/kmt/correctsys/request/TeacherAllotReq.java

@@ -13,11 +13,11 @@ public class TeacherAllotReq extends BaseRequest {
 
     @ApiModelProperty(name = "homeworkId", value = "作业id", required = true)
     private String homeworkId;
-    @ApiModelProperty(name = "teacherId", value = "老师id", required = true)
+    @ApiModelProperty(name = "teacherId", value = "老师id", required = false )
     private String teacherId;
-    @ApiModelProperty(name="originTeacherId",value = "原作业老师id",required = true)
+    @ApiModelProperty(name="originTeacherId",value = "原作业老师id",required = false)
     private  String originTeacherId;
-    @ApiModelProperty(name="type",value = "老师类型(8:批改老师;13:匹配知识点老师)",required = true)
+    @ApiModelProperty(name="type",value = "老师类型(30:批改老师)",required = true)
     private  int type;
 
     public int getType() {

+ 6 - 2
src/main/java/com/ssj/service/kmt/correctsys/service/KmtCorrectSysService.java

@@ -2,6 +2,10 @@ package com.ssj.service.kmt.correctsys.service;
 
 
 import java.util.List;
+import java.util.Map;
+
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 
 import com.ssj.bean.sys.homework.domain.HomeworkPicture;
 import com.ssj.framework.core.util.ResponseEntity;
@@ -62,11 +66,11 @@ public interface KmtCorrectSysService {
     
 
     /**
-     * 查询某个老师的质检作业数据,默认7天的数据
+     * 查询某个老师的质检作业数据,默认150天的数据
      * @param teacherId
      * @return
      */
-    List<HomeworkCheckSubjectDto> findCheckHomeworkList (String teacherId);
+    Page<HomeworkCheckSubjectDto> pageCheckHomeworkList(Map<String, Object> params, Pageable pageable);
 
 
 

+ 1 - 1
src/main/java/com/ssj/service/sys/homework/service/impl/HomeworkPictureCorrectServiceImpl.java

@@ -25,7 +25,7 @@ public class HomeworkPictureCorrectServiceImpl extends BaseServiceImpl<HomeworkP
 
     @Override
     public PagingAndSortingRepository<HomeworkPictureCorrect, String> getDao() {
-        return null;
+        return dao;
     }
 
     @Override