通用台账查询接口调整

This commit is contained in:
cdf
2026-03-23 09:19:03 +08:00
parent 559620ab66
commit e8cd6da8a0
6 changed files with 204 additions and 31 deletions

View File

@@ -59,4 +59,7 @@ public class RunTimeVO implements Serializable {
@ApiModelProperty(name = "onlineEvaluate",value = "在线率评价") @ApiModelProperty(name = "onlineEvaluate",value = "在线率评价")
private Double onlineEvaluate; private Double onlineEvaluate;
@ApiModelProperty(name = "objName",value = "用户对象名称")
private String objName;
} }

View File

@@ -42,6 +42,17 @@ public class RunManageController extends BaseController {
private final RunManageService runManageService; private final RunManageService runManageService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getLineLedgerComm")
@ApiOperation("监测点台账信息")
@ApiImplicitParam(name = "runManageParam", value = "监测点台账参数", required = true)
public HttpResult<Page<RunManageVO>> getLineLedgerComm(@RequestBody @Validated RunManageParam runManageParam) {
String methodDescribe = getMethodDescribe("getLineLedgerComm");
Page<RunManageVO> res = runManageService.getLineLedgerComm(runManageParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getLineLedger") @PostMapping("/getLineLedger")
@ApiOperation("监测点台账信息") @ApiOperation("监测点台账信息")
@@ -54,18 +65,18 @@ public class RunManageController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getRuntimeData") @PostMapping("/getRuntimeData")
@ApiOperation("终端台账信息") @ApiOperation("终端台账信息(通用)")
@ApiImplicitParam(name = "runManageParam", value = "终端台账参数", required = true) @ApiImplicitParam(name = "runManageParam", value = "终端台账参数", required = true)
public HttpResult<List<RunTimeVO>> getRuntimeData(@RequestBody @Validated RunManageParam runManageParam) { public HttpResult<Page<RunTimeVO>> getRuntimeData(@RequestBody @Validated RunManageParam runManageParam) {
String methodDescribe = getMethodDescribe("getRuntimeData"); String methodDescribe = getMethodDescribe("getRuntimeData");
List<RunTimeVO> result = runManageService.getRuntimeDetail(runManageParam); Page<RunTimeVO> result = runManageService.getRuntimeDetail(runManageParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getDeviceLedger") @PostMapping("/getDeviceLedger")
@ApiOperation("获取基本的终端台账信息") @ApiOperation("获取基本的终端台账信息(冀北)")
@ApiImplicitParam(name = "runManageParam", value = "终端台账参数", required = true) @ApiImplicitParam(name = "runManageParam", value = "终端台账参数", required = true)
public HttpResult<Page<RunTimeVO>> getDeviceLedger(@RequestBody @Validated RunManageParam runManageParam) { public HttpResult<Page<RunTimeVO>> getDeviceLedger(@RequestBody @Validated RunManageParam runManageParam) {
String methodDescribe = getMethodDescribe("getRuntimeData"); String methodDescribe = getMethodDescribe("getRuntimeData");

View File

@@ -15,6 +15,9 @@ import java.util.List;
* @date 2022/3/30 * @date 2022/3/30
*/ */
public interface RunManageService { public interface RunManageService {
Page<RunManageVO> getLineLedgerComm(RunManageParam runManageParam);
/** /**
* 获取监测点台账信息 * 获取监测点台账信息
* @param runManageParam 参数 * @param runManageParam 参数
@@ -27,7 +30,7 @@ public interface RunManageService {
* @param runManageParam 参数 * @param runManageParam 参数
* @return 结果 * @return 结果
*/ */
List<RunTimeVO> getRuntimeDetail(RunManageParam runManageParam); Page<RunTimeVO> getRuntimeDetail(RunManageParam runManageParam);
Page<RunTimeVO> getDeviceLedger(RunManageParam runManageParam); Page<RunTimeVO> getDeviceLedger(RunManageParam runManageParam);

View File

@@ -72,6 +72,33 @@ public class RunManageServiceImpl implements RunManageService {
private final UserLedgerService userLedgerService; private final UserLedgerService userLedgerService;
/**
* 通用监测点台账,区别冀北版本的
* @author cdf
* @date 2026/3/22
*/
@Override
public Page<RunManageVO> getLineLedgerComm(RunManageParam runManageParam) {
Page<RunManageVO> pageResult = new Page<>(PageFactory.getPageNum(runManageParam),PageFactory.getPageSize(runManageParam));
List<String> lineIndexes ;
if(CollUtil.isNotEmpty(runManageParam.getIds())){
lineIndexes =runManageParam.getIds();
}else{
DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
BeanUtil.copyProperties(runManageParam, deviceInfoParam);
deviceInfoParam.setServerName("pqs-common");
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, null, Stream.of(1).collect(Collectors.toList()));
lineIndexes = generalDeviceDTOList.stream().flatMap(list -> list.getLineIndexes().stream()).collect(Collectors.toList());
}
if(CollectionUtil.isEmpty(lineIndexes)){
return pageResult;
}
pageResult = deviceMapper.getRunManageCommList(new Page<>(PageFactory.getPageNum(runManageParam),PageFactory.getPageSize(runManageParam)),lineIndexes, runManageParam.getComFlag(),Objects.isNull(runManageParam.getRunFlag())?new ArrayList<>():runManageParam.getRunFlag(), Objects.isNull(runManageParam.getSearchValue())?null:runManageParam.getSearchValue());
return pageResult;
}
@Override @Override
public List<RunManageVO> getLineLedger(RunManageParam runManageParam) { public List<RunManageVO> getLineLedger(RunManageParam runManageParam) {
List<RunManageVO> resultList = new ArrayList<>(); List<RunManageVO> resultList = new ArrayList<>();
@@ -103,34 +130,18 @@ public class RunManageServiceImpl implements RunManageService {
} }
@Override @Override
public List<RunTimeVO> getRuntimeDetail(RunManageParam runManageParam) { public Page<RunTimeVO> getRuntimeDetail(RunManageParam runManageParam) {
List<RunTimeVO> runManageDevList = new ArrayList<>();
DeviceInfoParam deviceInfoParam = new DeviceInfoParam(); DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
BeanUtil.copyProperties(runManageParam, deviceInfoParam); BeanUtil.copyProperties(runManageParam, deviceInfoParam);
deviceInfoParam.setServerName("pqs-common");
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, runManageParam.getRunFlag(), Stream.of(1).collect(Collectors.toList())); List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, runManageParam.getRunFlag(), Stream.of(1).collect(Collectors.toList()));
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
List<String> devIndexes = generalDeviceDTOList.stream().flatMap(list -> list.getDeviceIndexes().stream()).collect(Collectors.toList()); List<String> devIndexes = generalDeviceDTOList.stream().flatMap(list -> list.getDeviceIndexes().stream()).collect(Collectors.toList());
DateFormat bf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (StrUtil.isNotBlank(runManageParam.getSearchBeginTime()) && StrUtil.isNotBlank(runManageParam.getSearchEndTime())) {
runManageParam.setSearchBeginTime(bf.format(DateUtil.beginOfDay(DateUtil.parse(runManageParam.getSearchBeginTime()))));
runManageParam.setSearchEndTime(bf.format(DateUtil.beginOfDay(DateUtil.parse(runManageParam.getSearchEndTime()))));
}
List<String> manuList = runManageParam.getManufacturer().stream().map(SimpleDTO::getId).collect(Collectors.toList()); List<String> manuList = runManageParam.getManufacturer().stream().map(SimpleDTO::getId).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(devIndexes)) { if (CollectionUtil.isEmpty(devIndexes)) {
runManageDevList = deviceMapper.getRunManageDevList(devIndexes, runManageParam.getComFlag(), runManageParam.getRunFlag(), manuList, runManageParam.getSearchValue()); throw new BusinessException("当前部门没有装置台账");
List<LineInfluxDbOnlineVO> lineInfluxDbOnlineVOList = deviceMapper.getOnlineEvaluate(devIndexes, runManageParam.getSearchBeginTime(), runManageParam.getSearchEndTime());
Map<String, LineInfluxDbOnlineVO> map = lineInfluxDbOnlineVOList.stream().collect(Collectors.toMap(LineInfluxDbOnlineVO::getDevIndex, Function.identity()));
runManageDevList = runManageDevList.stream().peek(item -> item.setOnlineEvaluate(!map.containsKey(item.getId()) ? 3.14159 : NumberUtil.round(map.get(item.getId()).getOnlineRate(), 4).doubleValue())).collect(Collectors.toList());
String evaluate = runManageParam.getEvaluate();
if (StrUtil.isNotBlank(evaluate)) {
runManageDevList = runManageDevList.stream().filter(x -> filterOnlineEvaluate(evaluate, x.getOnlineEvaluate())).collect(Collectors.toList());
}
} }
} return deviceMapper.getRunManageDevList(new Page<>(PageFactory.getPageNum(runManageParam), PageFactory.getPageSize(runManageParam)),devIndexes, runManageParam.getComFlag(), runManageParam.getRunFlag(), manuList, runManageParam.getSearchValue());
return runManageDevList;
} }
@Override @Override

View File

@@ -36,6 +36,19 @@ public interface DeviceMapper extends BaseMapper<Device> {
List<Device> getDeviceBySubId(@Param("subId") String subId,@Param("ip") String ip,@Param("port") Integer port,@Param("devId")String devId); List<Device> getDeviceBySubId(@Param("subId") String subId,@Param("ip") String ip,@Param("port") Integer port,@Param("devId")String devId);
/**
* 获取监测点台账信息
* @param list 监测点集合
* @param comFlag 状态
* @param searchValue
* @return 结果
*/
Page<RunManageVO> getRunManageCommList(@Param("page")Page<RunTimeVO> page,
@Param("list") List<String> list,
@Param("comFlag") List<Integer> comFlag,
@Param("runFlag") List<Integer> runFlag,
@Param("searchValue") String searchValue);
/** /**
* 获取监测点台账信息 * 获取监测点台账信息
* @param list 监测点集合 * @param list 监测点集合
@@ -57,7 +70,8 @@ public interface DeviceMapper extends BaseMapper<Device> {
* @param searchValue * @param searchValue
* @return 结果 * @return 结果
*/ */
List<RunTimeVO> getRunManageDevList(@Param("list") List<String> list, Page<RunTimeVO> getRunManageDevList(@Param("page")Page<RunTimeVO> page,
@Param("list") List<String> list,
@Param("comFlag") List<Integer> comFlag, @Param("comFlag") List<Integer> comFlag,
@Param("runFlag") List<Integer> runFlag, @Param("runFlag") List<Integer> runFlag,
@Param("manufacturers") List<String> manufacturer, @Param("manufacturers") List<String> manufacturer,

View File

@@ -16,6 +16,128 @@
</select> </select>
<select id="getRunManageCommList" resultType="com.njcn.device.pq.pojo.vo.RunManageVO">
SELECT
linedetail.Num AS id,
line.NAME AS lineName,
area.NAME AS areaName,
gd.NAME AS gdName,
sub.NAME AS bdName,
scaleId.Name as scale,
manufacturerId.name as manufacturer,
dev.name as devName,
device.IP as ip,
case linedetail.Run_Flag
when 0 then '投运'
when 1 then '检修'
when 2 then '停运'
when 3 then '调试'
when 4 then '退运'
end as runFlag,
case device.Com_Flag
when 0 then '中断'
when 1 then '正常'
end as comFlag,
loadtypeId.Name as loadType,
businesstypeId.name as businessType,
IFNULL(obj.project_name,'/') as objName,
case linedetail.PT_Type
when 0 then '星型接线'
when 1 then '三角型接线'
when 2 then '开口三角型接线'
end as ptType,
CONCAT(linedetail.PT1,'/', linedetail.PT2) as pt,
CONCAT(linedetail.CT1,'/', linedetail.CT2) as ct,
linedetail.Standard_Capacity as standardCapacity,
linedetail.Short_Capacity as shortCapacity,
linedetail.Dev_Capacity as devCapacity,
linedetail.Deal_Capacity as dealCapacity,
overlimit.Freq_Dev as freqDev,
overlimit.Voltage_Dev as voltageDev,
overlimit.Uvoltage_Dev as uvoltageDev,
overlimit.Ubalance as ubalance,
overlimit.I_Neg as iNeg,
overlimit.Flicker as flicker,
overlimit.Uaberrance as uaberrance,
overlimit.Uharm_3 as oddHarm,
overlimit.Uharm_2 as evenHarm,
overlimit.Iharm_2 as iharm2,
overlimit.Iharm_3 as iharm3,
overlimit.Iharm_4 as iharm4,
overlimit.Iharm_5 as iharm5,
overlimit.Iharm_6 as iharm6,
overlimit.Iharm_7 as iharm7,
overlimit.Iharm_8 as iharm8,
overlimit.Iharm_9 as iharm9,
overlimit.Iharm_10 as iharm10,
overlimit.Iharm_11 as iharm11,
overlimit.Iharm_12 as iharm12,
overlimit.Iharm_13 as iharm13,
overlimit.Iharm_14 as iharm14,
overlimit.Iharm_15 as iharm15,
overlimit.Iharm_16 as iharm16,
overlimit.Iharm_17 as iharm17,
overlimit.Iharm_18 as iharm18,
overlimit.Iharm_19 as iharm19,
overlimit.Iharm_20 as iharm20,
overlimit.Iharm_21 as iharm21,
overlimit.Iharm_22 as iharm22,
overlimit.Iharm_23 as iharm23,
overlimit.Iharm_24 as iharm24,
overlimit.Iharm_25 as iharm25,
overlimit.InUharm_1 as inUharm,
overlimit.InUharm_16 as inUharm16
FROM pq_line line
inner join pq_line_detail detail on line.id = detail.id
left join supervision_user_report obj on obj.id = detail.obj_id
INNER JOIN pq_line vol ON vol.Id = line.Pid
INNER JOIN pq_line dev ON dev.Id = vol.Pid
INNER JOIN pq_line sub ON sub.Id = dev.Pid
INNER JOIN pq_line gd ON gd.Id = sub.Pid
INNER JOIN pq_line areaId ON areaId.Id = gd.Pid
INNER JOIN sys_area area ON area.Id = areaId.NAME
INNER JOIN pq_overlimit overlimit ON overlimit.Id = line.Id
INNER JOIN pq_voltage voltage ON voltage.Id = vol.Id
INNER JOIN sys_dict_data scaleId ON scaleId.Id = voltage.Scale
INNER JOIN pq_device device ON device.Id = dev.Id
INNER JOIN sys_dict_data manufacturerId ON manufacturerId.Id = device.Manufacturer
INNER JOIN pq_line_detail linedetail ON linedetail.Id = line.Id
INNER JOIN sys_dict_data loadtypeId ON loadtypeId.Id = linedetail.Load_Type
INNER JOIN sys_dict_data businesstypeId ON businesstypeId.Id = linedetail.Business_Type
WHERE line.Id in
<foreach item="item" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
<if test="comFlag.size()!=0">
and device.Com_Flag in
<foreach item="item2" collection="comFlag" open="(" separator="," close=")">
#{item2}
</foreach>
</if>
<if test="runFlag.size()!=0">
and linedetail.run_Flag in
<foreach item="item" collection="runFlag" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="searchValue != '' and searchValue != null ">
<bind name="searchValueLike" value="'%'+searchValue+'%'"/>
AND (sub.NAME LIKE #{searchValueLike}
OR dev.name LIKE #{searchValueLike}
OR line.NAME LIKE #{searchValueLike}
OR loadtypeId.Name LIKE #{searchValueLike}
OR manufacturerId.name LIKE #{searchValueLike}
OR obj.project_name LIKE #{searchValueLike}
)
</if>
ORDER BY
gdName,
bdName,
devNAME,
objName
</select>
<select id="getRunManageList" resultType="com.njcn.device.pq.pojo.vo.RunManageVO"> <select id="getRunManageList" resultType="com.njcn.device.pq.pojo.vo.RunManageVO">
SELECT SELECT
linedetail.Num AS id, linedetail.Num AS id,
@@ -137,10 +259,12 @@
<select id="getRunManageDevList" resultType="com.njcn.device.pq.pojo.vo.RunTimeVO"> <select id="getRunManageDevList" resultType="com.njcn.device.pq.pojo.vo.RunTimeVO">
SELECT SELECT
DISTINCT
dev.Id AS id, dev.Id AS id,
area.NAME AS areaName, area.NAME AS areaName,
gd.NAME AS gdName, gd.NAME AS gdName,
sub.NAME AS bdName, sub.NAME AS bdName,
obj.project_name objName,
manufacturerId.NAME AS manufacturer, manufacturerId.NAME AS manufacturer,
dev.NAME AS devName, dev.NAME AS devName,
device.IP AS ip, device.IP AS ip,
@@ -152,7 +276,7 @@
WHEN 0 THEN WHEN 0 THEN
'投运' '投运'
WHEN 1 THEN WHEN 1 THEN
'热备用' '检修'
WHEN 2 THEN WHEN 2 THEN
'停运' '停运'
END AS runFlag, END AS runFlag,
@@ -165,8 +289,12 @@
END AS comFlag, END AS comFlag,
device.Update_Time AS updateTime device.Update_Time AS updateTime
FROM FROM
pq_line dev pq_line line
INNER JOIN pq_line sub ON sub.Id = dev.Pid left join pq_line_detail detail on line.id = detail.id
left join supervision_user_report obj on obj.id = detail.obj_id
inner join pq_line busBar on line.pid = busBar.id
inner join pq_line dev on busBar.pid = dev.id
INNER JOIN pq_line sub ON sub.id = dev.Pid
INNER JOIN pq_line gd ON gd.Id = sub.Pid INNER JOIN pq_line gd ON gd.Id = sub.Pid
INNER JOIN pq_line areaId ON areaId.Id = gd.Pid INNER JOIN pq_line areaId ON areaId.Id = gd.Pid
INNER JOIN sys_area area ON area.Id = areaId.NAME INNER JOIN sys_area area ON area.Id = areaId.NAME
@@ -197,10 +325,13 @@
</if> </if>
<if test="searchValue != '' and searchValue != null "> <if test="searchValue != '' and searchValue != null ">
<bind name="searchValueLike" value="'%'+searchValue+'%'"/> <bind name="searchValueLike" value="'%'+searchValue+'%'"/>
AND sub.NAME LIKE #{searchValueLike} AND
(sub.NAME LIKE #{searchValueLike}
OR dev.NAME LIKE #{searchValueLike} OR dev.NAME LIKE #{searchValueLike}
OR devT.Name LIKE #{searchValueLike} OR devT.Name LIKE #{searchValueLike}
OR device.IP LIKE #{searchValueLike} OR device.IP LIKE #{searchValueLike}
OR obj.project_name LIKE #{searchValueLike}
)
</if> </if>
ORDER BY ORDER BY
gdName, gdName,