施工管控

This commit is contained in:
cwchen 2024-08-29 16:14:59 +08:00
parent efaa03952e
commit 13169fc4a9
2 changed files with 66 additions and 15 deletions

View File

@ -59,6 +59,7 @@ public class ConsControlServiceImpl implements IConsControlService {
@Override
public AjaxResult getBallDeviceLists(BraceletParamsDto dto) {
JSONArray resultTree = new JSONArray();
JSONArray dataTree = new JSONArray();
try {
List<BallTreeVo> list = new ArrayList<>();
list = mapper.getBallDeviceLists(dto);
@ -74,10 +75,19 @@ public class ConsControlServiceImpl implements IConsControlService {
}
//构建球机树
resultTree = BuildTreeUtil.listInfoToTree(JSONArray.parseArray(JSON.toJSONString(list)), "id", "parentId", "children");
if (CollectionUtils.isNotEmpty(resultTree)) {
for (int i = 0; i < resultTree.size(); i++) {
JSONObject jsonObject = resultTree.getJSONObject(i);
JSONArray children = jsonObject.getJSONArray("children");
if (CollectionUtils.isNotEmpty(children)) {
dataTree.add(jsonObject);
}
}
}
} catch (Exception e) {
log.error(e.toString(), e);
}
return AjaxResult.success(resultTree);
return AjaxResult.success(dataTree);
}
@Override
@ -172,6 +182,7 @@ public class ConsControlServiceImpl implements IConsControlService {
@Override
public AjaxResult getPersonsTree(BraceletParamsDto dto) {
JSONArray resultTree = new JSONArray();
JSONArray dataTree = new JSONArray();
try {
List<PersonTreeVo> list = new ArrayList<>();
list = mapper.getPersonsTree(dto);
@ -190,10 +201,49 @@ public class ConsControlServiceImpl implements IConsControlService {
}
//构建人员树
resultTree = BuildTreeUtil.listInfoToTree(JSONArray.parseArray(JSON.toJSONString(list)), "id", "parentId", "children");
if (CollectionUtils.isNotEmpty(resultTree)) {
for (int i = 0; i < resultTree.size(); i++) {
JSONObject jsonObject = resultTree.getJSONObject(i);
PersonTreeVo personTreeVo = jsonObject.toJavaObject(PersonTreeVo.class);
// 检查第三层是否有子节点
boolean hasChildren = hasChildrenAtLevel(personTreeVo, 2);
if(hasChildren){
dataTree.add(jsonObject);
}
// System.out.println("第四层是否有子节点: " + hasChildren); // 应输出 true因为第二层有节点 4 5
}
}
} catch (Exception e) {
log.error(e.toString(), e);
}
return AjaxResult.success(resultTree);
return AjaxResult.success(dataTree);
}
// 递归方法判断在特定层级下是否包含子节点
public static boolean hasChildrenAtLevel(PersonTreeVo node, int level) {
if (node == null) {
return false;
}
if (level == 0) {
return !node.getChildren().isEmpty();
}
return hasChildrenAtLevelInChildren(node.getChildren(), level - 1);
}
// 递归子节点集合查看在特定层级下是否有子节点
private static boolean hasChildrenAtLevelInChildren(List<PersonTreeVo> nodes, int level) {
for (PersonTreeVo child : nodes) {
if (level == 0) {
if (!child.getChildren().isEmpty()) {
return true;
}
} else {
if (hasChildrenAtLevelInChildren(child.getChildren(), level - 1)) {
return true;
}
}
}
return false;
}
@Override
@ -334,16 +384,19 @@ public class ConsControlServiceImpl implements IConsControlService {
mapper.delConfig();
mapper.delConfigItems();
if (Objects.equals(vo.getConfigType(), BusinessConstants.CONFIG_TYPE)) {
if (StringUtils.isEmpty(vo.getTime())) {
return AjaxResult.error("固定时间不能为空");
}
// 固定时间验证
String[] timeArr = vo.getTime().split(",");
if (timeArr.length > 10) {
return AjaxResult.error("固定时间验证不能超过十个配置项");
}
for (String time : timeArr) {
if (!TimeValidator.isValidTime(time)) {
return AjaxResult.error("时间格式错误HH:MM");
}
}
if (timeArr.length > 0) {
return AjaxResult.error("固定时间验证不能超过时间配置项");
}
} else if (Objects.equals(vo.getConfigType(), BusinessConstants.CONFIG_TYPE2)) {
// 间隔时间验证
if (!TimeValidator.isValidTime2(vo.getTime())) {

View File

@ -58,23 +58,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
tp.create_time AS orderTime
FROM tb_project tp
WHERE tp.del_flag = 0
UNION ALL
UNION ALL
SELECT
tdu.id,
td.id,
CONCAT(tpe.name,'-',tpe.phone) AS label,
td.dev_code AS devCode,
IFNULL(td.dev_index,0) AS devIndex,
tdu.pro_id AS parentId,
tdl.pro_id AS parentId,
tp.depart_id AS departId,
IFNULL(td.dev_status,0) AS devStatus,
tdub.ly_time AS orderTime
FROM tb_dev_use tdu
LEFT JOIN tb_dev_use_bid tdub ON tdu.id = tdub.id
LEFT JOIN tb_project tp ON tp.id = tdu.pro_id AND tp.del_flag = 0
LEFT JOIN tb_device td ON tdub.dev_id = td.id AND td.del_flag = 0
LEFT JOIN tb_dev_ly tdl ON tdub.dev_id = tdl.dev_id
tdl.ly_time AS orderTime
FROM tb_device td
LEFT JOIN tb_dev_ly tdl ON td.id = tdl.dev_id
LEFT JOIN tb_people tpe ON tpe.id = tdl.ly_user AND tpe.del_flag = 0
WHERE tdub.dev_type = 'ball' AND tdu.del_flag = 0 AND tdub.gh_time IS NULL
LEFT JOIN tb_project tp ON tdl.pro_id = tp.id AND tp.del_flag = 0
WHERE td.dev_type = 'ball' AND td.del_flag = 0 AND tdl.ly_user IS NOT NULL
) a
<where>
<if test="roleCode!='administrators' and roleCode!='depart'">