package com.huimv.guowei.admin.controller; import com.alibaba.druid.util.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.huimv.guowei.admin.common.utils.Result; import com.huimv.guowei.admin.common.utils.ResultCode; import com.huimv.guowei.admin.entity.EnvDevice; import com.huimv.guowei.admin.entity.EnvDeviceEquipment; import com.huimv.guowei.admin.service.IEnvDeviceEquipmentService; import com.huimv.guowei.admin.service.IEnvDeviceService; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 前端控制器 *

* * @author author * @since 2023-06-01 */ @RestController @RequestMapping("/env-device") @CrossOrigin public class EnvDeviceController { @Resource private IEnvDeviceService envDeviceService; @Resource private IEnvDeviceEquipmentService envDeviceEquipmentService; @PostMapping("/listDevice") public Result listDevice(@RequestBody Map paramsMap){ String deviceType = paramsMap.get("deviceType"); String farmId = paramsMap.get("farmId"); String pageNo = paramsMap.get("pageNum"); String pageSize = paramsMap.get("pageSize"); Page page = new Page(Integer.parseInt(pageNo),Integer.parseInt(pageSize)); return new Result(ResultCode.SUCCESS,envDeviceService.page(page, new QueryWrapper() .eq(!StringUtils.isEmpty(deviceType),"device_type",deviceType) .eq("farm_id",farmId).orderByDesc("id"))); } @PostMapping("/listH5Device") public Result listH5Device(@RequestBody Map paramsMap){ String deviceType = paramsMap.get("deviceType"); String farmId = paramsMap.get("farmId"); String pageNo = paramsMap.get("pageNum"); String pageSize = paramsMap.get("pageSize"); Page page = new Page(Integer.parseInt(pageNo),Integer.parseInt(pageSize)); if (deviceType.equals("1")){ return new Result(ResultCode.SUCCESS,envDeviceService.page(page, new QueryWrapper() .eq(!StringUtils.isEmpty(deviceType),"device_type",deviceType) .eq("farm_id",farmId).orderByDesc("id"))); }else { return new Result(ResultCode.SUCCESS, envDeviceService.page(page, new QueryWrapper() .in("device_type", 2, 3) .eq("farm_id", farmId).orderByDesc("id"))); } } @PostMapping("/listScale") public Result listScale(@RequestBody Map paramsMap){ String farmId = paramsMap.get("farmId"); return new Result(ResultCode.SUCCESS,envDeviceService.list(new QueryWrapper().eq("farm_id",farmId).eq("device_type",2))); } @PostMapping("/addDevice") @Transactional(rollbackFor = RuntimeException.class) public Result addDevice(@RequestBody Map paramsMap){ String deviceCode = (String) paramsMap.get("deviceCode"); String unitId = (String) paramsMap.get("unitId"); String unitName = (String) paramsMap.get("unitName"); String buildLocation = (String) paramsMap.get("buildLocation"); String farmId = (String) paramsMap.get("farmId"); Integer deviceType = (Integer) paramsMap.get("deviceType"); // String deviceName = unitName; String deviceName = (String) paramsMap.get("deviceName"); // switch (deviceType){ // case 1: deviceName += "环控"; // break; // case 2: deviceName += "移动电子秤"; // break; // case 3: deviceName += "固定电子秤"; // break; // } if (envDeviceService.count(new QueryWrapper().eq("device_code",deviceCode)) != 0){ return new Result(10001,"设备编码已存在!",false); } if (deviceType == 1){ if (envDeviceService.count(new QueryWrapper().eq("unit_Id",unitId).eq("device_type",1)) != 0){ return new Result(10001,"栋舍已存在环控设备!",false); } } EnvDevice envDevice = new EnvDevice(); envDevice.setDeviceCode(deviceCode); envDevice.setDeviceName(deviceName); envDevice.setDeviceType(deviceType); envDevice.setBuildLocation(buildLocation); if (deviceType != 2){ envDevice.setUnitName(unitName); envDevice.setUnitId(Integer.parseInt(unitId)); } envDevice.setFarmId(Integer.parseInt(farmId)); envDeviceService.save(envDevice); //环控设备 if (deviceType == 1){ List list = (List) paramsMap.get("device"); int fan = 1; int tp = 1; int spray = 1; for (int i = 0; i paramsMap){ String deviceCode = paramsMap.get("deviceCode"); envDeviceService.remove(new QueryWrapper().eq("device_code",deviceCode)); envDeviceEquipmentService.remove(new QueryWrapper().eq("device_code",deviceCode)); return Result.SUCCESS(); } @PostMapping("/getDeviceStatus") public Result getDeviceStatus(@RequestBody Map paramsMap){ String farmId = paramsMap.get("farmId"); double rate = 0.0; Map resultMap = new HashMap(); int total = envDeviceService.count(new QueryWrapper().eq("farm_id", farmId)); resultMap.put("totalDevice", total); int deviceOn = envDeviceService.count(new QueryWrapper().eq("farm_id", farmId).eq("device_status", 1)); int deviceOff = envDeviceService.count(new QueryWrapper().eq("farm_id", farmId).eq("device_status", 0)); resultMap.put("deviceOn", deviceOn); resultMap.put("deviceOff", deviceOff); if (deviceOff == 0 && deviceOn != 0){ rate = 100; } if (deviceOff != 0){ rate = (deviceOn/total)*100; } resultMap.put("onlineRate",rate); return new Result(ResultCode.SUCCESS,resultMap); } }