| | |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springblade.common.utils.arg; |
| | | import org.springblade.core.excel.util.ExcelUtil; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.modules.exam.entity.ExamPaper; |
| | | import org.springblade.modules.exam.entity.ExamScore; |
| | | import org.springblade.modules.exam.excel.ExamScoreExcel; |
| | | import org.springblade.modules.exam.excel.ExamScoreImporter; |
| | | import org.springblade.modules.exam.service.ExamPaperService; |
| | | import org.springblade.modules.exam.service.ExamScoreService; |
| | | import org.springblade.modules.exam.util.SecurityPaperUtil; |
| | | import org.springblade.modules.exam.vo.ExamScoreVO; |
| | | import org.springblade.modules.system.entity.Role; |
| | | import org.springblade.modules.system.entity.User; |
| | | import org.springblade.modules.system.service.IRoleService; |
| | | import org.springblade.modules.system.service.IUserService; |
| | | import org.springblade.modules.system.vo.UserVO; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.Date; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.text.DecimalFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Random; |
| | | |
| | | /** |
| | | * @author zhongrj |
| | |
| | | public class ExamScoreController { |
| | | |
| | | private final ExamScoreService examScoreService; |
| | | |
| | | private final IUserService userService; |
| | | |
| | | private final ExamPaperService examPaperService; |
| | | |
| | | private final IRoleService roleService; |
| | | |
| | | /** |
| | | * 自定义分页 |
| | |
| | | * @param examScore 考试成绩信息对象 |
| | | */ |
| | | @PostMapping("/updateExamScore") |
| | | public R updateExamScore(@RequestBody ExamScore examScore) { |
| | | public R updateExamScore(@RequestBody ExamScore examScore){ |
| | | if (null!=examScore.getLearnGrade() && null!=examScore.getTheoryGrade()){ |
| | | examScore.setAllGrade(examScore.getLearnGrade()+examScore.getTheoryGrade()); |
| | | ExamScore examScore1 = examScoreService.getById(examScore.getId()); |
| | | //查询当前保安信息 |
| | | UserVO user = userService.getUserAgeById(Long.parseLong(examScore1.getUserId())); |
| | | if (examScore.getTheoryGrade()>=60 && examScore.getLearnGrade()>=60){ |
| | | //合格 |
| | | examScore.setQualified(0); |
| | | //正式考试通过生成保安证编号 |
| | | ExamPaper paper = examPaperService.getById(examScore.getExamId()); |
| | | if (paper.getExamType()==1) { |
| | | //去生成保安证编号 |
| | | String pre = SecurityPaperUtil.getSecurityPaper(); |
| | | //查询当前年份已有的保安证编号 |
| | | int count = userService.getSecurityPaperCount(pre); |
| | | String result = null; |
| | | if (count == 0) { |
| | | result = pre + "00000"; |
| | | } else { |
| | | //格式化 |
| | | DecimalFormat decimalFormat = new DecimalFormat("00000"); |
| | | result = pre + (decimalFormat.format(count++)); |
| | | } |
| | | user.setSecuritynumber(result); |
| | | //修改为持证保安 |
| | | user.setHold("1"); |
| | | //分配保安角色 |
| | | Role role = new Role(); |
| | | role.setRoleAlias("保安"); |
| | | Role oneRole = roleService.getOne(Condition.getQueryWrapper(role)); |
| | | user.setRoleId(oneRole.getId().toString()); |
| | | //更新保安数据 |
| | | userService.updateById(user); |
| | | } |
| | | }else { |
| | | //不合格 |
| | | examScore.setQualified(1); |
| | | } |
| | | //总成绩 |
| | | if (user.getAge()<=50) { |
| | | examScore.setAllGrade(Math.round((examScore.getLearnGrade() + examScore1.getTheoryGrade()) / 2)); |
| | | } |
| | | if (user.getAge()>50) { |
| | | examScore.setAllGrade(Integer.parseInt(String.valueOf(Math.round(examScore1.getTheoryGrade()*0.3))) |
| | | + Integer.parseInt(String.valueOf(Math.round(examScore1.getLearnGrade()*0.7)))); |
| | | } |
| | | } |
| | | //本地修改 |
| | | return R.status(examScoreService.updateById(examScore)); |
| | | } |
| | | |
| | |
| | | return R.data(detail); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 详情 |
| | | * @param examScore 考试成绩信息对象 |
| | | */ |
| | | @GetMapping("/details") |
| | | @ApiOperation(value = "详情", notes = "传入examScore") |
| | | public R<ExamScore> detail(ExamScore examScore) { |
| | | //查询考试成绩详情 |
| | | ExamScore detail = examScoreService.getOne(Condition.getQueryWrapper(examScore)); |
| | | //返回 |
| | | return R.data(detail); |
| | | } |
| | | |
| | | /** |
| | | * 导入实操成绩 |
| | | * @param isCovered 1 覆盖 0不覆盖 |
| | | * @return |
| | | */ |
| | | @PostMapping("import-examScore") |
| | | @ApiOperation(value = "导入实操成绩", notes = "传入excel") |
| | | public R importExamScore(MultipartFile file, Integer isCovered) { |
| | | ExamScoreImporter examScoreImporter = new ExamScoreImporter(examScoreService, false); |
| | | ExcelUtil.save(file, examScoreImporter, ExamScoreExcel.class); |
| | | return R.success("操作成功"); |
| | | } |
| | | |
| | | /** |
| | | * 导出模板 |
| | | */ |
| | | @GetMapping("export-template") |
| | | @ApiOperation(value = "导出模板") |
| | | public void exportUser(HttpServletResponse response) { |
| | | List<ExamScoreExcel> list = new ArrayList<>(); |
| | | ExcelUtil.export(response, "实操成绩数据模板", "实操成绩数据表", list, ExamScoreExcel.class); |
| | | } |
| | | |
| | | /** |
| | | * 分数统计 |
| | | */ |
| | | @GetMapping("score-statistics") |
| | | @ApiOperation(value = "分数统计") |
| | | public R<List> scoreStatistics(HttpServletResponse response) { |
| | | return R.data(examScoreService.scoreStatistics()); |
| | | } |
| | | } |