diff --git a/springboot/morning-check/pom.xml b/springboot/morning-check/pom.xml index a11ea48..d291250 100644 --- a/springboot/morning-check/pom.xml +++ b/springboot/morning-check/pom.xml @@ -115,6 +115,11 @@ 2.0.0 + + org.apache.poi + poi + 4.0.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 index 99170d0..bc0bd67 100644 --- 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 @@ -1,19 +1,26 @@ package com.sincere.morningcheck.controller; import com.sincere.morningcheck.common.ServerResponse; +import com.sincere.morningcheck.model.ApiStudent; import com.sincere.morningcheck.model.ApiStudentCheckReport; import com.sincere.morningcheck.service.StudentCheckReportService; +import com.sincere.morningcheck.utils.ExcelUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; 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; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + @RestController @RequestMapping("check_report") @@ -48,9 +55,129 @@ public class CheckReportController { @ApiImplicitParam(name = "gradeId",value = "年级标识",required = true) }) @GetMapping("getCheckExReportByGrade") - public ServerResponse getCheckExReportByGrade(@RequestParam Integer schoolId,@RequestParam Integer gradeId){ + public ServerResponse getCheckExReportByGrade(@RequestParam Integer schoolId,@RequestParam Integer gradeId,@RequestParam String checkTime){ + + return studentCheckReportService.getCheckExReportByGrade(schoolId,gradeId,checkTime); + } + + @ApiOperation(value = "学生晨检报告报表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "schoolId",value = "学校ID",required = true), + @ApiImplicitParam(name = "checkTime",value = "检查报告的时间,格式为yyyy-MM-dd",required = true), + @ApiImplicitParam(name = "gradeId",value = "年级ID",defaultValue = "0") + }) + @GetMapping("getCheckReportData") + public ServerResponse getCheckReportData(@RequestParam Integer schoolId,@RequestParam String checkTime,@RequestParam(name = "gradeId",required = false) Integer gradeId){ - return studentCheckReportService.getCheckExReportByGrade(schoolId,gradeId); + return studentCheckReportService.getCheckReportData(schoolId,checkTime,gradeId); } + + @ApiOperation("导出报表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "schoolId",value = "学校ID",required = true), + @ApiImplicitParam(name = "checkTime",value = "检查报告的时间,格式为yyyy-MM-dd",required = true), + @ApiImplicitParam(name = "gradeId",value = "年级ID",defaultValue = "0") + }) + @GetMapping("excelCheckReportData") + public void excelCheckReportData(HttpServletResponse response, @RequestParam Integer schoolId, @RequestParam String checkTime,@RequestParam(name = "gradeId",required = false) Integer gradeId){ + + //查询出需要导出的数据 + List apiStudentList=studentCheckReportService.getCheckReportData(schoolId,checkTime,gradeId).getData(); + //创建报表数据头 + List head = new ArrayList<>(); + head.add("姓名"); + head.add("班级"); + head.add("入园时间"); + head.add("手检"); + head.add("眼检"); + head.add("口腔"); + head.add("喉咙"); + head.add("体温"); + head.add("腮部"); + head.add("外表"); + head.add("外伤情况"); + head.add("指甲"); + head.add("牙齿"); + head.add("其他"); + head.add("处理情况"); + //创建报表体 + List> body = new ArrayList<>();//模拟二维集合 + if(apiStudentList!=null) { + for (ApiStudent stu : apiStudentList) { + List bodyValue = new ArrayList<>(); + bodyValue.add(String.valueOf(stu.getStuName())); + bodyValue.add(stu.getClassName()); + bodyValue.add(String.valueOf(stu.getCheckTime())); + if (stu.getCheckResultObj().getHandNoEx()) { + bodyValue.add("正常"); + } else { + bodyValue.add("异常cellStyle"); + } + if (stu.getCheckResultObj().getNoRedEye()) { + bodyValue.add("正常"); + } else { + bodyValue.add("红眼cellStyle"); + } + if (stu.getCheckResultObj().getMouthNoEx()) { + bodyValue.add("正常"); + } else { + bodyValue.add("异常cellStyle"); + } + if (stu.getCheckResultObj().getNoPharyngitis()&&stu.getCheckResultObj().getNoCough()) { + bodyValue.add("正常"); + } else { + String desc = ""; + if(!stu.getCheckResultObj().getNoPharyngitis()){ + desc = desc + "咽炎、" ; + } + if(!stu.getCheckResultObj().getNoCough()){ + desc = desc + "咳嗽" ; + } + bodyValue.add(desc+"cellStyle"); + } + if (stu.getCheckResultObj().getNoFever()) { + bodyValue.add("正常"); + } else { + bodyValue.add("发烧cellStyle"); + } + if (stu.getCheckResultObj().getNoCrotchBig()) { + bodyValue.add("正常"); + } else { + bodyValue.add("腮部肿大cellStyle"); + } + if (stu.getCheckResultObj().getNoPoorSpirit()) { + bodyValue.add("正常"); + } else { + bodyValue.add("精神不佳cellStyle"); + } + if (stu.getCheckResultObj().getNoTrauma()) { + bodyValue.add("正常"); + } else { + bodyValue.add("外伤cellStyle"); + } + if (stu.getCheckResultObj().getNoNail()) { + bodyValue.add("正常"); + } else { + bodyValue.add("过长cellStyle"); + } + if (stu.getCheckResultObj().getNoToothDecay()) { + bodyValue.add("正常"); + } else { + bodyValue.add("蛀牙cellStyle"); + } + if (stu.getCheckResultObj().getOther()) { + bodyValue.add("正常"); + } else { + bodyValue.add("异常cellStyle"); + } + bodyValue.add(""); + //将数据添加到报表体中 + body.add(bodyValue); + } + } + String fileName = checkTime+"_学生晨检报告.xls"; + HSSFWorkbook excel = ExcelUtils.expExcel(head,body); + ExcelUtils.outFileStream(excel,fileName,response); + } } 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 824fb4d..1029d46 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 @@ -3,10 +3,7 @@ package com.sincere.morningcheck.controller; import com.sincere.morningcheck.common.EhcacheUtil; 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.model.*; import com.sincere.morningcheck.service.FileUpAndDownService; import com.sincere.morningcheck.service.StudentCheckReportService; import com.sincere.morningcheck.service.StudentService; @@ -366,7 +363,6 @@ public class MorningCheckController { studentCheckReport.setCardNo(card); studentCheckReport.setCheckResult(result); studentCheckReport.setRobotResult(robotResult); - //java.sql.Date checkDate = new java.sql.Date(new Date().getTime()); Date checkDate = new Date(); studentCheckReport.setCheckTime(checkDate); studentCheckReport.setInTime(checkDate); @@ -379,8 +375,29 @@ public class MorningCheckController { Student student = studentService.getStudentByCardNo(card); String msg = String.format("学生%s你好,你的晨检报告已经自动生成",student.getStuName()); studentCheckReport.setStudent_id(student.getStuId()); - studentCheckReportService.insert(studentCheckReport); + StudentCheckReport studentCheckReportEntity= studentCheckReportService.getCheckReport(student.getStuId()); + if(studentCheckReportEntity==null){ + studentCheckReportService.insert(studentCheckReport); + }else{ + studentCheckReport.setId(studentCheckReportEntity.getId()); + int updateCount = studentCheckReportService.updateByStudent(studentCheckReport); + } + + StudentCheckReportHis studentCheckReportHis = new StudentCheckReportHis(); + studentCheckReportHis.setAccess(studentCheckReport.getAccess()); + studentCheckReportHis.setCardNo(studentCheckReport.getCardNo()); + studentCheckReportHis.setCheck_id(studentCheckReport.getId()); + studentCheckReportHis.setCheckResult(studentCheckReport.getCheckResult()); + studentCheckReportHis.setRobotResult(studentCheckReport.getRobotResult()); + studentCheckReportHis.setInTime(studentCheckReport.getInTime()); + studentCheckReportHis.setCheckTime(studentCheckReport.getCheckTime()); + studentCheckReportHis.setTemperature(studentCheckReport.getTemperature()); + studentCheckReportHis.setEyeImgId(studentCheckReport.getEyeImgId()); + studentCheckReportHis.setHandImgId(studentCheckReport.getHandImgId()); + studentCheckReportHis.setMouthImgId(studentCheckReport.getMouthImgId()); + studentCheckReportHis.setStudent_id(studentCheckReport.getStudent_id()); + studentCheckReportService.insertCheckHis(studentCheckReportHis); serverResponse = ServerResponse.createBySuccessMessage(msg); }else{ 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 index 1507162..95f83a7 100644 --- 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 @@ -2,6 +2,7 @@ package com.sincere.morningcheck.dao; import com.sincere.morningcheck.model.ClassExReport; import com.sincere.morningcheck.model.StudentCheckReport; +import com.sincere.morningcheck.model.StudentCheckReportHis; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -14,11 +15,20 @@ public interface StudentCheckReportDao { int insert(StudentCheckReport studentCheckReport); + int insertCheckHis(StudentCheckReportHis studentCheckReportHis); + + /** + * 根据卡号和学生标识修改学生检查报告信息 + * @param studentCheckReport + * @return + */ + int updateByStudent(StudentCheckReport studentCheckReport); + List getCheckReport(@Param("studentId") Integer studentId); int getCheckStuCountBySchoolId(@Param("schoolId")Integer schoolId,@Param("checkTime") String checkTime); List getCheckReportBySchoolId(@Param("schoolId")Integer schoolId,@Param("checkTime") String checkTime); - List getCheckExReportByGrade(@Param("schoolId")Integer schoolId,@Param("gradeId") Integer gradeId); + List getCheckExReportByGrade(@Param("schoolId")Integer schoolId,@Param("gradeId") Integer gradeId,@Param("checkTime") String checkTime); } diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ApiStudent.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ApiStudent.java new file mode 100644 index 0000000..0f1f87a --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ApiStudent.java @@ -0,0 +1,14 @@ +package com.sincere.morningcheck.model; + +import lombok.Data; + +@Data +/** + * 用于报表导出 + */ +public class ApiStudent extends ApiStudentCheckReport { + private Integer classId; + private String stuName; + private String className; + +} 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 index ff2ce11..9d25b46 100644 --- 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 @@ -38,7 +38,7 @@ public class CheckResult { @ApiModelProperty(name = "noCough",value = "08,true正常,false咳嗽") private Boolean noCough; - @ApiModelProperty(name = "noNail",value = "09,true正常,false过长") + @ApiModelProperty(name = "noNail",value = "09,true正常,false指甲过长") private Boolean noNail; @ApiModelProperty(name = "noToothDecay",value = "10,true正常,false蛀牙") diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ClassExReport.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ClassExReport.java index 64754b9..f2fbf87 100644 --- a/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ClassExReport.java +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/ClassExReport.java @@ -7,9 +7,9 @@ public class ClassExReport { private Integer class_id; - private String className; + private String name; private Integer count; - private float exRate; + private float value; } diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/StudentCheckReportHis.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/StudentCheckReportHis.java new file mode 100644 index 0000000..2a7f015 --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/model/StudentCheckReportHis.java @@ -0,0 +1,46 @@ +package com.sincere.morningcheck.model; + +import lombok.Data; + +import java.util.Date; + +@Data +/** + * 检查报告历史记录表 + */ +public class StudentCheckReportHis { + private Integer id; + + /** + * 检查报告表ID + */ + private Integer check_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/StudentCheckReportService.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/service/StudentCheckReportService.java index 6c79901..fa43bca 100644 --- 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 @@ -2,16 +2,33 @@ package com.sincere.morningcheck.service; import com.sincere.morningcheck.common.ServerResponse; +import com.sincere.morningcheck.model.ApiStudent; import com.sincere.morningcheck.model.ApiStudentCheckReport; import com.sincere.morningcheck.model.StudentCheckReport; +import com.sincere.morningcheck.model.StudentCheckReportHis; + +import java.util.List; public interface StudentCheckReportService { int insert(StudentCheckReport studentCheckReport); + int insertCheckHis(StudentCheckReportHis studentCheckReportHis); + + /** + * 根据卡号和学生标识修改学生检查报告信息 + * @param studentCheckReport + * @return + */ + int updateByStudent(StudentCheckReport studentCheckReport); + + StudentCheckReport getCheckReport(Integer studentId); + ServerResponse getCheckReport(String stuUserId); ServerResponse getCheckReportBySchool(Integer schoolId,String checkTime); - ServerResponse getCheckExReportByGrade(Integer schoolId,Integer gradeId); + ServerResponse getCheckExReportByGrade(Integer schoolId,Integer gradeId,String checkTime); + + ServerResponse> getCheckReportData(Integer schoolId, String checkTime,int gradeId); } 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 index 60ed549..a5e90ba 100644 --- 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 @@ -5,6 +5,7 @@ import com.sincere.morningcheck.dao.StudentCheckReportDao; import com.sincere.morningcheck.dao.StudentDao; import com.sincere.morningcheck.model.*; import com.sincere.morningcheck.service.StudentCheckReportService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -27,6 +28,25 @@ public class StudentCheckReportServiceImpl implements StudentCheckReportService } @Override + public int insertCheckHis(StudentCheckReportHis studentCheckReportHis) { + return studentCheckReportDao.insertCheckHis(studentCheckReportHis); + } + + @Override + public int updateByStudent(StudentCheckReport studentCheckReport) { + return studentCheckReportDao.updateByStudent(studentCheckReport); + } + + @Override + public StudentCheckReport getCheckReport(Integer studentId) { + List studentCheckReports = studentCheckReportDao.getCheckReport(studentId); + if(studentCheckReports!=null&&studentCheckReports.size()>0){ + return studentCheckReports.get(0); + } + return null; + } + + @Override public ServerResponse getCheckReport(String stuUserId) { List studentCheckReports = new ArrayList<>(); @@ -160,9 +180,9 @@ public class StudentCheckReportServiceImpl implements StudentCheckReportService } @Override - public ServerResponse getCheckExReportByGrade(Integer schoolId, Integer gradeId) { + public ServerResponse getCheckExReportByGrade(Integer schoolId, Integer gradeId,String checkTime) { - List classExReports = studentCheckReportDao.getCheckExReportByGrade(schoolId,gradeId); + List classExReports = studentCheckReportDao.getCheckExReportByGrade(schoolId,gradeId,checkTime); float count = 0; for(ClassExReport classExReport : classExReports){ count = count + classExReport.getCount(); @@ -170,7 +190,7 @@ public class StudentCheckReportServiceImpl implements StudentCheckReportService if(count>0){ for(ClassExReport classExReport : classExReports){ - classExReport.setExRate((classExReport.getCount()/count)*100); + classExReport.setValue((classExReport.getCount()/count)*100); } }else { return ServerResponse.createByErrorCodeMessage(10,"暂无数据"); @@ -178,6 +198,39 @@ public class StudentCheckReportServiceImpl implements StudentCheckReportService return ServerResponse.createBySuccess(classExReports); } + @Override + public ServerResponse> getCheckReportData(Integer schoolId, String checkTime,int gradeId) { + List studentCheckReports = studentCheckReportDao.getCheckReportBySchoolId(schoolId,checkTime); + + List apiStudents = new ArrayList<>(); + for(StudentCheckReport item : studentCheckReports){ + ApiStudent apiStudent = new ApiStudent(); + apiStudent.setCardNo(item.getCardNo()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("hh:mm"); + apiStudent.setCheckTime(simpleDateFormat.format(item.getCheckTime())); + apiStudent.setTemperature(item.getTemperature()); + if(StringUtils.isNotBlank(item.getCheckResult())){ + char[] chs = item.getCheckResult().toCharArray(); + apiStudent.setCheckResultObj(getCheckResult(chs)); + } + if(StringUtils.isNotBlank(item.getCardNo())){ + Student student = studentDao.getStudentByCardNo(item.getCardNo()); + apiStudent.setClassName(student.getClassName()); + apiStudent.setStudent_id(student.getStuId()); + apiStudent.setStuName(student.getStuName()); + apiStudent.setClassId(student.getClassId()); + } + apiStudents.add(apiStudent); + } + if(gradeId>0) { + apiStudents = apiStudents.stream().filter(n -> n.getClassId() == gradeId).collect(Collectors.toList()); + } + if(apiStudents.size()<=0){ + return ServerResponse.createByErrorCodeMessage(10,"暂无数据"); + } + return ServerResponse.createBySuccess(apiStudents); + } + private ApiStudentCheckReport getApiStudentReport(StudentCheckReport studentCheckReport,Boolean isMorningCheck){ ApiStudentCheckReport apiStudentCheckReport = new ApiStudentCheckReport(); diff --git a/springboot/morning-check/src/main/java/com/sincere/morningcheck/utils/ExcelUtils.java b/springboot/morning-check/src/main/java/com/sincere/morningcheck/utils/ExcelUtils.java new file mode 100644 index 0000000..7fde70b --- /dev/null +++ b/springboot/morning-check/src/main/java/com/sincere/morningcheck/utils/ExcelUtils.java @@ -0,0 +1,149 @@ +package com.sincere.morningcheck.utils; + +import org.apache.poi.hssf.usermodel.*; +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.FillPatternType; +import org.apache.poi.ss.usermodel.IndexedColors; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +public class ExcelUtils { + + static final BorderStyle borderpx = BorderStyle.THIN; + + /** + * 导出excel表格 + * @param head + * @param body + * @return + */ + public static HSSFWorkbook expExcel(List head, List> body) { + HSSFWorkbook workbook = new HSSFWorkbook(); + HSSFSheet sheet = workbook.createSheet("Sheet1"); + HSSFRow row = sheet.createRow(0); + HSSFCell cell= null; + HSSFCellStyle cellStyle = workbook.createCellStyle(); + setBorderStyle(cellStyle, borderpx); + cellStyle.setFont(setFontStyle(workbook, "黑体", (short) 14)); + sheet.createFreezePane(0,1,0,1); + + for (int i = 0; i paramList = body.get(i); + for (int p = 0; p < paramList.size(); p++) { + cell = row.createCell(p); + String value = paramList.get(p); + if(value.contains("cellStyle")){ + cellStyleEx.setFillForegroundColor(IndexedColors.RED.index);//是设置前景色不是背景色 + cellStyleEx.setFillPattern(FillPatternType.SOLID_FOREGROUND); + value = value.replace("cellStyle",""); + cell.setCellValue(value); + cell.setCellStyle(cellStyleEx); + }else{ + cell.setCellValue(value); + cell.setCellStyle(cellStyle2); + } + + } + } + for (int i = 0, isize = head.size(); i < isize; i++) { + sheet.autoSizeColumn(i); //设置自动列宽 + } + + return workbook; + } + + /** + * 以网络流的形势输出文件 + * @author LiuYang + * @param workbook 填充好的workbook + */ + public static void outFileStream(HSSFWorkbook workbook,String filename,HttpServletResponse response) { + try { + response.addHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(filename, "UTF-8")); + response.setContentType("application/vnd.ms-excel;charset=utf-8");//设置文本编码格式 + workbook.write(response.getOutputStream());//直接把内容写在响应流中 + } catch (FileNotFoundException e1) { + e1.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + /** + * 文件输出 + * @author LiuYang + * @param workbook 填充好的workbook + * @param path 存放的位置 + */ + public static void outFile(HSSFWorkbook workbook,String path,HttpServletResponse response) { + SimpleDateFormat fDate=new SimpleDateFormat("yyyyMMdd-HH点mm分"); + path = path.substring(0, path.lastIndexOf(".")) + fDate.format(new Date()) + path.substring(path.lastIndexOf(".")); + OutputStream os=null; + File file = null; + try { + file = new File(path); //首先保存到自己的文件路径下面 + String filename = file.getName(); + os = new FileOutputStream(file); + response.addHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(filename, "UTF-8")); + os= new BufferedOutputStream(response.getOutputStream()); + response.setContentType("application/vnd.ms-excel;charset=utf-8"); + workbook.write(os); + } catch (FileNotFoundException e1) { + e1.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + try { + os.flush(); + os.close(); + System.gc(); + System.out.println(file.delete()); + } catch (IOException e) { + e.printStackTrace(); + } + } + /** + * 设置字体样式 + * @author LiuYang + * @param workbook 工作簿 + * @param name 字体类型 + * @param height 字体大小 + * @return HSSFFont + */ + private static HSSFFont setFontStyle(HSSFWorkbook workbook, String name, short height) { + HSSFFont font = workbook.createFont(); + font.setFontHeightInPoints(height); + font.setFontName(name); + return font; + } + + /** + * 设置单元格样式 + * @author LiuYang + * @param cellStyle 工作簿 + * @param border border样式 + */ + private static void setBorderStyle(HSSFCellStyle cellStyle, BorderStyle border) { + + cellStyle.setBorderBottom(border); // 下边框 + cellStyle.setBorderLeft(border);// 左边框 + cellStyle.setBorderTop(border);// 上边框 + cellStyle.setBorderRight(border);// 右边框 + } +} diff --git a/springboot/morning-check/src/main/resources/mapper/StudentCheckReport.xml b/springboot/morning-check/src/main/resources/mapper/StudentCheckReport.xml index 5b8002a..298b3e7 100644 --- a/springboot/morning-check/src/main/resources/mapper/StudentCheckReport.xml +++ b/springboot/morning-check/src/main/resources/mapper/StudentCheckReport.xml @@ -7,7 +7,8 @@ - + + @@ -21,14 +22,27 @@ - student_id,cardNo,checkTime,checkResult,robotResult,intime,access,temperature,handImgId,mouthImgId,eyeImgId + id,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=TIMESTAMP},#{checkTime,jdbcType=TIMESTAMP},#{access,jdbcType=VARCHAR},#{temperature,jdbcType=VARCHAR},#{handImgId,jdbcType=VARCHAR},#{mouthImgId,jdbcType=VARCHAR},#{eyeImgId,jdbcType=VARCHAR}) +values(#{student_id,jdbcType=INTEGER}, #{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}) + + insert xiaoan.dbo.SZ_StudentCheckReportHistory(check_id,student_id,cardNo,checkResult,robotResult,intime,checkTime,access,temperature,handImgId,mouthImgId,eyeImgId) +values(#{check_id,jdbcType=INTEGER},#{student_id,jdbcType=INTEGER}, #{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}) + + + + update xiaoan.dbo.SZ_StudentCheckReport + checkResult=#{checkResult,jdbcType=VARCHAR},robotResult=#{robotResult,jdbcType=VARCHAR},intime=#{inTime,jdbcType=TIMESTAMP},checkTime=#{checkTime,jdbcType=TIMESTAMP},access=#{access,jdbcType=VARCHAR},temperature=#{temperature,jdbcType=VARCHAR},handImgId=#{handImgId,jdbcType=VARCHAR},mouthImgId=#{mouthImgId,jdbcType=VARCHAR},eyeImgId=#{eyeImgId,jdbcType=VARCHAR} + + where id=#{id,jdbcType=INTEGER} + + + \ No newline at end of file -- libgit2 0.21.0