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