diff --git a/cloud/weigeng/libs/sqljdbc4-4.2-6.jar b/cloud/weigeng/libs/sqljdbc4-4.2-6.jar
new file mode 100644
index 0000000..d33695c
Binary files /dev/null and b/cloud/weigeng/libs/sqljdbc4-4.2-6.jar differ
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/AuthService.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/AuthService.java
new file mode 100644
index 0000000..36ae7cb
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/AuthService.java
@@ -0,0 +1,86 @@
+package com.sincere.weigeng;
+
+import org.json.JSONObject;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 获取token类
+ */
+public class AuthService {
+    //设置APPID/AK/SK
+    public static final String APP_ID = "15990462";
+    public static final String API_KEY = "t70Rzr6SGmfU9S6MrqAkspsY";
+    public static final String SECRET_KEY = "nSqpqtrf7cCjo8vOB9knL85nwWNoxwvS ";
+    /**
+     * 获取权限token
+     * @return 返回示例:
+     * {
+     * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
+     * "expires_in": 2592000
+     * }
+     */
+    public static String getAuth() {
+        // 官网获取的 API Key 更新为你注册的
+        String clientId = "t70Rzr6SGmfU9S6MrqAkspsY";
+        // 官网获取的 Secret Key 更新为你注册的
+        String clientSecret = "nSqpqtrf7cCjo8vOB9knL85nwWNoxwvS";
+        return getAuth(clientId, clientSecret);
+    }
+
+    /**
+     * 获取API访问token
+     * 该token有一定的有效期,需要自行管理,当失效时需重新获取.
+     * @param ak - 百度云官网获取的 API Key
+     * @param sk - 百度云官网获取的 Securet Key
+     * @return assess_token 示例:
+     * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"
+     */
+    public static String getAuth(String ak, String sk) {
+        // 获取token地址
+        String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
+        String getAccessTokenUrl = authHost
+                // 1. grant_type为固定参数
+                + "grant_type=client_credentials"
+                // 2. 官网获取的 API Key
+                + "&client_id=" + ak
+                // 3. 官网获取的 Secret Key
+                + "&client_secret=" + sk;
+        try {
+            URL realUrl = new URL(getAccessTokenUrl);
+            // 打开和URL之间的连接
+            HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
+            connection.setRequestMethod("GET");
+            connection.connect();
+            // 获取所有响应头字段
+            Map<String, List<String>> map = connection.getHeaderFields();
+            // 遍历所有的响应头字段
+            for (String key : map.keySet()) {
+                System.err.println(key + "--->" + map.get(key));
+            }
+            // 定义 BufferedReader输入流来读取URL的响应
+            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+            String result = "";
+            String line;
+            while ((line = in.readLine()) != null) {
+                result += line;
+            }
+            /**
+             * 返回结果示例
+             */
+            System.err.println("result:" + result);
+            JSONObject jsonObject = new JSONObject(result);
+            String access_token = jsonObject.getString("access_token");
+            return access_token;
+        } catch (Exception e) {
+            System.err.printf("获取token失败!");
+            e.printStackTrace(System.err);
+        }
+        return null;
+    }
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/HomeBean.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/HomeBean.java
new file mode 100644
index 0000000..3409099
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/HomeBean.java
@@ -0,0 +1,33 @@
+package com.sincere.weigeng;
+
+public class HomeBean {
+
+    private String CreatorUserId;
+
+    private String Title;
+
+
+    public String getCreatorUserId() {
+        return CreatorUserId;
+    }
+
+    public void setCreatorUserId(String creatorUserId) {
+        CreatorUserId = creatorUserId;
+    }
+
+    public String getTitle() {
+        return Title;
+    }
+
+    public void setTitle(String title) {
+        Title = title;
+    }
+
+    @Override
+    public String toString() {
+        return "HomeBean{" +
+                "CreatorUserId='" + CreatorUserId + '\'' +
+                ", Title='" + Title + '\'' +
+                '}';
+    }
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/Homework.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/Homework.java
new file mode 100644
index 0000000..9a34851
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/Homework.java
@@ -0,0 +1,189 @@
+package com.sincere.weigeng;
+
+import java.io.Serializable;
+
+public class Homework implements Serializable {
+
+    private String ID;
+
+    private String CreatorUserId;
+
+    private String PaperId;
+
+    private String Title;
+
+    private int SuggestionTime;
+
+    private String Deadline;
+
+    private int State;
+
+    private String Intime;
+
+    private int SubjectId;
+
+    private int PublishAnswerType;
+
+    private int IsPigai;
+
+    private String StartTime;
+
+    private int TypeId;
+
+    private String QuestionIds;
+
+    private int HomeworkType;
+
+    private int PkgId;
+
+    public String getCreatorUserId() {
+        return CreatorUserId;
+    }
+
+    public void setCreatorUserId(String creatorUserId) {
+        CreatorUserId = creatorUserId;
+    }
+
+    public String getPaperId() {
+        return PaperId;
+    }
+
+    public String getID() {
+        return ID;
+    }
+
+    public void setID(String ID) {
+        this.ID = ID;
+    }
+
+    @Override
+    public String toString() {
+        return "Homework{" +
+                "ID='" + ID + '\'' +
+                ", CreatorUserId='" + CreatorUserId + '\'' +
+                ", PaperId='" + PaperId + '\'' +
+                ", Title='" + Title + '\'' +
+                ", SuggestionTime=" + SuggestionTime +
+                ", Deadline='" + Deadline + '\'' +
+                ", State=" + State +
+                ", Intime='" + Intime + '\'' +
+                ", SubjectId=" + SubjectId +
+                ", PublishAnswerType=" + PublishAnswerType +
+                ", IsPigai=" + IsPigai +
+                ", StartTime='" + StartTime + '\'' +
+                ", TypeId=" + TypeId +
+                ", QuestionIds='" + QuestionIds + '\'' +
+                ", HomeworkType=" + HomeworkType +
+                ", PkgId=" + PkgId +
+                '}';
+    }
+
+    public void setPaperId(String paperId) {
+        PaperId = paperId;
+    }
+
+    public String getTitle() {
+        return Title;
+    }
+
+    public void setTitle(String title) {
+        Title = title;
+    }
+
+    public int getSuggestionTime() {
+        return SuggestionTime;
+    }
+
+    public void setSuggestionTime(int suggestionTime) {
+        SuggestionTime = suggestionTime;
+    }
+
+    public String getDeadline() {
+        return Deadline;
+    }
+
+    public void setDeadline(String deadline) {
+        Deadline = deadline;
+    }
+
+    public int getState() {
+        return State;
+    }
+
+    public void setState(int state) {
+        State = state;
+    }
+
+    public String getIntime() {
+        return Intime;
+    }
+
+    public void setIntime(String intime) {
+        Intime = intime;
+    }
+
+    public int getSubjectId() {
+        return SubjectId;
+    }
+
+    public void setSubjectId(int subjectId) {
+        SubjectId = subjectId;
+    }
+
+    public int getPublishAnswerType() {
+        return PublishAnswerType;
+    }
+
+    public void setPublishAnswerType(int publishAnswerType) {
+        PublishAnswerType = publishAnswerType;
+    }
+
+    public int getIsPigai() {
+        return IsPigai;
+    }
+
+    public void setIsPigai(int isPigai) {
+        IsPigai = isPigai;
+    }
+
+    public String getStartTime() {
+        return StartTime;
+    }
+
+    public void setStartTime(String startTime) {
+        StartTime = startTime;
+    }
+
+    public int getTypeId() {
+        return TypeId;
+    }
+
+    public void setTypeId(int typeId) {
+        TypeId = typeId;
+    }
+
+    public String getQuestionIds() {
+        return QuestionIds;
+    }
+
+    public void setQuestionIds(String questionIds) {
+        QuestionIds = questionIds;
+    }
+
+    public int getHomeworkType() {
+        return HomeworkType;
+    }
+
+    public void setHomeworkType(int homeworkType) {
+        HomeworkType = homeworkType;
+    }
+
+    public int getPkgId() {
+        return PkgId;
+    }
+
+    public void setPkgId(int pkgId) {
+        PkgId = pkgId;
+    }
+
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/HomeworkReceive.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/HomeworkReceive.java
new file mode 100644
index 0000000..1679780
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/HomeworkReceive.java
@@ -0,0 +1,34 @@
+package com.sincere.weigeng;
+
+import java.io.Serializable;
+
+public class HomeworkReceive implements Serializable {
+
+    private String StudentId;
+
+    private String StudnetAnswerIds;
+
+    public String getStudentId() {
+        return StudentId;
+    }
+
+    public void setStudentId(String studentId) {
+        StudentId = studentId;
+    }
+
+    public String getStudnetAnswerIds() {
+        return StudnetAnswerIds;
+    }
+
+    public void setStudnetAnswerIds(String studnetAnswerIds) {
+        StudnetAnswerIds = studnetAnswerIds;
+    }
+
+    @Override
+    public String toString() {
+        return "HomeworkReceive{" +
+                "StudentId='" + StudentId + '\'' +
+                ", StudnetAnswerIds='" + StudnetAnswerIds + '\'' +
+                '}';
+    }
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/ImageUtils.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/ImageUtils.java
new file mode 100644
index 0000000..b9fa1e0
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/ImageUtils.java
@@ -0,0 +1,168 @@
+package com.sincere.weigeng;
+
+import com.drew.imaging.ImageMetadataReader;
+import com.drew.imaging.jpeg.JpegMetadataReader;
+import com.drew.metadata.Directory;
+import com.drew.metadata.Metadata;
+import com.drew.metadata.Tag;
+import com.sun.imageio.plugins.png.PNGImageReader;
+import org.apache.commons.lang.StringUtils;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+
+public class ImageUtils {
+
+
+   /* *//**
+     * 获取图片正确显示需要旋转的角度(顺时针)
+     * @return
+     *//*
+    public static int getRotateAngleForPhoto(String filePath){
+        File file = new File(filePath);
+        int angle = 0;
+        Metadata metadata;
+        try {
+            metadata = JpegMetadataReader.readMetadata(file);
+            Directory directory = metadata.getDirectory(ExifDirectory.class);
+            if(directory.containsTag(ExifDirectory.TAG_ORIENTATION)){
+
+                // Exif信息中方向  
+                int orientation = directory.getInt(ExifDirectory.TAG_ORIENTATION);
+                // 原图片的方向信息
+                if(6 == orientation ){
+                    //6旋转90
+                    angle = 90;
+                }else if( 3 == orientation){
+                    //3旋转180
+                    angle = 180;
+                }else if( 8 == orientation){
+                    //8旋转90
+                    angle = 270;
+                }
+            }
+        } catch (JpegProcessingException e) {
+            e.printStackTrace();
+        } catch (MetadataException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return angle;
+    }*/
+
+
+    /**
+     * 获得图片调整角度
+     * make by dongxh 2017年11月1日下午3:40:20
+     * @param imgFile
+     * @return
+     */
+    public static Integer getImgRotateAngle(String imgFile){
+        return 0;
+        /*int angel = 0;
+        try {
+            File file = new File(imgFile);
+            Metadata metadata = ImageMetadataReader.readMetadata(file);
+            for (Directory directory : metadata.getDirectories()) {
+                for (Tag tag : directory.getTags()) {
+                    if (tag.getTagType() == ExifDirectoryBase.TAG_ORIENTATION) {
+                        String description = tag.getDescription();
+//						System.out.println(description);
+                        if (description.contains("90")) {
+                            // 顺时针旋转90度
+                            angel = 90;
+                        } else if (description.contains("180")) {
+                            // 顺时针旋转180度
+                            angel = 180;
+                        } else if (description.contains("270")) {
+                            // 顺时针旋转270度
+                            angel = 270;
+                        }
+                    }
+                }
+            }
+//			System.out.println(angel);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return angel;*/
+        /*Integer angel = 0;
+        Metadata metadata = null;
+        try{
+            if(StringUtils.isBlank(imgFile))return angel;
+            File _img_file_ = new File(imgFile);
+            if(!_img_file_.exists())return angel;
+            metadata = JpegMetadataReader.readMetadata(_img_file_);
+            Directory directory = metadata.getDirectory(ExifDirectory.class);
+            Iterator iterator =directory.getTagIterator();
+            while (iterator.hasNext()){
+                System.out.println("directory:"+iterator.next().toString());
+            }
+            if(directory != null && directory.containsTag(ExifDirectory.TAG_ORIENTATION)){
+                int orientation = directory.getInt(ExifDirectory.TAG_ORIENTATION);
+                // 原图片的方向信息
+                if(6 == orientation ){
+                    //6旋转90
+                    angel = 90;
+                }else if( 3 == orientation){
+                    //3旋转180
+                    angel = 180;
+                }else if( 8 == orientation){
+                    //8旋转90
+                    angel = 270;
+                }
+            }
+        }catch(Exception e){
+            e.printStackTrace();
+        }
+        return angel;*/
+    }
+
+    /**
+     * 旋转照片
+     * @return
+     */
+    public static String rotatePhonePhoto(String fullPath, int angel){
+
+        BufferedImage src;
+        try {
+            src = ImageIO.read(new File(fullPath));
+            int src_width = src.getWidth(null);
+            int src_height = src.getHeight(null);
+
+            int swidth=src_width;
+            int sheight=src_height;
+
+            if(angel==90||angel==270){
+                swidth = src_height;
+                sheight= src_width;
+            }
+
+            Rectangle rect_des = new Rectangle(new Dimension(swidth,sheight));
+
+            BufferedImage res = new BufferedImage(rect_des.width, rect_des.height,BufferedImage.TYPE_INT_RGB);
+            Graphics2D g2 = res.createGraphics();
+
+            g2.translate((rect_des.width - src_width) / 2,
+                    (rect_des.height - src_height) / 2);
+            g2.rotate(Math.toRadians(angel), src_width / 2, src_height / 2);
+
+            g2.drawImage(src, null, null);
+
+            ImageIO.write(res, "jpg", new File(fullPath));
+
+        } catch (IOException e) {
+
+            e.printStackTrace();
+        }
+
+        return fullPath;
+
+    }
+
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/JiaoCai.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/JiaoCai.java
new file mode 100644
index 0000000..fa2541a
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/JiaoCai.java
@@ -0,0 +1,46 @@
+package com.sincere.weigeng;
+
+import java.io.Serializable;
+
+public class JiaoCai implements Serializable {
+
+
+    private String ID;
+
+    private String SubjectId;
+
+    private String JiaoCaiName;
+
+    public String getID() {
+        return ID;
+    }
+
+    public void setID(String ID) {
+        this.ID = ID;
+    }
+
+    public String getSubjectId() {
+        return SubjectId;
+    }
+
+    public void setSubjectId(String subjectId) {
+        SubjectId = subjectId;
+    }
+
+    public String getJiaoCaiName() {
+        return JiaoCaiName;
+    }
+
+    public void setJiaoCaiName(String jiaoCaiName) {
+        JiaoCaiName = jiaoCaiName;
+    }
+
+    @Override
+    public String toString() {
+        return "JiaoCai{" +
+                "ID='" + ID + '\'' +
+                ", SubjectId='" + SubjectId + '\'' +
+                ", JiaoCaiName='" + JiaoCaiName + '\'' +
+                '}';
+    }
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/Knowledge.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/Knowledge.java
new file mode 100644
index 0000000..a500a9b
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/Knowledge.java
@@ -0,0 +1,44 @@
+package com.sincere.weigeng;
+
+import java.io.Serializable;
+
+public class Knowledge implements Serializable {
+
+    private String Name;
+
+    private String SubjectId;
+
+    private String Id;
+
+    public String getId() {
+        return Id;
+    }
+
+    public void setId(String id) {
+        Id = id;
+    }
+
+    public String getName() {
+        return Name;
+    }
+
+    public void setName(String name) {
+        Name = name;
+    }
+
+    public String getSubjectId() {
+        return SubjectId;
+    }
+
+    public void setSubjectId(String subjectId) {
+        SubjectId = subjectId;
+    }
+
+    @Override
+    public String toString() {
+        return "Knowledge{" +
+                "Name='" + Name + '\'' +
+                ", SubjectId='" + SubjectId + '\'' +
+                '}';
+    }
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/MyTask.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/MyTask.java
new file mode 100644
index 0000000..21a60ec
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/MyTask.java
@@ -0,0 +1,30 @@
+package com.sincere.weigeng;
+
+import com.baidu.aip.ocr.AipOcr;
+import com.baidu.aip.util.Base64Util;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.json.JSONObject;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.HashMap;
+
+@Component
+public class MyTask implements ApplicationRunner {
+
+
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+
+        System.out.println("authon:" + AuthService.getAuth());
+    }
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/QuestionBean.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/QuestionBean.java
new file mode 100644
index 0000000..7430f92
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/QuestionBean.java
@@ -0,0 +1,277 @@
+package com.sincere.weigeng;
+
+import java.io.Serializable;
+
+public class QuestionBean implements Serializable {
+
+
+    private String ID;
+
+    private String Question;
+
+    private String Qtype;
+
+    private String Answer;
+
+    private String CorrectAnswer;
+
+    private String Analysis;
+
+    private String State;
+
+    private String Intime;
+
+    private String ExamineFlag;
+
+    private String ExamineUserId;
+
+    private String CreateUserId;
+
+    private String SubjectId;
+
+    private String SchoolId;
+
+    private String DifficulteId;
+
+    private String KnowledgeId;
+
+    private String ChapterId;
+
+    private String GradeId;
+
+    private String SourceId;
+
+    private String OrderId;
+
+    private String SId;
+
+    private String StemId;
+
+    private String AutomaticCorrection;
+
+    private String PkgId;
+
+    private String PkgType;
+
+    public String getQuestion() {
+        return Question;
+    }
+
+    public void setQuestion(String question) {
+        Question = question;
+    }
+
+    public String getQtype() {
+        return Qtype;
+    }
+
+    public void setQtype(String qtype) {
+        Qtype = qtype;
+    }
+
+    public String getAnswer() {
+        return Answer;
+    }
+
+    public void setAnswer(String answer) {
+        Answer = answer;
+    }
+
+    public String getCorrectAnswer() {
+        return CorrectAnswer;
+    }
+
+    public void setCorrectAnswer(String correctAnswer) {
+        CorrectAnswer = correctAnswer;
+    }
+
+    public String getAnalysis() {
+        return Analysis;
+    }
+
+    public void setAnalysis(String analysis) {
+        Analysis = analysis;
+    }
+
+    public String getState() {
+        return State;
+    }
+
+    public void setState(String state) {
+        State = state;
+    }
+
+    public String getIntime() {
+        return Intime;
+    }
+
+    public void setIntime(String intime) {
+        Intime = intime;
+    }
+
+    public String getExamineFlag() {
+        return ExamineFlag;
+    }
+
+    public void setExamineFlag(String examineFlag) {
+        ExamineFlag = examineFlag;
+    }
+
+    public String getExamineUserId() {
+        return ExamineUserId;
+    }
+
+    public void setExamineUserId(String examineUserId) {
+        ExamineUserId = examineUserId;
+    }
+
+    public String getCreateUserId() {
+        return CreateUserId;
+    }
+
+    public void setCreateUserId(String createUserId) {
+        CreateUserId = createUserId;
+    }
+
+    public String getSubjectId() {
+        return SubjectId;
+    }
+
+    public void setSubjectId(String subjectId) {
+        SubjectId = subjectId;
+    }
+
+    public String getSchoolId() {
+        return SchoolId;
+    }
+
+    public void setSchoolId(String schoolId) {
+        SchoolId = schoolId;
+    }
+
+    public String getDifficulteId() {
+        return DifficulteId;
+    }
+
+    public void setDifficulteId(String difficulteId) {
+        DifficulteId = difficulteId;
+    }
+
+    public String getKnowledgeId() {
+        return KnowledgeId;
+    }
+
+    public void setKnowledgeId(String knowledgeId) {
+        KnowledgeId = knowledgeId;
+    }
+
+    public String getChapterId() {
+        return ChapterId;
+    }
+
+    public void setChapterId(String chapterId) {
+        ChapterId = chapterId;
+    }
+
+    public String getGradeId() {
+        return GradeId;
+    }
+
+    public void setGradeId(String gradeId) {
+        GradeId = gradeId;
+    }
+
+    public String getSourceId() {
+        return SourceId;
+    }
+
+    public void setSourceId(String sourceId) {
+        SourceId = sourceId;
+    }
+
+    public String getOrderId() {
+        return OrderId;
+    }
+
+    public void setOrderId(String orderId) {
+        OrderId = orderId;
+    }
+
+    public String getSId() {
+        return SId;
+    }
+
+    public void setSId(String SId) {
+        this.SId = SId;
+    }
+
+    public String getStemId() {
+        return StemId;
+    }
+
+    public void setStemId(String stemId) {
+        StemId = stemId;
+    }
+
+    public String getAutomaticCorrection() {
+        return AutomaticCorrection;
+    }
+
+    public void setAutomaticCorrection(String automaticCorrection) {
+        AutomaticCorrection = automaticCorrection;
+    }
+
+    public String getPkgId() {
+        return PkgId;
+    }
+
+    public void setPkgId(String pkgId) {
+        PkgId = pkgId;
+    }
+
+    public String getPkgType() {
+        return PkgType;
+    }
+
+    public void setPkgType(String pkgType) {
+        PkgType = pkgType;
+    }
+
+    public String getID() {
+        return ID;
+    }
+
+    public void setID(String ID) {
+        this.ID = ID;
+    }
+
+    @Override
+    public String toString() {
+        return "QuestionBean{" +
+                "ID='" + ID + '\'' +
+                ", Question='" + Question + '\'' +
+                ", Qtype='" + Qtype + '\'' +
+                ", Answer='" + Answer + '\'' +
+                ", CorrectAnswer='" + CorrectAnswer + '\'' +
+                ", Analysis='" + Analysis + '\'' +
+                ", State='" + State + '\'' +
+                ", Intime='" + Intime + '\'' +
+                ", ExamineFlag='" + ExamineFlag + '\'' +
+                ", ExamineUserId='" + ExamineUserId + '\'' +
+                ", CreateUserId='" + CreateUserId + '\'' +
+                ", SubjectId='" + SubjectId + '\'' +
+                ", SchoolId='" + SchoolId + '\'' +
+                ", DifficulteId='" + DifficulteId + '\'' +
+                ", KnowledgeId='" + KnowledgeId + '\'' +
+                ", ChapterId='" + ChapterId + '\'' +
+                ", GradeId='" + GradeId + '\'' +
+                ", SourceId='" + SourceId + '\'' +
+                ", OrderId='" + OrderId + '\'' +
+                ", SId='" + SId + '\'' +
+                ", StemId='" + StemId + '\'' +
+                ", AutomaticCorrection='" + AutomaticCorrection + '\'' +
+                ", PkgId='" + PkgId + '\'' +
+                ", PkgType='" + PkgType + '\'' +
+                '}';
+    }
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/StudentAnswer.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/StudentAnswer.java
new file mode 100644
index 0000000..050e488
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/StudentAnswer.java
@@ -0,0 +1,44 @@
+package com.sincere.weigeng;
+
+import java.io.Serializable;
+
+public class StudentAnswer implements Serializable {
+
+    private String ID;
+
+    private String CorrectAnswer;
+
+    private String Answer;
+
+    public String getID() {
+        return ID;
+    }
+
+    public String getAnswer() {
+        return Answer;
+    }
+
+    public void setAnswer(String answer) {
+        Answer = answer;
+    }
+
+    public void setID(String ID) {
+        this.ID = ID;
+    }
+
+    public String getCorrectAnswer() {
+        return CorrectAnswer;
+    }
+
+    public void setCorrectAnswer(String correctAnswer) {
+        CorrectAnswer = correctAnswer;
+    }
+
+    @Override
+    public String toString() {
+        return "StudentAnswer{" +
+                "ID='" + ID + '\'' +
+                ", CorrectAnswer='" + CorrectAnswer + '\'' +
+                '}';
+    }
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/StudentBean.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/StudentBean.java
new file mode 100644
index 0000000..a874e09
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/StudentBean.java
@@ -0,0 +1,233 @@
+package com.sincere.weigeng;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class StudentBean implements Serializable {
+
+
+    private long ID;
+    private String UserId;
+
+    private String CustomerId;
+
+    private int StudentType;
+
+    private int UserType;
+
+    private String Name;
+
+    private int ClassId;
+
+    private String ClassName;
+
+    private String OldCard;
+
+    private String Card;
+
+    private int SchoolId;
+
+    private int school_id;
+
+    private int IsNew;
+
+    private int UpdateType;
+
+    private Date AddTime;
+
+    private  int Sex;
+
+    private String Face;
+
+    private String StudentCode;
+
+    private String student_num;
+
+    private String student_id;
+
+    public String getUserId() {
+        return UserId;
+    }
+
+    public void setUserId(String userId) {
+        UserId = userId;
+    }
+
+    public String getCustomerId() {
+        return CustomerId;
+    }
+
+    public void setCustomerId(String customerId) {
+        CustomerId = customerId;
+    }
+
+    public int getStudentType() {
+        return StudentType;
+    }
+
+    public void setStudentType(int studentType) {
+        StudentType = studentType;
+    }
+
+    public int getUserType() {
+        return UserType;
+    }
+
+    public void setUserType(int userType) {
+        UserType = userType;
+    }
+
+    public String getName() {
+        return Name;
+    }
+
+    public void setName(String name) {
+        Name = name;
+    }
+
+    public int getClassId() {
+        return ClassId;
+    }
+
+    public void setClassId(int classId) {
+        ClassId = classId;
+    }
+
+    public String getClassName() {
+        return ClassName;
+    }
+
+    public void setClassName(String className) {
+        ClassName = className;
+    }
+
+    public String getOldCard() {
+        return OldCard;
+    }
+
+    public void setOldCard(String oldCard) {
+        OldCard = oldCard;
+    }
+
+    public String getCard() {
+        return Card;
+    }
+
+    public int getSchool_id() {
+        return school_id;
+    }
+
+    public void setSchool_id(int school_id) {
+        this.school_id = school_id;
+    }
+
+    public String getStudent_num() {
+        return student_num;
+    }
+
+    public void setStudent_num(String student_num) {
+        this.student_num = student_num;
+    }
+
+    public void setCard(String card) {
+        Card = card;
+    }
+
+    public int getSchoolId() {
+        return SchoolId;
+    }
+
+    public void setSchoolId(int schoolId) {
+        SchoolId = schoolId;
+    }
+
+    public int getIsNew() {
+        return IsNew;
+    }
+
+    public void setIsNew(int isNew) {
+        IsNew = isNew;
+    }
+
+    public int getUpdateType() {
+        return UpdateType;
+    }
+
+    public void setUpdateType(int updateType) {
+        UpdateType = updateType;
+    }
+
+    public Date getAddTime() {
+        return AddTime;
+    }
+
+    public void setAddTime(Date addTime) {
+        AddTime = addTime;
+    }
+
+    public int getSex() {
+        return Sex;
+    }
+
+    public void setSex(int sex) {
+        Sex = sex;
+    }
+
+    public String getFace() {
+        return Face;
+    }
+
+    public void setFace(String face) {
+        Face = face;
+    }
+
+    public String getStudentCode() {
+        return StudentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        StudentCode = studentCode;
+    }
+
+    public long getID() {
+        return ID;
+    }
+
+    public void setID(long ID) {
+        this.ID = ID;
+    }
+
+    public String getStudent_id() {
+        return student_id;
+    }
+
+    public void setStudent_id(String student_id) {
+        this.student_id = student_id;
+    }
+
+    @Override
+    public String toString() {
+        return "StudentBean{" +
+                "ID=" + ID +
+                ", UserId='" + UserId + '\'' +
+                ", CustomerId='" + CustomerId + '\'' +
+                ", StudentType=" + StudentType +
+                ", UserType=" + UserType +
+                ", Name='" + Name + '\'' +
+                ", ClassId=" + ClassId +
+                ", ClassName='" + ClassName + '\'' +
+                ", OldCard='" + OldCard + '\'' +
+                ", Card='" + Card + '\'' +
+                ", SchoolId=" + SchoolId +
+                ", school_id=" + school_id +
+                ", IsNew=" + IsNew +
+                ", UpdateType=" + UpdateType +
+                ", AddTime=" + AddTime +
+                ", Sex=" + Sex +
+                ", Face='" + Face + '\'' +
+                ", StudentCode='" + StudentCode + '\'' +
+                ", student_num='" + student_num + '\'' +
+                ", student_id='" + student_id + '\'' +
+                '}';
+    }
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/StudentInfo.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/StudentInfo.java
new file mode 100644
index 0000000..726f1cc
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/StudentInfo.java
@@ -0,0 +1,57 @@
+package com.sincere.weigeng;
+
+import java.io.Serializable;
+
+public class StudentInfo implements Serializable {
+
+    private String student_id;
+
+    private String name;
+
+    private String class_name;
+
+    private String ParentMobile;
+
+    private String studentcode;
+
+
+    public String getStudentcode() {
+        return studentcode;
+    }
+
+    public void setStudentcode(String studentcode) {
+        this.studentcode = studentcode;
+    }
+
+    public String getStudent_id() {
+        return student_id;
+    }
+
+    public void setStudent_id(String student_id) {
+        this.student_id = student_id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getClass_name() {
+        return class_name;
+    }
+
+    public void setClass_name(String class_name) {
+        this.class_name = class_name;
+    }
+
+    public String getParentMobile() {
+        return ParentMobile;
+    }
+
+    public void setParentMobile(String parentMobile) {
+        ParentMobile = parentMobile;
+    }
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/TestDao.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/TestDao.java
new file mode 100644
index 0000000..9c1ef65
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/TestDao.java
@@ -0,0 +1,138 @@
+package com.sincere.weigeng;
+
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+@Mapper
+public interface TestDao {
+
+
+    @Insert("insert into TK_QuestionStem values(#{QuestionStem},#{State},#{Intime})")
+    int addQuestionStem(@Param("QuestionStem") String QuestionStem, @Param("State") String State, @Param("Intime") String Intime);
+
+    @Insert("insert into TK_Question(Question,Qtype,Answer,CorrectAnswer,Analysis,State,Intime,ExamineFlag,ExamineUserId,CreateUserId,SubjectId,SchoolId,DifficulteId,KnowledgeId,ChapterId,GradeId,SourceId,OrderId,SId," +
+            "StemId,AutomaticCorrection,PkgId,PkgType) " +
+            "values(#{Question},#{Qtype},#{Answer},#{CorrectAnswer},#{Analysis},#{State},#{Intime},#{ExamineFlag},#{ExamineUserId}" +
+            ",#{CreateUserId},#{SubjectId},#{SchoolId},#{DifficulteId},#{KnowledgeId},#{ChapterId},#{GradeId},#{SourceId},#{OrderId},#{SId}" +
+            ",#{StemId},#{AutomaticCorrection},#{PkgId},#{PkgType})")
+    int addQuestion(@Param("Question") String Question, @Param("Qtype") String Qtype, @Param("Answer") String Answer, @Param("CorrectAnswer") String CorrectAnswer
+            , @Param("Analysis") String Analysis, @Param("State") String State, @Param("Intime") String Intime, @Param("ExamineFlag") String ExamineFlag, @Param("ExamineUserId") String ExamineUserId
+            , @Param("CreateUserId") String CreateUserId, @Param("SubjectId") String SubjectId, @Param("SchoolId") String SchoolId, @Param("DifficulteId") String DifficulteId, @Param("KnowledgeId") String KnowledgeId
+            , @Param("ChapterId") String ChapterId, @Param("GradeId") String GradeId, @Param("SourceId") String SourceId, @Param("OrderId") String OrderId, @Param("SId") String SId
+            , @Param("StemId") String StemId, @Param("AutomaticCorrection") String AutomaticCorrection, @Param("PkgId") String PkgId, @Param("PkgType") String PkgType);
+
+    @Select("select Top(1) ID from TK_QuestionStem order by Intime desc ")
+    int getStemId();
+
+    @Select("select * from TK_Question where Question like #{Question}")
+    List<QuestionBean> getQuestions(@Param("Question")String Question);
+
+    @Update("update TK_Question set CorrectAnswer = #{answer},Analysis = #{explanation} where ID = #{id}")
+    void updateQuestion(@Param("id") String id, @Param("answer") String answer, @Param("explanation") String explanation);
+
+
+    //学生做作业
+    @Insert("insert into ZY_StudentAnswer (QuestionId,Answer,CorrectAnswer,QuestionType,IsCorrect,WorkID) values (" +
+            "#{QuestionId},#{Answer},#{CorrectAnswer},#{QuestionType},#{IsCorrect},#{WorkID})")
+    void StudentAnswer(@Param("QuestionId")String QuestionId,@Param("Answer")String Answer,@Param("CorrectAnswer")String CorrectAnswer,
+                       @Param("QuestionType")String QuestionType,@Param("IsCorrect")String IsCorresct,@Param("WorkID")String WorkID);
+
+    @Insert("insert into ZY_HomeworkReceive values(#{WorkId},#{ClassId},#{StudentId},#{StudnetAnswerIds},#{IsFinished}," +
+            "#{AnswerTime},#{FinishTime},#{Intime},#{IsPigai},#{IsPigai})")
+    void HomeworkReceive(@Param("WorkId")String WorkId,@Param("ClassId")String ClassId,@Param("StudentId")String StudentId,@Param("StudnetAnswerIds")String StudnetAnswerIds,
+                         @Param("IsFinished")String IsFinished,@Param("AnswerTime")String AnswerTime,@Param("FinishTime")String FinishTime,@Param("Intime")String Intime,
+                         @Param("IsPigai")String IsPigai,@Param("IsPigai")String UseTime);
+
+    @Select("select * from TK_Question where ID = #{ID}")
+    QuestionBean getQues(@Param("ID")String ID);
+
+    @Select("select StudentId from ZY_HomeworkReceive where WorkId  = #{WorkId}")
+    List<String> getStudentIds(@Param("WorkId")String WorkId);
+//                    )
+
+    @Select("select ID from TK_Question where SchoolId = 885 and CorrectAnswer in('A','B','C','D') and ChapterId = #{ChapterId}")
+    List<String> getQIDS(@Param("ChapterId")String ChapterId );
+
+    @Select("select ID from ZY_StudentAnswer where WorkID = #{WorkID}")
+    List<String> getStudentAnsIds(@Param("WorkID")String WorkID);
+
+    //添加学生答题记录
+    @Insert("insert into ZY_StudentAnswer values (#{QuestionId},#{Answer},#{AnswerTime},#{CorrectAnswer},#{QuestionType},#{Pigai},#{IsCorrect},#{AppachIds},#{TeacherAppachIds},#{WorkID})")
+    void addStudentAnswer(@Param("QuestionId")String QuestionId,@Param("Answer")String Answer,@Param("AnswerTime")String AnswerTime,@Param("CorrectAnswer")String CorrectAnswer,
+                          @Param("QuestionType")String QuestionType,@Param("Pigai")String Pigai,@Param("IsCorrect")String IsCorrect,@Param("AppachIds")String AppachIds,
+                          @Param("TeacherAppachIds")String TeacherAppachIds,@Param("WorkID")String WorkID);
+
+
+    @Select("select Top(#{top}) ID from ZY_StudentAnswer where WorkID = #{WorkID} order by ID desc")
+    List<String> getTopIDs(@Param("WorkID")String WorkID,@Param("top")int top);
+
+    @Select("select ID from ZY_HomeworkReceive where WorkId = #{WorkId} and ID >= #{ID} and ID<12054 order by ID desc")
+    List<String> get_HomeworkReceive(@Param("WorkId")String WorkId,@Param("ID")String ID);
+
+    @Update("update ZY_HomeworkReceive set StudnetAnswerIds = #{StudnetAnswerIds} where ID = #{ID}")
+    void updateHomeWork(@Param("StudnetAnswerIds")String StudnetAnswerIds,@Param("ID")String ID);
+
+    @Select("select * from ZY_HomeworkReceive where WorkId = #{WorkId} order by ID desc")
+    List<HomeworkReceive> get_HomeworkRec(@Param("WorkId")String WorkId);
+
+    @Select("select Title from ZY_Homework where ID = #{ID} order by ID desc")
+    String getWorkName(@Param("ID") String workId);
+
+    @Select("select * from ZY_StudentAnswer where WorkID = #{WorkId}")
+    List<StudentAnswer> get_stuAnswer(@Param("WorkId")String WorkId);
+
+    @Update("update ZY_StudentAnswer set Answer = #{Answer},IsCorrect = #{IsCorrect} ,CorrectAnswer = #{CorrectAnswer} where ID = #{ID}")
+    void updateStudentAnswer(@Param("ID") String id,@Param("CorrectAnswer")String CorrectAnswer,@Param("Answer")String Answer,@Param("IsCorrect")String IsCorrect);
+
+    @Select("select name from SZ_V_School_Student where student_id = #{student_id}")
+    String getStudentName(@Param("student_id") String studentId);
+
+    @Select("select student_id from SZ_V_School_Student where class_id = #{class_id}")
+    List<String> getStudentIdsWithClassId(@Param("class_id") String class_id);
+
+    @Select("select IsCorrect from ZY_StudentAnswer where ID = #{ID}")
+    int getIsCorrect(@Param("ID") String id);
+
+    @Select("select QuestionId from ZY_StudentAnswer where WorkID = #{WorkID}")
+    List<String> getStuAnsIds(@Param("WorkID") String workId);
+
+    @Select("select CorrectAnswer from ZY_StudentAnswer where WorkID = #{WorkID}")
+    List<String> correctAns(@Param("WorkID")String WorkID);
+
+
+    @Select("select * from ZY_TestPaper where CreatorUserId = #{CreateUserId} and Intime > #{Intime}")
+    List<TestPaper> getTestPapers(@Param("CreateUserId") String createUserId,@Param("Intime")String Intime);
+
+    @Insert("insert into ZY_TestPaper values (#{addCreateUserId},#{questionIds},#{status},#{publishTime},#{name},#{isRecommend},#{state},#{intime},#{schoolId})")
+    void addTestPaper(@Param("addCreateUserId") String addCreateUserId, @Param("questionIds") String questionIds, @Param("status") int status,
+                      @Param("publishTime") String publishTime, @Param("name") String name, @Param("isRecommend") int isRecommend,
+                      @Param("state") int state, @Param("intime") String intime, @Param("schoolId") String schoolId);
+
+    @Insert("insert into ZY_Homework values(#{addCreateUserId},#{id},#{name},#{s},#{s1},#{s2},#{s3},#{i},#{i1},#{i2},#{s4},#{i3},#{questionIds},#{i4},#{i5}) ")
+    void addHomework(@Param("addCreateUserId") String addCreateUserId, @Param("id") int id, @Param("name") String name,
+                     @Param("s") String s, @Param("s1") String s1, @Param("s2") String s2, @Param("s3") String s3, @Param("i") int i,
+                     @Param("i1") int i1, @Param("i2") int i2,@Param("s4") String s4, @Param("i3") int i3, @Param("questionIds") String questionIds, @Param("i4") int i4, @Param("i5") int i5);
+
+
+    @Select("select * from ZY_Homework where  CreatorUserId in (select DISTINCT user_id from SZ_UserRole where school_id = 11)")
+    List<HomeBean> getCreatorUserId();
+
+    @Select("select * from ZY_Homework where CreatorUserId = #{CreatorUserId}")
+    List<Homework> getHomeWork(@Param("CreatorUserId") String addCreateUserId);
+
+    @Select("select * from SZ_V_School_Student where school_id = #{school_id}")
+    List<StudentInfo> getStudents(@Param("school_id") int school_id);
+
+    @Select("select QuestionIds from ZY_Homework where ID = #{workId}")
+    String getQuestionIds(@Param("workId") String workId);
+
+    @Select("select CorrectAnswer from TK_Question where ID = #{questionId}")
+    String getCorrectAnswer(@Param("questionId") String questionId);
+
+
+
+
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/TestPaper.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/TestPaper.java
new file mode 100644
index 0000000..62780ac
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/TestPaper.java
@@ -0,0 +1,122 @@
+package com.sincere.weigeng;
+
+import java.io.Serializable;
+
+public class TestPaper implements Serializable {
+
+    private int ID;
+
+    private String CreatorUserId;
+
+    private String QuestionIds;
+
+    private int Status;
+
+    private String PublishTime;
+
+    private String Name;
+
+    private int IsRecommend;
+
+    private int State;
+
+    private String Intime;
+
+    private int SchoolId;
+
+    public String getCreatorUserId() {
+        return CreatorUserId;
+    }
+
+    public void setCreatorUserId(String creatorUserId) {
+        CreatorUserId = creatorUserId;
+    }
+
+    public String getQuestionIds() {
+        return QuestionIds;
+    }
+
+    public void setQuestionIds(String questionIds) {
+        QuestionIds = questionIds;
+    }
+
+    public int getStatus() {
+        return Status;
+    }
+
+    public int getID() {
+        return ID;
+    }
+
+    public void setID(int ID) {
+        this.ID = ID;
+    }
+
+    public void setStatus(int status) {
+        Status = status;
+    }
+
+    public String getPublishTime() {
+        return PublishTime;
+    }
+
+    public void setPublishTime(String publishTime) {
+        PublishTime = publishTime;
+    }
+
+    public String getName() {
+        return Name;
+    }
+
+    public void setName(String name) {
+        Name = name;
+    }
+
+    public int getIsRecommend() {
+        return IsRecommend;
+    }
+
+    public void setIsRecommend(int isRecommend) {
+        IsRecommend = isRecommend;
+    }
+
+    public int getState() {
+        return State;
+    }
+
+    public void setState(int state) {
+        State = state;
+    }
+
+    public String getIntime() {
+        return Intime;
+    }
+
+    public void setIntime(String intime) {
+        Intime = intime;
+    }
+
+    public int getSchoolId() {
+        return SchoolId;
+    }
+
+    public void setSchoolId(int schoolId) {
+        SchoolId = schoolId;
+    }
+
+    @Override
+    public String toString() {
+        return "TestPaper{" +
+                "ID=" + ID +
+                ", CreatorUserId='" + CreatorUserId + '\'' +
+                ", QuestionIds='" + QuestionIds + '\'' +
+                ", Status=" + Status +
+                ", PublishTime='" + PublishTime + '\'' +
+                ", Name='" + Name + '\'' +
+                ", IsRecommend=" + IsRecommend +
+                ", State=" + State +
+                ", Intime='" + Intime + '\'' +
+                ", SchoolId=" + SchoolId +
+                '}';
+    }
+}
diff --git a/cloud/weigeng/src/main/java/com/sincere/weigeng/dao/UserDao.java b/cloud/weigeng/src/main/java/com/sincere/weigeng/dao/UserDao.java
new file mode 100644
index 0000000..976e636
--- /dev/null
+++ b/cloud/weigeng/src/main/java/com/sincere/weigeng/dao/UserDao.java
@@ -0,0 +1,29 @@
+package com.sincere.weigeng.dao;
+
+import com.sincere.weigeng.JiaoCai;
+import com.sincere.weigeng.Knowledge;
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+@Mapper
+public interface UserDao {
+
+//    @Insert("insert into HS_StudentUpdateCard (Card,SchoolId,StudentCode,CustomerId,StudentType,UserType,ClassId,ClassName,IsNew,UpdateType,AddTime) " +
+//            "values (#{Card},#{SchoolId},#{StudentCode},#{CustomerId},#{StudentType},#{UserType},#{ClassId},#{ClassName},#{IsNew,#{UpdateType),#{AddTime}")
+//    void addStudentUpdate(@Param("Card") String card, @Param("SchoolId") int school_id, @Param("StudentCode") String studentCode, @Param("CustomerId") String CustomerId
+//            , @Param("StudentType") String StudentType, @Param("UserType") String UserType, @Param("ClassId") String ClassId, @Param("ClassName") String ClassName,
+//                          @Param("IsNew") String IsNew, @Param("UpdateType") String UpdateType, @Param("AddTime") String AddTime);
+
+
+    @Select ("select * from ZY_YYKnowledge where AddTime >2019 ")
+    List<Knowledge> getKnowledge();
+
+    @Select("select * from ZY_YYJiaoCai where ID >= 26")
+    List<JiaoCai> getJiaoCai();
+
+    @Insert("insert into ZY_YYJiaoCaiAndKnowledg values(#{id},#{id1},#{i},#{i1})")
+    void addKnowAndJicaoCai(@Param("id") String id, @Param("id1") String id1, @Param("i") int i, @Param("i1") int i1);
+}
diff --git a/cloud/weigeng/src/main/resources/mybatis-config.xml b/cloud/weigeng/src/main/resources/mybatis-config.xml
new file mode 100644
index 0000000..f3b0c3f
--- /dev/null
+++ b/cloud/weigeng/src/main/resources/mybatis-config.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE configuration
+        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-config.dtd">
+
+<configuration>
+    <properties >
+        <property name="dialect" value="mysql" />
+    </properties>
+    <settings>
+        <!-- 这个配置使全局的映射器启用或禁用缓存。系统默认值是true,设置只是为了展示出来 -->
+        <setting name="cacheEnabled" value="true" />
+        <!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。 系统默认值是true,设置只是为了展示出来 -->
+        <setting name="lazyLoadingEnabled" value="true" />
+        <!-- 允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动)。 系统默认值是true,设置只是为了展示出来 -->
+        <setting name="multipleResultSetsEnabled" value="true" />
+        <!--使用列标签代替列名。不同的驱动在这方便表现不同。参考驱动文档或充分测试两种方法来决定所使用的驱动。 系统默认值是true,设置只是为了展示出来 -->
+        <setting name="useColumnLabel" value="true" />
+        <!--允许 JDBC 支持生成的键。需要适合的驱动。如果设置为 true 则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效(比如
+            Derby)。 系统默认值是false,设置只是为了展示出来 -->
+        <setting name="useGeneratedKeys" value="false" />
+        <!--配置默认的执行器。SIMPLE 执行器没有什么特别之处。REUSE 执行器重用预处理语句。BATCH 执行器重用语句和批量更新 系统默认值是SIMPLE,设置只是为了展示出来 -->
+        <setting name="defaultExecutorType" value="SIMPLE" />
+        <!--设置超时时间,它决定驱动等待一个数据库响应的时间。 系统默认值是null,设置只是为了展示出来 -->
+        <setting name="defaultStatementTimeout" value="25000" />
+    </settings>
+
+    <!--<typeAliases>-->
+    <!--<typeAlias alias="user" type="com.shunzhi.mqtt2kanban.bean.User"/>-->
+    <!--</typeAliases>-->
+
+    <!--<mappers>-->
+    <!--<control resource="mybatis/control/UserMapper.xml"/>-->
+    <!--</mappers>-->
+</configuration>
diff --git a/cloud/weigeng/src/test/java/com/sincere/weigeng/WeigengApplicationTests.java b/cloud/weigeng/src/test/java/com/sincere/weigeng/WeigengApplicationTests.java
new file mode 100644
index 0000000..d24f749
--- /dev/null
+++ b/cloud/weigeng/src/test/java/com/sincere/weigeng/WeigengApplicationTests.java
@@ -0,0 +1,570 @@
+package com.sincere.weigeng;
+
+import com.drew.imaging.jpeg.JpegMetadataReader;
+import com.drew.imaging.jpeg.JpegProcessingException;
+import com.drew.metadata.Directory;
+import com.drew.metadata.Metadata;
+import com.drew.metadata.Tag;
+import com.drew.metadata.exif.ExifDirectory;
+import com.sincere.weigeng.dao.UserDao;
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.List;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class WeigengApplicationTests {
+
+    @Autowired
+    TestDao testDao;
+
+    @Test
+    public void contextLoads() {
+
+        try {
+            BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\Users\\taohandong\\Desktop\\json.txt"));
+            String content = null;
+            StringBuilder stringBuilder = new StringBuilder();
+            while ((content = bufferedReader.readLine()) != null) {
+                stringBuilder.append(content);
+            }
+
+            JSONObject jsonObject = new JSONObject(stringBuilder.toString());
+            JSONObject data = jsonObject.optJSONObject("data");
+            JSONArray questions = data.optJSONArray("questions");
+            for (int i = 0; i < questions.length(); i++) {
+                JSONObject question = questions.optJSONObject(i);
+                String question_text = question.optString("question_text");
+                String answer = question.optString("answer");//答案
+                String explanation = question.optString("explanation");//解析
+//                <p><img src="/Web/Assets/ueditor/asp/upload/image/20190916/15686369926495741.png" title="image.png" alt="image.png"/></p>
+                explanation = "<p><img src=\"" + explanation + "\" title=\"image.png\" alt=\"image.png\"/></p>";
+                answer = getAnswer(answer);
+                System.out.println("question_text:" + question_text + "\r\nanswer:" + answer + "\r\nexplanation:" + explanation);
+                List<QuestionBean> questionBeans = testDao.getQuestions(question_text);//获取题目
+                for (int j = 0; j < questionBeans.size(); j++) {
+                    QuestionBean questionBean = questionBeans.get(j);
+                    testDao.updateQuestion(questionBean.getID(), answer, explanation);
+                }
+//                System.out.println(questionBeans.toString());
+            }
+
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    private String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=24.26683b650b73b63e0b08afa7ac36e880.2592000.1571310480.282335-15990462";
+
+    private String getAnswer(String imgUrl) {
+        RestTemplate restTemplate = new RestTemplate();
+
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+
+        MultiValueMap<String, String> multiValueMap = new LinkedMultiValueMap<>();
+//        multiValueMap.add("image", ImageUtils.ImageToBase64ByLocal("C:\\Users\\taohandong\\Desktop\\识别.png"));
+        multiValueMap.add("url", imgUrl);
+        HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(multiValueMap,
+
+                headers);
+
+        ResponseEntity<String> result = restTemplate.postForEntity(url, requestEntity, String.class);
+
+        JSONObject jsonObject = new JSONObject(result.getBody());
+//        System.out.println("result:"+result.getBody());
+        JSONArray words_result = jsonObject.optJSONArray("words_result");
+//        System.out.println("words_result:"+words_result);
+        StringBuilder stringBuilder = new StringBuilder();
+        if (words_result != null) {
+            for (int i = 0; i < words_result.length(); i++) {
+                String words = words_result.optJSONObject(i).optString("words");
+                stringBuilder.append(words + " ");
+            }
+            System.out.println("result:" + stringBuilder.toString());
+        }
+        return stringBuilder.toString().equals("") ? "B" : stringBuilder.toString();
+    }
+
+    @Test
+    public void get() {
+
+//        String url = "https://zujuan.21cnjy.com/api/question/list?xd=1&chid=3&categories=3877&knowledges=&question_channel_type=1&difficult_index=&exam_type=&kid_num=&grade_id=&sort_field=time&filterquestion=0&page=&_grade_id=&tree_type=category&version_id=&_=1568766250186";
+//        RestTemplate restTemplate = new RestTemplate();
+//        System.out.println(restTemplate.getForObject(url, String.class));
+        /*String createrUserId = "zy273789", time = "2019-10-08";
+        List<TestPaper> testPaperList = testDao.getTestPapers(createrUserId, time);
+        for (int i = 0; i < testPaperList.size(); i++) {
+            TestPaper testPaper = testPaperList.get(i);
+            int schoolId = 11;
+            testDao.addTestPaper("zy284782", testPaper.getQuestionIds(), testPaper.getStatus(), testPaper.getPublishTime(),
+                    testPaper.getName(), testPaper.getIsRecommend(), testPaper.getState(), testPaper.getIntime(), schoolId + "");
+
+        }*/
+
+    }
+
+
+    /**
+     * 创建试卷
+     */
+    @Test
+    public void createTestPaper() {
+        String createUserId = "zy309728";
+        List<TestPaper> testPaperList = testDao.getTestPapers(createUserId, "2019-09-18 16:00:00");
+        System.out.println("testPaperList:" + testPaperList.toString());
+
+        String addCreateUserId = "zy411337", SchoolId = "885";
+        /* for (int i = 1; i < testPaperList.size(); i++) {
+            TestPaper testPaper = testPaperList.get(i);
+            int ID = testPaper.getID();
+                //添加试卷
+                testDao.addTestPaper(addCreateUserId, testPaper.getQuestionIds(), testPaper.getStatus(), testPaper.getPublishTime()
+                        , testPaper.getName(), testPaper.getIsRecommend(), testPaper.getState(), testPaper.getIntime(), SchoolId);
+
+                //发布作业
+                testDao.addHomework(addCreateUserId, testPaper.getID(), testPaper.getName(), "50", "2019-09-20 18:00", "2", "2019-09-19 19:10", 1, 0, 1, "2019-09-19 19:10", 0, testPaper.getQuestionIds(), 0, 0);
+        }*/
+        /*String[] answers = new String[]{"A", "B", "C", "D"};
+        String QuestionType = "1";
+        String CorrectAnswer = "";
+        List<Homework> homeworkList = testDao.getHomeWork(addCreateUserId);
+        for (int i = 0; i < homeworkList.size(); i++) {
+            Homework homework = homeworkList.get(i);
+            String[] questionIds = homework.getQuestionIds().split(",");
+            for (int j = 0; j < questionIds.length; j++) {
+                String questionId = questionIds[j];
+                QuestionBean questionBean = testDao.getQues(questionId);
+                CorrectAnswer = questionBean.getCorrectAnswer();
+                String answer = answers[new Random().nextInt(4)];
+                String IsCorresct = answer.trim().equals(CorrectAnswer.trim()) ? "1" : "3";
+                testDao.StudentAnswer(questionId, answer, CorrectAnswer, QuestionType, IsCorresct, homework.getID());
+            }
+
+        }*/
+//        if (ID <= 4191 && ID >= 4187) {
+        String classId = "36398";
+        List<Homework> homeworkList = testDao.getHomeWork(addCreateUserId);
+        for (int i = 0; i < homeworkList.size(); i++) {
+            String workId = homeworkList.get(i).getID();
+//            List<String> stuAnsIds = testDao.getStudentAnsIds(workId);
+//            String stuAnIds = stuAnsIds.toString().replace("[", "");
+//            stuAnIds = stuAnIds.replace("]", "");
+
+            List<String> strings = testDao.getStudentIdsWithClassId(classId);
+            String stuIds = strings.toString().replace("[", "");
+            stuIds = stuIds.replace("]", "");
+            String[] stuStrings = stuIds.split(",");//学生id
+
+            for (int j = 0; j < stuStrings.length; j++) {
+                String studentId = stuStrings[j];
+
+                testDao.HomeworkReceive(workId, classId, studentId, "", "1", j + "", "2019-09-23 21:28:00", "2019-09-22 17:50:00", "1", j + "");
+            }
+
+        }
+
+    }
+
+    @Autowired
+    UserDao userDao;
+
+    @Test
+    public void doHomeWork() {
+        StudentBean studentBean = new StudentBean();
+        studentBean.setCard("9A1229A9");
+        studentBean.setSchool_id(110);
+        studentBean.setStudentCode("140881200710270056");
+        studentBean.setCustomerId("583912");
+
+//        userDao.addStudentUpdate(studentBean.getCard(),studentBean.getSchool_id(),studentBean.getStudentCode(),studentBean.getCustomerId(),"1","2"
+//                ,"55640","2014级(08)班","0","1","2019-09-22 16:26");
+
+       /* String QuestionId = "21656, 21657, 21658, 21659, 21753, 21706, 21724, 21796, 21797, 21798";
+        String Answer = "";
+        String CorrectAnswer = "";
+        String QuestionType = "1";
+        String IsCorresct = "";
+        String WorkID = "4198";
+        String[] questionIds = QuestionId.split(",");
+        for (int i = 0; i < questionIds.length; i++) {
+            String questionId = questionIds[i];
+            QuestionBean questionBean = testDao.getQues(questionId);
+            CorrectAnswer = questionBean.getCorrectAnswer();
+            Answer = "B";
+            IsCorresct = Answer.trim().equals(CorrectAnswer.trim()) ? "1" : "3";
+            testDao.StudentAnswer(questionId, Answer, CorrectAnswer, QuestionType, IsCorresct, WorkID);
+        }*/
+
+    }
+
+
+    @Test
+    public void HomeworkRec() {
+        String WorkID = "4198";
+        String ClassId = "";
+        //查询学生id
+        List<String> list = testDao.getStudentIds("4172");
+        String StudentIds = list.toString().replace("[", "");
+        StudentIds = StudentIds.replace("]", "");
+        System.out.println("StudentIds:" + StudentIds);
+        String StudnetAnswerIds = testDao.getStudentAnsIds(WorkID).toString().replace("[", "");
+        StudnetAnswerIds = StudnetAnswerIds.replace("]", "");
+        String[] studentIds = StudentIds.split(",");
+        for (int i = 0; i < studentIds.length; i++) {
+            String studentId = studentIds[i];
+            String finishTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+            testDao.HomeworkReceive(WorkID, ClassId, studentId, StudnetAnswerIds, "1", i + "", "2019-09-19 16:50", finishTime
+                    , "1", "" + i);
+        }
+    }
+
+    @Test
+    public void getQIds() {
+
+        List<Knowledge> knowledges = userDao.getKnowledge();
+        System.out.println("knowledges:" + knowledges.toString());
+
+        List<JiaoCai> jiaoCais = userDao.getJiaoCai();
+        System.out.println("jiaoCais:" + jiaoCais.toString());
+
+        for (int i = 0; i < 1; i++) {
+            JiaoCai jiaoCai = jiaoCais.get(i);
+            String SubjectId = jiaoCai.getSubjectId();
+            for (int j = 0; j < knowledges.size(); j++) {
+                Knowledge knowledge = knowledges.get(j);
+                if (SubjectId.equals(knowledge.getSubjectId())) {
+                    userDao.addKnowAndJicaoCai(jiaoCai.getID(), knowledge.getId(), 0, 1);
+                }
+            }
+
+        }
+
+    }
+
+    @Test
+    public void tongji() {
+
+        String[] answers = new String[]{"A", "B", "C", "D", "A", "A"};
+        String createUserId = "zy411337";
+        List<Homework> homeworkList = testDao.getHomeWork(createUserId);//获取布置的作业
+        System.out.println("homeworkList:" + homeworkList);
+        for (int m = 0; m < homeworkList.size(); m++) {
+            String WorkId = homeworkList.get(m).getID();
+            Map<String, List<String>> mapRecIDs = new HashMap<>();
+            System.out.println("workId:" + WorkId);
+//            List<String> queIds = testDao.getStuAnsIds(WorkId);
+//            String questionIds = queIds.toString().replace("[", "");
+//            questionIds = questionIds.replace("]", "");
+
+            //获取正确答案
+//            List<String> correct = testDao.correctAns(WorkId);
+//            String corrStr = correct.toString().replace("[", "");
+//            corrStr = corrStr.replace("]", "");
+//            String[] correctAnser = corrStr.split(",");
+
+            String questionIds = testDao.getQuestionIds(WorkId);
+
+            //获取答题学生数量
+            List<String> homeworkReceiveIds = testDao.get_HomeworkReceive(WorkId, "12012");
+            System.out.println("homeworkReceiveIds:" + homeworkReceiveIds.size());
+            for (int j = 0; j < homeworkReceiveIds.size(); j++) {//接收学生数量
+
+                String[] quesStirngs = questionIds.split(",");
+                System.out.println("quesStirngs:" + quesStirngs.length);
+                for (int i = 0; i < quesStirngs.length; i++) {
+                    String questionId = quesStirngs[i];
+                    String CorrectAnswer = testDao.getCorrectAnswer(questionId);
+                    int randow = new Random().nextInt(6);
+                    String answer = null;
+                    String isCorrsct = "";
+                    if (randow == 0 || randow == 1 || randow == 2 || randow == 3 || randow == 4) {
+                        answer = CorrectAnswer.trim();
+                        isCorrsct = "1";
+                    } else {
+                        answer = answers[randow];
+                        isCorrsct = "3";
+                    }
+                    //插入一条新的记录
+                    testDao.addStudentAnswer(quesStirngs[i], answer.trim(), "", CorrectAnswer.trim(), "1", "", isCorrsct, "", "", WorkId);
+                }
+                //获取最新的十条记录
+                List<String> idLists = testDao.getTopIDs(WorkId, questionIds.split(",").length);
+                System.out.println("idLists:" + idLists.toString());
+                mapRecIDs.put(j + "", idLists);
+            }
+//            System.out.println("mapRecIDs:" + mapRecIDs.toString() + " 0:" + mapRecIDs.get("0").toString().replace("[", ""));
+
+            for (int i = 0; i < homeworkReceiveIds.size(); i++) {
+                String homeRecId = homeworkReceiveIds.get(i);
+                System.out.println("i:" + i);
+                String ansIds = mapRecIDs.get(i + "").toString().replace("[", "");
+                ansIds = ansIds.replace("]", "");
+                testDao.updateHomeWork(ansIds, homeRecId);
+            }
+
+            List<HomeworkReceive> homRecIDs = testDao.get_HomeworkRec(WorkId);
+
+            Map<String, String> stuMap = new HashMap<>();
+            for (int i = 0; i < homRecIDs.size(); i++) {
+                HomeworkReceive homeworkReceive = homRecIDs.get(i);
+
+                String studentId = homeworkReceive.getStudentId();
+
+                String studentName = testDao.getStudentName(studentId);
+
+                String studnetAnswerIds = homeworkReceive.getStudnetAnswerIds();
+
+                String[] stuIds = studnetAnswerIds.split(",");
+
+                String isC = "";
+                for (int j = 0; j < stuIds.length; j++) {
+                    String id = stuIds[j];
+                    int idCorrect = testDao.getIsCorrect(id);
+                    if (idCorrect == 1) {
+                        isC += "1 ";
+                    } else if (idCorrect == 3) {
+                        isC += "0 ";
+                    }
+                }
+                stuMap.put(studentName, isC);
+                System.out.println("" + studentName + " " + isC);
+
+            }
+
+        }
+    }
+
+    private void writeToExcel(HSSFWorkbook workbook, String HomeworkTitle, Map<String, String[]> correctAns, String[] names, String title) {
+        //第二部,在workbook中创建一个sheet对应excel中的sheet
+        HSSFSheet sheet = workbook.createSheet(HomeworkTitle);
+        //第三部,在sheet表中添加表头第0行,老版本的poi对sheet的行列有限制
+        HSSFRow row = sheet.createRow(0);
+        //第四步,创建单元格,设置表头
+        HSSFCell cell = null;
+        for (int i = 0; i < correctAns.get(names[0]).length; i++) {
+            cell = row.createCell(i);
+            cell.setCellValue("第" + (i + 1) + "");
+        }
+
+        //第五步,写入数据
+        for (int i = 0; i < names.length; i++) {
+
+//            String oneData =correctAns[i];//姓名对应的正确率
+            HSSFRow row1 = sheet.createRow(i + 1);
+            String[] corrects = correctAns.get(names[i]);
+            System.out.println("names:" + names[i]);
+            for (int j = 0; j < corrects.length; j++) {
+                //创建单元格设值
+                row1.createCell(j).setCellValue(corrects[j]);
+            }
+            row1.createCell(corrects.length).setCellValue(names[i]);
+        }
+
+        //将文件保存到指定的位置
+        try {
+            File file = new File("C:\\Users\\taohandong\\Desktop\\文澜\\"+title+".xls");
+            if (!file.exists())file.createNewFile();
+            FileOutputStream fos = new FileOutputStream(file);
+            workbook.write(fos);
+            System.out.println("写入成功");
+            fos.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
+    @Test
+    public void getStu() {
+        //第一步,创建一个workbook对应一个excel文件
+        HSSFWorkbook workbook = new HSSFWorkbook();
+
+            String createUserId = "zy595910";
+            String title="作业";
+        //ZY_Homework表取出要统计的作业
+            String WorkId = "4408";
+            String workName = testDao.getWorkName(WorkId);
+
+            //ZY_HomeworkReceive 表获取学生作业答题情况;
+            List<HomeworkReceive> homRecIDs = testDao.get_HomeworkRec(WorkId);
+
+            Map<String, String[]> stuMap = new HashMap<>();
+            String[] names = new String[homRecIDs.size()];
+            String[] isCorrect = null;
+            for (int i = 0; i < homRecIDs.size(); i++) {
+                HomeworkReceive homeworkReceive = homRecIDs.get(i);
+
+                String studentId = homeworkReceive.getStudentId();
+
+                String studentName = testDao.getStudentName(studentId);
+
+                String studnetAnswerIds = homeworkReceive.getStudnetAnswerIds();
+//                    System.out.println("studnetAnswerIds:"+studnetAnswerIds+" WorkId:"+WorkId + " StudentId:"+studentId);
+                if (null != studnetAnswerIds) {
+                    names[i] = studentName;
+                    String[] stuIds = studnetAnswerIds.split(",");
+                    isCorrect = new String[stuIds.length];
+                    String isC = "";
+                    for (int j = 0; j < stuIds.length; j++) {
+                        String id = stuIds[j];
+                        System.out.println("IsCorrectId:" + id);
+                        //ZY_StudentAnswer表获取题目是否正确
+                        int idCorrect = testDao.getIsCorrect(id);
+                        if (idCorrect == 1) {
+                            isC += "1 ";
+                            isCorrect[j] = "1";
+                        } else if (idCorrect == 3) {
+                            isC += "0 ";
+                            isCorrect[j] = "0";
+                        }
+                    }
+                    stuMap.put(studentName, isCorrect);
+                    System.out.println("" + studentName + " " + isC);
+                }
+            }
+            if (names!=null&&stuMap.size()>0)
+            writeToExcel(workbook, workName, stuMap, names,title);
+//            System.out.println("stuMap:" + stuMap.toString());
+    }
+
+
+    /**
+     * 旋转图片
+     */
+    @Test
+    public void trnImgs() {
+
+        File file = new File("C:\\TaoHandong\\copy\\school479\\StudentCompressed");
+        File[] files = file.listFiles();
+
+        List<StudentInfo> studentInfos = testDao.getStudents(479);
+
+        List<StudentInfo> studentInfoList = new ArrayList<>();
+
+        for (int i = 0; i < studentInfos.size(); i++) {
+            StudentInfo studentInfo = studentInfos.get(i);
+
+            boolean isHas = false;
+            for (int j = 0; j < files.length; j++) {
+                File img = files[j];
+                String imgName = img.getName().split("\\.")[0];
+
+                if (imgName.equals(studentInfo.getStudentcode())) {
+                    isHas = true;
+                    break;
+                }
+
+            }
+
+            if (!isHas) {
+                studentInfoList.add(studentInfo);
+            }
+
+        }
+
+        System.out.println("studentInfoList:" + studentInfoList);
+        //第一步,创建一个workbook对应一个excel文件
+        HSSFWorkbook workbook = new HSSFWorkbook();
+        //第二部,在workbook中创建一个sheet对应excel中的sheet
+        HSSFSheet sheet = workbook.createSheet("缺少的学生人脸");
+        //第三部,在sheet表中添加表头第0行,老版本的poi对sheet的行列有限制
+        HSSFRow row = sheet.createRow(0);
+
+        String[] titles = new String[]{"姓名", "班级", "学籍号", "号码"};
+        //第四步,创建单元格,设置表头
+        HSSFCell cell = null;
+        for (int i = 0; i < titles.length; i++) {
+            cell = row.createCell(i);
+            cell.setCellValue(titles[i]);
+        }
+
+        //第五步,写入数据
+        for (int i = 0; i < studentInfoList.size(); i++) {
+            HSSFRow row1 = sheet.createRow(i + 1);
+            for (int j = 0; j < titles.length; j++) {
+                String value = studentInfoList.get(i).getClass_name();
+                switch (j) {
+                    case 0:
+                        value = studentInfoList.get(i).getName();
+                        break;
+                    case 1:
+                        value = studentInfoList.get(i).getClass_name();
+                        break;
+                    case 2:
+                        value = studentInfoList.get(i).getStudentcode();
+                        break;
+                    case 3:
+                        value = studentInfoList.get(i).getParentMobile();
+                        break;
+                }
+                //创建单元格设值
+                row1.createCell(j).setCellValue(value);
+            }
+        }
+
+        //将文件保存到指定的位置
+        try {
+            FileOutputStream fos = new FileOutputStream("C:\\Users\\taohandong\\Desktop\\result.xls");
+            workbook.write(fos);
+            System.out.println("写入成功");
+            fos.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+       /* File file = new File("C:\\TaoHandong\\copy\\School1030\\Student");
+
+        File outFile = new File("C:\\TaoHandong\\copy\\School1030\\Student1");
+
+        if (!outFile.exists()) outFile.mkdirs();
+
+        File[] files = file.listFiles();
+        System.out.println("files:" + files.length);
+        BufferedImage bufferedImage;
+        for (int i = 0; i < files.length; i++) {
+            File img = files[i];
+            int ang = ImageUtils.getImgRotateAngle(img.getAbsolutePath());
+            System.out.println(img.getName() + " ang:" + ang);
+//            try {
+//                bufferedImage = ImageIO.read(img);
+//                moveImg(bufferedImage,img,outFile);
+//            } catch (IOException e) {
+//                e.printStackTrace();
+//            }
+
+        }*/
+
+    }
+
+    private List<String> name = new ArrayList<>();
+
+
+}
--
libgit2 0.21.0