소스 검색

添加人员设备绑定状态修改逻辑

fllmoyu 5 년 전
부모
커밋
6076570369

+ 2 - 1
common/src/main/java/com/jpsoft/smart/modules/base/service/PersonDeviceRelationService.java

@@ -27,7 +27,8 @@ public interface PersonDeviceRelationService {
 
 	List<PersonDeviceRelation> findByIsBoundAndUpdateTime(Date updateTime, Integer limit);
 
-	void updateIsBound(Long personInfoId, String deviceInfoId);
+	void updateIsBound(Long personInfoId, String deviceInfoId,Boolean isBound);
+
 
 	//List<PersonDeviceRelation> findByPersonId(Long id);
 }

+ 5 - 4
common/src/main/java/com/jpsoft/smart/modules/base/service/impl/PersonDeviceRelationServiceImpl.java

@@ -128,14 +128,15 @@ public class PersonDeviceRelationServiceImpl implements PersonDeviceRelationServ
 	}
 
 	@Override
-	public void updateIsBound(Long personInfoId, String deviceInfoId) {
+	public void updateIsBound(Long personInfoId, String deviceInfoId,Boolean isBound) {
 		PersonDeviceRelation personDeviceRelation =  personDeviceRelationDAO.findByDeviceIdAndPersonId(deviceInfoId,personInfoId);
 		if (personDeviceRelation != null){
-			if (!personDeviceRelation.getIsBound() || personDeviceRelation.getIsBound() == null){
-				personDeviceRelation.setIsBound(true);
+				personDeviceRelation.setIsBound(isBound);
 				personDeviceRelation.setUpdateTime(new Date());
 				personDeviceRelationDAO.update(personDeviceRelation);
-			}
+
 		}
 	}
+
+
 }

+ 22 - 3
common/src/main/java/com/jpsoft/smart/modules/lapi/service/impl/LapiServiceImpl.java

@@ -182,7 +182,7 @@ public class LapiServiceImpl implements ILapiService {
                         lapiResultList.add(lapiResult);
 
                         try{
-                            personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId());
+                            personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId(),true);
                         }catch (Exception e){
                             log.error(e.getMessage(),e);
                         }
@@ -191,6 +191,11 @@ public class LapiServiceImpl implements ILapiService {
                         lapiResult.setSuccess(false);
                         lapiResult.setData(dataMap);
                         lapiResultList.add(lapiResult);
+                        try{
+                            personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId(),false);
+                        }catch (Exception e){
+                            log.error(e.getMessage(),e);
+                        }
                     }
 
                 }
@@ -205,6 +210,7 @@ public class LapiServiceImpl implements ILapiService {
                 lapiResult.setMsg(e.getMessage().contains("timed out") ? "设备连接超时" : e.getMessage());
                 lapiResult.setData(dataMap);
                 lapiResultList.add(lapiResult);
+                personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId(),null);
             }
         }
 
@@ -302,7 +308,7 @@ public class LapiServiceImpl implements ILapiService {
                         lapiResult.setData(dataMap);
                         lapiResultList.add(lapiResult);
                         try{
-                            personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId());
+                            personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId(),true);
                         }catch (Exception e){
                             log.error(e.getMessage(),e);
                         }
@@ -311,6 +317,11 @@ public class LapiServiceImpl implements ILapiService {
                         lapiResult.setSuccess(false);
                         lapiResult.setData(dataMap);
                         lapiResultList.add(lapiResult);
+                        try{
+                            personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId(),false);
+                        }catch (Exception e){
+                            log.error(e.getMessage(),e);
+                        }
                     }
 
 
@@ -328,6 +339,7 @@ public class LapiServiceImpl implements ILapiService {
                 lapiResult.setMsg(e.getMessage().contains("timed out") ? "设备连接超时" : e.getMessage());
                 lapiResult.setData(dataMap);
                 lapiResultList.add(lapiResult);
+                personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId(),null);
             }
 
 
@@ -790,15 +802,22 @@ public class LapiServiceImpl implements ILapiService {
             if (num > 0) {
 
                 try{
-                    personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId());
+                    personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId(),true);
                 }catch (Exception e){
                     log.error(e.getMessage(),e);
                 }
 
                 return true;
+            }else {
+                try{
+                    personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId(),false);
+                }catch (Exception e){
+                    log.error(e.getMessage(),e);
+                }
             }
         } catch (Exception e) {
 
+            personDeviceRelationService.updateIsBound(personInfo.getId(),deviceInfo.getId(),null);
             return false;
         }