/** * Date:2019-09-23 17:09:15 * author:吴洪双 */ package com.shawn.web.controller; import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; import com.shawn.model.dto.TAdminDTO; import com.shawn.model.dto.TEquipmentDTO; import com.shawn.model.entity.TAdmin; import com.shawn.model.entity.TAlarmRecord; import com.shawn.model.param.StatisticsParam; import com.shawn.service.interfac.TAdminServiceInterface; import com.shawn.service.interfac.TAlarmRecordServiceInterface; import com.shawn.util.BeanUtils; import com.shawn.util.PushUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.shawn.model.dto.ResultMessage; import com.shawn.web.controller.base.BaseController; import com.shawn.model.entity.TEquipment; import com.shawn.model.entity.TEquipmentExample; import com.shawn.model.param.TEquipmentParam; import com.shawn.service.interfac.TEquipmentServiceInterface; import lombok.extern.apachecommons.CommonsLog; @CommonsLog @RestController @RequestMapping("TEquipment") public class TEquipmentController extends BaseController{ @Autowired private TEquipmentServiceInterface tEquipmentService; @Autowired private TAdminServiceInterface tAdminService; @Autowired private TAlarmRecordServiceInterface tAlarmRecordService; @Autowired public TEquipmentController(TEquipmentServiceInterface service) { super(service); } @Override protected TEquipmentExample createNewExample() { return new TEquipmentExample(); } @PostMapping("/getEquipmentListByUser") public ResponseEntity getEquipmentListByUser(@RequestBody TAdmin param) { List resultList = new ArrayList<>(); if("admin".equals(param.getUsername())){ // 管理员查所有商家 List adminList = tAdminService.selectByOption(null); List equipmentList = tEquipmentService.selectByOption(null); List alarmRecordList = tAlarmRecordService.getLastAlarmRecord(null); //获取当前用户今天所有机器的所以警报信息 List alarmList = tAlarmRecordService.getAlarmList(null); resultList = adminList.stream().map(e ->{ TAdminDTO dto = new TAdminDTO(); BeanUtils.copyPropertiesIgnoreNull(e,dto,true); List selList = equipmentList.stream() .filter(equipment ->e.getId().equals(equipment.getAdminId())) // 查对应的设备 .map(equipment -> { TEquipmentDTO equipmentDTO = new TEquipmentDTO(); BeanUtils.copyPropertiesIgnoreNull(equipment,equipmentDTO,true); Optional op = alarmRecordList.stream().filter(alarm -> equipment.getClientId().equals(alarm.getClientId())).findFirst(); if(op.isPresent()){ equipmentDTO.setAlarmContent(op.get().getAlarmContent()); equipmentDTO.setOccurrenceTime(op.get().getOccurrenceTime()); } //获取该机器的所有警报信息 List eqAlarmList = alarmList.stream().filter(alarm -> equipment.getClientId().equals(alarm.getClientId())).collect(Collectors.toList()); equipmentDTO.setAlarmList(eqAlarmList); return equipmentDTO; }).collect(Collectors.toList()); dto.setEquipmentList(selList); return dto; }).collect(Collectors.toList()); }else{ // 只查当前商家的设备列表 TAdminDTO dto = new TAdminDTO(); BeanUtils.copyPropertiesIgnoreNull(param,dto,true); TEquipmentExample example = new TEquipmentExample(); TEquipmentExample.Criteria criteria = example.createCriteria(); criteria.andAdminIdEqualTo(param.getId()); List equipmentList = tEquipmentService.selectByOption(example); List alarmRecordList = tAlarmRecordService.getLastAlarmRecord(param.getId()); //获取当前用户今天所有机器的所以警报信息 List alarmList = tAlarmRecordService.getAlarmList(param.getId()); List equipmentDTOList = equipmentList.stream().map(equipment -> { TEquipmentDTO equipmentDTO = new TEquipmentDTO(); BeanUtils.copyPropertiesIgnoreNull(equipment,equipmentDTO,true); Optional op = alarmRecordList.stream().filter(alarm -> equipment.getClientId().equals(alarm.getClientId())).findFirst(); if(op.isPresent()){ equipmentDTO.setAlarmContent(op.get().getAlarmContent()); equipmentDTO.setOccurrenceTime(op.get().getOccurrenceTime()); } //获取该机器的所有警报信息 List eqAlarmList = alarmList.stream().filter(alarm -> equipment.getClientId().equals(alarm.getClientId())).collect(Collectors.toList()); equipmentDTO.setAlarmList(eqAlarmList); return equipmentDTO; }).collect(Collectors.toList()); dto.setEquipmentList(equipmentDTOList); resultList.add(dto); } return ResponseEntity.status(HttpStatus.OK) .body(new ResultMessage().setCode(true).setData(resultList).setMessage("SUCCESS")); } @PostMapping("/updateName") public ResponseEntity updateName(@RequestBody TEquipment equipment){ Boolean t=tEquipmentService.updateById(equipment); if(t==true){ return ResponseEntity.status(HttpStatus.OK) .body(new ResultMessage().setCode(true).setData(t).setMessage("修改成功")); }else { return ResponseEntity.status(HttpStatus.OK) .body(new ResultMessage().setCode(false).setData(t).setMessage("修改失败")); } } //获取机器数量 @PostMapping("/getMachineNum") public ResponseEntity getMachineNum(@RequestBody StatisticsParam param) { String machineTotalNum =""; String machineUseNum = ""; String equipmentId = param.getEquipmentId(); //判断是否有机器id传入 if(equipmentId!=null && equipmentId!=""){ Long id = Long.valueOf(equipmentId); TEquipment equipment = tEquipmentService.selectEntityById(id); Long adminId = equipment.getAdminId(); String dminId = String.valueOf(adminId); param.setAdminId(dminId); machineTotalNum = tEquipmentService.findMachineTotalNum(param); machineUseNum = tEquipmentService.findMachineUseNum(param); }else{ machineTotalNum = tEquipmentService.findMachineTotalNum(param); machineUseNum = tEquipmentService.findMachineUseNum(param); } List list = new ArrayList<>(); list.add(machineTotalNum); list.add(machineUseNum); return ResponseEntity .status(HttpStatus.OK) .body(new ResultMessage() .setCode(true) .setData(list) .setMessage("SUCCESS")); } //机器睡眠 @PostMapping("/sleep") public ResponseEntity sleep(@RequestBody StatisticsParam param) { String equipmentId = param.getEquipmentId(); Long id = Long.valueOf(equipmentId); TEquipment equipment = tEquipmentService.selectEntityById(id); if (equipment == null) { // return ERROR_MESSAGE; } String eqeStatus = "0"; String code = param.getAdminId(); if (code.equals("1")) { eqeStatus = "1"; equipment.setIsSleep(true); }else { equipment.setIsSleep(false); } tEquipmentService.updateById(equipment); PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("is_sleep", eqeStatus).toString()); return ResponseEntity .status(HttpStatus.OK) .body(new ResultMessage() .setCode(true) .setData("SUCCESS") .setMessage("SUCCESS")); } }