瀏覽代碼

采集日志调用修改

xiaof 5 年之前
父節點
當前提交
32512d1f2d

+ 1 - 1
stmms-ms-accesscontrol/src/main/java/cn/com/qmth/stmms/ms/accesscontrol/config/AccessConfig.java

@@ -32,6 +32,6 @@ public class AccessConfig extends WebMvcConfigurerAdapter {
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor( loginInterceptor()).addPathPatterns("/api/**").excludePathPatterns("/api/admin/users/login",
-                "/api/user/login","/api/user/getClientUser","/api/exam/students","/api/upload/student/*","/api/file/image/**","/api/file/ms-slice/**","/api/subject/collect-config","/api/file/ms-sheet/**");
+                "/api/user/login","/api/user/getClientUser","/api/exam/students","/api/upload/student/*","/api/file/image/**","/api/marklog/saveCollectLog","/api/file/ms-slice/**","/api/subject/collect-config","/api/file/ms-sheet/**");
     }
 }

+ 3 - 1
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/WorkApi.java

@@ -8,6 +8,7 @@ import cn.com.qmth.stmms.ms.core.domain.Level;
 import cn.com.qmth.stmms.ms.core.domain.Work;
 import cn.com.qmth.stmms.ms.core.repository.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -48,7 +49,8 @@ public class WorkApi {
      */
     @RequestMapping(method = RequestMethod.GET)
     public List<Work> list() {
-        return workRepo.findAll();
+        Sort sort = new Sort(Sort.Direction.DESC, "id");
+        return workRepo.findAll(sort);
     }
 
     /**

+ 5 - 0
stmms-ms-collect/src/main/java/cn/com/qmth/stmms/ms/collect/api/CollectApi.java

@@ -10,6 +10,7 @@ import cn.com.qmth.stmms.ms.commons.config.ImageConfig;
 import cn.com.qmth.stmms.ms.commons.config.SystemConfig;
 import cn.com.qmth.stmms.ms.commons.constant.SystemConstant;
 import cn.com.qmth.stmms.ms.commons.utils.MD5Util;
+import cn.com.qmth.stmms.ms.commons.utils.RandomUtil;
 import cn.com.qmth.stmms.ms.commons.utils.image.ImageCompression;
 import cn.com.qmth.stmms.ms.core.domain.MarkSubject;
 import cn.com.qmth.stmms.ms.core.domain.Student;
@@ -113,6 +114,10 @@ public class CollectApi {
         });
         loginDTO.setSubjects(collectSubjectDTOs);
 //        }
+        //采集用户登录,生成随机数
+        if(Objects.equals(Role.COLLECTOR, markUser.getRole())){
+            RandomUtil.getRandom(activeWork.getId(), false);
+        }
         return loginDTO;
     }
 

+ 2 - 2
stmms-ms-log/src/main/java/cn/com/qmth/stmms/ms/log/aop/MarkLogAop.java

@@ -256,13 +256,13 @@ public class MarkLogAop {
     }
 
     /**
-     * 采集切入
+     * 采集切入(废弃)
      *
      * @param joinPoint
      * @param result
      * @throws Exception
      */
-    @AfterReturning(value = "collectAspect()", returning = RESULT)
+//    @AfterReturning(value = "collectAspect()", returning = RESULT)
     public void afterReturnCollectPoint(JoinPoint joinPoint, Object result) throws Exception {
         //参数
         Object[] paramValues = joinPoint.getArgs();

+ 80 - 14
stmms-ms-log/src/main/java/cn/com/qmth/stmms/ms/log/controller/MarkLogController.java

@@ -1,28 +1,32 @@
 package cn.com.qmth.stmms.ms.log.controller;
 
 import cn.com.qmth.stmms.ms.commons.utils.specification.PagingAndSortingDTO;
-import cn.com.qmth.stmms.ms.core.domain.MarkLog;
-import cn.com.qmth.stmms.ms.core.domain.MarkLogOperType;
+import cn.com.qmth.stmms.ms.core.domain.*;
+import cn.com.qmth.stmms.ms.core.domain.user.Role;
 import cn.com.qmth.stmms.ms.core.repository.MarkLogRepo;
-//import io.swagger.annotations.Api;
-//import io.swagger.annotations.ApiOperation;
-//import io.swagger.annotations.ApiParam;
+import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
+import cn.com.qmth.stmms.ms.core.repository.WorkRepo;
+import cn.com.qmth.stmms.ms.core.vo.Subject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.persistence.criteria.Predicate;
+import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import io.swagger.annotations.ApiParam;
+
 //@Api(tags = "纪检审计接口controller")
 @RestController
 @RequestMapping("api/marklog")
@@ -31,13 +35,19 @@ public class MarkLogController {
     @Autowired
     MarkLogRepo markLogRepo;
 
-//    @ApiOperation(value = "纪检审计查询接口")
+    @Autowired
+    PaperRepo paperRepo;
+
+    @Autowired
+    WorkRepo workRepo;
+
+    //    @ApiOperation(value = "纪检审计查询接口")
     @GetMapping("/selectMarkLog")
     public PagingAndSortingDTO selectMarkLog(
 //            @ApiParam(value = "科目", required = false)
-                                                 @RequestParam(required = false) String subject,
+            @RequestParam(required = false) String subject,
 //                                             @ApiParam(value = "准考证号", required = false)
-                                             @RequestParam(required = false) Long examNumber,
+            @RequestParam(required = false) Long examNumber,
 //                                             @ApiParam(value = "学生姓名", required = false)
             @RequestParam(required = false) String studentName,
 //                                             @ApiParam(value = "操作类型(1:分档,2:打分,3:回评档位,4:回评分数,5:档位打回,6:档位打回回评,7:一键定档,8:标准卷设置)", required = false)
@@ -47,8 +57,8 @@ public class MarkLogController {
 //                                             @ApiParam(value = "结束时间", required = false)
             @RequestParam(required = false) String endTime,
             @RequestParam(required = false) Long workId,
-                                             @RequestParam Integer curPage,
-                                             @RequestParam Integer pageSize) {
+            @RequestParam Integer curPage,
+            @RequestParam Integer pageSize) {
         Pageable pageable = new PageRequest(curPage, pageSize, Sort.Direction.DESC, "createTime");
         Specification<MarkLog> specification = (root, query, cb) -> {
             List<Predicate> predicates = new ArrayList<>();
@@ -84,6 +94,7 @@ public class MarkLogController {
 
     /**
      * 采集日志
+     *
      * @param subject
      * @param examNumber
      * @param studentName
@@ -139,4 +150,59 @@ public class MarkLogController {
         return new PagingAndSortingDTO(result.getNumber(), result.getSize(), result.getTotalPages(),
                 result.getTotalElements(), result.getContent());
     }
+
+    /**
+     * 采集成功记录日志
+     *
+     * @param workId
+     * @param request
+     * @return
+     * @throws ParseException
+     */
+    @RequestMapping(value = "/saveCollectLog", method = RequestMethod.POST)
+    public Object saveCollectLog(Long workId, HttpServletRequest request) throws ParseException {
+        //取采集用户id
+        Long clientUserId = Long.valueOf(request.getParameter("clientUserId"));
+        //取采集用户名称
+        String clientUsername = request.getParameter("clientUsername");
+        //学生信息
+        String name = request.getParameter("name");
+        //科目信息
+        Integer subjectId = Integer.valueOf(request.getParameter("subjectId"));
+        //准考证号
+        String examNumber = request.getParameter("examNumber");
+        //试卷信息
+        List<Paper> paperList = paperRepo.findByWorkIdAndExamNumber(workId, examNumber);
+        Paper paper = paperList.get(0);
+
+        Integer operType = MarkLogOperType.COLLECT.getId();
+        Subject subject = Subject.values()[subjectId - 1];
+
+        Work work = workRepo.findOne(workId);
+
+        MarkLog markLog = new MarkLog();
+        markLog.setCreateUserId(clientUserId);
+        markLog.setCreateUserName(clientUsername);
+        markLog.setCreateRole(Role.COLLECTOR.getName());
+        markLog.setSubject(subject.toString());
+        markLog.setExamNumber(examNumber);
+        markLog.setStudentName(name);
+        markLog.setOperType(operType);
+        markLog.setWorkId(workId);
+        markLog.setWorkName(work.getName());
+        markLog.setPaperId(paper.getId());
+        markLog.setStage(MarkStage.INIT);
+        //识别方式
+        String manual = request.getParameter("manual");
+        markLog.setRemark("0".equals(manual) ? "正常扫描" : "1".equals(manual) ? "手工绑定" : null);
+        //操作时间
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String time = request.getParameter("time");
+        markLog.setCreateTime(formatter.parse(time));
+        //登录时间
+        String clientUserLoginTime = request.getParameter("clientUserLoginTime");
+        markLog.setLoginTime(formatter.parse(clientUserLoginTime));
+        //退出时间(没有退出时间)
+        return markLogRepo.saveAndFlush(markLog);
+    }
 }