Browse Source

Merge branch 'master' of https://e.coding.net/chuanghaikeji/smartCampus/backend_code

夏文涛 2 years ago
parent
commit
853a9af8a3
58 changed files with 2456 additions and 31 deletions
  1. 5 0
      src/main/java/com/template/api/SmartAuthorGroupControllerAPI.java
  2. 40 0
      src/main/java/com/template/api/SmartEvaluateStudentControllerAPI.java
  3. 50 0
      src/main/java/com/template/api/SmartEvaluateTeacherControllerAPI.java
  4. 1 1
      src/main/java/com/template/api/WechatScanLoginControllerAPI.java
  5. 43 0
      src/main/java/com/template/common/jh/ReqRespResearchProductQuestionnaireItem.java
  6. 243 0
      src/main/java/com/template/common/jh/SectionUtil.java
  7. 1 1
      src/main/java/com/template/common/utils/TimeExchange2.java
  8. 28 0
      src/main/java/com/template/controller/SmartAuthorGroupController.java
  9. 2 1
      src/main/java/com/template/controller/SmartDataSourceController.java
  10. 254 0
      src/main/java/com/template/controller/SmartEvaluateStudentController.java
  11. 341 0
      src/main/java/com/template/controller/SmartEvaluateTeacherController.java
  12. 27 2
      src/main/java/com/template/controller/WechatScanLoginController.java
  13. 18 0
      src/main/java/com/template/mapper/SmartDataSourceMapper.java
  14. 16 0
      src/main/java/com/template/mapper/SmartEvaluateSdetailMapper.java
  15. 16 0
      src/main/java/com/template/mapper/SmartEvaluateStudentMapper.java
  16. 3 1
      src/main/java/com/template/mapper/SmartEvaluateTdetailMapper.java
  17. 4 1
      src/main/java/com/template/mapper/SmartEvaluateTeacherMapper.java
  18. 3 1
      src/main/java/com/template/mapper/SmartScoreManageMapper.java
  19. 17 0
      src/main/java/com/template/mapper/SmartSubjectManageMapper.java
  20. 16 0
      src/main/java/com/template/mapper/SmartSubjectRuleMapper.java
  21. 34 0
      src/main/java/com/template/model/evaluate/student/SmartEvaluateSdetail.java
  22. 19 0
      src/main/java/com/template/model/evaluate/student/SmartEvaluateSdetailList.java
  23. 43 0
      src/main/java/com/template/model/evaluate/student/SmartEvaluateStudent.java
  24. 29 0
      src/main/java/com/template/model/evaluate/student/SmartSubjectManage.java
  25. 31 0
      src/main/java/com/template/model/evaluate/student/SmartSubjectRule.java
  26. 19 0
      src/main/java/com/template/model/evaluate/student/SmartSubjectRuleInList.java
  27. 17 0
      src/main/java/com/template/model/evaluate/student/SmartSubjectRuleOutList.java
  28. 17 0
      src/main/java/com/template/model/evaluate/student/SubjectManageList.java
  29. 21 0
      src/main/java/com/template/model/evaluate/teacher/SimpleEvaluateScore.java
  30. 17 0
      src/main/java/com/template/model/evaluate/teacher/SimpleScore.java
  31. 17 0
      src/main/java/com/template/model/evaluate/teacher/SimpleScoreDetailList.java
  32. 8 2
      src/main/java/com/template/model/evaluate/SmartEvaluateTdetail.java
  33. 41 0
      src/main/java/com/template/model/evaluate/teacher/SmartEvaluateTdetailList.java
  34. 5 2
      src/main/java/com/template/model/evaluate/SmartEvaluateTeacher.java
  35. 4 1
      src/main/java/com/template/model/evaluate/SmartScoreManage.java
  36. 38 0
      src/main/java/com/template/model/evaluate/teacher/SmartScoreManageList.java
  37. 5 1
      src/main/java/com/template/model/pojo/SmartDataSource.java
  38. 2 1
      src/main/java/com/template/services/SmartDataSourceService.java
  39. 34 0
      src/main/java/com/template/services/SmartEvaluateSdetailService.java
  40. 34 0
      src/main/java/com/template/services/SmartEvaluateStudentService.java
  41. 36 0
      src/main/java/com/template/services/SmartEvaluateTdetailService.java
  42. 35 0
      src/main/java/com/template/services/SmartEvaluateTeacherService.java
  43. 43 0
      src/main/java/com/template/services/SmartScoreManageService.java
  44. 35 0
      src/main/java/com/template/services/SmartSubjectManageService.java
  45. 34 0
      src/main/java/com/template/services/SmartSubjectRuleService.java
  46. 15 12
      src/main/java/com/template/services/impl/SmartDataSourceServiceImpl.java
  47. 1 2
      src/main/java/com/template/services/impl/SmartDataTaskServiceImpl.java
  48. 76 0
      src/main/java/com/template/services/impl/SmartEvaluateSdetailServiceImpl.java
  49. 75 0
      src/main/java/com/template/services/impl/SmartEvaluateStudentServiceImpl.java
  50. 79 0
      src/main/java/com/template/services/impl/SmartEvaluateTdetailServiceImpl.java
  51. 80 0
      src/main/java/com/template/services/impl/SmartEvaluateTeacherServiceImpl.java
  52. 209 0
      src/main/java/com/template/services/impl/SmartScoreManageServiceImpl.java
  53. 79 0
      src/main/java/com/template/services/impl/SmartSubjectManageServiceImpl.java
  54. 75 0
      src/main/java/com/template/services/impl/SmartSubjectRuleServiceImpl.java
  55. 5 0
      src/main/resources/mapper/template/SmartEvaluateSdetailMapper.xml
  56. 5 0
      src/main/resources/mapper/template/SmartEvaluateStudentMapper.xml
  57. 5 1
      src/main/resources/mapper/template/SmartEvaluateTdetailMapper.xml
  58. 6 1
      src/main/resources/mapper/template/SmartEvaluateTeacherMapper.xml

+ 5 - 0
src/main/java/com/template/api/SmartAuthorGroupControllerAPI.java

@@ -1,6 +1,7 @@
 package com.template.api;
 
 import com.alibaba.fastjson.JSONObject;
+import com.template.annotation.PassToken;
 import com.template.model.pojo.SmartAuthorGroup;
 import com.template.model.result.CommonResult;
 import io.swagger.annotations.Api;
@@ -28,6 +29,10 @@ public interface SmartAuthorGroupControllerAPI {
     @ApiOperation(value = "编辑权限组数据", notes = "编辑权限组数据", httpMethod = "POST")
     CommonResult updateSmartAuthorGroup(@Validated @RequestBody JSONObject jsonObject, Integer samePower) throws ParseException;
 
+    @RequestMapping(value = "/queryUserAuthor")
+    @ApiOperation(value = "查看用户个人权限", notes = "编辑权限组数据", httpMethod = "POST")
+    public CommonResult queryUserAuthor(@RequestParam String userId);
+
     @RequestMapping(value = "/querySmartAuthorGroup")
     @ApiOperation(value = "权限组分页数据", notes = "权限组分页数据", httpMethod = "GET")
     CommonResult querySmartAuthorGroup(@RequestParam Integer authorGroupId);

+ 40 - 0
src/main/java/com/template/api/SmartEvaluateStudentControllerAPI.java

@@ -0,0 +1,40 @@
+package com.template.api;
+
+import com.alibaba.fastjson.JSONObject;
+import com.template.model.evaluate.student.SmartEvaluateStudent;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/api/smartEvaluateStudent")
+@Api(tags = {"SmartEvaluateStudentControllerAPI"}, value = "学生评测")
+public interface SmartEvaluateStudentControllerAPI {
+
+    @RequestMapping(value = "/operateSmartSubjectManage")
+    @ApiOperation(value = "学科管理", httpMethod = "POST")
+    public CommonResult operateSmartSubjectManage(@Validated @RequestBody JSONObject jsonObject);
+
+    @RequestMapping(value = "/querySubjectManage")
+    @ApiOperation(value = "查看学科", httpMethod = "POST")
+    public CommonResult querySubjectManage(String term);
+
+    @RequestMapping(value = "/operateSmartSubjectRule")
+    @ApiOperation(value = "操作评分标准", httpMethod = "POST")
+    public CommonResult operateSmartSubjectRule(@Validated @RequestBody JSONObject jsonObject);
+
+    @RequestMapping(value = "/querySubjectRule")
+    @ApiOperation(value = "查看评分标准", httpMethod = "POST")
+    public CommonResult querySubjectRule(String term);
+
+    @RequestMapping(value = "/queryEvaluateStudent")
+    @ApiOperation(value = "查看评分标准", httpMethod = "POST")
+    public CommonResult queryEvaluateStudent(@Validated @RequestBody SmartEvaluateStudent smartEvaluateStudent,Integer currentPage, Integer pageCount);
+
+    @RequestMapping(value = "/evaluateScore")
+    @ApiOperation(value = "学生评分", httpMethod = "POST")
+    public CommonResult evaluateScore(@Validated @RequestBody JSONObject jsonObject);
+
+}

+ 50 - 0
src/main/java/com/template/api/SmartEvaluateTeacherControllerAPI.java

@@ -0,0 +1,50 @@
+package com.template.api;
+
+import com.alibaba.fastjson.JSONObject;
+import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import javax.servlet.http.HttpServletResponse;
+
+@RequestMapping("/api/smartEvaluateTeacher")
+@Api(tags = {"SmartEvaluateTeacherControllerAPI"}, value = "综合素质")
+public interface SmartEvaluateTeacherControllerAPI {
+
+    @RequestMapping(value = "/operateSmartScoreManage")
+    @ApiOperation(value = "评分项目管理", httpMethod = "POST")
+    public CommonResult operateSmartScoreManage(@Validated @RequestBody JSONObject jsonObject);
+
+    @RequestMapping(value = "/getScoreManage")
+    @ApiOperation(value = "查看评分项", httpMethod = "POST")
+    public CommonResult getScoreManage(String term);
+
+    @RequestMapping(value = "/getTeacherScoreList")
+    @ApiOperation(value = "查看教师评分", httpMethod = "POST")
+    public CommonResult getTeacherScoreList(@Validated @RequestBody SmartEvaluateTeacher smartEvaluateTeacher,Integer currentPage, Integer pageCount);
+
+    @RequestMapping(value = "/getTeacherScoreExcel")
+    @ApiOperation(value = "导出教师评分", httpMethod = "POST")
+    public void getTeacherScoreExcel(SmartEvaluateTeacher smartEvaluateTeacher, HttpServletResponse response);
+
+    @RequestMapping(value = "/evaluateScore")
+    @ApiOperation(value = "教师评分", httpMethod = "POST")
+    public CommonResult evaluateScore(@Validated @RequestBody JSONObject jsonObject);
+
+    @RequestMapping(value = "/getTeacherScoreDetail")
+    @ApiOperation(value = "获取教师分数详情", httpMethod = "POST")
+    public CommonResult getTeacherScoreDetail(Integer id);
+
+    @RequestMapping(value = "/getScoreComparison")
+    @ApiOperation(value = "分数对比", httpMethod = "POST")
+    public CommonResult getScoreComparison(Integer id);
+
+    @RequestMapping(value = "/getScoreRank")
+    @ApiOperation(value = "评分排行", httpMethod = "POST")
+    public CommonResult getScoreRank(int currentPage, int pageCount,String scoreItem);
+
+}

+ 1 - 1
src/main/java/com/template/api/WechatScanLoginControllerAPI.java

@@ -29,7 +29,7 @@ public interface WechatScanLoginControllerAPI {
     public String bindUserMac(String cardNo) throws UnsupportedEncodingException;
 
     @RequestMapping(value = "/bindcallback")
-    @ApiOperation(value = "绑定微信回调", httpMethod = "GET")
+    @ApiOperation(value = "绑定微信回调url", httpMethod = "GET")
     public String bindcallback(String code, String state, String cardNo) throws UnsupportedEncodingException;
 
     @RequestMapping(value = "/insertMonthMeter")

+ 43 - 0
src/main/java/com/template/common/jh/ReqRespResearchProductQuestionnaireItem.java

@@ -0,0 +1,43 @@
+package com.template.common.jh;
+
+import java.io.Serializable;
+
+public class ReqRespResearchProductQuestionnaireItem implements Serializable {
+    private static final long serialVersionUID = -2850886454687095222L;
+    private String minValue;
+    private String maxValue;
+    //"范围符号:1-大于/2-小于/3-等于/4-不等于/5-大于等于/6-小于等于/7-全闭区间/8-左闭右开区间/9-左开右闭区间/10-全开区间"
+    private Byte symbol;
+
+    public ReqRespResearchProductQuestionnaireItem( String minValue, String maxValue, Byte symbol) {
+        this.minValue = minValue;
+        this.maxValue = maxValue;
+        this.symbol = symbol;
+    }
+
+    public String getMinValue() {
+        return minValue;
+    }
+
+    public void setMinValue(String minValue) {
+        this.minValue = minValue;
+    }
+
+    public String getMaxValue() {
+        return maxValue;
+    }
+
+    public void setMaxValue(String maxValue) {
+        this.maxValue = maxValue;
+    }
+
+    public Byte getSymbol() {
+        return symbol;
+    }
+
+    public void setSymbol(Byte symbol) {
+        this.symbol = symbol;
+    }
+}
+
+

+ 243 - 0
src/main/java/com/template/common/jh/SectionUtil.java

@@ -0,0 +1,243 @@
+package com.template.common.jh;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @description: 区间工具类
+ * @author: wyj
+ * @time: 2020/3/1 15:05
+ */
+public class SectionUtil {
+    //最小值
+    private String min_entity;
+    //最大值
+    private String max_entity;
+    //左侧括号状态:false -开区间  true-- 闭区间
+    private boolean left_sate = false;
+    //右侧括号状态:false -开区间  true-- 闭区间
+    private boolean right_sate = false;
+    private SectionUtil() {
+
+    }
+
+    public SectionUtil(String min_entity, String max_entity, boolean left_sate, boolean right_sate) {
+        this.min_entity = min_entity;
+        this.max_entity = max_entity;
+        this.left_sate = left_sate;
+        this.right_sate = right_sate;
+    }
+
+    public String getMin_entity() {
+        return min_entity;
+    }
+
+    public String getMax_entity() {
+        return max_entity;
+    }
+
+    public boolean isLeft_sate() {
+        return left_sate;
+    }
+
+    public boolean isRight_sate() {
+        return right_sate;
+    }
+
+    /**
+     * @description: 创建负区间((负无穷,X])
+     * @param value 区间最大值
+     * @param right_sate 区间开闭状态
+     * @Date: 2020/3/2 14:37
+     */
+    public static SectionUtil creatFu(String value, boolean right_sate) {
+
+        return new SectionUtil("", value, false, right_sate);
+    }
+    /**
+     * @description: 创建正区间[X,正无穷))
+     * @param value 区间最小值
+     * @param left_sate 区间开闭状态
+     * @Date: 2020/3/2 14:37
+     */
+    public static SectionUtil creatZheng(String value, boolean left_sate) {
+
+        return new SectionUtil(value, "", left_sate, false);
+    }
+    /**
+     * @description: 创建闭合区间([X,Y])
+     * @param min   区间最小值
+     * @param max   区间最大值
+     * @param left_sate 区间左侧开闭状态
+     * @param right_sate 区间右侧开闭状态
+     * @return
+     * @Date: 2020/3/2 14:41
+     */
+    public static SectionUtil creat(String min, boolean left_sate, String max, boolean right_sate) {
+
+        return new SectionUtil(min, max, left_sate, right_sate);
+    }
+    /**
+     * @description:  将实体类转换成区间集合
+     * @param record  待转换的实体类
+     * @return 转换后的区间集合类(不等于时转换后为2个区间,所以采用集合)
+     * @Date: 2020/3/2 14:19
+     */
+    public static List<SectionUtil> getSections(ReqRespResearchProductQuestionnaireItem record) {
+        List<SectionUtil> list = new ArrayList<>();
+        String record_max = record.getMaxValue();
+        String record_min = record.getMinValue();
+        switch (record.getSymbol()) {
+            case 1:
+                list.add(creatZheng(record_max, false));
+                break;
+            case 2:
+                list.add(creatFu(record_max, false));
+                break;
+            case 3:
+                list.add(creat(record_max, true, record_max, true));
+                break;
+            case 4:
+                list.add(creatFu(record_max, false));
+                list.add(creatZheng(record_max, false));
+                break;
+            case 5:
+                list.add(creatZheng(record_max, true));
+                break;
+            case 6:
+                list.add(creatFu(record_max, true));
+                break;
+            case 7:
+                list.add(creat(record_min, true, record_max, true));
+                break;
+            case 8:
+                list.add(creat(record_min, true, record_max, false));
+                break;
+            case 9:
+                list.add(creat(record_min, false, record_max, true));
+                break;
+            case 10:
+                list.add(creat(record_min, false, record_max, false));
+                break;
+        }
+        return list;
+    }
+
+
+
+    public int compareTo(String first_value, String second_value) {
+        //first_value为空表示为正无穷,second_value为空表示为负无穷
+        if (isBlank(first_value) || isBlank(second_value)) {
+            return 1;
+        }
+        return compareToValue(first_value,second_value);
+    }
+    //判断字符串是否为空
+    public static boolean isBlank(String str) {
+        int strLen;
+        if (str == null || (strLen = str.length()) == 0) {
+            return true;
+        }
+        for (int i = 0; i < strLen; i++) {
+            if ((Character.isWhitespace(str.charAt(i)) == false)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * @param record 判断区间是否有重合
+     * @return true-有重合  false -无重合
+     * @description: 判断当前区间是否和指定区间重合
+     * @Date: 2020/3/2 10:20
+     */
+    public boolean isChonghe(SectionUtil record) {
+        String min_entity = record.getMin_entity();
+        String max_entity = record.getMax_entity();
+        boolean left_sate = record.isLeft_sate();
+        boolean right_sate = record.isRight_sate();
+        boolean left_isok = false;
+        boolean right_isok = false;
+        //重合条件,第一个区间最大值大于第二个区间最小值并且第一个区间的最小值小于第二个区间的最大值
+        //注意传值顺序,第一个值为第一个区间的最大值(此处不能反)
+        int first_result = compareTo(this.max_entity, min_entity);
+        if ((first_result == 0 && this.right_sate && left_sate) || (first_result > 0)) {
+            left_isok = true;
+        }
+        //注意传值顺序,第一个值为第二个区间的最大值(此处不能反)
+        int second_result = compareTo(max_entity, this.min_entity);
+        //此处本应该是second_result<0,但由于上一步参数传递时时反正传递,故此此处为second_result>0
+        if ((second_result == 0 && this.left_sate && right_sate) || second_result > 0) {
+            right_isok = true;
+        }
+        return left_isok && right_isok;
+    }
+    /**
+     * @description:   比较集合中区间是否有重叠
+     * @param list1 待比较集合1
+     * @param list2 待比较集合2
+     * @return
+     * @Date: 2020/3/2 11:49
+     */
+    public static boolean isChonghe(List<SectionUtil> list1, List<SectionUtil> list2) {
+        boolean chonghed = false;
+        for (SectionUtil item1 : list1) {
+            for (SectionUtil item2 : list2) {
+                chonghed = item1.isChonghe(item2);
+                if (chonghed) {
+                    return true;
+                }
+            }
+        }
+        return chonghed;
+    }
+
+    //比较大小
+    public static int compareToValue(String value1, String value2) {
+        BigDecimal b1 = new BigDecimal(value1);
+        BigDecimal b2 = new BigDecimal(value2);
+        return b1.compareTo(b2);
+    }
+
+    /**
+     * @description:   判断集合中区间是否重叠
+     * @param list  待判断集合
+     * @return  fasle-无重叠 true-有重叠
+     * @Date: 2020/3/3 14:51
+     */
+    public static boolean compareSection(List<ReqRespResearchProductQuestionnaireItem> list) {
+        for (int i = 0; i < list.size(); i++) {
+            ReqRespResearchProductQuestionnaireItem record = list.get(i);
+            for (int j = i + 1; j < list.size(); j++) {
+                ReqRespResearchProductQuestionnaireItem item = list.get(j);
+                //判断区间是否有交叉
+                List<SectionUtil> records = SectionUtil.getSections(record);
+                List<SectionUtil> items = SectionUtil.getSections(item);
+                boolean chonghe = SectionUtil.isChonghe(records, items);
+                if (chonghe) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    public static void main(String[] args) {
+        List<ReqRespResearchProductQuestionnaireItem> all = new ArrayList<>();
+        ReqRespResearchProductQuestionnaireItem re1 = new ReqRespResearchProductQuestionnaireItem("110","120", (byte) 7);
+        ReqRespResearchProductQuestionnaireItem re2 = new ReqRespResearchProductQuestionnaireItem("90","112", (byte) 7);
+        ReqRespResearchProductQuestionnaireItem re3 = new ReqRespResearchProductQuestionnaireItem("80","89", (byte) 7);
+        ReqRespResearchProductQuestionnaireItem re4 = new ReqRespResearchProductQuestionnaireItem("60","79", (byte) 7);
+        ReqRespResearchProductQuestionnaireItem re5 = new ReqRespResearchProductQuestionnaireItem("0","59", (byte) 7);
+        all.add(re1);
+        all.add(re2);
+        all.add(re3);
+        all.add(re4);
+        all.add(re5);
+        System.out.println(compareSection(all));
+    }
+}
+
+

+ 1 - 1
src/main/java/com/template/common/utils/TimeExchange2.java

@@ -9,7 +9,7 @@ import java.util.*;
 /**
  * 时间转化工具 date转为时间戳 时间戳转date 互相与String的转换
  * 所有出现的String time 格式都必须为(yyyy-MM-dd HH:mm:ss),否则出错
- * @author 赵仁杰
+ * @author 
  *
  */
 public class TimeExchange2 {

+ 28 - 0
src/main/java/com/template/controller/SmartAuthorGroupController.java

@@ -10,6 +10,7 @@ import com.template.common.utils.TreeRecordsUtil;
 import com.template.common.utils.UUIDUtil;
 import com.template.model.pojo.SmartAuthorGroup;
 import com.template.model.pojo.SmartAuthority;
+import com.template.model.pojo.SmartUser;
 import com.template.model.result.CommonResult;
 import com.template.model.weixin.AuthorAndGroup;
 import com.template.model.weixin.AuthorAndGroup2;
@@ -17,6 +18,7 @@ import com.template.model.weixin.AuthorListGroup;
 import com.template.model.weixin.userAuthor;
 import com.template.services.SmartAuthorGroupService;
 import com.template.services.SmartAuthorityService;
+import com.template.services.SmartUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import org.springframework.web.bind.annotation.RestController;
@@ -40,6 +42,8 @@ public class SmartAuthorGroupController implements SmartAuthorGroupControllerAPI
     private SmartAuthorGroupService smartAuthorGroupService;
     @Autowired
     public SmartAuthorityService smartAuthorityService;
+    @Autowired
+    public SmartUserService smartUserService;
 
     /**
      * 新增权限组
@@ -354,6 +358,30 @@ public class SmartAuthorGroupController implements SmartAuthorGroupControllerAPI
         return CommonResult.errorMsg("参数格式错误");
     }
 
+    @PassToken
+    @Override
+    public CommonResult queryUserAuthor(String userId){
+        QueryWrapper<SmartAuthority> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        queryWrapper1.eq("user_id", userId);
+        List<SmartAuthority> userAuthor = smartAuthorityService.getAuthorByKey(queryWrapper1);
+        if (userAuthor.size()<=0){
+            return CommonResult.ok(new ArrayList<>());
+        }
+        SmartAuthority smartAuthority = userAuthor.get(0);
+        Integer groupId = smartAuthority.getGroupId();
+        SmartAuthorGroup smartAuthorGroup = smartAuthorGroupService.getSmartById(groupId);
+        if (smartAuthorGroup==null){
+            return CommonResult.ok(new ArrayList<>());
+        }
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("departmentViewAuthor", smartAuthority.getDepartmentView());
+        jsonObject.put("departmentManageAuthor", smartAuthority.getDepartmentManage());
+        if (smartAuthorGroup.getDeleted()==0){
+            jsonObject.put("treAuthor", smartAuthorGroup.getApplyId());
+        }
+        return CommonResult.ok(jsonObject);
+    }
     /**
      * 查看权限列表
      * @return

+ 2 - 1
src/main/java/com/template/controller/SmartDataSourceController.java

@@ -1,6 +1,7 @@
 package com.template.controller;
 
 
+import com.github.pagehelper.PageInfo;
 import com.template.api.SmartDataSourceControllerAPI;
 import com.template.common.utils.CommonUtil;
 import com.template.common.utils.paramUtils;
@@ -114,7 +115,7 @@ public class SmartDataSourceController implements SmartDataSourceControllerAPI {
      */
     @Override
     public CommonResult queryPageSmartDataSources(int currentPage, int pageCount, SmartDataSource smartDataSource) {
-        PageUtils<SmartDataSource> result = smartDataSourceService.queryPageSmartDataSources(currentPage, pageCount, smartDataSource);
+        PageInfo<SmartDataSource> result = smartDataSourceService.queryPageSmartDataSources(currentPage, pageCount, smartDataSource);
 
         return CommonResult.ok(result);
     }

+ 254 - 0
src/main/java/com/template/controller/SmartEvaluateStudentController.java

@@ -0,0 +1,254 @@
+package com.template.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.template.annotation.PassToken;
+import com.template.api.SmartEvaluateStudentControllerAPI;
+import com.template.common.jh.ReqRespResearchProductQuestionnaireItem;
+import com.template.common.jh.SectionUtil;
+import com.template.common.utils.UUIDUtil;
+import com.template.model.evaluate.student.*;
+import com.template.model.evaluate.teacher.SimpleScore;
+import com.template.model.evaluate.teacher.SmartEvaluateTdetail;
+import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
+import com.template.model.result.CommonResult;
+import com.template.model.result.PageUtils;
+import com.template.services.SmartEvaluateSdetailService;
+import com.template.services.SmartEvaluateStudentService;
+import com.template.services.SmartSubjectManageService;
+import com.template.services.SmartSubjectRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@RestController
+public class SmartEvaluateStudentController implements SmartEvaluateStudentControllerAPI {
+
+    @Autowired
+    public SmartSubjectManageService smartSubjectManageService;
+    @Autowired
+    public SmartSubjectRuleService smartSubjectRuleService;
+    @Autowired
+    public SmartEvaluateStudentService smartEvaluateStudentService;
+    @Autowired
+    public SmartEvaluateSdetailService smartEvaluateSdetailService;
+
+    @PassToken
+    public CommonResult operateSmartSubjectManage(JSONObject jsonObject){
+        SubjectManageList subjectManageList = null;
+        try {
+            subjectManageList = JSONObject.parseObject(jsonObject.toString(), SubjectManageList.class);
+        } catch (Exception e){
+            return CommonResult.errorMsg("参数格式错误");
+        }
+        List<SmartSubjectManage> allList = subjectManageList.getSubjectList();
+        System.out.println("==="+allList);
+        List<String> subjectLists = allList.stream().filter(e->e.getDeleted()==0).map(m->m.getTerm()+m.getName()).collect(Collectors.toList());
+        Set<String> mainScoreSet = new HashSet<>(subjectLists);
+        if (subjectLists.size()!=mainScoreSet.size()){
+            return CommonResult.fail("存在重复学科");
+        }
+        QueryWrapper<SmartEvaluateSdetail> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        queryWrapper1.eq("term",allList.get(0).getTerm());
+        List<SmartEvaluateSdetail> smartEvaluateTdetails = smartEvaluateSdetailService.getSmartEvaluateSdetailByKey(queryWrapper1);
+        if (smartEvaluateTdetails.size()>0){
+            return CommonResult.fail("该学期已有评测数据,不可再更改");
+        }
+        for (int i = 0; i < allList.size(); i++) {
+            SmartSubjectManage smartSubjectManage = allList.get(i);
+            if (smartSubjectManage.getId()==null){
+                smartSubjectManage.setId((int) UUIDUtil.generateID());
+            }
+            SmartSubjectManage listc = smartSubjectManageService.getSmartSubjectManageById(smartSubjectManage.getId());
+            if (listc==null){
+                smartSubjectManageService.insertSmartSubjectManage(smartSubjectManage);
+            } else {
+                smartSubjectManageService.updateSmartSubjectManage(smartSubjectManage);
+            }
+        }
+        return CommonResult.ok("操作成功");
+    }
+
+    @PassToken
+    public CommonResult querySubjectManage(String term){
+        if (term==null){
+            term=smartSubjectManageService.getMaxTerm();
+        }
+        QueryWrapper<SmartSubjectManage> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        queryWrapper1.eq("term",term);
+        List<SmartSubjectManage> list = smartSubjectManageService.getSmartSubjectManageByKey(queryWrapper1);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("subjectList", list);
+        return CommonResult.ok(jsonObject);
+    }
+
+    @PassToken
+    public CommonResult operateSmartSubjectRule(JSONObject jsonObject){
+        SmartSubjectRuleOutList smartSubjectRuleOutList = null;
+        try {
+            smartSubjectRuleOutList = JSONObject.parseObject(jsonObject.toString(), SmartSubjectRuleOutList.class);
+        } catch (Exception e){
+            return CommonResult.errorMsg("参数格式错误");
+        }
+        List<SmartSubjectRuleInList> outList = smartSubjectRuleOutList.getSmartSubjectRuleInLists();
+        List<SmartSubjectRule> data = new ArrayList<>();
+        for (int i = 0; i < outList.size(); i++) {
+            String subjectName = outList.get(i).getSubjectName();
+            String term = outList.get(i).getTerm();
+            List<SmartSubjectRule> smartSubjectRules = outList.get(i).getSubjectRuleList();
+            List<String> ruleList = smartSubjectRules.stream().filter(e->e.getDeleted()==0).map(SmartSubjectRule::getLevel).collect(Collectors.toList());
+            Set<String> ruleSet = new HashSet<>(ruleList);
+            if (ruleList.size()!=ruleSet.size()){
+                return CommonResult.fail("存在重复等级");
+            }
+            List<String> rangeList = smartSubjectRules.stream().filter(e->e.getDeleted()==0).map(SmartSubjectRule::getScoreRange).collect(Collectors.toList());
+            List<ReqRespResearchProductQuestionnaireItem> all = new ArrayList<>();
+            for (int j = 0; j < rangeList.size(); j++) {
+                String[] ls = rangeList.get(j).split("-");
+                ReqRespResearchProductQuestionnaireItem re = new ReqRespResearchProductQuestionnaireItem(ls[0],ls[1], (byte) 7);
+                all.add(re);
+            }
+            if (SectionUtil.compareSection(all)){
+                return CommonResult.fail("存在重复区间");
+            }
+            for (int j = 0; j < smartSubjectRules.size(); j++) {
+                SmartSubjectRule smartSubjectRule = smartSubjectRules.get(j);
+                if (smartSubjectRule.getId()==null){
+                    smartSubjectRule.setId((int) UUIDUtil.generateID());
+                }
+                smartSubjectRule.setSubjectName(subjectName);
+                smartSubjectRule.setTerm(term);
+                data.add(smartSubjectRule);
+            }
+        }
+        for (int i = 0; i < data.size(); i++) {
+            SmartSubjectRule smartSubjectRule = data.get(i);
+            SmartSubjectRule rule = smartSubjectRuleService.getSmartSubjectRuleById(smartSubjectRule.getId());
+            if (rule==null) {
+                smartSubjectRuleService.insertSmartSubjectRule(smartSubjectRule);
+            } else {
+                smartSubjectRuleService.updateSmartSubjectRule(smartSubjectRule);
+            }
+        }
+        return CommonResult.ok("操作成功");
+    }
+
+    @PassToken
+    public CommonResult querySubjectRule(String term){
+        if (term==null){
+            term=smartSubjectManageService.getMaxTerm();
+        }
+        QueryWrapper<SmartSubjectManage> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        queryWrapper1.eq("term",term);
+        queryWrapper1.eq("shows", 1);
+        List<SmartSubjectManage> list = smartSubjectManageService.getSmartSubjectManageByKey(queryWrapper1);
+        JSONObject jsonObject1 = new JSONObject();
+        List<JSONObject> lj = new ArrayList<>();
+        for (int i = 0; i < list.size(); i++) {
+            QueryWrapper<SmartSubjectRule> queryWrapper2 = new QueryWrapper<>();
+            queryWrapper2.eq("deleted", 0);
+            queryWrapper2.eq("term",term);
+            queryWrapper2.eq("subject_name", list.get(i).getName());
+            List<SmartSubjectRule> list2 = smartSubjectRuleService.getSmartSubjectRuleByKey(queryWrapper2);
+            JSONObject jsonObject2 = new JSONObject();
+            jsonObject2.put("subjectName",list.get(i).getName());
+            jsonObject2.put("term", term);
+            jsonObject2.put("subjectRuleList",list2);
+            lj.add(jsonObject2);
+            jsonObject1.put("smartSubjectRuleInLists",lj);
+        }
+        return CommonResult.ok(jsonObject1);
+    }
+
+    @PassToken
+    public CommonResult queryEvaluateStudent(SmartEvaluateStudent smartEvaluateStudent,Integer currentPage, Integer pageCount){
+        QueryWrapper<SmartEvaluateStudent> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        if (smartEvaluateStudent.getName()!=null && !smartEvaluateStudent.getName().trim().equals("")){
+            queryWrapper1.and(qw->qw.like("name", smartEvaluateStudent.getName()).or().like("card_no", smartEvaluateStudent.getName()));
+        }
+        if (smartEvaluateStudent.getTerm()!=null && !smartEvaluateStudent.getTerm().trim().equals("")){
+            queryWrapper1.like("term", smartEvaluateStudent.getTerm());
+        }
+        if (smartEvaluateStudent.getGradeName()!=null && !smartEvaluateStudent.getGradeName().trim().equals("")){
+            queryWrapper1.eq("grade_name", smartEvaluateStudent.getGradeName());
+        }
+        if (smartEvaluateStudent.getClassName()!=null && !smartEvaluateStudent.getClassName().trim().equals("")){
+            queryWrapper1.eq("class_name", smartEvaluateStudent.getClassName());
+        }
+        if (smartEvaluateStudent.getScoreLevel()!=null && !smartEvaluateStudent.getScoreLevel().trim().equals("")){
+            queryWrapper1.eq("score_level", smartEvaluateStudent.getClassName());
+        }
+        queryWrapper1.orderByDesc("id");
+        PageUtils<SmartEvaluateStudent> list = smartEvaluateStudentService.queryPageSmartEvaluateStudent(currentPage,pageCount,queryWrapper1);
+        return CommonResult.ok(list);
+    }
+
+    @PassToken
+    public CommonResult evaluateScore(JSONObject jsonObject){
+        SmartEvaluateSdetailList smartEvaluateSdetailList = null;
+        try {
+            smartEvaluateSdetailList = JSONObject.parseObject(jsonObject.toString(), SmartEvaluateSdetailList.class);
+        } catch (Exception e){
+            return CommonResult.errorMsg("参数格式错误");
+        }
+        Integer id = smartEvaluateSdetailList.getId();
+        List<SmartEvaluateSdetail> scoreList = smartEvaluateSdetailList.getScoreList();
+        SmartEvaluateStudent student = smartEvaluateStudentService.getSmartEvaluateStudentById(id);
+        double total = 0;
+        for (int i = 0; i < scoreList.size(); i++) {
+            SmartEvaluateSdetail smartEvaluateSdetail = scoreList.get(i);
+            if (smartEvaluateSdetail.getId()==null){
+                smartEvaluateSdetail.setId((int) UUIDUtil.generateID());
+            }
+            total+=smartEvaluateSdetail.getScoreNum();
+            smartEvaluateSdetail.setTerm(student.getTerm());
+            smartEvaluateSdetail.setCardNo(student.getCardNo());
+            QueryWrapper<SmartSubjectRule> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("deleted", 0);
+            queryWrapper1.eq("subject_name", smartEvaluateSdetail.getSubjectName());
+            List<SmartSubjectRule> rule = smartSubjectRuleService.getSmartSubjectRuleByKey(queryWrapper1);
+            String scoreLevel = "";
+            for (int j = 0; j < rule.size(); j++) {
+                String[] range = rule.get(j).getScoreRange().split("-");
+                double min = Double.parseDouble(range[0]);
+                double max = Double.parseDouble(range[1]);
+                if (smartEvaluateSdetail.getScoreNum()>=min && smartEvaluateSdetail.getScoreNum()<=max){
+                    scoreLevel = rule.get(i).getLevel();
+                    break;
+                }
+            }
+            smartEvaluateSdetail.setScoreLevel(scoreLevel);
+            SmartEvaluateSdetail listc = smartEvaluateSdetailService.getSmartEvaluateSdetailById(smartEvaluateSdetail.getId());
+            if (listc==null){
+                smartEvaluateSdetailService.insertSmartEvaluateSdetail(smartEvaluateSdetail);
+            } else {
+                smartEvaluateSdetailService.updateSmartEvaluateSdetail(smartEvaluateSdetail);
+            }
+        }
+        student.setScoreComment(smartEvaluateSdetailList.getScoreComment());
+        student.setScoreNum(total);
+        String scoreLevel = "";
+        QueryWrapper<SmartSubjectRule> queryWrapper2 = new QueryWrapper<>();
+        queryWrapper2.eq("deleted", 0);
+        queryWrapper2.eq("subject_name", "平均成绩");
+        List<SmartSubjectRule> rule = smartSubjectRuleService.getSmartSubjectRuleByKey(queryWrapper2);
+        for (int i = 0; i < rule.size(); i++) {
+            String[] range = rule.get(i).getScoreRange().split("-");
+            double min = Double.parseDouble(range[0]);
+            double max = Double.parseDouble(range[1]);
+            if (total>=min && total<=max){
+                scoreLevel = rule.get(i).getLevel();
+                break;
+            }
+        }
+        student.setScoreLevel(scoreLevel);
+        smartEvaluateStudentService.updateSmartEvaluateStudent(student);
+        return CommonResult.ok();
+    }
+}

+ 341 - 0
src/main/java/com/template/controller/SmartEvaluateTeacherController.java

@@ -0,0 +1,341 @@
+package com.template.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.template.annotation.PassToken;
+import com.template.api.SmartEvaluateTeacherControllerAPI;
+import com.template.common.utils.ExcelUtils;
+import com.template.common.utils.UUIDUtil;
+import com.template.model.evaluate.teacher.*;
+import com.template.model.result.CommonResult;
+import com.template.model.result.PageUtils;
+import com.template.services.SmartEvaluateTdetailService;
+import com.template.services.SmartEvaluateTeacherService;
+import com.template.services.SmartScoreManageService;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@RestController
+public class SmartEvaluateTeacherController implements SmartEvaluateTeacherControllerAPI {
+
+    @Autowired
+    public SmartEvaluateTdetailService smartEvaluateTdetailService;
+    @Autowired
+    public SmartEvaluateTeacherService smartEvaluateTeacherService;
+    @Autowired
+    public SmartScoreManageService smartScoreManageService;
+
+    @PassToken
+    public CommonResult operateSmartScoreManage(JSONObject jsonObject) {
+        SimpleScore simpleScoreLists = null;
+        try {
+            simpleScoreLists = JSONObject.parseObject(jsonObject.toString(), SimpleScore.class);
+        } catch (Exception e){
+            return CommonResult.errorMsg("参数格式错误");
+        }
+        List<SmartScoreManageList> allList = simpleScoreLists.getSimpleScoreList();
+        List<String> mainScoreItems =allList.stream().filter(e->e.getDeleted()==0).map(m->m.getTerm()+m.getScoreItem()).collect(Collectors.toList());
+        Set<String> mainScoreSet = new HashSet<>(mainScoreItems);
+        if (mainScoreItems.size()!=mainScoreSet.size()){
+            return CommonResult.fail("存在重复主项");
+        }
+        String term = allList.get(0).getTerm();
+        QueryWrapper<SmartEvaluateTdetail> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        queryWrapper1.eq("term",term);
+        List<SmartEvaluateTdetail> smartEvaluateTdetails = smartEvaluateTdetailService.getEvaluateTdetailByKey(queryWrapper1);
+        if (smartEvaluateTdetails.size()>0){
+            return CommonResult.fail("该学期已评分,不可再操作");
+        }
+        List<SmartScoreManage> smList = new ArrayList<>();
+        for (int i = 0; i < allList.size(); i++) {
+            SmartScoreManage mainScoreManage = new SmartScoreManage();
+            double mainScoreNum = 0;
+            if (allList.get(i).getId()==null){
+                allList.get(i).setId((int) UUIDUtil.generateID());
+            }
+            mainScoreManage.setId(allList.get(i).getId());
+            mainScoreManage.setTerm(term);
+            mainScoreManage.setScoreItem(allList.get(i).getScoreItem());
+            mainScoreManage.setParentId(allList.get(i).getParentId());
+            mainScoreManage.setDeleted(allList.get(i).getDeleted());
+            List<SmartScoreManageList> childList = allList.get(i).getSmartScoreManageList();
+            List<String> scoreItems =childList.stream().filter(e->e.getDeleted()==0).map(m->term+m.getScoreItem()).collect(Collectors.toList());
+            Set<String> ScoreSet = new HashSet<>(scoreItems);
+            if (scoreItems.size()!=ScoreSet.size()){
+                return CommonResult.fail("存在重复子项");
+            }
+            for (int j = 0; j < childList.size(); j++) {
+                SmartScoreManage childScoreManage = new SmartScoreManage();
+                if (childList.get(j).getId()==null){
+                    childList.get(j).setId((int) UUIDUtil.generateID());
+                }
+                childScoreManage.setId(childList.get(j).getId());
+                childScoreManage.setTerm(term);
+                childScoreManage.setScoreItem(childList.get(j).getScoreItem());
+                childScoreManage.setParentId(allList.get(i).getId());
+                childScoreManage.setScoreNum(childList.get(j).getScoreNum());
+                childScoreManage.setDeleted(childList.get(j).getDeleted());
+                smList.add(childScoreManage);
+                mainScoreNum+=childList.get(j).getScoreNum();
+            }
+            mainScoreManage.setScoreNum(mainScoreNum);
+            smList.add(mainScoreManage);
+        }
+        for (int i = 0; i < smList.size(); i++) {
+            // 相关判断
+            SmartScoreManage scoreManage = smList.get(i);
+            SmartScoreManage sc = smartScoreManageService.getSmartScoreManageById(scoreManage.getId());
+            if (sc==null){
+                smartScoreManageService.insertSmartScoreManage(scoreManage);
+            } else {
+                smartScoreManageService.updateSmartScoreManage(scoreManage);
+            }
+        }
+        return CommonResult.ok("操作成功");
+    }
+
+    @PassToken
+    public CommonResult getScoreManage(String term){
+        if (term==null){
+            term=smartScoreManageService.getMaxTerm();
+        }
+        SimpleScore simpleScore = smartScoreManageService.queryScoreDetail(term);
+        return CommonResult.ok(simpleScore);
+    }
+
+    @PassToken
+    public CommonResult getTeacherScoreList(SmartEvaluateTeacher smartEvaluateTeacher,Integer currentPage, Integer pageCount){
+        QueryWrapper<SmartEvaluateTeacher> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("deleted", 0);
+        if (smartEvaluateTeacher.getName()!=null && !smartEvaluateTeacher.getName().trim().equals("")){
+            queryWrapper.and(qw->qw.like("name", smartEvaluateTeacher.getName()).or().like("card_no", smartEvaluateTeacher.getName()));
+        }
+        if (smartEvaluateTeacher.getTerm()!=null && !smartEvaluateTeacher.getTerm().trim().equals("")){
+            queryWrapper.like("term", smartEvaluateTeacher.getTerm());
+        }
+        if (smartEvaluateTeacher.getSubject()!=null && !smartEvaluateTeacher.getSubject().trim().equals("")){
+            queryWrapper.eq("subject", smartEvaluateTeacher.getSubject());
+        }
+        if (smartEvaluateTeacher.getClassName()!=null && !smartEvaluateTeacher.getClassName().trim().equals("")){
+            queryWrapper.eq("class_name", smartEvaluateTeacher.getClassName());
+        }
+        queryWrapper.orderByDesc("id");
+        PageUtils<SmartEvaluateTeacher> list = smartEvaluateTeacherService.queryPageSmartEvaluateTeacher(currentPage,pageCount,queryWrapper);
+        return CommonResult.ok(list);
+    }
+
+    @PassToken
+    public void getTeacherScoreExcel(SmartEvaluateTeacher smartEvaluateTeacher, HttpServletResponse response){
+        String term = smartScoreManageService.getMaxTerm();
+        QueryWrapper<SmartEvaluateTeacher> queryWrapper = new QueryWrapper<>();
+        if (smartEvaluateTeacher.getName()!=null && !smartEvaluateTeacher.getName().trim().equals("")){
+            queryWrapper.and(qw->qw.like("name", smartEvaluateTeacher.getName()).or().like("card_no", smartEvaluateTeacher.getName()));
+        }
+        if (smartEvaluateTeacher.getTerm()!=null && !smartEvaluateTeacher.getTerm().trim().equals("")){
+            queryWrapper.like("term", smartEvaluateTeacher.getTerm());
+        } else {
+            queryWrapper.like("term", term);
+        }
+        if (smartEvaluateTeacher.getSubject()!=null && !smartEvaluateTeacher.getSubject().trim().equals("")){
+            queryWrapper.eq("subject", smartEvaluateTeacher.getSubject());
+        }
+        if (smartEvaluateTeacher.getClassName()!=null && !smartEvaluateTeacher.getClassName().trim().equals("")){
+            queryWrapper.eq("class_name", smartEvaluateTeacher.getClassName());
+        }
+        List<SmartEvaluateTeacher> outlist = smartEvaluateTeacherService.getEvaluateTeacherByKey(queryWrapper);
+        //导出
+        Workbook workbook = new XSSFWorkbook();
+        Sheet sheet = workbook.createSheet("教师评分明细");
+        Row headerRow = sheet.createRow(0);
+        headerRow.createCell(0).setCellValue("序号");
+        headerRow.createCell(1).setCellValue("工号");
+        headerRow.createCell(2).setCellValue("姓名");
+        headerRow.createCell(3).setCellValue("学期");
+        headerRow.createCell(4).setCellValue("学科");
+        headerRow.createCell(5).setCellValue("班级");
+        QueryWrapper<SmartScoreManage> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        queryWrapper1.eq("parent_id", 0);
+        queryWrapper1.eq("term", term);
+        List<SmartScoreManage> scoreManageList = smartScoreManageService.getScoreManageByKey(queryWrapper1);
+        for (int i = 0; i < scoreManageList.size(); i++) {
+            headerRow.createCell(i+6).setCellValue(scoreManageList.get(i).getScoreItem());
+        }
+        headerRow.createCell(scoreManageList.size()+6).setCellValue("总分");
+        for (int i = 0; i < outlist.size(); i++) {
+            SmartEvaluateTeacher teacherScore = outlist.get(i);
+
+            Row dataRow = sheet.createRow(i + 1);
+            dataRow.createCell(0).setCellValue(i + 1);
+            dataRow.createCell(1).setCellValue(teacherScore.getCardNo());
+            dataRow.createCell(2).setCellValue(teacherScore.getName());
+            dataRow.createCell(3).setCellValue(teacherScore.getTerm());
+            dataRow.createCell(4).setCellValue(teacherScore.getSubject());
+            dataRow.createCell(5).setCellValue(teacherScore.getClassName());
+            // 分数详情
+            JSONObject scoreDetail = JSON.parseObject(teacherScore.getEvaluateDetail());
+            for (int j = 0; j < scoreManageList.size(); j++) {
+                for (Map.Entry entry : scoreDetail.entrySet()) {
+                    if (scoreManageList.get(j).getScoreItem().equals(entry.getKey())) {
+                        dataRow.createCell(j+6).setCellValue(entry.getValue().toString());
+                    }
+                }
+            }
+        }
+        // 将工作簿写入文件
+        ExcelUtils.excelDownload(workbook, "教师评测信息.xlsx", response);
+    }
+
+    @PassToken
+    public CommonResult evaluateScore(JSONObject jsonObject){
+        SimpleEvaluateScore simpleEvaluateScore = null;
+        try {
+            simpleEvaluateScore = JSONObject.parseObject(jsonObject.toString(), SimpleEvaluateScore.class);
+        } catch (Exception e){
+            return CommonResult.errorMsg("参数格式错误");
+        }
+        SmartEvaluateTeacher teacher = smartEvaluateTeacherService.getSmartEvaluateTeacherById(simpleEvaluateScore.getId());
+        teacher.setLowingScore(simpleEvaluateScore.getLowingScore());
+        teacher.setTotalScore(simpleEvaluateScore.getTotalScore());
+        JSONObject desScore = new JSONObject();
+        List<SmartEvaluateTdetailList> mainList = simpleEvaluateScore.getSimpleScoreList();
+        List<SmartEvaluateTdetail> lse = new ArrayList<>();
+        for (int i = 0; i < mainList.size(); i++) {
+            if (mainList.get(i).getDeleted()==0){
+                desScore.put(mainList.get(i).getScoreItem(), mainList.get(i).getOwnNum());
+            }
+            SmartEvaluateTdetail mainLse = new SmartEvaluateTdetail();
+            mainLse.setId(mainList.get(i).getId()==null? (int) UUIDUtil.generateID() :mainList.get(i).getId());
+            mainLse.setCardNo(teacher.getCardNo());
+            mainLse.setTerm(teacher.getTerm());
+            mainLse.setScoreItem(mainList.get(i).getScoreItem());
+            mainLse.setParentId(mainList.get(i).getParentId());
+            mainLse.setScoreNum(mainList.get(i).getScoreNum());
+            mainLse.setOwnNum(mainList.get(i).getOwnNum());
+            mainLse.setDeleted(mainList.get(i).getDeleted());
+            lse.add(mainLse);
+            List<SmartEvaluateTdetailList> childScoreList = mainList.get(i).getEvaluateList();
+            for (int j = 0; j < childScoreList.size(); j++) {
+                SmartEvaluateTdetailList childScore = childScoreList.get(j);
+                SmartEvaluateTdetail childLse = new SmartEvaluateTdetail();
+                childLse.setId(childScore.getId()==null? (int) UUIDUtil.generateID() :childScore.getId());
+                childLse.setCardNo(teacher.getCardNo());
+                childLse.setTerm(teacher.getTerm());
+                childLse.setScoreItem(childScore.getScoreItem());
+                childLse.setParentId(mainLse.getId());
+                childLse.setScoreNum(childScore.getScoreNum());
+                childLse.setOwnNum(childScore.getOwnNum());
+                childLse.setDeleted(childScore.getDeleted());
+                lse.add(childLse);
+            }
+        }
+        for (int i = 0; i < lse.size(); i++) {
+            SmartEvaluateTdetail scoreDetail = lse.get(i);
+            SmartEvaluateTdetail listc = smartEvaluateTdetailService.getSmartEvaluateTdetailById(scoreDetail.getId());
+            if (listc==null){
+                smartEvaluateTdetailService.insertSmartEvaluateTdetail(scoreDetail);
+            } else {
+                smartEvaluateTdetailService.updateSmartEvaluateTdetail(scoreDetail);
+            }
+        }
+        teacher.setTotalScore(simpleEvaluateScore.getTotalScore());
+        teacher.setLowingScore(simpleEvaluateScore.getLowingScore());
+        teacher.setEvaluateDetail(desScore.toString());
+        smartEvaluateTeacherService.updateSmartEvaluateTeacher(teacher);
+        return CommonResult.ok();
+    }
+
+    @PassToken
+    public CommonResult getTeacherScoreDetail(Integer id){
+        SmartEvaluateTeacher teacher = smartEvaluateTeacherService.getSmartEvaluateTeacherById(id);
+        if (teacher==null){
+            return CommonResult.fail("该条记录已删除");
+        }
+        if (teacher.getEvaluateDetail()==null){
+            SimpleScoreDetailList simpleScoreDetailList = smartScoreManageService.queryNoTeacherScoreDetail(teacher.getTerm());
+            JSONObject resultJson = new JSONObject();
+            resultJson.put("id", teacher.getId());
+            resultJson.put("totalScore", 0);
+            resultJson.put("lowingScore", 0);
+            resultJson.put("simpleScoreList",simpleScoreDetailList);
+            return CommonResult.ok(resultJson);
+        }
+        QueryWrapper<SmartScoreManage> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        queryWrapper1.eq("parent_id", 0);
+        queryWrapper1.eq("term", teacher.getTerm());
+        List<SmartScoreManage> scoreManageList = smartScoreManageService.getScoreManageByKey(queryWrapper1);
+        int totalScore = 0;
+        for (int i = 0; i < scoreManageList.size(); i++) {
+            totalScore+=scoreManageList.get(i).getScoreNum();
+        }
+        QueryWrapper<SmartEvaluateTdetail> queryWrapper2 = new QueryWrapper<>();
+        queryWrapper2.eq("deleted", 0);
+        queryWrapper2.eq("parent_id", 0);
+        queryWrapper2.eq("term", teacher.getTerm());
+        List<SmartEvaluateTdetail> scoreDetailList = smartEvaluateTdetailService.getEvaluateTdetailByKey(queryWrapper2);
+        int ownTotalScore = 0;
+        int lowingScore = 0;
+        for (int i = 0; i < scoreDetailList.size(); i++) {
+            ownTotalScore+=scoreDetailList.get(i).getOwnNum();
+        }
+        lowingScore=totalScore-ownTotalScore;
+        SimpleScoreDetailList simpleScoreDetailList = smartScoreManageService.queryTeacherScoreDetail(teacher.getTerm(),teacher.getCardNo());
+        JSONObject resultJson = new JSONObject();
+        resultJson.put("id", teacher.getId());
+        resultJson.put("totalScore", ownTotalScore);
+        resultJson.put("lowingScore", lowingScore);
+        resultJson.put("simpleScoreList",simpleScoreDetailList);
+        return CommonResult.ok(resultJson);
+    }
+
+    @PassToken
+    public CommonResult getScoreComparison(Integer id){
+        SmartEvaluateTeacher teacher = smartEvaluateTeacherService.getSmartEvaluateTeacherById(id);
+        QueryWrapper<SmartEvaluateTdetail> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        queryWrapper1.eq("parent_id", 0);
+        queryWrapper1.eq("term", teacher.getTerm());
+        queryWrapper1.eq("card_no",teacher.getCardNo());
+        List<SmartEvaluateTdetail> detailList = smartEvaluateTdetailService.getEvaluateTdetailByKey(queryWrapper1);
+        List<JSONObject> resultJson = new ArrayList<>();
+        for (int i = 0; i < detailList.size(); i++) {
+            JSONObject jsonObject = new JSONObject();
+            SmartEvaluateTdetail smartEvaluateTdetail = detailList.get(i);
+            double avgScore = smartEvaluateTdetailService.getAvgEvaluateScore(teacher.getTerm(),smartEvaluateTdetail.getScoreItem());
+            jsonObject.put("name", smartEvaluateTdetail.getScoreItem());
+            jsonObject.put("ownScore", smartEvaluateTdetail.getOwnNum());
+            jsonObject.put("avgScore", avgScore);
+            resultJson.add(jsonObject);
+        }
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("name", "扣");
+        jsonObject.put("ownScore",teacher.getLowingScore());
+        jsonObject.put("avgScore", smartEvaluateTeacherService.getAvgLowingScore(teacher.getTerm()));
+        resultJson.add(jsonObject);
+        return CommonResult.ok(resultJson);
+    }
+
+    @PassToken
+    public CommonResult getScoreRank(int currentPage, int pageCount,String scoreItem){
+        QueryWrapper<SmartEvaluateTdetail> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("term", smartScoreManageService.getMaxTerm());
+        queryWrapper1.eq("parent_id", 0);
+        if (scoreItem!=null){
+            queryWrapper1.eq("score_item", scoreItem);
+        }
+        queryWrapper1.orderByDesc("own_num");
+        PageUtils<SmartEvaluateTdetail> list = smartEvaluateTdetailService.queryPageSmartEvaluateTdetail(currentPage,pageCount,queryWrapper1);
+        return CommonResult.ok(list);
+    }
+}

+ 27 - 2
src/main/java/com/template/controller/WechatScanLoginController.java

@@ -1,6 +1,7 @@
 package com.template.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.util.StringUtil;
@@ -11,6 +12,8 @@ import com.template.api.WechatScanLoginControllerAPI;
 import com.template.common.constanst.Constanst;
 import com.template.common.result.ResponseStatusEnum;
 import com.template.common.utils.*;
+import com.template.model.evaluate.student.SmartEvaluateStudent;
+import com.template.model.pojo.SmartAuthority;
 import com.template.model.pojo.SmartUser;
 import com.template.model.result.CommonResult;
 import com.template.model.result.PageUtils;
@@ -19,6 +22,8 @@ import com.template.model.vo.LoginVO;
 import com.template.model.weixin.AccessToken;
 import com.template.model.weixin.HttpParame;
 import com.template.model.weixin.WechatUserUnionID;
+import com.template.services.SmartAuthorGroupService;
+import com.template.services.SmartAuthorityService;
 import com.template.services.SmartUserService;
 import com.template.services.WechatScanLoginService;
 import org.apache.commons.lang3.StringUtils;
@@ -52,6 +57,10 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
 	private WechatScanLoginService wechatScanLoginService;
 	@Autowired
 	public SmartUserService smartUserService;
+	@Autowired
+	public SmartAuthorityService smartAuthorityService;
+	@Autowired
+	public SmartAuthorGroupService smartAuthorGroupService;
 
 	/**
 	 * Title: list
@@ -100,7 +109,15 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
 					return "redirect:"+HttpParame.FRONT_URI+"/#/login?message=" + URLEncoder.encode("请绑定信息", "UTF-8");
 				} else {
 					String token = JWTUtil.getToken(user);
-					return "redirect:"+HttpParame.FRONT_URI+"/#/wanzai/home?token=" + token;
+					QueryWrapper<SmartAuthority> queryWrapper1 = new QueryWrapper<>();
+					queryWrapper1.eq("deleted", 0);
+					queryWrapper1.eq("user_id", user.getId());
+					List<SmartAuthority> query = smartAuthorityService.getAuthorByKey(queryWrapper1);
+					if (query.size()>0){
+						return "redirect:"+HttpParame.FRONT_URI+"/#/wanzai/home?token=" + token;
+					} else {
+						return "redirect:"+HttpParame.FRONT_URI+"/#/login?message=" + URLEncoder.encode("无登录权限", "UTF-8");
+					}
 				}
 			}
 		}
@@ -152,7 +169,15 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
 				int m = wechatScanLoginService.updateSmartUser(userc);
 				if (m>0){
 					String token = JWTUtil.getToken(userc);
-					return "redirect:"+HttpParame.FRONT_URI+"/#/wanzai/home?token=" + token;
+					QueryWrapper<SmartAuthority> queryWrapper1 = new QueryWrapper<>();
+					queryWrapper1.eq("deleted", 0);
+					queryWrapper1.eq("user_id", userc.getId());
+					List<SmartAuthority> query = smartAuthorityService.getAuthorByKey(queryWrapper1);
+					if (query.size()>0){
+						return "redirect:"+HttpParame.FRONT_URI+"/#/wanzai/home?token=" + token;
+					} else {
+						return "redirect:"+HttpParame.FRONT_URI+"/#/login?message=" + URLEncoder.encode("无登录权限", "UTF-8");
+					}
 				}
 			}
 		}

+ 18 - 0
src/main/java/com/template/mapper/SmartDataSourceMapper.java

@@ -47,4 +47,22 @@ public interface SmartDataSourceMapper extends BaseMapper<SmartDataSource> {
             "    smart_department ")
     List<SmartDepartment> getDepart();
 
+    @Select({
+            "<script>",
+            "   SELECT ",
+            "      ds_id, s.ds_cls_id, ds_cls_name, ds_name, ds_url, ds_user, ds_password, ds_status, ds_descrition, ds_source ",
+            "      , ds_target, ds_create_time, ds_update_time ",
+            "   FROM smart_data_source s ",
+            "      LEFT JOIN smart_data_class c ON s.ds_cls_id = c.ds_cls_id ",
+            "   <where>",
+            "      <if test='dsClsId != null'>AND s.ds_cls_id = #{dsClsId}</if>",
+            "      <if test='dsStatus != null'>AND ds_status = #{dsStatus}</if>",
+            "      <if test='dsName != null'>AND ds_name like CONCAT('%', #{dsName}, '%')</if>",
+            "      <if test='dsUrl != null'>AND ds_url like CONCAT('%', #{dsUrl}, '%')</if>",
+            "      <if test='dsDescrition != null'>AND ds_descrition like CONCAT('%', #{dsDescrition}, '%')</if>",
+            "   </where>",
+            "   ORDER BY ds_update_time ",
+            "</script>"
+    })
+    List<SmartDataSource> selectPageDsSource(SmartDataSource smartDataSource);
 }

+ 16 - 0
src/main/java/com/template/mapper/SmartEvaluateSdetailMapper.java

@@ -0,0 +1,16 @@
+package com.template.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.template.model.evaluate.student.SmartEvaluateSdetail;
+
+/**
+ * <p>
+ * 成绩表 Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+public interface SmartEvaluateSdetailMapper extends BaseMapper<SmartEvaluateSdetail> {
+
+}

+ 16 - 0
src/main/java/com/template/mapper/SmartEvaluateStudentMapper.java

@@ -0,0 +1,16 @@
+package com.template.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.template.model.evaluate.student.SmartEvaluateStudent;
+
+/**
+ * <p>
+ * 用户表 Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+public interface SmartEvaluateStudentMapper extends BaseMapper<SmartEvaluateStudent> {
+
+}

+ 3 - 1
src/main/java/com/template/mapper/SmartEvaluateTdetailMapper.java

@@ -1,7 +1,8 @@
 package com.template.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.template.model.evaluate.SmartEvaluateTdetail;
+import com.template.model.evaluate.teacher.SmartEvaluateTdetail;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +14,5 @@ import com.template.model.evaluate.SmartEvaluateTdetail;
  */
 public interface SmartEvaluateTdetailMapper extends BaseMapper<SmartEvaluateTdetail> {
 
+    public Double getAvgEvaluateScore(@Param("term") String term,@Param("scoreItem") String scoreItem);
 }

+ 4 - 1
src/main/java/com/template/mapper/SmartEvaluateTeacherMapper.java

@@ -1,7 +1,8 @@
 package com.template.mapper;
 
-import com.template.model.evaluate.SmartEvaluateTeacher;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * <p>
@@ -13,4 +14,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface SmartEvaluateTeacherMapper extends BaseMapper<SmartEvaluateTeacher> {
 
+    public Double getAvgLowingScore(@RequestParam("term") String term);
+
 }

+ 3 - 1
src/main/java/com/template/mapper/SmartScoreManageMapper.java

@@ -1,7 +1,7 @@
 package com.template.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.template.model.evaluate.SmartScoreManage;
+import com.template.model.evaluate.teacher.SmartScoreManage;
 
 /**
  * <p>
@@ -13,4 +13,6 @@ import com.template.model.evaluate.SmartScoreManage;
  */
 public interface SmartScoreManageMapper extends BaseMapper<SmartScoreManage> {
 
+    public String getMaxTerm();
+
 }

+ 17 - 0
src/main/java/com/template/mapper/SmartSubjectManageMapper.java

@@ -0,0 +1,17 @@
+package com.template.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.template.model.evaluate.student.SmartSubjectManage;
+
+/**
+ * <p>
+ * 平分项管理 Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+public interface SmartSubjectManageMapper extends BaseMapper<SmartSubjectManage> {
+
+    public String getMaxTerm();
+}

+ 16 - 0
src/main/java/com/template/mapper/SmartSubjectRuleMapper.java

@@ -0,0 +1,16 @@
+package com.template.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.template.model.evaluate.student.SmartSubjectRule;
+
+/**
+ * <p>
+ * 平分项管理 Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+public interface SmartSubjectRuleMapper extends BaseMapper<SmartSubjectRule> {
+
+}

+ 34 - 0
src/main/java/com/template/model/evaluate/student/SmartEvaluateSdetail.java

@@ -0,0 +1,34 @@
+package com.template.model.evaluate.student;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartEvaluateSdetail", description="")
+public class SmartEvaluateSdetail {
+
+    public Integer id;
+
+    @ApiModelProperty(value = "学期")
+    public String term;
+
+    @ApiModelProperty(value = "学号")
+    public String cardNo;
+
+    @ApiModelProperty(value = "学科")
+    public String subjectName;
+
+    @ApiModelProperty(value = "分值")
+    public Double scoreNum;
+
+    @ApiModelProperty(value = "等级")
+    public String scoreLevel;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    public Integer deleted;
+}

+ 19 - 0
src/main/java/com/template/model/evaluate/student/SmartEvaluateSdetailList.java

@@ -0,0 +1,19 @@
+package com.template.model.evaluate.student;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartEvaluateSdetailList", description="")
+public class SmartEvaluateSdetailList {
+
+    public Integer id;
+    public String scoreComment;
+    public List<SmartEvaluateSdetail> scoreList;
+}

+ 43 - 0
src/main/java/com/template/model/evaluate/student/SmartEvaluateStudent.java

@@ -0,0 +1,43 @@
+package com.template.model.evaluate.student;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="smartSubjectRule", description="")
+public class SmartEvaluateStudent {
+
+    public Integer id;
+
+    @ApiModelProperty(value = "学期")
+    public String term;
+
+    @ApiModelProperty(value = "年级")
+    public String gradeName;
+
+    @ApiModelProperty(value = "班级")
+    public String className;
+
+    @ApiModelProperty(value = "学号")
+    public String cardNo;
+
+    @ApiModelProperty(value = "姓名")
+    public String name;
+
+    @ApiModelProperty(value = "分值")
+    public Double scoreNum;
+
+    @ApiModelProperty(value = "综合等级")
+    public String scoreLevel;
+
+    @ApiModelProperty(value = "评语")
+    public String scoreComment;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    public Integer deleted;
+}

+ 29 - 0
src/main/java/com/template/model/evaluate/student/SmartSubjectManage.java

@@ -0,0 +1,29 @@
+package com.template.model.evaluate.student;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="smartSubjectManage", description="")
+public class SmartSubjectManage {
+
+    public Integer id;
+
+    @ApiModelProperty(value = "学科")
+    public String name;
+
+    @ApiModelProperty(value = "学期")
+    public String term;
+
+    @ApiModelProperty(value = "是否展示,1展示,0不展示")
+    public Integer shows;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    public Integer deleted;
+
+}

+ 31 - 0
src/main/java/com/template/model/evaluate/student/SmartSubjectRule.java

@@ -0,0 +1,31 @@
+package com.template.model.evaluate.student;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="smartSubjectRule", description="")
+public class SmartSubjectRule {
+
+    public Integer id;
+
+    @ApiModelProperty(value = "所属学科")
+    public String subjectName;
+
+    @ApiModelProperty(value = "学期")
+    public String term;
+
+    @ApiModelProperty(value = "等级")
+    public String level;
+
+    @ApiModelProperty(value = "分值区间")
+    public String scoreRange;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    public Integer deleted;
+}

+ 19 - 0
src/main/java/com/template/model/evaluate/student/SmartSubjectRuleInList.java

@@ -0,0 +1,19 @@
+package com.template.model.evaluate.student;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartSubjectRuleInList对象", description="")
+public class SmartSubjectRuleInList {
+
+    public String subjectName;
+    public String term;
+    public List<SmartSubjectRule> subjectRuleList;
+}

+ 17 - 0
src/main/java/com/template/model/evaluate/student/SmartSubjectRuleOutList.java

@@ -0,0 +1,17 @@
+package com.template.model.evaluate.student;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartSubjectRuleOutList对象", description="")
+public class SmartSubjectRuleOutList {
+
+    public List<SmartSubjectRuleInList> smartSubjectRuleInLists;
+}

+ 17 - 0
src/main/java/com/template/model/evaluate/student/SubjectManageList.java

@@ -0,0 +1,17 @@
+package com.template.model.evaluate.student;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SubjectManageList对象", description="")
+public class SubjectManageList {
+
+    public List<SmartSubjectManage> subjectList;
+}

+ 21 - 0
src/main/java/com/template/model/evaluate/teacher/SimpleEvaluateScore.java

@@ -0,0 +1,21 @@
+package com.template.model.evaluate.teacher;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SimpleEvaluateScore对象", description="")
+public class SimpleEvaluateScore {
+
+    public Integer id;
+    public Double lowingScore;
+    public Double totalScore;
+    public List<SmartEvaluateTdetailList> simpleScoreList;
+
+}

+ 17 - 0
src/main/java/com/template/model/evaluate/teacher/SimpleScore.java

@@ -0,0 +1,17 @@
+package com.template.model.evaluate.teacher;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SimpleScore对象", description="")
+public class SimpleScore {
+
+    public List<SmartScoreManageList> simpleScoreList;
+}

+ 17 - 0
src/main/java/com/template/model/evaluate/teacher/SimpleScoreDetailList.java

@@ -0,0 +1,17 @@
+package com.template.model.evaluate.teacher;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SimpleScore对象", description="")
+public class SimpleScoreDetailList {
+
+    public List<SmartEvaluateTdetailList> simpleScoreDetailList;
+}

+ 8 - 2
src/main/java/com/template/model/evaluate/SmartEvaluateTdetail.java

@@ -1,4 +1,4 @@
-package com.template.model.evaluate;
+package com.template.model.evaluate.teacher;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -17,15 +17,21 @@ public class SmartEvaluateTdetail {
     @ApiModelProperty(value = "编号(学号)")
     public String cardNo;
 
+    @ApiModelProperty(value = "学期")
+    public String term;
+
     @ApiModelProperty(value = "评分项")
     public String scoreItem;
 
     @ApiModelProperty(value = "父级ID 为0表示是主项")
-    public String parentId;
+    public Integer parentId;
 
     @ApiModelProperty(value = "评分值")
     public Double scoreNum;
 
+    @ApiModelProperty(value = "获得分数")
+    public Double ownNum;
+
     @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
     public Integer deleted;
 

+ 41 - 0
src/main/java/com/template/model/evaluate/teacher/SmartEvaluateTdetailList.java

@@ -0,0 +1,41 @@
+package com.template.model.evaluate.teacher;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartEvaluateTdetail对象", description="")
+public class SmartEvaluateTdetailList {
+
+    public Integer id;
+
+    @ApiModelProperty(value = "编号(学号)")
+    public String cardNo;
+
+    @ApiModelProperty(value = "学期")
+    public String term;
+
+    @ApiModelProperty(value = "评分项")
+    public String scoreItem;
+
+    @ApiModelProperty(value = "父级ID 为0表示是主项")
+    public Integer parentId;
+
+    @ApiModelProperty(value = "评分值")
+    public Double scoreNum;
+
+    @ApiModelProperty(value = "获得分数")
+    public Double ownNum;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    public Integer deleted;
+
+    public List<SmartEvaluateTdetailList> evaluateList;
+}

+ 5 - 2
src/main/java/com/template/model/evaluate/SmartEvaluateTeacher.java

@@ -1,4 +1,4 @@
-package com.template.model.evaluate;
+package com.template.model.evaluate.teacher;
 
 import com.alibaba.fastjson.JSONObject;
 import io.swagger.annotations.ApiModel;
@@ -31,11 +31,14 @@ public class SmartEvaluateTeacher {
     public String className;
 
     @ApiModelProperty(value = "评分详情")
-    public JSONObject evaluateDetail;
+    public String evaluateDetail;
 
     @ApiModelProperty(value = "总分")
     public Double totalScore;
 
+    @ApiModelProperty(value = "扣分")
+    public Double lowingScore;
+
     @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
     public Integer deleted;
 

+ 4 - 1
src/main/java/com/template/model/evaluate/SmartScoreManage.java

@@ -1,4 +1,4 @@
-package com.template.model.evaluate;
+package com.template.model.evaluate.teacher;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -16,6 +16,9 @@ public class SmartScoreManage {
 
     public Integer id;
 
+    @ApiModelProperty(value = "学期")
+    public String term;
+
     @ApiModelProperty(value = "评分项")
     public String scoreItem;
 

+ 38 - 0
src/main/java/com/template/model/evaluate/teacher/SmartScoreManageList.java

@@ -0,0 +1,38 @@
+package com.template.model.evaluate.teacher;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartScoreManageList对象", description="")
+public class SmartScoreManageList {
+
+    private static final long serialVersionUID = 1L;
+
+    public Integer id;
+
+    @ApiModelProperty(value = "学期")
+    public String term;
+
+    @ApiModelProperty(value = "评分项")
+    public String scoreItem;
+
+    @ApiModelProperty(value = "父级ID 为0表示是主项")
+    public Integer parentId;
+
+    @ApiModelProperty(value = "评分值")
+    public Double scoreNum;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    public Integer deleted;
+
+    public List<SmartScoreManageList> smartScoreManageList;
+
+}

+ 5 - 1
src/main/java/com/template/model/pojo/SmartDataSource.java

@@ -2,6 +2,8 @@ package com.template.model.pojo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.Version;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
@@ -68,5 +70,7 @@ public class SmartDataSource implements Serializable {
     @ApiModelProperty(value = "更新时间")
     private Date dsUpdateTime;
 
-
+    @ApiModelProperty(value = "数据源名称")
+    @TableField(exist = false)
+    private String dsClsName;
 }

+ 2 - 1
src/main/java/com/template/services/SmartDataSourceService.java

@@ -1,5 +1,6 @@
 package com.template.services;
 
+import com.github.pagehelper.PageInfo;
 import com.template.model.pojo.SmartDataSource;
 import com.template.model.pojo.SmartDataSource;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -20,7 +21,7 @@ public interface SmartDataSourceService extends IService<SmartDataSource> {
 
     Map<String, Object> updateSmartDataSource(SmartDataSource rns);
 
-    PageUtils<SmartDataSource> queryPageSmartDataSources(int currentPage, int pageCount, SmartDataSource smartDataSource);
+    PageInfo<SmartDataSource> queryPageSmartDataSources(int currentPage, int pageCount, SmartDataSource smartDataSource);
 
     int deleteSmartDataSourceById(int id);
 

+ 34 - 0
src/main/java/com/template/services/SmartEvaluateSdetailService.java

@@ -0,0 +1,34 @@
+package com.template.services;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.evaluate.student.SmartEvaluateSdetail;
+import com.template.model.result.PageUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 成绩表 服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+public interface SmartEvaluateSdetailService extends IService<SmartEvaluateSdetail> {
+
+    public int insertSmartEvaluateSdetail(SmartEvaluateSdetail sa);
+
+    public int updateSmartEvaluateSdetail(SmartEvaluateSdetail sa);
+
+    public PageUtils<SmartEvaluateSdetail> queryPageSmartEvaluateSdetail(int currentPage, int pageCount, QueryWrapper<SmartEvaluateSdetail> queryWrapper);
+
+    public int deleteSmartEvaluateSdetailById(int id);
+
+    public SmartEvaluateSdetail getSmartEvaluateSdetailById(int id);
+
+    public List<SmartEvaluateSdetail> getSmartEvaluateSdetailList();
+
+    public List<SmartEvaluateSdetail> getSmartEvaluateSdetailByKey(QueryWrapper<SmartEvaluateSdetail> queryWrapper);
+
+}

+ 34 - 0
src/main/java/com/template/services/SmartEvaluateStudentService.java

@@ -0,0 +1,34 @@
+package com.template.services;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.evaluate.student.SmartEvaluateStudent;
+import com.template.model.result.PageUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 用户表 服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+public interface SmartEvaluateStudentService extends IService<SmartEvaluateStudent> {
+
+    public int insertSmartEvaluateStudent(SmartEvaluateStudent sa);
+
+    public int updateSmartEvaluateStudent(SmartEvaluateStudent sa);
+
+    public PageUtils<SmartEvaluateStudent> queryPageSmartEvaluateStudent(int currentPage, int pageCount, QueryWrapper<SmartEvaluateStudent> queryWrapper);
+
+    public int deleteSmartEvaluateStudentById(int id);
+
+    public SmartEvaluateStudent getSmartEvaluateStudentById(int id);
+
+    public List<SmartEvaluateStudent> getSmartEvaluateStudentList();
+
+    public List<SmartEvaluateStudent> getSmartEvaluateStudentByKey(QueryWrapper<SmartEvaluateStudent> queryWrapper);
+
+}

+ 36 - 0
src/main/java/com/template/services/SmartEvaluateTdetailService.java

@@ -0,0 +1,36 @@
+package com.template.services;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.evaluate.teacher.SmartEvaluateTdetail;
+import com.template.model.result.PageUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评分表 服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-02
+ */
+public interface SmartEvaluateTdetailService extends IService<SmartEvaluateTdetail> {
+
+    public int insertSmartEvaluateTdetail(SmartEvaluateTdetail sa);
+
+    public int updateSmartEvaluateTdetail(SmartEvaluateTdetail sa);
+
+    public PageUtils<SmartEvaluateTdetail> queryPageSmartEvaluateTdetail(int currentPage, int pageCount, QueryWrapper<SmartEvaluateTdetail> queryWrapper);
+
+    public int deleteSmartEvaluateTdetailById(int id);
+
+    public SmartEvaluateTdetail getSmartEvaluateTdetailById(int id);
+
+    public List<SmartEvaluateTdetail> getEvaluateTdetailList();
+
+    public List<SmartEvaluateTdetail> getEvaluateTdetailByKey(QueryWrapper<SmartEvaluateTdetail> queryWrapper);
+
+    public Double getAvgEvaluateScore(String term, String scoreItem);
+
+}

+ 35 - 0
src/main/java/com/template/services/SmartEvaluateTeacherService.java

@@ -0,0 +1,35 @@
+package com.template.services;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
+import com.template.model.result.PageUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 用户表 服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-02
+ */
+public interface SmartEvaluateTeacherService extends IService<SmartEvaluateTeacher> {
+
+    public int insertSmartEvaluateTeacher(SmartEvaluateTeacher sa);
+
+    public int updateSmartEvaluateTeacher(SmartEvaluateTeacher sa);
+
+    public PageUtils<SmartEvaluateTeacher> queryPageSmartEvaluateTeacher(int currentPage, int pageCount, QueryWrapper<SmartEvaluateTeacher> queryWrapper);
+
+    public int deleteSmartEvaluateTeacherById(int id);
+
+    public SmartEvaluateTeacher getSmartEvaluateTeacherById(int id);
+
+    public List<SmartEvaluateTeacher> getEvaluateTeacherList();
+
+    public List<SmartEvaluateTeacher> getEvaluateTeacherByKey(QueryWrapper<SmartEvaluateTeacher> queryWrapper);
+
+    public Double getAvgLowingScore(String term);
+}

+ 43 - 0
src/main/java/com/template/services/SmartScoreManageService.java

@@ -0,0 +1,43 @@
+package com.template.services;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.evaluate.teacher.SimpleScore;
+import com.template.model.evaluate.teacher.SimpleScoreDetailList;
+import com.template.model.evaluate.teacher.SmartScoreManage;
+import com.template.model.result.PageUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 平分项管理 服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-02
+ */
+public interface SmartScoreManageService extends IService<SmartScoreManage> {
+
+    public int insertSmartScoreManage(SmartScoreManage sa);
+
+    public int updateSmartScoreManage(SmartScoreManage sa);
+
+    public PageUtils<SmartScoreManage> queryPageSmartScoreManage(int currentPage, int pageCount, String name);
+
+    public int deleteSmartScoreManageById(int id);
+
+    public SmartScoreManage getSmartScoreManageById(int id);
+
+    public List<SmartScoreManage> getScoreManageList();
+
+    public List<SmartScoreManage> getScoreManageByKey(QueryWrapper<SmartScoreManage> queryWrapper);
+
+    public String getMaxTerm();
+
+    public SimpleScore queryScoreDetail(String term);
+
+    public SimpleScoreDetailList queryTeacherScoreDetail(String term, String cardNo);
+
+    public SimpleScoreDetailList queryNoTeacherScoreDetail(String term);
+}

+ 35 - 0
src/main/java/com/template/services/SmartSubjectManageService.java

@@ -0,0 +1,35 @@
+package com.template.services;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.evaluate.student.SmartSubjectManage;
+import com.template.model.result.PageUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 平分项管理 服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+public interface SmartSubjectManageService extends IService<SmartSubjectManage> {
+
+    public int insertSmartSubjectManage(SmartSubjectManage sa);
+
+    public int updateSmartSubjectManage(SmartSubjectManage sa);
+
+    public PageUtils<SmartSubjectManage> queryPageSmartSubjectManage(int currentPage, int pageCount, QueryWrapper<SmartSubjectManage> queryWrapper);
+
+    public int deleteSmartSubjectManageById(int id);
+
+    public SmartSubjectManage getSmartSubjectManageById(int id);
+
+    public List<SmartSubjectManage> getSmartSubjectManageList();
+
+    public List<SmartSubjectManage> getSmartSubjectManageByKey(QueryWrapper<SmartSubjectManage> queryWrapper);
+
+    public String getMaxTerm();
+}

+ 34 - 0
src/main/java/com/template/services/SmartSubjectRuleService.java

@@ -0,0 +1,34 @@
+package com.template.services;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.evaluate.student.SmartSubjectRule;
+import com.template.model.result.PageUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 平分项管理 服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+public interface SmartSubjectRuleService extends IService<SmartSubjectRule> {
+
+    public int insertSmartSubjectRule(SmartSubjectRule sa);
+
+    public int updateSmartSubjectRule(SmartSubjectRule sa);
+
+    public PageUtils<SmartSubjectRule> queryPageSmartSubjectRule(int currentPage, int pageCount, QueryWrapper<SmartSubjectRule> queryWrapper);
+
+    public int deleteSmartSubjectRuleById(int id);
+
+    public SmartSubjectRule getSmartSubjectRuleById(int id);
+
+    public List<SmartSubjectRule> getSmartSubjectRuleList();
+
+    public List<SmartSubjectRule> getSmartSubjectRuleByKey(QueryWrapper<SmartSubjectRule> queryWrapper);
+
+}

+ 15 - 12
src/main/java/com/template/services/impl/SmartDataSourceServiceImpl.java

@@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.template.common.utils.CommonUtil;
 import com.template.mapper.SmartDataClassMapper;
 import com.template.mapper.SmartDataSourceMapper;
 import com.template.model.pojo.SmartDataClass;
 import com.template.model.pojo.SmartDataSource;
+import com.template.model.pojo.SmartDataTaskErr;
 import com.template.model.result.PageUtils;
 import com.template.services.SmartDataSourceService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -146,6 +149,13 @@ public class SmartDataSourceServiceImpl extends ServiceImpl<SmartDataSourceMappe
             return CommonUtil.getReturnMap("1", "数据未修改,请修改后再提交!");
         }
 
+        Map<String, Object> stringObjectMap = vcoSmartDataSource(smartDataSource);
+        if ("1".equals(stringObjectMap.get("code"))) {
+            smartDataSource.setDsStatus(0);
+        } else {
+            smartDataSource.setDsStatus(1);
+        }
+
         int result = smartDataSourceMapper.updateById(smartDataSource);
         if (result > 0) {
             return CommonUtil.getReturnMap("0", "数据源修改成功!");
@@ -155,16 +165,10 @@ public class SmartDataSourceServiceImpl extends ServiceImpl<SmartDataSourceMappe
     }
 
     @Override
-    public PageUtils<SmartDataSource> queryPageSmartDataSources(int currentPage, int pageCount, SmartDataSource smartDataSource) {
-        Page<SmartDataSource> page = new Page<>(currentPage, pageCount);
-        QueryWrapper<SmartDataSource> queryWrapper = new QueryWrapper<>();
-        queryWrapper.like(StringUtils.hasText(smartDataSource.getDsName()), "ds_name", smartDataSource.getDsName());
-        queryWrapper.like(StringUtils.hasText(smartDataSource.getDsUrl()), "ds_url", smartDataSource.getDsUrl());
-        queryWrapper.like(smartDataSource.getDsStatus() != null, "ds_status", smartDataSource.getDsStatus());
-        queryWrapper.eq(StringUtils.hasText(smartDataSource.getDsDescrition()), "ds_descrition", smartDataSource.getDsDescrition());
-        queryWrapper.orderByDesc("ds_update_time");
-        IPage<SmartDataSource> result = smartDataSourceMapper.selectPage(page, queryWrapper);
-        return new PageUtils<>(result);
+    public PageInfo<SmartDataSource> queryPageSmartDataSources(int currentPage, int pageCount, SmartDataSource smartDataSource) {
+        PageHelper.startPage(currentPage, pageCount);
+        List<SmartDataSource> result = smartDataSourceMapper.selectPageDsSource(smartDataSource);
+        return new PageInfo<>(result);
     }
 
     @Override
@@ -190,8 +194,7 @@ public class SmartDataSourceServiceImpl extends ServiceImpl<SmartDataSourceMappe
             return CommonUtil.getReturnMap("1", "选择的【数据源类型】不存在!");
         }
 
-        String dsClsDriver = smartDataClass.getDsClsDriver();
-        dataSource.setDriverClassName(dsClsDriver);
+        dataSource.setDriverClassName(smartDataClass.getDsClsDriver());
         dataSource.setUrl(smartDataSource.getDsUrl());
         dataSource.setUsername(smartDataSource.getDsUser());
         dataSource.setPassword(smartDataSource.getDsPassword());

+ 1 - 2
src/main/java/com/template/services/impl/SmartDataTaskServiceImpl.java

@@ -679,8 +679,7 @@ public class SmartDataTaskServiceImpl extends ServiceImpl<SmartDataTaskMapper, S
     public PageInfo<SmartDataTaskErr> queryPageSmartDataTaskErr(int currentPage, int pageCount, Integer eTaskId, String startTime, String endTime) {
         PageHelper.startPage(currentPage, pageCount);
         List<SmartDataTaskErr> result = smartDataTaskMapper.selectPageOrderByDatetimeDesc(eTaskId, startTime, endTime);
-        PageInfo<SmartDataTaskErr> logPageInfo = new PageInfo<>(result);
-        return logPageInfo;
+        return new PageInfo<>(result);
     }
 
     @Override

+ 76 - 0
src/main/java/com/template/services/impl/SmartEvaluateSdetailServiceImpl.java

@@ -0,0 +1,76 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.template.mapper.SmartEvaluateSdetailMapper;
+import com.template.model.evaluate.student.SmartEvaluateSdetail;
+import com.template.model.evaluate.student.SmartEvaluateSdetail;
+import com.template.model.result.PageUtils;
+import com.template.services.SmartEvaluateSdetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 成绩表 服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+@Service
+public class SmartEvaluateSdetailServiceImpl extends ServiceImpl<SmartEvaluateSdetailMapper, SmartEvaluateSdetail> implements SmartEvaluateSdetailService {
+
+    @Autowired
+    private SmartEvaluateSdetailMapper smartEvaluateSdetailMapper;
+
+    @Override
+    public int insertSmartEvaluateSdetail(SmartEvaluateSdetail sa) {
+        int result = smartEvaluateSdetailMapper.insert(sa);
+        return result;
+    }
+
+    @Override
+    public int updateSmartEvaluateSdetail(SmartEvaluateSdetail sa) {
+        int result = smartEvaluateSdetailMapper.updateById(sa);
+        return result;
+    }
+
+    @Override
+    public PageUtils<SmartEvaluateSdetail> queryPageSmartEvaluateSdetail(int currentPage, int pageCount, QueryWrapper<SmartEvaluateSdetail> queryWrapper) {
+        Page<SmartEvaluateSdetail> page = new Page<>(currentPage, pageCount);
+        IPage<SmartEvaluateSdetail> result = smartEvaluateSdetailMapper.selectPage(page,queryWrapper);
+        return new PageUtils<>(result);
+    }
+
+    @Override
+    public int deleteSmartEvaluateSdetailById(int id) {
+        int result = smartEvaluateSdetailMapper.deleteById(id);
+        return result;
+    }
+
+    @Override
+    public SmartEvaluateSdetail getSmartEvaluateSdetailById(int id) {
+        SmartEvaluateSdetail result = smartEvaluateSdetailMapper.selectById(id);
+        return result;
+    }
+
+    @Override
+    public List<SmartEvaluateSdetail> getSmartEvaluateSdetailList() {
+        QueryWrapper<SmartEvaluateSdetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("deleted", 0);
+        List<SmartEvaluateSdetail> result = smartEvaluateSdetailMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public List<SmartEvaluateSdetail> getSmartEvaluateSdetailByKey(QueryWrapper<SmartEvaluateSdetail> queryWrapper) {
+        List<SmartEvaluateSdetail> result = smartEvaluateSdetailMapper.selectList(queryWrapper);
+        return result;
+    }
+    
+}

+ 75 - 0
src/main/java/com/template/services/impl/SmartEvaluateStudentServiceImpl.java

@@ -0,0 +1,75 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.template.mapper.SmartEvaluateStudentMapper;
+import com.template.model.evaluate.student.SmartEvaluateStudent;
+import com.template.model.result.PageUtils;
+import com.template.services.SmartEvaluateStudentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 用户表 服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+@Service
+public class SmartEvaluateStudentServiceImpl extends ServiceImpl<SmartEvaluateStudentMapper, SmartEvaluateStudent> implements SmartEvaluateStudentService {
+
+    @Autowired
+    private SmartEvaluateStudentMapper smartEvaluateStudentMapper;
+
+    @Override
+    public int insertSmartEvaluateStudent(SmartEvaluateStudent sa) {
+        int result = smartEvaluateStudentMapper.insert(sa);
+        return result;
+    }
+
+    @Override
+    public int updateSmartEvaluateStudent(SmartEvaluateStudent sa) {
+        int result = smartEvaluateStudentMapper.updateById(sa);
+        return result;
+    }
+
+    @Override
+    public PageUtils<SmartEvaluateStudent> queryPageSmartEvaluateStudent(int currentPage, int pageCount, QueryWrapper<SmartEvaluateStudent> queryWrapper) {
+        Page<SmartEvaluateStudent> page = new Page<>(currentPage, pageCount);
+        IPage<SmartEvaluateStudent> result = smartEvaluateStudentMapper.selectPage(page,queryWrapper);
+        return new PageUtils<>(result);
+    }
+
+    @Override
+    public int deleteSmartEvaluateStudentById(int id) {
+        int result = smartEvaluateStudentMapper.deleteById(id);
+        return result;
+    }
+
+    @Override
+    public SmartEvaluateStudent getSmartEvaluateStudentById(int id) {
+        SmartEvaluateStudent result = smartEvaluateStudentMapper.selectById(id);
+        return result;
+    }
+
+    @Override
+    public List<SmartEvaluateStudent> getSmartEvaluateStudentList() {
+        QueryWrapper<SmartEvaluateStudent> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("deleted", 0);
+        List<SmartEvaluateStudent> result = smartEvaluateStudentMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public List<SmartEvaluateStudent> getSmartEvaluateStudentByKey(QueryWrapper<SmartEvaluateStudent> queryWrapper) {
+        List<SmartEvaluateStudent> result = smartEvaluateStudentMapper.selectList(queryWrapper);
+        return result;
+    }
+
+}

+ 79 - 0
src/main/java/com/template/services/impl/SmartEvaluateTdetailServiceImpl.java

@@ -0,0 +1,79 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.template.mapper.SmartEvaluateTdetailMapper;
+import com.template.model.evaluate.teacher.SmartEvaluateTdetail;
+import com.template.model.result.PageUtils;
+import com.template.services.SmartEvaluateTdetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评分表 服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-02
+ */
+@Service
+public class SmartEvaluateTdetailServiceImpl extends ServiceImpl<SmartEvaluateTdetailMapper, SmartEvaluateTdetail> implements SmartEvaluateTdetailService {
+
+    @Autowired
+    private SmartEvaluateTdetailMapper smartEvaluateTdetailMapper;
+
+    @Override
+    public int insertSmartEvaluateTdetail(SmartEvaluateTdetail sa) {
+        int result = smartEvaluateTdetailMapper.insert(sa);
+        return result;
+    }
+
+    @Override
+    public int updateSmartEvaluateTdetail(SmartEvaluateTdetail sa) {
+        int result = smartEvaluateTdetailMapper.updateById(sa);
+        return result;
+    }
+
+    @Override
+    public PageUtils<SmartEvaluateTdetail> queryPageSmartEvaluateTdetail(int currentPage, int pageCount, QueryWrapper<SmartEvaluateTdetail> queryWrapper) {
+        Page<SmartEvaluateTdetail> page = new Page<>(currentPage, pageCount);
+        IPage<SmartEvaluateTdetail> result = smartEvaluateTdetailMapper.selectPage(page,queryWrapper);
+        return new PageUtils<>(result);
+    }
+
+    @Override
+    public int deleteSmartEvaluateTdetailById(int id) {
+        int result = smartEvaluateTdetailMapper.deleteById(id);
+        return result;
+    }
+
+    @Override
+    public SmartEvaluateTdetail getSmartEvaluateTdetailById(int id) {
+        SmartEvaluateTdetail result = smartEvaluateTdetailMapper.selectById(id);
+        return result;
+    }
+
+    @Override
+    public List<SmartEvaluateTdetail> getEvaluateTdetailList() {
+        QueryWrapper<SmartEvaluateTdetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("deleted", 0);
+        List<SmartEvaluateTdetail> result = smartEvaluateTdetailMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public List<SmartEvaluateTdetail> getEvaluateTdetailByKey(QueryWrapper<SmartEvaluateTdetail> queryWrapper) {
+        List<SmartEvaluateTdetail> result = smartEvaluateTdetailMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public Double getAvgEvaluateScore(String term, String scoreItem){
+        return smartEvaluateTdetailMapper.getAvgEvaluateScore(term, scoreItem);
+    }
+}

+ 80 - 0
src/main/java/com/template/services/impl/SmartEvaluateTeacherServiceImpl.java

@@ -0,0 +1,80 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.template.mapper.SmartEvaluateTeacherMapper;
+import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
+import com.template.model.result.PageUtils;
+import com.template.services.SmartEvaluateTeacherService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 用户表 服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-02
+ */
+@Service
+public class SmartEvaluateTeacherServiceImpl extends ServiceImpl<SmartEvaluateTeacherMapper, SmartEvaluateTeacher> implements SmartEvaluateTeacherService {
+
+    @Autowired
+    private SmartEvaluateTeacherMapper smartEvaluateTeacherMapper;
+
+    @Override
+    public int insertSmartEvaluateTeacher(SmartEvaluateTeacher sa) {
+        int result = smartEvaluateTeacherMapper.insert(sa);
+        return result;
+    }
+
+    @Override
+    public int updateSmartEvaluateTeacher(SmartEvaluateTeacher sa) {
+        int result = smartEvaluateTeacherMapper.updateById(sa);
+        return result;
+    }
+
+    @Override
+    public PageUtils<SmartEvaluateTeacher> queryPageSmartEvaluateTeacher(int currentPage, int pageCount, QueryWrapper<SmartEvaluateTeacher> queryWrapper) {
+        Page<SmartEvaluateTeacher> page = new Page<>(currentPage, pageCount);
+        IPage<SmartEvaluateTeacher> result = smartEvaluateTeacherMapper.selectPage(page,queryWrapper);
+        return new PageUtils<>(result);
+    }
+
+    @Override
+    public int deleteSmartEvaluateTeacherById(int id) {
+        int result = smartEvaluateTeacherMapper.deleteById(id);
+        return result;
+    }
+
+    @Override
+    public SmartEvaluateTeacher getSmartEvaluateTeacherById(int id) {
+        SmartEvaluateTeacher result = smartEvaluateTeacherMapper.selectById(id);
+        return result;
+    }
+
+    @Override
+    public List<SmartEvaluateTeacher> getEvaluateTeacherList() {
+        QueryWrapper<SmartEvaluateTeacher> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("deleted", 0);
+        List<SmartEvaluateTeacher> result = smartEvaluateTeacherMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public List<SmartEvaluateTeacher> getEvaluateTeacherByKey(QueryWrapper<SmartEvaluateTeacher> queryWrapper) {
+        List<SmartEvaluateTeacher> result = smartEvaluateTeacherMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public Double getAvgLowingScore(String term){
+        return smartEvaluateTeacherMapper.getAvgLowingScore(term);
+    }
+    
+}

+ 209 - 0
src/main/java/com/template/services/impl/SmartScoreManageServiceImpl.java

@@ -0,0 +1,209 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.template.mapper.SmartEvaluateTdetailMapper;
+import com.template.mapper.SmartScoreManageMapper;
+import com.template.model.evaluate.teacher.*;
+import com.template.model.result.PageUtils;
+import com.template.services.SmartScoreManageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 平分项管理 服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-02
+ */
+@Service
+public class SmartScoreManageServiceImpl extends ServiceImpl<SmartScoreManageMapper, SmartScoreManage> implements SmartScoreManageService {
+
+    @Autowired
+    private SmartScoreManageMapper smartScoreManageMapper;
+    @Autowired
+    public SmartEvaluateTdetailMapper smartEvaluateTdetailMapper;
+
+    @Override
+    public int insertSmartScoreManage(SmartScoreManage sa) {
+        int result = smartScoreManageMapper.insert(sa);
+        return result;
+    }
+
+    @Override
+    public int updateSmartScoreManage(SmartScoreManage sa) {
+        int result = smartScoreManageMapper.updateById(sa);
+        return result;
+    }
+
+    @Override
+    public PageUtils<SmartScoreManage> queryPageSmartScoreManage(int currentPage, int pageCount, String name) {
+        Page<SmartScoreManage> page = new Page<>(currentPage, pageCount);
+        QueryWrapper<SmartScoreManage> queryWrapper = new QueryWrapper<>();
+        //queryWrapper.like(StringUtils.hasText(name), "name", name);
+        IPage<SmartScoreManage> result = smartScoreManageMapper.selectPage(page,queryWrapper);
+        return new PageUtils<>(result);
+    }
+
+    @Override
+    public int deleteSmartScoreManageById(int id) {
+        int result = smartScoreManageMapper.deleteById(id);
+        return result;
+    }
+
+    @Override
+    public SmartScoreManage getSmartScoreManageById(int id) {
+        SmartScoreManage result = smartScoreManageMapper.selectById(id);
+        return result;
+    }
+
+    @Override
+    public List<SmartScoreManage> getScoreManageList() {
+        QueryWrapper<SmartScoreManage> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("deleted", 0);
+        List<SmartScoreManage> result = smartScoreManageMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public List<SmartScoreManage> getScoreManageByKey(QueryWrapper<SmartScoreManage> queryWrapper) {
+        List<SmartScoreManage> result = smartScoreManageMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public String getMaxTerm(){
+        return smartScoreManageMapper.getMaxTerm();
+    }
+
+    @Override
+    public SimpleScore queryScoreDetail(String term){
+        SimpleScore simpleScore = new SimpleScore();
+        QueryWrapper<SmartScoreManage> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        queryWrapper1.eq("parent_id", 0);
+        queryWrapper1.eq("term", term);
+        List<SmartScoreManage> mainScore = smartScoreManageMapper.selectList(queryWrapper1);
+        List<SmartScoreManageList> ls = new ArrayList<>();
+        for (int i = 0; i < mainScore.size(); i++) {
+            SmartScoreManageList mainScoreManageList = new SmartScoreManageList();
+            mainScoreManageList.setId(mainScore.get(i).getId());
+            mainScoreManageList.setTerm(mainScore.get(i).getTerm());
+            mainScoreManageList.setParentId(mainScore.get(i).getParentId());
+            mainScoreManageList.setScoreItem(mainScore.get(i).getScoreItem());
+            mainScoreManageList.setScoreNum(mainScore.get(i).getScoreNum());
+            mainScoreManageList.setDeleted(mainScore.get(i).getDeleted());
+            QueryWrapper<SmartScoreManage> queryWrapper2 = new QueryWrapper<>();
+            queryWrapper2.eq("deleted", 0);
+            queryWrapper2.eq("parent_id", mainScore.get(i).getId());
+            List<SmartScoreManage> childScore = smartScoreManageMapper.selectList(queryWrapper2);
+            List<SmartScoreManageList> csList = new ArrayList<>();
+            for (int j = 0; j < childScore.size(); j++) {
+                SmartScoreManageList cs = new SmartScoreManageList();
+                cs.setId(childScore.get(j).getId());
+                cs.setTerm(childScore.get(j).getTerm());
+                cs.setParentId(childScore.get(j).getParentId());
+                cs.setScoreItem(childScore.get(j).getScoreItem());
+                cs.setScoreNum(childScore.get(j).getScoreNum());
+                cs.setDeleted(childScore.get(j).getDeleted());
+                csList.add(cs);
+            }
+            mainScoreManageList.setSmartScoreManageList(csList);
+            ls.add(mainScoreManageList);
+        }
+        simpleScore.setSimpleScoreList(ls);
+        return simpleScore;
+    }
+
+
+
+    @Override
+    public SimpleScoreDetailList queryTeacherScoreDetail(String term, String cardNo){
+        SimpleScoreDetailList simpleScore = new SimpleScoreDetailList();
+        QueryWrapper<SmartEvaluateTdetail> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        queryWrapper1.eq("parent_id", 0);
+        queryWrapper1.eq("term", term);
+        queryWrapper1.eq("card_no", cardNo);
+        List<SmartEvaluateTdetail> mainScore = smartEvaluateTdetailMapper.selectList(queryWrapper1);
+        List<SmartEvaluateTdetailList> ls = new ArrayList<>();
+        for (int i = 0; i < mainScore.size(); i++) {
+            SmartEvaluateTdetailList smartEvaluateTdetail = new SmartEvaluateTdetailList();
+            smartEvaluateTdetail.setId(mainScore.get(i).getId());
+            smartEvaluateTdetail.setCardNo(mainScore.get(i).getCardNo());
+            smartEvaluateTdetail.setTerm(mainScore.get(i).getTerm());
+            smartEvaluateTdetail.setParentId(mainScore.get(i).getParentId());
+            smartEvaluateTdetail.setScoreItem(mainScore.get(i).getScoreItem());
+            smartEvaluateTdetail.setScoreNum(mainScore.get(i).getScoreNum());
+            smartEvaluateTdetail.setDeleted(mainScore.get(i).getDeleted());
+            QueryWrapper<SmartEvaluateTdetail> queryWrapper2 = new QueryWrapper<>();
+            queryWrapper2.eq("deleted", 0);
+            queryWrapper2.eq("parent_id", mainScore.get(i).getId());
+            List<SmartEvaluateTdetail> childScore = smartEvaluateTdetailMapper.selectList(queryWrapper2);
+            List<SmartEvaluateTdetailList> csList = new ArrayList<>();
+            for (int j = 0; j < childScore.size(); j++) {
+                SmartEvaluateTdetailList cs = new SmartEvaluateTdetailList();
+                cs.setId(childScore.get(j).getId());
+                cs.setCardNo(childScore.get(j).getCardNo());
+                cs.setTerm(childScore.get(j).getTerm());
+                cs.setParentId(childScore.get(j).getParentId());
+                cs.setScoreItem(childScore.get(j).getScoreItem());
+                cs.setScoreNum(childScore.get(j).getScoreNum());
+                cs.setDeleted(childScore.get(j).getDeleted());
+                csList.add(cs);
+            }
+            smartEvaluateTdetail.setEvaluateList(csList);
+            ls.add(smartEvaluateTdetail);
+        }
+        simpleScore.setSimpleScoreDetailList(ls);
+        return simpleScore;
+    }
+
+    @Override
+    public SimpleScoreDetailList queryNoTeacherScoreDetail(String term){
+        SimpleScoreDetailList simpleScore = new SimpleScoreDetailList();
+        QueryWrapper<SmartScoreManage> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("deleted", 0);
+        queryWrapper1.eq("parent_id", 0);
+        queryWrapper1.eq("term", term);
+        List<SmartScoreManage> mainScore = smartScoreManageMapper.selectList(queryWrapper1);
+        List<SmartEvaluateTdetailList> ls = new ArrayList<>();
+        for (int i = 0; i < mainScore.size(); i++) {
+            SmartEvaluateTdetailList mainScoreManageList = new SmartEvaluateTdetailList();
+            mainScoreManageList.setId(null);
+            mainScoreManageList.setTerm(mainScore.get(i).getTerm());
+            mainScoreManageList.setParentId(mainScore.get(i).getParentId());
+            mainScoreManageList.setScoreItem(mainScore.get(i).getScoreItem());
+            mainScoreManageList.setScoreNum(mainScore.get(i).getScoreNum());
+            mainScoreManageList.setOwnNum(0.0);
+            mainScoreManageList.setDeleted(mainScore.get(i).getDeleted());
+            QueryWrapper<SmartScoreManage> queryWrapper2 = new QueryWrapper<>();
+            queryWrapper2.eq("deleted", 0);
+            queryWrapper2.eq("parent_id", mainScore.get(i).getId());
+            List<SmartScoreManage> childScore = smartScoreManageMapper.selectList(queryWrapper2);
+            List<SmartEvaluateTdetailList> csList = new ArrayList<>();
+            for (int j = 0; j < childScore.size(); j++) {
+                SmartEvaluateTdetailList cs = new SmartEvaluateTdetailList();
+                cs.setId(null);
+                cs.setTerm(childScore.get(j).getTerm());
+                cs.setParentId(null);
+                cs.setScoreItem(childScore.get(j).getScoreItem());
+                cs.setScoreNum(childScore.get(j).getScoreNum());
+                cs.setOwnNum(0.0);
+                cs.setDeleted(childScore.get(j).getDeleted());
+                csList.add(cs);
+            }
+            mainScoreManageList.setEvaluateList(csList);
+            ls.add(mainScoreManageList);
+        }
+        simpleScore.setSimpleScoreDetailList(ls);
+        return simpleScore;
+    }
+}

+ 79 - 0
src/main/java/com/template/services/impl/SmartSubjectManageServiceImpl.java

@@ -0,0 +1,79 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.template.mapper.SmartSubjectManageMapper;
+import com.template.model.evaluate.student.SmartSubjectManage;
+import com.template.model.result.PageUtils;
+import com.template.services.SmartSubjectManageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 平分项管理 服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+@Service
+public class SmartSubjectManageServiceImpl extends ServiceImpl<SmartSubjectManageMapper, SmartSubjectManage> implements SmartSubjectManageService {
+
+    @Autowired
+    private SmartSubjectManageMapper smartSubjectManageMapper;
+
+    @Override
+    public int insertSmartSubjectManage(SmartSubjectManage sa) {
+        int result = smartSubjectManageMapper.insert(sa);
+        return result;
+    }
+
+    @Override
+    public int updateSmartSubjectManage(SmartSubjectManage sa) {
+        int result = smartSubjectManageMapper.updateById(sa);
+        return result;
+    }
+
+    @Override
+    public PageUtils<SmartSubjectManage> queryPageSmartSubjectManage(int currentPage, int pageCount, QueryWrapper<SmartSubjectManage> queryWrapper) {
+        Page<SmartSubjectManage> page = new Page<>(currentPage, pageCount);
+        IPage<SmartSubjectManage> result = smartSubjectManageMapper.selectPage(page,queryWrapper);
+        return new PageUtils<>(result);
+    }
+
+    @Override
+    public int deleteSmartSubjectManageById(int id) {
+        int result = smartSubjectManageMapper.deleteById(id);
+        return result;
+    }
+
+    @Override
+    public SmartSubjectManage getSmartSubjectManageById(int id) {
+        SmartSubjectManage result = smartSubjectManageMapper.selectById(id);
+        return result;
+    }
+
+    @Override
+    public List<SmartSubjectManage> getSmartSubjectManageList() {
+        QueryWrapper<SmartSubjectManage> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("deleted", 0);
+        List<SmartSubjectManage> result = smartSubjectManageMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public List<SmartSubjectManage> getSmartSubjectManageByKey(QueryWrapper<SmartSubjectManage> queryWrapper) {
+        List<SmartSubjectManage> result = smartSubjectManageMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public String getMaxTerm(){
+        return smartSubjectManageMapper.getMaxTerm();
+    }
+}

+ 75 - 0
src/main/java/com/template/services/impl/SmartSubjectRuleServiceImpl.java

@@ -0,0 +1,75 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.template.mapper.SmartSubjectRuleMapper;
+import com.template.model.evaluate.student.SmartSubjectRule;
+import com.template.model.result.PageUtils;
+import com.template.services.SmartSubjectRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 平分项管理 服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-01-08
+ */
+@Service
+public class SmartSubjectRuleServiceImpl extends ServiceImpl<SmartSubjectRuleMapper, SmartSubjectRule> implements SmartSubjectRuleService {
+
+    @Autowired
+    private SmartSubjectRuleMapper smartSubjectRuleMapper;
+
+    @Override
+    public int insertSmartSubjectRule(SmartSubjectRule sa) {
+        int result = smartSubjectRuleMapper.insert(sa);
+        return result;
+    }
+
+    @Override
+    public int updateSmartSubjectRule(SmartSubjectRule sa) {
+        int result = smartSubjectRuleMapper.updateById(sa);
+        return result;
+    }
+
+    @Override
+    public PageUtils<SmartSubjectRule> queryPageSmartSubjectRule(int currentPage, int pageCount, QueryWrapper<SmartSubjectRule> queryWrapper) {
+        Page<SmartSubjectRule> page = new Page<>(currentPage, pageCount);
+        IPage<SmartSubjectRule> result = smartSubjectRuleMapper.selectPage(page,queryWrapper);
+        return new PageUtils<>(result);
+    }
+
+    @Override
+    public int deleteSmartSubjectRuleById(int id) {
+        int result = smartSubjectRuleMapper.deleteById(id);
+        return result;
+    }
+
+    @Override
+    public SmartSubjectRule getSmartSubjectRuleById(int id) {
+        SmartSubjectRule result = smartSubjectRuleMapper.selectById(id);
+        return result;
+    }
+
+    @Override
+    public List<SmartSubjectRule> getSmartSubjectRuleList() {
+        QueryWrapper<SmartSubjectRule> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("deleted", 0);
+        List<SmartSubjectRule> result = smartSubjectRuleMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public List<SmartSubjectRule> getSmartSubjectRuleByKey(QueryWrapper<SmartSubjectRule> queryWrapper) {
+        List<SmartSubjectRule> result = smartSubjectRuleMapper.selectList(queryWrapper);
+        return result;
+    }
+    
+}

+ 5 - 0
src/main/resources/mapper/template/SmartEvaluateSdetailMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.template.mapper.SmartEvaluateSdetailMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/mapper/template/SmartEvaluateStudentMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.template.mapper.SmartEvaluateStudentMapper">
+
+</mapper>

+ 5 - 1
src/main/resources/mapper/template/SmartEvaluateTdetailMapper.xml

@@ -1,5 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.template.auto.mapper.SmartEvaluateTdetailMapper">
+<mapper namespace="com.template.mapper.SmartEvaluateTdetailMapper">
 
+    <select id="getAvgEvaluateScore" resultType="Double">
+        select AVG(own_num) as own_num from `smart_evaluate_tdetail`
+            where deleted=0 and parent_id=0 and term=#{term} and score_item=#{scoreItem}
+    </select>
 </mapper>

+ 6 - 1
src/main/resources/mapper/template/SmartEvaluateTeacherMapper.xml

@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.template.auto.mapper.SmartEvaluateTeacherMapper">
+<mapper namespace="com.template.mapper.SmartEvaluateTeacherMapper">
+
+    <select id="getAvgLowingScore" resultType="Double">
+        select AVG(lowing_score) as lowing_score from `smart_evaluate_teacher`
+            where deleted=0 and term=#{term}
+    </select>
 
 </mapper>