From d8475b8670b6b4cbcd1bc9e57d30a6f433d206ab Mon Sep 17 00:00:00 2001 From: DELL <1525436766@qq.com> Date: 星期一, 23 六月 2025 23:33:54 +0800 Subject: [PATCH] Merge branch 'master' of http://118.89.139.230:10101/r/powerIntelligenceSystem --- src/main/java/com/whyc/service/BatttestdataInfService.java | 1 src/main/java/com/whyc/service/SubTablePageInfoService.java | 54 ++++++++++ src/main/java/com/whyc/controller/BattCompareController.java | 48 +++++++++ src/main/java/com/whyc/pojo/db_param/AlmSummaryParam.java | 5 + src/main/java/com/whyc/constant/AnalysisEnum.java | 49 +++++++++ src/main/java/com/whyc/service/PwrdevHistorydataIdService.java | 40 ++++++++ src/main/resources/mapper/BattInfMapper.xml | 6 + src/main/java/com/whyc/controller/RealContoller.java | 8 + src/main/java/com/whyc/pojo/db_param/AlmAnalysisParam.java | 16 +++ src/main/java/com/whyc/service/AlmAnalysisParamService.java | 16 ++ 10 files changed, 239 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/whyc/constant/AnalysisEnum.java b/src/main/java/com/whyc/constant/AnalysisEnum.java new file mode 100644 index 0000000..a215fa0 --- /dev/null +++ b/src/main/java/com/whyc/constant/AnalysisEnum.java @@ -0,0 +1,49 @@ +package com.whyc.constant; + +import java.util.HashMap; +import java.util.Map; + +public enum AnalysisEnum { + ALARM_1(1,"鐩存祦鐢垫簮"), + ALARM_2(2,"閫氫俊鐢垫簮"), + ALARM_3(3,"閰嶇綉鐢垫簮"), + ALARM_4(4,"钃勭數姹犵粍"), + ALARM_5(5,"璁惧"), + ALARM_6(6,"ups鐢垫簮"), + ; + + private Integer stateId; + private String stateName; + + AnalysisEnum(Integer stateId, String stateName) { + this.stateId = stateId; + this.stateName = stateName; + } + + public Integer getStateId() { + return stateId; + } + + public String getStateName() { + return stateName; + } + + public static String getValue(Integer stateId) { + if(stateId==null){ + return ""; + } + for (AnalysisEnum ele : values()) { + if(ele.getStateId().equals(stateId)) { + return ele.getStateName(); + } + } + return null; + } + public static Map<Integer,String> getOpInfo() { + Map<Integer,String> map=new HashMap<>(); + for (AnalysisEnum logOpEnum : AnalysisEnum.values()) { + map.put(logOpEnum.getStateId(),logOpEnum.getStateName()); + } + return map; + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/controller/BattCompareController.java b/src/main/java/com/whyc/controller/BattCompareController.java new file mode 100644 index 0000000..f8ea218 --- /dev/null +++ b/src/main/java/com/whyc/controller/BattCompareController.java @@ -0,0 +1,48 @@ +package com.whyc.controller; + +import com.whyc.dto.Response; +import com.whyc.dto.Statistic.BattCompareStic; +import com.whyc.pojo.db_user.User; +import com.whyc.service.BatttestdataInfService; +import com.whyc.util.ActionUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Api(tags = "钃勭數姹犲姣斿垎鏋愮鐞�") +@RequestMapping("compare") +public class BattCompareController { + + @Autowired + private BatttestdataInfService battTinfService; + + + @ApiOperation(value = "钃勭數姹犵粍瀵规瘮鍒嗘瀽鐣岄潰锛堝悓涓�鍝佺墝鍚屼竴鏃堕棿锛�(1.2.15)") + @PostMapping("getBattCompare15Statistic") + public Response getBattCompare15Statistic(@RequestBody BattCompareStic stic){ + User uinf= ActionUtil.getUser(); + stic.setUid(uinf.getId()); + return battTinfService.getBattCompare15Statistic(stic); + } + + @ApiOperation(value = "钃勭數姹犵粍瀵规瘮鍒嗘瀽鐣岄潰锛堜笉鍚屽搧鐗屽悓涓�鏃堕棿锛�(1.2.16)") + @PostMapping("getBattCompare16Statistic") + public Response getBattCompare16Statistic(@RequestBody BattCompareStic stic){ + User uinf= ActionUtil.getUser(); + stic.setUid(uinf.getId()); + return battTinfService.getBattCompare16Statistic(stic); + } + + @ApiOperation(value = "钃勭數姹犵粍瀵规瘮鍒嗘瀽鐣岄潰锛堝悓涓�鍝佺墝涓嶅悓鏃堕棿锛�(1.2.17)") + @PostMapping("getBattCompare17Statistic") + public Response getBattCompare17Statistic(@RequestBody BattCompareStic stic){ + User uinf= ActionUtil.getUser(); + stic.setUid(uinf.getId()); + return battTinfService.getBattCompare17Statistic(stic); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/controller/RealContoller.java b/src/main/java/com/whyc/controller/RealContoller.java index 860c52c..1855bb5 100644 --- a/src/main/java/com/whyc/controller/RealContoller.java +++ b/src/main/java/com/whyc/controller/RealContoller.java @@ -62,10 +62,16 @@ return tdataIdService.getTinfDataWithTestRecordCount(battgroupId,testRecordCount,recordNum,granularity); } - @ApiOperation(value = "鍘嗗彶瀹炴椂鏌ヨ") + @ApiOperation(value = "鐢垫睜鍘嗗彶瀹炴椂鏌ヨ") @GetMapping("getBattRealDataHis") public Response getBattRealDataHis(@RequestParam Integer battgroupId,@RequestParam Integer granularity ,@RequestParam String startTime,@RequestParam String endTime) throws ParseException, InterruptedException { return battRealdataIdService.getBattRealDataHis(battgroupId,granularity,startTime,endTime); } + @ApiOperation(value = "鐢垫簮鍘嗗彶瀹炴椂鏌ヨ") + @GetMapping("getPwrRealDataHis") + public Response getPwrRealDataHis(@RequestParam Integer powerId,@RequestParam Integer granularity + ,@RequestParam String startTime,@RequestParam String endTime) throws ParseException, InterruptedException { + return pwrdevHistorydataIdService.getPwrRealDataHis(powerId,granularity,startTime,endTime); + } } \ No newline at end of file diff --git a/src/main/java/com/whyc/pojo/db_param/AlmAnalysisParam.java b/src/main/java/com/whyc/pojo/db_param/AlmAnalysisParam.java index 06a3fd0..d9c42d4 100644 --- a/src/main/java/com/whyc/pojo/db_param/AlmAnalysisParam.java +++ b/src/main/java/com/whyc/pojo/db_param/AlmAnalysisParam.java @@ -1,6 +1,7 @@ package com.whyc.pojo.db_param; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; @@ -41,11 +42,17 @@ @ApiModelProperty(value = "涓诲瓧娈电被鍨媅1:鐩存祦锛�2锛氶�氫俊锛�3閰嶇綉 4:鐢垫睜 5:璁惧]") private Integer mainFieldType; + @TableField(exist = false) + private String mainFieldTypeName; + @ApiModelProperty(value = "娆¤瀛楁1鍙傝�冮厤缃�") private String minorField1; @ApiModelProperty(value = "瀛楁1绫诲瀷[1:鐩存祦锛�2锛氶�氫俊锛�3閰嶇綉 4:鐢垫睜 5:璁惧]") private Integer minorField1Type; + + @TableField(exist = false) + private String minorField1TypeName; @ApiModelProperty(value = "娆¤瀛楁2鍙傝�冮厤缃�") private String minorField2; @@ -53,17 +60,26 @@ @ApiModelProperty(value = "瀛楁2绫诲瀷[1:鐩存祦锛�2锛氶�氫俊锛�3閰嶇綉 4:鐢垫睜 5:璁惧]") private Integer minorField2Type; + @TableField(exist = false) + private String minorField2TypeName; + @ApiModelProperty(value = "娆¤瀛楁3鍙傝�冮厤缃�") private String minorField3; @ApiModelProperty(value = "瀛楁3绫诲瀷[1:鐩存祦锛�2锛氶�氫俊锛�3閰嶇綉 4:鐢垫睜 5:璁惧]") private Integer minorField3Type; + @TableField(exist = false) + private String minorField3TypeName; + @ApiModelProperty(value = "娆¤瀛楁4鍙傝�冮厤缃�") private String minorField4; @ApiModelProperty(value = "瀛楁4绫诲瀷[1:鐩存祦锛�2锛氶�氫俊锛�3閰嶇綉 4:鐢垫睜 5:璁惧]") private Integer minorField4Type; + @TableField(exist = false) + private String minorField4TypeName; + } diff --git a/src/main/java/com/whyc/pojo/db_param/AlmSummaryParam.java b/src/main/java/com/whyc/pojo/db_param/AlmSummaryParam.java index d823cde..cc7064c 100644 --- a/src/main/java/com/whyc/pojo/db_param/AlmSummaryParam.java +++ b/src/main/java/com/whyc/pojo/db_param/AlmSummaryParam.java @@ -1,6 +1,7 @@ package com.whyc.pojo.db_param; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; @@ -35,6 +36,10 @@ @ApiModelProperty(value = "瀛楁绫诲瀷[1:鐩存祦锛�2锛氶�氫俊锛�3閰嶇綉 4:鐢垫睜 5:璁惧]") private Integer fieldType; + @ApiModelProperty(value = "瀛楁绫诲瀷[1:鐩存祦锛�2锛氶�氫俊锛�3閰嶇綉 4:鐢垫睜 5:璁惧]") + @TableField(exist = false) + private String fieldTypeName; + @ApiModelProperty(value = "瀛楁灞炴��") private String fieldName; diff --git a/src/main/java/com/whyc/service/AlmAnalysisParamService.java b/src/main/java/com/whyc/service/AlmAnalysisParamService.java index eab8387..a4b6175 100644 --- a/src/main/java/com/whyc/service/AlmAnalysisParamService.java +++ b/src/main/java/com/whyc/service/AlmAnalysisParamService.java @@ -1,6 +1,7 @@ package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.whyc.constant.AnalysisEnum; import com.whyc.dto.AnalysisAlm.AnalysisChangeRes; import com.whyc.dto.AnalysisAlm.ResAnalysis; import com.whyc.dto.Real.RealDateDTO; @@ -47,6 +48,13 @@ wrapper.eq("alm_id",almId); wrapper.last("limit 1"); AlmAnalysisParam param= mapper.selectOne(wrapper); + if(param!=null){ + param.setMainFieldTypeName(AnalysisEnum.getValue(param.getMainFieldType())); + param.setMinorField1TypeName(AnalysisEnum.getValue(param.getMinorField1Type())); + param.setMinorField2TypeName(AnalysisEnum.getValue(param.getMinorField2Type())); + param.setMinorField3TypeName(AnalysisEnum.getValue(param.getMinorField3Type())); + param.setMinorField4TypeName(AnalysisEnum.getValue(param.getMinorField4Type())); + } return param; } @@ -67,6 +75,7 @@ if(almAnalysisParam==null||almAnalysisParam.getMainFieldType()==null){ return new Response().set(1,false,"鏃犲搴斿垎鏋愬睘鎬�"); }else{ + //鍒嗙粍鏌ョ湅闇�瑕佹煡璇㈢數婧�/鐢垫睜瀹炴椂琛ㄧ殑鍝簺鏁版嵁 Map<String, Map<String,Object>> groupmap=groupPwrAndBatt(almAnalysisParam); Map<String,Object> battMap=groupmap.get("batt"); @@ -86,7 +95,7 @@ map.put("pwr",pwrHislist); } } - return new Response().setIII(1,true, map,mainMap,"棰勮鍒嗘瀽绠$悊-鐢垫簮涓诲睘鎬у拰鍒嗘瀽灞炴��"); + return new Response().setIIII(1,true, map,mainMap,almAnalysisParam,"棰勮鍒嗘瀽绠$悊-鐢垫簮涓诲睘鎬у拰鍒嗘瀽灞炴��"); } } //鍒嗙粍鏌ョ湅闇�瑕佹煡璇㈢數婧�/鐢垫睜瀹炴椂琛ㄧ殑鍝簺鏁版嵁 @@ -243,7 +252,7 @@ map.put("pwr",pwrHislist); } } - return new Response().setIII(1,true, map,mainMap,"棰勮鍒嗘瀽绠$悊-鍒囨崲鏃堕棿闂撮殧鍜屽壇灞炴��"); + return new Response().setIIII(1,true, map,mainMap,almAnalysisParam,"棰勮鍒嗘瀽绠$悊-鍒囨崲鏃堕棿闂撮殧鍜屽壇灞炴��"); } //灏嗗睘鎬ф嫹璐濊嚦almAnalysisParam涓� private void copyProperties(AlmAnalysisParam almAnalysisParam, AnalysisChangeRes res) { @@ -262,6 +271,9 @@ public Response getAlmSummaryParam() { //鎬荤殑灞炴�ч厤缃� List<AlmSummaryParam> summaryList=summaryParamService.getInfo(); + summaryList.forEach(item->{ + item.setFieldTypeName(AnalysisEnum.getValue(item.getFieldType())); + }); return new Response().setII(1,true,summaryList,"棰勮鍒嗘瀽绠$悊-鏌ヨ鎵�鏈夌殑灞炴�у搴斿叧绯�"); } } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BatttestdataInfService.java b/src/main/java/com/whyc/service/BatttestdataInfService.java index f763f91..b462679 100644 --- a/src/main/java/com/whyc/service/BatttestdataInfService.java +++ b/src/main/java/com/whyc/service/BatttestdataInfService.java @@ -278,7 +278,6 @@ if(param.getParamNamePsx().equals("batt_mon_damage_val")){ damageValue=param.getParamValue(); } - } } //1鏌ヨ绗﹀悎鏉′欢鐨勭數姹犵粍 diff --git a/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java b/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java index 7c00d39..b39b1f5 100644 --- a/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java +++ b/src/main/java/com/whyc/service/PwrdevHistorydataIdService.java @@ -261,4 +261,44 @@ return PwrCapperformanceEnum.PWRSTATE_4.getStateId(); } } + + //鐢垫簮鍘嗗彶瀹炴椂鏌ヨ + public Response getPwrRealDataHis(Integer powerId, Integer granularity, String startTime, String endTime) throws InterruptedException, ParseException { + //鑾峰彇涓や釜鏃堕棿鍒嗗壊澶氬皯寮犺〃 + List<List<Date>> monthTimeList = DateUtil.getMonthTime(ThreadLocalUtil.parse(startTime,1),ThreadLocalUtil.parse(endTime,1)); + List<PwrHisRealDcoutInDto> dataList = new LinkedList<>(); + ThreadPoolExecutor pool = ThreadPoolExecutorFactory.getPoolExecutor(); + CountDownLatch latch = new CountDownLatch(monthTimeList.size()); + for (int i = 0; i < monthTimeList.size(); i++) { + int finalI = i; + Integer finalGranularity = granularity; + pool.execute(() -> { + int finalII = finalI; + Date recordDatetime=monthTimeList.get(finalII).get(0); + Date recordDatetime1=monthTimeList.get(finalII).get(1); + String table = powerId + "_" + ThreadLocalUtil.format(recordDatetime,2); + String tableName="db_data_history.tb_pwrdev_historydata_"+table; + //鍒ゆ柇琛ㄦ槸鍚﹀瓨鍦� + int tableNum = subTablePageInfoService.judgeTable_pwrhis(table); + List<PwrHisRealDcoutInDto> list = new ArrayList(); + if (tableNum > 0) { + //鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈�澶ф渶灏弐ecordNum纭繚鏁版嵁鐨勫畬鏁� + List recordNums= subTablePageInfoService.getPwrMaxAndMinRecordNum(tableName,recordDatetime,recordDatetime1); + Integer maxRecordNum= 0; + Integer minRecordNum= 0; + if(recordNums.size()>0){ + maxRecordNum=(Integer)recordNums.get(0); + minRecordNum=(Integer)recordNums.get(1); + } + list=subTablePageInfoService.getPwrRealDataHis(tableName, finalGranularity,recordDatetime,recordDatetime1,maxRecordNum,minRecordNum); + } + dataList.addAll(list); + latch.countDown(); + }); + sleep(200); + } + latch.await(10, TimeUnit.MINUTES); + List dataListSorted = dataList.stream().sorted(Comparator.comparing(PwrHisRealDcoutInDto::getRecordDatetime)).collect(Collectors.toList()); + return new Response().setII(1,dataList.size()>0,dataListSorted,"鑾峰彇鍗婂皬鏃跺唴鐩存祦杈撳嚭缁熻"); + } } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java index 407bf36..ff2d302 100644 --- a/src/main/java/com/whyc/service/SubTablePageInfoService.java +++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java @@ -680,6 +680,60 @@ }); return list; } + //鐢垫簮鍘嗗彶瀹炴椂 + public List<PwrHisRealDcoutInDto> getPwrRealDataHis(String tableName,Integer granularity,Date recordDatetime,Date recordDatetime1,Integer maxRecordNum,Integer minRecordNum) { + String sql="select distinct * " + + " from "+tableName+" where record_datetime>='"+ActionUtil.sdf.format(recordDatetime)+"'" + + " and record_datetime<='"+ActionUtil.sdf.format(recordDatetime1)+ + "' and (record_num-"+minRecordNum+")%"+granularity+"=0 or record_num="+minRecordNum+" or record_num="+maxRecordNum; + sql+=" order by record_datetime asc"; + List<PwrHisRealDcoutInDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List<PwrHisRealDcoutInDto> list=new ArrayList<>(); + while (rs.next()){ + PwrHisRealDcoutInDto data=new PwrHisRealDcoutInDto(); + data.setRecordDatetime(rs.getTimestamp("record_datetime")); + data.setMOutputvol(rs.getFloat("m_outputvol")); + data.setM1Outcurr(rs.getFloat("m1_outcurr")); + data.setM2Outcurr(rs.getFloat("m2_outcurr")); + data.setM3Outcurr(rs.getFloat("m3_outcurr")); + data.setM4Outcurr(rs.getFloat("m4_outcurr")); + data.setM5Outcurr(rs.getFloat("m5_outcurr")); + data.setM6Outcurr(rs.getFloat("m6_outcurr")); + data.setM7Outcurr(rs.getFloat("m7_outcurr")); + data.setM8Outcurr(rs.getFloat("m8_outcurr")); + data.setM9Outcurr(rs.getFloat("m9_outcurr")); + data.setM10Outcurr(rs.getFloat("m10_outcurr")); + data.setM11Outcurr(rs.getFloat("m11_outcurr")); + data.setM12Outcurr(rs.getFloat("m12_outcurr")); + data.setM13Outcurr(rs.getFloat("m13_outcurr")); + data.setM14Outcurr(rs.getFloat("m14_outcurr")); + data.setM15Outcurr(rs.getFloat("m15_outcurr")); + data.setM16Outcurr(rs.getFloat("m16_outcurr")); + data.setM1OutVol(rs.getFloat("m1_out_vol")); + data.setM2OutVol(rs.getFloat("m2_out_vol")); + data.setM3OutVol(rs.getFloat("m3_out_vol")); + data.setM4OutVol(rs.getFloat("m4_out_vol")); + data.setM5OutVol(rs.getFloat("m5_out_vol")); + data.setM6OutVol(rs.getFloat("m6_out_vol")); + data.setM7OutVol(rs.getFloat("m7_out_vol")); + data.setM8OutVol(rs.getFloat("m8_out_vol")); + data.setM9OutVol(rs.getFloat("m9_out_vol")); + data.setM10OutVol(rs.getFloat("m10_out_vol")); + data.setM11OutVol(rs.getFloat("m11_out_vol")); + data.setM12OutVol(rs.getFloat("m12_out_vol")); + data.setM13OutVol(rs.getFloat("m13_out_vol")); + data.setM14OutVol(rs.getFloat("m14_out_vol")); + data.setM15OutVol(rs.getFloat("m15_out_vol")); + data.setM16OutVol(rs.getFloat("m16_out_vol")); + list.add(data); + } + return list; + } + }); + return list; + } //鍘嗗彶娴嬭瘯璁板綍鍏蜂綋鏌愪竴娆℃斁鐢垫暟鎹鎯� public List<BatttestdataId> getTinfDataWithTestRecordCount(String tableName, Integer testRecordCount, Integer recordNum, Integer granularity) { String sql="select distinct * from "+tableName+" "+ diff --git a/src/main/resources/mapper/BattInfMapper.xml b/src/main/resources/mapper/BattInfMapper.xml index 3ddd7c3..71b8776 100644 --- a/src/main/resources/mapper/BattInfMapper.xml +++ b/src/main/resources/mapper/BattInfMapper.xml @@ -231,6 +231,12 @@ <if test="stic.product!=null"> and tb_batt_inf.product=#{stic.product} </if> + <if test="stic.inuseStartTime!=null"> + and tb_batt_inf.inuse_time>=#{stic.inuseStartTime} + </if> + <if test="stic.inuseEndTime!=null"> + and tb_batt_inf.inuse_time<=#{stic.inuseEndTimee} + </if> <if test="stic.uid>100"> and tb_batt_inf.station_id in( select distinct station_id from db_user.tb_baojigroup_power,db_user.tb_baojigroup_usr -- Gitblit v1.9.1