Explorar o código

川音需求版本1

YuanPan %!s(int64=7) %!d(string=hai) anos
pai
achega
4f4654bb8a

+ 6 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/InspectTaskRepo.java

@@ -1,10 +1,13 @@
 package cn.com.qmth.stmms.ms.core.repository;
 
 import cn.com.qmth.stmms.ms.core.domain.InspectTask;
+import cn.com.qmth.stmms.ms.core.domain.Paper;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.CrudRepository;
 import org.springframework.stereotype.Repository;
 
+import java.math.BigInteger;
 import java.util.List;
 
 /**
@@ -22,4 +25,7 @@ public interface InspectTaskRepo extends CrudRepository<InspectTask, Long>, JpaS
     List<InspectTask> findByInspectRangeId(Long inspectRangeId);
 
     List<InspectTask> findByPaperId(Long paperId);
+
+    @Query(value = "select t.paper_id from inspect_task t where t.inspect_range_id = ?1 group by t.paper_id", nativeQuery = true)
+    List<BigInteger> findPaperIdsByInspectRangeId(Long inspectRangeId);
 }

+ 1 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/PaperRepo.java

@@ -137,4 +137,5 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     void markInspectRange(Long inspectRange, List<String> examNumbers);
 
 //    List<Paper> findByWorkIdAndSubjectAndInspectRange(Long workId, Subject subject, Long inspectRange);
+
 }

+ 1 - 1
stmms-ms-main/src/main/resources/application-dev.properties

@@ -23,7 +23,7 @@ logging.file=./logs/sys.log
 logging.level.org.springframework=ERROR
 logging.level.org.hibernate=ERROR
 
-spring.jpa.show-sql=false
+spring.jpa.show-sql=true
 spring.jpa.hibernate.ddl-auto=update
 
 

+ 0 - 26
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/InspectApi.java

@@ -1,26 +0,0 @@
-package cn.com.qmth.stmms.ms.marking.api;
-
-import cn.com.qmth.stmms.ms.core.domain.InspectRange;
-import cn.com.qmth.stmms.ms.core.domain.InspectTask;
-import cn.com.qmth.stmms.ms.core.domain.Level;
-import cn.com.qmth.stmms.ms.core.domain.Paper;
-import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
-import cn.com.qmth.stmms.ms.core.repository.*;
-import cn.com.qmth.stmms.ms.core.vo.Subject;
-import cn.com.qmth.stmms.ms.marking.assembler.PaperAssembler;
-import cn.com.qmth.stmms.ms.marking.dto.PaperDTO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * Created by yuanpan on 2017/11/6.
- */
-@RestController
-@RequestMapping("api/inspect")
-public class InspectApi {
-
-
-}

+ 59 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/InspectProgressApi.java

@@ -0,0 +1,59 @@
+package cn.com.qmth.stmms.ms.marking.api;
+
+import cn.com.qmth.stmms.ms.core.domain.Paper;
+import cn.com.qmth.stmms.ms.core.repository.*;
+import cn.com.qmth.stmms.ms.core.vo.Subject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.math.BigInteger;
+import java.util.*;
+
+/**
+ * Created by yuanpan on 2017/11/6.
+ */
+@RestController
+@RequestMapping("api/inspect-progress")
+public class InspectProgressApi {
+
+    @Autowired
+    private InspectTaskRepo inspectTaskRepo;
+
+    @Autowired
+    private PaperRepo paperRepo;
+
+
+    @GetMapping("/papers")
+    List<Paper> papers(@RequestParam(value = "rangeId") final Long rangeId, @RequestParam(value = "subject", required = false) final String subject) {
+
+        List<BigInteger> paperIds = inspectTaskRepo.findPaperIdsByInspectRangeId(rangeId);
+
+        return paperRepo.findAll((root, query, cb) -> {
+
+            List<Predicate> predicateList = new ArrayList<>();
+
+//            CriteriaBuilder.In<BigInteger> in = cb.in(root.get("id"));
+//            for (BigInteger pId : paperIds) {
+//                in.value(pId);
+//            }
+//            predicateList.add(in);
+
+            predicateList.add(root.get("id").in(paperIds));
+            if (!StringUtils.isEmpty(subject)) {
+                predicateList.add(cb.equal(root.get("subject"), Subject.valueOf(subject)));
+            }
+
+            Predicate[] predicates = new Predicate[predicateList.size()];
+            return query.where(predicateList.toArray(predicates)).getRestriction();
+        });
+
+
+    }
+
+}

+ 7 - 1
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/InspectTaskController.java

@@ -4,6 +4,7 @@ import cn.com.qmth.stmms.ms.core.domain.InspectRange;
 import cn.com.qmth.stmms.ms.core.domain.InspectTask;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.repository.*;
+import cn.com.qmth.stmms.ms.core.vo.Subject;
 import cn.com.qmth.stmms.ms.marking.service.InspectService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.jpa.domain.Specification;
@@ -37,7 +38,7 @@ public class InspectTaskController {
     private InspectService inspectService;
 
     @GetMapping
-    public List<InspectTask> list(@RequestParam(value = "rangeId") Long rangeId, @RequestParam(value = "markerId", required = false) Long markerId) {
+    public List<InspectTask> list(@RequestParam(value = "rangeId") Long rangeId, @RequestParam(value = "markerId", required = false) Long markerId, @RequestParam(value = "subject", required = false) String subject) {
 
         return inspectTaskRepo.findAll((root, query, cb) -> {
 
@@ -51,6 +52,10 @@ public class InspectTaskController {
                 predicates.add(cb.equal(root.get("markerId"), markerId));
             }
 
+            if (!StringUtils.isEmpty(subject)) {
+                predicates.add(cb.equal(root.get("subject"), Subject.valueOf(subject)));
+            }
+
             Predicate[] pre = new Predicate[predicates.size()];
             return query.where(predicates.toArray(pre)).getRestriction();
         });
@@ -100,6 +105,7 @@ public class InspectTaskController {
         inspectTask.setLevel(level);
         inspectTask.setScore(score);
         inspectTask.setMarkerName(inspector.getName());
+        inspectTask.setUpdatedOn(new Date());
 
         inspectService.inspect(inspectTask);
     }

+ 28 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/LevelApi.java

@@ -0,0 +1,28 @@
+package cn.com.qmth.stmms.ms.marking.api;
+
+import cn.com.qmth.stmms.ms.core.domain.Level;
+import cn.com.qmth.stmms.ms.core.repository.LevelRepo;
+import org.springframework.beans.factory.annotation.Autowired;
+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 java.util.List;
+
+/**
+ * Created by yuanpan on 2017/11/23.
+ */
+@RestController
+@RequestMapping("/api/level")
+public class LevelApi {
+
+    @Autowired
+    private LevelRepo levelRepo;
+
+    @GetMapping
+    public List<Level> list(@RequestParam("workId") Long workId) {
+
+        return levelRepo.findByWorkId(workId);
+    }
+}