|
@@ -1,19 +1,26 @@
|
|
|
package com.usky.iot.service.impl;
|
|
|
|
|
|
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
|
|
+import cn.afterturn.easypoi.excel.entity.ImportParams;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.usky.common.core.bean.CommonPage;
|
|
|
import com.usky.common.core.exception.BusinessException;
|
|
|
+import com.usky.common.core.util.BeanMapperUtils;
|
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
import com.usky.iot.domain.DmpDeviceInfo;
|
|
|
import com.usky.iot.mapper.DmpDeviceInfoMapper;
|
|
|
import com.usky.iot.service.DmpDeviceInfoService;
|
|
|
+import com.usky.iot.service.vo.DmpDeviceExportVO;
|
|
|
import com.usky.iot.service.vo.DmpDeviceInfoRequest;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -90,4 +97,46 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
|
|
|
.eq(DmpDeviceInfo::getDeleteFlag,0);
|
|
|
return this.count(lambdaQuery);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addByFile(Integer productId, MultipartFile multipartFiles) {
|
|
|
+ List<DmpDeviceInfo> deviceByFile = getDeviceByFile(productId, multipartFiles);
|
|
|
+ this.saveBatch(deviceByFile);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取表格数据
|
|
|
+ * @param multipartFile
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<DmpDeviceInfo> getDeviceByFile(Integer productId,MultipartFile multipartFile){
|
|
|
+ ImportParams importParams = new ImportParams();
|
|
|
+ importParams.setHeadRows(1);
|
|
|
+ try {
|
|
|
+ List<DmpDeviceExportVO> dmpDeviceExportVOS = ExcelImportUtil.importExcel(
|
|
|
+ multipartFile.getInputStream(),
|
|
|
+ DmpDeviceExportVO.class,
|
|
|
+ importParams
|
|
|
+ );
|
|
|
+ if (CollectionUtils.isEmpty(dmpDeviceExportVOS)){
|
|
|
+ throw new BusinessException("表格数据为空");
|
|
|
+ }
|
|
|
+ List<DmpDeviceInfo> deviceInfos = BeanMapperUtils.mapList(dmpDeviceExportVOS, DmpDeviceExportVO.class, DmpDeviceInfo.class);
|
|
|
+ long count = deviceInfos.stream()
|
|
|
+ .peek(device -> device.setProductId(productId))
|
|
|
+ .filter(device -> StringUtils.isNotBlank(device.getDeviceName()) ||
|
|
|
+ StringUtils.isNotBlank(device.getDeviceName())
|
|
|
+ || StringUtils.isNotBlank(device.getDeviceCode())
|
|
|
+ || StringUtils.isNotBlank(device.getSimCode())
|
|
|
+ || null != device.getSubscribeFlag()
|
|
|
+ ).count();
|
|
|
+ if (count > 0){
|
|
|
+ throw new BusinessException("表格字段不能为空");
|
|
|
+ }
|
|
|
+ return deviceInfos;
|
|
|
+ }catch (Exception e){
|
|
|
+ throw new BusinessException("解析表格异常,检查表格格式"+e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|