diff --git a/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/BuildTreeUtil.java b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/BuildTreeUtil.java new file mode 100644 index 0000000..9c4e67e --- /dev/null +++ b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/BuildTreeUtil.java @@ -0,0 +1,40 @@ +package com.bonus.common.entity.bracelet; + +import com.bonus.common.entity.bracelet.vo.BallTreeVo; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @className:BuildTreeUtil + * @author:cwchen + * @date:2024-08-08-16:15 + * @version:1.0 + * @description:构建树 + */ +public class BuildTreeUtil { + + public static List ballListToChildren(List list) { + Map map = new HashMap<>(); + List result = new ArrayList<>(); + // 第一次遍历,将所有节点存储到map中 + for (BallTreeVo node : list) { + map.put(node.getId() + "", node); + } + // 第二次遍历,构建Children关系 + for (BallTreeVo node : list) { + BallTreeVo parent = map.get(node.getParentId()); + if (parent != null) { + if (parent.getChildren() == null) { + parent.setChildren(new ArrayList<>()); + } + parent.getChildren().add(node); + } else { + result.add(node); + } + } + return result; + } +} diff --git a/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/BallTreeVo.java b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/BallTreeVo.java index 69d7850..dab3e8d 100644 --- a/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/BallTreeVo.java +++ b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/BallTreeVo.java @@ -1,5 +1,6 @@ package com.bonus.common.entity.bracelet.vo; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; @@ -14,11 +15,16 @@ import java.util.List; @Data public class BallTreeVo { + /**id*/ private Long id; - + /**名称*/ private String label; + /**设备编码*/ + private String devCode; + /**设备下标*/ + private String devIndex; - private String puid; + private Long parentId; private List children; } diff --git a/bonus-modules/bonus-app/src/main/java/com/bonus/app/service/impl/AppEquipmentReqServiceImpl.java b/bonus-modules/bonus-app/src/main/java/com/bonus/app/service/impl/AppEquipmentReqServiceImpl.java index c5d4382..0e9d26e 100644 --- a/bonus-modules/bonus-app/src/main/java/com/bonus/app/service/impl/AppEquipmentReqServiceImpl.java +++ b/bonus-modules/bonus-app/src/main/java/com/bonus/app/service/impl/AppEquipmentReqServiceImpl.java @@ -81,7 +81,10 @@ public class AppEquipmentReqServiceImpl implements IAppEquipmentReqService { if(Objects.equals(equipment.getDevType(), BusinessConstants.SHX)){ // 绑定手环箱 mapper.updateDeviceData(vo,equipment,1); - }else if(!Objects.equals(equipment.getDevType(), BusinessConstants.SHX) && !Objects.equals(equipment.getDevType(), BusinessConstants.AQM)){ + }else if(Objects.equals(equipment.getDevType(), BusinessConstants.AQM)){ + // 绑定安全帽 + mapper.updateDeviceData(vo,equipment,3); + }else{ // 绑定除安全帽和手环箱以外的设备(绑定人为班组长) mapper.updateDeviceData(vo,equipment,2); } @@ -125,12 +128,13 @@ public class AppEquipmentReqServiceImpl implements IAppEquipmentReqService { mapper.updateReturnDeviceData(dto,1); }else if(Objects.equals(dto.getDevType(), BusinessConstants.AQM)){ // 设备类型为安全帽时,判断是否全部归还 - int result = mapper.isAllDeviceReturn(dto,2); + int result = mapper.isAllDeviceReturn(dto,1); if(result > 0){ return AjaxResult.error("班组人员未归还安全帽设备"); } + mapper.updateReturnDeviceData(dto,2); }else{ - // 解绑除手环箱、安全帽以外的设备 + // 解绑除手环箱以外的设备 mapper.updateReturnDeviceData(dto,2); } mapper.returnDevice(dto); diff --git a/bonus-modules/bonus-app/src/main/resources/mapper/AppEquipmentReqMapper.xml b/bonus-modules/bonus-app/src/main/resources/mapper/AppEquipmentReqMapper.xml index ef9ce06..190e112 100644 --- a/bonus-modules/bonus-app/src/main/resources/mapper/AppEquipmentReqMapper.xml +++ b/bonus-modules/bonus-app/src/main/resources/mapper/AppEquipmentReqMapper.xml @@ -48,6 +48,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" UPDATE tb_dev_ly SET pro_id = #{vo.proId},team_id = #{vo.teamId},ly_user = #{vo.teamLeaderId},ly_status = 0,ly_time = #{vo.lyTime},user_type = #{vo.userType},gt_id = #{vo.powerId} WHERE dev_id = #{equipment.devId} + + UPDATE tb_dev_ly SET pro_id = #{vo.proId},team_id = #{vo.teamId},gt_id = #{vo.powerId} WHERE dev_id = #{equipment.devId} + @@ -152,7 +155,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND a.departId = #{departId} - ORDER BY a.ghTime ASC,a.lyTime DESC + ORDER BY IFNULL(a.ghTime,now()) DESC,a.lyTime DESC @@ -164,8 +167,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT td.id AS devId,td.dev_code AS devCode,td.dev_name AS devName,td.dev_type AS devType FROM tb_device td - LEFT JOIN tb_dev_use_bid tdub ON td.id = tdub.dev_id AND td.dev_type = tdub.dev_type - WHERE (tdub.id IS NULL OR tdub.gh_time IS NOT NULL) AND td.dev_type = #{devType} AND td.del_flag = 0 + LEFT JOIN tb_dev_ly tdl ON td.id = tdl.dev_id + WHERE tdl.team_id IS NULL AND tdl.ly_user IS NULL AND td.dev_type = #{devType} AND td.del_flag = 0 SELECT tsb.id AS devId,tsb.box_code AS devCode,tsb.box_name AS devName,'shx' AS devType diff --git a/bonus-modules/bonus-app/src/main/resources/mapper/AppSafetyHatMapper.xml b/bonus-modules/bonus-app/src/main/resources/mapper/AppSafetyHatMapper.xml index 9684634..40eb730 100644 --- a/bonus-modules/bonus-app/src/main/resources/mapper/AppSafetyHatMapper.xml +++ b/bonus-modules/bonus-app/src/main/resources/mapper/AppSafetyHatMapper.xml @@ -33,7 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - UPDATE tb_dev_ly SET pro_id = #{proId},team_id = #{teamId},ly_user = #{bidId},ly_status = 0,ly_time = #{bidTime},user_type = 0,gt_id = #{gtId} WHERE dev_id = #{devId} + UPDATE tb_dev_ly SET ly_user = #{bidId},ly_status = 0,ly_time = #{bidTime},user_type = 0 WHERE dev_id = #{devId} 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 7cc1e99..00c6391 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 @@ -1,7 +1,11 @@ package com.bonus.bracelet.mapper; +import com.bonus.common.entity.bracelet.BraceletParamsDto; +import com.bonus.common.entity.bracelet.vo.BallTreeVo; import org.springframework.stereotype.Repository; +import java.util.List; + /** * @className:ConsControlMapper * @author:cwchen @@ -11,4 +15,12 @@ import org.springframework.stereotype.Repository; */ @Repository(value = "ConsControlMapper") public interface ConsControlMapper { + /** + * 获取球机设备列表 + * @param dto + * @return List + * @author cwchen + * @date 2024/8/8 11:24 + */ + List getBallDeviceLists(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 b79a46b..4f2a26e 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 @@ -2,12 +2,18 @@ package com.bonus.bracelet.service.impl; import com.bonus.bracelet.mapper.ConsControlMapper; import com.bonus.bracelet.service.IConsControlService; +import com.bonus.common.core.utils.StringUtils; +import com.bonus.common.core.utils.encryption.Sm4Utils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.entity.bracelet.BraceletParamsDto; +import com.bonus.common.entity.bracelet.BuildTreeUtil; +import com.bonus.common.entity.bracelet.vo.BallTreeVo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; /** * @className:ConsControlServiceImpl @@ -26,9 +32,18 @@ public class ConsControlServiceImpl implements IConsControlService { @Override public AjaxResult getBallDeviceLists(BraceletParamsDto dto) { try { - return null; + List list = new ArrayList<>(); + list = mapper.getBallDeviceLists(dto); + for (BallTreeVo vo : list) { + String[] valArr = vo.getLabel().split("-"); + if (StringUtils.isNotEmpty(valArr[1])) { + vo.setLabel(valArr[0] + "-" + Sm4Utils.decode(valArr[1])); + } + } + List handleList = BuildTreeUtil.ballListToChildren(list); + return AjaxResult.success(handleList); } catch (Exception e) { - log.error(e.toString(),e); + log.error(e.toString(), e); } return AjaxResult.success(); } diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/EquipmentReqServiceImpl.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/EquipmentReqServiceImpl.java index d5c5abb..eae2788 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/EquipmentReqServiceImpl.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/EquipmentReqServiceImpl.java @@ -64,7 +64,7 @@ public class EquipmentReqServiceImpl implements IEquipmentReqService { return AjaxResult.error("领用设备中有重复设备,请仔细检查"); } for (EquipmentReqDataVo.Equipment equipment : vo.getList()) { - // 判断设备是否已经归还 + // 判断领用设备是否已经归还 Integer result = result = mapper.isHasUseDevice(equipment); if (result > 0) { return AjaxResult.error("领用设备中包含未归还设备,请先归还后,方可再次领用"); @@ -80,7 +80,10 @@ public class EquipmentReqServiceImpl implements IEquipmentReqService { if(Objects.equals(equipment.getDevType(), BusinessConstants.SHX)){ // 绑定手环箱 mapper.updateDeviceData(vo,equipment,1); - }else if(!Objects.equals(equipment.getDevType(), BusinessConstants.SHX) && !Objects.equals(equipment.getDevType(), BusinessConstants.AQM)){ + }else if(Objects.equals(equipment.getDevType(), BusinessConstants.AQM)){ + // 绑定安全帽 + mapper.updateDeviceData(vo,equipment,3); + }else{ // 绑定除安全帽和手环箱以外的设备(绑定人为班组长) mapper.updateDeviceData(vo,equipment,2); } @@ -124,12 +127,13 @@ public class EquipmentReqServiceImpl implements IEquipmentReqService { mapper.updateReturnDeviceData(dto,1); }else if(Objects.equals(dto.getDevType(), BusinessConstants.AQM)){ // 设备类型为安全帽时,判断是否全部归还 - int result = mapper.isAllDeviceReturn(dto,2); + int result = mapper.isAllDeviceReturn(dto,1); if(result > 0){ return AjaxResult.error("班组人员未归还安全帽设备"); } + mapper.updateReturnDeviceData(dto,2); }else{ - // 解绑除手环箱、安全帽以外的设备 + // 解绑除手环箱以外的设备 mapper.updateReturnDeviceData(dto,2); } mapper.returnDevice(dto); 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 642efc7..7cf72c8 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 @@ -4,4 +4,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + \ No newline at end of file diff --git a/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/EquipmentReqMapper.xml b/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/EquipmentReqMapper.xml index 2a19349..f65a655 100644 --- a/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/EquipmentReqMapper.xml +++ b/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/EquipmentReqMapper.xml @@ -48,6 +48,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" UPDATE tb_dev_ly SET pro_id = #{vo.proId},team_id = #{vo.teamId},ly_user = #{vo.teamLeaderId},ly_status = 0,ly_time = #{vo.lyTime},user_type = #{vo.userType},gt_id = #{vo.powerId} WHERE dev_id = #{equipment.devId} + + UPDATE tb_dev_ly SET pro_id = #{vo.proId},team_id = #{vo.teamId},gt_id = #{vo.powerId} WHERE dev_id = #{equipment.devId} + @@ -153,7 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND a.departId = #{departId} - ORDER BY a.ghTime ASC,a.lyTime DESC + ORDER BY IFNULL(a.ghTime,now()) DESC,a.lyTime DESC