Przeglądaj źródła

feat: 回显打卡距离

shc 8 miesięcy temu
rodzic
commit
f5250c549b

+ 21 - 14
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/WmDaHospital.java

@@ -1,5 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.api.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -19,7 +20,7 @@ import java.time.LocalDateTime;
 @TableName("wm_da_hospital")
 @EqualsAndHashCode(callSuper = true)
 public class WmDaHospital extends Model<WmDaHospital> {
-private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
     /**
      * id
@@ -59,10 +60,10 @@ private static final long serialVersionUID = 1L;
      */
     private String yygm;
 
-	/**
-	 * 医院规模
-	 */
-	private String yyxz;
+    /**
+     * 医院规模
+     */
+    private String yyxz;
     /**
      * 联系总机
      */
@@ -116,15 +117,15 @@ private static final long serialVersionUID = 1L;
      */
     private String ybczs;
 
-	/**
-	 * 医院官网
-	 */
+    /**
+     * 医院官网
+     */
     private String website;
 
-	/**
-	 * 主流供货商业
-	 */
-	private String zlghsy;
+    /**
+     * 主流供货商业
+     */
+    private String zlghsy;
 
     /**
      * 普什品种是否入院
@@ -141,7 +142,7 @@ private static final long serialVersionUID = 1L;
     /**
      * 是否删除
      */
-	@TableLogic
+    @TableLogic
     private String delFlag;
     /**
      * 是否禁用
@@ -167,4 +168,10 @@ private static final long serialVersionUID = 1L;
      * 更新人
      */
     private Integer updateUser;
-    }
+
+    /**
+     * 距离当前位置的距离
+     */
+    @TableField(exist = false)
+    private Double distance;
+}

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -2953,11 +2953,12 @@ public class ApiController {
         List<WmDaHospital> wmDaHospitalList = wmDaHospitalService.listByPoint(qWmDaHospital);
         if (CollUtil.isNotEmpty(wmDaHospitalList)) {
             for (WmDaHospital wmDaHospital : wmDaHospitalList) {
-                Map<String, Object> map = new HashMap<>();
+                Map<String, Object> map = new HashMap<>(6);
                 map.put("signEntId", wmDaHospital.getId());
                 map.put("signEntName", wmDaHospital.getYymc());
                 map.put("longitude", wmDaHospital.getLongitude());
                 map.put("latitude", wmDaHospital.getLatitude());
+                map.put("distance", wmDaHospital.getDistance());
                 map.put("signEntType", "1");
                 mapList.add(map);
             }

+ 0 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmDaHospitalService.java

@@ -1,4 +1,3 @@
-
 package com.qunzhixinxi.hnqz.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;

+ 65 - 61
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmDaHospitalMapper.xml

@@ -4,67 +4,71 @@
 
 <mapper namespace="com.qunzhixinxi.hnqz.admin.mapper.WmDaHospitalMapper">
 
-    <resultMap id="wmDaHospitalMap" type="com.qunzhixinxi.hnqz.admin.api.entity.WmDaHospital">
-        <id property="id" column="id"/>
-        <result property="yymc" column="yymc"/>
-        <result property="province" column="province"/>
-        <result property="city" column="city"/>
-        <result property="area" column="area"/>
-        <result property="address" column="address"/>
-        <result property="longitude" column="longitude"/>
-        <result property="latitude" column="latitude"/>
-        <result property="yygm" column="yygm"/>
-        <result property="yyxz" column="yyxz"/>
-        <result property="lxzj" column="lxzj"/>
-        <result property="ggyx" column="ggyx"/>
-        <result property="yzxm" column="yzxm"/>
-        <result property="yzlxfs" column="yzlxfs"/>
-        <result property="fyzxm" column="fyzxm"/>
-        <result property="fyzlxfs" column="fyzlxfs"/>
-        <result property="ywcczxm" column="ywcczxm"/>
-        <result property="ywcczlxfs" column="ywcczlxfs"/>
-        <result property="jwcczxm" column="jwcczxm"/>
-        <result property="jwcczlxfs" column="jwcczlxfs"/>
-        <result property="yjkzrxm" column="yjkzrxm"/>
-        <result property="yjkzrlsfs" column="yjkzrlsfs"/>
-        <result property="ybczs" column="ybczs"/>
-        <result property="zlghsy" column="zlghsy"/>
-        <result property="pspzsfry" column="pspzsfry"/>
-        <result property="pspzpssy" column="pspzpssy"/>
-        <result property="deptId" column="dept_id"/>
-        <result property="delFlag" column="del_flag"/>
-        <result property="enableFlag" column="enable_flag"/>
-        <result property="tenantId" column="tenant_id"/>
-        <result property="createTime" column="create_time"/>
-        <result property="createUser" column="create_user"/>
-        <result property="updateTime" column="update_time"/>
-        <result property="updateUser" column="update_user"/>
-    </resultMap>
+  <resultMap id="wmDaHospitalMap" type="com.qunzhixinxi.hnqz.admin.api.entity.WmDaHospital">
+    <id property="id" column="id"/>
+    <result property="yymc" column="yymc"/>
+    <result property="province" column="province"/>
+    <result property="city" column="city"/>
+    <result property="area" column="area"/>
+    <result property="address" column="address"/>
+    <result property="longitude" column="longitude"/>
+    <result property="latitude" column="latitude"/>
+    <result property="yygm" column="yygm"/>
+    <result property="yyxz" column="yyxz"/>
+    <result property="lxzj" column="lxzj"/>
+    <result property="ggyx" column="ggyx"/>
+    <result property="yzxm" column="yzxm"/>
+    <result property="yzlxfs" column="yzlxfs"/>
+    <result property="fyzxm" column="fyzxm"/>
+    <result property="fyzlxfs" column="fyzlxfs"/>
+    <result property="ywcczxm" column="ywcczxm"/>
+    <result property="ywcczlxfs" column="ywcczlxfs"/>
+    <result property="jwcczxm" column="jwcczxm"/>
+    <result property="jwcczlxfs" column="jwcczlxfs"/>
+    <result property="yjkzrxm" column="yjkzrxm"/>
+    <result property="yjkzrlsfs" column="yjkzrlsfs"/>
+    <result property="ybczs" column="ybczs"/>
+    <result property="zlghsy" column="zlghsy"/>
+    <result property="pspzsfry" column="pspzsfry"/>
+    <result property="pspzpssy" column="pspzpssy"/>
+    <result property="deptId" column="dept_id"/>
+    <result property="delFlag" column="del_flag"/>
+    <result property="enableFlag" column="enable_flag"/>
+    <result property="tenantId" column="tenant_id"/>
+    <result property="createTime" column="create_time"/>
+    <result property="createUser" column="create_user"/>
+    <result property="updateTime" column="update_time"/>
+    <result property="updateUser" column="update_user"/>
+    <result property="distance" column="dis"/>
+  </resultMap>
 
-    <!-- 根据经纬度获取指定范围内数据 -->
-    <select id="listByPoint" resultMap="wmDaHospitalMap">
-        SELECT
-        s.*,
-        (st_distance (point (s.longitude, s.latitude),
-        point(#{query.longitude},#{query.latitude})) / 0.0111) AS distance
-        FROM wm_da_hospital s
-        where s.longitude is not null and s.latitude is not null and s.del_flag=0 and s.enable_flag=0
-        AND (st_distance (point (s.longitude, s.latitude),point(#{query.longitude},#{query.latitude})) / 0.0111)
-        &lt;= (SELECT value from sys_dict_item WHERE type='point_jwd' limit 1) / 1000
-        ORDER BY distance asc
-    </select>
+  <!-- 根据经纬度获取指定范围内数据 -->
+  <select id="listByPoint" resultMap="wmDaHospitalMap">
+      SELECT s.*,
+             (ST_DISTANCE(POINT(s.longitude, s.latitude),
+                          POINT(#{query.longitude}, #{query.latitude})) / 0.0111) AS distance
+      FROM wm_da_hospital s
+      WHERE s.longitude IS NOT NULL
+        AND s.latitude IS NOT NULL
+        AND s.del_flag = '0'
+        AND s.enable_flag = '0'
+        AND (ST_DISTANCE(POINT(s.longitude, s.latitude), POINT(#{query.longitude}, #{query.latitude})) / 0.0111)
+          &lt;= (SELECT value FROM sys_dict_item WHERE type = 'point_jwd' LIMIT 1) / 1000
+      ORDER BY distance
+  </select>
 
-    <select id="listByPointForDM" resultMap="wmDaHospitalMap">
-        SELECT * from (SELECT s.*,
-        (dmgeo.st_distance(
-                 dmgeo.st_pointfromtext(CONCAT('point(',s.longitude,' ', s.latitude,')'),0),
-                 dmgeo.st_pointfromtext(CONCAT('point(', #{query.longitude}, ' ', #{query.latitude}, ')'), 0)) / 0.0111) AS distance
-        FROM wm_da_hospital s
-        WHERE (s.longitude IS NOT NULL and TRIM(s.longitude) != '')
-            AND (s.latitude IS NOT NULL and TRIM(s.latitude) != '')
-            AND s.del_flag = 0
-            AND s.enable_flag = 0) temp
-        WHERE distance &lt;= 1
-        ORDER BY distance ASC
-    </select>
+  <select id="listByPointForDM" resultMap="wmDaHospitalMap">
+      SELECT temp.*
+      FROM (SELECT s.*,
+                   (dmgeo.st_distance(
+                        dmgeo.st_pointfromtext(CONCAT('point(', s.longitude, ' ', s.latitude, ')'), 0),
+                        dmgeo.st_pointfromtext(CONCAT('point(', #{query.longitude}, ' ', #{query.latitude}, ')'), 0)) / 0.0111) AS distance
+            FROM wm_da_hospital s
+            WHERE (s.longitude IS NOT NULL AND TRIM(s.longitude) != '')
+              AND (s.latitude IS NOT NULL AND TRIM(s.latitude) != '')
+              AND s.del_flag = '0'
+              AND s.enable_flag = '0') temp
+      WHERE distance &lt;= 1
+      ORDER BY distance
+  </select>
 </mapper>