package com.wwby.worker.ammeter.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wwby.common.dto.Device;
import com.wwby.common.dto.MeterRead;
import com.wwby.common.exception.BusinessException;
import com.wwby.common.mapper.DeviceMapper;
import com.wwby.common.model.request.DeviceReq;
import com.wwby.common.model.result.DeviceResult;
import com.wwby.common.model.result.ReadAmmeterDataResult;
import com.wwby.common.model.result.StateResult;
import com.wwby.common.pojo.AmmeterDegreeJsonEntity;
import com.wwby.common.utils.PointUtil;
import com.wwby.worker.ammeter.service.DeviceService;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* @ProjectName: wwby-devices
* @Package: com.wwby.common.service.impl
* @ClassName: DeviceServiceImpl
* @Author: wangqw
* @Description: 设备服务实现类
* @Date: 2021/7/23 10:46
* @Version: 1.0
*/
@Service
public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> implements DeviceService {
@Override
public DeviceResult getDevice(DeviceReq req) {
DeviceResult result = new DeviceResult();
LambdaQueryWrapper<Device> queryWrapper = new QueryWrapper<Device>().lambda();
queryWrapper.isNull(Device::getDeletedAt);
queryWrapper.eq(Device::getDeviceNum, req.getDeviceNum());
result.setDevice(getOne(queryWrapper));
return result;
}
@Override
public ReadAmmeterDataResult getDeviceById(String id) {
LambdaQueryWrapper<Device> queryWrapper = new QueryWrapper<Device>().lambda();
queryWrapper.isNull(Device::getDeletedAt);
queryWrapper.eq(Device::getId, id);
Device device = getOne(queryWrapper);
if (device == null) {
throw new BusinessException("不存在:" + id);
}
BigDecimal bd = new BigDecimal("10000");
ReadAmmeterDataResult result = new ReadAmmeterDataResult();
result.setAmmeterId(id);
AmmeterDegreeJsonEntity jsonEntity = new AmmeterDegreeJsonEntity();
SimpleDateFormat format = new SimpleDateFormat("yyMMddHHmm");
jsonEntity.setA1(format.format(device.getReadingTime())); // 抄表时间
jsonEntity.setA2(new BigDecimal(device.getCurCuspValue()).divide(bd).toString()); // 尖
jsonEntity.setA3(new BigDecimal(device.getCurPeakValue()).divide(bd).toString()); // 峰
jsonEntity.setA4(new BigDecimal(device.getCurFlatValue()).divide(bd).toString()); // 平
jsonEntity.setA5(new BigDecimal(device.getCurValleyValue()).divide(bd).toString()); // 谷
jsonEntity.setA6(device.getStatus().toString()); // 开关状态
jsonEntity.setA11(device.getRealPower().toString()); // 实时功率
jsonEntity.setA26(device.getRealEle().toString()); // 实时电流
jsonEntity.setA35(new BigDecimal(device.getCurStandardValue()).divide(bd).toString()); // 总
result.setAmmeterDegree(jsonEntity);
return result;
}
@Override
public StateResult<Boolean> delDevice(DeviceReq req) {
LambdaQueryWrapper<Device> queryWrapper = new QueryWrapper<Device>().lambda();
queryWrapper.isNull(Device::getDeletedAt);
queryWrapper.eq(Device::getDeviceNum, req.getDeviceNum());
Device device = getOne(queryWrapper);
if (device == null) {
throw new BusinessException("不存在:" + req.getDeviceNum());
}
LambdaUpdateWrapper<Device> updateWrapper = new UpdateWrapper<Device>().lambda();
updateWrapper.eq(Device::getDeviceNum, req.getDeviceNum());
updateWrapper.set(Device::getDeletedAt, new Date());
boolean bool = update(updateWrapper);
return new StateResult(bool);
}
@Override
public List<Device> getListByConcentrator(String concentratorId) {
LambdaQueryWrapper<Device> queryWrapper = new QueryWrapper<Device>().lambda();
queryWrapper.eq(Device::getConcentratorId, concentratorId);
queryWrapper.isNull(Device::getDeletedAt);
return list(queryWrapper);
}
@Override
public boolean updateByConcentrator(MeterRead meterRead) {
LambdaUpdateWrapper<Device> updateWrapper = new UpdateWrapper<Device>().lambda();
updateWrapper.set(Device::getReadingTime, meterRead.getCreatedAt());
updateWrapper.set(Device::getCurStandardValue, meterRead.getTotal());
updateWrapper.set(Device::getCurCuspValue, meterRead.getRate1());
updateWrapper.set(Device::getCurPeakValue, meterRead.getRate2());
updateWrapper.set(Device::getCurFlatValue, meterRead.getRate3());
updateWrapper.set(Device::getCurValleyValue, meterRead.getRate4());
updateWrapper.eq(Device::getConcentrator, meterRead.getConcentrator());
int da1 = Integer.parseInt(meterRead.getDa1(), 16);
int da2 = Integer.parseInt(meterRead.getDa2(), 16);
updateWrapper.eq(Device::getPointId, PointUtil.get(da1, da2));
updateWrapper.isNull(Device::getDeletedAt);
return update(updateWrapper);
}
@Override
public boolean updateByConcentratorPreDegree(MeterRead meterRead) {
LambdaUpdateWrapper<Device> updateWrapper = new UpdateWrapper<Device>().lambda();
updateWrapper.set(Device::getReadingTime, meterRead.getCreatedAt());
updateWrapper.set(Device::getPreStandardValue, meterRead.getTotal());
updateWrapper.set(Device::getPreCuspValue, meterRead.getRate1());
updateWrapper.set(Device::getPrePeakValue, meterRead.getRate2());
updateWrapper.set(Device::getPreFlatValue, meterRead.getRate3());
updateWrapper.set(Device::getPreValleyValue, meterRead.getRate4());
updateWrapper.eq(Device::getConcentrator, meterRead.getConcentrator());
int da1 = Integer.parseInt(meterRead.getDa1(), 16);
int da2 = Integer.parseInt(meterRead.getDa2(), 16);
updateWrapper.eq(Device::getPointId, PointUtil.get(da1, da2));
updateWrapper.isNull(Device::getDeletedAt);
return update(updateWrapper);
}
@Override
public Device getDeviceByAmmeterId(String ammeterId) {
LambdaQueryWrapper<Device> queryWrapper = new QueryWrapper<Device>().lambda();
queryWrapper.eq(Device::getDeviceNum, ammeterId);
queryWrapper.isNull(Device::getDeletedAt);
Device device = getOne(queryWrapper);
if (device == null) {
throw new BusinessException("不存在:" + ammeterId);
}
return device;
}
@Override
public Device getById(String id) {
LambdaQueryWrapper<Device> queryWrapper = new QueryWrapper<Device>().lambda();
queryWrapper.eq(Device::getId, id);
queryWrapper.isNull(Device::getDeletedAt);
Device device = getOne(queryWrapper);
if (device == null) {
throw new BusinessException("不存在:" + id);
}
return device;
}
@Override
public boolean updateRealEleByAmmeter(String concentrator, String ammeter, String data) {
LambdaUpdateWrapper<Device> updateWrapper = new UpdateWrapper<Device>().lambda();
updateWrapper.set(Device::getRealEle, Double.parseDouble(data)/1000);
updateWrapper.eq(Device::getConcentrator, concentrator);
updateWrapper.eq(Device::getDeviceNum, ammeter);
updateWrapper.isNull(Device::getDeletedAt);
return update(updateWrapper);
}
@Override
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
电表水表远程抄表源代码.rar (86个子文件)
wwby-worker-ammeter
src
test
java
com
wwby
worker
ammeter
WorkerAmmeterApplicationTests.java 231B
main
resources
mapper
MeterReadMapper.xml 233B
DeviceMapper.xml 230B
CompanyMapper.xml 231B
BindAmmeterMapper.xml 235B
OpenMapper.xml 228B
CloseMapper.xml 229B
ConcentratorMapper.xml 236B
ApiUserMapper.xml 231B
java
com
wwby
worker
ammeter
interceptor
AuthInterceptor.java 1KB
WorkerAmmeterApplication.java 739B
config
WebConfig.java 1KB
aspect
WebLogAspect.java 3KB
cache
CloseToConcentratorCache.java 148B
ClientIdToConcentratorCache.java 137B
ClientIdCache.java 123B
CloseToAmmeterCache.java 273B
MeterToReadCache.java 267B
OpenToConcentratorCache.java 147B
CCache.java 280B
BindToAmmeterCache.java 271B
MeterToConcentratorCache.java 148B
BindToConcentratorCache.java 147B
impl
CloseToConcentratorCacheImpl.java 1KB
ClientIdToConcentratorCacheImpl.java 1KB
BindToConcentratorCacheImpl.java 1KB
MeterToReadCacheImpl.java 2KB
ClientIdCacheImpl.java 1KB
MeterToConcentratorCacheImpl.java 1KB
OpenToConcentratorCacheImpl.java 1KB
CloseToAmmeterCacheImpl.java 2KB
BindToAmmeterCacheImpl.java 2KB
OpenToAmmeterCacheImpl.java 2KB
OpenToAmmeterCache.java 271B
filter
MyDataOperateFilter.java 883B
component
Receiver.java 2KB
adapter
MeterReadAdapter.java 2KB
CommonQueueAdapter.java 2KB
controller
CController.java 87B
ConcentratorController.java 1KB
MeterReadController.java 2KB
BindAmmeterController.java 2KB
OpenController.java 2KB
DataForwardController.java 1KB
RequestOneController.java 2KB
CloseController.java 2KB
ApiUserController.java 1KB
DeviceController.java 2KB
CompanyController.java 1KB
RequestTwoController.java 2KB
service
MeterReadService.java 1KB
CompanyService.java 579B
FlowService.java 652B
PowerAndOffStateService.java 784B
ConcentratorService.java 813B
ApiUserService.java 629B
PreDegreeService.java 680B
MeterReadLogService.java 546B
CloseService.java 1KB
OnOrOffAmmeterService.java 528B
BindAmmeterService.java 1018B
MonthFreezeService.java 785B
OpenService.java 999B
VoltageService.java 658B
TemperatureService.java 691B
PowerService.java 654B
impl
ElectricMeterReadServiceImpl.java 6KB
MeterReadServiceImpl.java 10KB
PowerServiceImpl.java 4KB
ApiUserServiceImpl.java 3KB
CloseServiceImpl.java 8KB
CompanyServiceImpl.java 1KB
PreDegreeServiceImpl.java 5KB
PowerAndOffStateServiceImpl.java 7KB
MeterReadLogServiceImpl.java 1KB
MonthFreezeServiceImpl.java 6KB
OpenServiceImpl.java 7KB
FlowServiceImpl.java 4KB
DeviceServiceImpl.java 10KB
OnOrOffAmmeterServiceImpl.java 2KB
TemperatureServiceImpl.java 4KB
BindAmmeterServiceImpl.java 6KB
VoltageServiceImpl.java 4KB
ConcentratorServiceImpl.java 2KB
DeviceService.java 3KB
schedule
wwby-worker-ammeter.iml 16KB
共 86 条
- 1
智能家居new
- 粉丝: 72
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论6