夏文涛 před 2 roky
rodič
revize
78c792a281

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

@@ -34,7 +34,7 @@ public interface SmartEvaluateTeacherControllerAPI {
 
     @RequestMapping(value = "/evaluateScore")
     @ApiOperation(value = "教师评分", httpMethod = "POST")
-    CommonResult evaluateScore(@Validated @RequestBody JSONObject jsonObject);
+    CommonResult evaluateScore(@Validated @RequestBody JSONObject jsonObject) throws Exception;
 
     @RequestMapping(value = "/getTeacherScoreDetail")
     @ApiOperation(value = "获取教师分数详情", httpMethod = "POST")

+ 57 - 48
src/main/java/com/template/controller/SmartEvaluateTeacherController.java

@@ -24,6 +24,7 @@ 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.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletResponse;
@@ -215,62 +216,70 @@ public class SmartEvaluateTeacherController implements SmartEvaluateTeacherContr
     }
 
     @PassToken
-    public CommonResult evaluateScore(JSONObject jsonObject) {
+    @Transactional(rollbackFor = {Exception.class})
+    public CommonResult evaluateScore(JSONObject jsonObject) throws Exception {
         SimpleEvaluateScore simpleEvaluateScore = null;
         try {
             simpleEvaluateScore = JSONObject.parseObject(jsonObject.toString(), SimpleEvaluateScore.class);
         } catch (Exception e) {
-            return CommonResult.errorMsg("参数格式错误");
+            //return CommonResult.errorMsg("参数格式错误");
+            throw new Exception("参数格式错误!");
         }
-        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());
+
+        try {
+            SmartEvaluateTeacher teacher = smartEvaluateTeacherService.getSmartEvaluateTeacherById(simpleEvaluateScore.getId());
+            if (teacher == null) {
+                //return CommonResult.fail("教师评分数据为空");
+                throw new Exception("教师评分数据为空!");
             }
-            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);
+
+            List<SmartEvaluateTdetail> newDetails = new ArrayList<>();
+            List<SmartEvaluateTdetail> updateDetails = new ArrayList<>();
+            //查找明细smart_evaluate_tdetail
+            List<SmartEvaluateTdetail> tdetails = smartEvaluateTdetailService.queryTdetailsByTermUserId(teacher.getTermId(), teacher.getUserId());
+            for (SmartEvaluateTdetailList ssl:simpleEvaluateScore.getSimpleScoreList()) {
+                for (SmartEvaluateTdetailList sc:ssl.getEvaluateList()) {
+                    Optional<SmartEvaluateTdetail> oStdetail = tdetails.stream().filter(e -> e.getScoreManageId().equals(sc.getId())).findFirst();
+                    if(oStdetail != null && oStdetail.isPresent()){
+                        oStdetail.get().setOwnNum(sc.getOwnNum());
+                        updateDetails.add(oStdetail.get());
+                    }else{
+                        SmartEvaluateTdetail nDetail = new SmartEvaluateTdetail();
+                        nDetail.setScoreManageId(sc.getId());
+                        nDetail.setTermId(teacher.getTermId());
+                        nDetail.setUserId(teacher.getUserId());
+                        nDetail.setOwnNum(sc.getOwnNum());
+                        newDetails.add(nDetail);
+                    }
+                }
             }
-        }
-        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());
+
+            int updateEvaluate = smartEvaluateTeacherService.updateSmartEvaluateTeacher(teacher);
+            if (updateEvaluate <= 0) {
+                throw new Exception("教师评分数据更新失败!");
             }
+
+            if(newDetails != null && newDetails.size() > 0){
+                boolean insertDetail = smartEvaluateTdetailService.saveBatch(newDetails);
+                if(!insertDetail){
+                    return CommonResult.fail("评价明细数据添加失败");
+                }
+            }
+
+            if(updateDetails != null && updateDetails.size() > 0){
+                boolean updateDetail = smartEvaluateTdetailService.updateBatchById(updateDetails);
+                if(!updateDetail){
+                    return CommonResult.fail("评价明细数据更新失败");
+                }
+            }
+        } catch (Exception e) {
+            throw new Exception("评分失败!");
         }
-        teacher.setTotalScore(simpleEvaluateScore.getTotalScore());
-        teacher.setLowingScore(simpleEvaluateScore.getLowingScore());
-        teacher.setEvaluateDetail(desScore.toString());
-        smartEvaluateTeacherService.updateSmartEvaluateTeacher(teacher);
-        return CommonResult.ok();
+
+        return CommonResult.ok("评分成功");
     }
 
     @PassToken
@@ -312,7 +321,7 @@ public class SmartEvaluateTeacherController implements SmartEvaluateTeacherContr
                     child.setScoreItem(detail.getScoreItem());
                     child.setScoreNum(detail.getScoreNum());
                     Optional<SmartEvaluateTdetail> oset = sets.stream().filter(e -> e.getScoreManageId().equals(detail.getId())).findFirst();
-                    if(oset != null && oset.isPresent()){
+                    if (oset != null && oset.isPresent()) {
                         child.setOwnNum(oset.get().getOwnNum());
                         ownerTotal.add(new BigDecimal(oset.get().getOwnNum()));
                     }

+ 4 - 4
src/main/java/com/template/controller/SmartSemesterController.java

@@ -210,28 +210,28 @@ public class SmartSemesterController implements SmartSemesterControllerAPI {
                         jone.setTerm(smartApply.getName());
                         jone.setScoreItem("工作量");
                         jone.setParentId(data.getId());
-                        jone.setScoreNum(3.0);
+                        jone.setScoreNum(8.0);
                         scoreManageDetails.add(jone);
                         SmartScoreManage jtwo = new SmartScoreManage();
                         jtwo.setTermId(result);
                         jtwo.setTerm(smartApply.getName());
                         jtwo.setScoreItem("教学成绩");
                         jtwo.setParentId(data.getId());
-                        jtwo.setScoreNum(3.0);
+                        jtwo.setScoreNum(30.0);
                         scoreManageDetails.add(jtwo);
                         SmartScoreManage jthree = new SmartScoreManage();
                         jthree.setTermId(result);
                         jthree.setTerm(smartApply.getName());
                         jthree.setScoreItem("教研成果");
                         jthree.setParentId(data.getId());
-                        jthree.setScoreNum(6.0);
+                        jthree.setScoreNum(10.0);
                         scoreManageDetails.add(jthree);
                         SmartScoreManage jfour = new SmartScoreManage();
                         jfour.setTermId(result);
                         jfour.setTerm(smartApply.getName());
                         jfour.setScoreItem("专业成长");
                         jfour.setParentId(data.getId());
-                        jfour.setScoreNum(4.0);
+                        jfour.setScoreNum(6.0);
                         scoreManageDetails.add(jfour);
                         break;
                     default:

+ 15 - 16
src/main/java/com/template/controller/WechatScanLoginController.java

@@ -196,14 +196,14 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
                 if (userc.isEmpty()) {
                     return "redirect:" + HttpParame.FRONT_URI + "/#/login?message=" + URLEncoder.encode("用户不存在", "UTF-8");
                 }
-                for (SmartUser user:userc){
+                for (SmartUser user : userc) {
                     user.setOpenId(openid);
                 }
 
                 boolean m = smartUserService.updateUserBatchById(userc);
                 if (m) {
                     Optional<SmartUser> oUser = userc.stream().filter(e -> e.getIdentityId().intValue() == eIdentityStatu.Teacher.getValue()).findFirst();
-                    if(oUser != null && oUser.isPresent()){
+                    if (oUser != null && oUser.isPresent()) {
                         String token = JWTUtil.getToken(oUser.get(), null);
                         QueryWrapper<SmartAuthority> queryWrapper3 = new QueryWrapper<>();
                         queryWrapper3.eq("deleted", 0);
@@ -686,7 +686,7 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
         }
 
         if (oldUsers != null && oldUsers.size() > 0) {
-            for (SmartUser oldUser :oldUsers){
+            for (SmartUser oldUser : oldUsers) {
                 oldUser.setPhone(phone);
             }
 
@@ -852,15 +852,16 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
         if (GlobalData.getAddressBook() == null) {
             QueryWrapper<SmartGrade> queryWrapper1 = new QueryWrapper<>();
             queryWrapper1.eq("deleted", 0);
+            queryWrapper1.eq("id", user.getGrade());
             List<SmartGrade> grades = smartGradeService.list(queryWrapper1);
             gradeBookList = new ArrayList<>();
             for (int i = 0; i < grades.size(); i++) {
-                GradeBook gradeBook = new GradeBook();
-                gradeBook.setGradeName(grades.get(i).getName());
                 QueryWrapper<SmartClass> queryWrapper2 = new QueryWrapper<>();
                 queryWrapper2.eq("deleted", 0);
-                queryWrapper2.eq("grade_id", grades.get(i).getId());
+                queryWrapper2.eq("id", user.getSchoolClass());
                 List<SmartClass> classes = smartClassService.list(queryWrapper2);
+                GradeBook gradeBook = new GradeBook();
+                gradeBook.setGradeName(grades.get(i).getName());
                 List<ClassBook> classBookList = new ArrayList<>();
                 for (int j = 0; j < classes.size(); j++) {
                     ClassBook classBook = new ClassBook();
@@ -868,21 +869,19 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
                     QueryWrapper<SmartUser> queryWrapper3 = new QueryWrapper<>();
                     queryWrapper3.eq("deleted", 0);
                     queryWrapper3.eq("is_cancel", 0);
-                    queryWrapper3.eq("school_class", classes.get(j).getId());
-                    queryWrapper3.eq("identity_id", 2);
+                    queryWrapper3.eq("school_class", user.getSchoolClass());
+                    queryWrapper3.eq("identity_id", eIdentityStatu.Student.getValue());
                     List<SmartUser> users = smartUserService.list(queryWrapper3);
                     List<BookUser> bookUserList = new ArrayList<>();
+                    List<Integer> studentIds = users.stream().map(SmartUser::getId).collect(Collectors.toList());
+                    List<SmartUser> usersPrarents = smartUserService.querySmartParentByIds(studentIds);
+
                     for (int k = 0; k < users.size(); k++) {
                         if (Objects.equals(users.get(k).getSchoolClass(), user.getSchoolClass())) {
-                            String ob = JSONObject.toJSONString(users.get(k));
+                            SmartUser userData = users.get(k);
+                            String ob = JSONObject.toJSONString(userData);
                             BookUser bookUser = JSONObject.parseObject(ob, BookUser.class);
-                            ;
-                            QueryWrapper<SmartUser> queryWrapper4 = new QueryWrapper<>();
-                            queryWrapper4.eq("deleted", 0);
-                            queryWrapper4.eq("is_cancel", 0);
-                            queryWrapper4.eq("affiliate", users.get(k).getId());
-                            queryWrapper4.eq("identity_id", 1);
-                            List<SmartUser> usersPrarent = smartUserService.list(queryWrapper4);
+                            List<SmartUser> usersPrarent = usersPrarents.stream().filter(e -> ("," + e.getAffiliate() + ",").contains("," + userData.getId() + ",")).collect(Collectors.toList());
                             bookUser.setUserParents(usersPrarent);
                             bookUserList.add(bookUser);
                         }

+ 2 - 0
src/main/java/com/template/mapper/SmartUserMapper.java

@@ -49,4 +49,6 @@ public interface SmartUserMapper extends BaseMapper<SmartUser> {
 
     List<StudentSelectVo> studentSelect(@Param("keyWord") String keyWord);
 
+    List<SmartUser> querySmartParentByIds(@Param("studentIds") List<Integer> studentIds);
+
 }

+ 3 - 0
src/main/java/com/template/services/SmartUserService.java

@@ -50,6 +50,7 @@ public interface SmartUserService extends IService<SmartUser> {
     List<SmartUser> querySmartUsers(List<Integer> departmentIds, String name);
 
     List<SmartUser> queryStudentDatas();
+
 	List<SmartUser> queryStudentBySchoolClass(Integer schoolClass);
 
     PageUtils<WarningUserDto> warningUserList(int currentPage, int pageCount, String name);
@@ -138,4 +139,6 @@ public interface SmartUserService extends IService<SmartUser> {
     List<SmartUser> getChargeTeacher(Integer schoolClass);
 
     List<StudentSelectVo> studentSelect(String keyWord);
+
+    List<SmartUser> querySmartParentByIds(List<Integer> studentIds);
 }

+ 6 - 0
src/main/java/com/template/services/impl/SmartUserServiceImpl.java

@@ -362,5 +362,11 @@ public class SmartUserServiceImpl extends ServiceImpl<SmartUserMapper, SmartUser
         return smartUserMapper.studentSelect(keyWord);
     }
 
+    @Override
+    public List<SmartUser> querySmartParentByIds(List<Integer> studentIds) {
+        List<SmartUser> result = smartUserMapper.querySmartParentByIds(studentIds);
+        return result;
+    }
+
 
 }

+ 11 - 0
src/main/resources/mapper/template/SmartUserMapper.xml

@@ -259,4 +259,15 @@
           AND (su.`name` LIKE '%' #{keyWord} '%' or su.card_no= #{keyWord})
     </select>
 
+
+    <select id="querySmartParentByIds" resultType="com.template.model.pojo.SmartUser">
+        select * from smart_user
+        where deleted = 0 and identity_id = 1 and is_cancel = 0
+        <if test="studentIds != null and studentIds.size() > 0">
+            and
+            <foreach collection="studentIds" item="studentId" index="index" open="(" close=")" separator="or">
+                FIND_IN_SET(${studentId},affiliate)
+            </foreach>
+        </if>
+    </select>
 </mapper>