/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.modules.alarm.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.common.entity.AlarmExcel; import org.springblade.common.vo.DeptVo; import org.springblade.core.boot.ctrl.BladeController; 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.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.alarm.entity.Alarm; import org.springblade.modules.alarm.service.IAlarmService; import org.springblade.modules.alarm.vo.AlarmVO; import org.springblade.modules.alarm.wrapper.AlarmWrapper; import org.springblade.modules.animalheat.service.AnimalHeatService; import org.springblade.modules.equipment.service.IEquipmentService; import org.springblade.modules.healthcode.service.IhealthcodeService; import org.springblade.modules.operation.entity.Operation; import org.springblade.modules.operation.service.IOperationService; import org.springblade.modules.operation.vo.OperationVO; import org.springblade.modules.parcel.service.ParcelService; import org.springblade.modules.parcel.util.DateUtils; import org.springblade.modules.parcel.vo.ConditionVo; import org.springblade.modules.system.service.IDeptService; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; /** * 控制器 * * @author BladeX * @since 2020-07-04 */ @RestController @AllArgsConstructor @RequestMapping("alarm/alarm") @Api(value = "", tags = "接口") public class AlarmController extends BladeController { private final IAlarmService alarmService; private final AnimalHeatService animalHeatService; private final IOperationService operationService; private IhealthcodeService ihealthcodeService; private ParcelService parcelService; private final IDeptService deptFeignApi; private IEquipmentService iEquipmentService; /** * 详情 */ @GetMapping("/detail") @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入alarm") public R detail(Alarm alarm) { Alarm detail = alarmService.getOne(Condition.getQueryWrapper(alarm)); return R.data(AlarmWrapper.build().entityVO(detail)); } /** * 分页 */ @GetMapping("/list") @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入alarm") public R> list(Alarm alarm, Query query) { IPage pages = alarmService.page(Condition.getPage(query), Condition.getQueryWrapper(alarm)); return R.data(AlarmWrapper.build().pageVO(pages)); } /** * 自定义分页 */ @GetMapping("/page") @ApiOperationSupport(order = 3) @ApiOperation(value = "分页", notes = "传入alarm") public R> page(AlarmVO alarm, Query query) { IPage pages = alarmService.selectAlarmPage(Condition.getPage(query), alarm); return R.data(pages); } /** * 查询所有 * @return */ @GetMapping("/listAll") @ApiOperationSupport(order = 3) @ApiOperation(value = "分页", notes = "传入alarm") public R listAll() { List pages = alarmService.listAll(); return R.data(pages); } /** * 获取最后一个记录 */ @GetMapping("/getLimit") @ApiOperationSupport(order = 3) @ApiOperation(value = "分页", notes = "传入alarm") public R> getLimit(AlarmVO alarm, Query query) { List pages = alarmService.getLimit(); return R.data(pages); } /** * 新增 */ @PostMapping("/save") @ApiOperationSupport(order = 4) @ApiOperation(value = "新增", notes = "传入alarm") public R save(@Valid @RequestBody Alarm alarm) { Date day = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); alarm.setAlarmTime(df.format(day)); alarmService.s(alarm); return R.success("新增成功"); } /** * 修改 */ @PostMapping("/update") @ApiOperationSupport(order = 5) @ApiOperation(value = "修改", notes = "传入alarm") public R update(@Valid @RequestBody Alarm alarm) { alarmService.updateOne(alarm); return R.success("修改成功"); } /** * 新增或修改 */ @PostMapping("/submit") @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入alarm") public R submit(@Valid @RequestBody Alarm alarm) { if (alarm.getCzTime() != null && alarm.getCzTime().equals("")){ alarm.setCzTime(null); } if (alarm.getJjTime() != null && alarm.getJjTime().equals("")){ alarm.setJjTime(null); } if (alarm.getAlarmTime() != null && alarm.getAlarmTime().equals("")){ alarm.setAlarmTime(null); } if (alarm.getCid() != null && alarm.getCid().equals("")){ alarm.setCid("0"); } //return null; return R.status(alarmService.saveOrUpdate(alarm)); } /** * 删除 */ @PostMapping("/remove") @ApiOperationSupport(order = 8) @ApiOperation(value = "删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids, HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); return R.status(alarmService.removeByIds(Func.toLongList(ids))); } /** * 接警列表 * @param jtype 是否生成警当 * @return */ @PostMapping("/selectList") public R selectList(@ApiParam(value = "主键集合", required = true) @RequestParam String jtype, String district, String waringType, String beginTime, String endTime, HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); return R.data(alarmService.selectList(jtype,district,waringType,beginTime,endTime)); } /** * 接警详情 * @param id 接警ID * @return */ @PostMapping("/selectInfo") public R selectInfo(@ApiParam(value = "主键集合", required = true) @RequestParam String id, HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); return R.data(alarmService.selectInfo(id)); } /** * 实时提醒 * @param id 接警ID * @return */ @PostMapping("/selecttx") public R selecttx(@ApiParam(value = "主键集合", required = true) @RequestParam String id, HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); return R.data(alarmService.selecttx(id)); } /** * 接警删除 * @param id * @param response * @return */ @PostMapping("/deletejj") public R deletejj(String id, HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); alarmService.deletejj(id); return R.success("删除成功"); } /** * 获取过去第几天的日期 * * @param past * @return */ public static String getPastDate(int past,Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - past); Date today = calendar.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String result = sdf.format(today); return result; } /** * 获取过去7天内的日期数组 * @return 日期数组 */ public static ArrayList pastDay(String time){ ArrayList pastDaysList = new ArrayList<>(); try { //我这里传来的时间是个string类型的,所以要先转为date类型的。 SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(time); for (int i = 6; i >= 0; i--) { pastDaysList.add(getPastDate(i,date)); } }catch (ParseException e){ e.printStackTrace(); } return pastDaysList; } /** * 按接警类型统计树状图 * @param response * @return */ @GetMapping("/selectScount") public R selectScount(HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); List> lists = new ArrayList<>(); List> listc = new ArrayList<>(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式 String time = df.format(new Date());// new Date()为获取当前系统时间 ArrayList strings = pastDay(time); String[] str={"医疗求助","火警","紧急求救","盗警","普通报警","交通","中心调度","电话报警"}; Map maps = new HashMap(); for (int j=0;j map = new HashMap(); List> list = alarmService.selectScount(strings.get(j)); map.put("time",strings.get(j)); for (int i=0;i map = new HashMap<>(); List types = new ArrayList<>(); List times = new ArrayList<>(); List> dataList = new ArrayList<>(); //获取类型集合数据 String [] type = {"一键求助","违禁品","红色健康码","体温异常"}; types = Arrays.asList(type); if (null!=conditionVo.getStartTime()){ //获取时间集合数据 times = DateUtils.getTimeOverOneDate(conditionVo.getStartTime(), conditionVo.getEndTime()); //1.统计时间段内一键求助警情数量数据 4-7 修改展示紧急求助 Map alarmData = alarmService.selectAlarmTimeData(conditionVo); alarmData.put("name", "一键求助"); //2.统计时间段内违禁品的数量数据 Map parcelData = parcelService.selectParcelData(conditionVo); parcelData.put("name", "违禁品"); //3.统计时间段内红色健康码人数数量数据 Map healthcodeData = ihealthcodeService.selectHealthcodeTimeData(conditionVo); healthcodeData.put("name", "红色健康码"); //4.统计时间段内体温异常人数数量数据 Map animalData = animalHeatService.selectAnimalTimeData(conditionVo); animalData.put("name", "体温异常"); //封装数据 dataList.add(alarmData); dataList.add(parcelData); dataList.add(healthcodeData); dataList.add(animalData); }else { //获取时间集合数据(今天及今天之前6天的日期) times = DateUtils.pastDay(new SimpleDateFormat("yyyy-MM-dd").format(new Date())); //1.统计7天内一键求助警情数量数据 3-20 修改展示紧急求助 Map alarmData = alarmService.selectAlarmData(); alarmData.put("name", "一键求助"); //2.统计7天内违禁品的数量数据 conditionVo.setStatus(1); Map parcelData = parcelService.selectParcelData(conditionVo); parcelData.put("name", "违禁品"); //3.统计7天内红色健康码人数数量数据 Map healthcodeData = ihealthcodeService.selectHealthcodeData(); healthcodeData.put("name", "红色健康码"); //4.统计7天内体温异常人数数量数据 Map animalData = animalHeatService.selectAnimalData(); animalData.put("name", "体温异常"); //封装数据 dataList.add(alarmData); dataList.add(parcelData); dataList.add(healthcodeData); dataList.add(animalData); } map.put("types",types); map.put("times",times); map.put("dataList",dataList); //返回数据 return R.data(map); } /** * 查询7天内数据 * @param response * @return */ @GetMapping("/selectListSe") public R selectListSe(HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式 String time = df.format(new Date());// new Date()为获取当前系统时间 String pastDate = getPastDate(7); List alarmVOS = alarmService.selectListSe(pastDate, time); return R.data(alarmVOS); } /** * 修改警情类型/同时修改人员状态 */ @PostMapping("/updateJtype") public R updateJtype(OperationVO operation, HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); alarmService.updateJtype(operation.getJid(),operation.getJtype(),operation.getBz(),operation.getSecurityArr()); alarmService.updatePoliceStatus(operation.getRid(),"0"); operationService.save(operation); //如果警情处理完成,则修改设备状态为正常 if (null!=operation.getJtype() && operation.getJtype().equals("2")){ String state ="处理完成"; iEquipmentService.updateExstate(state,null,operation.getDeviceNumber()); } return R.success("修改成功"); } /** * 查询所有保安信息 */ @PostMapping("/queryBa") public R queryBa(OperationVO operation, HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); return R.data(alarmService.queryBa()); } /** * 统计预警设备数量 * @param response * @return */ @GetMapping("/selectEq") public R selectEq(HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); List> lists = new ArrayList<>(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式 String time = df.format(new Date());// new Date()为获取当前系统时间 ArrayList strings = pastDay(time); Map maps = new HashMap(); for (int j=0;j map = new HashMap(); List> list = alarmService.selectEq(strings.get(j)); map.put("time",strings.get(j)); map.put("Coun",list.size()); lists.add(map); } return R.data(lists); } /** * 警情日平均占比 * @param response 跨域配置 * @param conditionVo 条件 * @return */ @GetMapping("/selAlarmDayAveragePro") public R selAlarmDayAveragePro(HttpServletResponse response,ConditionVo conditionVo) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); List list = new ArrayList<>(); //获取时间天数 if (null!= conditionVo.getStartTime() && conditionVo.getStartTime()!="" && null!=conditionVo.getEndTime() && conditionVo.getEndTime()!="") { int times = DateUtils.getTimeOverOneDate(conditionVo.getStartTime(), conditionVo.getEndTime()).size(); //查询当前时间段一键求助报警总次数 int alarmTimeCount = alarmService.selAlarmTimeCount(conditionVo); //查询当前时间段违禁品总个数 int parcelTimeCount = parcelService.selParcelTimeCount(conditionVo); //查询当前时间段红色健康码总个数 int healthcodeTimeCount = ihealthcodeService.selHealthcodeTimeCount(conditionVo); //查询当前时间段体温异常总次数 int animalTimeCount = animalHeatService.selAnimalTimeCount(conditionVo); //封装数据 list.add(alarmTimeCount); list.add(parcelTimeCount); list.add(healthcodeTimeCount); list.add(animalTimeCount); //返回数据 return R.data(list); } return null; } /** * 一键求助报警确认时间占比 * @param response 跨域配置 * @param conditionVo 条件 * @return */ @GetMapping("/selConfirmTimePro") public R selConfirmTimePro(HttpServletResponse response,ConditionVo conditionVo){ response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); if (null!= conditionVo.getStartTime() && conditionVo.getStartTime()!="" && null!=conditionVo.getEndTime() && conditionVo.getEndTime()!="") { return R.data(alarmService.selConfirmTimePro(conditionVo)); } return null; } /** * 警情时间分布 0-2 2-4 4-6 6-8 .... 22-24 * @param response 跨域配置 * @param conditionVo 条件 * @return */ @GetMapping("/selAlarmTimeDis") public R selAlarmTimeDis(HttpServletResponse response,ConditionVo conditionVo) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); Map map = new HashMap<>(); //获取时间天数 if (null!= conditionVo.getStartTime() && conditionVo.getStartTime()!="" && null!=conditionVo.getEndTime() && conditionVo.getEndTime()!="") { int times = DateUtils.getTimeOverOneDate(conditionVo.getStartTime(), conditionVo.getEndTime()).size(); //查询当前时间段区间时间一键求助报警个数 List alarmTimeDis = alarmService.selAlarmTimeDis(conditionVo); //查询当前时间段区间时间违禁品个数 List parcelTimeDis = parcelService.selParcelTimeDis(conditionVo); //查询当前时间段区间时间红色健康码个数 List healthcodeTimeDis = ihealthcodeService.selHealthcodeTimeDis(conditionVo); //查询当前时间段区间时间体温异常次数 List animalTimeDis = animalHeatService.selAnimalTimeDis(conditionVo); //封装数据 map.put("alarmTimeDis",alarmTimeDis); map.put("parcelTimeDis",parcelTimeDis); map.put("healthcodeTimeDis",healthcodeTimeDis); map.put("animalTimeDis",animalTimeDis); //返回数据 return R.data(map); } return null; } /** * 查询本年所有月份的警情数量 * @param response 跨域配置 * @param deviceNumber 条件 * @return */ @GetMapping("/queryYearAlarm") public List> queryYearAlarm(HttpServletResponse response, String deviceNumber) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); List> list = alarmService.queryYearAlarm(deviceNumber); return list; } /** * 导出主动报警数据表格 * @param alarmVO 查询条件 * @param response */ @GetMapping("/export-alarm") public void exportAlarm(AlarmVO alarmVO, HttpServletResponse response){ List list = alarmService.exportAlarm(alarmVO); ExcelUtil.export(response, "主动报警数据" + DateUtil.time(), "主动报警数据表", list, AlarmExcel.class); } /** * APP查询警情 * @param alarmVO * @param response * @return */ @PostMapping("/APP-getAlarm") public R getAlarm(AlarmVO alarmVO, HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); //获取部门数据 List deptVos = deptFeignApi.selDeptList(); List page = alarmService.getAlarm(alarmVO); for (int j = 0; j < page.size(); j++) { if (null!=page.get(j).getDeptId()){ String[] split = page.get(j).getDeptId().split(","); List list = Arrays.asList(split); StringBuffer deptNameBuiffer = new StringBuffer(); //数据匹配封装 for (String deptId:list) { for (DeptVo deptVo:deptVos) { if (deptId.equals(deptVo.getId().toString())){ deptNameBuiffer.append(deptVo.getDeptName()).append(","); } } } //封装部门名称数据 page.get(j).setDeptName(deptNameBuiffer.substring(0,deptNameBuiffer.length()-1)); } } return R.data(page); } /** * APP已接警情 * @param alarmVO * @param response * @return */ @PostMapping("/APP-getAlarming") public R getAlarming(AlarmVO alarmVO, HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); //获取部门数据 List deptVos = deptFeignApi.selDeptList(); List page = alarmService.getAlarming(alarmVO); for (int j = 0; j < page.size(); j++) { if (null!=page.get(j).getDeptId()){ String[] split = page.get(j).getDeptId().split(","); List list = Arrays.asList(split); StringBuffer deptNameBuiffer = new StringBuffer(); //数据匹配封装 for (String deptId:list) { for (DeptVo deptVo:deptVos) { if (deptId.equals(deptVo.getId().toString())){ deptNameBuiffer.append(deptVo.getDeptName()).append(","); } } } //封装部门名称数据 page.get(j).setDeptName(deptNameBuiffer.substring(0,deptNameBuiffer.length()-1)); } } return R.data(page); } /** * 查询当前保安需要处理和未处理的警情信息 * @param alarmVO 需包含保安人员id,状态 status 1 查当前保安收到的警情和已接收的警情,已处理完成的 2:未接收的 3:处理完成的 * @param response * @param query 分页对象 * @return */ @GetMapping("/APP-getAlarmListPage") public R getAlarmListPage(AlarmVO alarmVO, HttpServletResponse response,Query query) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); Map map = new HashMap<>(2); //获取部门数据 List deptVos = deptFeignApi.selDeptList(); List page = new ArrayList<>(); //不分页的情况 if (null == query.getCurrent()) { //获取警情数量的集合 map.put("number",alarmService.getAlarmNumber(alarmVO)); //获取警情数据 page = alarmService.getAlarmList(alarmVO); } for (int j = 0; j < page.size(); j++) { if (null!=page.get(j).getDeptId()){ String[] split = page.get(j).getDeptId().split(","); List list = Arrays.asList(split); StringBuffer deptNameBuiffer = new StringBuffer(); //数据匹配封装 for (String deptId:list) { for (DeptVo deptVo:deptVos) { if (deptId.equals(deptVo.getId().toString())){ deptNameBuiffer.append(deptVo.getDeptName()).append(","); } } } //封装部门名称数据 page.get(j).setDeptName(deptNameBuiffer.substring(0,deptNameBuiffer.length()-1)); } } //封装数据 map.put("page",page); //返回数据 return R.data(map); } /** * 查询当前保安需要处理和未处理的巡逻任务 * @param alarmVO 需包含保安人员id,状态 status 1 查当前保安收到的巡逻和已接收的巡逻,已处理完成的 2:未接收的 3:处理完成的 * @param response * @param query 分页对象 * @return */ @GetMapping("/APP-getPatrolListPage") public R getPatrolListPage(AlarmVO alarmVO, HttpServletResponse response,Query query) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); Map map = new HashMap<>(2); //获取部门数据 List deptVos = deptFeignApi.selDeptList(); List page = new ArrayList<>(); //不分页的情况 if (null == query.getCurrent()) { //获取警情数量的集合 map.put("number",alarmService.getPatrolNumber(alarmVO)); //获取警情数据 page = alarmService.getPatrolList(alarmVO); } for (int j = 0; j < page.size(); j++) { if (null!=page.get(j).getDeptId()){ String[] split = page.get(j).getDeptId().split(","); List list = Arrays.asList(split); StringBuffer deptNameBuiffer = new StringBuffer(); //数据匹配封装 for (String deptId:list) { for (DeptVo deptVo:deptVos) { if (deptId.equals(deptVo.getId().toString())){ deptNameBuiffer.append(deptVo.getDeptName()).append(","); } } } //封装部门名称数据 page.get(j).setDeptName(deptNameBuiffer.substring(0,deptNameBuiffer.length()-1)); } } //封装数据 map.put("page",page); //返回数据 return R.data(map); } /** * APP警情接受 * @param alarmVO * @param response * @return */ @PostMapping("/APP-setAlarm") public R setAlarm(AlarmVO alarmVO, HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); SimpleDateFormat sdf = new SimpleDateFormat();// 格式化时间 sdf.applyPattern("yyyy-MM-dd HH:mm:ss");// a为am/pm的标记 Date date = new Date();// 获取当前时间 Operation operation = new Operation(); operation.setJid(alarmVO.getId().toString()); operation.setSnumber(alarmVO.getSecurityId()); operation.setZc("接受任务"); operation.setSname(alarmVO.getAlarmPeople()); operation.setZctime(sdf.format(date)); operationService.save(operation); return R.status(alarmService.setAlarm(alarmVO)); } /** * 当web端点击办结,推送110,派送保安是 更新警情的接警员信息 * @param alarm 警情信息 * @param response 响应域 * @return */ @PostMapping("/updateReceivingAlarmPoliceInfo") public R updateReceivingAlarmPoliceInfo(Alarm alarm, HttpServletResponse response){ response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); boolean result = alarmService.updateReceivingAlarmPoliceInfo(alarm); if (result){ return R.status(true); } return R.status(false); } /** * 一周警情统计(主动报警+被动报警类型(体温异常,红码,违禁品)) 2021-3-16 arsn 柱状图展示 * @param response * @return */ @GetMapping("/countAlarm") public R countAlarm(HttpServletResponse response,ConditionVo conditionVo) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); //创建类型,时间对象,分别存取类型,时间数据 List times = new ArrayList<>(); times = DateUtils.pastDay(new SimpleDateFormat("yyyy-MM-dd").format(new Date())); Map alarmData = alarmService.selectAlarmData(); alarmData.put("times",times); //返回数据 return R.data(alarmData); } }