From eda18c424b84b43669891b97649ef0475996ec52 Mon Sep 17 00:00:00 2001 From: baishou_zjx <2710684311@qq.com> Date: Wed, 7 Aug 2019 20:08:53 +0800 Subject: [PATCH] 晨检机器人移动端接口初步完成 --- springboot/morning-check/src/main/java/com/sincere/morningcheck/MorningCheckApplication.java | 2 -- springboot/morning-check/src/main/java/com/sincere/morningcheck/common/MD5.java | 1 + springboot/morning-check/src/main/java/com/sincere/morningcheck/config/CustomConfiguration.java | 18 ++++++++++++++++++ springboot/morning-check/src/main/java/com/sincere/morningcheck/config/Swagger2.java | 2 +- springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/CheckReportController.java | 34 ++++++++++++++++++++++++++++++++++ springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/MorningCheckController.java | 95 ++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------- springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/FileDao.java | 12 ++++++++++++ springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentCheckReportDao.java | 15 +++++++++++++++ springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentDao.java | 2 ++ springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ApiStudentCheckReport.java | 36 ++++++++++++++++++++++++++++++++++++ springboot/morning-check/src/main/java/com/sincere/morningcheck/model/CheckResult.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ springboot/morning-check/src/main/java/com/sincere/morningcheck/model/FileEntity.java | 8 ++++++-- springboot/morning-check/src/main/java/com/sincere/morningcheck/model/StudentCheckReport.java | 41 +++++++++++++++++++++++++++++++++++++++++ springboot/morning-check/src/main/java/com/sincere/morningcheck/service/FileUpAndDownService.java | 3 +++ springboot/morning-check/src/main/java/com/sincere/morningcheck/service/StudentCheckReportService.java | 13 +++++++++++++ springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/FileUpAndDownServiceImpl.java | 32 +++++++++++++++++++++++--------- springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/StudentCheckReportServiceImpl.java | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ springboot/morning-check/src/main/resources/application.properties | 12 +++++++++--- springboot/morning-check/src/main/resources/file-message.properties | 2 +- springboot/morning-check/src/main/resources/mapper/StudentCheckReport.xml | 37 +++++++++++++++++++++++++++++++++++++ springboot/morning-check/src/main/resources/mapper/filemapper.xml | 25 +++++++++++++++++++++++++ springboot/morning-check/src/main/resources/mapper/studentmapper.xml | 5 +++++ springboot/src/main/java/com/sincre/springboot/controller/TuYaYunController.java | 2 +- 23 files changed, 460 insertions(+), 72 deletions(-) create mode 100644 springboot/morning-check/src/main/java/com/sincere/morningcheck/config/CustomConfiguration.java create mode 100644 springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/CheckReportController.java create mode 100644 springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/FileDao.java create mode 100644 springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentCheckReportDao.java create mode 100644 springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ApiStudentCheckReport.java create mode 100644 springboot/morning-check/src/main/java/com/sincere/morningcheck/model/CheckResult.java create mode 100644 springboot/morning-check/src/main/java/com/sincere/morningcheck/model/StudentCheckReport.java create mode 100644 springboot/morning-check/src/main/java/com/sincere/morningcheck/service/StudentCheckReportService.java create mode 100644 springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/StudentCheckReportServiceImpl.java create mode 100644 springboot/morning-check/src/main/resources/mapper/StudentCheckReport.xml create mode 100644 springboot/morning-check/src/main/resources/mapper/filemapper.xml diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/MorningCheckApplication.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/MorningCheckApplication.java index 44871e9..299e47c 100644 --- a/springboot/morning-check/src/main/java/com/sincere/morningcheck/MorningCheckApplication.java +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/MorningCheckApplication.java @@ -1,8 +1,6 @@ package com.sincere.morningcheck; -import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration; import org.springframework.context.annotation.Bean; diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/common/MD5.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/common/MD5.java index f70a353..f4e6928 100644 --- a/springboot/morning-check/src/main/java/com/sincere/morningcheck/common/MD5.java +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/common/MD5.java @@ -30,6 +30,7 @@ public class MD5 { public static boolean verify(String text, String key, String md5) throws Exception { //根据传入的密钥进行验证 String md5Text = md5(text, key); + System.out.println("签名:"+md5Text); if(md5Text.equalsIgnoreCase(md5)) { return true; diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/config/CustomConfiguration.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/config/CustomConfiguration.java new file mode 100644 index 0000000..e84bd06 --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/config/CustomConfiguration.java @@ -0,0 +1,18 @@ +package com.sincere.morningcheck.config; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class CustomConfiguration implements WebMvcConfigurer { + @Autowired + private MessageProperties config; //用来获取file-message.properties配置文件中的信息 + public void addResourceHandlers(ResourceHandlerRegistry registry) { + //上传的图片在D盘下的E:/MorningRobot/UploadData/images/目录下,访问路径如:http://localhost:8081/images/1.jpg + //其中images表示访问的前缀。"file:E:/MorningRobot/UploadData/images/"是文件真实的存储路径 + registry.addResourceHandler("/images/**").addResourceLocations("file:"+config.getUpPath()); + } +} diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/config/Swagger2.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/config/Swagger2.java index 399f377..8238d6d 100644 --- a/springboot/morning-check/src/main/java/com/sincere/morningcheck/config/Swagger2.java +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/config/Swagger2.java @@ -28,7 +28,7 @@ public class Swagger2 { private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("晨检机使用的WebApi说明文档") - .contact(new Contact("Ziv","localhost:8080/swagger-ui.html","")) + .contact(new Contact("Ziv","localhost:8999/swagger-ui.html","")) .description("") .termsOfServiceUrl("") .version("2.0") diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/CheckReportController.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/CheckReportController.java new file mode 100644 index 0000000..f618c0f --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/CheckReportController.java @@ -0,0 +1,34 @@ +package com.sincere.morningcheck.controller; + +import com.sincere.morningcheck.common.ServerResponse; +import com.sincere.morningcheck.model.ApiStudentCheckReport; +import com.sincere.morningcheck.service.StudentCheckReportService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + + +@RestController +@RequestMapping("check_report") +@Api(value = "CheckReportController",tags = "晨检机检查报告接口") +public class CheckReportController { + + + @Autowired + StudentCheckReportService studentCheckReportService; + @ApiOperation(value = "根据学生的用户ID获取学生晨检报告") + @ApiImplicitParam(name="stuUserId",value = "学生用户ID",required = true) + @GetMapping("getCheckReport") + public ServerResponse getCheckReport(@RequestParam String stuUserId){ + + return studentCheckReportService.getCheckReport(stuUserId); + } + + +} diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/MorningCheckController.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/MorningCheckController.java index 8e8bfc6..bbea1ec 100644 --- a/springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/MorningCheckController.java +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/controller/MorningCheckController.java @@ -5,8 +5,10 @@ import com.sincere.morningcheck.common.MD5; import com.sincere.morningcheck.common.ServerResponse; import com.sincere.morningcheck.model.School; import com.sincere.morningcheck.model.Student; +import com.sincere.morningcheck.model.StudentCheckReport; import com.sincere.morningcheck.model.User; import com.sincere.morningcheck.service.FileUpAndDownService; +import com.sincere.morningcheck.service.StudentCheckReportService; import com.sincere.morningcheck.service.StudentService; import com.sincere.morningcheck.service.UserServer; import com.sincere.morningcheck.service.impl.FileUpAndDownServiceImpl; @@ -22,6 +24,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; @@ -39,7 +44,6 @@ public class MorningCheckController { @Value("${salt}") private String salt; - EhcacheUtil ehcacheUtil = new EhcacheUtil(); @Autowired UserServer userServer; @@ -49,6 +53,9 @@ public class MorningCheckController { @Autowired FileUpAndDownService fileUpAndDownService; + @Autowired + StudentCheckReportService studentCheckReportService; + @ApiOperation("设备请求登陆接口") @ApiImplicitParams ({ @ApiImplicitParam(name = "deviceNo", value = "设备号", dataType = "String",required = true,paramType = "query"), @@ -56,9 +63,8 @@ public class MorningCheckController { @ApiImplicitParam(name = "authSign", value = "签名", dataType = "String",required = true,paramType = "query"), }) @PostMapping("login") - public ServerResponse login(@RequestParam String deviceNo, @RequestParam String password,@RequestParam String authSign){ + public ServerResponse login(HttpServletRequest request,@RequestParam String deviceNo, @RequestParam String password,@RequestParam String authSign){ -// System.out.println("传入的参数:设备号"+deviceNo+",密码:"+password+",签名"+authSign); ServerResponse serverResponse = null; Map map = new HashMap(); @@ -72,14 +78,15 @@ public class MorningCheckController { System.out.println(signUrl); // String md5 = MD5.md5(signUrl, salt); boolean verify = MD5.verify(signUrl,salt,authSign); - System.out.println("签名是否正确"+verify); if(verify) { User user = userServer.getDeviceUser(deviceNo); user.setParameter("0"); user.setToken(token); - ehcacheUtil.set("deviceId",user.getDeviceId()); + HttpSession session = request.getSession(); + session.setAttribute("deviceId",user.getDeviceId()); + session.setMaxInactiveInterval(-1);//从不过期 serverResponse = ServerResponse.createBySuccess("success",user); }else{ @@ -148,9 +155,8 @@ public class MorningCheckController { "时间格式为 : yyyy-MM-dd-HH-mm-ss", dataType = "String",paramType = "query") }) @PostMapping("signByCard") - public ServerResponse swipeCard(@RequestParam String token,@RequestParam String cardNo,@RequestParam Integer imageId,@RequestParam String authSign,@RequestParam(required = false) String date){ + public ServerResponse swipeCard(HttpServletRequest request,@RequestParam String token,@RequestParam String cardNo,@RequestParam Integer imageId,@RequestParam String authSign,@RequestParam(required = false) String date){ -// System.out.println("刷卡签到传入的参数:卡号"+cardNo+",图片ID:"+imageId+",签名"+authSign); LogUtil.printInfoLog("刷卡签到传入的参数:卡号"+cardNo+",图片ID:"+imageId+",签名"+authSign); ServerResponse serverResponse = null; @@ -185,21 +191,16 @@ public class MorningCheckController { boolean verify = MD5.verify(signUrl,salt,authSign); System.out.println("签名是否正确"+verify); if(verify) { - int index = imageId -1; - if(FileUpAndDownServiceImpl.globalFileEntities.size()>0) { - System.out.println("对应图像地址:" + FileUpAndDownServiceImpl.globalFileEntities.get(index).getImgObPath()); - } - //卡号,图片,刷卡时间(如果没有, 当前时间),设备号 - System.out.println("卡号:"+cardNo+",图片ID"+imageId+",设备标识:"+ehcacheUtil.get("deviceId")+",当前时间"+date+",刷进设备的卡号是:"+card); - + HttpSession session = request.getSession(); + String deviceId = session.getAttribute("deviceId").toString(); Map hashMap = new HashMap<>(); //设备编号 - hashMap.put("att_id",ehcacheUtil.get("deviceId")); + hashMap.put("att_id",deviceId); hashMap.put("card_num",card); hashMap.put("func_no","08"); hashMap.put("flag",0); hashMap.put("intime",dateIn); - System.out.println(dateIn); + System.out.println(deviceId); studentService.swipeCard(hashMap); System.out.println("集合数量:"+hashMap.size()); @@ -232,9 +233,8 @@ public class MorningCheckController { @ApiImplicitParam(name = "authSign", value = "签名", dataType = "String",required = true,paramType = "query") }) @PostMapping("signOutByCard") - public ServerResponse signOutByCard(@RequestParam String token,@RequestParam String cardNo,@RequestParam Integer imageId,@RequestParam String authSign){ + public ServerResponse signOutByCard(HttpServletRequest request,@RequestParam String token,@RequestParam String cardNo,@RequestParam Integer imageId,@RequestParam String authSign){ -// System.out.println("离园签到传入的参数:卡号"+cardNo+",图片ID:"+imageId+",签名"+authSign); ServerResponse serverResponse = null; LogUtil.printInfoLog("离园签到传入的参数:卡号"+cardNo+",图片ID:"+imageId+",签名"+authSign); @@ -251,15 +251,10 @@ public class MorningCheckController { boolean verify = MD5.verify(signUrl,salt,authSign); System.out.println("签名是否正确"+verify); if(verify) { - - int index = imageId -1; - if(FileUpAndDownServiceImpl.globalFileEntities.size()>0) { - System.out.println("对应图像地址:" + FileUpAndDownServiceImpl.globalFileEntities.get(index).getImgObPath()); - } - //卡号,图片,刷卡时间(如果没有, 当前时间),设备号 - System.out.println("卡号:"+cardNo+",图片ID"+imageId+",设备标识:"+ehcacheUtil.get("deviceId")+",刷进设备的卡号是:"+card); + HttpSession session = request.getSession(); + String deviceId = session.getAttribute("deviceId").toString(); Map hashMap = new HashMap<>(); - hashMap.put("att_id",ehcacheUtil.get("deviceId")); + hashMap.put("att_id",deviceId); hashMap.put("card_num",card); hashMap.put("func_no","08"); hashMap.put("flag",0); @@ -272,8 +267,7 @@ public class MorningCheckController { String msg = String.format("学生%s你好",student.getStuName()); serverResponse = ServerResponse.createBySuccessMessage(msg); }else{ - - serverResponse = ServerResponse.createByErrorMessage("签名失败"); + serverResponse = ServerResponse.createByErrorMessage("签名校验失败"); } } catch (Exception ex){ @@ -293,11 +287,7 @@ public class MorningCheckController { }) public ServerResponse moreFileUpload(@RequestParam(value = "file", required = false) MultipartFile[] file, @RequestParam(value = "token") String token, @RequestParam(value="type") String type,@RequestParam String authSign) { - LogUtil.printInfoLog("上传多个文件传入的类型:"+type+",签名:"+authSign); -// System.out.println("上传多个文件传入的类型:"+type+",签名:"+authSign); - - System.out.println("文件数量:"+file.length); ServerResponse serverResponse = null; Map map = new HashMap(); @@ -306,24 +296,22 @@ public class MorningCheckController { String[] fileNames = type.split("_"); if(fileNames.length != file.length){ - System.out.println("类型数量和文件数量不一致,程序中断"); return ServerResponse.createByErrorMessage("类型数量和文件数量不一致,程序中断"); - }else { - System.out.println("类型数量和文件数量一致,文件已经上传"); } + String queryUrl = DataConvertHelper.mapAscSortToUrl(map); try { String signUrl = queryUrl.replace("&",""); // String md5 = MD5.md5(signUrl, salt); boolean verify = MD5.verify(signUrl,salt,authSign); - System.out.println("签名是否正确"+verify); if(verify) { try { serverResponse = fileUpAndDownService.uploadPicture(file,fileNames); } catch (Exception e) { - System.out.println(">>>>>>图片上传异常,ex="+e.getMessage()); serverResponse = ServerResponse.createByErrorMessage(String.format(">>>>>>图片上传异常,e=%s", e.getMessage())); } + }else{ + serverResponse = ServerResponse.createByErrorMessage("签名校验失败"); } } catch (Exception ex){ @@ -351,14 +339,9 @@ public class MorningCheckController { @PostMapping("uploadCheckReport") public ServerResponse uploadCheckReport(@RequestParam String token,@RequestParam String cardNo,@RequestParam String result,@RequestParam String robotResult,@RequestParam String access,@RequestParam String temperature,@RequestParam(required = false) String handImgId,@RequestParam(required = false) String mouthImgId,@RequestParam(required = false) String eyeImgId,@RequestParam String authSign){ -// System.out.println("传入的参数:卡号"+cardNo+",检查结果:"+result+",检查机判断结果:"+robotResult+",签名"+authSign); - LogUtil.printInfoLog("传入的参数:卡号"+cardNo+",检查结果:"+result+",检查机判断结果:"+robotResult+",签名"+authSign); - System.out.println("嘴部异常图片ID:"+mouthImgId); - System.out.println("手部异常图片ID:"+handImgId); - System.out.println("眼部异常图片ID:"+eyeImgId); - System.out.println("入园许可。 Y : 入园 N:离园:入园情况:"+access); + LogUtil.printInfoLog("传入的参数:卡号"+cardNo+",检查结果:"+result+",检查机判断结果:"+robotResult+",签名"+authSign+"入园许可。 Y : 入园 N:离园:入园情况:"+access); - ServerResponse serverResponse = null; + ServerResponse serverResponse; String card = DataConvertHelper.distToX(Long.valueOf(cardNo)); @@ -377,20 +360,26 @@ public class MorningCheckController { try { String signUrl = queryUrl.replace("&",""); boolean verify = MD5.verify(signUrl,salt,authSign); - System.out.println("签名是否正确"+verify); if(verify) { + StudentCheckReport studentCheckReport = new StudentCheckReport(); + studentCheckReport.setAccess(access); + studentCheckReport.setCardNo(card); + studentCheckReport.setCheckResult(result); + studentCheckReport.setRobotResult(robotResult); + java.sql.Date checkDate = new java.sql.Date(new Date().getTime()); + studentCheckReport.setCheckTime(checkDate); + studentCheckReport.setInTime(checkDate); + studentCheckReport.setTemperature(temperature); + studentCheckReport.setEyeImgId(eyeImgId); + studentCheckReport.setHandImgId(handImgId); + studentCheckReport.setMouthImgId(mouthImgId); -// int index = handImgId -1; -// System.out.println("手部异常图像地址:"+FileUpAndDownServiceImpl.globalFileEntities.get(index).getImgObPath()); -// index = mouthImgId -1; -// System.out.println("嘴部异常图像地址:"+FileUpAndDownServiceImpl.globalFileEntities.get(index).getImgObPath()); -// index = eyeImgId -1; -// System.out.println("眼部异常图像地址:"+FileUpAndDownServiceImpl.globalFileEntities.get(index).getImgObPath()); - //卡号,图片,刷卡时间(如果没有, 当前时间),设备号 - System.out.println("卡号:"+cardNo+",图片ID"+handImgId+",设备标识:"+ehcacheUtil.get("deviceId")+",刷进设备的卡号是:"+card); //message: 学生姓名你好 Student student = studentService.getStudentByCardNo(card); String msg = String.format("学生%s你好,你的晨检报告已经自动生成",student.getStuName()); + studentCheckReport.setStudent_id(student.getStuId()); + studentCheckReportService.insert(studentCheckReport); + serverResponse = ServerResponse.createBySuccessMessage(msg); }else{ diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/FileDao.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/FileDao.java new file mode 100644 index 0000000..25edc16 --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/FileDao.java @@ -0,0 +1,12 @@ +package com.sincere.morningcheck.dao; + +import com.sincere.morningcheck.model.FileEntity; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface FileDao { + + int insert(FileEntity fileEntity); +} diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentCheckReportDao.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentCheckReportDao.java new file mode 100644 index 0000000..aaa9ad1 --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentCheckReportDao.java @@ -0,0 +1,15 @@ +package com.sincere.morningcheck.dao; + +import com.sincere.morningcheck.model.StudentCheckReport; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface StudentCheckReportDao { + + int insert(StudentCheckReport studentCheckReport); + + StudentCheckReport getCheckReport(@Param("studentId") Integer studentId); +} diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentDao.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentDao.java index 46e23b6..472c8c7 100644 --- a/springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentDao.java +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/dao/StudentDao.java @@ -17,6 +17,8 @@ public interface StudentDao { Student getStudentByCardNo(@Param("cardNo") String cardNo); + Student getStudentByStuUserId(@Param("sUserId") String sUserId); + /** * 传入的参数和返回的结果都在map集合参数params中 * @param params diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ApiStudentCheckReport.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ApiStudentCheckReport.java new file mode 100644 index 0000000..7af5448 --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ApiStudentCheckReport.java @@ -0,0 +1,36 @@ +package com.sincere.morningcheck.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.sql.Date; + +/** + * 接口使用类 检查报告 + */ +@Data +@ApiModel +public class ApiStudentCheckReport { + + @ApiModelProperty(name="id",value = "检查报告标识") + private Integer id; + + @ApiModelProperty(name="isMorningCheck",value = "判断是否有晨检") + private Boolean isMorningCheck; + + @ApiModelProperty(name="student_id",value = "学生标识") + private Integer student_id; + + @ApiModelProperty(name="cardNo",value = "学生卡号") + private String cardNo; + + @ApiModelProperty(name="temperature",value = "温度") + private String temperature; //json字符串 + + @ApiModelProperty(name="CheckTime",value = "检查报告时间") + private String checkTime; + + @ApiModelProperty(name="checkResultObj",value = "检查报告") + private CheckResult checkResultObj; +} diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/CheckResult.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/CheckResult.java new file mode 100644 index 0000000..ff2ce11 --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/CheckResult.java @@ -0,0 +1,49 @@ +package com.sincere.morningcheck.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 人为判断结果 + */ +@Data +@ApiModel +public class CheckResult { + + @ApiModelProperty(name = "handNoEx",value = "00位,手足是否正常,true正常,false不正常") + private Boolean handNoEx; + + @ApiModelProperty(name = "mouthNoEx",value = "01位,口腔是否正常,true正常,false不正常") + private Boolean mouthNoEx; + + @ApiModelProperty(name = "noRedEye",value = "02位,true正常,false红眼") + private Boolean noRedEye; + + @ApiModelProperty(name = "noFever",value = "03位,true正常,false发烧") + private Boolean noFever; + + @ApiModelProperty(name = "noCrotchBig",value = "04位,true正常,false腮部肿大") + private Boolean noCrotchBig; + + @ApiModelProperty(name = "noPoorSpirit",value = "05,true正常,false精神不佳") + private Boolean noPoorSpirit; + + @ApiModelProperty(name = "noPharyngitis",value = "06,true正常,false咽炎") + private Boolean noPharyngitis; + + @ApiModelProperty(name = "noTrauma",value = "07,true正常,false外伤") + private Boolean noTrauma; + + @ApiModelProperty(name = "noCough",value = "08,true正常,false咳嗽") + private Boolean noCough; + + @ApiModelProperty(name = "noNail",value = "09,true正常,false过长") + private Boolean noNail; + + @ApiModelProperty(name = "noToothDecay",value = "10,true正常,false蛀牙") + private Boolean noToothDecay; + + @ApiModelProperty(name = "other",value = "true正常,false不正常") + private Boolean other; +} diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/FileEntity.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/FileEntity.java index 0e4f95e..9dd7a3b 100644 --- a/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/FileEntity.java +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/FileEntity.java @@ -3,6 +3,8 @@ package com.sincere.morningcheck.model; import com.sincere.morningcheck.common.ImgType; import lombok.Data; +import java.sql.Date; + @Data public class FileEntity { @@ -11,9 +13,9 @@ public class FileEntity { */ private Integer photoId; /** - * 头像存储的位置(绝对路径) + * 头像存储的位置(相对路径) */ - private String imgObPath; + private String imgRePath; /** * 文件新名称 */ @@ -26,4 +28,6 @@ public class FileEntity { * 文件旧名称 */ private String oldFileName; + + private Date inTime; } diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/StudentCheckReport.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/StudentCheckReport.java new file mode 100644 index 0000000..171cafd --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/StudentCheckReport.java @@ -0,0 +1,41 @@ +package com.sincere.morningcheck.model; + +import lombok.Data; + +import java.sql.Date; + +@Data +public class StudentCheckReport { + + + private Integer id; + + private Integer student_id; + + private String cardNo; + + /** + * 人为判别结果 + */ + private String checkResult; //json字符串 + + /** + * 机器判别结果 + */ + private String robotResult; //json字符串 + + private Date checkTime; + + private Date inTime; + + private String access; + + private String temperature; + + private String handImgId; + + private String mouthImgId; + + private String eyeImgId; + +} diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/FileUpAndDownService.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/FileUpAndDownService.java index 31253e5..dc5f186 100644 --- a/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/FileUpAndDownService.java +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/FileUpAndDownService.java @@ -1,10 +1,13 @@ package com.sincere.morningcheck.service; import com.sincere.morningcheck.common.ServerResponse; +import com.sincere.morningcheck.model.FileEntity; import org.springframework.web.multipart.MultipartFile; public interface FileUpAndDownService { ServerResponse uploadPicture(MultipartFile[] file, String[] file_Types) throws Exception; + + ServerResponse insert(FileEntity fileEntity); } diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/StudentCheckReportService.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/StudentCheckReportService.java new file mode 100644 index 0000000..74a2841 --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/StudentCheckReportService.java @@ -0,0 +1,13 @@ +package com.sincere.morningcheck.service; + + +import com.sincere.morningcheck.common.ServerResponse; +import com.sincere.morningcheck.model.ApiStudentCheckReport; +import com.sincere.morningcheck.model.StudentCheckReport; + +public interface StudentCheckReportService { + + int insert(StudentCheckReport studentCheckReport); + + ServerResponse getCheckReport(String stuUserId); +} diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/FileUpAndDownServiceImpl.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/FileUpAndDownServiceImpl.java index 4b70396..2f1f45f 100644 --- a/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/FileUpAndDownServiceImpl.java +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/FileUpAndDownServiceImpl.java @@ -3,6 +3,7 @@ package com.sincere.morningcheck.service.impl; import com.sincere.morningcheck.common.ImgType; import com.sincere.morningcheck.common.ServerResponse; import com.sincere.morningcheck.config.MessageProperties; +import com.sincere.morningcheck.dao.FileDao; import com.sincere.morningcheck.model.FileEntity; import com.sincere.morningcheck.model.Photo; import com.sincere.morningcheck.service.FileUpAndDownService; @@ -21,19 +22,19 @@ public class FileUpAndDownServiceImpl implements FileUpAndDownService { @Autowired private MessageProperties config; //用来获取file-message.properties配置文件中的信息 - static Integer photoId = 0; - public static List globalFileEntities = new LinkedList<>(); + @Autowired + private FileDao fileDao; + @Override public ServerResponse uploadPicture(MultipartFile[] files, String[] file_types) throws Exception { - System.out.println("进入上传文件方法。"); List fileEntities = new LinkedList<>(); int i = 0; for(MultipartFile file : files) { System.out.println(file.getOriginalFilename()); try { - photoId++; //每进一次方法自增一次,模拟主键自增 + Map resMap = new HashMap<>(); String[] IMAGE_TYPE = config.getImageType().split(","); String path = null; @@ -54,11 +55,13 @@ public class FileUpAndDownServiceImpl implements FileUpAndDownService { String suffix = oldFileName.substring(oldFileName.lastIndexOf("."));//带逗号,不带逗号加1 // 新名称 String imgType = file_types[i]; - String newFileName = imgType + "_photoId"+photoId+suffix; + UUID uuid = UUID.randomUUID(); + String newFileName = imgType+ "_" + uuid.toString().replace("-","") +suffix; i++; // 年月日文件夹 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String basedir = sdf.format(new Date()); + String rePath = "/images/" + basedir + "/" + newFileName; // 进行压缩(大于4M) if (file.getSize() > config.getFileSize()) { path = config.getUpPath() + "/" + basedir + "/" + newFileName; @@ -82,16 +85,18 @@ public class FileUpAndDownServiceImpl implements FileUpAndDownService { } FileEntity fileEntity = new FileEntity(); - fileEntity.setPhotoId(photoId); + fileEntity.setFileName(newFileName); - fileEntity.setImgObPath(path); + fileEntity.setImgRePath(rePath); fileEntity.setOldFileName(oldFileName); fileEntity.setImgType(ImgType.valueOf(imgType)); + fileEntity.setInTime( new java.sql.Date(new Date().getTime())); + fileEntity.setPhotoId(0); + insert(fileEntity); fileEntities.add(fileEntity); } else { - System.out.println("result:图片格式不正确,支持png|jpg|jpeg"); return ServerResponse.createByErrorMessage("result:图片格式不正确,支持png|jpg|jpeg"); } } catch (Exception e) { @@ -99,7 +104,8 @@ public class FileUpAndDownServiceImpl implements FileUpAndDownService { throw new Exception(e.getMessage()); } } - globalFileEntities.addAll(fileEntities); + + //返回结果 Map map = new HashMap<>(); List photoIds = new ArrayList<>(); @@ -112,4 +118,12 @@ public class FileUpAndDownServiceImpl implements FileUpAndDownService { map.put("photoIds",photoIds); return ServerResponse.createBySuccess(map); } + + @Override + public ServerResponse insert(FileEntity fileEntity) { + + int result = fileDao.insert(fileEntity); + return ServerResponse.createBySuccess(result); + } + } diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/StudentCheckReportServiceImpl.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/StudentCheckReportServiceImpl.java new file mode 100644 index 0000000..da3a7de --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/impl/StudentCheckReportServiceImpl.java @@ -0,0 +1,86 @@ +package com.sincere.morningcheck.service.impl; + +import com.sincere.morningcheck.common.ServerResponse; +import com.sincere.morningcheck.dao.StudentCheckReportDao; +import com.sincere.morningcheck.dao.StudentDao; +import com.sincere.morningcheck.model.ApiStudentCheckReport; +import com.sincere.morningcheck.model.CheckResult; +import com.sincere.morningcheck.model.Student; +import com.sincere.morningcheck.model.StudentCheckReport; +import com.sincere.morningcheck.service.StudentCheckReportService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; + +@Service +public class StudentCheckReportServiceImpl implements StudentCheckReportService { + + @Autowired + StudentCheckReportDao studentCheckReportDao; + + @Autowired + StudentDao studentDao; + + @Override + public int insert(StudentCheckReport studentCheckReport) { + return studentCheckReportDao.insert(studentCheckReport); + } + + @Override + public ServerResponse getCheckReport(String stuUserId) { + + StudentCheckReport studentCheckReport; + + Student student = studentDao.getStudentByStuUserId(stuUserId); + studentCheckReport = studentCheckReportDao.getCheckReport(student.getStuId()); + Boolean isMorningCheck; + if(studentCheckReport == null){ + isMorningCheck = false; + }else{ + isMorningCheck = true; + } + + ApiStudentCheckReport apiStudentCheckReport = getApiStudentReport(studentCheckReport,isMorningCheck); + return ServerResponse.createBySuccess(apiStudentCheckReport); + } + + private ApiStudentCheckReport getApiStudentReport(StudentCheckReport studentCheckReport,Boolean isMorningCheck){ + + ApiStudentCheckReport apiStudentCheckReport = new ApiStudentCheckReport(); + if(isMorningCheck) { + apiStudentCheckReport.setCardNo(studentCheckReport.getCardNo()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + apiStudentCheckReport.setCheckTime(simpleDateFormat.format(studentCheckReport.getCheckTime())); + apiStudentCheckReport.setStudent_id(studentCheckReport.getStudent_id()); + apiStudentCheckReport.setTemperature(studentCheckReport.getTemperature()); + char[] chs = studentCheckReport.getCheckResult().toCharArray(); + CheckResult checkResult = new CheckResult(); + + //前12位 + checkResult.setHandNoEx(isJudge(Character.toString(chs[0]))); + checkResult.setMouthNoEx(isJudge(Character.toString(chs[1]))); + checkResult.setNoRedEye(isJudge(Character.toString(chs[2]))); + checkResult.setNoFever(isJudge(Character.toString(chs[3]))); + checkResult.setNoCrotchBig(isJudge(Character.toString(chs[4]))); + checkResult.setNoPoorSpirit(isJudge(Character.toString(chs[5]))); + checkResult.setNoPharyngitis(isJudge(Character.toString(chs[6]))); + checkResult.setNoTrauma(isJudge(Character.toString(chs[7]))); + checkResult.setNoCough(isJudge(Character.toString(chs[8]))); + checkResult.setNoNail(isJudge(Character.toString(chs[9]))); + checkResult.setNoToothDecay(isJudge(Character.toString(chs[10]))); + checkResult.setOther(isJudge(Character.toString(chs[11]))); + apiStudentCheckReport.setCheckResultObj(checkResult); + } + apiStudentCheckReport.setIsMorningCheck(isMorningCheck); + return apiStudentCheckReport; + } + + private Boolean isJudge(String yesOrNo){ + + if(yesOrNo.equals("Y")){ + return true; + } + return false; + } +} diff --git a/springboot/morning-check/src/main/resources/application.properties b/springboot/morning-check/src/main/resources/application.properties index 142e1cb..9b2d847 100644 --- a/springboot/morning-check/src/main/resources/application.properties +++ b/springboot/morning-check/src/main/resources/application.properties @@ -2,9 +2,15 @@ salt = sincere server.port=8999 -spring.datasource.username=szjxtuser -spring.datasource.password=RQminVCJota3H1u8bBYH -spring.datasource.url=jdbc:sqlserver://116.62.155.137:33419;database=smartcampus +#ʽվݿ +#spring.datasource.username=szjxtuser +#spring.datasource.password=RQminVCJota3H1u8bBYH +#spring.datasource.url=jdbc:sqlserver://116.62.155.137:33419;database=smartcampus + +#վݿ +spring.datasource.username=SZJXTUSER +spring.datasource.password=xst200919 +spring.datasource.url=jdbc:sqlserver://60.190.202.57:14333;Database=SmartCampusSZ spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver mybatis.mapper-locations=classpath:/mapper/*.xml diff --git a/springboot/morning-check/src/main/resources/file-message.properties b/springboot/morning-check/src/main/resources/file-message.properties index 193c1b9..7f7bf15 100644 --- a/springboot/morning-check/src/main/resources/file-message.properties +++ b/springboot/morning-check/src/main/resources/file-message.properties @@ -1,7 +1,7 @@ #ļѹС(5ѹ) message.fileSize=5242880 #ͼƬ· -message.upPath=D:\\MorningRobot\\UploadData\\images +message.upPath=E:/MorningRobot/UploadData/images/ #ѹ message.scaleRatio=0.90f #ͼƬ diff --git a/springboot/morning-check/src/main/resources/mapper/StudentCheckReport.xml b/springboot/morning-check/src/main/resources/mapper/StudentCheckReport.xml new file mode 100644 index 0000000..e7d95de --- /dev/null +++ b/springboot/morning-check/src/main/resources/mapper/StudentCheckReport.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + student_id,cardNo,checkTime,checkResult,robotResult,intime,access,temperature,handImgId,mouthImgId,eyeImgId + + + + insert xiaoan.dbo.SZ_StudentCheckReport(student_id,cardNo,checkResult,robotResult,intime,checkTime,access,temperature,handImgId,mouthImgId,eyeImgId) +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}) + + + + + \ No newline at end of file diff --git a/springboot/morning-check/src/main/resources/mapper/filemapper.xml b/springboot/morning-check/src/main/resources/mapper/filemapper.xml new file mode 100644 index 0000000..5e7f4e6 --- /dev/null +++ b/springboot/morning-check/src/main/resources/mapper/filemapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + insert xiaoan.dbo.SZ_MorningCheckFile(imgRePath,fileName,imgType,oldFileName,intime) +values(#{imgRePath,jdbcType=VARCHAR}, #{fileName,jdbcType=VARCHAR}, #{imgType,jdbcType=VARCHAR}, #{oldFileName,jdbcType=VARCHAR},#{inTime,jdbcType=DATE}) + + + \ No newline at end of file diff --git a/springboot/morning-check/src/main/resources/mapper/studentmapper.xml b/springboot/morning-check/src/main/resources/mapper/studentmapper.xml index d4fa244..ace07fd 100644 --- a/springboot/morning-check/src/main/resources/mapper/studentmapper.xml +++ b/springboot/morning-check/src/main/resources/mapper/studentmapper.xml @@ -33,6 +33,11 @@ where vs.role_state=1 + +