Przeglądaj źródła

美术阅卷10月新增需求

wangliang 5 lat temu
rodzic
commit
01d9ceaf7d

+ 5 - 0
stmms-ms-commons/pom.xml

@@ -41,5 +41,10 @@
             <artifactId>druid</artifactId>
             <version>1.1.16</version>
         </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.1.30</version>
+        </dependency>
     </dependencies>
 </project>

+ 148 - 68
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/MarkLog.java

@@ -1,90 +1,128 @@
 package cn.com.qmth.stmms.ms.core.domain;
 
 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;
 import java.io.Serializable;
 import java.util.Date;
 
 /**
- * @author ting.yin
- * @Description: 操作记录
- * @date 2016年10月21日
+ * @Description: 操作日志 entity
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2019/10/19
  */
 @Entity
+@Table(name = "mark_log")
+@DynamicInsert
+@DynamicUpdate
 public class MarkLog implements Serializable {
 
     private static final long serialVersionUID = -8376036816154911286L;
 
-    @Id
-    @GeneratedValue
+    @NotNull
     private Long id;
-
+    @NotNull
+    private Long createUserId;
+    @NotNull
+    private String createUserName;
+    @NotNull
+    private String createRole;
+    @Enumerated(value = EnumType.STRING)
+    private Subject subject;
+    @NotNull
+    private String examNumber;
+    @NotNull
+    private String studentName;
+    @NotNull
+    @Enumerated(value = EnumType.STRING)
+    private Integer operType;
+    private String operDataBefore;
+    private String operDataAfter;
+    //    @Temporal(value = TemporalType.DATE)
+    @CreatedDate
+    @NotNull
+    private Date createTime;
+    @NotNull
     private Long workId;
-
+    @NotNull
     private Long paperId;
+    @NotNull
+    private String remark;
+    @NotNull
+    @Enumerated(value = EnumType.ORDINAL)
+    private MarkStage stage;
 
-    private Long markerId;
-
-    private String markerName;
+    public MarkLog() {
 
-    @Enumerated(value = EnumType.ORDINAL)
-    private MarkStage markStage;
+    }
 
-    private String remark;
+    public MarkLog(Long createUserId, String createUserName, String createRole,
+                   MarkSubject subject, String examNumber, String studentName,
+                   Integer operType, Long workId, Long paperId, String remark) {
 
-    private String result;
+    }
 
-    @Enumerated(value = EnumType.STRING)
-    private Subject subject;
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
 
-    @Temporal(value = TemporalType.DATE)
-    private Date createdOn;
+    public MarkStage getStage() {
+        return stage;
+    }
 
-    public MarkLog() {
+    public void setStage(MarkStage stage) {
+        this.stage = stage;
     }
 
-    public MarkLog(Long workId, Long paperId, Long markerId, String markerName, MarkStage markStage, String remark,
-                   String result, Subject subject) {
-        this.workId = workId;
-        this.paperId = paperId;
-        this.markerId = markerId;
-        this.markerName = markerName;
-        this.markStage = markStage;
-        this.remark = remark;
-        this.result = result;
-        this.subject = subject;
-        this.createdOn = new Date();
+    @Id
+    @GeneratedValue
+    @Column(name = "id")
+    public Long getId() {
+        return id;
     }
 
-    public static long getSerialVersionUID() {
-        return serialVersionUID;
+    public void setId(Long id) {
+        this.id = id;
     }
 
-    public Long getPaperId() {
-        return paperId;
+    @Basic
+    @Column(name = "create_user_id")
+    public Long getCreateUserId() {
+        return createUserId;
     }
 
-    public void setPaperId(Long paperId) {
-        this.paperId = paperId;
+    public void setCreateUserId(Long createUserId) {
+        this.createUserId = createUserId;
     }
 
-    public Long getMarkerId() {
-        return markerId;
+    @Basic
+    @Column(name = "create_user_name")
+    public String getCreateUserName() {
+        return createUserName;
     }
 
-    public void setMarkerId(Long markerId) {
-        this.markerId = markerId;
+    public void setCreateUserName(String createUserName) {
+        this.createUserName = createUserName;
     }
 
-    public String getMarkerName() {
-        return markerName;
+    @Basic
+    @Column(name = "create_role")
+    public String getCreateRole() {
+        return createRole;
     }
 
-    public void setMarkerName(String markerName) {
-        this.markerName = markerName;
+    public void setCreateRole(String createRole) {
+        this.createRole = createRole;
     }
 
+    @Basic
+    @Column(name = "subject")
     public Subject getSubject() {
         return subject;
     }
@@ -93,51 +131,93 @@ public class MarkLog implements Serializable {
         this.subject = subject;
     }
 
-    public Long getId() {
-        return id;
+    @Basic
+    @Column(name = "exam_number")
+    public String getExamNumber() {
+        return examNumber;
     }
 
-    public void setId(Long id) {
-        this.id = id;
+    public void setExamNumber(String examNumber) {
+        this.examNumber = examNumber;
     }
 
-    public Long getWorkId() {
-        return workId;
+    @Basic
+    @Column(name = "student_name")
+    public String getStudentName() {
+        return studentName;
     }
 
-    public void setWorkId(Long workId) {
-        this.workId = workId;
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
     }
 
-    public MarkStage getMarkStage() {
-        return markStage;
+    @Basic
+    @Column(name = "oper_type")
+    public Integer getOperType() {
+        return operType;
     }
 
-    public void setMarkStage(MarkStage markStage) {
-        this.markStage = markStage;
+    public void setOperType(Integer operType) {
+        this.operType = operType;
     }
 
-    public String getRemark() {
-        return remark;
+    @Basic
+    @Column(name = "oper_data_before")
+    public String getOperDataBefore() {
+        return operDataBefore;
     }
 
-    public void setRemark(String remark) {
-        this.remark = remark;
+    public void setOperDataBefore(String operDataBefore) {
+        this.operDataBefore = operDataBefore;
+    }
+
+    @Basic
+    @Column(name = "oper_data_after")
+    public String getOperDataAfter() {
+        return operDataAfter;
     }
 
-    public Date getCreatedOn() {
-        return createdOn;
+    public void setOperDataAfter(String operDataAfter) {
+        this.operDataAfter = operDataAfter;
     }
 
-    public void setCreatedOn(Date createdOn) {
-        this.createdOn = createdOn;
+    @Basic
+    @Column(name = "create_time")
+    public Date getCreateTime() {
+        return createTime;
     }
 
-    public String getResult() {
-        return result;
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    @Basic
+    @Column(name = "work_id")
+    public Long getWorkId() {
+        return workId;
     }
 
-    public void setResult(String result) {
-        this.result = result;
+    public void setWorkId(Long workId) {
+        this.workId = workId;
+    }
+
+    @Basic
+    @Column(name = "paper_id")
+    public Long getPaperId() {
+        return paperId;
+    }
+
+    public void setPaperId(Long paperId) {
+        this.paperId = paperId;
+    }
+
+    @Basic
+    @Column(name = "remark")
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
     }
 }

+ 128 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/MarkLogOperType.java

@@ -0,0 +1,128 @@
+package cn.com.qmth.stmms.ms.core.domain;
+
+/**
+ * @Description: 操作日志类型
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2019/10/19
+ */
+public enum MarkLogOperType {
+
+    /**
+     * 分档
+     */
+    LEVEL(1, "分档"),
+
+    /**
+     * 打分
+     */
+    SCORE(2, "打分"),
+
+    /**
+     * 回评档位
+     */
+    ONCE_LEVEl(3, "回评档位"),
+
+    /**
+     * 回评分数
+     */
+    ONCE_SCORE(4, "回评分数"),
+
+    /**
+     * 回评档位
+     */
+    CALLBACK_LEVEl(5, "档位打回"),
+
+    /**
+     * 回评分数
+     */
+    CALLBACK_SCORE(6, "档位打回回评"),
+
+    /**
+     * 一键定档
+     */
+    ONE_CLICK_LEVEl(7, "一键定档"),
+
+    /**
+     * 标准卷设置
+     */
+    CRITERION_PAPER_SET(8, "标准卷设置");
+
+    private int id;
+
+    private String name;
+
+    private MarkLogOperType(int id, String name) {
+        this.id = id;
+        this.name = name;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * 状态转换 toId
+     *
+     * @param value
+     * @return
+     */
+    public static int convertToId(String value) {
+        if (value.trim().equals(LEVEL.name)) {
+            return LEVEL.getId();
+        } else if (value.trim().equals(SCORE.name)) {
+            return SCORE.getId();
+        } else if (value.trim().equals(ONCE_LEVEl.name)) {
+            return ONCE_LEVEl.getId();
+        } else if (value.trim().equals(ONCE_SCORE.name)) {
+            return ONCE_SCORE.getId();
+        } else if (value.trim().equals(CALLBACK_LEVEl.name)) {
+            return CALLBACK_LEVEl.getId();
+        } else if (value.trim().equals(CALLBACK_SCORE.name)) {
+            return CALLBACK_SCORE.getId();
+        } else if (value.trim().equals(ONE_CLICK_LEVEl.name)) {
+            return ONE_CLICK_LEVEl.getId();
+        } else {
+            return CRITERION_PAPER_SET.getId();
+        }
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param id
+     * @return
+     */
+    public static String convertToName(int id) {
+        if (id == LEVEL.getId()) {
+            return LEVEL.name;
+        } else if (id == SCORE.getId()) {
+            return SCORE.name;
+        } else if (id == ONCE_LEVEl.getId()) {
+            return ONCE_LEVEl.name;
+        } else if (id == ONCE_SCORE.getId()) {
+            return ONCE_SCORE.name;
+        } else if (id == CALLBACK_LEVEl.getId()) {
+            return CALLBACK_LEVEl.name;
+        } else if (id == CALLBACK_SCORE.getId()) {
+            return CALLBACK_SCORE.name;
+        } else if (id == ONE_CLICK_LEVEl.getId()) {
+            return ONE_CLICK_LEVEl.name;
+        } else {
+            return CRITERION_PAPER_SET.name;
+        }
+    }
+}

+ 94 - 97
stmms-ms-log/src/main/java/cn/com/qmth/stmms/ms/log/MarkLogAop.java

@@ -1,132 +1,129 @@
 package cn.com.qmth.stmms.ms.log;
 
-import java.util.HashMap;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import cn.com.qmth.stmms.ms.accesscontrol.config.LoginConfig;
-import cn.com.qmth.stmms.ms.core.domain.user.AbstractUser;
-import cn.com.qmth.stmms.ms.core.domain.user.Admin;
-
+import cn.com.qmth.stmms.ms.core.domain.MarkLog;
+import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
+import cn.com.qmth.stmms.ms.core.repository.MarkLogRepo;
+import com.alibaba.fastjson.JSONObject;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.AfterReturning;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
-import org.springframework.util.StringUtils;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
-import cn.com.qmth.stmms.ms.core.domain.MarkLog;
-import cn.com.qmth.stmms.ms.core.domain.MarkStage;
-import cn.com.qmth.stmms.ms.core.domain.Paper;
-import cn.com.qmth.stmms.ms.core.domain.task.MarkTask;
-import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
-import cn.com.qmth.stmms.ms.core.repository.MarkLogRepo;
-import cn.com.qmth.stmms.ms.core.repository.MarkUserRepo;
-import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.util.Objects;
 
 /**
- * 
- * @Description: 操作记录
- * @author ting.yin
- * @date 2016年10月24日
+ * @Description: 纪检审查aop
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2019/10/19
  */
 @Aspect
 @Component
 public class MarkLogAop {
 
-	private static Logger logger = LoggerFactory.getLogger(MarkLogAop.class);
+    private static Logger LOGGER = LoggerFactory.getLogger(MarkLogAop.class);
 
-	@Autowired
-	private MarkLogRepo markLogRepo;
-
-	@Autowired
-	private MarkUserRepo markUserRepo;
-
-	@Autowired
-	private PaperRepo paperRepo;
-	
     @Autowired
-    private LoginConfig loginConfig;
+    private MarkLogRepo markLogRepo;
+
+//    @Autowired
+//    private MarkUserRepo markUserRepo;
+//
+//    @Autowired
+//    private PaperRepo paperRepo;
+//
+//    @Autowired
+//    private LoginConfig loginConfig;
 
     /**
-     * 评卷员切入点
+     * 分档切入点
      */
-	@Pointcut("execution(* cn.com.qmth.stmms.ms.marking.api.MarkTaskApi.marking(..))")
-	public void getTask() {
-	}
+    @Pointcut("execution(* cn.com.qmth.stmms.ms.marking.api.MarkTaskApi.marking(..))")
+    public void getMarkAspect() {
+    }
 
     /**
      * 评卷员切入方法
+     *
      * @param joinPoint
      */
-	@AfterReturning(pointcut = "getTask()")
-	public void afterMarkPoint(JoinPoint joinPoint) {
-//		MarkTask markTask = (MarkTask) joinPoint.getArgs()[0];
-//		MarkUser markUser = markUserRepo.findOne(markTask.getMarkerId());
-//		MarkLog markLog = new MarkLog(markTask.getWorkId(),
-//									markTask.getStage(),
-//									markUser.getLoginName(),
-//									markUser.getName(),
-//									markTask.getPaper().getExamNumber(),
-//									markTask.getPaper().getSecretNumber(),
-//									markTask.getResult());
-//		markLogRepo.save(markLog);
-//		String info = markUser.getLoginName() + ":" + markUser.getName() + ":" + markTask.getSubject() +
-//				":" + markTask.getPaper().getId() + ":" + markTask.getResult();
-//		logger.info(info);
-	}
+    @AfterReturning(value = "getMarkAspect()", returning = "result")
+    public void afterReturnMarkPoint(JoinPoint joinPoint, Object result) throws Exception {
+        String className = joinPoint.getSignature().getDeclaringTypeName();
+        String methodName = joinPoint.getSignature().getName();
+        LOGGER.info("mark aspect afterReturnMarkPoint path:{}", className + "." + methodName);
+        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        HttpServletRequest request = attributes.getRequest();
+        HttpSession session = request.getSession();
+        String token = (String) session.getAttribute("token");
+        if (Objects.isNull(token)) {
+            throw new Exception("请先登录");
+        }
+        MarkUser markUser = (MarkUser) session.getAttribute("markUser");
+        LOGGER.info("markUser:{}", JSONObject.toJSONString(markUser));
+        Object[] args = joinPoint.getArgs(); // 参数值
+        String[] argNames = ((MethodSignature) joinPoint.getSignature()).getParameterNames();//参数名
+        JSONObject jsonObject = JSONObject.parseObject(args.toString());
+        LOGGER.info("args:{},argNames:{}", jsonObject, JSONObject.toJSONString(argNames));
+        MarkLog markLog = new MarkLog();
+        markLogRepo.save(markLog);
+    }
 
-	/**
 
-	@Pointcut("execution(* cn.com.qmth.stmms.ms.marking.api.PaperApi.marking(..))")
-	public void getPaper() {
-	}
+    /**
 
-	@AfterReturning(pointcut = "getPaper()")
-	@SuppressWarnings("unchecked")
-	public void afterLevelMarkPaperPoint(JoinPoint joinPoint) {
-		Paper paper = (Paper) joinPoint.getArgs()[0];
-		HashMap<String,String> body =  (HashMap<String, String>) joinPoint.getArgs()[1];
-		String level = body.get("level");
-		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
-				.getRequestAttributes()).getRequest();
-		HttpSession session = request.getSession();
-		String token = (String) session.getAttribute("token");
-		if (!StringUtils.isEmpty(token)) {
-			String loginName = token.substring(14);
-			AbstractUser user = null;
-			if(loginConfig.getLoginName().equals(loginName)){
-				user = new Admin(loginConfig.getLoginName(),loginConfig.getPassword());
-				user.setName("系统管理员");
-			}
-			else{
-				user = markUserRepo.findByLoginName(loginName);
-			}
-			MarkLog markLog = new MarkLog(paper.getWorkId(),
-					MarkStage.LEVEL,
-					user.getLoginName(),
-					user.getName(),
-					paper.getExamNumber(), 
-					paper.getSecretNumber(), 
-					level);
-			markLogRepo.save(markLog);
-		}else{
-			MarkLog markLog = new MarkLog(paper.getWorkId(), 
-					MarkStage.LEVEL,
-					null, 
-					"科组长", 
-					paper.getExamNumber(), 
-					paper.getSecretNumber(), 
-					level);
-			markLogRepo.save(markLog);
-		}
-	}
-	**/
+     @Pointcut("execution(* cn.com.qmth.stmms.ms.marking.api.PaperApi.marking(..))")
+     public void getPaper() {
+     }
+
+     @AfterReturning(pointcut = "getPaper()")
+     @SuppressWarnings("unchecked") public void afterLevelMarkPaperPoint(JoinPoint joinPoint) {
+     Paper paper = (Paper) joinPoint.getArgs()[0];
+     HashMap<String,String> body =  (HashMap<String, String>) joinPoint.getArgs()[1];
+     String level = body.get("level");
+     HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
+     .getRequestAttributes()).getRequest();
+     HttpSession session = request.getSession();
+     String token = (String) session.getAttribute("token");
+     if (!StringUtils.isEmpty(token)) {
+     String loginName = token.substring(14);
+     AbstractUser user = null;
+     if(loginConfig.getLoginName().equals(loginName)){
+     user = new Admin(loginConfig.getLoginName(),loginConfig.getPassword());
+     user.setName("系统管理员");
+     }
+     else{
+     user = markUserRepo.findByLoginName(loginName);
+     }
+     MarkLog markLog = new MarkLog(paper.getWorkId(),
+     MarkStage.LEVEL,
+     user.getLoginName(),
+     user.getName(),
+     paper.getExamNumber(),
+     paper.getSecretNumber(),
+     level);
+     markLogRepo.save(markLog);
+     }else{
+     MarkLog markLog = new MarkLog(paper.getWorkId(),
+     MarkStage.LEVEL,
+     null,
+     "科组长",
+     paper.getExamNumber(),
+     paper.getSecretNumber(),
+     level);
+     markLogRepo.save(markLog);
+     }
+     }
+     **/
 
 }

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

@@ -33,6 +33,10 @@ app.admin.password=123456
 app.client.loginName=client-cy
 #采集端-超级管理员密码
 app.client.password=123456
+#纪检角色账号
+app.inspection.loginName=inspection-cy
+#纪检角色密码
+app.inspection.password=123456
 
 sys.config.imageDir=/Users/king/Downloads/meishu/images
 sys.config.thumbDir=/Users/king/Downloads/meishu/thumbs
@@ -47,7 +51,7 @@ sys.config.imageServer.ip=localhost
 
 
 #\u524d\u7aef\u9759\u6001\u8d44\u6e90\u76ee\u5f55
-web.upload-path=/Users/king/git/MS/static/
+web.upload-path=/Users/king/stmms-ms/static/
 spring.mvc.static-path-pattern=/**
 spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${web.upload-path}
 

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

@@ -1,4 +1,4 @@
-#spring.profiles.active=dev
+spring.profiles.active=dev
 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/stmms-ms-2?useUnicode=true&characterEncoding=UTF-8
 spring.datasource.username=root
 spring.datasource.password=root