package com.thhy.engineering.modules.biz.device.service.impl; import cn.hutool.core.io.IoUtil; import cn.hutool.poi.excel.ExcelWriter; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.thhy.engineering.modules.biz.device.entity.SysDevice; import com.thhy.engineering.modules.biz.device.entity.TMouldRecord; import com.thhy.engineering.modules.biz.device.entity.TSteam; import com.thhy.engineering.modules.biz.device.entity.dto.SteamExportDto; import com.thhy.engineering.modules.biz.device.mapper.SysDeviceMapper; import com.thhy.engineering.modules.biz.device.service.SysDeviceService; import com.thhy.general.common.BasicResult; import com.thhy.general.config.SysUserInfo; import com.thhy.general.utils.UserInfoUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class SysDeviceServiceImpl implements SysDeviceService { @Resource private SysDeviceMapper deviceMapper; @Override public BasicResult deviceInsert(Map values) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); values.put("companyId",companyId); //设备名称 String deviceName = values.get("deviceName").toString(); //设备SN码 String snCode = values.get("snCode").toString(); SysDevice sysDevice = deviceMapper.deviceNameOrSNByOne(deviceName,snCode,companyId); if(sysDevice!=null){ return BasicResult.faild("11111","设备名称或者SN码重复","error"); } values.put("deviceId",""); deviceMapper.deviceInsert(values); return BasicResult.success("添加成功"); } @Override public BasicResult deviceList(Map values) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); values.put("companyId",companyId); Integer pageSize = Integer.valueOf(values.get("pageSize").toString()); Integer pageNum = Integer.valueOf(values.get("pageNum").toString()); PageHelper.startPage(pageNum,pageSize); List devices = deviceMapper.deviceList(values); PageInfo sysDevicePageInfo = new PageInfo<>(devices); return BasicResult.success(sysDevicePageInfo); } @Override public BasicResult deviceInfo(String deviceId) { SysDevice sysDevice = deviceMapper.deviceInfo(deviceId); return BasicResult.success(sysDevice); } @Override public BasicResult deviceUpdate(Map values) { String deviceId = values.get("deviceId").toString(); SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); values.put("companyId",companyId); //设备名称 String deviceName = values.get("deviceName").toString(); //设备SN码 String snCode = values.get("snCode").toString(); SysDevice sysDevice = deviceMapper.deviceNameOrSNByOne(deviceName,snCode,companyId); if(sysDevice!=null&&deviceId.equals(sysDevice.getDeviceId())){ return BasicResult.faild("11111","设备名称或者SN码重复","error"); } deviceMapper.deviceUpdate(values); return BasicResult.success("修改成功"); } @Override public BasicResult deviceDel(String deviceId) { List steamIds = deviceMapper.selectBySteamIds(deviceId); if(steamIds!=null && steamIds.size()>0){ return BasicResult.faild("11111","设备已被占用,不能删除","error"); } deviceMapper.deviceDel(deviceId); return BasicResult.success("删除成功"); } @Override public BasicResult steamList(Map values) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); values.put("companyId",companyId); Integer pageSize = Integer.valueOf(values.get("pageSize").toString()); Integer pageNum = Integer.valueOf(values.get("pageNum").toString()); PageHelper.startPage(pageNum,pageSize); List tSteams = deviceMapper.steamList(values); PageInfo tSteamPageInfo = new PageInfo<>(tSteams); return BasicResult.success(tSteamPageInfo); } @Override public void steamExport(Map values, HttpServletResponse response) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); values.put("companyId",companyId); List tSteams = deviceMapper.steamList(values); List steamExportDtos = new ArrayList<>(); for (TSteam steam : tSteams){ SteamExportDto steamExportDto = new SteamExportDto(); steamExportDto.setDeviceName(steam.getDeviceName()); steamExportDto.setTemperature(steam.getTemperature()); steamExportDto.setHumidity(steam.getHumidity()); steamExportDto.setGatherTime(steam.getGatherTime()); steamExportDtos.add(steamExportDto); } ExcelWriter excel = new ExcelWriter();//定义excel excel.addHeaderAlias("deviceName", "设备名称"); excel.addHeaderAlias("temperature", "温度"); excel.addHeaderAlias("humidity", "湿度"); excel.addHeaderAlias("gatherTime", "采集时间"); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=test.xls"); OutputStream out = null; try { out = response.getOutputStream(); excel.write(steamExportDtos); excel.flush(out, true); } catch (IOException e) { e.printStackTrace(); } finally { // 关闭writer,释放内存 excel.close(); } IoUtil.close(out); } @Override public BasicResult devicePull(String deviceType) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); List sysDevices = deviceMapper.devicePull(deviceType,companyId); return BasicResult.success(sysDevices); } @Override public BasicResult mouldList(Map values) { Integer pageSize = Integer.valueOf(values.get("pageSize").toString()); Integer pageNum = Integer.valueOf(values.get("pageNum").toString()); PageHelper.startPage(pageNum,pageSize); List mouldRecords =deviceMapper.mouldList(values); PageInfo tMouldRecordPageInfo = new PageInfo<>(mouldRecords); return BasicResult.success(tMouldRecordPageInfo); } }