package com.szwl.controller; import cn.com.crbank.ommo.bean.ResultMessage; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.szwl.constant.ResponseCodesEnum; import com.szwl.model.bo.R; import com.szwl.model.bo.ResponseModel; import com.szwl.model.entity.*; import com.szwl.model.utils.PushUtils; import com.szwl.service.TAdminService; import com.szwl.service.TAlarmRecordService; import com.szwl.service.TEquipmentService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** *

* 报警信息 前端控制器 *

* * @author wuhs * @since 2022-04-27 */ @Api(value = "/tAlarmRecord", tags = {"报警信息"}) @RestController @RequestMapping("/tAlarmRecord") public class TAlarmRecordController { @Autowired TEquipmentService tEquipmentService; @Autowired TAlarmRecordService tAlarmRecordService; @Autowired TAdminService adminService; @ApiOperation(value = "消除报警") @PostMapping("/eliminate") public ResponseEntity eliminate(@RequestBody TAlarmRecord param){ TAlarmRecord tAlarmRecord = tAlarmRecordService.getById(param.getId()); TEquipment equipment = tEquipmentService.getById(tAlarmRecord.getEquipmentId()); JSONObject kindData = new JSONObject(); kindData.put("id" , param.getId()); kindData.put("content" , tAlarmRecord.getAlarmContent()); tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("eliminate", kindData.toString()).toString()); return ResponseEntity.status(HttpStatus.OK) .body(new ResultMessage().setCode(true).setData("0").setMessage("已发送")); } @ApiOperation(value = "获取分销信息列表 分页") @GetMapping("/pageAlarmRecord") public ResponseModel> pageAlarmRecord(String adminId, String clientId, String name, Date startDate,Date endDate, long current, long size ) { TAdmin admin = adminService.getById(adminId); if(StringUtils.isEmpty(adminId)){ return R.fail(ResponseCodesEnum.A0100); } LambdaQueryWrapper query = Wrappers.lambdaQuery(); if(admin.getType()>1){ query.eq(TAlarmRecord::getAdminId,admin.getId()); } // 申泽平台管理员 if (admin.getId() == 2738) { LambdaQueryWrapper adminQuery = Wrappers.lambdaQuery(); adminQuery.isNull(TAdmin::getCompanyType).or() .eq(TAdmin::getCompanyType, "0"); List adminIds = adminService.list(adminQuery).stream() .map(TAdmin::getId).collect(Collectors.toList()); query.in(TAlarmRecord::getAdminId,adminIds); } // 七云平台管理员 if (admin.getId() == 2739) { LambdaQueryWrapper adminQuery = Wrappers.lambdaQuery(); adminQuery.eq(TAdmin::getCompanyType, "1"); List adminIds = adminService.list(adminQuery).stream() .map(TAdmin::getId).collect(Collectors.toList()); query.in(TAlarmRecord::getAdminId,adminIds); } if(StringUtils.isNotEmpty(clientId)){ LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); query1.like(TEquipment::getClientId,clientId); TEquipment equipment = tEquipmentService.getOnly(query1); if(admin.getType()>1){ if(equipment.getAdminId().toString().equals(adminId)){ query.eq(TAlarmRecord::getClientId,equipment.getClientId()); }else { return R.fail("设备编号出错"); } }else { query.like(TAlarmRecord::getClientId,clientId); } } if(StringUtils.isNotEmpty(name)){ query.like(TAlarmRecord::getName,name); } if(startDate!=null){ query.gt(TAlarmRecord::getOccurrenceTime,startDate); } if(endDate!=null){ query.lt(TAlarmRecord::getOccurrenceTime,endDate); } query.orderByDesc(TAlarmRecord::getOccurrenceTime); Page page = new Page<>(current, size, true); IPage iPage = tAlarmRecordService.page(page, query); return R.ok(iPage); } @ApiOperation(value = "查询今天是否有报警") @GetMapping("/isAlarm") public ResponseModel isAlarm(Long adminId, String todayDate){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { date = sdf.parse(todayDate); } catch (ParseException e) { e.printStackTrace(); } Calendar calendar = new GregorianCalendar(); Calendar calendarEnd = new GregorianCalendar(); calendar.setTime(date); calendarEnd.setTime(date); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); calendarEnd.set(Calendar.HOUR_OF_DAY, 23); calendarEnd.set(Calendar.MINUTE, 59); calendarEnd.set(Calendar.SECOND, 59); calendarEnd.set(Calendar.MILLISECOND, 999); Date dateStart = calendar.getTime(); Date dateEnd = calendarEnd.getTime(); LambdaQueryWrapper tAlarmRecord = new LambdaQueryWrapper<>(); tAlarmRecord.eq(TAlarmRecord::getAdminId, adminId); tAlarmRecord.eq(TAlarmRecord::getIsEliminate, 0); tAlarmRecord.gt(TAlarmRecord::getOccurrenceTime, dateStart); tAlarmRecord.le(TAlarmRecord::getOccurrenceTime, dateEnd); tAlarmRecord.orderByAsc(TAlarmRecord::getOccurrenceTime); List list = tAlarmRecordService.list(tAlarmRecord); if (list.size() > 0) { Map latestRecordsMap = new HashMap<>(); for (TAlarmRecord alarmRecord : list) { latestRecordsMap.put(alarmRecord.getEquipmentId(), alarmRecord); } list = new ArrayList<>(latestRecordsMap.values()); return R.ok(list); } return R.ok(); } }