1.数据完整性列表筛选条件调整

2.管理员新增装置自动生成装置名称
This commit is contained in:
xy
2024-08-01 15:52:52 +08:00
parent cc1dd4f470
commit 0ecb8e1585
9 changed files with 108 additions and 1 deletions

View File

@@ -70,4 +70,6 @@ public interface DeviceMapper extends Mapper<Device>{
List<Integer> getDevIndex(@Param("list") List<Integer> dataType); List<Integer> getDevIndex(@Param("list") List<Integer> dataType);
DeviceDetail getDevAndParent(@Param("devIndex")String devIndex); DeviceDetail getDevAndParent(@Param("devIndex")String devIndex);
String findMaxDeviceName(@Param("gdIndex")Long gdIndex);
} }

View File

@@ -53,6 +53,8 @@ public interface LineMapper extends Mapper<Line> {
//根据现有的监测点筛选出国网监测点 //根据现有的监测点筛选出国网监测点
List<Integer> getGWLines(@Param("list") List<Integer> subList); List<Integer> getGWLines(@Param("list") List<Integer> subList);
List<Integer> getAllGWLines(@Param("list") List<Integer> subList);
String selectLineName(String name); String selectLineName(String name);
//获取该表所有数据提供excel导出 //获取该表所有数据提供excel导出

View File

@@ -340,7 +340,7 @@ public class DeviceServiceImpl implements DeviceService {
} }
intergralityData.setAllNets(list1); intergralityData.setAllNets(list1);
//国网监测点 //国网监测点
List<Integer> countryLineIndexs = getGwLine(lineIndexs); List<Integer> countryLineIndexs = getAllGwLine(lineIndexs);
if (!CollectionUtils.isEmpty(countryLineIndexs)) { if (!CollectionUtils.isEmpty(countryLineIndexs)) {
List<IntergralityTable> list2 = getGWIntegralityTable(startTime, endTime, countryLineIndexs); List<IntergralityTable> list2 = getGWIntegralityTable(startTime, endTime, countryLineIndexs);
if (CollUtil.isNotEmpty(list2)){ if (CollUtil.isNotEmpty(list2)){
@@ -1085,6 +1085,30 @@ public class DeviceServiceImpl implements DeviceService {
return tempLine; return tempLine;
} }
private List<Integer> getAllGwLine(List<Integer> lines) {
if (CollectionUtils.isEmpty(lines)) {
return new ArrayList<>();
}
List<Integer> lineTemp = new ArrayList<>(lines);
List<Integer> tempLine = new ArrayList<>();
if (lineTemp.size() > 1000) {
int times = lineTemp.size() / 1000 + 1;
for (int i = 0; i < times; i++) {
if (lineTemp.size() > 1000) {
List<Integer> subList = lineTemp.subList(0, 1000);
List<Integer> temp = lineMapper.getAllGWLines(subList);
subList.clear();
tempLine.addAll(temp);
} else {
tempLine.addAll(lineMapper.getAllGWLines(lineTemp));
}
}
} else {
tempLine.addAll(lineMapper.getAllGWLines(lineTemp));
}
return tempLine;
}
/** /**
* 根据监测点索引获取当前的数据完整性 * 根据监测点索引获取当前的数据完整性
* *

View File

@@ -181,6 +181,24 @@
AND T2.MONITOR_ID IS NOT NULL AND T2.MONITOR_ID IS NOT NULL
</select> </select>
<select id="getAllGWLines" resultType="Integer">
SELECT
T2.LINE_INDEX
FROM
PQ_LINE t1,
PQ_LINEDETAIL t2,
PQ_DEVICE t3
WHERE
T1.LINE_INDEX = T2.LINE_INDEX
AND T1.DEV_INDEX=T3.DEV_INDEX
AND T1.LINE_INDEX IN
<foreach collection="list" item="item" open="(" close=")"
separator=",">
#{item}
</foreach>
AND T2.MONITOR_ID IS NOT NULL
</select>
<select id="getLineByEventDetailIndex" resultType="line"> <select id="getLineByEventDetailIndex" resultType="line">
select t1.* select t1.*
from PQ_LINE t1, from PQ_LINE t1,

View File

@@ -798,6 +798,20 @@ public class DeviceController {
return result; return result;
} }
@RequestMapping(value = "findMaxDeviceName", method = RequestMethod.POST)
@ResponseBody
public String findMaxDeviceName(HttpServletRequest request, Long gdIndex) {
String result;
try {
result = manaDevice.findMaxDeviceName(gdIndex);
userLog.getLog("查询当前供电公司下面最大的设备名称", "成功", result, LogTypeEnum.SYSTEM.toString(), 0);
} catch (Exception e) {
result = null;
userLog.getLog("查询当前供电公司下面最大的设备名称", "失败", result, LogTypeEnum.SYSTEM.toString(), 0);
}
return result;
}
@RequestMapping(value = "addDevice", method = RequestMethod.POST) @RequestMapping(value = "addDevice", method = RequestMethod.POST)
@ResponseBody @ResponseBody
public HttpResult addDevice(HttpServletRequest request, HttpSession session, String devName, Long gdIndex, public HttpResult addDevice(HttpServletRequest request, HttpSession session, String devName, Long gdIndex,

View File

@@ -123,4 +123,6 @@ public interface ManaDeviceService {
*/ */
int addMonitor(String monitorId); int addMonitor(String monitorId);
String findMaxDeviceName(Long gdIndex);
} }

View File

@@ -2488,4 +2488,31 @@ public class ManaDeviceServiceImpl implements ManaDeviceService {
return 0; return 0;
} }
} }
@Override
public String findMaxDeviceName(Long gdIndex) {
String name = deviceMapper.findMaxDeviceName(gdIndex);
return incrementString(name);
}
public String incrementString(String str) {
// 查找最后一个非数字字符的位置
int lastIndex = str.length() - 1;
while (lastIndex >= 0 && Character.isDigit(str.charAt(lastIndex))) {
lastIndex--;
}
// 如果没有找到非数字字符,说明整个字符串都是数字
if (lastIndex == -1) {
// 直接将字符串转换为整数,递增,再转回字符串
return String.valueOf(Long.parseLong(str) + 1);
}
// 提取出数字部分
String numberPart = str.substring(lastIndex + 1);
// 将数字部分转换为整数,递增,再转回字符串
long number = Long.parseLong(numberPart) + 1;
String incrementedNumberPart = String.format("%0" + numberPart.length() + "d", number);
// 将递增后的数字部分拼接到原字符串的非数字部分
return str.substring(0, lastIndex + 1) + incrementedNumberPart;
}
} }

View File

@@ -171,4 +171,8 @@ FROM
WHERE WHERE
a.dev_index = #{devIndex} a.dev_index = #{devIndex}
</select> </select>
<select id="findMaxDeviceName" resultType="String">
SELECT MAX(NAME) FROM PQ_DEVICE WHERE GD_INDEX = #{gdIndex}
</select>
</mapper> </mapper>

View File

@@ -49,6 +49,20 @@
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function () { $(document).ready(function () {
$("html").css("height", "100px"); $("html").css("height", "100px");
//获取默认装置名称
var gdIndex = $("#gdIndex").val();
$.ajax({
url: '/pqs9900/device/findMaxDeviceName',
type: 'POST',
dataType: "text",
data: {
gdIndex: gdIndex
},
success: function (data) {
$('#devName').val(data);
}
});
}); });
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 var index = parent.layer.getFrameIndex(window.name); //获取窗口索引