Преглед на файлове

美术阅卷10月新增需求

wangliang преди 5 години
родител
ревизия
f77ef98431

+ 22 - 13
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/MarkLog.java

@@ -1,9 +1,9 @@
 package cn.com.qmth.stmms.ms.core.domain;
 
+import cn.com.qmth.stmms.ms.core.domain.user.Role;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
 import org.hibernate.annotations.DynamicInsert;
 import org.hibernate.annotations.DynamicUpdate;
-import org.springframework.data.annotation.CreatedDate;
 
 import javax.persistence.*;
 import javax.validation.constraints.NotNull;
@@ -25,7 +25,6 @@ public class MarkLog implements Serializable {
 
     private static final long serialVersionUID = -8376036816154911286L;
 
-    @NotNull
     private Long id;
     @NotNull
     private Long createUserId;
@@ -33,8 +32,7 @@ public class MarkLog implements Serializable {
     private String createUserName;
     @NotNull
     private String createRole;
-    @Enumerated(value = EnumType.STRING)
-    private Subject subject;
+    private String subject;
     @NotNull
     private String examNumber;
     @NotNull
@@ -44,15 +42,13 @@ public class MarkLog implements Serializable {
     private Integer operType;
     private String operDataBefore;
     private String operDataAfter;
-    //    @Temporal(value = TemporalType.DATE)
-    @CreatedDate
+    @Temporal(value = TemporalType.DATE)
     @NotNull
     private Date createTime;
     @NotNull
     private Long workId;
     @NotNull
     private Long paperId;
-    @NotNull
     private String remark;
     @NotNull
     @Enumerated(value = EnumType.ORDINAL)
@@ -62,10 +58,23 @@ public class MarkLog implements Serializable {
 
     }
 
-    public MarkLog(Long createUserId, String createUserName, String createRole,
-                   MarkSubject subject, String examNumber, String studentName,
-                   Integer operType, Long workId, Long paperId, String remark) {
-
+    public MarkLog(Long createUserId, String createUserName, Role createRole,
+                   Subject subject, String examNumber, String studentName,
+                   Integer operType, Long workId, Long paperId, MarkStage stage, String operDataBefore, String operDataAfter, String remark) {
+        this.createUserId = createUserId;
+        this.createUserName = createUserName;
+        this.createRole = createRole.getName();
+        this.subject = subject.toString();
+        this.examNumber = examNumber;
+        this.studentName = studentName;
+        this.operType = operType;
+        this.workId = workId;
+        this.paperId = paperId;
+        this.stage = stage;
+        this.operDataAfter = operDataAfter;
+        this.operDataBefore = operDataBefore;
+        this.remark = remark;
+        this.createTime = new Date();
     }
 
     public static long getSerialVersionUID() {
@@ -123,11 +132,11 @@ public class MarkLog implements Serializable {
 
     @Basic
     @Column(name = "subject")
-    public Subject getSubject() {
+    public String getSubject() {
         return subject;
     }
 
-    public void setSubject(Subject subject) {
+    public void setSubject(String subject) {
         this.subject = subject;
     }
 

+ 4 - 3
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkLogRepo.java

@@ -1,12 +1,13 @@
 package cn.com.qmth.stmms.ms.core.repository;
 
-import org.springframework.data.jpa.repository.JpaRepository;
-
 import cn.com.qmth.stmms.ms.core.domain.MarkLog;
+import org.springframework.data.jpa.repository.JpaRepository;
 
 /**
  * @author ting.yin
  * @date 2016年10月21日
  */
-public interface MarkLogRepo extends JpaRepository<MarkLog,Long>{
+public interface MarkLogRepo extends JpaRepository<MarkLog, Long> {
+
+    public MarkLog findTopByCreateUserIdAndOperTypeOrderByCreateTimeDesc(Long createUserId, Integer operType);
 }

+ 16 - 4
stmms-ms-log/src/main/java/cn/com/qmth/stmms/ms/log/MarkLogAop.java

@@ -1,6 +1,8 @@
 package cn.com.qmth.stmms.ms.log;
 
 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.MarkStage;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.repository.MarkLogRepo;
 import com.alibaba.fastjson.JSONArray;
@@ -19,8 +21,8 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
-import java.util.Arrays;
 import java.util.Objects;
+import java.util.Optional;
 
 /**
  * @Description: 纪检审查aop
@@ -29,8 +31,8 @@ import java.util.Objects;
  * @Author: wangliang
  * @Date: 2019/10/19
  */
-@Aspect
-@Component
+//@Aspect
+//@Component
 public class MarkLogAop {
 
     private static Logger LOGGER = LoggerFactory.getLogger(MarkLogAop.class);
@@ -78,7 +80,17 @@ public class MarkLogAop {
         JSONArray jsonArgsArray = JSONObject.parseArray(JSONObject.toJSONString(args));
         JSONArray jsonArgNamesArray = JSONObject.parseArray(JSONObject.toJSONString(argNames));
         LOGGER.info("jsonArgsArray:{},jsonArgNamesArray:{}", jsonArgsArray, jsonArgNamesArray);
-        MarkLog markLog = new MarkLog();
+        JSONObject jsonObject = (JSONObject) jsonArgsArray.get(0);
+        JSONObject jsonObjectPaper = (JSONObject) jsonObject.get("paper");
+        JSONObject jsonObjectResult = (JSONObject) jsonArgsArray.get(1);
+        LOGGER.info("jsonObject:{},jsonObjectPaper:{},jsonObjectResult:{}", jsonObject, jsonObjectPaper, jsonObjectResult);
+        MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeOrderByCreateTimeDesc(markUser.getId(), MarkLogOperType.LEVEL.getId());
+        String operResult = "-";
+        if (Objects.nonNull(markLogPrev)) {
+            operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
+        }
+        MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), String.valueOf(jsonObjectPaper.get("examNumber")), String.valueOf(jsonObjectPaper.get("studentName")), MarkLogOperType.LEVEL.getId(), Long.parseLong(String.valueOf(jsonObject.get("workId"))), Long.parseLong(String.valueOf(jsonObjectPaper.get("id"))), MarkStage.valueOf(String.valueOf(jsonObjectResult.get("stage"))), operResult, String.valueOf(jsonObjectResult.get("result")), null);
+        LOGGER.info("markLog:{}", JSONObject.toJSONString(markLog));
         markLogRepo.save(markLog);
     }