package com.huimv.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.huimv.admin.common.utils.Result;
import com.huimv.admin.common.utils.ResultCode;
import com.huimv.admin.entity.EnvDayagePeizhi;
import com.huimv.admin.entity.EnvDevice;
import com.huimv.admin.entity.EnvDeviceFan;
import com.huimv.admin.entity.EnvFengPeizhi;
import com.huimv.admin.entity.vo.PublicDeployVo;
import com.huimv.admin.mapper.EnvDayagePeizhiMapper;
import com.huimv.admin.mapper.EnvDeviceFanMapper;
import com.huimv.admin.mapper.EnvDeviceMapper;
import com.huimv.admin.mapper.EnvFengPeizhiMapper;
import com.huimv.admin.service.IEnvDayagePeizhiService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
/**
*
* 服务实现类
*
*
* @author author
* @since 2023-04-10
*/
@Service
public class EnvDayagePeizhiServiceImpl extends ServiceImpl implements IEnvDayagePeizhiService {
@Resource
private EnvDayagePeizhiMapper envDayagePeizhiMapper;
@Resource
private EnvFengPeizhiMapper envFengPeizhiMapper;
@Resource
private EnvDeviceMapper envDeviceMapper;
@Resource
private EnvDeviceFanMapper envDeviceFanMapper;
@Override
public Result listDeploy(Map paramsMap) {
List publicDeployVos = envDayagePeizhiMapper.listPublicDeploy();
return new Result(ResultCode.SUCCESS,publicDeployVos);
}
@Override
public Result listDeployByDevice(Map paramsMap) {
String deviceCode = paramsMap.get("deviceCode");
List envDayagePeizhis = envDayagePeizhiMapper.selectList(new QueryWrapper()
.eq("device_code", deviceCode)
.groupBy("time_dayage"));
return new Result(ResultCode.SUCCESS,envDayagePeizhis);
}
@Override
@Transactional
public Result rename(Map paramsMap) {
String deployName = paramsMap.get("newDeployName");
String timeDayAge = paramsMap.get("timeDayAge");
List time_dayage = envDayagePeizhiMapper.selectList(new QueryWrapper().eq("time_dayage", timeDayAge));
for (EnvDayagePeizhi envDayagePeizhi : time_dayage) {
envDayagePeizhi.setDeployName(deployName);
envDayagePeizhiMapper.updateById(envDayagePeizhi);
}
List windDeploy = envFengPeizhiMapper.selectList(new QueryWrapper().eq("time_feng", timeDayAge));
for (EnvFengPeizhi envWindPeizhi : windDeploy) {
envWindPeizhi.setDeployName(deployName);
envFengPeizhiMapper.updateById(envWindPeizhi);
}
return Result.SUCCESS();
}
@Override
@Transactional
public Result apply(Map paramsMap) {
String deviceCode = paramsMap.get("deviceCode");
String timeDayAge = paramsMap.get("timeDayAge");
String farmId = paramsMap.get("farmId");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime time = LocalDateTime.parse(timeDayAge, formatter);
System.out.println(time);
EnvDevice envDevice = envDeviceMapper.selectOne(new QueryWrapper().eq("device_sort_code", deviceCode).eq("farm_id", farmId));
envDevice.setDisposeTime(time);
envDeviceMapper.updateById(envDevice);
List timeDayAge1 = envFengPeizhiMapper.selectList(new QueryWrapper().eq("time_feng",timeDayAge));
for (EnvFengPeizhi envFengPeizhi : timeDayAge1) {
String fansCtrl = envFengPeizhi.getFansCtrl();
Integer fanNum = envDeviceFanMapper.selectCount(new QueryWrapper().eq("device_code", deviceCode).eq("farm_id", farmId));
if (fanNum != fansCtrl.length()+1){
return new Result(ResultCode.FAIL,"设备风机数量不等于配置所需!");
}
}
//应用的变1
List envDayagePeizhis = envDayagePeizhiMapper.selectList(new QueryWrapper().eq("device_code", deviceCode).eq("time_dayage", time));
for (EnvDayagePeizhi envDayagePeizhi : envDayagePeizhis) {
envDayagePeizhi.setUsingStart(1);
envDayagePeizhiMapper.updateById(envDayagePeizhi);
}
List envFengPeizhis = envFengPeizhiMapper.selectList(new QueryWrapper().eq("device_code", deviceCode).eq("time_feng", time));
for (EnvFengPeizhi envFengPeizhi : envFengPeizhis) {
envFengPeizhi.setUsingStart(1);
envFengPeizhiMapper.updateById(envFengPeizhi);
}
//其他0
List envDayage = envDayagePeizhiMapper.selectList(new QueryWrapper().eq("device_code", deviceCode).ne("time_dayage", time));
for (EnvDayagePeizhi envDayagePeizhi : envDayage) {
envDayagePeizhi.setUsingStart(0);
envDayagePeizhiMapper.updateById(envDayagePeizhi);
}
List envFeng = envFengPeizhiMapper.selectList(new QueryWrapper().eq("device_code", deviceCode).ne("time_feng", time));
for (EnvFengPeizhi envFengPeizhi : envFeng) {
envFengPeizhi.setUsingStart(0);
envFengPeizhiMapper.updateById(envFengPeizhi);
}
return Result.SUCCESS();
}
@Override
@Transactional
public Result uplode(Map paramsMap) {
String timeDayAge = paramsMap.get("timeDayAge");
String deviceCode = paramsMap.get("deviceCode");
List envDayagePeizhis = envDayagePeizhiMapper.selectList(new QueryWrapper().eq("device_code", deviceCode).eq("time_dayage", timeDayAge));
for (EnvDayagePeizhi envDayagePeizhi : envDayagePeizhis) {
envDayagePeizhi.setOpenStatus(1);
envDayagePeizhiMapper.updateById(envDayagePeizhi);
}
List envFengPeizhis = envFengPeizhiMapper.selectList(new QueryWrapper().eq("device_code", deviceCode).eq("time_feng", timeDayAge));
for (EnvFengPeizhi envFengPeizhi : envFengPeizhis) {
envFengPeizhi.setOpenStatus(1);
envFengPeizhiMapper.updateById(envFengPeizhi);
}
return Result.SUCCESS();
}
@Override
public Result listDayAge(Map paramsMap) {
String deviceCode = paramsMap.get("deviceCode");
String timeDayAge = paramsMap.get("timeDayAge");
List envDayagePeizhis = envDayagePeizhiMapper.selectList(new QueryWrapper()
.eq("device_code", deviceCode)
.eq("time_dayage", timeDayAge)
.orderByAsc("level_dayage"));
return new Result(ResultCode.SUCCESS,envDayagePeizhis);
}
}