package com.iailab.module.data.channel.modbus.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.common.util.object.ConvertUtils; import com.iailab.module.data.channel.modbus.dao.ChannelModBusTagDao; import com.iailab.module.data.channel.modbus.dto.ChannelModbusTagDTO; import com.iailab.module.data.channel.modbus.entity.ChannelModBusTagEntity; import com.iailab.module.data.channel.modbus.service.ChannelModbusTagService; import com.iailab.module.data.channel.modbus.vo.ModBusTagPageReqVO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** * @author lirm * @Description * @createTime 2024年08月27日 */ @Slf4j @Service public class ChannelModbusTagServiceImpl extends ServiceImpl implements ChannelModbusTagService { @Resource private ChannelModBusTagDao channelModBusTagDao; @Value("${iems.upload-dir}") private String uploadDir; @Override public PageResult queryPage(ModBusTagPageReqVO reqVO) { return channelModBusTagDao.selectPage(reqVO); } @Override public ChannelModBusTagEntity info(String id) { return channelModBusTagDao.selectById(id); } @Override public void add(ChannelModBusTagEntity channelModBusTagEntity) { channelModBusTagDao.insert(channelModBusTagEntity); } @Override public void update(ChannelModBusTagEntity channelModBusTagEntity) { channelModBusTagDao.updateById(channelModBusTagEntity); } @Override public void delete(String id) { channelModBusTagDao.deleteById(id); } @Override public List getByDevice(String device) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("device", device); queryWrapper.orderByDesc("create_time"); return channelModBusTagDao.selectList(queryWrapper); } @Override public List selectAll() { List entityList = baseMapper.selectList( null ); return ConvertUtils.sourceToTarget(entityList, ChannelModbusTagDTO.class); } @Override public List listByIds(List ids) { return baseMapper.selectList(new QueryWrapper().in("id", ids)); } @Override public void deleteByDeviceName(String name) { baseMapper.delete(new QueryWrapper().eq("device", name)); } // /** // * 导入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 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; // } // } }