You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

347 lines
12 KiB
Java

package com.manage.controller;
import com.manage.dao.Power_Sys_DictMapper;
import com.manage.encrypt.Base64;
import com.manage.encrypt.MD5;
import com.manage.entity.Power_Log;
import com.manage.entity.Power_Menu;
import com.manage.entity.Power_Sys_Dict;
import com.manage.service.LogService;
import com.manage.service.Power_MenuService;
import com.manage.service.cache.Cache;
import com.manage.service.cache.CacheManager;
import com.manage.service.ipml.PageServiceImpl;
import com.manage.service.ipml.Power_NoticeServiceImpl;
import com.manage.util.Msg;
import com.manage.vo.Echarts;
import com.manage.vo.Power_UserVo;
import com.manage.vo.User_Dept_Menu;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.*;
/**
* 跳转页面 不做业务处理
* @Author: ljx
* @Date: 2019/4/16 9:26
* @Version 1.0
*/
@Controller
public class PageController {
@Value("${EMRMEDICALRECORD_URLHEAD}")
private String EMRMEDICALRECORD_URLHEAD;
@Value("${EMRRECORD_URLHEAD}")
private String EMRRECORD_URLHEAD;
@Value("${EMRAPPLYCOPY_URLHEAD}")
private String EMRAPPLYCOPY_URLHEAD;
@Value("${EMRFILES_URLHEAD}")
private String EMRFILES_URLHEAD;
@Value("${WEBSOCKET_URLHEAD}")
private String WEBSOCKET_URLHEAD;
@Value("${STR_SPLIT}")
private String STR_SPLIT;
@Autowired
private Power_NoticeServiceImpl powerNoticeService;
@Autowired
private PageServiceImpl pageService;
@Autowired
private Power_Sys_DictMapper sysDictMapper;
@Autowired
private LogService logService;
@Value("${TOKEN_EXPIRE_TIME}")
private long TOKEN_EXPIRE_TIME;
@Autowired
private Power_MenuService powerMenuService;
@RequestMapping(value = "logout")
public String logout(HttpSession session,String token){
try {
session.invalidate();
token = MD5.JM(Base64.decode(token));
Cache cache = CacheManager.getCacheInfo(token);
if(cache != null){
//CacheManager.removeCacheByObject((Power_UserVo)cache.getValue());
}
CacheManager.addExcCount("noExc");
}catch (Exception e){
e.printStackTrace();
CacheManager.addExcCount("exc");
}
return "redirect:login";
}
@RequestMapping(value = "index")
public String index(Model model,HttpServletRequest request){
Power_UserVo user =(Power_UserVo)request.getSession().getAttribute("CURRENT_USER");
model.addAttribute("WEBSOCKET_URLHEAD",WEBSOCKET_URLHEAD);
model.addAttribute("STR_SPLIT",STR_SPLIT);
CacheManager.addExcCount("noExc");
Set<String> menus = new TreeSet<>();
List<Power_Menu> list = null;
if (user.getRoleId().equals(0) || user.getRoleId().equals(-100)) {
list = powerMenuService.queryAllPowerMenu(null,user.getRoleId());
} else {
list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(),null);
}
if(null != list && !list.isEmpty()){
for (int i = 0; i < list.size(); i++) {
if(StringUtils.isNotBlank(list.get(i).getMethod())){
menus.add(list.get(i).getMenuUrl());
}
}
}
user.setMenus(menus);
return "/loginDir/index";
}
@RequestMapping(value = "gatewayPage")
public String register(Model model, HttpServletRequest request,Integer noticeId){
model.addAttribute("EMRMEDICALRECORD_URLHEAD",EMRMEDICALRECORD_URLHEAD);
model.addAttribute("EMRRECORD_URLHEAD",EMRRECORD_URLHEAD);
model.addAttribute("EMRAPPLYCOPY_URLHEAD",EMRAPPLYCOPY_URLHEAD);
model.addAttribute("EMRFILES_URLHEAD",EMRFILES_URLHEAD);
model.addAttribute("WEBSOCKET_URLHEAD",WEBSOCKET_URLHEAD);
model.addAttribute("STR_SPLIT",STR_SPLIT);
model.addAttribute("flag",noticeId);
//登录成功
//插入成功日志
Power_UserVo powerUser = (Power_UserVo)request.getSession().getAttribute("CURRENT_USER");
Power_Log log = new Power_Log();
log.setLogTitle("登录");
log.setLogContent("用户登录成功");
log.setCreater(powerUser.getUserName());
logService.insert(log);
//修改该通知为已读
if(null != noticeId && noticeId != -1){
try {
powerNoticeService.updateNoticeReadFlag(noticeId);
CacheManager.addExcCount("noExc");
}catch (Exception e){
e.printStackTrace();
CacheManager.addExcCount("exc");
}
}
//查询当前用户
Power_UserVo user = (Power_UserVo)request.getSession().getAttribute("CURRENT_USER");
//查询系统权限
List<Power_Sys_Dict> sysList = new ArrayList<>();
if(user.getRoleId() == 0){
sysList = sysDictMapper.selectSysFlagsByUserId(null,null);
}else{
sysList = sysDictMapper.selectSysFlagsByUserId(user.getUserId(),user.getRoleId());
}
int power = 0;
int emr_medical_record = 0;
int emr_record = 0;
int emr_apply_copy = 0;
int emr_files = 0;
int power1 = 0;
int emr_medical_record1 = 0;
int emr_record1 = 0;
int emr_apply_copy1 = 0;
int emr_files1 = 0;
if(null != sysList && !sysList.isEmpty()){
//获取权限菜单
List<User_Dept_Menu> menuList = powerUser.getMenuList();
if(null != menuList && !menuList.isEmpty()) {
for (User_Dept_Menu menu : menuList) {
String sysFlag = menu.getSysFlag();
if (StringUtils.isNotBlank(sysFlag)) {
if ("power".equals(sysFlag)) {
power1 = 1;
continue;
}
if ("emr_medical_record".equals(sysFlag)) {
emr_medical_record1 = 1;
continue;
}
if ("emr_record".equals(sysFlag)) {
emr_record1 = 1;
continue;
}
if ("emr_apply_copy".equals(sysFlag)) {
emr_apply_copy1 = 1;
continue;
}
if ("emr_files".equals(sysFlag)) {
emr_files1 = 1;
continue;
}
}
}
}
for (int i = 0; i < sysList.size(); i++) {
String sysFlag = sysList.get(i).getSysFlag();
if(StringUtils.isNotBlank(sysFlag)){
if("power".equals(sysFlag)){
power = 1;
continue;
}
if("emr_medical_record".equals(sysFlag)){
emr_medical_record = 1;
continue;
}
if("emr_record".equals(sysFlag)){
emr_record = 1;
continue;
}
if("emr_apply_copy".equals(sysFlag)){
emr_apply_copy = 1;
continue;
}
if("emr_files".equals(sysFlag)){
emr_files = 1;
continue;
}
}
}
}
if(power == 1 && power1 == 1){
power = 1;
}else{
power = 0;
}
if(emr_medical_record == 1 && emr_medical_record1 == 1){
emr_medical_record = 1;
}else{
emr_medical_record = 0;
}
if(emr_record == 1 && emr_record1 == 1){
emr_record = 1;
}else{
emr_record = 0;
}
if(emr_apply_copy == 1 && emr_apply_copy1 == 1){
emr_apply_copy = 1;
}else{
emr_apply_copy = 0;
}
if(emr_files == 1 && emr_files1 == 1){
emr_files = 1;
}else{
emr_files = 0;
}
model.addAttribute("power",power);
model.addAttribute("emr_medical_record",emr_medical_record);
model.addAttribute("emr_record",emr_record);
model.addAttribute("emr_apply_copy",emr_apply_copy);
model.addAttribute("emr_files",emr_files);
return "/gatewayDir/gatewayIndex";
}
@RequestMapping(value = "main")
public String main(){
CacheManager.addExcCount("noExc");
return "main";
}
@RequestMapping("getEcharts1")
@ResponseBody
public Msg getEcharts1(){
List<Echarts> list = new ArrayList<>();
try {
//无异常
Integer noExc = CacheManager.getExcCount("noExc");
String valueArr1[] = {noExc.toString()};
Echarts echarts1 = new Echarts("无异常",null,valueArr1);
//异常
Integer exc = CacheManager.getExcCount("exc");
if(null == exc){
exc = 0;
}
String valueArr2[] = {exc.toString()};
Echarts echarts2 = new Echarts("异常",null,valueArr2);
//锁定
Integer effectiveCount = pageService.selectEffectiveCount();
if(null == effectiveCount){
effectiveCount = 0;
}
String valueArr3[] = {effectiveCount.toString()};
Echarts echarts3 = new Echarts("锁定",null,valueArr3);
list.add(echarts1);
list.add(echarts2);
list.add(echarts3);
}catch (Exception e){
e.printStackTrace();
return Msg.fail(e.getMessage());
}
return Msg.success().add("list",list);
}
@RequestMapping("getEcharts2")
@ResponseBody
public Msg getEcharts2(){
try {
Map<String, List> map = pageService.getEcharts2();
return Msg.success().add("list",map);
}catch (Exception e){
e.printStackTrace();
return Msg.fail(e.getMessage());
}
}
@RequestMapping("getEcharts3")
@ResponseBody
public Msg getEcharts3(){
try {
Map<String, List> map = pageService.getEcharts3();
return Msg.success().add("list",map);
}catch (Exception e){
e.printStackTrace();
return Msg.fail(e.getMessage());
}
}
@RequestMapping("getEcharts4")
@ResponseBody
public Msg getEcharts4(){
try {
int cpuCount = pageService.getEcharts4();
return Msg.success().add("list",cpuCount);
}catch (Exception e){
e.printStackTrace();
return Msg.fail(e.getMessage());
}
}
//返回40
@RequestMapping("getEcharts5")
@ResponseBody
public Msg getEcharts5(){
long temperature = 0;
try {
temperature = pageService.getEcharts5();
return Msg.success().add("temperature",temperature);
}catch (Exception e){
e.printStackTrace();
return Msg.success().add("temperature",temperature);
}
}
//返回[8,7.8,5.3]
@RequestMapping("getEcharts6")
@ResponseBody
public Msg getEcharts6(){
try {
List<String> list = pageService.getEcharts6();
return Msg.success().add("list",list);
}catch (Exception e){
e.printStackTrace();
return Msg.fail(e.getMessage());
}
}
}