Commit 5556ee022b4a49cd1b8e46690cd8fe69c48a0239
1 parent
eda18c42
Exists in
master
机器人接口完成80%
Showing
16 changed files
with
303 additions
and
34 deletions
Show diff stats
springboot/morning-check/src/main/java/com/sincere/morningcheck/MorningCheckApplication.java
| ... | ... | @@ -4,6 +4,9 @@ import org.springframework.boot.SpringApplication; |
| 4 | 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; |
| 5 | 5 | import org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration; |
| 6 | 6 | import org.springframework.context.annotation.Bean; |
| 7 | +import org.springframework.web.cors.CorsConfiguration; | |
| 8 | +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; | |
| 9 | +import org.springframework.web.filter.CorsFilter; | |
| 7 | 10 | import org.springframework.web.multipart.MultipartResolver; |
| 8 | 11 | import org.springframework.web.multipart.commons.CommonsMultipartResolver; |
| 9 | 12 | |
| ... | ... | @@ -30,4 +33,22 @@ public class MorningCheckApplication { |
| 30 | 33 | resolver.setMaxUploadSize(50 * 1024 * 1024);//上传文件大小 50 10*1024*1024 |
| 31 | 34 | return resolver; |
| 32 | 35 | } |
| 36 | + | |
| 37 | + @Bean | |
| 38 | + public CorsFilter corsFilter() { | |
| 39 | + final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); | |
| 40 | + final CorsConfiguration config = new CorsConfiguration(); | |
| 41 | + config.setAllowCredentials(true); | |
| 42 | + config.addAllowedOrigin("*"); | |
| 43 | + config.addAllowedHeader("*"); | |
| 44 | + config.addAllowedMethod("OPTIONS"); | |
| 45 | + config.addAllowedMethod("HEAD"); | |
| 46 | + config.addAllowedMethod("GET"); | |
| 47 | + config.addAllowedMethod("PUT"); | |
| 48 | + config.addAllowedMethod("POST"); | |
| 49 | + config.addAllowedMethod("DELETE"); | |
| 50 | + config.addAllowedMethod("PATCH"); | |
| 51 | + source.registerCorsConfiguration("/**", config); | |
| 52 | + return new CorsFilter(source); | |
| 53 | + } | |
| 33 | 54 | } | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/CheckReportController.java
| ... | ... | @@ -5,6 +5,7 @@ import com.sincere.morningcheck.model.ApiStudentCheckReport; |
| 5 | 5 | import com.sincere.morningcheck.service.StudentCheckReportService; |
| 6 | 6 | import io.swagger.annotations.Api; |
| 7 | 7 | import io.swagger.annotations.ApiImplicitParam; |
| 8 | +import io.swagger.annotations.ApiImplicitParams; | |
| 8 | 9 | import io.swagger.annotations.ApiOperation; |
| 9 | 10 | |
| 10 | 11 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -30,5 +31,26 @@ public class CheckReportController { |
| 30 | 31 | return studentCheckReportService.getCheckReport(stuUserId); |
| 31 | 32 | } |
| 32 | 33 | |
| 34 | + @ApiOperation(value = "根据学校获取学生晨检报告") | |
| 35 | + @ApiImplicitParams({ | |
| 36 | + @ApiImplicitParam(name = "schoolId",value = "学校ID",required = true), | |
| 37 | + @ApiImplicitParam(name = "checkTime",value = "检查报告的时间,格式为yyyy-MM-dd",required = true) | |
| 38 | + }) | |
| 39 | + @GetMapping("getCheckReportBySchoolId") | |
| 40 | + public ServerResponse getCheckReportBySchoolId(@RequestParam Integer schoolId,@RequestParam String checkTime){ | |
| 41 | + | |
| 42 | + return studentCheckReportService.getCheckReportBySchool(schoolId,checkTime); | |
| 43 | + } | |
| 44 | + | |
| 45 | + @ApiOperation(value = "根据年级获取学生异常晨检报告的比例") | |
| 46 | + @ApiImplicitParams({ | |
| 47 | + @ApiImplicitParam(name = "schoolId",value = "学校ID",required = true), | |
| 48 | + @ApiImplicitParam(name = "gradeId",value = "年级标识",required = true) | |
| 49 | + }) | |
| 50 | + @GetMapping("getCheckExReportByGrade") | |
| 51 | + public ServerResponse getCheckExReportByGrade(@RequestParam Integer schoolId,@RequestParam Integer gradeId){ | |
| 52 | + | |
| 53 | + return studentCheckReportService.getCheckExReportByGrade(schoolId,gradeId); | |
| 54 | + } | |
| 33 | 55 | |
| 34 | 56 | } | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/MorningCheckController.java
| ... | ... | @@ -366,7 +366,8 @@ public class MorningCheckController { |
| 366 | 366 | studentCheckReport.setCardNo(card); |
| 367 | 367 | studentCheckReport.setCheckResult(result); |
| 368 | 368 | studentCheckReport.setRobotResult(robotResult); |
| 369 | - java.sql.Date checkDate = new java.sql.Date(new Date().getTime()); | |
| 369 | + //java.sql.Date checkDate = new java.sql.Date(new Date().getTime()); | |
| 370 | + Date checkDate = new Date(); | |
| 370 | 371 | studentCheckReport.setCheckTime(checkDate); |
| 371 | 372 | studentCheckReport.setInTime(checkDate); |
| 372 | 373 | studentCheckReport.setTemperature(temperature); | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentCheckReportDao.java
| 1 | 1 | package com.sincere.morningcheck.dao; |
| 2 | 2 | |
| 3 | +import com.sincere.morningcheck.model.ClassExReport; | |
| 3 | 4 | import com.sincere.morningcheck.model.StudentCheckReport; |
| 4 | 5 | import org.apache.ibatis.annotations.Mapper; |
| 5 | 6 | import org.apache.ibatis.annotations.Param; |
| 6 | 7 | import org.springframework.stereotype.Repository; |
| 7 | 8 | |
| 9 | +import java.util.List; | |
| 10 | + | |
| 8 | 11 | @Mapper |
| 9 | 12 | @Repository |
| 10 | 13 | public interface StudentCheckReportDao { |
| 11 | 14 | |
| 12 | 15 | int insert(StudentCheckReport studentCheckReport); |
| 13 | 16 | |
| 14 | - StudentCheckReport getCheckReport(@Param("studentId") Integer studentId); | |
| 17 | + List<StudentCheckReport> getCheckReport(@Param("studentId") Integer studentId); | |
| 18 | + | |
| 19 | + int getCheckStuCountBySchoolId(@Param("schoolId")Integer schoolId,@Param("checkTime") String checkTime); | |
| 20 | + | |
| 21 | + List<StudentCheckReport> getCheckReportBySchoolId(@Param("schoolId")Integer schoolId,@Param("checkTime") String checkTime); | |
| 22 | + | |
| 23 | + List<ClassExReport> getCheckExReportByGrade(@Param("schoolId")Integer schoolId,@Param("gradeId") Integer gradeId); | |
| 15 | 24 | } | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentDao.java
| 1 | 1 | package com.sincere.morningcheck.dao; |
| 2 | 2 | |
| 3 | 3 | |
| 4 | +import com.sincere.morningcheck.model.Grade; | |
| 4 | 5 | import com.sincere.morningcheck.model.Student; |
| 5 | 6 | import org.apache.ibatis.annotations.Mapper; |
| 6 | 7 | import org.apache.ibatis.annotations.Param; |
| ... | ... | @@ -19,6 +20,9 @@ public interface StudentDao { |
| 19 | 20 | |
| 20 | 21 | Student getStudentByStuUserId(@Param("sUserId") String sUserId); |
| 21 | 22 | |
| 23 | + int getStuCountBySchoolId(@Param("schoolId") Integer schoolId); | |
| 24 | + | |
| 25 | + List<Grade> getGradeBySchoolId(@Param("schoolId") Integer schoolId); | |
| 22 | 26 | /** |
| 23 | 27 | * 传入的参数和返回的结果都在map集合参数params中 |
| 24 | 28 | * @param params | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ApiStudentCheckReport.java
springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ClassExReport.java
0 → 100644
springboot/morning-check/src/main/java/com/sincere/morningcheck/model/Grade.java
0 → 100644
springboot/morning-check/src/main/java/com/sincere/morningcheck/model/StudentCheckReport.java
springboot/morning-check/src/main/java/com/sincere/morningcheck/service/StudentCheckReportService.java
| ... | ... | @@ -10,4 +10,8 @@ public interface StudentCheckReportService { |
| 10 | 10 | int insert(StudentCheckReport studentCheckReport); |
| 11 | 11 | |
| 12 | 12 | ServerResponse<ApiStudentCheckReport> getCheckReport(String stuUserId); |
| 13 | + | |
| 14 | + ServerResponse getCheckReportBySchool(Integer schoolId,String checkTime); | |
| 15 | + | |
| 16 | + ServerResponse getCheckExReportByGrade(Integer schoolId,Integer gradeId); | |
| 13 | 17 | } | ... | ... |
springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/StudentCheckReportServiceImpl.java
| ... | ... | @@ -3,15 +3,14 @@ package com.sincere.morningcheck.service.impl; |
| 3 | 3 | import com.sincere.morningcheck.common.ServerResponse; |
| 4 | 4 | import com.sincere.morningcheck.dao.StudentCheckReportDao; |
| 5 | 5 | import com.sincere.morningcheck.dao.StudentDao; |
| 6 | -import com.sincere.morningcheck.model.ApiStudentCheckReport; | |
| 7 | -import com.sincere.morningcheck.model.CheckResult; | |
| 8 | -import com.sincere.morningcheck.model.Student; | |
| 9 | -import com.sincere.morningcheck.model.StudentCheckReport; | |
| 6 | +import com.sincere.morningcheck.model.*; | |
| 10 | 7 | import com.sincere.morningcheck.service.StudentCheckReportService; |
| 11 | 8 | import org.springframework.beans.factory.annotation.Autowired; |
| 12 | 9 | import org.springframework.stereotype.Service; |
| 13 | 10 | |
| 14 | 11 | import java.text.SimpleDateFormat; |
| 12 | +import java.util.*; | |
| 13 | +import java.util.stream.Collectors; | |
| 15 | 14 | |
| 16 | 15 | @Service |
| 17 | 16 | public class StudentCheckReportServiceImpl implements StudentCheckReportService { |
| ... | ... | @@ -30,52 +29,202 @@ public class StudentCheckReportServiceImpl implements StudentCheckReportService |
| 30 | 29 | @Override |
| 31 | 30 | public ServerResponse<ApiStudentCheckReport> getCheckReport(String stuUserId) { |
| 32 | 31 | |
| 33 | - StudentCheckReport studentCheckReport; | |
| 32 | + List<StudentCheckReport> studentCheckReports = new ArrayList<>(); | |
| 33 | + StudentCheckReport studentCheckReport= new StudentCheckReport(); | |
| 34 | 34 | |
| 35 | 35 | Student student = studentDao.getStudentByStuUserId(stuUserId); |
| 36 | - studentCheckReport = studentCheckReportDao.getCheckReport(student.getStuId()); | |
| 36 | + studentCheckReports = studentCheckReportDao.getCheckReport(student.getStuId()); | |
| 37 | 37 | Boolean isMorningCheck; |
| 38 | - if(studentCheckReport == null){ | |
| 39 | - isMorningCheck = false; | |
| 38 | + if(studentCheckReports!=null&&studentCheckReports.size()>0){ | |
| 39 | + | |
| 40 | + studentCheckReport = studentCheckReports.get(0); | |
| 41 | + isMorningCheck = true; | |
| 42 | + | |
| 40 | 43 | }else{ |
| 41 | - isMorningCheck = true; | |
| 44 | + isMorningCheck = false; | |
| 42 | 45 | } |
| 43 | 46 | |
| 44 | 47 | ApiStudentCheckReport apiStudentCheckReport = getApiStudentReport(studentCheckReport,isMorningCheck); |
| 45 | 48 | return ServerResponse.createBySuccess(apiStudentCheckReport); |
| 46 | 49 | } |
| 47 | 50 | |
| 51 | + @Override | |
| 52 | + public ServerResponse getCheckReportBySchool(Integer schoolId, String checkTime) { | |
| 53 | + | |
| 54 | + Map<String,Object> map = new HashMap<>(); | |
| 55 | + | |
| 56 | + int studentAllCount = getStuCountBySchoolId(schoolId); | |
| 57 | + int stuCheckStuCount = studentCheckReportDao.getCheckStuCountBySchoolId(schoolId,checkTime); | |
| 58 | + map.put("studentAllCount",studentAllCount); | |
| 59 | + map.put("stuCheckStuCount",stuCheckStuCount); | |
| 60 | + | |
| 61 | + List<StudentCheckReport> studentCheckReports = studentCheckReportDao.getCheckReportBySchoolId(schoolId,checkTime); | |
| 62 | + | |
| 63 | + List<StudentCheckReport> studentExCheckReports = studentCheckReports.stream().filter(n->n.getCheckResult().contains("N")).collect(Collectors.toList()); | |
| 64 | + //检查报告总人数 | |
| 65 | + int checkAllCount = studentCheckReports.size(); | |
| 66 | + //异常人数 | |
| 67 | + long exCheckCount = studentExCheckReports.size(); | |
| 68 | + //检查报告中正常的人数 | |
| 69 | + long checkCount = checkAllCount - exCheckCount; | |
| 70 | + | |
| 71 | + map.put("checkCount",checkCount); | |
| 72 | + map.put("exCheckCount",exCheckCount); | |
| 73 | + | |
| 74 | + List<Grade> grades= studentDao.getGradeBySchoolId(schoolId); | |
| 75 | + | |
| 76 | + map.put("grades",grades); | |
| 77 | + | |
| 78 | + List<String> checkTypeList = new ArrayList<>(); | |
| 79 | + List<Long> checkTypeCount = new ArrayList<>(); | |
| 80 | +// String[] checkTypeArrays ={"handNoEx","mouthNoEx","noRedEye","noFever","noCrotchBig","noPoorSpirit","noPharyngitis","noTrauma","noCough","noNail","noToothDecay","other"}; | |
| 81 | + | |
| 82 | + List<CheckResult> checkResults = new ArrayList<>(); | |
| 83 | + for(StudentCheckReport checkReport:studentExCheckReports){ | |
| 84 | + CheckResult checkResult = new CheckResult(); | |
| 85 | + char[] chs = checkReport.getCheckResult().toCharArray(); | |
| 86 | + checkResult = getCheckResult(chs); | |
| 87 | + checkResults.add(checkResult); | |
| 88 | + } | |
| 89 | + | |
| 90 | + long count1 = checkResults.stream().filter(n->!n.getHandNoEx()).count(); | |
| 91 | + if(count1>0){ | |
| 92 | + checkTypeList.add("handNoEx"); | |
| 93 | + checkTypeCount.add(count1); | |
| 94 | + } | |
| 95 | + long count2= checkResults.stream().filter(n->!n.getMouthNoEx()).count(); | |
| 96 | + if(count2>0){ | |
| 97 | + checkTypeList.add("mouthNoEx"); | |
| 98 | + checkTypeCount.add(count2); | |
| 99 | + } | |
| 100 | + long count3= checkResults.stream().filter(n->!n.getNoRedEye()).count(); | |
| 101 | + if(count3>0){ | |
| 102 | + checkTypeList.add("noRedEye"); | |
| 103 | + checkTypeCount.add(count3); | |
| 104 | + } | |
| 105 | + long count4= checkResults.stream().filter(n->!n.getNoFever()).count(); | |
| 106 | + if(count4>0){ | |
| 107 | + checkTypeList.add("noFever"); | |
| 108 | + checkTypeCount.add(count4); | |
| 109 | + } | |
| 110 | + | |
| 111 | + long count5= checkResults.stream().filter(n->!n.getNoCrotchBig()).count(); | |
| 112 | + if(count5>0){ | |
| 113 | + checkTypeList.add("noCrotchBig"); | |
| 114 | + checkTypeCount.add(count5); | |
| 115 | + } | |
| 116 | + | |
| 117 | + long count6= checkResults.stream().filter(n->!n.getNoPoorSpirit()).count(); | |
| 118 | + if(count6>0){ | |
| 119 | + checkTypeList.add("noPoorSpirit"); | |
| 120 | + checkTypeCount.add(count6); | |
| 121 | + } | |
| 122 | + long count7= checkResults.stream().filter(n->!n.getNoPharyngitis()).count(); | |
| 123 | + if(count7>0){ | |
| 124 | + checkTypeList.add("noPharyngitis"); | |
| 125 | + checkTypeCount.add(count7); | |
| 126 | + } | |
| 127 | + | |
| 128 | + long count8= checkResults.stream().filter(n->!n.getNoTrauma()).count(); | |
| 129 | + if(count8>0){ | |
| 130 | + checkTypeList.add("noTrauma"); | |
| 131 | + checkTypeCount.add(count8); | |
| 132 | + } | |
| 133 | + | |
| 134 | + long count9= checkResults.stream().filter(n->!n.getNoCough()).count(); | |
| 135 | + if(count9>0){ | |
| 136 | + checkTypeList.add("noCough"); | |
| 137 | + checkTypeCount.add(count9); | |
| 138 | + } | |
| 139 | + | |
| 140 | + long count10= checkResults.stream().filter(n->!n.getNoNail()).count(); | |
| 141 | + if(count10>0){ | |
| 142 | + checkTypeList.add("noNail"); | |
| 143 | + checkTypeCount.add(count10); | |
| 144 | + } | |
| 145 | + | |
| 146 | + long count11= checkResults.stream().filter(n->!n.getNoToothDecay()).count(); | |
| 147 | + if(count11>0){ | |
| 148 | + checkTypeList.add("noToothDecay"); | |
| 149 | + checkTypeCount.add(count11); | |
| 150 | + } | |
| 151 | + | |
| 152 | + long count12= checkResults.stream().filter(n->!n.getOther()).count(); | |
| 153 | + if(count12>0){ | |
| 154 | + checkTypeList.add("other"); | |
| 155 | + checkTypeCount.add(count12); | |
| 156 | + } | |
| 157 | + map.put("checkTypeList",checkTypeList); | |
| 158 | + map.put("checkTypeCount",checkTypeCount); | |
| 159 | + return ServerResponse.createBySuccess(map); | |
| 160 | + } | |
| 161 | + | |
| 162 | + @Override | |
| 163 | + public ServerResponse getCheckExReportByGrade(Integer schoolId, Integer gradeId) { | |
| 164 | + | |
| 165 | + List<ClassExReport> classExReports = studentCheckReportDao.getCheckExReportByGrade(schoolId,gradeId); | |
| 166 | + float count = 0; | |
| 167 | + for(ClassExReport classExReport : classExReports){ | |
| 168 | + count = count + classExReport.getCount(); | |
| 169 | + } | |
| 170 | + | |
| 171 | + if(count>0){ | |
| 172 | + for(ClassExReport classExReport : classExReports){ | |
| 173 | + classExReport.setExRate((classExReport.getCount()/count)*100); | |
| 174 | + } | |
| 175 | + }else { | |
| 176 | + return ServerResponse.createByErrorCodeMessage(10,"暂无数据"); | |
| 177 | + } | |
| 178 | + return ServerResponse.createBySuccess(classExReports); | |
| 179 | + } | |
| 180 | + | |
| 48 | 181 | private ApiStudentCheckReport getApiStudentReport(StudentCheckReport studentCheckReport,Boolean isMorningCheck){ |
| 49 | 182 | |
| 50 | 183 | ApiStudentCheckReport apiStudentCheckReport = new ApiStudentCheckReport(); |
| 51 | 184 | if(isMorningCheck) { |
| 52 | 185 | apiStudentCheckReport.setCardNo(studentCheckReport.getCardNo()); |
| 53 | - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); | |
| 186 | + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); | |
| 187 | + System.out.println(studentCheckReport.getCheckTime()); | |
| 54 | 188 | apiStudentCheckReport.setCheckTime(simpleDateFormat.format(studentCheckReport.getCheckTime())); |
| 55 | 189 | apiStudentCheckReport.setStudent_id(studentCheckReport.getStudent_id()); |
| 56 | 190 | apiStudentCheckReport.setTemperature(studentCheckReport.getTemperature()); |
| 57 | 191 | char[] chs = studentCheckReport.getCheckResult().toCharArray(); |
| 58 | - CheckResult checkResult = new CheckResult(); | |
| 59 | - | |
| 60 | - //前12位 | |
| 61 | - checkResult.setHandNoEx(isJudge(Character.toString(chs[0]))); | |
| 62 | - checkResult.setMouthNoEx(isJudge(Character.toString(chs[1]))); | |
| 63 | - checkResult.setNoRedEye(isJudge(Character.toString(chs[2]))); | |
| 64 | - checkResult.setNoFever(isJudge(Character.toString(chs[3]))); | |
| 65 | - checkResult.setNoCrotchBig(isJudge(Character.toString(chs[4]))); | |
| 66 | - checkResult.setNoPoorSpirit(isJudge(Character.toString(chs[5]))); | |
| 67 | - checkResult.setNoPharyngitis(isJudge(Character.toString(chs[6]))); | |
| 68 | - checkResult.setNoTrauma(isJudge(Character.toString(chs[7]))); | |
| 69 | - checkResult.setNoCough(isJudge(Character.toString(chs[8]))); | |
| 70 | - checkResult.setNoNail(isJudge(Character.toString(chs[9]))); | |
| 71 | - checkResult.setNoToothDecay(isJudge(Character.toString(chs[10]))); | |
| 72 | - checkResult.setOther(isJudge(Character.toString(chs[11]))); | |
| 192 | + CheckResult checkResult = getCheckResult(chs); | |
| 73 | 193 | apiStudentCheckReport.setCheckResultObj(checkResult); |
| 74 | 194 | } |
| 75 | 195 | apiStudentCheckReport.setIsMorningCheck(isMorningCheck); |
| 76 | 196 | return apiStudentCheckReport; |
| 77 | 197 | } |
| 78 | 198 | |
| 199 | + private int getStuCountBySchoolId(Integer schoolId){ | |
| 200 | + | |
| 201 | + return studentDao.getStuCountBySchoolId(schoolId); | |
| 202 | + } | |
| 203 | + | |
| 204 | + /** | |
| 205 | + * 解析字符串 | |
| 206 | + * @param chs | |
| 207 | + * @return | |
| 208 | + */ | |
| 209 | + private CheckResult getCheckResult(char[] chs){ | |
| 210 | + CheckResult checkResult = new CheckResult(); | |
| 211 | + | |
| 212 | + //前12位 | |
| 213 | + checkResult.setHandNoEx(isJudge(Character.toString(chs[0]))); | |
| 214 | + checkResult.setMouthNoEx(isJudge(Character.toString(chs[1]))); | |
| 215 | + checkResult.setNoRedEye(isJudge(Character.toString(chs[2]))); | |
| 216 | + checkResult.setNoFever(isJudge(Character.toString(chs[3]))); | |
| 217 | + checkResult.setNoCrotchBig(isJudge(Character.toString(chs[4]))); | |
| 218 | + checkResult.setNoPoorSpirit(isJudge(Character.toString(chs[5]))); | |
| 219 | + checkResult.setNoPharyngitis(isJudge(Character.toString(chs[6]))); | |
| 220 | + checkResult.setNoTrauma(isJudge(Character.toString(chs[7]))); | |
| 221 | + checkResult.setNoCough(isJudge(Character.toString(chs[8]))); | |
| 222 | + checkResult.setNoNail(isJudge(Character.toString(chs[9]))); | |
| 223 | + checkResult.setNoToothDecay(isJudge(Character.toString(chs[10]))); | |
| 224 | + checkResult.setOther(isJudge(Character.toString(chs[11]))); | |
| 225 | + | |
| 226 | + return checkResult; | |
| 227 | + } | |
| 79 | 228 | private Boolean isJudge(String yesOrNo){ |
| 80 | 229 | |
| 81 | 230 | if(yesOrNo.equals("Y")){ |
| ... | ... | @@ -83,4 +232,5 @@ public class StudentCheckReportServiceImpl implements StudentCheckReportService |
| 83 | 232 | } |
| 84 | 233 | return false; |
| 85 | 234 | } |
| 235 | + | |
| 86 | 236 | } | ... | ... |
springboot/morning-check/src/main/resources/file-message.properties
springboot/morning-check/src/main/resources/logback.xml
| ... | ... | @@ -4,7 +4,7 @@ |
| 4 | 4 | <property name="PROJECT_NAME" value="authjwt" /> |
| 5 | 5 | |
| 6 | 6 | <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径,不要写E:\logs,否则识别不出来,\是转义字符,需要\\才能正确识别--> |
| 7 | - <property name="LOG_HOME" value="E:\logs" /> | |
| 7 | + <property name="LOG_HOME" value="C:\logs" /> | |
| 8 | 8 | |
| 9 | 9 | <!-- 控制台输出 --> |
| 10 | 10 | <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> | ... | ... |
springboot/morning-check/src/main/resources/mapper/StudentCheckReport.xml
| ... | ... | @@ -12,8 +12,8 @@ |
| 12 | 12 | <result column="checkResult" property="checkResult" jdbcType="VARCHAR" javaType="java.lang.String"/> |
| 13 | 13 | <result column="robotResult" property="robotResult" jdbcType="VARCHAR" javaType="java.lang.String"/> |
| 14 | 14 | <result column="String" property="String" jdbcType="VARCHAR" javaType="java.lang.String"/> |
| 15 | - <result column="intime" property="inTime" jdbcType="DATE" javaType="java.sql.Date"/> | |
| 16 | - <result column="checkTime" property="checkTime" jdbcType="DATE" javaType="java.sql.Date"/> | |
| 15 | + <result column="intime" property="inTime" jdbcType="DATE" javaType="java.util.Date"/> | |
| 16 | + <result column="checkTime" property="checkTime" jdbcType="TIMESTAMP" javaType="java.util.Date"/> | |
| 17 | 17 | <result column="temperature" property="temperature" jdbcType="VARCHAR" javaType="java.lang.String"/> |
| 18 | 18 | <result column="handImgId" property="handImgId" jdbcType="VARCHAR" javaType="java.lang.String"/> |
| 19 | 19 | <result column="mouthImgId" property="mouthImgId" jdbcType="VARCHAR" javaType="java.lang.String"/> |
| ... | ... | @@ -26,7 +26,7 @@ |
| 26 | 26 | |
| 27 | 27 | <insert id="insert" parameterType="com.sincere.morningcheck.model.StudentCheckReport" > |
| 28 | 28 | insert xiaoan.dbo.SZ_StudentCheckReport(student_id,cardNo,checkResult,robotResult,intime,checkTime,access,temperature,handImgId,mouthImgId,eyeImgId) |
| 29 | -values(#{student_id,jdbcType=VARCHAR}, #{cardNo,jdbcType=VARCHAR}, #{checkResult,jdbcType=VARCHAR}, #{robotResult,jdbcType=VARCHAR},#{inTime,jdbcType=DATE},#{checkTime,jdbcType=DATE},#{access,jdbcType=VARCHAR},#{temperature,jdbcType=VARCHAR},#{handImgId,jdbcType=VARCHAR},#{mouthImgId,jdbcType=VARCHAR},#{eyeImgId,jdbcType=VARCHAR}) | |
| 29 | +values(#{student_id,jdbcType=VARCHAR}, #{cardNo,jdbcType=VARCHAR}, #{checkResult,jdbcType=VARCHAR}, #{robotResult,jdbcType=VARCHAR},#{inTime,jdbcType=TIMESTAMP},#{checkTime,jdbcType=TIMESTAMP},#{access,jdbcType=VARCHAR},#{temperature,jdbcType=VARCHAR},#{handImgId,jdbcType=VARCHAR},#{mouthImgId,jdbcType=VARCHAR},#{eyeImgId,jdbcType=VARCHAR}) | |
| 30 | 30 | </insert> |
| 31 | 31 | |
| 32 | 32 | <select id="getCheckReport" resultMap="BaseResultMap"> |
| ... | ... | @@ -34,4 +34,20 @@ values(#{student_id,jdbcType=VARCHAR}, #{cardNo,jdbcType=VARCHAR}, #{checkResult |
| 34 | 34 | where student_id = #{studentId} and CONVERT(varchar(10),checkTime,23) = CONVERT(varchar(10),getdate(),23) |
| 35 | 35 | </select> |
| 36 | 36 | |
| 37 | + <select id="getCheckReportBySchoolId" resultMap="BaseResultMap"> | |
| 38 | + select sc.student_id,cardNo,checkTime,checkResult,robotResult,intime,access,temperature,handImgId,mouthImgId,eyeImgId from SZ_V_School_Student vs join xiaoan.[dbo].[SZ_StudentCheckReport] sc | |
| 39 | + on vs.student_id=sc.student_id where school_id=#{schoolId} | |
| 40 | + and CONVERT(varchar,checkTime,23)=#{checkTime} | |
| 41 | + </select> | |
| 42 | + | |
| 43 | + <select id="getCheckStuCountBySchoolId" resultType="java.lang.Integer"> | |
| 44 | + select count(0) from SZ_V_School_Student vs join xiaoan.[dbo].[SZ_StudentCheckReport] sc on vs.student_id=sc.student_id where school_id=#{schoolId} and CONVERT(varchar,checkTime,23)=#{checkTime} | |
| 45 | + </select> | |
| 46 | + | |
| 47 | + <select id="getCheckExReportByGrade" resultType="com.sincere.morningcheck.model.ClassExReport"> | |
| 48 | + select a.class_id,className=a.class_name,count = count(a.class_id) from SZ_V_School_Student a join SZ_Class b on a.class_id=b.class_id | |
| 49 | +left join xiaoan.[dbo].[SZ_StudentCheckReport] c on a.student_id = c.student_id | |
| 50 | +where a.school_id=#{schoolId} and state=1 and grade=#{gradeId} and CHARINDEX('N',checkResult)>0 | |
| 51 | +group by a.class_id,a.class_name | |
| 52 | + </select> | |
| 37 | 53 | </mapper> |
| 38 | 54 | \ No newline at end of file | ... | ... |
springboot/morning-check/src/main/resources/mapper/studentmapper.xml
| ... | ... | @@ -38,6 +38,13 @@ |
| 38 | 38 | where user_id=#{sUserId} |
| 39 | 39 | </select> |
| 40 | 40 | |
| 41 | + <select id="getStuCountBySchoolId" resultType="java.lang.Integer"> | |
| 42 | + select count(0) from SZ_V_School_Student where school_id=#{schoolId} | |
| 43 | + </select> | |
| 44 | + | |
| 45 | + <select id="getGradeBySchoolId" resultType="com.sincere.morningcheck.model.Grade"> | |
| 46 | + select id,grade,ShortName from SZ_Grade where Status=1 and SchoolId = #{schoolId} | |
| 47 | + </select> | |
| 41 | 48 | <select id="swipeCard" statementType="CALLABLE" resultType="java.util.Map"> |
| 42 | 49 | {call xiaoan.dbo.AttendanceService( |
| 43 | 50 | #{att_id, mode=IN}, | ... | ... |
springboot/src/main/java/com/sincre/springboot/controller/TuYaYunController.java
| ... | ... | @@ -475,6 +475,13 @@ public class TuYaYunController { |
| 475 | 475 | String json = JSON.toJSONString(tuYaAirCondition); |
| 476 | 476 | String result = ApiHelper.doPost(TuYaCloudService.TuYaOpenUrl + apiUrl,map,json); |
| 477 | 477 | TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class); |
| 478 | + | |
| 479 | + if(tuYaResResult.getResult()!=null&&tuYaResResult.getResult().toString().equals("false")){ | |
| 480 | + | |
| 481 | + tuYaResResult.setResult("控制失败"); | |
| 482 | + }else{ | |
| 483 | + tuYaResResult.setResult("控制成功"); | |
| 484 | + } | |
| 478 | 485 | return ResultUtils.getInstance().returnResultTuYa(tuYaResResult); |
| 479 | 486 | } |
| 480 | 487 | ... | ... |