From a7fef2846505b08e0711345b17902e7381612d23 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期二, 25 三月 2025 14:02:16 +0800
Subject: [PATCH] 查询锁的蓝牙开启时间段记录添加area_path

---
 src/main/java/com/whyc/service/LockInfService.java |  215 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 189 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/whyc/service/LockInfService.java b/src/main/java/com/whyc/service/LockInfService.java
index ad86a43..c31c544 100644
--- a/src/main/java/com/whyc/service/LockInfService.java
+++ b/src/main/java/com/whyc/service/LockInfService.java
@@ -4,68 +4,231 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.sun.corba.se.impl.protocol.giopmsgheaders.TargetAddress;
 import com.whyc.dto.Response;
+import com.whyc.mapper.AuthiruzeInfMapper;
 import com.whyc.mapper.LockInfMapper;
+import com.whyc.pojo.db_area.AreaUser;
+import com.whyc.pojo.db_area.AuthiruzeInf;
 import com.whyc.pojo.db_area.LockInf;
+import com.whyc.pojo.db_user.UserInf;
+import com.whyc.util.ActionUtil;
+import com.whyc.util.PageInfoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class LockInfService {
     @Autowired(required = false)
     private LockInfMapper mapper;
+
+    @Autowired(required = false)
+    private AreaInfService areaInfService;
+
+    @Autowired(required = false)
+    private AuthiruzeInfMapper authMapper;
+
+    @Autowired
+    private ProcessSurveyService processSurveyService;
     //娣诲姞閿�
-    public Response addLock(Integer areaId, String lockName, String lockType,Integer num) {
+    public Response addLock(Integer num, LockInf lockInf) {
         if(num==null){
             num=1;
         }
         List list=new ArrayList();
+        //鑾峰彇褰撳墠鏈�澶х殑閿�
+        int lockId=getMaxLockId()+1;
         for(int i=0;i<num;i++){
             LockInf linf=new LockInf();
-            linf.setAreaId(areaId);
-            linf.setLockName(lockName);
-            linf.setLockType(lockType);
+            linf.setLockId(lockId+i);
+            linf.setAreaId(lockInf.getAreaId());
+            if(num>1){
+                linf.setLockName(lockInf.getLockName()+(i+1));
+            }else{
+                linf.setLockName(lockInf.getLockName());
+            }
+            linf.setLockType(lockInf.getLockType());
+            linf.setLockState(-1);
+            if(lockInf.getLockAddress()!=null){
+                linf.setLockAddress(lockInf.getLockAddress());
+            }else{
+                linf.setLockAddress("");
+            }
+            linf.setLockPath("");
+            linf.setLatitude(lockInf.getLatitude());
+            linf.setLongitude(lockInf.getLongitude());
+            linf.setLockMac("FFFF");
+            linf.setScreenBoxType(lockInf.getScreenBoxType());
+            linf.setScreenBoxProduct(lockInf.getScreenBoxProduct());
+            linf.setScreenFlag(lockInf.getScreenFlag());
+            linf.setLockOnline(0);
+            linf.setLastUpdateTime(new Date());
+            linf.setModel(0);
+            linf.setLockOpenCount(0);
             list.add(linf);
         }
         mapper.insertBatchSomeColumn(list);
+        processSurveyService.setUpThreadRestart();
         return new Response().set(1,true);
+    }
+    //鑾峰彇褰撳墠鏈�澶х殑閿�
+    private int getMaxLockId() {
+        int keyId=mapper.getMaxLockId();
+        return keyId;
     }
 
     //鏌ヨ鎵�鏈夐攣淇℃伅
-    public Response getAllLockInf(String lockName, String lockType, Integer lockState, int pageNum, int pageSize) {
+    public Response getAllLockInf(String lockName, Integer lockType, Integer lockState,Integer areaId, int pageNum, int pageSize) {
+        List<Integer> areaList=new ArrayList();
+        areaList.add(areaId);
+        areaInfService.getAllAreaId(areaId,areaList);
         PageHelper.startPage(pageNum,pageSize);
-        QueryWrapper wrapper=new QueryWrapper();
-        if(lockName!=null){
-            wrapper.like("lock_name",lockName);
-        }
-        if(lockType!=null){
-            wrapper.eq("lock_type",lockType);
-        }
-        if(lockState!=null){
-            wrapper.eq("lock_state",lockState);
-        }
-        List<LockInf> list=mapper.selectList(wrapper);
+        List<LockInf> list=mapper.getAllLockInf(lockName,lockType,lockState,areaList);
         PageInfo pageInfo=new PageInfo(list);
         return new Response().setII(1,list!=null,pageInfo,"鏌ヨ鎵�鏈夐攣淇℃伅");
     }
     //鍒犻櫎閿�
-    public Response delLock(Integer id) {
+    public Response delLock(Integer lockId) {
         UpdateWrapper wrapper=new UpdateWrapper();
-        wrapper.eq("id",id);
+        wrapper.eq("lock_id",lockId);
         mapper.delete(wrapper);
         return new Response().set(1,true);
     }
    //淇敼閿�
-    public Response updateLock(Integer id, Integer areaId, String lockName, String lockType) {
+    public Response updateLock(LockInf lockInf) {
         UpdateWrapper wrapper=new UpdateWrapper();
-        wrapper.eq("id",id);
-        wrapper.set("area_id",areaId);
-        wrapper.set("lock_name",lockName);
-        wrapper.set("lock_type",lockType);
-        mapper.update(null,wrapper);
+        wrapper.eq("lock_id",lockInf.getLockId());
+        if(lockInf.getAreaId()!=null){
+            wrapper.set("area_id",lockInf.getAreaId());
+        }
+        if(lockInf.getLockName()!=null){
+            wrapper.set("lock_name",lockInf.getLockName());
+        }
+        if(lockInf.getLockType()!=null){
+            wrapper.set("lock_type",lockInf.getLockType());
+        }
+        if(lockInf.getScreenBoxType()!=null){
+            wrapper.set("screen_box_type",lockInf.getScreenBoxType());
+        }
+        if(lockInf.getScreenBoxProduct()!=null){
+            wrapper.set("screen_box_product",lockInf.getScreenBoxProduct());
+        }
+        if(lockInf.getScreenFlag()!=null){
+            wrapper.set("screen_flag",lockInf.getScreenFlag());
+        }
+        if(lockInf.getLongitude()!=null){
+            wrapper.set("longitude",lockInf.getLongitude());
+        }
+        if(lockInf.getLatitude()!=null){
+            wrapper.set("latitude",lockInf.getLatitude());
+        }
+        mapper.update((LockInf) ActionUtil.objeNull,wrapper);
         return new Response().set(1,true);
     }
+    //鎺堟潈鏃舵煡璇㈡墍鏈夎摑鐗欓攣淇℃伅(涓嶅垎椤�)
+    public Response getLockInfAuth() {
+       /* QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("lock_type",1);*/
+        List<LockInf> list=mapper.selectList(null);
+        return new Response().setII(1,list!=null,list,"鎺堟潈鏃舵煡璇㈡墍鏈夎摑鐗欓攣淇℃伅(涓嶅垎椤�)");
+    }
+    //鑾峰彇鍖哄煙涓嬫墍鏈夐攣鐨勭姸鎬�
+    public Response getLockRt(int areaId) {
+        //鑾峰彇鑾峰彇id涓嬫墍鏈夌殑鍖哄煙id
+        List areaList=new ArrayList();
+        areaList.add(areaId);
+        areaInfService.getAllAreaId(areaId,areaList);
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.in("area_id",areaList);
+        List<LockInf> list=mapper.selectList(wrapper);
+        for (LockInf linf:list) {
+            QueryWrapper wrapper1=new QueryWrapper();
+            wrapper1.eq("lock_id",linf.getLockId());
+            List<AuthiruzeInf>  authList=authMapper.selectList(wrapper1);
+            linf.setAuthList(authList);
+        }
+        return new Response().setII(1,list!=null,list,"鑾峰彇鍖哄煙涓嬫墍鏈夐攣鐨勭姸鎬�");
+    }
+    //鏌ヨ鎵�鏈夐攣鍚嶄俊鎭�(鐢ㄤ簬涓嬫媺)
+    public Response getLinf() {
+        List<LockInf> list=mapper.selectList(null);
+        List<String> lnameList = list.stream()
+                .map(LockInf::getLockName) // 鎻愬彇鍚嶅瓧
+                .collect(Collectors.toList()); // 杞崲涓哄垪琛�*/
+        return new Response().setII(1,list!=null,lnameList,"鏌ヨ鎵�鏈夐攣鍚嶄俊鎭�(鐢ㄤ簬涓嬫媺)");
+    }
+    //鏌ヨ鍖哄煙绠$悊鍛樼殑鎵�鏈夊尯鍩熶笅閿佸叿(鐢ㄤ簬涓嬫媺)
+    public Response getAreaUserLock() {
+        UserInf uinf= ActionUtil.getUser();
+        List areaList=areaInfService.getAllAreaUser(uinf.getUid(),uinf.getUrole());
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.in("area_id",areaList);
+        wrapper.orderByAsc("num");
+        List<LockInf> list=mapper.selectList(wrapper);
+        return new Response().setII(1,list!=null,list,"鏌ヨ鎵�鏈夐攣鍚嶄俊鎭�(鐢ㄤ簬涓嬫媺)");
+    }
+    //鏌ヨ灞忔煖鐨勫叏閮ㄧ被鍨�(涓嬫媺)
+    public Response getScreenType() {
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.select("distinct screen_box_type");
+        List<LockInf> list=mapper.selectList(wrapper);
+        List<String> typeList = list.stream()
+                .map(LockInf::getScreenBoxType) // 鎻愬彇鍚嶅瓧
+                .collect(Collectors.toList()); // 杞崲涓哄垪琛�*/
+        return new Response().setII(1,list!=null,typeList,"鏌ヨ灞忔煖鐨勫叏閮ㄧ被鍨�(涓嬫媺)");
+    }
+   //鏌ヨ灞忔煖鍏ㄩ儴鍝佺墝(涓嬫媺)
+    public Response getScreenProduct() {
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.select("distinct screen_box_product");
+        List<LockInf> list=mapper.selectList(wrapper);
+        List<String> typeList = list.stream()
+                .map(LockInf::getScreenBoxProduct) // 鎻愬彇鍚嶅瓧
+                .collect(Collectors.toList()); // 杞崲涓哄垪琛�*/
+        return new Response().setII(1,list!=null,typeList,"鏌ヨ灞忔煖鍏ㄩ儴鍝佺墝(涓嬫媺)");
+    }
+    //瀹炴椂鑾峰彇鑾峰彇鍖哄煙涓嬫墍鏈夐攣鐨勭姸鎬�
+    public Response getRealLock(Integer areaId, Integer pageNum, Integer pageSize) {
+        Map<String,Object> map=new HashMap<>();
+        map.put("sumLinf",0);
+        map.put("onlineNum",0);
+        map.put("offLineNum",0);
+        map.put("openNum",0);
+        map.put("closeNum",0);
+        map.put("unLoadNum",0);
+        List<Integer> areaList=new ArrayList();
+        areaList.add(areaId);
+        areaInfService.getAllAreaId(areaId,areaList);
+        List<LockInf> linfs=mapper.getRealLock(areaList);
+        if(linfs!=null&&linfs.size()>0){
+            map.put("sumLinf",linfs.size());
+            Map<Integer, List<LockInf>> onlinemap = linfs.stream().collect(Collectors.groupingBy(LockInf::getLockOnline));
+            for (Integer state : onlinemap.keySet()) {
+                if(state==0){
+                    map.put("offLineNum", onlinemap.get(0).size());//绂荤嚎
+                }
+                if(state==1){
+                    map.put("onlineNum", onlinemap.get(1).size());//鍦ㄧ嚎
+                }
+            }
+            Map<Integer, List<LockInf>> openmap = linfs.stream().collect(Collectors.groupingBy(LockInf::getLockState));
+            for (Integer open : openmap.keySet()) {
+                if(open==0){
+                    map.put("closeNum", openmap.get(0).size());//闂攣
+                }
+                if(open==1){
+                    map.put("openNum", openmap.get(1).size());//寮�閿�
+                }
+                if(open==-1){
+                    map.put("unLoadNum", openmap.get(-1).size());//鏈畨瑁�
+                }
+            }
+        }
+        PageInfo pageInfo= PageInfoUtils.list2PageInfo(linfs,pageNum,pageSize);
+        map.put("pageInfo",pageInfo);
+        return new Response().setII(1,linfs!=null,map,"瀹炴椂鑾峰彇鑾峰彇鍖哄煙涓嬫墍鏈夐攣鐨勭姸鎬�");
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1