package com.iailab.module.data.channel.modbus.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.iailab.module.data.common.utils.PageUtils;
|
import com.iailab.module.data.common.utils.Query;
|
import com.iailab.framework.common.util.object.ConvertUtils;
|
import com.iailab.module.data.channel.modbus.dto.ChannelModbusTagDTO;
|
import com.iailab.module.data.channel.modbus.dao.ChannelModBusTagDao;
|
import com.iailab.module.data.channel.modbus.entity.ChannelModBusTagEntity;
|
import com.iailab.module.data.channel.modbus.service.ChannelModbusTagService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author DongYukun
|
* @Description
|
* @createTime 2023年05月08日 15:04:00
|
*/
|
@Slf4j
|
@Service
|
public class ChannelModbusTagServiceImpl extends ServiceImpl<ChannelModBusTagDao, ChannelModBusTagEntity> implements ChannelModbusTagService {
|
@Resource
|
private ChannelModBusTagDao channelModBusTagDao;
|
|
@Value("${iems.upload-dir}")
|
private String uploadDir;
|
|
/**
|
* 分页查询tag
|
*
|
* @param params
|
*/
|
@Override
|
public PageUtils queryPage(Map<String, Object> params) {
|
String tagName = (String) params.get("tagName");
|
String address = (String) params.get("address");
|
String tagDesc = (String) params.get("tagDesc");
|
String device = (String) params.get("device");
|
|
IPage<ChannelModBusTagEntity> page = this.page(
|
new Query<ChannelModBusTagEntity>().getPage(params),
|
new QueryWrapper<ChannelModBusTagEntity>()
|
.like(StringUtils.isNotBlank(tagName), "tag_name", tagName)
|
.like(StringUtils.isNotBlank(address), "address", address)
|
.like(StringUtils.isNotBlank(tagDesc), "tag_desc", tagDesc)
|
.eq(StringUtils.isNotBlank(device), "device", device)
|
.orderByDesc("create_time")
|
);
|
return new PageUtils(page);
|
}
|
|
/**
|
* 查询tag详情
|
*
|
* @param id
|
*/
|
@Override
|
public ChannelModBusTagEntity info(String id) {
|
return channelModBusTagDao.selectById(id);
|
}
|
|
/**
|
* 添加tag
|
*
|
* @param channelModBusTagEntity
|
*/
|
@Override
|
public void add(ChannelModBusTagEntity channelModBusTagEntity) {
|
channelModBusTagDao.insert(channelModBusTagEntity);
|
}
|
|
/**
|
* 修改tag
|
*
|
* @param channelModBusTagEntity
|
*/
|
@Override
|
public void update(ChannelModBusTagEntity channelModBusTagEntity) {
|
channelModBusTagDao.updateById(channelModBusTagEntity);
|
}
|
|
/**
|
* 删除tag
|
*
|
* @param id
|
*/
|
@Override
|
public void delete(String id) {
|
channelModBusTagDao.deleteById(id);
|
}
|
|
@Override
|
public List<ChannelModBusTagEntity> getByDevice(String device) {
|
QueryWrapper<ChannelModBusTagEntity> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("device", device);
|
queryWrapper.orderByDesc("create_time");
|
return channelModBusTagDao.selectList(queryWrapper);
|
}
|
|
/**
|
* 查询全部
|
*
|
* @return
|
*/
|
@Override
|
public List<ChannelModbusTagDTO> selectAll() {
|
List<ChannelModBusTagEntity> entityList = baseMapper.selectList(
|
null
|
);
|
return ConvertUtils.sourceToTarget(entityList, ChannelModbusTagDTO.class);
|
}
|
|
/**
|
* listByIds
|
*
|
* @param ids
|
* @return
|
*/
|
@Override
|
public List<ChannelModBusTagEntity> listByIds(List<String> ids) {
|
return baseMapper.selectList(new QueryWrapper<ChannelModBusTagEntity>().in("id", ids));
|
}
|
|
/**
|
* deleteByDeviceName
|
*
|
* @param name
|
*/
|
@Override
|
public void deleteByDeviceName(String name) {
|
baseMapper.delete(new QueryWrapper<ChannelModBusTagEntity>().eq("device", name));
|
}
|
|
//TODO 使用easyExcel重写
|
// /**
|
// * 导入Tag
|
// *
|
// * @param device
|
// * @param file
|
// * @throws Exception
|
// */
|
// @Override
|
// @Transactional(rollbackFor = Exception.class)
|
// public void importTag(String device, MultipartFile file) throws Exception {
|
// try {
|
// String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
|
// String fileName = UUID.randomUUID().toString() + suffix;
|
// String path = uploadDir + fileName;
|
// file.transferTo(new File(path));
|
//
|
// XSSFWorkbook hssfWorkbook = new XSSFWorkbook(new FileInputStream(path));
|
// XSSFSheet sheet = hssfWorkbook.getSheetAt(0);
|
// int lastRowNum = sheet.getLastRowNum();
|
// log.info("最后一行:" + lastRowNum);
|
// int lastCellNum = 6;
|
// List<ChannelModBusTagEntity> dangerList = new ArrayList<>();
|
// for (int i = 1; i <= lastRowNum; i++) {
|
// XSSFRow row = sheet.getRow(i);
|
// for (int j = row.getFirstCellNum(); j < lastCellNum; j++) {
|
// row.getCell(j).setCellType(CellType.STRING);
|
// }
|
// ChannelModBusTagEntity tagEntity = new ChannelModBusTagEntity();
|
// tagEntity.setId(UUID.randomUUID().toString());
|
// tagEntity.setTagName(row.getCell(1).getStringCellValue());
|
// tagEntity.setDataType(row.getCell(2).getStringCellValue());
|
// tagEntity.setEnabled(true);
|
// tagEntity.setFormat("");
|
// tagEntity.setDevice(device);
|
// tagEntity.setSamplingRate(0);
|
// row.getCell(4).setCellType(CellType.STRING);
|
// System.out.println(row.getCell(3).getStringCellValue());
|
// if(row.getCell(3).getStringCellValue().equals("1")){
|
// tagEntity.setAddress(String.format("1%04d",Integer.parseInt(row.getCell(4).getStringCellValue())));
|
// }else if(row.getCell(3).getStringCellValue().equals("3")){
|
// tagEntity.setAddress(String.format("4%04d",Integer.parseInt(row.getCell(4).getStringCellValue())));
|
// }
|
// tagEntity.setTagDesc(row.getCell(5).getStringCellValue());
|
// dangerList.add(tagEntity);
|
// }
|
// if (CollectionUtils.isEmpty(dangerList)) {
|
// return;
|
// }
|
// //getBaseMapper().insertList(dangerList);
|
// dangerList.forEach(item -> {
|
// try {
|
// getBaseMapper().insert(item);
|
// } catch (Exception ex) {
|
// log.warn("插入异常:" + item.getTagName());
|
// }
|
// });
|
// } catch (Exception ex) {
|
// ex.printStackTrace();
|
// log.warn("导入失败!");
|
// throw ex;
|
// }
|
// }
|
|
}
|