Compare commits

...

12 Commits

Author SHA1 Message Date
wr
290ea2ffb2 数据中台参数调整 2026-01-29 14:14:58 +08:00
wr
eb99317dd7 中台母线获取接口信息调整 2024-05-15 14:49:07 +08:00
wr
144e9b65f1 代码提交 2024-01-29 08:43:00 +08:00
wr
783a256dae 1.台账业务修改
2.变电站-母线接口获取
3.各部门下,变电站母线数据获取
2023-11-16 14:37:01 +08:00
wr
963fefb173 河北数据台账信息导入和日报表数据导入代码提交 2023-07-26 15:08:53 +08:00
69b2625944 初始化项目 2023-06-28 14:26:21 +08:00
wr
d86dc8a676 代码提交 2023-06-21 16:28:11 +08:00
wr
55dbe9e74e 代码提交 2023-06-20 14:15:25 +08:00
wr
e007c94976 代码提交 2023-06-19 20:25:56 +08:00
wr
190380610e Merge remote-tracking branch 'origin/master' 2023-06-13 15:45:07 +08:00
0386b891cd 初始化项目 2023-06-13 15:44:53 +08:00
wr
66f6ec3d07 代码提交 2023-06-13 15:08:12 +08:00
40 changed files with 3609 additions and 700 deletions

View File

@@ -130,6 +130,12 @@
<version>3.0.10</version> <version>3.0.10</version>
</dependency> </dependency>
<dependency>
<groupId>org.joda.time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.9</version>
</dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-db</artifactId> <artifactId>common-db</artifactId>

View File

@@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
/** /**
* @author hongawen * @author hongawen
@@ -13,6 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@Slf4j @Slf4j
@MapperScan("com.njcn.**.mapper") @MapperScan("com.njcn.**.mapper")
@SpringBootApplication(scanBasePackages = "com.njcn") @SpringBootApplication(scanBasePackages = "com.njcn")
@EnableScheduling
public class HBSyncDataApplication { public class HBSyncDataApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(HBSyncDataApplication.class, args); SpringApplication.run(HBSyncDataApplication.class, args);

View File

@@ -1,71 +1,184 @@
package com.njcn.syncdata.controller; package com.njcn.syncdata.controller;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.njcn.syncdata.pojo.po.PWOPTransformerPSR; import com.njcn.syncdata.pojo.po.*;
import com.njcn.syncdata.service.IPmsCountLedgerService;
import com.njcn.syncdata.service.IPmsMidLedgerService;
import com.njcn.syncdata.service.IPowerDistributionareaService; import com.njcn.syncdata.service.IPowerDistributionareaService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.*;
import java.util.Map;
@RestController @RestController
@Slf4j
@RequestMapping("/dataImport") @RequestMapping("/dataImport")
@RequiredArgsConstructor @RequiredArgsConstructor
public class DataImportController { public class DataImportController {
private final IPowerDistributionareaService service; private final IPowerDistributionareaService service;
private final IPmsMidLedgerService iPmsMidLedgerService;
private final IPmsCountLedgerService iPmsCountLedgerService;
/** /**
* 登录获取token * 登录获取token
*
* @return * @return
*/ */
@GetMapping("/token") @GetMapping("/token")
public String token(){ public String token() {
return service.LoginToken(); return service.LoginToken();
} }
/** /**
* 获取数据中台数据 * 获取数据中台数据
*
* @return * @return
*/ */
@GetMapping("/getAdsList") @GetMapping("/getAdsList")
public String adsList(){ public List<AdsAstXbjcptGetFctgDi> adsList() {
return service.adsList(); List<AdsAstXbjcptGetFctgDi> info = new ArrayList<>();
//定义初始页数
Integer num = 0;
//定义每页返回数据条数
Integer size = 30000;
while (true) {
log.info(Thread.currentThread().getName() + "2.数据查询 循环了:" + num + 1 + "次。结束----");
List<AdsAstXbjcptGetFctgDi> adsList = service.adsList(size, num * size);
info.addAll(adsList);
log.info(Thread.currentThread().getName() + "2.数据查询 循环数据多少条:" + info + "结束----");
if (adsList.size() < size) {
break;
} else {
num++;
}
}
log.info(Thread.currentThread().getName() + "2.数据查询 AdsAstXbjcptGetFctgDi" + info + "结束----");
log.info(Thread.currentThread().getName() + "3.数据查询多少条 info" + info.size() + "结束----");
return info;
} }
/** /**
* 获取数据中台返回体 * 获取中台日报表数据
* @param token *
* @param ds
* @return
*/
@GetMapping("/adsDiList")
public List<AdsAstXbjcptGetFctgValueDi> adsDiList(String ds) {
return service.adsDiList(ds,300,0);
}
/**
* 获取业务中台返回体
*
* @param psrType * @param psrType
* @param fieldName * @param fieldName
* @param fieldValue * @param fieldValue
* @return * @return
*/ */
@GetMapping("/getResource") @GetMapping("/getResource")
public Map getResource(String token,String psrType, String fieldName,String fieldValue){ public Map getResource(String psrType, String fieldName, String fieldValue) {
return service.getResourceData(token,psrType,100,fieldName,fieldValue); return service.getResourceData(service.LoginToken(), psrType, 100, fieldName, fieldValue);
} }
/** /**
* 获取数据中台返回数据 * 获取业务中台返回数据
* @param token *
* @param psrType * @param psrType
* @param fieldName * @param fieldName
* @param fieldValue * @param fieldValue
* @return * @return
*/ */
@GetMapping("/getResourceData") @GetMapping("/getResourceData")
public List getResourceData(String token,String psrType, String fieldName,String fieldValue){ public List getResourceData(String psrType, String fieldName, String fieldValue) {
Map map = service.getResourceData(token, psrType,100, fieldName, fieldValue); Map map = service.getResourceData(service.LoginToken(), psrType, 100, fieldName, fieldValue);
List<PWOPTransformerPSR> data = JSONArray.parseArray(JSONArray.toJSONString(map.get("result")), PWOPTransformerPSR.class); List<PWOPTransformerPSR> data = JSONArray.parseArray(JSONArray.toJSONString(map.get("result")), PWOPTransformerPSR.class);
return data; return data;
} }
@GetMapping("/insertData")
public String getResourceData(){ @GetMapping("/getResourceTest")
Map map = service.insertData(); public List getResourceTest(Integer type, String fieldValue) {
return "data"; List<?> aas = new ArrayList<>();
if (type == 1) {
Map transformerData = service.getResourceData(service.LoginToken(), "PWOPTransformerPSR", 100, "ACCOUNT_ID", fieldValue);
aas = JSONArray.parseArray(JSONArray.toJSONString(transformerData.get("result")), PWOPTransformerPSR.class);
} else if (type == 2) {
Map feederLineData = service.getResourceData(service.LoginToken(), "PWFeederLinePSR", 100, "ID", fieldValue);
aas = JSONArray.parseArray(JSONArray.toJSONString(feederLineData.get("result")), PWFeederLinePSR.class);
//查询变电站
} else {
Map substationData = service.getResourceData(service.LoginToken(), "Substation", 100, "ID", fieldValue);
aas = JSONArray.parseArray(JSONArray.toJSONString(substationData.get("result")), Substation.class);
}
return aas;
} }
/**
* 台账导入
* @return
*/
@PostMapping("/insertData")
public String insertData() {
return service.insertData();
}
/**
* 日表数据导入
* @param ds
* @return
*/
@PostMapping("/insertDataDi")
public String insertDataDi(String ds) {
return service.insertDataDi(ds);
}
/**
* 变电站母线测
*
* @return
*/
@PostMapping("/insertMidLedger")
public Boolean insertMidLedger() {
return iPmsMidLedgerService.insertMidLedger();
}
/**
* 变电站母线总条数
*
* @return
*/
@PostMapping("/insertCountLedger")
public void insertCountLedger(String date) {
iPmsCountLedgerService.insertCountLedger(date);
}
@Scheduled(cron = "0 30 17 * * ?")
public void insert() {
log.info(Thread.currentThread().getName() + "1.定时器启动----");
DateTime dateTime = DateUtil.offsetDay(new Date(), -3);
String s=dateTime.toString();
String ds = s.substring(0, s.indexOf(" ")).replace("-","");
log.info(Thread.currentThread().getName() + "2.定时器执行数据日期 "+ds+"----");
service.insertDataDi(ds);
log.info(Thread.currentThread().getName() + "2.定时器执行数据成功 "+ds+"----");
}
@Scheduled(cron = "0 30 0 * * ?")
public void insertCountLedgerDate() {
log.info(Thread.currentThread().getName() + "1.定时器启动----");
DateTime dateTime = DateUtil.offsetDay(new Date(), 0);
String s=dateTime.toString();
String ds = s.substring(0, s.indexOf(" "));
log.info(Thread.currentThread().getName() + "2.变电站母线定时器执行数据日期 "+ds+"----");
iPmsCountLedgerService.insertCountLedger(ds);
log.info(Thread.currentThread().getName() + "2.变电站母线定时器执行数据成功 "+ds+"----");
}
} }

View File

@@ -0,0 +1,41 @@
package com.njcn.syncdata.controller;
import com.njcn.syncdata.pojo.zt.HarmonicHistoryC;
import com.njcn.syncdata.pojo.zt.HarmonicHistoryP;
import com.njcn.syncdata.pojo.zt.HarmonicHistoryV;
import com.njcn.syncdata.service.HarmonicHistory;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author wr
* @description
* @date 2024/1/22 16:40
*/
@RestController
@Slf4j
@RequestMapping("/History")
@RequiredArgsConstructor
public class HarmonicHistoryController {
private final HarmonicHistory harmonicHistory;
@GetMapping("/getDataV")
public List<HarmonicHistoryV> getDataV(String id,String startTime,String endTime) {
return harmonicHistory.listHarmonicHistoryV(id, startTime, endTime);
}
@GetMapping("/getDataP")
public List<HarmonicHistoryP> getDataP(String id, String startTime, String endTime) {
return harmonicHistory.listHarmonicHistoryP(id, startTime, endTime);
}
@GetMapping("/getDataC")
public List<HarmonicHistoryC> getDataC(String id, String startTime, String endTime) {
return harmonicHistory.listHarmonicHistoryC(id, startTime, endTime);
}
}

View File

@@ -18,7 +18,7 @@ import java.util.List;
public interface DictDataMapper extends BaseMapper<DictData> { public interface DictDataMapper extends BaseMapper<DictData> {
List<DictData> selectList(@Param("code") String code); List<DictData> selectList(@Param("code") String code);
DictData selectByCode(@Param("code") String code); DictData selectByCode(@Param("dataCode") String dataCode,@Param("typeCode") String typeCode);
List<Dept> selectUserList(); List<Dept> selectUserList();
} }

View File

@@ -0,0 +1,16 @@
package com.njcn.syncdata.mapper;
import com.njcn.db.mapper.BatchBaseMapper;
import com.njcn.syncdata.pojo.po.PmsCountLedger;
/**
* <p>
* 每日变电站-母线数据总条目表 Mapper 接口
* </p>
*
* @author wr
* @since 2023-11-13
*/
public interface PmsCountLedgerMapper extends BatchBaseMapper<PmsCountLedger> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.syncdata.mapper;
import com.njcn.db.mapper.BatchBaseMapper;
import com.njcn.syncdata.pojo.po.PmsMidLedger;
/**
* <p>
* 变电站-母线数据中间表 Mapper 接口
* </p>
*
* @author wr
* @since 2023-11-13
*/
public interface PmsMidLedgerMapper extends BatchBaseMapper<PmsMidLedger> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.syncdata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.syncdata.pojo.po.SysDeptTeam;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wr
* @since 2024-05-11
*/
public interface SysDeptTeamMapper extends BaseMapper<SysDeptTeam> {
}

View File

@@ -9,7 +9,7 @@
sys_dict_type sys_dict_type sys_dict_type sys_dict_type
WHERE sys_dict_data.type_id = sys_dict_type.id WHERE sys_dict_data.type_id = sys_dict_type.id
AND sys_dict_type.code = #{code} AND sys_dict_type.code = #{code}
AND sys_dict_data.state = 1
order by sort order by sort
</select> </select>
<select id="selectUserList" resultType="com.njcn.syncdata.pojo.po.Dept"> <select id="selectUserList" resultType="com.njcn.syncdata.pojo.po.Dept">
@@ -17,9 +17,11 @@
</select> </select>
<select id="selectByCode" resultType="com.njcn.syncdata.pojo.po.DictData"> <select id="selectByCode" resultType="com.njcn.syncdata.pojo.po.DictData">
SELECT sys_dict_data.* SELECT sys_dict_data.*
FROM sys_dict_data sys_dict_data FROM sys_dict_data sys_dict_data,
WHERE sys_dict_type sys_dict_type
sys_dict_data.code = #{code} WHERE sys_dict_data.type_id = sys_dict_type.id
and sys_dict_data.code = #{dataCode}
and sys_dict_type.code = #{typeCode}
and sys_dict_data.state = 1 and sys_dict_data.state = 1
</select> </select>
</mapper> </mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.syncdata.mapper.PmsCountLedgerMapper">
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.syncdata.mapper.PmsMidLedgerMapper">
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.device.mapper.SysDeptTeamMapper">
</mapper>

View File

@@ -0,0 +1,455 @@
package com.njcn.syncdata.pojo.enums;
import lombok.Getter;
/**
* 类的介绍:字典数据名称
*
* @author xuyang
* @version 1.0.0
* @createTime 2021/8/5 21:56
*/
@Getter
public enum DicDataEnum {
/**
* 数据中心稳态统计指标
*/
PLPC_ENUM("频率偏差", "PLPC"),
DYPC_ENUM("电压偏差", "DYPC"),
SXDYBPHD_ENUM("负序电压不平衡度", "SXDYBPHD"),
XBDY_ENUM("谐波电压", "XBDY"),
CSSB_ENUM("长时闪变", "CSSB"),
XBDL_ENUM("谐波电流", "XBDL"),
FXDL_ENUM("负序电流", "FXDL"),
JXBDY_ENUM("间谐波电压", "JXBDY"),
/**
* 稳态统计指标
*/
VOLTAGE_DEV("电压偏差", "Voltage_Dev"),
FLICKER("长时闪变", "Flicker"),
HARMONIC_VOLTAGE("谐波电压", "Harmonic_Voltage"),
HARMONIC_CURRENT("谐波电流", "Harmonic_Current"),
INTERHARMONIC_VOLTAGE("间谐波电压", "Interharmonic_Voltage"),
PHASE_VOLTAGE("负序电压不平衡度", "phase_Voltage"),
FREQUENCY_DEV("频率偏差", "Frequency_Dev"),
NEG_CURRENT("负序电流", "Neg_Current"),
TOTAL_INDICATOR("总稳态指标", "Total_Indicator"),
/**
* 污区图统计类型
*/
I_ALL("谐波电流", "I_All"),
V_HARMONIC("谐波电压", "V_Harmonic"),
/**
* 监测点类别
*/
ONE_LINE("I类监测点", "One_Line"),
TWO_LINE("II类监测点", "Two_Line"),
THREE_LINE("III类监测点", "Three_Line"),
/**
* 监测点类型
*/
Power_Supply_Point("供电点","Power_Supply_Point"),
Pub_Connect_Point("公共连接点PCC","Pub_Connect_Point"),
Parallel_Point("并网点","Parallel_Point"),
Other("其他","Other"),
/**
* 电压互感器类型
*/
Cap_V("电容式电压互感器","Cap_V"),
Pele_V("光电式电压互感器","Pele_V"),
A_V("A类测试电压互感器","A_V"),
Elec_V("电子式电压互感器","Elec_V"),
Other_S("其他","Other"),
Ele_V("电磁式电压互感器","Ele_V"),
/**
* 中性点接地方式
*/
Ground_Res("经非线性电阻接地-消谐器","Ground_Res"),
Ground_Trans("经互感器接地-4PT","Ground_Trans"),
Ground_Dir("直接接地-3PT","Ground_Dir"),
A_Center("A类测试中性点接地方式","A_Center"),
Ground_Other("其他","Other"),
/**
* 终端类型
*/
DEV_QUALITY("电能质量监测终端", "Dev_Quality"),
DEV_SMART("智能电表", "Dev_Smart"),
DEV_MIX("智能融合终端", "Dev_Mix"),
/***
* 告警类型
*/
COMM_ERR("通讯异常", "Comm_Err"),
/**
* 暂态统计指标
*/
TOTAL_INDICATORS("总暂态指标", "Total_Indicators"),
VOLTAGE_DIP("电压暂降", "Voltage_Dip"),
VOLTAGE_RISE("电压暂升", "Voltage_Rise"),
SHORT_INTERRUPTIONS("短时中断", "Short_Interruptions"),
DISTURBANCE("扰动", "Disturbance"),
OTHER("其他", "Other"),
RECORDING_WAVE("录波", "Recording_Wave"),
/**
* 数据类型
*/
MAINNET_POINT("主网测点", "Mainnet_Point"),
DISTRIBUTION_POINT("配网测点", "Distribution_Point"),
/**
* 分布式光伏台区渗透率水平
*/
RATE_0_25("0-25", "Rate_0_25"),
RATE_25_50("25-50", "Rate_25_50"),
RATE_50_75("50-75", "Rate_50_75"),
RATE_75_100("75-100", "Rate_75_100"),
RATE_100("100", "Rate_100"),
/**
* 入网报告状态
*/
NEWLY("新建", "Newly"),
AUDIT("待审核", "Audit"),
FAILED("未通过", "Failed"),
FINISH("已生效", "Finish"),
/**
* 审核状态
*/
INIT("新建", "Init"),
FAIL("未通过", "Fail"),
AUDITT("待审核", "Auditt"),
SUCCESS("已通过", "Success"),
/**
* 填报进度
*/
NOT_REPORTED("未填报", "Not_Reported"),
INSIGHTS("成效分析", "Insights"),
PLAN_MEASURES("计划整改措施", "Plan_Measures"),
ACTUAL_MEASURES("实际采取措施", "Actual_Measures"),
CAUSE_ANALYSIS("原因分析", "Cause_Analysis"),
ARCHIVED("已归档", "Archived"),
/**
* 问题来源
*/
ONLINE("在线监测告警", "Online"),
DEV_EXCEPTION("设备异常", "Dev_Exception"),
GENERAL("普测超标", "General"),
USER_COMPLAINTS("用户投诉", "User_Complaints"),
/**
* 台区电能质量事件类型
*/
EVENT_TYPE_P("低功率因数0.7-0.8", "Event_Type_p"),
EVENT_TYPE_U("潮流倒送", "Event_Type_u"),
EVENT_TYPE_T("电压越上限15%以上", "Event_Type_t"),
EVENT_TYPE_W("电压越限", "Event_Type_w"),
EVENT_TYPE_O("低功率因数0.7以下", "Event_Type_o"),
EVENT_TYPE_E("电压越上限", "Event_Type_e"),
EVENT_TYPE_Y("电压越下限", "Event_Type_y"),
EVENT_TYPE_L("低功率因数0.8-0.9", "Event_Type_l"),
EVENT_TYPE_Q("电压总谐波畸变率超标", "Event_Type_q"),
EVENT_TYPE_R("电压越上限7%-15%", "Event_Type_r"),
EVENT_TYPE_I("低功率因数", "Event_Type_i"),
PENET_LIMIT("渗透率超上限", "Penet_Limit"),
EVENT_TYPE_A("潮流倒送导致设备重载", "Event_Type_a"),
EVENT_TYPE_S("潮流倒送导致设备过载", "Event_Type_s"),
EVENT_TYPE_D("电压越上限严重度", "Event_Type_d"),
EVENT_TYPE_F("电压越下限严重度", "Event_Type_f"),
EVENT_TYPE_G("渗透率", "Event_Type_g"),
EVENT_TYPE_Z("超标3%-10%", "Event_Type_z"),
EVENT_TYPE_X("超标10%以下", "Event_Type_x"),
EVENT_TYPE_C("重过载", "Event_Type_c"),
/**
* 监测点状态
*/
RUN("运行", "Run"),
OVERHAUL("检修", "Overhaul"),
DEBUGGING("调试", "Debugging"),
DECOMMISSIONING("停运", "Decommissioning"),
RETIREMENT("退役", "Retirement"),
/**
* 终端状态
*/
FREE_MOORY("剩余内存", "Free_Mmory"),
FREE_STORE("剩余存储空间", "Free_Store"),
NOT_OPERATION("未投运", "Not_Operation"),
RUNNING("在运", "Running"),
RETIRE("退役", "Retire"),
ON_SITE("现场留用", "On_Site"),
STOCK_STANDBY("库存备用", "Stock_Standby"),
TO_BE_SCRAPPED("待报废", "To_Be_Scrapped"),
SCRAP("报废", "Scrap"),
/**
* 监测点标签(废弃,统一使用监测点对象类型)
*/
ONSHORE_WIND("陆上风电", "Onshore_Wind"),
POWER_STATION("光伏电站", "Power_Station"),
ELECTRIFIED_RAILWAYS("电气化铁路", "Electrified_Railways"),
SMELT_LOAD("冶炼负荷", "Smelt_Load"),
DISTRIBUTED_PHOTOVOLTAICS("分布式光伏", "Distributed_Photovoltaics"),
/**
* 电压等级
*/
AC_380V("交流380V含400V", "AC_380V400V"),
DY_380V("交流0.38kV", "0.38kV"),
DY_10KV("交流10kV", "10kV"),
DY_35KV("交流35kV", "35kV"),
DY_110KV("交流110kV", "110kV"),
/**
* 电压等级
* 此电压用于计算,真实code请使用上面枚举
*/
V100("100V", "0.1",0.1f),
V220("220V", "0.22",0.22f),
KV038("0.38kV", "0.38",0.38f),
V380("380V", "0.38",0.38f),
KV04("0.4kV", "0.4",0.4f),
KV06("0.6kV", "0.6",0.6f),
V400("400V", "0.4",0.4f),
KV1("1kV", "1",1.0f),
KV6("6kV", "6",6.0f),
KV10("10kV", "10",10.0f),
KV20("20kV", "20",20.0f),
KV30("30kV", "30",30.0f),
KV35("35kV", "35",35.0f),
KV50("50kV", "50",50.0f),
KV66("66kV", "66",66.0f),
KV72_5("72.5kV", "725",725.0f),
KV110("110kV", "110",110.0f),
KV120("120kV", "120",120.0f),
KV125("125kV", "125",125.0f),
KV200("200kV", "200",200.0f),
KV220("220kV", "220",220.0f),
KV320("320kV", "320",320.0f),
KV330("330kV", "330",330.0f),
KV400("400kV", "400",400.0f),
KV500("500kV", "500",500.0f),
KV600("600kV", "600",600.0f),
KV660("660kV", "660",660.0f),
KV750("750kV", "750",750.0f),
KV1000("1000kV", "1000",1000.0f),
KV1100("1100kV", "1100",1100.0f),
/**
* 计划采取实施
*/
GOVERNANCE_FACTS("事实治理工程", "Governance_Facts"),
GRID_OPERATES("电网运行方式调整", "Grid_Operates"),
PARAMETER_OPT("治理装置运行参数优化", "Parameter_Opt"),
RECTIFY_ORDERS("提出整改工单", "Rectify_Orders"),
/**
* 牵引站变压器接线方式
*/
SINGLE_TRANS("单相牵引变压器", "Single_Trans"),
THREE_TRANS("三相YN d11联结牵引变压器", "Three_Trans"),
THREE_PHASE_TRANS("三相YN d11 d1组成的牵引变压器", "Three_Phase_Trans"),
SCOTT_TRANS("SCOTT牵引变压器", "SCOTT_Trans"),
YN_V_TRANS("YN v联结平衡牵引变压器", "YN_V_Trans"),
YN_A_TRANS("YN A联结平衡牵引变压器", "YN_A_Trans"),
/**
* 监测对象
*/
PHOTOVOLT("光伏台区", "Photovolt"),
FEEDER_TENKV("10kV馈线", "Feeder_TenkV"),
MAIN_CHANGE("主变", "Main_Change"),
/**
* 工单状态
*/
PEND_DISPATCH("待派单", "Pend_Dispatch"),
DISPATCHED("已派单", "Dispatched"),
CLOSED("已关闭", "Closed"),
/**
* 问题类型
*/
VOLTAGE_LIMIT("谐波电压越限", "Voltage_Limit"),
CURRENT_LIMIT("谐波电流越限", "Current_Limit"),
/**
* 审核状态
*/
REVIEW("待审核", "Review"),
AUDITED("已审核", "Audited"),
APPROVED("审核通过", "Approved"),
NOT_APPROVED("审核通过", "Not_Approved"),
/**
* 审核处理
*/
GENERATE("生成工单", "Generate"),
NO_REQUIRED("无需处理", "No_Required"),
/**
* 工单流程
*/
GENERATED("生成工单", "Generated"),
DISPATCH("派单", "Dispatch"),
FEEDBACK("反馈", "Feedback"),
AUDITING("审核", "Auditing"),
RECTIFICATION("整改", "Rectification"),
ASSESS("评估", "Assess"),
PIGEONHOLE("归档", "Pigeonhole"),
/**
* 评估结果
*/
PASS("评估合格", "Pass"),
NOT_PASS("评估不合格", "Not_Pass"),
/**
* 工单类型
*/
RECT_ORDER("整改单", "Rect_Order"),
/**
* 一级业务类型
*/
TRANS_BUSINESS("运检业务", "Trans_Business"),
/**
* 日志字典类型
*/
LINE_PARAMETER("监测点参数修改", "Line_Parameter"),
DEV_PARAMETER("设备状态修改", "Dev_Parameter"),
WEB_ADD("web新增用户", "Web_Add"),
DATA_PLAN("流量套餐修改", "Data_Plan"),
/**
* 接线方式
*/
STAR("星型接线", "Trans_Business"),
STAR_TRIANGLE("星三角", "Star_Triangle"),
OPEN_DELTA("开口三角", "Open_Delta"),
/**
* 装置类型(治理)
*/
GATEWAY_DEV("网关", "Gateway_Dev"),
CONNECT_DEV("直连设备", "Connect_Dev"),
/**
* 治理数据模型
*/
EPD("电能数据","Epd"),
PQD("电能质量数据","Pqd"),
BMD("基础测量数据","Bmd"),
EVT("事件","Evt"),
ALM("告警","Alm"),
STS("状态","Sts"),
DI("开入","Di"),
DO("电能数据","Do"),
PARM("参数","Parm"),
SET("定值","Set"),
INSET("内部定值","InSet"),
CTRL("控制","Ctrl"),
/**
* 暂降原因
*/
SHORT_TROUBLE("短路故障", "Short_Trouble"),
/**
* 暂降类型
*/
PHASE_A("A相接地", "Phase_A"),
PHASE_B("B相接地", "Phase_B"),
PHASE_C("C相接地", "Phase_C"),
INTERPHASE_AB("AB相间", "Interphase_AB"),
INTERPHASE_BC("BC相间", "Interphase_BC"),
INTERPHASE_AC("AC相间", "Interphase_AC"),
GROUND_AB("AB两相接地", "Ground_AB"),
GROUND_BC("BC两相接地", "Ground_BC"),
GROUND_AC("AC两相接地", "Ground_AC"),
GROUND_ABC("三相接地", "Ground_ABC"),
TYPE_REST("其他", "Type_Rest"),
/**
* 监测点位置
*/
LOAD_SIDE("负载侧", "Load_Side"),
GRID_SIDE("电网侧", "Grid_Side"),
OUTPUT_SIDE("输出侧", "Output_Side"),
/**
* 警告级别
*/
ALARM("告警", "Alarm"),
FAULT("故障", "Fault"),
/**
* 装置级别
*/
MOST_IMPORMENT("极重要","Vital"),
/**
* 测量信号输入形式
*/
NUMBER_SIGNAL("数字信号","Digital_Signal"),
SIMULATION_SIGNAL("模拟信号","Analog_Signal"),
/**
* 设备地区特征
*/
DOWNTOWN("市中心区","downtown"),
CITY("市区","city"),
TOWN("城镇","town"),
COUNTY_SEAT("县城区","County_Seat"),
COUNTRYSIDE("农村","countryside"),
TOWNSHIP("乡镇","township"),
AGRO_AREA("农牧区","Agro_Area"),
/**
* 设备使用性质代码
*/
DEDICATED("专用","dedicated"),
PUBLIC("公用","public");
private final String name;
private final String code;
private final Float value;
DicDataEnum(String name, String code,Float value) {
this.name = name;
this.code = code;
this.value = value;
}
DicDataEnum(String name, String code) {
this.name = name;
this.code = code;
this.value = null;
}
}

View File

@@ -0,0 +1,100 @@
package com.njcn.syncdata.pojo.enums;
import lombok.Getter;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2021/8/5 21:56
*/
@Getter
public enum DicDataTypeEnum {
/**
* 字典类型名称
*/
FRONT_TYPE("前置类型","Front_Type"),
DEV_TYPE("终端型号","Dev_Type"),
DEV_VARIETY("终端类型","Dev_Variety"),
DEV_FUN("终端功能","Dev_Fun"),
DEV_STATUS("终端状态","Dev_Status"),
DEV_LEVEL("终端等级","Dev_Level"),
DEV_CONNECT("接线方式","Dev_Connect"),
DEV_MANUFACTURER("制造厂商","Dev_Manufacturers"),
//电压等级用于pms区分交直流
DEV_VOLTAGE("电压等级","Dev_Voltage"),
//标准电压等级用于pq不区分交直流
DEV_VOLTAGE_STAND("标准电压等级","Dev_Voltage_Stand"),
EVENT_REASON("暂降原因","Event_Reason"),
EVENT_TYPE("暂降类型","Event_Type"),
BUSINESS_TYPE("行业类型","Business_Type"),
INTERFERENCE_SOURCE_TYPE("干扰源类型","Interference_Source"),
ALARM_TYPE("告警类型","alarm_Type"),
DEV_OPS("运维日志","Dev_Ops"),
INDICATOR_TYPE("指标类型","Indicator_Type"),
COMMUNICATE_TYPE("通讯类型","Communicate_Type"),
RATE_TYPE("费率类型","Rate_Type"),
ELE_LOAD_TYPE("用能负荷类型","Ele_Load_Type"),
ELE_STATISTICAL_TYPE("用能统计类型","Ele_Statistical_Type"),
REPORT_TYPE("自定义报表类型","Report_Type"),
LINE_MARK("监测点评分等级","Line_Grade"),
LINE_TYPE("监测点类型","Line_Type"),
STEADY_STATIS("稳态统计指标","Steady_Statis"),
EVENT_STATIS("暂态指标","Event_Statis"),
MONITORING_LABELS("监测点标签","Monitoring_Labels"),
POLLUTION_STATIS("污区图统计类型","Pollution_Statis"),
BENCHMARK_INDICATORS("基准水平评价指标","Benchmark_Indicator"),
LINE_SORT("监测点类别","Line_Sort"),
DATA_TYPE("数据类型","Data_Type"),
PERMEABILITY_TYPE("分布式光伏台区渗透率水平","Permeability_Type"),
ON_NETWORK_STATUS("报告状态","On-network_Status"),
AUDIT_STATUS("审核状态","Audit_Status"),
FILL_PROGRESS("填报进度","Fill_Progress"),
PROBLEM_SOURCES("问题来源","Problem_Sources"),
AREA_PQ_EVENT_TYPE("台区电能质量事件类型","area_pq_event_type"),
LINE_STATE("监测点状态","Line_State"),
DEVICE_STATUS("设备状态","Device_Status"),
INTERFERENCE_SOURCE("监测对象类别","Interference_Source"),
PLAN_TAKE("计划采取实施","Plan_Take"),
MONITOR_OBJ("监测对象","Monitor_Obj"),
CONNET_GROUP_WAY("牵引站变压器接线方式","Connet_Group_Way"),
WORK_ORDER_STATUS("工单状态","Work_Order_Status"),
PROBLEM_TYPE("问题类型","Problem_Type"),
CHECK_STATUS("审核状态","Check_Status"),
CHECK_RESULT("审核处理","Check_Result"),
WORK_ORDER_PROCESS("工单流程","Work_Order_Process"),
ASSESS_RESULT("评估结果","Assess_Result"),
WORK_ORDER_TYPE("工单类型","Work_Order_Type"),
PRIMARY_TYPE("一级业务类型","Primary_Type"),
DEV_CLASS("终端类型(治理)","Dev_Class"),
CS_STATISTICAL_TYPE("治理统计类型","Cs_Statistical_Type"),
LINE_POSITION("监测点位置","Line_Position"),
ALARM_LEVEL("警告级别","Alarm_Level"),
CS_DATA_TYPE("治理数据模型", "Cs_Data_Type"),
//pms
DEV_CATEGORY("装置类别","Device_Category"),
DEV_GRADE("装置级别","Dev_Level"),
INPUT_SIGNAL("测量信号输入形式","Signal_form"),
VOLTAGE_TRANSFORMER("电压互感器类型","Voltage_Transformer"),
Neutral_Point("中性点接地方式","Neutral_Point"),
DEVICE_REGIONLYPE("设备地区特征","Area"),
DEVICE_USERNATURE("设备使用性质代码","Device_UseNature");
private final String name;
private final String code;
DicDataTypeEnum(String name,String code){
this.name=name;
this.code=code;
}
}

View File

@@ -24,7 +24,7 @@ public class AdsAstXbjcptGetFctgDi {
/** /**
* 计量点号 * 计量点号
*/ */
private Integer id; private String id;
/** /**
* 台区名称 * 台区名称
*/ */
@@ -33,10 +33,7 @@ public class AdsAstXbjcptGetFctgDi {
* 台区编号 * 台区编号
*/ */
private String tg_no; private String tg_no;
/**
* 台区区域划分类别,01、市中心区02、市区,03、 城镇,04、农村
*/
private String area_type;
/** /**
* 公变专变标志台区是0.公变或者1.专变 * 公变专变标志台区是0.公变或者1.专变
*/ */

View File

@@ -0,0 +1,90 @@
package com.njcn.syncdata.pojo.po;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author wr
* @description
* @date 2023/6/20 16:29
*/
@Data
public class AdsAstXbjcptGetFctgValueDi {
/**
*台区标识
*/
private String tg_id;
/**
*计量点号
*/
private String id;
/**
*电压变比
*/
private BigDecimal pt;
/**
*电流变比
*/
private BigDecimal ct;
/**
*相位标志 1-A2-B3-C
*/
private String Phase_flag;
/**
*电压最大值
*/
private BigDecimal max_u;
/**
*电压最小值
*/
private BigDecimal min_u;
/**
*电压平均值
*/
private BigDecimal avg_u;
/**
*单相有功功率-最大值
*/
private BigDecimal max_p;
/**
*单相有功功率-最小值
*/
private BigDecimal min_p;
/**
*单相有功功率-平均值
*/
private BigDecimal avg_p;
/**
*单相无功功率-最大值
*/
private BigDecimal max_q;
/**
*单相无功功率-最小值
*/
private BigDecimal min_q;
/**
*单相无功功率-平均值
*/
private BigDecimal avg_q;
/**
*台区电压越上限7%-15%时长h
*/
private BigDecimal up7_over_time;
/**
*台区电压越上限15%及以上时长h
*/
private BigDecimal up15_over_time;
/**
*台区电压越下限时长h
*/
private BigDecimal down_over_time;
/**
*台区潮流倒送时长h
*/
private BigDecimal neg_p_time;
/**
*日期
*/
private String ds;
}

View File

@@ -0,0 +1,24 @@
package com.njcn.syncdata.pojo.po;
import lombok.Data;
/**
* @author wr
* @description 变电站内母线资产
* @date 2023/11/10 14:44
*/
@Data
public class BusbarAsset {
/**
* 外部系统ID
*/
private String ACCOUNT_ID;
/**
* 资产编码
*/
private String ASSET_NO;
}

View File

@@ -0,0 +1,67 @@
package com.njcn.syncdata.pojo.po;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @author wr
* @description 母线台账获取
* @date 2023/11/10 14:44
*/
@Data
public class BusbarPSR {
/**
* 设备id
*/
private String ID;
/**
* 设备名称
*/
private String NAME;
/**
* 所属地市
*/
private String district;
/**
* 所属县局
*/
private String depart;
/**
* 运行单位
*/
private String section;
/**
* 维护班组
*/
private String maintenance_team;
/**
* 根设备
*/
private String root_id;
/**
* 运行状态
*/
private String RUN_STATUS;
/**
* 电压等级
*/
private String VOLTAGELEVEL_ID;
/**
* 运行时间
*/
private LocalDateTime RUN_DATE;
/**
* 外部系统ID
*/
private String ACCOUNT_ID;
}

View File

@@ -13,7 +13,7 @@ public class PWOPTransformerPSR {
/** /**
* 外部系统id * 外部系统id
*/ */
private String ACCOUNT_ID; private String ID;
/** /**
* 根设备id * 根设备id
@@ -34,6 +34,12 @@ public class PWOPTransformerPSR {
* 运行状态 * 运行状态
*/ */
private String RUN_STATUS; private String RUN_STATUS;
/**
* 台区区域划分类别,01、市中心区02、市区,03、 城镇,04、农村
*/
private String REGION_TYPE;
/** /**
* 电压等级 * 电压等级
*/ */

View File

@@ -0,0 +1,51 @@
package com.njcn.syncdata.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
* 每日变电站-母线数据总条目表
* </p>
*
* @author wr
* @since 2023-11-13
*/
@Getter
@Setter
@TableName("pms_count_ledger")
public class PmsCountLedger {
private static final long serialVersionUID = 1L;
/**
* 日期
*/
@TableField("Date")
private LocalDateTime date;
/**
* 运行单位
*/
@TableField("Section")
private String section;
/**
* 变电站总数
*/
@TableField("Sub_Count")
private Integer subCount;
/**
* 母线总数
*/
@TableField("Subv_Count")
private Integer subvCount;
}

View File

@@ -0,0 +1,174 @@
package com.njcn.syncdata.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
* 变电站-母线数据中间表
* </p>
*
* @author wr
* @since 2023-11-13
*/
@Getter
@Setter
@TableName("pms_mid_ledger")
public class PmsMidLedger {
private static final long serialVersionUID = 1L;
/**
* Id
*/
@TableId(value = "Id")
private String id;
/**
* 父节点0为根节点
*/
@TableField("Pid")
private String pid;
/**
* 上层所有节点
*/
@TableField("Pids")
private String pids;
/**
* 所属地市id
*/
@TableField("cityOrg")
private String cityOrg;
/**
* 所属地市名称
*/
@TableField("cityOrgName")
private String cityOrgName;
/**
* 所属县局id
*/
@TableField("SectionId")
private String SectionId;
/**
* 所属县局名称
*/
@TableField("Section")
private String section;
/**
* 运维班组
*/
@TableField("maintCrew")
private String maintCrew;
/**
* 运维班组名称
*/
@TableField("maintCrewName")
private String maintCrewName;
/**
* 运维单位ID(外键)
*/
@TableField(value = "Operation_Id")
private String operationId;
/**
* 运维单位名称
*/
@TableField(value = "Operation_Name")
private String operationName;
/**
* 名称
*/
@TableField("Name")
private String name;
/**
* 等级0-变电站1-母线;
*/
@TableField("Level")
private Integer level;
/**
* 排序默认为0有特殊排序需要时候人为输入
*/
@TableField("Sort")
private Integer sort;
/**
* 备注
*/
@TableField("Remark")
private String remark;
/**
* 状态 0-删除1-正常;默认正常
*/
@TableField("State")
private Integer state;
/**
* 运行状态
*/
@TableField("Run_Status")
private String runStatus;
/**
* 电压等级
*/
@TableField("voltage_Level")
private String voltageLevel;
/**
* 投运时间
*/
@TableField("Operation_Date")
private LocalDateTime operationDate;
/**
* 资产编号
*/
@TableField("Asset_No")
private String Asset_No;
/**
* 创建用户
*/
@TableField("Create_By")
private String createBy;
/**
* 创建时间
*/
@TableField("Create_Time")
private LocalDateTime createTime;
/**
* 更新用户
*/
@TableField("Update_By")
private String updateBy;
/**
* 更新时间
*/
@TableField("Update_Time")
private LocalDateTime updateTime;
}

View File

@@ -1,9 +1,10 @@
package com.njcn.syncdata.pojo.po; package com.njcn.syncdata.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
/** /**
* <p> * <p>
@@ -14,9 +15,8 @@ import lombok.EqualsAndHashCode;
* @since 2022-10-14 * @since 2022-10-14
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true)
@TableName("pms_power_distributionarea") @TableName("pms_power_distributionarea")
public class PowerDistributionarea extends BaseEntity { public class PowerDistributionarea {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -86,6 +86,11 @@ public class PowerDistributionarea extends BaseEntity {
*/ */
private String regionalism; private String regionalism;
/**
* 设备地区特征
*/
private String devRegionalism;
/** /**
* 是否农网0-否1 * 是否农网0-否1
*/ */
@@ -156,4 +161,27 @@ public class PowerDistributionarea extends BaseEntity {
* 数据状态0-手动录入1-gw台账录入 * 数据状态0-手动录入1-gw台账录入
*/ */
private Integer inputStatus; private Integer inputStatus;
/**
* 创建用户
*/
private String createBy;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/**
* 更新用户
*/
private String updateBy;
/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
} }

View File

@@ -2,9 +2,11 @@ package com.njcn.syncdata.pojo.po;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
/** /**
* @author wr * @author wr
* @description * @description 变电站获取
* @date 2023/6/7 11:15 * @date 2023/6/7 11:15
*/ */
@Data @Data
@@ -21,4 +23,36 @@ public class Substation {
private String NAME; private String NAME;
/**
* 所属地市
*/
private String district;
/**
* 所属县局
*/
private String depart;
/**
* 运行单位
*/
private String section;
/**
* 维护班组
*/
private String maintenance_team;
/**
* 运行状态
*/
private String RUN_STATUS;
/**
* 电压等级
*/
private String VOLTAGELEVEL_ID;
/**
* 投运日期
*/
private LocalDateTime RUN_DATE;
} }

View File

@@ -0,0 +1,49 @@
package com.njcn.syncdata.pojo.po;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author wr
* @since 2024-05-11
*/
@Getter
@Setter
@TableName("sys_dept_team")
public class SysDeptTeam {
private static final long serialVersionUID = 1L;
/**
* 部门表Id
*/
@TableId("Id")
@ExcelProperty("ISC_ID")
private String id;
/**
* 父节点Id
*/
@TableField("Pid")
@ExcelProperty("上级部门ID")
private String pid;
/**
* 部门名称
*/
@TableField("Name")
@ExcelProperty("部门名称")
private String name;
}

View File

@@ -0,0 +1,212 @@
package com.njcn.syncdata.pojo.zt;
import lombok.Data;
/**
* @author wr
* @description 华云远程访问返回功率因数实体
* @date 2024/1/22 14:59
*/
@Data
public class HarmonicHistoryC {
//台区编号
private String tg_id;
//数据id
private String id;
//相位标识
private Integer phase_flag;
//时间
private String ds;
//功率因数第1个点
private Float c1;
//功率因数第2个点
private Float c2;
//功率因数第3个点
private Float c3;
//功率因数第4个点
private Float c4;
//功率因数第5个点
private Float c5;
//功率因数第6个点
private Float c6;
//功率因数第7个点
private Float c7;
//功率因数第8个点
private Float c8;
//功率因数第9个点
private Float c9;
//功率因数第10个点
private Float c10;
//功率因数第11个点
private Float c11;
//功率因数第12个点
private Float c12;
//功率因数第13个点
private Float c13;
//功率因数第14个点
private Float c14;
//功率因数第15个点
private Float c15;
//功率因数第16个点
private Float c16;
//功率因数第17个点
private Float c17;
//功率因数第18个点
private Float c18;
//功率因数第19个点
private Float c19;
//功率因数第20个点
private Float c20;
//功率因数第21个点
private Float c21;
//功率因数第22个点
private Float c22;
//功率因数第23个点
private Float c23;
//功率因数第24个点
private Float c24;
//功率因数第25个点
private Float c25;
//功率因数第26个点
private Float c26;
//功率因数第27个点
private Float c27;
//功率因数第28个点
private Float c28;
//功率因数第29个点
private Float c29;
//功率因数第30个点
private Float c30;
//功率因数第31个点
private Float c31;
//功率因数第32个点
private Float c32;
//功率因数第33个点
private Float c33;
//功率因数第34个点
private Float c34;
//功率因数第35个点
private Float c35;
//功率因数第36个点
private Float c36;
//功率因数第37个点
private Float c37;
//功率因数第38个点
private Float c38;
//功率因数第39个点
private Float c39;
//功率因数第40个点
private Float c40;
//功率因数第41个点
private Float c41;
//功率因数第42个点
private Float c42;
//功率因数第43个点
private Float c43;
//功率因数第44个点
private Float c44;
//功率因数第45个点
private Float c45;
//功率因数第46个点
private Float c46;
//功率因数第47个点
private Float c47;
//功率因数第48个点
private Float c48;
//功率因数第49个点
private Float c49;
//功率因数第50个点
private Float c50;
//功率因数第51个点
private Float c51;
//功率因数第52个点
private Float c52;
//功率因数第53个点
private Float c53;
//功率因数第54个点
private Float c54;
//功率因数第55个点
private Float c55;
//功率因数第56个点
private Float c56;
//功率因数第57个点
private Float c57;
//功率因数第58个点
private Float c58;
//功率因数第59个点
private Float c59;
//功率因数第60个点
private Float c60;
//功率因数第61个点
private Float c61;
//功率因数第62个点
private Float c62;
//功率因数第63个点
private Float c63;
//功率因数第64个点
private Float c64;
//功率因数第65个点
private Float c65;
//功率因数第66个点
private Float c66;
//功率因数第67个点
private Float c67;
//功率因数第68个点
private Float c68;
//功率因数第69个点
private Float c69;
//功率因数第70个点
private Float c70;
//功率因数第71个点
private Float c71;
//功率因数第72个点
private Float c72;
//功率因数第73个点
private Float c73;
//功率因数第74个点
private Float c74;
//功率因数第75个点
private Float c75;
//功率因数第76个点
private Float c76;
//功率因数第77个点
private Float c77;
//功率因数第78个点
private Float c78;
//功率因数第79个点
private Float c79;
//功率因数第80个点
private Float c80;
//功率因数第81个点
private Float c81;
//功率因数第82个点
private Float c82;
//功率因数第83个点
private Float c83;
//功率因数第84个点
private Float c84;
//功率因数第85个点
private Float c85;
//功率因数第86个点
private Float c86;
//功率因数第87个点
private Float c87;
//功率因数第88个点
private Float c88;
//功率因数第89个点
private Float c89;
//功率因数第90个点
private Float c90;
//功率因数第91个点
private Float c91;
//功率因数第92个点
private Float c92;
//功率因数第93个点
private Float c93;
//功率因数第94个点
private Float c94;
//功率因数第95个点
private Float c95;
//功率因数第96个点
private Float c96;
}

View File

@@ -0,0 +1,213 @@
package com.njcn.syncdata.pojo.zt;
import lombok.Data;
/**
* @author wr
* @description 华云远程访问返回功率实体
* @date 2024/1/22 14:59
*/
@Data
public class HarmonicHistoryP {
//台区编号
private String tg_id;
//数据id
private String id;
//相位标识 功率类型 1-有功 2-A相有功 3-B相有功 4-C相有功 5-无功 6-A相无功 7-B相无功 8-C相无功
private Integer data_type;
//时间
private String ds;
//功率第1个点
private Float p1;
//功率第2个点
private Float p2;
//功率第3个点
private Float p3;
//功率第4个点
private Float p4;
//功率第5个点
private Float p5;
//功率第6个点
private Float p6;
//功率第7个点
private Float p7;
//功率第8个点
private Float p8;
//功率第9个点
private Float p9;
//功率第10个点
private Float p10;
//功率第11个点
private Float p11;
//功率第12个点
private Float p12;
//功率第13个点
private Float p13;
//功率第14个点
private Float p14;
//功率第15个点
private Float p15;
//功率第16个点
private Float p16;
//功率第17个点
private Float p17;
//功率第18个点
private Float p18;
//功率第19个点
private Float p19;
//功率第20个点
private Float p20;
//功率第21个点
private Float p21;
//功率第22个点
private Float p22;
//功率第23个点
private Float p23;
//功率第24个点
private Float p24;
//功率第25个点
private Float p25;
//功率第26个点
private Float p26;
//功率第27个点
private Float p27;
//功率第28个点
private Float p28;
//功率第29个点
private Float p29;
//功率第30个点
private Float p30;
//功率第31个点
private Float p31;
//功率第32个点
private Float p32;
//功率第33个点
private Float p33;
//功率第34个点
private Float p34;
//功率第35个点
private Float p35;
//功率第36个点
private Float p36;
//功率第37个点
private Float p37;
//功率第38个点
private Float p38;
//功率第39个点
private Float p39;
//功率第40个点
private Float p40;
//功率第41个点
private Float p41;
//功率第42个点
private Float p42;
//功率第43个点
private Float p43;
//功率第44个点
private Float p44;
//功率第45个点
private Float p45;
//功率第46个点
private Float p46;
//功率第47个点
private Float p47;
//功率第48个点
private Float p48;
//功率第49个点
private Float p49;
//功率第50个点
private Float p50;
//功率第51个点
private Float p51;
//功率第52个点
private Float p52;
//功率第53个点
private Float p53;
//功率第54个点
private Float p54;
//功率第55个点
private Float p55;
//功率第56个点
private Float p56;
//功率第57个点
private Float p57;
//功率第58个点
private Float p58;
//功率第59个点
private Float p59;
//功率第60个点
private Float p60;
//功率第61个点
private Float p61;
//功率第62个点
private Float p62;
//功率第63个点
private Float p63;
//功率第64个点
private Float p64;
//功率第65个点
private Float p65;
//功率第66个点
private Float p66;
//功率第67个点
private Float p67;
//功率第68个点
private Float p68;
//功率第69个点
private Float p69;
//功率第70个点
private Float p70;
//功率第71个点
private Float p71;
//功率第72个点
private Float p72;
//功率第73个点
private Float p73;
//功率第74个点
private Float p74;
//功率第75个点
private Float p75;
//功率第76个点
private Float p76;
//功率第77个点
private Float p77;
//功率第78个点
private Float p78;
//功率第79个点
private Float p79;
//功率第80个点
private Float p80;
//功率第81个点
private Float p81;
//功率第82个点
private Float p82;
//功率第83个点
private Float p83;
//功率第84个点
private Float p84;
//功率第85个点
private Float p85;
//功率第86个点
private Float p86;
//功率第87个点
private Float p87;
//功率第88个点
private Float p88;
//功率第89个点
private Float p89;
//功率第90个点
private Float p90;
//功率第91个点
private Float p91;
//功率第92个点
private Float p92;
//功率第93个点
private Float p93;
//功率第94个点
private Float p94;
//功率第95个点
private Float p95;
//功率第96个点
private Float p96;
}

View File

@@ -0,0 +1,212 @@
package com.njcn.syncdata.pojo.zt;
import lombok.Data;
/**
* @author wr
* @description 华云远程访问返回电压实体
* @date 2024/1/15 10:18
*/
@Data
public class HarmonicHistoryV {
//台区编号
private String tg_id;
//数据id
private String id;
//相位标识
private Integer phase_flag;
//时间
private String ds;
//电压第1个点
private Float u1;
//电压第2个点
private Float u2;
//电压第3个点
private Float u3;
//电压第4个点
private Float u4;
//电压第5个点
private Float u5;
//电压第6个点
private Float u6;
//电压第7个点
private Float u7;
//电压第8个点
private Float u8;
//电压第9个点
private Float u9;
//电压第10个点
private Float u10;
//电压第11个点
private Float u11;
//电压第12个点
private Float u12;
//电压第13个点
private Float u13;
//电压第14个点
private Float u14;
//电压第15个点
private Float u15;
//电压第16个点
private Float u16;
//电压第17个点
private Float u17;
//电压第18个点
private Float u18;
//电压第19个点
private Float u19;
//电压第20个点
private Float u20;
//电压第21个点
private Float u21;
//电压第22个点
private Float u22;
//电压第23个点
private Float u23;
//电压第24个点
private Float u24;
//电压第25个点
private Float u25;
//电压第26个点
private Float u26;
//电压第27个点
private Float u27;
//电压第28个点
private Float u28;
//电压第29个点
private Float u29;
//电压第30个点
private Float u30;
//电压第31个点
private Float u31;
//电压第32个点
private Float u32;
//电压第33个点
private Float u33;
//电压第34个点
private Float u34;
//电压第35个点
private Float u35;
//电压第36个点
private Float u36;
//电压第37个点
private Float u37;
//电压第38个点
private Float u38;
//电压第39个点
private Float u39;
//电压第40个点
private Float u40;
//电压第41个点
private Float u41;
//电压第42个点
private Float u42;
//电压第43个点
private Float u43;
//电压第44个点
private Float u44;
//电压第45个点
private Float u45;
//电压第46个点
private Float u46;
//电压第47个点
private Float u47;
//电压第48个点
private Float u48;
//电压第49个点
private Float u49;
//电压第50个点
private Float u50;
//电压第51个点
private Float u51;
//电压第52个点
private Float u52;
//电压第53个点
private Float u53;
//电压第54个点
private Float u54;
//电压第55个点
private Float u55;
//电压第56个点
private Float u56;
//电压第57个点
private Float u57;
//电压第58个点
private Float u58;
//电压第59个点
private Float u59;
//电压第60个点
private Float u60;
//电压第61个点
private Float u61;
//电压第62个点
private Float u62;
//电压第63个点
private Float u63;
//电压第64个点
private Float u64;
//电压第65个点
private Float u65;
//电压第66个点
private Float u66;
//电压第67个点
private Float u67;
//电压第68个点
private Float u68;
//电压第69个点
private Float u69;
//电压第70个点
private Float u70;
//电压第71个点
private Float u71;
//电压第72个点
private Float u72;
//电压第73个点
private Float u73;
//电压第74个点
private Float u74;
//电压第75个点
private Float u75;
//电压第76个点
private Float u76;
//电压第77个点
private Float u77;
//电压第78个点
private Float u78;
//电压第79个点
private Float u79;
//电压第80个点
private Float u80;
//电压第81个点
private Float u81;
//电压第82个点
private Float u82;
//电压第83个点
private Float u83;
//电压第84个点
private Float u84;
//电压第85个点
private Float u85;
//电压第86个点
private Float u86;
//电压第87个点
private Float u87;
//电压第88个点
private Float u88;
//电压第89个点
private Float u89;
//电压第90个点
private Float u90;
//电压第91个点
private Float u91;
//电压第92个点
private Float u92;
//电压第93个点
private Float u93;
//电压第94个点
private Float u94;
//电压第95个点
private Float u95;
//电压第96个点
private Float u96;
}

View File

@@ -0,0 +1,13 @@
package com.njcn.syncdata.service;
import com.njcn.syncdata.pojo.zt.HarmonicHistoryC;
import com.njcn.syncdata.pojo.zt.HarmonicHistoryP;
import com.njcn.syncdata.pojo.zt.HarmonicHistoryV;
import java.util.List;
public interface HarmonicHistory {
List<HarmonicHistoryV> listHarmonicHistoryV(String id, String starTime, String endTime);
List<HarmonicHistoryP> listHarmonicHistoryP(String id, String starTime, String endTime);
List<HarmonicHistoryC> listHarmonicHistoryC(String id, String starTime, String endTime);
}

View File

@@ -3,7 +3,6 @@ package com.njcn.syncdata.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.syncdata.pojo.po.DictData; import com.njcn.syncdata.pojo.po.DictData;
import java.util.List;
/** /**
* <p> * <p>

View File

@@ -0,0 +1,18 @@
package com.njcn.syncdata.service;
import com.njcn.db.service.IReplenishMybatisService;
import com.njcn.syncdata.pojo.po.PmsCountLedger;
/**
* <p>
* 每日变电站-母线数据总条目表 服务类
* </p>
*
* @author wr
* @since 2023-11-13
*/
public interface IPmsCountLedgerService extends IReplenishMybatisService<PmsCountLedger> {
void insertCountLedger(String date);
}

View File

@@ -0,0 +1,26 @@
package com.njcn.syncdata.service;
import com.njcn.db.service.IReplenishMybatisService;
import com.njcn.syncdata.pojo.po.PmsMidLedger;
import com.njcn.syncdata.pojo.zt.HarmonicHistoryV;
import java.util.List;
/**
* <p>
* 变电站-母线数据中间表 服务类
* </p>
*
* @author wr
* @since 2023-11-13
*/
public interface IPmsMidLedgerService extends IReplenishMybatisService<PmsMidLedger> {
/**
* 变电站-母线中间表
* @return
*/
Boolean insertMidLedger();
}

View File

@@ -1,8 +1,11 @@
package com.njcn.syncdata.service; package com.njcn.syncdata.service;
import com.njcn.db.service.IReplenishMybatisService; import com.njcn.db.service.IReplenishMybatisService;
import com.njcn.syncdata.pojo.po.AdsAstXbjcptGetFctgDi;
import com.njcn.syncdata.pojo.po.AdsAstXbjcptGetFctgValueDi;
import com.njcn.syncdata.pojo.po.PowerDistributionarea; import com.njcn.syncdata.pojo.po.PowerDistributionarea;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@@ -25,7 +28,13 @@ public interface IPowerDistributionareaService extends IReplenishMybatisService<
* 获取数据中台数据 * 获取数据中台数据
* @return * @return
*/ */
String adsList(); List<AdsAstXbjcptGetFctgDi> adsList(Integer limitValue,Integer offsetValue);
/**
* 获取日报表数据
* @return
*/
List<AdsAstXbjcptGetFctgValueDi> adsDiList(String ds,Integer limitValue,Integer offsetValue);
/** /**
* 通用资源数据中台数据查询 * 通用资源数据中台数据查询
@@ -37,5 +46,8 @@ public interface IPowerDistributionareaService extends IReplenishMybatisService<
*/ */
Map getResourceData(String token,String psrType,Integer num, String fieldName,String fieldValue); Map getResourceData(String token,String psrType,Integer num, String fieldName,String fieldValue);
Map insertData(); String insertData();
String insertDataDi(String ds);
} }

View File

@@ -0,0 +1,16 @@
package com.njcn.syncdata.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.syncdata.pojo.po.SysDeptTeam;
/**
* <p>
* 服务类
* </p>
*
* @author wr
* @since 2024-05-11
*/
public interface ISysDeptTeamService extends IService<SysDeptTeam> {
}

View File

@@ -0,0 +1,139 @@
package com.njcn.syncdata.service.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cloud.apigateway.sdk.utils.Client;
import com.cloud.apigateway.sdk.utils.Request;
import com.njcn.syncdata.pojo.zt.HarmonicHistoryC;
import com.njcn.syncdata.pojo.zt.HarmonicHistoryP;
import com.njcn.syncdata.pojo.zt.HarmonicHistoryV;
import com.njcn.syncdata.service.HarmonicHistory;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author wr
* @description
* @date 2024/1/22 16:29
*/
@Slf4j
@Service
public class HarmonicHistoryImpl implements HarmonicHistory {
@Override
public List<HarmonicHistoryV> listHarmonicHistoryV(String id, String starTime, String endTime) {
String key = "a1a69c93c11e4910aa247087c261bec5";
String secret = "038de3c27cc54489862d181470e3ad92";
String url = "https://25.37.90.72/ast/ydxxcjxt/dws/get_e_mp_TGvol_zl_ds";
String apiId = "0644f1c6abd65d3a3a81eb3314390e14";
String apiName = "get_电能质量谐波监测系统_分布式光伏台区日数据_e_mp_TGvol_zl_时间";
return adsDiList(HarmonicHistoryV.class,id,starTime,endTime,key,secret,url,apiId,apiName);
}
@Override
public List<HarmonicHistoryP> listHarmonicHistoryP(String id, String starTime, String endTime) {
String key = "a1a69c93c11e4910aa247087c261bec5";
String secret = "038de3c27cc54489862d181470e3ad92";
String url = "https://25.37.90.72/ast/ydxxcjxt/dws/get_e_mp_TGpower_zl_ds";
String apiId = "f9f0eb9627410c0ad4a66ae33a75e2c9";
String apiName = "get_电能质量谐波监测系统_分布式光伏台区日数据_e_mp_TGpower_zl_时间";
return adsDiList(HarmonicHistoryP.class,id,starTime,endTime,key,secret,url,apiId,apiName);
}
@Override
public List<HarmonicHistoryC> listHarmonicHistoryC(String id, String starTime, String endTime) {
String key = "a1a69c93c11e4910aa247087c261bec5";
String secret = "038de3c27cc54489862d181470e3ad92";
String url = "https://25.37.90.72/ast/ydxxcjxt/dws/get_e_mp_TGfactor_zl_ds";
String apiId = "bf6cc99505f93c355baad9926b61f17e";
String apiName = "get_电能质量谐波监测系统_分布式光伏台区日数据_e_mp_TGfactor_zl_时间";
return adsDiList(HarmonicHistoryC.class,id,starTime,endTime,key,secret,url,apiId,apiName);
}
public <T> List<T> adsDiList(Class<T> t,String id, String starTime, String endTime,String key,String secret, String url,String apiId,String apiName) {
List<T> aas = new ArrayList<>();
Request request = new Request();
CloseableHttpClient client = null;
try {
request.setKey(key);
request.setSecret(secret);
//接口访问类型
request.setMethod("GET");
//接口访问url
request.setUrl(url);
//API中 header头传输的参数
request.addHeader("x-api-id", apiId);
//API中 Query传输的参数
request.addQueryStringParam("tg_id", id);
request.addQueryStringParam("startTime", starTime);
request.addQueryStringParam("endTime",endTime);
//API中 Body体参数
//request.setBody("demo");
} catch (Exception e) {
log.error(Thread.currentThread().getName() + "链接" + apiName + "失败");
e.printStackTrace();
}
try {
HttpRequestBase signedRequest = Client.sign(request);
Header[] authorization = signedRequest.getHeaders("Authorization");
signedRequest.addHeader("x-Authorization", authorization[0].getValue());
//Send the request.
client = HttpClients.custom().build();
HttpResponse response = client.execute(signedRequest);
//Print the status line of the response.
log.info(response.getStatusLine().toString());
//Print the header fields of the response.
Header[] resHeaders = response.getAllHeaders();
for (Header h : resHeaders) {
log.info(h.getName() + ":" + h.getValue());
}
//Print the body of the response.
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
String s = EntityUtils.toString(resEntity, "UTF-8");
log.info(System.getProperty("line.separator") + s);
JSONObject jsonObject = JSON.parseObject(s);
String errCode = jsonObject.getString("errCode");
if(StrUtil.isBlank(errCode)){
Map data = jsonObject.getObject("data", Map.class);
aas = JSONArray.parseArray(data.get("data").toString(), t);
log.info(Thread.currentThread().getName() + "获取日报表数据多少条 adsDiList" + aas.size() + "结束----");
}else if("DLM.4094".equals(errCode)){
log.info(Thread.currentThread().getName() + "数据链接超时" + s + "结束----");
}
}
} catch (Exception e) {
log.error(Thread.currentThread().getName() + "链接" + apiName + "失败");
e.printStackTrace();
} finally {
try {
if (client != null) {
client.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return aas;
}
}

View File

@@ -0,0 +1,100 @@
package com.njcn.syncdata.service.impl;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.db.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.syncdata.mapper.DictDataMapper;
import com.njcn.syncdata.mapper.PmsCountLedgerMapper;
import com.njcn.syncdata.pojo.po.Dept;
import com.njcn.syncdata.pojo.po.PmsCountLedger;
import com.njcn.syncdata.service.IPmsCountLedgerService;
import com.njcn.syncdata.service.IPowerDistributionareaService;
import com.njcn.syncdata.utils.RestTemplateUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 每日变电站-母线数据总条目表 服务实现类
* </p>
*
* @author wr
* @since 2023-11-13
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class PmsCountLedgerServiceImpl extends ReplenishMybatisServiceImpl<PmsCountLedgerMapper, PmsCountLedger> implements IPmsCountLedgerService {
private final IPowerDistributionareaService powerService;
private final DictDataMapper dictDataMapper;
@Override
public void insertCountLedger(String date) {
List<PmsCountLedger> info=new ArrayList<>();
List<Dept> deptInfos = dictDataMapper.selectUserList();
PmsCountLedger countLedger;
for (Dept deptDTO : deptInfos) {
//筛选上级部门pids包含该id的所有部门
List<Dept> descendantDeptDTO = deptInfos.stream()
.filter(d -> d.getPids().contains(deptDTO.getId()))
.collect(Collectors.toList());
//形成需要查询监测点的部门索引
List<String> deptIdList = descendantDeptDTO.stream()
.map(Dept::getCode)
.distinct()
.collect(Collectors.toList());
deptIdList.add(deptDTO.getCode());
countLedger=new PmsCountLedger();
countLedger.setSection(deptDTO.getCode());
countLedger.setDate(LocalDateTimeUtil.parse(date, DatePattern.NORM_DATE_PATTERN));
String join = String.join(",", deptIdList);
countLedger.setSubCount(getResourceCount("Substation", join));
countLedger.setSubvCount(getResourceCount("BusbarPSR", join));
info.add(countLedger);
}
this.remove(new LambdaQueryWrapper<PmsCountLedger>()
.eq(PmsCountLedger::getDate,date)
);
this.insertBatchBySlice(info,1000);
}
public Integer getResourceCount(String psrType, String orgID) {
Integer count=0;
String userUrl = "http://dwzyywzt.com/PSRCenter/queryServices/"+psrType+"/count";
Map<String, String> mapHeader = new HashMap<>();
mapHeader.put("Content-Type", "application/json; charset=utf-8");
mapHeader.put("x-token", powerService.LoginToken());
mapHeader.put("x-date", System.currentTimeMillis() + "");
mapHeader.put("x-signature", "123");
Map<String, Object> map1 = new HashMap<>();
Map<String, Object> mapSubset = new HashMap<>();
//sql查询
List<Map<String, Object>> info = new ArrayList<>();
Map<String, Object> mapSubsets = new HashMap<>();
mapSubsets.put("fieldName", "depart");
mapSubsets.put("compare", "in");
mapSubsets.put("fieldValue", orgID);
info.add(mapSubsets);
mapSubset.put("filters", info);
map1.put("params", mapSubset);
log.info(Thread.currentThread().getName() + "获取返回体 mapHeader" + mapHeader + "结束----");
ResponseEntity<Map> userEntity = RestTemplateUtil.post(userUrl, mapHeader, map1, Map.class, new ArrayList<>());
if (userEntity.getStatusCodeValue() == 200) {
//获取返回体
Map body = userEntity.getBody();
log.info(Thread.currentThread().getName() + "获取返回体 getResourceData" + body + "结束----");
Map data = (Map) body.get("result");
count = Integer.valueOf(data.get("count").toString());
}
return count;
}
}

View File

@@ -0,0 +1,255 @@
package com.njcn.syncdata.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.njcn.db.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.syncdata.mapper.DictDataMapper;
import com.njcn.syncdata.mapper.PmsMidLedgerMapper;
import com.njcn.syncdata.pojo.enums.DicDataTypeEnum;
import com.njcn.syncdata.pojo.po.*;
import com.njcn.syncdata.service.IPmsMidLedgerService;
import com.njcn.syncdata.service.IPowerDistributionareaService;
import com.njcn.syncdata.service.ISysDeptTeamService;
import com.njcn.syncdata.utils.RestTemplateUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* <p>
* 变电站-母线数据中间表 服务实现类
* </p>
*
* @author wr
* @since 2023-11-13
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class PmsMidLedgerServiceImpl extends ReplenishMybatisServiceImpl<PmsMidLedgerMapper, PmsMidLedger> implements IPmsMidLedgerService {
private final IPowerDistributionareaService powerService;
private final DictDataMapper dictDataMapper;
private final ISysDeptTeamService sysDeptTeamService;
@Override
public Boolean insertMidLedger() {
List<PmsMidLedger> info=new ArrayList<>();
//部门
List<Dept> depts = dictDataMapper.selectUserList();
//2运行状态
List<DictData> state = dictDataMapper.selectList(DicDataTypeEnum.LINE_STATE.getCode());
//2.1.1获取电压字典
List<DictData> devVoltage = dictDataMapper.selectList(DicDataTypeEnum.DEV_VOLTAGE.getCode());
//部门信息
List<SysDeptTeam> teamList = sysDeptTeamService.list();
Map<String, String> teamMap = teamList.stream().collect(Collectors.toMap(SysDeptTeam::getId, SysDeptTeam::getName));
Integer numPum = 1;
//定义每页返回数据条数
Integer size = 20000;
List<Substation> substations=new ArrayList<>();
while (true) {
Map substation = this.getResourceData("Substation", numPum, size, null);
List<Substation> subList = JSONArray.parseArray(JSONArray.toJSONString(substation.get("result")), Substation.class);
substations.addAll(subList);
if (subList.size() < size) {
break;
} else {
numPum++;
}
}
PmsMidLedger mid;
for (Substation sub : substations) {
mid=new PmsMidLedger();
mid.setId(sub.getID());
mid.setPid("0");
mid.setPids("0");
mid.setCityOrg(sub.getDistrict());
mid.setCityOrgName(getDeptName(sub.getDistrict(), depts,teamMap));
mid.setSectionId(sub.getDepart());
mid.setSection(getDeptName(sub.getDepart(), depts,teamMap));
mid.setMaintCrew(sub.getMaintenance_team());
mid.setMaintCrewName(getDeptName(sub.getMaintenance_team(), depts,teamMap));
mid.setOperationId(sub.getSection());
mid.setOperationName(getDeptName(sub.getSection(), depts,teamMap));
mid.setName(sub.getNAME());
mid.setLevel(0);
mid.setSort(0);
mid.setState(1);
mid.setVoltageLevel(getAlgoDescribe(sub.getVOLTAGELEVEL_ID(), devVoltage));
mid.setRunStatus(getValue(sub.getRUN_STATUS(),state));
mid.setOperationDate(sub.getRUN_DATE());
mid.setCreateTime(LocalDateTime.now());
mid.setUpdateTime(LocalDateTime.now());
info.add(mid);
}
Map<String, String> subMap = info.stream().collect(Collectors.toMap(PmsMidLedger::getId, PmsMidLedger::getId));
Map<String,Object> map;
List<String> subID = substations.stream().map(Substation::getID).distinct().collect(Collectors.toList());
log.info(Thread.currentThread().getName() + "变电站数量返回体 getResourceData" + subID.size() + "结束----");
log.info(Thread.currentThread().getName() + "变电站数量ids返回体 getResourceData" + subID + "结束----");
//母线信息
List<List<String>> subIdList = ListUtil.split(subID, 1000);
List<BusbarPSR> bars=new ArrayList<>();
for (List<String> list : subIdList) {
map=new HashMap<>();
map.put("fieldName", "root_id");
map.put("compare", "in");
map.put("fieldValue", String.join(",", list));
Map busbarPSR = this.getResourceData("BusbarPSR", 1, size, map);
List<BusbarPSR> result = JSONArray.parseArray(JSONArray.toJSONString(busbarPSR.get("result")), BusbarPSR.class);
bars.addAll(result);
}
//母线资产信息
List<String> assetList = bars.stream().map(BusbarPSR::getACCOUNT_ID).distinct().collect(Collectors.toList());
List<List<String>> assetIdList = ListUtil.split(assetList, 1000);
List<BusbarAsset> assets=new ArrayList<>();
for (List<String> list : assetIdList) {
map=new HashMap<>();
map.put("fieldName", "account_id");
map.put("compare", "in");
map.put("fieldValue", String.join(",", list));
Map busbarPSR = this.getResourceData("BusbarAsset", 1, size, map);
List<BusbarAsset> result = JSONArray.parseArray(JSONArray.toJSONString(busbarPSR.get("result")), BusbarAsset.class);
assets.addAll(result);
}
Map<String, BusbarAsset> assetMap = assets.stream().collect(Collectors.toMap(BusbarAsset::getACCOUNT_ID, Function.identity()));
for (BusbarPSR bar : bars) {
if(subMap.containsKey(bar.getRoot_id())){
String pidSub = subMap.get(bar.getRoot_id());
mid=new PmsMidLedger();
mid.setId(bar.getID());
mid.setPid(pidSub);
mid.setPids("0,"+pidSub);
mid.setCityOrg(bar.getDistrict());
mid.setCityOrgName(getDeptName(bar.getDistrict(), depts,teamMap));
mid.setSectionId(bar.getDepart());
mid.setSection(getDeptName(bar.getDepart(), depts,teamMap));
mid.setMaintCrew(bar.getMaintenance_team());
mid.setMaintCrewName(getDeptName(bar.getMaintenance_team(), depts,teamMap));
mid.setOperationId(bar.getSection());
mid.setOperationName(getDeptName(bar.getSection(), depts,teamMap));
mid.setName(bar.getNAME());
mid.setLevel(1);
mid.setSort(0);
mid.setState(1);
mid.setRunStatus(getValue(bar.getRUN_STATUS(),state));
mid.setVoltageLevel(getAlgoDescribe(bar.getVOLTAGELEVEL_ID(),devVoltage));
mid.setOperationDate(bar.getRUN_DATE());
if(assetMap.containsKey(bar.getACCOUNT_ID())){
BusbarAsset assetNo = assetMap.get(bar.getACCOUNT_ID());
mid.setAsset_No(assetNo.getASSET_NO());
}
mid.setCreateTime(LocalDateTime.now());
mid.setUpdateTime(LocalDateTime.now());
info.add(mid);
}
}
List<PmsMidLedger> collect = info.stream().filter(x -> StrUtil.isNotBlank(x.getName())).collect(Collectors.toList());
this.remove(null);
this.insertBatchBySlice(collect,1000);
return true;
}
/**
* 获取变电信息
* @param psrType
* @param num
* @param size
* @param mapSubsets
* @return
*/
public Map getResourceData(String psrType, Integer num, Integer size, Map<String, Object> mapSubsets) {
Map body = new HashMap();
String userUrl = "http://dwzyywzt.com/PSRCenter/queryServices/commonQuery";
Map<String, String> mapHeader = new HashMap<>();
mapHeader.put("Content-Type", "application/json; charset=utf-8");
String token = powerService.LoginToken();
mapHeader.put("x-token", token);
log.info(Thread.currentThread().getName() + "条件参数获取返回体 token" + token + "结束----");
mapHeader.put("x-date", System.currentTimeMillis() + "");
mapHeader.put("x-signature", "123");
Map<String, Object> map1 = new HashMap<>();
map1.put("psrType", psrType);
map1.put("distribution", 1);
Map<String, Object> mapSubset = new HashMap<>();
mapSubset.put("outCaseName", true);
mapSubset.put("page", num);
mapSubset.put("perPage", size);
//sql查询
List<Map<String, Object>> info = new ArrayList<>();
if(CollUtil.isNotEmpty(mapSubsets)){
info.add(mapSubsets);
mapSubset.put("filters", info);
}
map1.put("params", mapSubset);
String s = JSONObject.toJSONString(map1);
log.info(Thread.currentThread().getName() + "条件参数获取返回体 getResourceData" + s + "结束----");
log.info(Thread.currentThread().getName() + "条件参数获取返回体 mapHeader" + mapHeader + "结束----");
ResponseEntity<Map> userEntity = RestTemplateUtil.post(userUrl, mapHeader, map1, Map.class, new ArrayList<>());
if (userEntity.getStatusCodeValue() == 200) {
//获取返回体
body = userEntity.getBody();
log.info(Thread.currentThread().getName() + "获取返回体 getResourceData" + body + "结束----");
}
return body;
}
public String getDeptName(String name, List<Dept> depts,Map<String, String> teamMap) {
Map<String, String> deptMap = depts.stream().collect(Collectors.toMap(Dept::getCode, Dept::getName, (key1, key2) -> key1));
if (deptMap.containsKey(name)) {
return deptMap.get(name);
}else{
if(teamMap.containsKey(name)){
return teamMap.get(name);
}
}
return name;
}
public String getValue(String name, List<DictData> voltageLevel) {
Map<String, String> voltageMap = voltageLevel.stream().filter(x -> x.getValue() != null).collect(Collectors.toMap(DictData::getValue, DictData::getId, (key1, key2) -> key1));
if (voltageMap.containsKey(name)) {
return voltageMap.get(name);
}else{
if("20".equals(name)){
return voltageMap.get("01");
}
if("30".equals(name)){
return voltageMap.get("05");
}
}
return name;
}
public String getAlgoDescribe(String name, List<DictData> voltageLevel) {
Map<Integer, String> voltageMap = voltageLevel.stream().filter(x -> x.getAlgoDescribe() != null).collect(Collectors.toMap(DictData::getAlgoDescribe, DictData::getId, (key1, key2) -> key1));
if (voltageMap.containsKey(Integer.valueOf(name))) {
return voltageMap.get(Integer.valueOf(name));
}
return name;
}
}

View File

@@ -0,0 +1,20 @@
package com.njcn.syncdata.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.syncdata.mapper.SysDeptTeamMapper;
import com.njcn.syncdata.pojo.po.SysDeptTeam;
import com.njcn.syncdata.service.ISysDeptTeamService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author wr
* @since 2024-05-11
*/
@Service
public class SysDeptTeamServiceImpl extends ServiceImpl<SysDeptTeamMapper, SysDeptTeam> implements ISysDeptTeamService {
}

View File

@@ -2,7 +2,6 @@
<include resource="org/springframework/boot/logging/logback/defaults.xml" /> <include resource="org/springframework/boot/logging/logback/defaults.xml" />
<springProperty scope="context" name="log.projectName" source="spring.application.name" defaultValue="pqs"/> <springProperty scope="context" name="log.projectName" source="spring.application.name" defaultValue="pqs"/>
<springProperty scope="context" name="log.commonLevel" source="log.commonLevel"/>
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" <conversionRule conversionWord="wex"
@@ -12,7 +11,7 @@
<!--日志输出格式--> <!--日志输出格式-->
<property name="log.homeDir" value="D:\logs"/> <property name="log.homeDir" value="E:\logs"/>
<property name="log.pattern" <property name="log.pattern"
value="|-%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%level} ${log.projectName} -- %t %logger{100}.%M ==> %m%n${Log_EXCEPTION_CONVERSION_WORD:-%ec}}}"/> value="|-%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%level} ${log.projectName} -- %t %logger{100}.%M ==> %m%n${Log_EXCEPTION_CONVERSION_WORD:-%ec}}}"/>
<property name="log.maxHistory" value="30"/> <property name="log.maxHistory" value="30"/>
@@ -132,7 +131,7 @@
<appender-ref ref="ERROR"/> <appender-ref ref="ERROR"/>
</logger> </logger>
<root level="${log.commonLevel}"> <root level="INFO">
<appender-ref ref="CONSOLE"/> <appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG"/> <appender-ref ref="DEBUG"/>
<appender-ref ref="INFO"/> <appender-ref ref="INFO"/>