——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Node.js≥14
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
❗没学过node.js的不要搞前后端分离项目
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明










基于javaweb的SpringBoot体检管理系统(java+springboot+maven+mybaits+vue+elementui+mysql)
项目介绍
基于Springboot + vue实现的体检管理系统
系统包含用户和管理员两个角色,分为前后台;
管理员:
管理员管理:创建、编辑、删除管理员账户,分配权限和角色,确保系统的安全性。
基础数据管理:管理科室信息、医生信息、设备信息等基础数据,确保数据的准确性和完整性。
健康常识管理:发布和管理健康常识文章,帮助用户提升健康意识。
疾病预防管理:发布疾病预防信息,提供预防措施。
单页数据管理:管理体检中心介绍、服务流程、注意事项等单页数据。
轮播图信息设置:在前台门户或其他页面设置轮播图,展示最新体检信息和健康资讯。
在线咨询管理:回复用户的在线咨询,提供专业的解答和建议。
论坛管理:管理论坛内容,包括审核用户发布的帖子、回复用户问题等,确保论坛内容的合规性和质量。
体检提醒管理:自动发送体检或复查提醒给用户,提高体检率。
用户:
用户管理:注册、登录账户,修改个人信息,确保个人信息的准确性和安全性。
体检项目管理:浏览体检项目信息,了解项目的具体内容。
体检项目预约管理:在线预约体检项目,选择适合自己的时间和地点。
在线咨询:通过系统向医生或客服人员在线咨询,获取专业的解答和建议。
浏览健康常识和疾病预防信息:了解健康知识和预防措施,提升个人健康意识。
论坛参与:在论坛中发布讨论、分享经验、提问等,与其他用户互动交流。
技术栈
后端:SpringBoot+Mybaits
前端:Vue+elementui
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| two ="joinTypes0"; } }
} }
List<Map<String, Object>> result = commonService.barSum(params);
List<String> xAxis = new ArrayList<>(); List<List<String>> yAxis = new ArrayList<>(); List<String> legend = new ArrayList<>();
if(StringUtil.isEmpty(two)){ List<String> yAxis0 = new ArrayList<>(); yAxis.add(yAxis0); legend.add("数值"); for(Map<String, Object> map :result){ String oneValue = String.valueOf(map.get(one)); String value = String.valueOf(map.get("value")); xAxis.add(oneValue); yAxis0.add(value); } }else{ Map<String, HashMap<String, String>> dataMap = new LinkedHashMap<>(); if(StringUtil.isNotEmpty(two)){ for(Map<String, Object> map :result){ String oneValue = String.valueOf(map.get(one)); String twoValue = String.valueOf(map.get(two)); String value = String.valueOf(map.get("value")); if(!legend.contains(twoValue)){ legend.add(twoValue); } if(dataMap.containsKey(oneValue)){ dataMap.get(oneValue).put(twoValue,value); }else{ HashMap<String, String> oneData = new HashMap<>(); oneData.put(twoValue,value); dataMap.put(oneValue,oneData); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| }else{ return R.ok().put("maxCodeIndex",1); } }
@RequestMapping("/batchInsert") public R save( String fileName){ logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName); try { List<DictionaryEntity> dictionaryList = new ArrayList<>(); Map<String, List<String>> seachFields= new HashMap<>(); Date date = new Date(); int lastIndexOf = fileName.lastIndexOf("."); if(lastIndexOf == -1){ return R.error(511,"该文件没有后缀"); }else{ String suffix = fileName.substring(lastIndexOf); if(!".xls".equals(suffix)){ return R.error(511,"只支持后缀为xls的excel文件"); }else{ URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName); File file = new File(resource.getFile()); if(!file.exists()){ return R.error(511,"找不到上传文件,请联系管理员"); }else{ List<List<String>> dataList = PoiUtil.poiImport(file.getPath()); dataList.remove(0); for(List<String> data:dataList){ DictionaryEntity dictionaryEntity = new DictionaryEntity();
dictionaryList.add(dictionaryEntity);
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| two ="thisTypes0"; } } } if(isJoinTableFlag){ Map<String, Object> joinTable = (Map<String, Object>) params.get("joinTable"); if(StringUtil.isNotEmpty(String.valueOf(joinTable.get("types")))){ joinTable.put("types",String.valueOf(joinTable.get("types")).split(",")); if(StringUtil.isEmpty(one)){ one ="joinTypes0"; }else{ if(StringUtil.isEmpty(two)){ two ="joinTypes0"; } }
} }
List<Map<String, Object>> result = commonService.barSum(params);
List<String> xAxis = new ArrayList<>(); List<List<String>> yAxis = new ArrayList<>(); List<String> legend = new ArrayList<>();
if(StringUtil.isEmpty(two)){ List<String> yAxis0 = new ArrayList<>(); yAxis.add(yAxis0); legend.add("数值"); for(Map<String, Object> map :result){ String oneValue = String.valueOf(map.get(one)); String value = String.valueOf(map.get("value")); xAxis.add(oneValue); yAxis0.add(value); } }else{ Map<String, HashMap<String, String>> dataMap = new LinkedHashMap<>(); if(StringUtil.isNotEmpty(two)){ for(Map<String, Object> map :result){ String oneValue = String.valueOf(map.get(one)); String twoValue = String.valueOf(map.get(two)); String value = String.valueOf(map.get("value")); if(!legend.contains(twoValue)){ legend.add(twoValue); } if(dataMap.containsKey(oneValue)){
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| * 不需要验证权限的方法直接放过 */ if(annotation!=null) { return true; } TokenEntity tokenEntity = null; if(StringUtils.isNotBlank(token)) { tokenEntity = tokenService.getTokenEntity(token); } if(tokenEntity != null) { request.getSession().setAttribute("userId", tokenEntity.getUserid()); request.getSession().setAttribute("role", tokenEntity.getRole()); request.getSession().setAttribute("tableName", tokenEntity.getTablename()); request.getSession().setAttribute("username", tokenEntity.getUsername()); return true; } PrintWriter writer = null; response.setCharacterEncoding("UTF-8"); response.setContentType("application/json; charset=utf-8"); try { writer = response.getWriter(); writer.print(JSONObject.toJSONString(R.error(401, "请先登录"))); } finally { if(writer != null){ writer.close(); } }
return false; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| }else { return R.error(511,"查不到数据"); } }
@RequestMapping("/add") public R add(@RequestBody ForumEntity forum, HttpServletRequest request){ logger.debug("add方法:,,Controller:{},,forum:{}",this.getClass().getName(),forum.toString()); Wrapper<ForumEntity> queryWrapper = new EntityWrapper<ForumEntity>() .eq("forum_name", forum.getForumName()) .eq("yonghu_id", forum.getYonghuId()) .eq("users_id", forum.getUsersId()) .eq("super_ids", forum.getSuperIds()) .eq("forum_state_types", forum.getForumStateTypes()) ; logger.info("sql语句:"+queryWrapper.getSqlSegment()); ForumEntity forumEntity = forumService.selectOne(queryWrapper); if(forumEntity==null){ forum.setInsertTime(new Date()); forum.setCreateTime(new Date()); forumService.insert(forum); return R.ok(); }else { return R.error(511,"表中有相同数据"); } }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| MatchRequest req2 = new MatchRequest(img2, "BASE64"); ArrayList<MatchRequest> requests = new ArrayList<MatchRequest>(); requests.add(req1); requests.add(req2); res = client.match(requests); System.out.println(res.get("result")); } catch (FileNotFoundException e) { e.printStackTrace(); return R.error("文件不存在"); } catch (IOException e) { e.printStackTrace(); } return R.ok().put("data", com.alibaba.fastjson.JSONObject.parse(res.get("result").toString())); }
@RequestMapping("/option/{tableName}/{columnName}") @IgnoreAuth public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,String level,String parent) { Map<String, Object> params = new HashMap<String, Object>(); params.put("table", tableName); params.put("column", columnName); if(StringUtils.isNotBlank(level)) { params.put("level", level); } if(StringUtils.isNotBlank(parent)) { params.put("parent", parent); } List<String> data = commonService.getOption(params); return R.ok().put("data", data); }
@RequestMapping("/follow/{tableName}/{columnName}") @IgnoreAuth public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, @RequestParam String columnValue) { Map<String, Object> params = new HashMap<String, Object>(); params.put("table", tableName); params.put("column", columnName);
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=201524512608201mt
https://javayms.pages.dev?id=201524512608201mt