| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package com.ruoyi.data.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import com.ruoyi.common.utils.ModbusUtils;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.common.core.page.TableDataInfo;
- import com.ruoyi.common.core.domain.PageQuery;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.ruoyi.data.domain.TblSensorSbook;
- import lombok.RequiredArgsConstructor;
- import org.springframework.stereotype.Service;
- import com.ruoyi.data.domain.bo.TblDatapointBo;
- import com.ruoyi.data.domain.vo.TblDatapointVo;
- import com.ruoyi.data.domain.TblDatapoint;
- import com.ruoyi.data.mapper.TblDatapointMapper;
- import com.ruoyi.data.service.ITblDatapointService;
- import java.util.stream.Stream;
- import java.util.List;
- import java.util.Map;
- import java.util.Collection;
- /**
- * 点位数据Service业务层处理
- *
- * @author ruoyi
- * @date 2023-12-05
- */
- @RequiredArgsConstructor
- @Service
- public class TblDatapointServiceImpl implements ITblDatapointService {
- private final TblDatapointMapper baseMapper;
- private final ModbusUtils modbusUtils;
- /**
- * 查询点位数据
- */
- @Override
- public TblDatapointVo queryById(Long id){
- return baseMapper.selectVoById(id);
- }
- /**
- * 查询点位数据列表
- */
- @Override
- public TableDataInfo<TblDatapointVo> queryPageList(TblDatapointBo bo, PageQuery pageQuery) {
- LambdaQueryWrapper<TblDatapoint> lqw = buildQueryWrapper(bo);
- Page<TblDatapointVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
- return TableDataInfo.build(result);
- }
- /**
- * 查询点位数据列表
- */
- @Override
- public List<TblDatapointVo> queryList(TblDatapointBo bo) {
- LambdaQueryWrapper<TblDatapoint> lqw = buildQueryWrapper(bo);
- return baseMapper.selectVoList(lqw);
- }
- private LambdaQueryWrapper<TblDatapoint> buildQueryWrapper(TblDatapointBo bo) {
- Map<String, Object> params = bo.getParams();
- LambdaQueryWrapper<TblDatapoint> lqw = Wrappers.lambdaQuery();
- lqw.like(StringUtils.isNotBlank(bo.getName()), TblDatapoint::getName, bo.getName());
- lqw.eq(bo.getDeviceId() != null, TblDatapoint::getDeviceId, bo.getDeviceId());
- lqw.eq(StringUtils.isNotBlank(bo.getDataType()), TblDatapoint::getDataType, bo.getDataType());
- lqw.eq(StringUtils.isNotBlank(bo.getSlaveDeviceNumber()), TblDatapoint::getSlaveDeviceNumber, bo.getSlaveDeviceNumber());
- lqw.eq(bo.getAddr() != null, TblDatapoint::getAddr, bo.getAddr());
- lqw.eq(bo.getAddrOffset() != null, TblDatapoint::getAddrOffset, bo.getAddrOffset());
- lqw.eq(bo.getLen() != null, TblDatapoint::getLen, bo.getLen());
- lqw.eq(StringUtils.isNotBlank(bo.getValueType()), TblDatapoint::getValueType, bo.getValueType());
- return lqw;
- }
- /**
- * 新增点位数据
- */
- @Override
- public Boolean insertByBo(TblDatapointBo bo) {
- TblDatapoint add = BeanUtil.toBean(bo, TblDatapoint.class);
- validEntityBeforeSave(add);
- boolean flag = baseMapper.insert(add) > 0;
- if (flag) {
- bo.setId(add.getId());
- }
- return flag;
- }
- /**
- * 修改点位数据
- */
- @Override
- public Boolean updateByBo(TblDatapointBo bo) {
- TblDatapoint update = BeanUtil.toBean(bo, TblDatapoint.class);
- validEntityBeforeSave(update);
- return baseMapper.updateById(update) > 0;
- }
- /**
- * 保存前的数据校验
- */
- private void validEntityBeforeSave(TblDatapoint entity){
- //TODO 做一些数据校验,如唯一约束
- }
- /**
- * 批量删除点位数据
- */
- @Override
- public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
- if(isValid){
- //TODO 做一些业务上的校验,判断是否需要校验
- }
- return baseMapper.deleteBatchIds(ids) > 0;
- }
- @Override
- public void readPlcInt(TblDatapoint entity,String url,String uuid) {
- // String uuid = "test";
- String name = entity.getName();
- String str = "holding-register:"+(entity.getAddr()+entity.getAddrOffset())+":UINT["+entity.getLen()+"]";
- System.out.println(str);
- try {
- modbusUtils.plcRead(url,uuid,name,str);
- // modbusUtils.plcSynchronizationValue("modbus-tcp://127.0.0.1:502");
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- @Override
- public void writePlcInt(TblDatapoint entity,String value,String url,String uuid) {
- String name = entity.getName();
- String str = "holding-register:"+(entity.getAddr()+entity.getAddrOffset())+":UINT["+entity.getLen()+"]";
- String[] valueArrary = value.split(",");
- Integer[] arr2 = Stream.of(valueArrary).mapToInt(Integer::parseInt).boxed().toArray(Integer[] ::new);
- // for(int i=0;i<valueArrary.length;i++){
- //
- // }
- System.out.println(str);
- try {
- modbusUtils.plcWrite(url,uuid,name,str,arr2);
- // modbusUtils.plcSynchronizationValue("modbus-tcp://127.0.0.1:502");
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- }
|