| 
					
				 | 
			
			
				@@ -8,6 +8,7 @@ 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.conditions.update.LambdaUpdateWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.metadata.IPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.StringUtils; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -18,19 +19,24 @@ import com.usky.common.core.exception.BusinessException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.common.core.util.BeanMapperUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.common.core.util.UUIDUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.common.mybatis.core.AbstractCrudService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.usky.common.security.utils.SecurityUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.iot.domain.DmpDeviceInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.usky.iot.domain.DmpDeviceStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.iot.mapper.DmpDeviceInfoMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.iot.service.DmpDeviceInfoService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.usky.iot.service.DmpDeviceStatusService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.iot.service.vo.DmpDeviceExcelVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.iot.service.vo.DmpDeviceExportVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.usky.iot.service.vo.DmpDeviceInfoRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.poi.ss.usermodel.Workbook; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.multipart.MultipartFile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.servlet.ServletOutputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.servlet.http.HttpServletResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.time.LocalDateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -44,23 +50,47 @@ import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoMapper, DmpDeviceInfo> implements DmpDeviceInfoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private DmpDeviceStatusService dmpDeviceStatusService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public boolean add(DmpDeviceInfo dmpDeviceInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         dmpDeviceInfo.setDeviceId(UUIDUtils.uuid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dmpDeviceInfo.setCreatedBy(SecurityUtils.getUsername()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dmpDeviceInfo.setCreatedTime(LocalDateTime.now()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (checkNameUnique(dmpDeviceInfo)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new BusinessException("新增设备信息'" + dmpDeviceInfo.getDeviceName() + "'失败,设备信息已存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //在设备状态表中新增一条设备状态记录,业务状态置为 1 待激活 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        DmpDeviceStatus dmpDeviceStatus = new DmpDeviceStatus(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dmpDeviceStatus.setDeviceId(dmpDeviceInfo.getDeviceId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dmpDeviceStatus.setDeviceCode(dmpDeviceInfo.getDeviceCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dmpDeviceStatus.setProductId(dmpDeviceInfo.getProductId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dmpDeviceStatus.setDeviceStatus(4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dmpDeviceStatus.setServiceStatus(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dmpDeviceStatus.setLastOfflineTime(LocalDateTime.now()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dmpDeviceStatusService.save(dmpDeviceStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return this.save(dmpDeviceInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void update(DmpDeviceInfo dmpDeviceInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        dmpDeviceInfo.setUpdatedTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (checkNameUnique(dmpDeviceInfo)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            throw new BusinessException("修改设备信息'" + dmpDeviceInfo.getDeviceName() + "'失败,设备信息已存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dmpDeviceInfo.setUpdatedBy(SecurityUtils.getUsername()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dmpDeviceInfo.setUpdatedTime(LocalDateTime.now()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        if (checkNameUnique(dmpDeviceInfo)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            throw new BusinessException("修改设备信息'" + dmpDeviceInfo.getDeviceName() + "'失败,设备信息已存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.updateById(dmpDeviceInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //更新设备状态表对应设备状态记录数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LambdaQueryWrapper<DmpDeviceStatus> queryWrapper = Wrappers.lambdaQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryWrapper.eq(DmpDeviceStatus::getDeviceId,dmpDeviceInfo.getDeviceId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        DmpDeviceStatus one = dmpDeviceStatusService.getOne(queryWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(null != one){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            one.setServiceStatus(dmpDeviceInfo.getServiceStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dmpDeviceStatusService.updateById(one); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 |