From ac0080fe7fe5de2566af07c15afa65ff2d4edf73 Mon Sep 17 00:00:00 2001 From: luyya Date: Sat, 5 Jul 2025 15:14:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=B3=E5=B7=9E=E4=BD=8D=E7=BD=AE=E6=B1=87?= =?UTF-8?q?=E8=81=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/logback-plus.xml | 94 +++++----------- .../src/main/resources/common-dubbo.yml | 2 +- .../system/IndexStaticsController.java | 42 +++---- .../system/domain/vo/DeviceStaticsVo.java | 4 +- .../system/mapper/DeviceRedisMapper.java | 5 + .../system/schedule/DeviceRedisSchedule.java | 17 +++ .../system/service/IDeviceRedisService.java | 2 + .../system/service/ITDeviceService.java | 4 + .../service/impl/DeviceRedisServiceImpl.java | 17 +++ .../service/impl/SysDeptServiceImpl.java | 4 +- .../service/impl/TDeviceServiceImpl.java | 58 ++++++++++ .../mapper/system/DeviceRedisMapper.xml | 5 + .../resources/mapper/system/TDeviceMapper.xml | 4 +- .../src/main/resources/application.properties | 2 +- .../src/main/resources/logback-plus.xml | 106 +++++------------- 15 files changed, 190 insertions(+), 176 deletions(-) diff --git a/stwzhj-auth/src/main/resources/logback-plus.xml b/stwzhj-auth/src/main/resources/logback-plus.xml index ce76b73b..08a6057c 100644 --- a/stwzhj-auth/src/main/resources/logback-plus.xml +++ b/stwzhj-auth/src/main/resources/logback-plus.xml @@ -1,87 +1,49 @@ - - + + + + - - - - - - - - - - - - - - + + + ${log.path}/info.${log.file}.log - - ERROR - - DENY - - ACCEPT + INFO + ACCEPT + DENY - - ${log.path}${log.file} - - UTF-8 - %date [%level] [%thread] %logger{60} [%file : %line] %msg%n - - ${log.path}info/${log.file}.%d{yyyy-MM-dd}.%i.gz - 50MB - 20 + ${log.path}/info/info.${log.file}.%d{yyyy-MM-dd}.%i.log.gz + ${MAX_FILE_SIZE} + ${MAX_HISTORY} + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + - - - + + + ${log.path}/error.${log.file}.log - Error + ERROR - - ${log.path}error.${log.file} - - - ${log.path}error/${log.file}.%d{yyyy-MM-dd}.%i.gz - - 50MB - 180 - - + ${log.path}/error/error.${log.file}.%d{yyyy-MM-dd}.%i.log.gz + ${MAX_FILE_SIZE} + ${MAX_HISTORY} - - UTF-8 - %date [%level] [%thread] %logger{60} [%file : %line] %msg%n + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - + - - - + + + diff --git a/stwzhj-common/stwzhj-common-dubbo/src/main/resources/common-dubbo.yml b/stwzhj-common/stwzhj-common-dubbo/src/main/resources/common-dubbo.yml index 349a911d..90a28d63 100644 --- a/stwzhj-common/stwzhj-common-dubbo/src/main/resources/common-dubbo.yml +++ b/stwzhj-common/stwzhj-common-dubbo/src/main/resources/common-dubbo.yml @@ -23,7 +23,7 @@ dubbo: address: redis://${spring.data.redis.host}:${spring.data.redis.port} group: DUBBO_GROUP username: dubbo - password: ruoyi123 + password: Ycgis@2509 # 集群开关 sentinel: false parameters: diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/controller/system/IndexStaticsController.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/controller/system/IndexStaticsController.java index 0d5049d5..0bc1caa7 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/controller/system/IndexStaticsController.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/controller/system/IndexStaticsController.java @@ -112,32 +112,26 @@ public class IndexStaticsController extends BaseController { * 各地市总数和在线数 * */ @PostMapping("/onLineBar") - public R onLineBar(){ - List deptVoList = deptService.getDsList(); - List staticsVoList = deviceService.countByDs(); + public R onLineBar(@RequestBody TDeviceBo bo){ + SysDeptBo deptBo = new SysDeptBo(); + deptBo.setIsVisible("1"); + deptBo.setParentId(bo.getZzjgdm()); + List deptVoList = deptService.selectDeptList(deptBo); List list = new ArrayList<>(); //用来接收处理后的统计结果 for (SysDeptVo deptVo : deptVoList) { - boolean bl = false; //用来统计结果是否有当前这个机构 - for (DeviceStaticsVo staticsVo : staticsVoList) { - String deptId = staticsVo.getZzjgdm()+"00000000"; - if (deptId.equals(deptVo.getDeptId())){ - staticsVo.setZzjgdm(deptId); - staticsVo.setZzjgmc(deptVo.getDeptName().replaceAll("公安局","")); - int onlineCo = RedisUtils.searchKeys("org_code:"+staticsVo.getZzjgdm()+"*"); - staticsVo.setOnlineCo(onlineCo); - list.add(staticsVo); - bl = true; - break; - } - } - if (!bl){ - DeviceStaticsVo staticsVo = new DeviceStaticsVo(); - staticsVo.setZzjgdm(deptVo.getDeptId()); - staticsVo.setZzjgmc(deptVo.getDeptName().replaceAll("公安局","")); - staticsVo.setCo(0); - staticsVo.setOnlineCo(0); - list.add(staticsVo); - } + DeviceStaticsVo staticsVo = new DeviceStaticsVo(); + TDeviceBo deviceBo = new TDeviceBo(); + deviceBo.setZzjgdm(deptVo.getDeptId()); + deviceBo.setValid(1); + DeviceRedis redis = new DeviceRedis(); + redis.setZzjgdm(deptVo.getDeptId()); + Long co = deviceService.countByCondition(deviceBo); + Long online = redisService.countByZzjgdm(redis); + staticsVo.setZzjgdm(deptVo.getDeptId()); + staticsVo.setZzjgmc(deptVo.getShortName()); + staticsVo.setCo(co); + staticsVo.setOnlineCo(online); + list.add(staticsVo); } return R.ok(list); } diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/domain/vo/DeviceStaticsVo.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/domain/vo/DeviceStaticsVo.java index 066241a9..e2d5ba90 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/domain/vo/DeviceStaticsVo.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/domain/vo/DeviceStaticsVo.java @@ -15,8 +15,8 @@ public class DeviceStaticsVo implements Serializable { private String zzjgdm; - private Integer co; + private Long co; - private Integer onlineCo; + private Long onlineCo; } diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/mapper/DeviceRedisMapper.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/mapper/DeviceRedisMapper.java index 308e93d8..a9b5139c 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/mapper/DeviceRedisMapper.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/mapper/DeviceRedisMapper.java @@ -1,5 +1,8 @@ package org.dromara.system.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.system.domain.DeviceRedis; import org.dromara.system.domain.vo.DeviceRedisVo; @@ -11,4 +14,6 @@ public interface DeviceRedisMapper extends BaseMapperPlus list); List countByCondition(DeviceRedis redis); + + Long countByzzjgdm(@Param(Constants.WRAPPER) Wrapper queryWrapper); } diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/schedule/DeviceRedisSchedule.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/schedule/DeviceRedisSchedule.java index 7c219e82..d9032267 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/schedule/DeviceRedisSchedule.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/schedule/DeviceRedisSchedule.java @@ -69,4 +69,21 @@ public class DeviceRedisSchedule { RedisUtils.batchInsert(deviceInfoDataMap,-1); } + /* + * 定时处理记录仪基本数据 10天没有更新的设备设置为删除状态 + * */ +// @Scheduled(cron = "0 0 0/1 * * ?") + public void deleteZfjly(){ + deviceService.deleteZfjly(); + } + + + /* + * 定时删除设备状态为删除的定位信息和在线表 + * */ +// @Scheduled(cron = "0 0 0/1 * * ?") + public void removeRedis(){ + deviceService.deleteRedis(); + } + } diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/IDeviceRedisService.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/IDeviceRedisService.java index 8870892c..b61ae2b4 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/IDeviceRedisService.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/IDeviceRedisService.java @@ -9,4 +9,6 @@ public interface IDeviceRedisService { int insertBatch(List list); List countByCondition(DeviceRedis redis); + + Long countByZzjgdm(DeviceRedis deviceRedis); } diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/ITDeviceService.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/ITDeviceService.java index c2eeeb66..cc66f87c 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/ITDeviceService.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/ITDeviceService.java @@ -85,4 +85,8 @@ public interface ITDeviceService { TDeviceVo queryByDeviceCode(String deviceCode); List selectDeviceExportList(TDeviceBo bo); + + int deleteZfjly(); + + int deleteRedis(); } diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/DeviceRedisServiceImpl.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/DeviceRedisServiceImpl.java index a66adf19..a5a768b8 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/DeviceRedisServiceImpl.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/DeviceRedisServiceImpl.java @@ -1,15 +1,20 @@ package org.dromara.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; +import org.dromara.system.api.RemoteDataScopeService; import org.dromara.system.domain.DeviceRedis; +import org.dromara.system.domain.TDevice; import org.dromara.system.domain.vo.DeviceRedisVo; import org.dromara.system.mapper.DeviceRedisMapper; import org.dromara.system.service.IDeviceRedisService; +import org.dromara.system.service.ISysDeptService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,6 +28,9 @@ public class DeviceRedisServiceImpl implements IDeviceRedisService { private final DeviceRedisMapper baseMapper; + @DubboReference + private RemoteDataScopeService remoteDataScopeService; + @Autowired SqlSessionFactory sqlSessionFactory; @@ -61,4 +69,13 @@ public class DeviceRedisServiceImpl implements IDeviceRedisService { public List countByCondition(DeviceRedis redis) { return baseMapper.countByCondition(redis); } + + @Override + public Long countByZzjgdm(DeviceRedis deviceRedis) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.ne(DeviceRedis::getDeviceType,"9"); + String depts = remoteDataScopeService.getDeptAndChild(deviceRedis.getZzjgdm()); + lqw.inSql(DeviceRedis::getZzjgdm,depts); + return baseMapper.countByzzjgdm(lqw); + } } diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java index 577dfa52..456780bb 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java @@ -82,8 +82,8 @@ public class SysDeptServiceImpl implements ISysDeptService { lqw.eq(StringUtils.isNotBlank(bo.getParentId()), SysDept::getParentId, bo.getParentId()); lqw.like(StringUtils.isNotBlank(bo.getDeptName()), SysDept::getDeptName, bo.getDeptName()); lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysDept::getStatus, bo.getStatus()); - lqw.eq(StringUtils.isNotBlank(bo.getIsVisible()),SysDept::getIsVisible,bo.getIsVisible()); lqw.eq(StringUtils.isNotBlank(bo.getFullName()), SysDept::getFullName, bo.getFullName()); + lqw.eq(StringUtils.isNotBlank(bo.getIsVisible()),SysDept::getIsVisible,bo.getIsVisible()); lqw.orderByAsc(SysDept::getAncestors); lqw.orderByAsc(SysDept::getParentId); lqw.orderByAsc(SysDept::getOrderNum); @@ -369,7 +369,7 @@ public class SysDeptServiceImpl implements ISysDeptService { @Override public List deviceStatics(String deviceType,String manageDeptId) { - if(!manageDeptId.equals("341300000000")){ + if(!manageDeptId.equals("341600000000")){ String subManageId = manageDeptId.substring(0,findLastNonZeroIndex(manageDeptId) + 1); return baseMapper.deviceStaticsByDeptId(deviceType,subManageId); diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/TDeviceServiceImpl.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/TDeviceServiceImpl.java index 6254cb0f..0bdc10a4 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/TDeviceServiceImpl.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/TDeviceServiceImpl.java @@ -14,9 +14,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.redis.utils.RedisUtils; import org.dromara.system.api.RemoteDataScopeService; +import org.dromara.system.domain.DeviceRedis; import org.dromara.system.domain.vo.DeviceStaticsVo; import org.dromara.system.domain.vo.TDeviceExportVo; +import org.dromara.system.mapper.DeviceRedisMapper; +import org.dromara.system.mapper.SysConfigMapper; +import org.dromara.system.service.ISysConfigService; import org.springframework.stereotype.Service; import org.dromara.system.domain.bo.TDeviceBo; import org.dromara.system.domain.vo.TDeviceVo; @@ -43,6 +48,12 @@ public class TDeviceServiceImpl implements ITDeviceService { private final TDeviceMapper baseMapper; + private final ISysConfigService configService; + + private final DeviceRedisMapper redisMapper; + + private String lastRemoveTime; + @DubboReference private RemoteDataScopeService remoteDataScopeService; @@ -120,6 +131,53 @@ public class TDeviceServiceImpl implements ITDeviceService { return baseMapper.selectDeviceExportList(lqw); } + + /* + * 删除长时间未更新的执法记录仪 + * */ + @Override + public int deleteZfjly() { + String day = configService.selectConfigByKey("device.remove.day"); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.inSql(TDevice::getDeviceType,"'5','7','8'"); + lqw.eq(TDevice::getValid,"1"); + lqw.le(TDevice::getUpdateTime,DateUtil.offsetDay(new Date(),Integer.getInteger(day))); + List list = baseMapper.selectList(lqw); + for (TDevice device : list) { + device.setValid(0); + device.setUpdateTime(DateUtil.now()); + baseMapper.updateById(device); + } + return 0; + } + + /* + * 删除状态为删除的设备定位信息和存在t_device_redis的数据 + * */ + + @Override + public int deleteRedis() { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.gt(StringUtils.isNotBlank(lastRemoveTime),TDevice::getUpdateTime,lastRemoveTime); + lqw.eq(TDevice::getValid,0); + lqw.orderByDesc(TDevice::getUpdateTime); + List list = baseMapper.selectVoList(lqw); + try { + if (list.size()>0){ + lastRemoveTime = list.get(0).getUpdateTime(); + for (TDeviceVo deviceVo : list) { + RedisUtils.del("online_users:"+deviceVo.getDeviceType()+":"+deviceVo.getDeviceCode()); + LambdaQueryWrapper dqw = new LambdaQueryWrapper<>(); + dqw.eq(DeviceRedis::getDeviceCode,deviceVo.getDeviceCode()); + redisMapper.delete(dqw); + } + } + }catch (Exception e){ + + } + return 0; + } + @Override public TDeviceVo queryOne(TDeviceBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); diff --git a/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/DeviceRedisMapper.xml b/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/DeviceRedisMapper.xml index 997e2f2f..aa66df48 100644 --- a/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/DeviceRedisMapper.xml +++ b/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/DeviceRedisMapper.xml @@ -46,4 +46,9 @@ WHERE d.dict_type = 'zd_device_type' + + diff --git a/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/TDeviceMapper.xml b/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/TDeviceMapper.xml index f0b03e35..b0eb07b6 100644 --- a/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/TDeviceMapper.xml +++ b/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/TDeviceMapper.xml @@ -49,8 +49,8 @@ #{remark1},#{remark2},#{cardNum},#{createTime},#{updateTime}) ON DUPLICATE KEY UPDATE police_no = values(police_no),police_name = values(police_name),phone_num = values(phone_num), - car_num = values(car_num),valid = values(valid),remark1 = values(remark1),remark2 = values(remark2),card_num = values(card_num), - update_time = now() + car_num = values(car_num),valid = '1',remark1 = values(remark1),remark2 = values(remark2),card_num = values(card_num), + update_time = values(update_time) diff --git a/stwzhj-visual/stwzhj-nacos/src/main/resources/application.properties b/stwzhj-visual/stwzhj-nacos/src/main/resources/application.properties index 37ac1679..bd8d74e1 100644 --- a/stwzhj-visual/stwzhj-nacos/src/main/resources/application.properties +++ b/stwzhj-visual/stwzhj-nacos/src/main/resources/application.properties @@ -43,7 +43,7 @@ db.num=1 #db.url.0=jdbc:mysql://127.0.0.1:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true db.url.0=jdbc:mysql://10.129.221.10:3306/wzhj-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true db.user.0=root -db.password.0=Ycgis!2509 +db.password.0=Ycgis@2509 ### the maximum retry times for push nacos.config.push.maxRetryTime=50 diff --git a/wzhj-gateway/src/main/resources/logback-plus.xml b/wzhj-gateway/src/main/resources/logback-plus.xml index 525188bb..3d88b97a 100644 --- a/wzhj-gateway/src/main/resources/logback-plus.xml +++ b/wzhj-gateway/src/main/resources/logback-plus.xml @@ -1,99 +1,49 @@ - - + + + + - - - - - - ${log.path}/console.log - - - ${log.path}/console.%d{yyyy-MM-dd}.log - - 1 - - - ${log.pattern} - utf-8 - - - - INFO - - - - - - - + + + ${log.path}/info.${log.file}.log - - ERROR - - DENY - - ACCEPT + INFO + ACCEPT + DENY - - ${log.path}${log.file} - - UTF-8 - %date [%level] [%thread] %logger{60} [%file : %line] %msg%n - - ${log.path}info/${log.file}.%d{yyyy-MM-dd}.%i.gz - 50MB - 20 + ${log.path}/info/info.${log.file}.%d{yyyy-MM-dd}.%i.log.gz + ${MAX_FILE_SIZE} + ${MAX_HISTORY} + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + - - - + + + ${log.path}/error.${log.file}.log - Error + ERROR - - ${log.path}error.${log.file} - - - ${log.path}error/${log.file}.%d{yyyy-MM-dd}.%i.gz - - 50MB - 180 - - + ${log.path}/error/error.${log.file}.%d{yyyy-MM-dd}.%i.log.gz + ${MAX_FILE_SIZE} + ${MAX_HISTORY} - - UTF-8 - %date [%level] [%thread] %logger{60} [%file : %line] %msg%n + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - + - - - - + + +