diff --git a/src/main/java/com/njcn/syncdata/controller/DataImportController.java b/src/main/java/com/njcn/syncdata/controller/DataImportController.java
index a5a886d..a2892ec 100644
--- a/src/main/java/com/njcn/syncdata/controller/DataImportController.java
+++ b/src/main/java/com/njcn/syncdata/controller/DataImportController.java
@@ -4,6 +4,8 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray;
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 lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -14,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
-import java.util.stream.Collectors;
@RestController
@Slf4j
@@ -23,6 +24,8 @@ import java.util.stream.Collectors;
public class DataImportController {
private final IPowerDistributionareaService service;
+ private final IPmsMidLedgerService iPmsMidLedgerService;
+ private final IPmsCountLedgerService iPmsCountLedgerService;
/**
* 登录获取token
@@ -62,9 +65,6 @@ public class DataImportController {
return info;
}
-
-
-
/**
* 获取中台日报表数据
*
@@ -121,18 +121,43 @@ public class DataImportController {
return aas;
}
+ /**
+ * 台账导入
+ * @return
+ */
@PostMapping("/insertData")
public String insertData() {
- String s = service.insertData();
- return s;
+ return service.insertData();
}
+ /**
+ * 日表数据导入
+ * @param ds
+ * @return
+ */
@PostMapping("/insertDataDi")
public String insertDataDi(String ds) {
- String s = service.insertDataDi(ds);
- return s;
+ return service.insertDataDi(ds);
}
+ /**
+ * 登录获取token
+ *
+ * @return
+ */
+ @PostMapping("/insertMidLedger")
+ public Boolean insertMidLedger() {
+ return iPmsMidLedgerService.insertMidLedger();
+ }
+ /**
+ * 登录获取token
+ *
+ * @return
+ */
+ @PostMapping("/insertCountLedger")
+ public void insertCountLedger(String date) {
+ iPmsCountLedgerService.insertCountLedger(date);
+ }
@Scheduled(cron = "0 30 17 * * ?")
public void insert() {
@@ -145,4 +170,15 @@ public class DataImportController {
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+"----!");
+ }
+
}
\ No newline at end of file
diff --git a/src/main/java/com/njcn/syncdata/mapper/PmsCountLedgerMapper.java b/src/main/java/com/njcn/syncdata/mapper/PmsCountLedgerMapper.java
new file mode 100644
index 0000000..296e0a5
--- /dev/null
+++ b/src/main/java/com/njcn/syncdata/mapper/PmsCountLedgerMapper.java
@@ -0,0 +1,16 @@
+package com.njcn.syncdata.mapper;
+
+import com.njcn.db.mapper.BatchBaseMapper;
+import com.njcn.syncdata.pojo.po.PmsCountLedger;
+
+/**
+ *
+ * 每日变电站-母线数据总条目表 Mapper 接口
+ *
+ *
+ * @author wr
+ * @since 2023-11-13
+ */
+public interface PmsCountLedgerMapper extends BatchBaseMapper {
+
+}
diff --git a/src/main/java/com/njcn/syncdata/mapper/PmsMidLedgerMapper.java b/src/main/java/com/njcn/syncdata/mapper/PmsMidLedgerMapper.java
new file mode 100644
index 0000000..30f668d
--- /dev/null
+++ b/src/main/java/com/njcn/syncdata/mapper/PmsMidLedgerMapper.java
@@ -0,0 +1,16 @@
+package com.njcn.syncdata.mapper;
+
+import com.njcn.db.mapper.BatchBaseMapper;
+import com.njcn.syncdata.pojo.po.PmsMidLedger;
+
+/**
+ *
+ * 变电站-母线数据中间表 Mapper 接口
+ *
+ *
+ * @author wr
+ * @since 2023-11-13
+ */
+public interface PmsMidLedgerMapper extends BatchBaseMapper {
+
+}
diff --git a/src/main/java/com/njcn/syncdata/mapper/mapping/PmsCountLedgerMapper.xml b/src/main/java/com/njcn/syncdata/mapper/mapping/PmsCountLedgerMapper.xml
new file mode 100644
index 0000000..12af9e0
--- /dev/null
+++ b/src/main/java/com/njcn/syncdata/mapper/mapping/PmsCountLedgerMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/main/java/com/njcn/syncdata/mapper/mapping/PmsMidLedgerMapper.xml b/src/main/java/com/njcn/syncdata/mapper/mapping/PmsMidLedgerMapper.xml
new file mode 100644
index 0000000..7162fc2
--- /dev/null
+++ b/src/main/java/com/njcn/syncdata/mapper/mapping/PmsMidLedgerMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/main/java/com/njcn/syncdata/pojo/enums/DicDataTypeEnum.java b/src/main/java/com/njcn/syncdata/pojo/enums/DicDataTypeEnum.java
index e0b00c5..a04a328 100644
--- a/src/main/java/com/njcn/syncdata/pojo/enums/DicDataTypeEnum.java
+++ b/src/main/java/com/njcn/syncdata/pojo/enums/DicDataTypeEnum.java
@@ -83,7 +83,7 @@ public enum DicDataTypeEnum {
INPUT_SIGNAL("测量信号输入形式","Signal_form"),
VOLTAGE_TRANSFORMER("电压互感器类型","Voltage_Transformer"),
Neutral_Point("中性点接地方式","Neutral_Point"),
- DEVICE_REGIONLYPE("设备地区特征","Device_RegionLype"),
+ DEVICE_REGIONLYPE("设备地区特征","Area"),
DEVICE_USERNATURE("设备使用性质代码","Device_UseNature");
diff --git a/src/main/java/com/njcn/syncdata/pojo/po/AdsAstXbjcptGetFctgDi.java b/src/main/java/com/njcn/syncdata/pojo/po/AdsAstXbjcptGetFctgDi.java
index 5f9acd1..76cbb54 100644
--- a/src/main/java/com/njcn/syncdata/pojo/po/AdsAstXbjcptGetFctgDi.java
+++ b/src/main/java/com/njcn/syncdata/pojo/po/AdsAstXbjcptGetFctgDi.java
@@ -24,7 +24,7 @@ public class AdsAstXbjcptGetFctgDi {
/**
* 计量点号
*/
- private Integer id;
+ private String id;
/**
* 台区名称
*/
diff --git a/src/main/java/com/njcn/syncdata/pojo/po/BusbarPSR.java b/src/main/java/com/njcn/syncdata/pojo/po/BusbarPSR.java
new file mode 100644
index 0000000..5c44c6a
--- /dev/null
+++ b/src/main/java/com/njcn/syncdata/pojo/po/BusbarPSR.java
@@ -0,0 +1,35 @@
+package com.njcn.syncdata.pojo.po;
+
+import lombok.Data;
+
+/**
+ * @author wr
+ * @description 母线台账获取
+ * @date 2023/11/10 14:44
+ */
+@Data
+public class BusbarPSR {
+ /**
+ * 设备id
+ */
+ private String ID;
+
+ /**
+ * 设备名称
+ */
+ private String NAME;
+
+ /**
+ * 运行单位
+ */
+ private String depart;
+ /**
+ * 根设备
+ */
+ private String root_id;
+
+ /**
+ * 运行状态
+ */
+ private String RUN_STATUS;
+}
diff --git a/src/main/java/com/njcn/syncdata/pojo/po/PWOPTransformerPSR.java b/src/main/java/com/njcn/syncdata/pojo/po/PWOPTransformerPSR.java
index 93284a2..bf039a3 100644
--- a/src/main/java/com/njcn/syncdata/pojo/po/PWOPTransformerPSR.java
+++ b/src/main/java/com/njcn/syncdata/pojo/po/PWOPTransformerPSR.java
@@ -13,7 +13,7 @@ public class PWOPTransformerPSR {
/**
* 外部系统id
*/
- private String ACCOUNT_ID;
+ private String ID;
/**
* 根设备id
diff --git a/src/main/java/com/njcn/syncdata/pojo/po/PmsCountLedger.java b/src/main/java/com/njcn/syncdata/pojo/po/PmsCountLedger.java
new file mode 100644
index 0000000..204f92b
--- /dev/null
+++ b/src/main/java/com/njcn/syncdata/pojo/po/PmsCountLedger.java
@@ -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;
+
+/**
+ *
+ * 每日变电站-母线数据总条目表
+ *
+ *
+ * @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;
+
+
+}
diff --git a/src/main/java/com/njcn/syncdata/pojo/po/PmsMidLedger.java b/src/main/java/com/njcn/syncdata/pojo/po/PmsMidLedger.java
new file mode 100644
index 0000000..15236df
--- /dev/null
+++ b/src/main/java/com/njcn/syncdata/pojo/po/PmsMidLedger.java
@@ -0,0 +1,122 @@
+package com.njcn.syncdata.pojo.po;
+
+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 com.njcn.db.bo.BaseEntity;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+
+import static com.baomidou.mybatisplus.annotation.IdType.ASSIGN_ID;
+import static com.baomidou.mybatisplus.annotation.IdType.ASSIGN_UUID;
+
+/**
+ *
+ * 变电站-母线数据中间表
+ *
+ *
+ * @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;
+
+ /**
+ * 运行单位
+ */
+ @TableField("SectionId")
+ private String SectionId;
+
+ /**
+ * 运行单位
+ */
+ @TableField("Section")
+ private String section;
+
+ /**
+ * 名称
+ */
+ @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("Create_By")
+ private String createBy;
+
+ /**
+ * 创建时间
+ */
+ @TableField("Create_Time")
+ private LocalDateTime createTime;
+
+ /**
+ * 更新用户
+ */
+ @TableField("Update_By")
+ private String updateBy;
+
+ /**
+ * 更新时间
+ */
+ @TableField("Update_Time")
+ private LocalDateTime updateTime;
+
+
+}
diff --git a/src/main/java/com/njcn/syncdata/pojo/po/Substation.java b/src/main/java/com/njcn/syncdata/pojo/po/Substation.java
index 83746be..094913c 100644
--- a/src/main/java/com/njcn/syncdata/pojo/po/Substation.java
+++ b/src/main/java/com/njcn/syncdata/pojo/po/Substation.java
@@ -4,7 +4,7 @@ import lombok.Data;
/**
* @author wr
- * @description
+ * @description 变电站获取
* @date 2023/6/7 11:15
*/
@Data
@@ -20,5 +20,16 @@ public class Substation {
*/
private String NAME;
-
+ /**
+ * 运行单位
+ */
+ private String depart;
+ /**
+ * 运行状态
+ */
+ private String RUN_STATUS;
+ /**
+ * 电压等级
+ */
+ private String VOLTAGELEVEL_ID;
}
diff --git a/src/main/java/com/njcn/syncdata/service/IPmsCountLedgerService.java b/src/main/java/com/njcn/syncdata/service/IPmsCountLedgerService.java
new file mode 100644
index 0000000..aa097e9
--- /dev/null
+++ b/src/main/java/com/njcn/syncdata/service/IPmsCountLedgerService.java
@@ -0,0 +1,18 @@
+package com.njcn.syncdata.service;
+
+import com.njcn.db.service.IReplenishMybatisService;
+import com.njcn.syncdata.pojo.po.PmsCountLedger;
+
+/**
+ *
+ * 每日变电站-母线数据总条目表 服务类
+ *
+ *
+ * @author wr
+ * @since 2023-11-13
+ */
+public interface IPmsCountLedgerService extends IReplenishMybatisService {
+
+
+ void insertCountLedger(String date);
+}
diff --git a/src/main/java/com/njcn/syncdata/service/IPmsMidLedgerService.java b/src/main/java/com/njcn/syncdata/service/IPmsMidLedgerService.java
new file mode 100644
index 0000000..2520387
--- /dev/null
+++ b/src/main/java/com/njcn/syncdata/service/IPmsMidLedgerService.java
@@ -0,0 +1,23 @@
+package com.njcn.syncdata.service;
+
+import com.njcn.db.service.IReplenishMybatisService;
+import com.njcn.syncdata.pojo.po.PmsMidLedger;
+
+/**
+ *
+ * 变电站-母线数据中间表 服务类
+ *
+ *
+ * @author wr
+ * @since 2023-11-13
+ */
+public interface IPmsMidLedgerService extends IReplenishMybatisService {
+ /**
+ * 变电站-母线中间表
+ * @return
+ */
+ Boolean insertMidLedger();
+
+
+
+}
diff --git a/src/main/java/com/njcn/syncdata/service/impl/PmsCountLedgerServiceImpl.java b/src/main/java/com/njcn/syncdata/service/impl/PmsCountLedgerServiceImpl.java
new file mode 100644
index 0000000..913c629
--- /dev/null
+++ b/src/main/java/com/njcn/syncdata/service/impl/PmsCountLedgerServiceImpl.java
@@ -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;
+
+/**
+ *
+ * 每日变电站-母线数据总条目表 服务实现类
+ *
+ *
+ * @author wr
+ * @since 2023-11-13
+ */
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class PmsCountLedgerServiceImpl extends ReplenishMybatisServiceImpl implements IPmsCountLedgerService {
+
+ private final IPowerDistributionareaService powerService;
+ private final DictDataMapper dictDataMapper;
+ @Override
+ public void insertCountLedger(String date) {
+ List info=new ArrayList<>();
+ List deptInfos = dictDataMapper.selectUserList();
+
+ PmsCountLedger countLedger;
+ for (Dept deptDTO : deptInfos) {
+ //筛选上级部门pids包含该id的所有部门
+ List descendantDeptDTO = deptInfos.stream()
+ .filter(d -> d.getPids().contains(deptDTO.getId()))
+ .collect(Collectors.toList());
+ //形成需要查询监测点的部门索引
+ List 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()
+ .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 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 map1 = new HashMap<>();
+ Map mapSubset = new HashMap<>();
+ //sql查询
+ List