From 87a2fe3e6f1472a7e87e02d3fd956eee17b85352 Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期四, 12 十月 2023 15:28:33 +0800 Subject: [PATCH] 抽油机状态入库 --- ard-work/src/main/java/com/ruoyi/statistical/service/impl/StatisticalServiceImpl.java | 442 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 421 insertions(+), 21 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/statistical/service/impl/StatisticalServiceImpl.java b/ard-work/src/main/java/com/ruoyi/statistical/service/impl/StatisticalServiceImpl.java index 7b0e13a..f5b13e3 100644 --- a/ard-work/src/main/java/com/ruoyi/statistical/service/impl/StatisticalServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/statistical/service/impl/StatisticalServiceImpl.java @@ -1,17 +1,42 @@ package com.ruoyi.statistical.service.impl; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ruoyi.alarm.access.mapper.ArdAlarmAccessMapper; +import com.ruoyi.alarm.apponekey.mapper.ArdAlarmApponekeyMapper; +import com.ruoyi.alarm.camera.mapper.ArdAlarmCameraMapper; +import com.ruoyi.alarm.digitization3.mapper.ArdAlarmDigitization3Mapper; +import com.ruoyi.alarm.external.mapper.ArdAlarmExternalMapper; +import com.ruoyi.alarm.radar.mapper.ArdAlarmRadarFireMapper; +import com.ruoyi.alarm.radar.mapper.ArdAlarmRadarMoveMapper; +import com.ruoyi.alarm.radar.mapper.ArdAlarmRadarPumpMapper; +import com.ruoyi.alarm.steal.mapper.ArdAlarmStealelecMapper; +import com.ruoyi.alarm.tube.mapper.ArdAlarmTubeMapper; +import com.ruoyi.alarm.wall.mapper.ArdAlarmWallMapper; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; import com.ruoyi.common.core.domain.entity.SysConfig; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.device.camera.domain.ArdCameras; +import com.ruoyi.device.camera.mapper.ArdCamerasMapper; +import com.ruoyi.device.radar.domain.ArdEquipRadar; +import com.ruoyi.device.radar.mapper.ArdEquipRadarMapper; +import com.ruoyi.statistical.domain.PumpStatus; +import com.ruoyi.statistical.mapper.PumpStatusMapper; +import com.ruoyi.statistical.param.ESParam; +import com.ruoyi.statistical.param.Para; import com.ruoyi.statistical.service.StatisticalService; +import com.ruoyi.statistical.vo.CountVo; +import com.ruoyi.statistical.vo.TenVo; +import com.ruoyi.statistical.vo.UnitVo; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.utils.result.Results; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.Map; +import java.net.Socket; +import java.util.*; /** * @author Administrator @@ -23,6 +48,35 @@ private SysConfigMapper sysConfigMapper; @Autowired private ArdAlarmpointsWellMapper wellMapper; + @Autowired + private ArdAlarmStealelecMapper stealelecMapper; + @Autowired + private ArdAlarmCameraMapper cameraMapper; + @Autowired + private ArdAlarmRadarMoveMapper moveMapper; + @Autowired + private ArdAlarmRadarFireMapper fireMapper; + @Autowired + private ArdAlarmExternalMapper externalMapper; + @Autowired + private ArdAlarmAccessMapper accessMapper; + @Autowired + private ArdAlarmApponekeyMapper apponekeyMapper; + @Autowired + private ArdAlarmRadarPumpMapper pumpMapper; + @Autowired + private ArdAlarmWallMapper wallMapper; + @Autowired + private ArdAlarmDigitization3Mapper digitization3Mapper; + @Autowired + private ArdAlarmTubeMapper tubeMapper; + @Autowired + private ArdEquipRadarMapper radarMapper; + @Autowired + private ArdCamerasMapper camerasMapper; + @Autowired + private PumpStatusMapper pumpStatusMapper; + @Override public Results factorySave(Map<String, String> map) { @@ -69,26 +123,372 @@ } } } - //璁板綍well琛ㄤ腑oil_production涓烘娊娌规満鐨勬暟鎹湁澶氬皯鏉� - QueryWrapper<ArdAlarmpointsWell> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("oil_production","鎶芥补鏈�"); - int num = wellMapper.selectCount(queryWrapper); - SysConfig sysConfigUpd = sysConfigMapper.checkConfigKeyUnique("well"); - if(sysConfigUpd!=null){ - sysConfigUpd.setConfigValue(String.valueOf(num)); - sysConfigUpd.setUpdateBy(SecurityUtils.getUsername()); - sysConfigMapper.updateConfig(sysConfigUpd); - }else { - SysConfig sysConfig = new SysConfig(); - int randomNum = (int) (Math.random() * (1000 - 1 + 1)) + 1; - sysConfig.setConfigId((long) randomNum); - sysConfig.setConfigType("Y"); - sysConfig.setConfigName("鎶芥按浜�"); - sysConfig.setConfigKey("well"); - sysConfig.setConfigValue(String.valueOf(num)); - sysConfig.setCreateBy(SecurityUtils.getUsername()); - sysConfigMapper.insertConfig(sysConfig); - } return Results.succeed("娣诲姞鎴愬姛锛�"); } + + @Override + public Results factorySelect() { + JSONObject jsonObject = new JSONObject(); + QueryWrapper<SysConfig> queryWrapper = new QueryWrapper<>(); + queryWrapper.in("config_key","area","store","people","well","depot","unit"); + List<SysConfig> list = sysConfigMapper.selectList(queryWrapper); + for (int i = 0; i < list.size(); i++) { + SysConfig sysConfig = list.get(i); + jsonObject.put(sysConfig.getConfigKey(),sysConfig.getConfigValue()); + } + //璁板綍well琛ㄤ腑oil_production涓烘娊娌规満鐨勬暟鎹湁澶氬皯鏉� + QueryWrapper<ArdAlarmpointsWell> queryWrapperWell = new QueryWrapper<>(); + queryWrapperWell.eq("oil_production","鎶芥补鏈�"); + int num = wellMapper.selectCount(queryWrapperWell); + jsonObject.put("well",String.valueOf(num)); + return Results.succeed(jsonObject); + } + + @Override + public List<CountVo> stealelecYear(ESParam esParam) { + List<CountVo> list = stealelecMapper.stealelecYear(esParam); + return es(list); + } + + @Override + public List<CountVo> cameraYear(ESParam esParam) { + List<CountVo> list = cameraMapper.cameraYear(esParam); + return es(list); + } + + @Override + public List<CountVo> moveYear(ESParam esParam) { + List<CountVo> list = moveMapper.moveYear(esParam); + return es(list); + } + + @Override + public List<CountVo> fireYear(ESParam esParam) { + List<CountVo> list = fireMapper.fileYear(esParam); + return es(list); + } + + @Override + public List<CountVo> externalYear(ESParam esParam) { + List<CountVo> list = externalMapper.externalYear(esParam); + return es(list); + } + + @Override + public List<CountVo> accessYear(ESParam esParam) { + List<CountVo> list = accessMapper.accessYear(esParam); + return es(list); + } + + @Override + public List<CountVo> apponekeyYear(ESParam esParam) { + List<CountVo> list = apponekeyMapper.apponekeyYear(esParam); + return es(list); + } + + @Override + public List<CountVo> pumpYear(ESParam esParam) { + List<CountVo> list = pumpMapper.pumpYear(esParam); + return es(list); + } + + @Override + public List<CountVo> wallYear(ESParam esParam) { + List<CountVo> list = wallMapper.wallYear(esParam); + return es(list); + } + + @Override + public List<CountVo> digitizationYear(ESParam esParam) { + List<CountVo> list = digitization3Mapper.digitizationYear(esParam); + return es(list); + } + + @Override + public List<CountVo> tubeYear(ESParam esParam) { + List<CountVo> list = tubeMapper.tubeYear(esParam); + return es(list); + } + + @Override + public List<CountVo> stealelecMonth(ESParam esParam) { + List<CountVo> list = stealelecMapper.stealelecMonth(esParam); + return esMonth(list,esParam); + } + + @Override + public List<CountVo> cameraMonth(ESParam esParam) { + List<CountVo> list = cameraMapper.cameraMonth(esParam); + return esMonth(list,esParam); + } + + @Override + public List<CountVo> moveMonth(ESParam esParam) { + List<CountVo> list = moveMapper.moveMonth(esParam); + return esMonth(list,esParam); + } + + @Override + public List<CountVo> fireMonth(ESParam esParam) { + List<CountVo> list = fireMapper.fileMonth(esParam); + return esMonth(list,esParam); + } + + @Override + public List<CountVo> externalMonth(ESParam esParam) { + List<CountVo> list = externalMapper.externalMonth(esParam); + return esMonth(list,esParam); + } + + @Override + public List<CountVo> accessMonth(ESParam esParam) { + List<CountVo> list = accessMapper.accessMonth(esParam); + return esMonth(list,esParam); + } + + @Override + public List<CountVo> apponekeyMonth(ESParam esParam) { + List<CountVo> list = apponekeyMapper.apponekeyMonth(esParam); + return esMonth(list,esParam); + } + + @Override + public List<CountVo> pumpMonth(ESParam esParam) { + List<CountVo> list = pumpMapper.pumpMonth(esParam); + return esMonth(list,esParam); + } + + @Override + public List<CountVo> wallMonth(ESParam esParam) { + List<CountVo> list = wallMapper.wallMonth(esParam); + return esMonth(list,esParam); + } + + @Override + public List<CountVo> digitizationMonth(ESParam esParam) { + List<CountVo> list = digitization3Mapper.digitizationMonth(esParam); + return esMonth(list,esParam); + } + + @Override + public List<CountVo> tubeMonth(ESParam esParam) { + List<CountVo> list = tubeMapper.tubeMonth(esParam); + return esMonth(list,esParam); + } + + @Override + public UnitVo unit() { + UnitVo unitVo = new UnitVo(); + //闆疯揪鍦ㄧ嚎鏁伴噺 + List<ArdEquipRadar> radarList = radarMapper.selectList(null); + Timer timer = new Timer(); + TimerTask timerTask =new TimerTask(){ + @Override + public void run(){ + Para.setI(0); + for (int i = 0; i < radarList.size(); i++) { + ArdEquipRadar radar = radarList.get(i); + String host = radar.getIp(); + String port = radar.getPort(); + Thread thread = new Thread(){ + @Override + public void run(){ + try { + Socket socket = new Socket(host,Integer.valueOf(port)); + } catch (Exception e) { + int num = Para.getI(); + num++; + } + } + }; + thread.start(); + } + int n = Para.getI(); + Para.setJ(radarList.size() - Para.getI()); + } + }; + Date date = new Date(); + timer.scheduleAtFixedRate(timerTask,date,5000); + unitVo.setRadar(Para.getJ()); + //鍏夌數鏁伴噺 + QueryWrapper<ArdCameras> queryWrapper = new QueryWrapper<>(); + queryWrapper.select("id").eq("gdtype","0").eq("state","1"); + List<ArdCameras> ardCameras = camerasMapper.selectList(queryWrapper); + unitVo.setCamera(ardCameras.size()); + return unitVo; + } + + @Override + public int stealelecNum() { + return stealelecMapper.selectCount(null); + } + + @Override + public int cameraNum() { + return cameraMapper.selectCount(null); + } + + @Override + public int moveNum() { + return moveMapper.selectCount(null); + } + + @Override + public int fireNum() { + return fireMapper.selectCount(null); + } + + @Override + public int externalNum() { + return externalMapper.selectCount(null); + } + + @Override + public int accessNum() { + return accessMapper.selectCount(null); + } + + @Override + public int apponekeyNum() { + return apponekeyMapper.selectCount(null); + } + + @Override + public int pumpNum() { + return pumpMapper.selectCount(null); + } + + @Override + public int wallNum() { + return wallMapper.selectCount(null); + } + + @Override + public int digitizationNum() { + return digitization3Mapper.selectCount(null); + } + + @Override + public int tubeNum() { + return tubeMapper.selectCount(null); + } + + @Override + public List<TenVo> ten() { + return moveMapper.ten(); + } + + @Override + public List<TenVo> pump() { + List<TenVo> list = new ArrayList<>(); + QueryWrapper<PumpStatus> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("alarm_type","杩愯"); + int y = pumpStatusMapper.selectCount(queryWrapper); + TenVo tenVo = new TenVo(); + tenVo.setName("杩愯"); + tenVo.setValue(y); + list.add(tenVo); + QueryWrapper<PumpStatus> queryWrapper1 = new QueryWrapper<>(); + queryWrapper1.eq("alarm_type","鍋滄満"); + int t = pumpStatusMapper.selectCount(queryWrapper1); + TenVo tenVo1 = new TenVo(); + tenVo1.setName("鍋滄満"); + tenVo1.setValue(t); + list.add(tenVo1); + return list; + } + + @Override + public void data(String msg) { + JSONObject jsonObject = JSONObject.parseObject(msg); + String alarmTime = jsonObject.getString("alarmTime"); + List<JSONObject> list = (List<JSONObject>) jsonObject.get("ardAlarmRadars"); + if(list.size()>0){ + for (int i = 0; i < list.size(); i++) { + JSONObject j = list.get(i); + QueryWrapper<PumpStatus> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("target_id",j.getInteger("targetId")).eq("name",j.getString("name")); + PumpStatus pumpStatus1 = pumpStatusMapper.selectOne(queryWrapper); + if(pumpStatus1==null){ + PumpStatus pumpStatus = new PumpStatus(); + pumpStatus.setTargetId(j.getInteger("targetId")); + pumpStatus.setName(j.getString("name")); + if(j.containsKey("alarmType")){ + pumpStatus.setAlarmType(j.getString("alarmType")); + }else if(j.containsKey("alarm")){ + pumpStatus.setAlarmType(j.getString("alarm")); + } + pumpStatus.setAlarmTime(alarmTime); + pumpStatusMapper.insert(pumpStatus); + }else { + String alarmType = pumpStatus1.getAlarmType(); + Boolean bo = false; + if(j.containsKey("alarmType")){ + if(alarmType.equals(j.getString("alarmType"))){ + bo = true; + } + }else if(j.containsKey("alarm")){ + if(alarmType.equals(j.getString("alarm"))){ + bo = true; + } + } + if(!bo){ + pumpStatus1.setAlarmType(j.getString("alarmType")); + pumpStatus1.setAlarmTime(alarmTime); + pumpStatusMapper.updateById(pumpStatus1); + } + } + } + } + } + + public List<CountVo> es(List<CountVo> list){ + List<CountVo> countVoList = new ArrayList<>(); + for (int i = 1; i <= 12 ; i++) { + CountVo vo = new CountVo(); + String month = i + "鏈�"; + Boolean bo = false; + for (int j = 0; j < list.size(); j++) { + CountVo countVo = list.get(j); + String mon = Integer.valueOf(countVo.getDate()) + "鏈�"; + if(mon.equals(month)){ + bo = true; + vo.setDate(mon); + vo.setCount(countVo.getCount()); + } + } + if(!bo){ + vo.setDate(month); + vo.setCount(0); + } + countVoList.add(vo); + } + return countVoList; + } + + public List<CountVo> esMonth(List<CountVo> list,ESParam esParam){ + List<CountVo> countVoList = new ArrayList<>(); + Integer day = Integer.valueOf(esParam.getEnd().substring(esParam.getEnd().length() - 2)); + Integer month = esParam.getMonth(); + for (int i = 1; i <= day ; i++) { + CountVo vo = new CountVo(); + String d = month + "-" + i ; + Boolean bo = false; + for (int j = 0; j < list.size(); j++) { + CountVo countVo = list.get(j); + String mon = month + "-" + Integer.valueOf(countVo.getDate()); + if(mon.equals(d)){ + bo = true; + vo.setDate(mon); + vo.setCount(countVo.getCount()); + } + } + if(!bo){ + vo.setDate(d); + vo.setCount(0); + } + countVoList.add(vo); + } + return countVoList; + } } -- Gitblit v1.9.3