From 8c635598000e40edfb3edf5934124ad48d60f62d Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期六, 21 六月 2025 19:14:50 +0800
Subject: [PATCH] 实时页面修改

---
 src/main/java/com/whyc/service/BattInfService.java |  231 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 197 insertions(+), 34 deletions(-)

diff --git a/src/main/java/com/whyc/service/BattInfService.java b/src/main/java/com/whyc/service/BattInfService.java
index 9150415..5aff1a0 100644
--- a/src/main/java/com/whyc/service/BattInfService.java
+++ b/src/main/java/com/whyc/service/BattInfService.java
@@ -4,16 +4,18 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.whyc.constant.BattCapperformanceEnum;
 import com.whyc.dto.BattDto;
 import com.whyc.dto.InfoDto;
+import com.whyc.dto.Param.ParamAlmDto;
+import com.whyc.dto.Real.QuarterDto;
 import com.whyc.dto.Response;
+import com.whyc.dto.Statistic.*;
 import com.whyc.factory.InfoFactory;
 import com.whyc.mapper.BattInfMapper;
 import com.whyc.mapper.PowerInfMapper;
 import com.whyc.mapper.StationInfMapper;
-import com.whyc.pojo.db_station.BattInf;
-import com.whyc.pojo.db_station.PowerInf;
-import com.whyc.pojo.db_station.StationInf;
+import com.whyc.pojo.db_station.*;
 import com.whyc.pojo.db_user.User;
 import com.whyc.util.ActionUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +25,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class BattInfService {
@@ -37,6 +40,9 @@
 
     @Autowired(required = false)
     private BaojigroupService bjService;
+
+    @Autowired(required = false)
+    private InfoChangeService changeService;
 
     /*鏂板缓鐢垫睜缁勶紙鏂扮殑璁惧鏂扮殑鐢垫睜缁勶級
      * @param binf
@@ -76,18 +82,39 @@
     //璁惧涓嬫坊鍔犵數姹犵粍
     @Transactional
     public void addBatt(BattInf  addbinf) {
-        //鑾峰彇璁惧鐨勯�氱敤淇℃伅
-        QueryWrapper wrapper=new QueryWrapper();
-        wrapper.eq("dev_id",addbinf.getDevId());
-        wrapper.select("dev_name","dev_type","dev_num","dev_ip","power_id","station_id");
-        wrapper.last("limit 1");
-        BattInf binf=mapper.selectOne(wrapper);
-        addbinf.setPowerId(binf.getPowerId());
-        addbinf.setStationId(binf.getStationId());
-        addbinf.setDevName(binf.getDevName());
-        addbinf.setDevType(binf.getDevType());
-        addbinf.setDevNum(binf.getDevNum());
-        addbinf.setDevIp(binf.getDevIp());
+        if(addbinf.getAddBinfFlag()==0){
+            //鑾峰彇璁惧鐨勯�氱敤淇℃伅
+            QueryWrapper wrapper=new QueryWrapper();
+            wrapper.eq("dev_id",addbinf.getDevId());
+            wrapper.select("dev_name","dev_type","dev_num","dev_ip","power_id","station_id");
+            wrapper.last("limit 1");
+            BattInf binf=mapper.selectOne(wrapper);
+            addbinf.setPowerId(binf.getPowerId());
+            addbinf.setStationId(binf.getStationId());
+            addbinf.setDevName(binf.getDevName());
+            addbinf.setDevType(binf.getDevType());
+            addbinf.setDevNum(binf.getDevNum());
+            addbinf.setDevIp(binf.getDevIp());
+        }else{//鐢垫簮涓嬫柊寤轰竴涓澶�
+            //妫�娴嬬數婧愪笅鏄惁瀛樺湪璁惧
+            int devNum=mapper.getMaxDevNum(addbinf.getPowerId());
+            if(devNum==0){
+                devNum=1;
+            }else{
+                devNum+=1;
+            }
+            addbinf.setDevNum(devNum);
+            addbinf.setDevName(addbinf.getDevType()+devNum);
+            //鑾峰彇瀵瑰簲鐨勮澶噄d,鐢垫睜缁�
+            int devId = mapper.getMaxdevId();
+            int battGroupId=mapper.getMaxBattGroupId();
+            if (devId == 0) {//鏁版嵁搴撲腑娌℃湁绔欑偣
+                devId = 10001;
+            } else {
+                devId += 1;
+            }
+            addbinf.setDevId(devId);
+        }
         //妫�娴嬭澶囦笅鏄惁瀛樺湪鐢垫睜缁�
         int battgroupNum=mapper.getMaxBattgroupNum(addbinf.getDevId());
         if(battgroupNum==0){
@@ -149,17 +176,24 @@
         StationInf sinf=pinf.getSinf();
         UpdateWrapper wrapper1=new UpdateWrapper();
         if(sinf.getStationName()!=null){
-            wrapper1.set("station_name",sinf.getStationName());
-            String fullName=sinf.getProvice()+"_"+sinf.getCity()+"_"+sinf.getCountry()+"_"+sinf.getStationName();
-            //妫�娴嬭鏈烘埧涓嬭淇敼鐨勭數婧愬悕鏄惁瀛樺湪
-            QueryWrapper queryWrapper=new QueryWrapper();
-            queryWrapper.eq("full_name",fullName);
-            queryWrapper.last("limit 1");
-            StationInf jueges=sinfMapper.selectOne(queryWrapper);
-            if(jueges!=null){
-                return new Response().set(1,false,"宸插瓨鍦�"+fullName+"鐨勬満鎴�");
+            //鍏堟煡鐪嬫満鎴垮悕鍜宻tationid鏄笉鏄尮閰嶇殑
+            QueryWrapper wrapper2=new QueryWrapper();
+            wrapper2.eq("station_id",sinf.getStationId());
+            wrapper2.last("limit 1");
+            StationInf s=sinfMapper.selectOne(wrapper2);
+            if(!s.getStationName().equalsIgnoreCase(sinf.getStationName())){
+                wrapper1.set("station_name",sinf.getStationName());
+                String fullName=sinf.getProvice()+"_"+sinf.getCity()+"_"+sinf.getCountry()+"_"+sinf.getStationName();
+                //妫�娴嬭鏈烘埧涓嬭淇敼鐨勭數婧愬悕鏄惁瀛樺湪
+                QueryWrapper queryWrapper=new QueryWrapper();
+                queryWrapper.eq("full_name",fullName);
+                queryWrapper.last("limit 1");
+                StationInf jueges=sinfMapper.selectOne(queryWrapper);
+                if(jueges!=null){
+                    return new Response().set(1,false,"宸插瓨鍦�"+fullName+"鐨勬満鎴�");
+                }
+                wrapper1.set("full_name",fullName);
             }
-            wrapper1.set("full_name",fullName);
         }
         if(sinf.getStationType()!=null){
             wrapper1.set("station_type",sinf.getStationType());
@@ -169,6 +203,9 @@
         }
         if(sinf.getLatitude()!=null){
             wrapper1.set("latitude",sinf.getLatitude());
+        }
+        if(sinf.getNodeStation()!=null){
+            wrapper1.set("node_station",sinf.getNodeStation());
         }
         wrapper1.eq("station_id",sinf.getStationId());
 
@@ -186,7 +223,16 @@
         if(pinf.getPowerIp()!=null){
             wrapper2.set("power_ip",pinf.getPowerIp());
         }
-        if(pinf.getPowerName()!=null){
+        if(pinf.getPowerType()!=null){
+            wrapper2.set("power_type",pinf.getPowerType());
+        }
+        if(pinf.getPowerInuseTime()!=null){
+            wrapper2.set("power_inuse_time",pinf.getPowerInuseTime());
+        }
+        if(pinf.getModelCfg()!=null){
+            wrapper2.set("model_cfg",pinf.getModelCfg());
+        }
+        /*if(pinf.getPowerName()!=null){
             //妫�娴嬭鏈烘埧涓嬭淇敼鐨勭數婧愬悕鏄惁瀛樺湪
             QueryWrapper queryWrapper1=new QueryWrapper();
             queryWrapper1.eq("power_name",pinf.getPowerName());
@@ -197,7 +243,7 @@
                 return new Response().set(1,false,"璇ユ満鎴夸笅宸插瓨鍦�"+pinf.getPowerName()+"鐨勭數婧�");
             }
             wrapper2.set("power_name",pinf.getPowerName());
-        }
+        }*/
         wrapper2.eq("power_id",pinf.getPowerId());
 
         //鏈�鍚庝慨鏀硅澶囦俊鎭�
@@ -207,7 +253,7 @@
             if (binf.getDevIp() != null) {
                 wrapper3.set("dev_ip", binf.getDevIp());
             }
-            if (binf.getDevName() != null) {
+           /* if (binf.getDevName() != null) {
                 //妫�娴嬭鐢垫簮涓嬩慨鏀圭殑璁惧鍚嶆槸鍚﹀瓨鍦�
                 QueryWrapper queryWrapper2 = new QueryWrapper();
                 queryWrapper2.eq("dev_name", binf.getDevName());
@@ -218,7 +264,7 @@
                     return new Response().set(1, false, "璇ョ數婧愪笅宸插瓨鍦�" + binf.getDevName() + "鐨勮澶�");
                 }
                 wrapper3.set("dev_name", binf.getDevName());
-            }
+            }*/
             /*if(binf.getDevType()!=null){
                 wrapper3.set("dev_type",binf.getDevType());
             }*/
@@ -226,7 +272,7 @@
 
             //淇敼鐢垫睜缁勪俊鎭�
             UpdateWrapper wrapper4 = new UpdateWrapper();
-            if (binf.getBattgroupName() != null) {
+            /*if (binf.getBattgroupName() != null) {
                 //妫�娴嬭鏈烘埧涓嬭淇敼鐨勭數婧愬悕鏄惁绮楀湪
                 QueryWrapper queryWrapper3 = new QueryWrapper();
                 queryWrapper3.eq("battgroup_name", binf.getBattgroupName());
@@ -237,7 +283,7 @@
                     return new Response().set(1, false, "璇ヨ澶囦笅宸插瓨鍦�" + binf.getBattgroupName() + "鐨勭數姹犵粍");
                 }
                 wrapper4.set("battgroup_name", binf.getBattgroupName());
-            }
+            }*/
             if (binf.getMonvolstd() != null) {
                 wrapper4.set("monvolstd", binf.getMonvolstd());
             }
@@ -256,12 +302,20 @@
             if (binf.getBattModel() != null) {
                 wrapper4.set("batt_model", binf.getBattModel());
             }
+            if (binf.getInuseTime() != null) {
+                wrapper4.set("inuse_time", binf.getInuseTime());
+            }
             wrapper4.eq("battgroup_id", binf.getBattgroupId());
             mapper.update((BattInf) ActionUtil.objeNull,wrapper3);
             mapper.update((BattInf) ActionUtil.objeNull,wrapper4);
         }
         sinfMapper.update((StationInf) ActionUtil.objeNull,wrapper1);
         pinfMapper.update((PowerInf) ActionUtil.objeNull,wrapper2);
+        //瀛樺叆鍙樻洿淇℃伅璁板綍
+        pinf.setStationId(sinf.getStationId());
+        binf.setStationId(sinf.getStationId());
+        binf.setPowerId(pinf.getPowerId());
+        changeService.addInfoChange(sinf,pinf,binf,info.getUpdateReason());
         return new Response().set(1,true,"淇敼淇℃伅鎴愬姛");
     }
     /*//淇敼鐢垫睜缁�
@@ -326,19 +380,19 @@
     }
     //鑾峰彇鏍囩О鍗曚綋鐢靛帇(涓嬫媺)
     public Response getMonVolByUid(Integer uid) {
-        List<String> list=mapper.getMonVolByUid(uid);
+        List<Float> list=mapper.getMonVolByUid(uid);
         return new Response().setII(1,list.size()>0,list,"鑾峰彇鏍囩О鍗曚綋鐢靛帇(涓嬫媺)");
     }
 
     //鑾峰彇鏍囩О瀹归噺(涓嬫媺)
     public Response getMonCapByUid(Integer uid) {
-        List<String> list=mapper.getMonCapByUid(uid);
+        List<Float> list=mapper.getMonCapByUid(uid);
         return new Response().setII(1,list.size()>0,list,"鑾峰彇鏍囩О瀹归噺(涓嬫媺)");
     }
 
     //鑾峰彇鏍囩О鍐呴樆(涓嬫媺)
     public Response getMonResByUid(Integer uid) {
-        List<String> list=mapper.getMonResByUid(uid);
+        List<Float> list=mapper.getMonResByUid(uid);
         return new Response().setII(1,list.size()>0,list,"鑾峰彇鏍囩О鍐呴樆(涓嬫媺)");
     }
     //鑾峰彇璁惧鍨嬪彿(涓嬫媺)
@@ -347,4 +401,113 @@
         return new Response().setII(1,list.size()>0,list,"鑾峰彇璁惧鍨嬪彿(涓嬫媺)");
     }
 
+    //鏍规嵁鐢垫睜缁刬d鑾峰彇鐢垫睜缁勪俊鎭�
+    public BattInf getBinfByBattgroupId(Integer battgroupId) {
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("battgroup_id",battgroupId);
+        wrapper.last("limit 1");
+        BattInf binf=mapper.selectOne(wrapper);
+        List<BattInfChange> binfChangeList=changeService.getBinfChange(battgroupId);
+        binf.setBinfChangeList(binfChangeList);
+        return binf;
+    }
+   //褰撴病鏈夊唴鍔╂祴璇曟椂鍒濆鍐呴樆鍊间负鏍囩О鍐呴樆
+    public List<QuarterDto> getBinfResStd(Integer battgroupId) {
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("battgroup_id",battgroupId);
+        wrapper.last("limit 1");
+        BattInf binf=mapper.selectOne(wrapper);
+        Float monresstd=binf.getMonresstd();
+        List<QuarterDto> list=new ArrayList<>();
+        for(int i=0;i<binf.getMoncount();i++){
+            QuarterDto dto=new QuarterDto();
+            dto.setRecordTime(binf.getCreateTime());
+            dto.setMonNum(i+1);
+            dto.setNumValue(monresstd);
+        }
+        return list;
+    }
+
+    //璁惧淇℃伅缁熻
+    public Response getDevStatistic(StationStic stic) {
+        PageHelper.startPage(stic.getPageNum(),stic.getPageSize());
+        List<BattInf> list=mapper.getDevStatistic(stic);
+        for (BattInf binf:list) {
+            //鑾峰彇璁惧涓嬬數姹犵粍涓暟
+            int battCount=mapper.getBattCountBydevId(binf.getDevId());
+            binf.setBattCount(battCount);
+        }
+        PageInfo<BattInf> pageInfo=new PageInfo<>(list);
+        return new Response().setII(1,list.size()>0,pageInfo,"璁惧淇℃伅缁熻");
+    }
+    //钃勭數姹犵粍淇℃伅缁熻
+    public Response getBattStatistic(StationStic stic) {
+        PageHelper.startPage(stic.getPageNum(),stic.getPageSize());
+        List<BattInf> list=mapper.getBattStatistic(stic);
+        PageInfo<BattInf> pageInfo=new PageInfo<>(list);
+        return new Response().setII(1,list.size()>0,pageInfo,"钃勭數姹犵粍淇℃伅缁熻");
+    }
+    //鍗曚綋缁熻鏌ヨ绗﹀悎鏉′欢鐨勭數姹犵粍
+    public List<BattInf> getMonStatistic(MonStic stic) {
+        return mapper.getMonStatistic(stic);
+    }
+    //钃勭數姹犵粍瀵规瘮鍒嗘瀽鐣岄潰15
+    public List<BattInf> getBattCompare15Statistic(BattCompareStic stic) {
+        return mapper.getBattCompare15Statistic(stic);
+    }
+    //鑾峰彇瀹归噺鎬ц兘(涓嬫媺)
+    public Response getCapperformance() {
+        Map<Integer,String> map= BattCapperformanceEnum.getOpInfo();
+        return new Response().setII(1,true,map,"鑾峰彇瀹归噺鎬ц兘(涓嬫媺)");
+    }
+    //钃勭數姹犵粍瀵规瘮鍒嗘瀽鐣岄潰16
+    public List<BattInf> getBattCompare16Statistic(BattCompareStic stic) {
+        return mapper.getBattCompare16Statistic(stic);
+    }
+    //钃勭數姹犵粍瀵规瘮鍒嗘瀽鐣岄潰17
+    public List<BattInf> getBattCompare17Statistic(BattCompareStic stic) {
+        return mapper.getBattCompare17Statistic(stic);
+    }
+    //鏈勾搴﹀凡鏀剧數鏁伴噺缁熻(1.2.5)
+    public List<BattInf> getDischr5Statistic(DisChargeStic stic) {
+        return mapper.getDischr5Statistic(stic);
+    }
+    //鏈勾搴﹀凡鏀剧數鏁伴噺缁熻(1.2.6)
+    public List<BattInf> getDischr6Statistic(DisChargeStic stic) {
+        return mapper.getDischr6Statistic(stic);
+    }
+    //鐢垫睜缁勭數姹犳�ц兘缁熻锛堟湭鏀剧數锛屼紭绉�锛屽姡鍖栵紝鎹熷潖锛夌粺璁�(1.2.8/9/10)
+    public List<BattInf> getPerformanceStatistic(PerformanceStic stic) {
+        return mapper.getPerformanceStatistic(stic);
+    }
+    //鏈勾搴﹀凡/鏈斁鐢垫暟閲忕粺璁″彸渚у浘琛�(1.2.5)
+    public List<BattInf> getDischrChart(Integer uid) {
+        return mapper.getDischrChart(uid);
+    }
+
+    public List<BattInf> getListByUserId(Integer userId) {
+        return mapper.getListByUserId(userId);
+    }
+
+    public List<BattInf> getListByCondition(Integer userId, BattInf battInf) {
+        return mapper.getListByCondition(userId, battInf);
+    }
+
+    //鑾峰彇绔欑偣涓嬬殑鐢垫睜缁�(涓嬫媺)
+    public Response getBattByUid(Integer uid, String provice, String city, String country, String stationName) {
+        List<BattInf> list=mapper.getBattByUid(uid,provice,city,country,stationName);
+        return new Response().setII(1,list.size()>0,list,"鑾峰彇绔欑偣涓嬬殑鐢垫睜缁�(涓嬫媺)");
+    }
+    //鏍规嵁鏌ヨ鏉′欢鑾峰彇鐢垫睜缁�
+    public  BattInf getBattgroupIdInf(Integer battgroupId) {
+        return mapper.getBattgroupIdInf(battgroupId);
+    }
+    //鏌ヨ鐢垫簮涓嬫墍鏈夌殑鐢垫睜缁刬d
+    public List<BattInf> getBattgroupIdListByPowerId(Integer powerId) {
+        return mapper.getBattgroupIdListByPowerId(powerId);
+    }
+    //鏌ヨ璁惧涓嬫墍鏈夌殑鐢垫睜缁刬d
+    public List<BattInf> getBattgroupIdListByDevId(Integer devId) {
+        return mapper.getBattgroupIdListByDevId(devId);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1