package com.huimv.receive.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huimv.receive.common.utils.DataUill;
import com.huimv.receive.common.utils.Print;
import com.huimv.receive.common.utils.Result;
import com.huimv.receive.common.utils.ResultCode;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.huimv.receive.common.utils.Result;
import com.huimv.receive.entity.BaseDevice;
import com.huimv.receive.entity.BillClean;
import com.huimv.receive.entity.SysUser;
import com.huimv.receive.mapper.BaseDeviceMapper;
import com.huimv.receive.service.IBaseDeviceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.DecimalFormat;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
*
* 服务实现类
*
*
* @author author
* @since 2023-09-04
*/
@Service
public class BaseDeviceServiceImpl extends ServiceImpl implements IBaseDeviceService {
@Autowired
private BaseDeviceMapper deviceMapper;
@Override
public void printDevice(HttpServletResponse httpServletRequest, Map paramsMap) throws Exception {
String ids = paramsMap.get("ids");
String[] split = ids.split(",");
List list = new ArrayList<>();
for (String s : split) {
BaseDevice admission = deviceMapper.selectById(s);
list.add(admission);
}
Print.printDevice(list);
}
@Override
public Result listCount(HttpServletRequest httpServletRequest, Map paramsMap) {
String farmId = paramsMap.get("farmId");
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId);
queryWrapper.eq("device_status", 0);
Integer count = deviceMapper.selectCount(queryWrapper);//在线
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("farm_id", farmId);
queryWrapper1.eq("device_status", 1);
Integer count1 = deviceMapper.selectCount(queryWrapper1);//离线
Integer allCount = count + count1;
DecimalFormat def = new DecimalFormat("0.00");
String rank;
if (allCount == 0 || allCount == null) {
Double ranks = Double.valueOf("0.00");
rank = ranks.toString();
} else {
Double ranks = (Double.valueOf(count.toString()) / Double.valueOf(allCount.toString())) * 100;
rank = def.format(ranks);
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("count", allCount);
jsonObject.put("count1", count);
jsonObject.put("count2", count1);
jsonObject.put("rank", rank);
return new Result(ResultCode.SUCCESS, jsonObject);
}
@Override
public Result listSelect(HttpServletRequest httpServletRequest, Map paramsMap) {
String farmId = paramsMap.get("farmId");
String word = paramsMap.get("word");
String locationId = paramsMap.get("locationId");
String pageNum = paramsMap.get("pageNum");
String pageSize = paramsMap.get("pageSize");
if ("".equals(pageNum) || null == pageNum) {
pageNum = "1";
}
if ("".equals(pageSize) || null == pageSize) {
pageSize = "10";
}
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId);
if (StringUtils.isNotBlank(word)) {
queryWrapper.and(i -> i.like("device_code", word)
.or().like( "device_name", word));
}
queryWrapper.eq(StringUtils.isNotBlank(locationId),"work_location_type", locationId);
Page page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
return new Result(ResultCode.SUCCESS, deviceMapper.selectPage(page, queryWrapper));
}
@Override
public Result addDevice(BaseDevice baseDevice) {
String deviceCode = baseDevice.getDeviceCode();
int deviceCodeCount = this.count(new QueryWrapper().eq("device_code", deviceCode));
if (deviceCodeCount>0){
return new Result(10001,"设备编码已存在",false);
}
this.save(baseDevice);
return new Result(10000,"添加成功",true);
}
@Override
public Result updateDevice(BaseDevice baseDevice) {
this.updateById(baseDevice);
return new Result(10000,"修改成功",true);
}
}