hanzhiwei лет назад: 2
Родитель
Сommit
410cf7007b

+ 7 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/rfid/domain/entity/HardwareRfid.java

@@ -1,5 +1,6 @@
 package com.zd.algorithm.api.rfid.domain.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@@ -151,6 +152,10 @@ public class HardwareRfid implements Serializable {
     @ApiModelProperty(value = "备注")
     private String remark;
 
+    @ApiModelProperty(value = "位置")
+    @TableField(exist = false)
+    private String position;
+
     private static final long serialVersionUID = 1L;
 
     public static final String COL_ID = "id";
@@ -194,4 +199,6 @@ public class HardwareRfid implements Serializable {
     public static final String COL_UPDATE_TIME = "update_time";
 
     public static final String COL_REMARK = "remark";
+
+    public static final String COL_POSITION= "position";
 }

+ 4 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/RemoteLaboratoryService.java

@@ -480,4 +480,8 @@ public interface RemoteLaboratoryService {
     @ApiOperation(value = "一件灭火接受火焰预警")
     @PostMapping("/plan/oneClickFire")
     ResultData oneClickFire(@RequestBody OneClickFireDTO oneClickFireDTO);
+
+    @ApiOperation(value = "根据实验室id查询实验室位置信息")
+    @PostMapping("/buildFloorLayout/getPositionBySubId")
+    ResultData getPositionBySubId(@RequestParam("subIds") String subIds);
 }

+ 5 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/fallback/RemoteLaboratoryFallbackFactory.java

@@ -437,6 +437,11 @@ public class RemoteLaboratoryFallbackFactory implements FallbackFactory<RemoteLa
             public ResultData oneClickFire(OneClickFireDTO oneClickFireDTO) {
                 return ResultData.fail("一键灭火触发预案失败!"+ cause.getMessage());
             }
+
+            @Override
+            public ResultData getPositionBySubId(String subIds) {
+                return ResultData.fail("查询实验室位置信息失败!"+ cause.getMessage());
+            }
         };
     }
 }

+ 30 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/service/impl/HardwareRfidServiceImpl.java

@@ -13,6 +13,8 @@ import com.zd.common.core.security.TokenService;
 import com.zd.common.core.utils.BeanUtils;
 import com.zd.common.core.utils.SecurityUtils;
 import com.zd.common.core.utils.SpringUtils;
+import com.zd.laboratory.api.feign.RemoteLaboratoryService;
+import com.zd.model.constant.HttpStatus;
 import com.zd.model.domain.ResultData;
 import com.zd.model.enums.DeviceOnOffEnum;
 import com.zd.model.enums.DeviceStatusEnum;
@@ -22,6 +24,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -36,6 +39,9 @@ public class HardwareRfidServiceImpl extends ServiceImpl<HardwareRfidMapper, Har
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private RemoteLaboratoryService remoteLaboratoryService;
+
     @Override
     public int batchInsert(List<HardwareRfid> list) {
         return baseMapper.batchInsert(list);
@@ -71,7 +77,30 @@ public class HardwareRfidServiceImpl extends ServiceImpl<HardwareRfidMapper, Har
         }
         HardwareRfid hardwareRfid = new HardwareRfid();
         BeanUtils.copyProperties(hardwareRfidVo, hardwareRfid);
-        return baseMapper.selectPage(page, new LambdaQueryWrapper<HardwareRfid>().setEntity(hardwareRfid).orderByDesc(HardwareRfid::getCreateTime));
+        Page<HardwareRfid> hardwareRfidPage = baseMapper.selectPage(page, new LambdaQueryWrapper<HardwareRfid>().setEntity(hardwareRfid).orderByDesc(HardwareRfid::getCreateTime));
+        List<HardwareRfid> records = hardwareRfidPage.getRecords();
+        try {
+            StringBuffer sb = new StringBuffer();
+            for (HardwareRfid record : records) {
+                if (sb.indexOf(String.valueOf(record.getSubjectId())) < 0) {
+                    sb.append(record.getSubjectId()).append(",");
+                }
+            }
+            String substring = sb.substring(0, sb.length() - 1);
+            ResultData positionBySubId = remoteLaboratoryService.getPositionBySubId(substring);
+            if (positionBySubId != null && positionBySubId.getCode().equals(HttpStatus.SUCCESS)) {
+                for (HardwareRfid rfid : records) {
+                    Map<Long, Map<String, Object>> data = (Map<Long, Map<String, Object>>) positionBySubId.getData();
+                    Map<String, Object> stringObjectMap = data.get(String.valueOf(rfid.getSubjectId()));
+                    rfid.setDeptName((String) stringObjectMap.get("deptName"));
+                    rfid.setPosition((String) stringObjectMap.get("position"));
+                }
+            }
+        } catch (Exception e) {
+            log.error("远程调用查询实验室位置异常!{}", e);
+        } finally {
+            return hardwareRfidPage;
+        }
     }
 
     @Override

+ 11 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabBuildFloorLayoutController.java

@@ -7,7 +7,6 @@ import com.zd.common.core.log.BusinessType;
 import com.zd.common.core.web.controller.BaseController;
 import com.zd.common.swagger.config.Knife4jConfiguration;
 import com.zd.laboratory.domain.LabBuildFloorLayout;
-import com.zd.laboratory.domain.LabExitLineVertex;
 import com.zd.laboratory.domain.vo.LabBuildFloorLayoutVo;
 import com.zd.laboratory.service.ILabBuildFloorLayoutService;
 import com.zd.model.domain.ResultData;
@@ -20,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * Controller
@@ -109,4 +109,14 @@ public class LabBuildFloorLayoutController extends BaseController<LabBuildFloorL
         List <LabBuildFloorLayoutVo> list = labBuildFloorLayoutService.selectLabBuildFloorLayoutList(labBuildFloorLayout);
         return getDataTable(list);
     }
+
+    /**
+     * 根据实验室id查询实验室位置信息(楼栋-楼层-实验室名称)
+     */
+    @PostMapping("/getPositionBySubId")
+    @ApiOperation(value = "根据实验室id查询实验室位置信息")
+    public ResultData getPositionBySubId(@RequestParam("subIds") String subIds) {
+        Map<Long, Map<String,Object>> map = labBuildFloorLayoutService.getPositionBySubId(subIds);
+        return ResultData.success(map);
+    }
 }

+ 7 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabBuildFloorLayoutMapper.java

@@ -80,4 +80,11 @@ public interface LabBuildFloorLayoutMapper {
      * @return 布局图集合
      */
     public List <Map <String,Object>> getLotStatis(LabBuildFloorLayout labBuildFloorLayout);
+
+    /**
+     * 根据实验室id查询实验室位置信息(楼栋-楼层-实验室名称)
+     * @Param [subId]
+     * @Return java.lang.String
+     **/
+    List<Map<String,Object>> getPositionBySubId(String subIds);
 }

+ 6 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabBuildFloorLayoutService.java

@@ -1,7 +1,6 @@
 package com.zd.laboratory.service;
 
 import com.zd.laboratory.domain.LabBuildFloorLayout;
-import com.zd.laboratory.domain.LabExitLineVertex;
 import com.zd.laboratory.domain.vo.LabBuildFloorLayoutVo;
 
 import java.util.List;
@@ -65,4 +64,10 @@ public interface ILabBuildFloorLayoutService {
      */
     public Map <String,Object> getLotStatis(LabBuildFloorLayout labBuildFloorLayout);
 
+    /**
+     * 根据实验室id查询实验室位置信息(楼栋-楼层-实验室名称)
+     * @Param [subId 实验室id]
+     * @Return java.lang.String
+     **/
+    Map<Long,Map<String,Object>> getPositionBySubId(String subIds);
 }

+ 18 - 5
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabBuildFloorLayoutServiceImpl.java

@@ -1,6 +1,5 @@
 package com.zd.laboratory.service.impl;
 
-import com.zd.common.core.utils.DictUtils;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.laboratory.domain.LabBuildFloorLayout;
 import com.zd.laboratory.domain.LabExitLineVertex;
@@ -8,13 +7,13 @@ import com.zd.laboratory.domain.vo.LabBuildFloorLayoutVo;
 import com.zd.laboratory.mapper.LabBuildFloorLayoutMapper;
 import com.zd.laboratory.mapper.LabExitLineVertexMapper;
 import com.zd.laboratory.service.ILabBuildFloorLayoutService;
-import com.zd.system.api.entity.SysDictData;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
-import java.util.function.Consumer;
-import java.util.stream.Collectors;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Controller
@@ -88,4 +87,18 @@ public class LabBuildFloorLayoutServiceImpl implements ILabBuildFloorLayoutServi
         }
         return allMap;
     }
+
+    @Override
+    public Map<Long,Map<String,Object>> getPositionBySubId(String subIds) {
+        List<Map<String, Object>> positionBySubId = labBuildFloorLayoutMapper.getPositionBySubId(subIds);
+        if (positionBySubId.isEmpty()){
+            return new HashMap<>();
+        }
+        Map<Long,Map<String,Object>> map = new HashMap<>();
+        for (Map<String, Object> stringStringMap : positionBySubId) {
+            Long subId = (Long) stringStringMap.get("subId");
+            map.put(subId,stringStringMap);
+        }
+        return map;
+    }
 }

+ 13 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabBuildFloorLayoutMapper.xml

@@ -243,5 +243,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+    <select id="getPositionBySubId" resultType="java.util.Map">
+        SELECT
+        ls.id subId,
+        CONCAT( lbf.NAME,'-', ( SELECT lbf.NAME FROM lab_build_floor lbf WHERE lbf.id = lbfl.floor_id ),'-', ls.`name` ) position,
+        dept.dept_name deptName
+        FROM
+            lab_build_floor_layout lbfl
+            LEFT JOIN lab_build_floor lbf ON lbfl.build_id = lbf.id
+            LEFT JOIN lab_subject ls ON lbfl.`sub_id` = ls.`id`
+            LEFT JOIN sys_dept dept ON dept.dept_id = ls.dept_id
+        WHERE
+        FIND_IN_SET(lbfl.sub_id,#{subIds})
+    </select>
 
 </mapper>