package com.boying.controller; import cn.hutool.core.date.DateUtil; import cn.hutool.http.HttpRequest; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.api.R; import com.boying.entity.*; import com.boying.service.*; import com.boying.util.ExcelUtils; import com.boying.util.SnmpUtil; import com.google.gson.Gson; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author kdq * @version 1.0.0 * @ClassName ApiController.java * @Description TODO * @createTime 2023年06月16日 09:44:00 */ @RestController @RequestMapping("/api") @RequiredArgsConstructor public class ApiController { @Autowired private SystemInfoService systemInfoService; @Autowired private SnmpInfoService snmpInfoService; @Autowired private InspectionTaskService inspectionTaskService; @Autowired private TaskInfoService taskInfoService; @Autowired private DongHuanZhuangTaiService dongHuanZhuangTaiService; @Autowired private DongHuanBaoJingService dongHuanBaoJingService; @Autowired private WarnService warnService; @Value("${donghuan.ip}") private String ip; @Value("${donghuan.loginUrl}") private String loginUrl; @Value("${donghuan.deviceClassUrl}") private String deviceClassUrl; @Value("${donghuan.intelligentUrl}") private String intelligentUrl; @Value("${donghuan.findDevice}") private String findDevice; @Value("${donghuan.findDeviceVar}") private String findDeviceVar; @Value("${donghuan.findControlByDeviceId}") private String findControlByDeviceId; @Value("${donghuan.control}") private String control; @Value("${donghuan.findValueByDeviceId}") private String findValueByDeviceId; @Value("${donghuan.findValueByIntelligentId}") private String findValueByIntelligentId; @Value("${donghuan.findValueByStationId}") private String findValueByStationId; @Value("${donghuan.meterDatas}") private String meterDatas; @Value("${donghuan.varDatas}") private String varDatas; @Value("${donghuan.alarm}") private String alarm; private String token; @GetMapping("/getHost") public R getServer(){ Map map = new HashMap<>(); try { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.select(" id,host_name,state"); wrapper.lambda() .eq(SystemInfo::getState,1); QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.select(" id,host_name,state"); List systemInfos = systemInfoService.list(wrapper1); List systemInfos2 = systemInfoService.list(wrapper); map.put("count",systemInfos.size()); map.put("normalCount",systemInfos2.size()); return R.ok(map); } catch (Exception e) { return R.failed("出错"); } } @GetMapping("/getSnmp") public R getSnmp(){ Map map = new HashMap<>(); try { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.select(" id,host_name,state"); wrapper.lambda() .eq(SnmpInfo::getState,1); QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.select(" id,host_name,state"); List snmpInfos = snmpInfoService.list(wrapper1); List snmpInfos2 = snmpInfoService.list(wrapper); map.put("count",snmpInfos.size()); map.put("normalCount",snmpInfos2.size()); return R.ok(map); } catch (Exception e) { return R.failed("出错"); } } @GetMapping("/getTask") public R getTask(){ Map map = new HashMap<>(); try { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.select(" id,is_ok"); wrapper.lambda() .eq(InspectionTask::getIsOk,1); QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.select(" id,is_ok"); List inspectionTasks = inspectionTaskService.list(wrapper1); List inspectionTasks2 = inspectionTaskService.list(wrapper); map.put("count",inspectionTasks.size()); map.put("normalCount",inspectionTasks2.size()); return R.ok(map); } catch (Exception e) { return R.failed("出错"); } } @GetMapping("/getTaskInfoById") public R getTaskInfoById(String id){ try { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.select(" id,task_id,task_date,is_ok,content"); wrapper.lambda() .eq(TaskInfo::getTaskId,id); List infos = taskInfoService.list(wrapper); return R.ok(infos); } catch (Exception e) { return R.failed("出错"); } } @GetMapping("/getTaskByDate") public R getTaskByDate(String startDate,String endDate){ try { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.select(" id,title,start_date"); wrapper.lambda() .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate),InspectionTask::getStartDate,startDate,endDate); return R.ok(inspectionTaskService.list(wrapper)); } catch (Exception e) { return R.failed("出错"); } } @GetMapping("/getUps") public R getUps(){ Map map = new HashMap<>(); try { map.put("ups",4); map.put("ups2",4); map.put("dianchi",6); map.put("dianchi2",6); return R.ok(map); } catch (Exception e) { return R.failed("出错"); } } @GetMapping("/getKongtiao") public R getKongtiao(){ Map map = new HashMap<>(); try { map.put("upsKongtiao",2); map.put("upsKongtiao2",2); map.put("zhongxinKongtiao",4); map.put("zhongxinKongtiao2",4); return R.ok(map); }catch (Exception e){ return R.failed("出错"); } } /** * 根据类型查询报警日志 * @param type * @return */ @GetMapping("/getWarn") public R getWarn(Integer type){ QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda().eq(type != null,WarnLog::getType,type) .orderByDesc(WarnLog::getWarnDate) .last( " limit 11"); List list = warnService.list(wrapper); return R.ok(list); } /** * 地图数据 * @param * @return */ @GetMapping("/getMapData") public R getMapData(){ List> list = new ArrayList<>(); Map map1 = new HashMap<>(); map1.put("lon","118.14360"); map1.put("lat","39.67260"); map1.put("address","河北省唐山市路北区长宁道603号"); map1.put("health",0); Map map2 = new HashMap<>(); map2.put("lon","118.26958"); map2.put("lat","39.68333"); map2.put("address","河北省唐山市开平区东西大街199号"); map2.put("health",0); Map map3 = new HashMap<>(); map3.put("lon","118.15782"); map3.put("lat","39.63102"); map3.put("address","河北省唐山市路南区新华西道76号4层"); map3.put("health",0); Map map4 = new HashMap<>(); map4.put("lon","118.09289"); map4.put("lat","39.58163"); map4.put("address","河北省唐山市丰南区正苑大街7号"); map4.put("health",0); Map map5 = new HashMap<>(); map5.put("lon","118.14114"); map5.put("lat","39.83368"); map5.put("address","河北省唐山市丰润区曹雪芹大街17号"); map5.put("health",0); Map map6 = new HashMap<>(); map6.put("lon","118.45153"); map6.put("lat","39.74049"); map6.put("address","河北省唐山市古冶区永盛路"); map6.put("health",0); list.add(map1); list.add(map2); list.add(map3); list.add(map4); list.add(map5); list.add(map6); return R.ok(list); } @GetMapping("/test") public R test(){ SnmpUtil.getDonghuanInfo("1.3.6.1.4.1.32701.4.1.7.1.3.17"); return R.ok("11111"); } @RequestMapping("/upload") public R upload(@RequestParam("file") MultipartFile file,@RequestParam("type") Integer type)throws Exception{ String name = file.getOriginalFilename(); String[] split = name.split("\\."); if(!split[1].equals("xlsx")) { throw new Exception("文件格式错误"); } if(type == 0){ // 获取Excel中的数据 List detaileds = ExcelUtils.excelToShopIdList(file.getInputStream(),type); // 向数据库遍历添加数据库 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(DongHuanZhuangTai::getType,type); dongHuanZhuangTaiService.remove(wrapper); dongHuanZhuangTaiService.saveBatch(detaileds); return R.ok("成功"); }else { List dongHuanBaoJings = ExcelUtils.excelToShopIdList2(file.getInputStream(), type); // 向数据库遍历添加数据库 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(DongHuanBaoJing::getType,type); dongHuanBaoJingService.remove(wrapper); dongHuanBaoJingService.saveBatch(dongHuanBaoJings); return R.ok("成功"); } } }