From 693c1c21146d8554000efe6fdbb7003268cf32bb Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Fri, 9 Aug 2024 14:34:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=BD=E5=B7=A5=E7=AE=A1=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/BusinessConstants.java | 3 +- .../entity/bracelet/vo/PersonTreeVo.java | 33 +++++ .../controller/ConsControlController.java | 25 ++++ .../bracelet/mapper/ConsControlMapper.java | 31 ++++ .../bracelet/service/IConsControlService.java | 18 +++ .../service/impl/ConsControlServiceImpl.java | 62 +++++++- .../mapper/bracelet/ConsControlMapper.xml | 140 ++++++++++++++++++ 7 files changed, 304 insertions(+), 8 deletions(-) create mode 100644 bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/PersonTreeVo.java diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java index c823314..1961e29 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java @@ -12,7 +12,8 @@ public class BusinessConstants { public static final int TYPE = 1; public static final int TYPE2 = 2; public static final int TYPE3 = 0; - public static final Long PARENT_ID = 0l; + public static final Long PARENT_ID = 0L; + public static final Integer LEVEL = 4; /** 资源类型 1-人员*/ public static final String RESOURCE_TYPE_USER = "1"; diff --git a/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/PersonTreeVo.java b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/PersonTreeVo.java new file mode 100644 index 0000000..9cdddd6 --- /dev/null +++ b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/PersonTreeVo.java @@ -0,0 +1,33 @@ +package com.bonus.common.entity.bracelet.vo; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @className:PersonTreeVo + * @author:cwchen + * @date:2024-08-09-10:38 + * @version:1.0 + * @description:班组人员树 + */ +@Data +public class PersonTreeVo { + + /**id*/ + private String id; + /**名称*/ + private String label; + /**是否班组长*/ + private Long isTeamLeader; + /**是否告警*/ + private Integer isWarn; + + /**层级*/ + private Integer level; + /**父ID*/ + private String parentId; + + private List children = new ArrayList<>(); +} diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/controller/ConsControlController.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/controller/ConsControlController.java index f66b7bc..f82dc0f 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/controller/ConsControlController.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/controller/ConsControlController.java @@ -65,4 +65,29 @@ public class ConsControlController extends BaseController { List list = service.getWarnLists(dto); return getDataTable(list); } + + /** + * 人员管控-人员树 + * @param dto + * @return AjaxResult + * @author cwchen + * @date 2024/8/9 10:34 + */ + @GetMapping("getPersonsTree") + @SysLog(title = "施工管控", businessType = OperaType.QUERY, logType = 0, module = "施工管控->人员管控", details = "人员管控") + public AjaxResult getPersonsTree(BraceletParamsDto dto){ + return service.getPersonsTree(dto); + } + + /** + * 今日施工班组/施工人数/安全帽信息 + * @param dto + * @return AjaxResult + * @author cwchen + * @date 2024/8/9 13:12 + */ + @GetMapping("getWorkInfo") + public AjaxResult getWorkInfo(BraceletParamsDto dto){ + return service.getWorkInfo(dto); + } } diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/ConsControlMapper.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/ConsControlMapper.java index 0158ed6..18fcd95 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/ConsControlMapper.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/ConsControlMapper.java @@ -2,10 +2,13 @@ package com.bonus.bracelet.mapper; import com.bonus.common.entity.bracelet.BraceletParamsDto; import com.bonus.common.entity.bracelet.vo.BallTreeVo; +import com.bonus.common.entity.bracelet.vo.PersonTreeVo; import com.bonus.common.entity.bracelet.vo.WarnInfoVo; +import org.apache.ibatis.annotations.MapKey; import org.springframework.stereotype.Repository; import java.util.List; +import java.util.Map; /** * @className:ConsControlMapper @@ -42,4 +45,32 @@ public interface ConsControlMapper { * @date 2024/8/9 9:45 */ List getWarnLists(BraceletParamsDto dto); + + /** + * 人员管控-人员树 + * @param dto + * @return List + * @author cwchen + * @date 2024/8/9 10:44 + */ + List getPersonsTree(BraceletParamsDto dto); + + /** + * 获取今日施工班组 + * @param dto + * @return List + * @author cwchen + * @date 2024/8/9 13:16 + */ + List getWorkNum(BraceletParamsDto dto); + + /** + * 安全帽绑定信息 + * @param dto + * @return List> + * @author cwchen + * @date 2024/8/9 13:49 + */ + @MapKey("id") + List> getSafetyHatInfo(BraceletParamsDto dto); } diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/IConsControlService.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/IConsControlService.java index 3fb1336..28bc8b1 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/IConsControlService.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/IConsControlService.java @@ -40,4 +40,22 @@ public interface IConsControlService { * @date 2024/8/9 9:44 */ List getWarnLists(BraceletParamsDto dto); + + /** + * 人员管控-人员树 + * @param dto + * @return AjaxResult + * @author cwchen + * @date 2024/8/9 10:36 + */ + AjaxResult getPersonsTree(BraceletParamsDto dto); + + /** + * 今日施工班组/施工人数/安全帽信息 + * @param dto + * @return AjaxResult + * @author cwchen + * @date 2024/8/9 13:14 + */ + AjaxResult getWorkInfo(BraceletParamsDto dto); } diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/ConsControlServiceImpl.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/ConsControlServiceImpl.java index 6fb0732..a16e175 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/ConsControlServiceImpl.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/ConsControlServiceImpl.java @@ -15,16 +15,16 @@ import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.entity.bracelet.BraceletParamsDto; import com.bonus.common.core.utils.BuildTreeUtil; import com.bonus.common.entity.bracelet.vo.BallTreeVo; +import com.bonus.common.entity.bracelet.vo.PersonTreeVo; import com.bonus.common.entity.bracelet.vo.WarnInfoVo; import com.bonus.system.api.RemoteFileService; import com.bonus.system.api.domain.SysFile; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; +import java.util.*; /** * @className:ConsControlServiceImpl @@ -77,19 +77,20 @@ public class ConsControlServiceImpl implements IConsControlService { vo.setBase64Url(imgBase64); } } catch (Exception e) { - log.error(e.toString(),e); + log.error(e.toString(), e); } return warnInfoVoList; } /** * 获取违章识别图片的base64 + * * @param base64Url * @return String * @author cwchen * @date 2024/8/8 18:36 */ - public String getImgBase64(String base64Url){ + public String getImgBase64(String base64Url) { try { R result = remoteFileService.getImgBase64(base64Url, SecurityConstants.INNER); if (result != null && result.getCode() == HttpStatus.SUCCESS && result.getData() != null) { @@ -99,7 +100,7 @@ public class ConsControlServiceImpl implements IConsControlService { return base64; } } catch (Exception e) { - log.error(e.toString(),e); + log.error(e.toString(), e); } return null; } @@ -110,8 +111,55 @@ public class ConsControlServiceImpl implements IConsControlService { try { warnInfoVoList = mapper.getWarnLists(dto); } catch (Exception e) { - log.error(e.toString(),e); + log.error(e.toString(), e); } return warnInfoVoList; } + + @Override + public AjaxResult getPersonsTree(BraceletParamsDto dto) { + JSONArray resultTree = new JSONArray(); + try { + List list = new ArrayList<>(); + list = mapper.getPersonsTree(dto); + for (PersonTreeVo vo : list) { + //忽略工程数据、杆塔、班组数据 1.工程 2.杆塔 3.班组 4.班组成员/临时人员 + if (!Objects.equals(vo.getLevel(), BusinessConstants.LEVEL)) { + continue; + } + String[] valArr = vo.getLabel().split("-"); + if (StringUtils.isNotEmpty(valArr[1])) { + vo.setLabel(valArr[0] + "-" + Sm4Utils.decode(valArr[1])); + } + } + //构建人员树 + resultTree = BuildTreeUtil.listInfoToTree(JSONArray.parseArray(JSON.toJSONString(list)), "id", "parentId", "children"); + } catch (Exception e) { + log.error(e.toString(), e); + } + return AjaxResult.success(resultTree); + } + + @Override + public AjaxResult getWorkInfo(BraceletParamsDto dto) { + Map mapData = new HashMap<>(); + try { + // 获取施工班组、施工人数(包含班组人员和临时人员))、安全帽绑定信息 + List workTeamList = mapper.getWorkNum(dto); + List> safetyHatLists = mapper.getSafetyHatInfo(dto); + if (CollectionUtils.isNotEmpty(safetyHatLists)) { + for (Map map : safetyHatLists) { + if (map.get("phone") != null) { + map.put("phone", Sm4Utils.decode(String.valueOf(map.get("phone")))); + } + } + } + mapData.put("workTeamNum", workTeamList.get(0)); + mapData.put("workUserNum", workTeamList.get(1) + workTeamList.get(2)); + mapData.put("safetyHatList", safetyHatLists); + } catch (Exception e) { + log.error(e.toString(), e); + } + return AjaxResult.success(mapData); + } } diff --git a/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/ConsControlMapper.xml b/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/ConsControlMapper.xml index 7876228..fe01803 100644 --- a/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/ConsControlMapper.xml +++ b/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/ConsControlMapper.xml @@ -42,6 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND a.departId = #{departId} + AND a.departId IS NOT NULL ORDER BY a.orderTime DESC @@ -94,4 +95,143 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY tw.create_time DESC + + + + + + \ No newline at end of file