yuliang 5 tahun lalu
induk
melakukan
ce964a5153

+ 189 - 0
admin-ui/FileSaver.js

@@ -0,0 +1,189 @@
+/* FileSaver.js
+ * A saveAs() FileSaver implementation.
+ * 1.3.2
+ * 2016-06-16 18:25:19
+ *
+ * By Eli Grey, http://eligrey.com
+ * License: MIT
+ *   See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
+ */
+
+/* global self */
+/* jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
+
+/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
+
+var saveAs = saveAs || (function (view) {
+  'use strict'
+  // IE <10 is explicitly unsupported
+  if (typeof view === 'undefined' || typeof navigator !== 'undefined' && /MSIE [1-9]\./.test(navigator.userAgent)) {
+    return
+  }
+  var
+    doc = view.document
+  // only get URL when necessary in case Blob.js hasn't overridden it yet
+  var get_URL = function () {
+    return view.URL || view.webkitURL || view
+  }
+  var save_link = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a')
+  var can_use_save_link = 'download' in save_link
+  var click = function (node) {
+    var event = new MouseEvent('click')
+    node.dispatchEvent(event)
+  }
+  var is_safari = /constructor/i.test(view.HTMLElement) || view.safari
+  var is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent)
+  var throw_outside = function (ex) {
+    (view.setImmediate || view.setTimeout)(function () {
+      throw ex
+    }, 0)
+  }
+  var force_saveable_type = 'application/octet-stream'
+  // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
+  var arbitrary_revoke_timeout = 1000 * 40 // in ms
+  var revoke = function (file) {
+    var revoker = function () {
+      if (typeof file === 'string') { // file is an object URL
+        get_URL().revokeObjectURL(file)
+      } else { // file is a File
+        file.remove()
+      }
+    }
+    setTimeout(revoker, arbitrary_revoke_timeout)
+  }
+  var dispatch = function (filesaver, event_types, event) {
+    event_types = [].concat(event_types)
+    var i = event_types.length
+    while (i--) {
+      var listener = filesaver['on' + event_types[i]]
+      if (typeof listener === 'function') {
+        try {
+          listener.call(filesaver, event || filesaver)
+        } catch (ex) {
+          throw_outside(ex)
+        }
+      }
+    }
+  }
+  var auto_bom = function (blob) {
+    // prepend BOM for UTF-8 XML and text/* types (including HTML)
+    // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
+    if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
+      return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type})
+    }
+    return blob
+  }
+  var FileSaver = function (blob, name, no_auto_bom) {
+    if (!no_auto_bom) {
+      blob = auto_bom(blob)
+    }
+    // First try a.download, then web filesystem, then object URLs
+    var
+      filesaver = this
+    var type = blob.type
+    var force = type === force_saveable_type
+    var object_url
+    var dispatch_all = function () {
+      dispatch(filesaver, 'writestart progress write writeend'.split(' '))
+    }
+    // on any filesys errors revert to saving with object URLs
+    var fs_error = function () {
+      if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
+        // Safari doesn't allow downloading of blob urls
+        var reader = new FileReader()
+        reader.onloadend = function () {
+          var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;')
+          var popup = view.open(url, '_blank')
+          if (!popup) view.location.href = url
+          url = undefined // release reference before dispatching
+          filesaver.readyState = filesaver.DONE
+          dispatch_all()
+        }
+        reader.readAsDataURL(blob)
+        filesaver.readyState = filesaver.INIT
+        return
+      }
+      // don't create more object URLs than needed
+      if (!object_url) {
+        object_url = get_URL().createObjectURL(blob)
+      }
+      if (force) {
+        view.location.href = object_url
+      } else {
+        var opened = view.open(object_url, '_blank')
+        if (!opened) {
+          // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
+          view.location.href = object_url
+        }
+      }
+      filesaver.readyState = filesaver.DONE
+      dispatch_all()
+      revoke(object_url)
+    }
+
+    filesaver.readyState = filesaver.INIT
+
+    if (can_use_save_link) {
+      object_url = get_URL().createObjectURL(blob)
+      setTimeout(function () {
+        save_link.href = object_url
+        save_link.download = name
+        click(save_link)
+        dispatch_all()
+        revoke(object_url)
+        filesaver.readyState = filesaver.DONE
+      })
+      return
+    }
+
+    fs_error()
+  }
+  var FS_proto = FileSaver.prototype
+  var saveAs = function (blob, name, no_auto_bom) {
+    return new FileSaver(blob, name || blob.name || 'download', no_auto_bom)
+  }
+
+  // IE 10+ (native saveAs)
+  if (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) {
+    return function (blob, name, no_auto_bom) {
+      name = name || blob.name || 'download'
+
+      if (!no_auto_bom) {
+        blob = auto_bom(blob)
+      }
+      return navigator.msSaveOrOpenBlob(blob, name)
+    }
+  }
+
+  FS_proto.abort = function () {
+  }
+  FS_proto.readyState = FS_proto.INIT = 0
+  FS_proto.WRITING = 1
+  FS_proto.DONE = 2
+
+  FS_proto.error =
+    FS_proto.onwritestart =
+      FS_proto.onprogress =
+        FS_proto.onwrite =
+          FS_proto.onabort =
+            FS_proto.onerror =
+              FS_proto.onwriteend =
+                null
+
+  return saveAs
+}(
+  typeof self !== 'undefined' && self ||
+  typeof window !== 'undefined' && window ||
+  this.content
+))
+// `self` is undefined in Firefox for Android content script context
+// while `this` is nsIContentFrameMessageManager
+// with an attribute `content` that corresponds to the window
+
+if (typeof module !== 'undefined' && module.exports) {
+  module.exports.saveAs = saveAs
+} else if ((typeof define !== 'undefined' && define !== null) && (define.amd !== null)) {
+  define('FileSaver.js', function () {
+    return saveAs
+  })
+}

+ 1 - 1
admin-ui/app/whepi/index.html

@@ -278,7 +278,7 @@
 <!--<script type="text/javascript" src='/device/camera/camera.js'></script>-->
 <!--<script type="text/javascript" src='/device/labelPrinter/labelPrinter.js'></script>-->
 <!-- Device end -->
-
+<script type="text/javascript" src="/FileSaver.js"></script>
 <script type="text/javascript" src="/app.js"></script>
 <script type="text/javascript" src="/fileApi.js"></script>
 <script type="text/javascript" src="/format.js"></script>

+ 2 - 0
admin-ui/app/whepi/lingyun/dialogDetail.js

@@ -57,6 +57,8 @@ define(function (require) {
             {field: 'bingqingDesc', title: '病情表述', maxWidth: 300, align: 'left',},
             {field: 'workLoalDesc', title: '工作驻地', maxWidth: 100, align: 'left',},
             {field: 'todayLoalDesc', title: '今晚住地', maxWidth: 100, align: 'left',},
+            {field: 'autoLocal', title: '定位地区', maxWidth: 200, align: 'left',},
+            {field: 'autoAddr', title: '定位地址', maxWidth: 200, align: 'left',},
             {field: 'isTrip', title: '是否出行', maxWidth: 100, align: 'center',formatter: function (value) {
                 if (value == 0) {
                   return "<span style='color: green;'>否<span>";

+ 2 - 0
admin-ui/app/whepi/lingyun/lingyunUser.js

@@ -227,6 +227,8 @@ define(function (require) {
                     {field: 'bingqingDesc', title: '病情表述', align: 'left',},
                     {field: 'workLoalDesc', title: '工作驻地', maxWidth: 200, align: 'left',},
                     {field: 'todayLoalDesc', title: '今晚住地', maxWidth: 200, align: 'left',},
+                    {field: 'autoLocal', title: '定位地区', maxWidth: 200, align: 'left',},
+                    {field: 'autoAddr', title: '定位地址', maxWidth: 200, align: 'left',},
                     {field: 'isTripDesc', title: '是否出行', maxWidth: 200, align: 'left',},
                     {field: 'tripDetDesc', title: '出行详细', align: 'left',},
                   ]

+ 2 - 0
whepi-doc/mrsb.sql

@@ -67,6 +67,8 @@ CREATE TABLE ms_trip  (
   today_local       int(11)    NOT NULL DEFAULT 0                           COMMENT '今日驻地:0未填写,1武汉市,2宜昌市,3当阳市,其他地点',
   today_local_other varchar(50)  NOT NULL DEFAULT ''                        COMMENT '今日驻地其他地点',
   is_trip           int(11)    NOT NULL DEFAULT 0                           COMMENT '是否出行:0否,1是',
+  auto_local        varchar(20)  NOT NULL DEFAULT ''                        COMMENT '今日定位地区',
+  auto_addr         varchar(50)  NOT NULL DEFAULT ''                        COMMENT '今日定位详细',
   PRIMARY KEY (trip_id) USING BTREE
 ) ENGINE = InnoDB default charset=utf8mb4 comment = '家庭出行表';
 

+ 3 - 1
whepi-ui/templates/home/frag.foot.ftl

@@ -13,4 +13,6 @@
 <script src="${s3('/jquery-weui/1.2.1/js/jquery-weui.min.js')}"></script>
 <script src="${s3('/jquery-weui/1.2.1/js/swiper.min.js')}"></script>
 <script src="${s3('/jquery-weui/1.2.1/js/city-picker.min.js')}"></script>
-<#--<script src="https://www.w3cways.com/demo/vconsole/vconsole.min.js?v=2.2.0"></script>-->
+<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
+<script src="http://map.qq.com/api/js?v=2.exp&key=VKJBZ-2RQ6S-HVXOD-63CQT-CMCL2-D6FA7"></script>
+<script src="https://www.w3cways.com/demo/vconsole/vconsole.min.js?v=2.2.0"></script>

+ 39 - 0
whepi-ui/templates/home/getLocation.js

@@ -0,0 +1,39 @@
+// wx.config({
+//   debug: true,
+//   appId: 'wxa3991865de920847',
+//   timestamp: 1583378561,
+//   nonceStr: '<?php echo $signPackage["nonceStr"]; ?>',
+//   signature: '7c909d41d5f99a35fd9d39c179dae233b001678d',
+//   jsApiList: [
+//   // 所有要调用的 API 都要加到这个列表中
+//   'getLocation',
+// ]
+// });
+function getLocation() {
+
+  wx.getLocation({
+    type: 'wgs84',
+    success: function (res) {
+      // alert(JSON.stringify(res));
+
+      var geocoder = new qq.maps.Geocoder({
+        complete: function (result) {
+          if ('当阳市' === result.detail.addressComponents.district) {
+            autoLocal='当阳市';
+          } else {
+            autoLocal = result.detail.addressComponents.city;
+          }
+          autoAddr = result.detail.address;
+          // alert(result.detail.address)
+          console.log(result);
+        }
+      })
+      var coord = new qq.maps.LatLng(res.latitude, res.longitude)
+      geocoder.getAddress(coord)
+
+    },
+    cancel: function (res) {
+      alert('用户拒绝授权获取地理位置');
+    }
+  });
+}

+ 4 - 0
whepi-ui/templates/home/home.ftl

@@ -47,8 +47,12 @@
     var ceshixiaoquId = '5';
     var canSahngbao = true;
     var cantijiao = true;
+    var autoLocal='';
+    var autoAddr='';
     <#include "/home/ribao.js" />
     <#include "/home/qiuzhu.js" />
+    <#include "/home/getLocation.js" />
+
     (function ($) {
 
         $(function () {

+ 47 - 0
whepi-ui/templates/home/ribao.js

@@ -1,7 +1,49 @@
 function ribao_init() {
+  $.ajax({
+    url: '/wx/jsApiConfig',
+    type: "get",
+    data: {
+      "url": location.href.split('#')[0]
+    },
+    success: function (data) {
+      wx.config({
+        debug: false,
+        appId: data.data.appId,
+        timestamp: data.data.timestamp,
+        nonceStr: data.data.nonceStr,
+        signature: data.data.signature,
+        jsApiList: [
+          // 所有要调用的 API 都要加到这个列表中
+          'getLocation'
+        ]
+      });
+      wx.ready(function () {
+        wx.checkJsApi({
+          jsApiList: [
+            'getLocation'
+          ],
+
+          success: function (res) {
+            // alert(JSON.stringify(res));
+            // alert(JSON.stringify(res.checkResult.getLocation));
+            if (res.checkResult.getLocation == false) {
+              alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!');
+              return;
+            }
+          }
+        });
+        wx.error(function(res){
+          alert("接口调取失败")
+        });
+      });
+    },
+  });
+
   //lingyun
 
 
+
+
   $('#btnRB').on('click', function () {
     window.location.href = "/yeweihui/home.html";
   });
@@ -1234,6 +1276,8 @@ function ribaoCommit() {
     "workLocalOther": workLocalOther,
     "todayLocal": todyLocal,
     "todayLocalOther": todyLocalOther,
+    "autoLocal": autoLocal,
+    "autoAddr": autoAddr,
     "isTrip": isTrip,
     "tripDet": listcx,
   };
@@ -1522,6 +1566,9 @@ function updateSuspected(suspectedId) {
             tab();
           },
         });
+
+        // 获取定位
+        getLocation();
       }
     },
   });

+ 3 - 2
whepi-web/src/main/java/com/bofeng/dao/RbMapper.java

@@ -105,7 +105,7 @@ public interface RbMapper extends BaseMapper<sysUptownUnit> {
                     "msr.sure_num as sureNum,msr.suspected_num as suspectedNum,msr.normal_num as normalNum, msr.report_date as reportDate,\n" +
                     "msr.single_num as singleNum,mss.user_name as userName,mss.grender, mss.age,mss.family_status as familyStatus,\n" +
                     "mss.medical,mss.temperature,mss.cough,mss.muscle ,mss.dyspnea,mss.fatigue,mss.diarrhea,mss.single_room as singleRoom,mss.score_rezult,\n" +
-                    "tr.trip_id,tr.is_trip,tr.today_local,tr.today_local_other,tr.work_local,tr.work_local_other,ur.user_id as userId\n" +
+                    "tr.trip_id,tr.is_trip,tr.today_local,tr.today_local_other,tr.work_local,tr.work_local_other, tr.auto_local, tr.auto_addr, ur.user_id as userId\n" +
                     "from ms_report msr\n" +
                     "inner join sys_user_role ur on ur.property_id = msr.house_id and ur.role_id = 1 \n" +
                     "inner join sys_uptown_house suh on suh.house_id = msr.house_id\n" +
@@ -122,7 +122,8 @@ public interface RbMapper extends BaseMapper<sysUptownUnit> {
             "select suu.ridgepole,suu.unit,suh.doorplate,suho.linkman,suho.phone,msr.safety_num as safetyNum, msr.report_status as reportStatus,\n" +
                     "msr.sure_num as sureNum,msr.suspected_num as suspectedNum,msr.normal_num as normalNum, \n" +
                     "msr.single_num as singleNum,mss.user_name as userName,mss.grender, mss.age,mss.family_status as familyStatus,\n" +
-                    "mss.medical,mss.temperature,mss.cough,mss.muscle ,mss.dyspnea,mss.fatigue,mss.diarrhea,mss.single_room as singleRoom,mss.score_rezult ,tr.trip_id,tr.is_trip,tr.today_local,tr.today_local_other,tr.work_local,tr.work_local_other\n" +
+                    "mss.medical,mss.temperature,mss.cough,mss.muscle ,mss.dyspnea,mss.fatigue,mss.diarrhea,mss.single_room as singleRoom,mss.score_rezult ," +
+                    "tr.trip_id,tr.is_trip,tr.today_local,tr.today_local_other,tr.work_local,tr.work_local_other, tr.auto_local, tr.auto_addr\n" +
                     "from sys_uptown_house suh\n" +
                     "inner join sys_uptown_home suho on suho.house_id=suh.house_id\n" +
                     "INNER JOIN sys_uptown_unit suu ON suu.unit_id = suh.unit_id and suu.uptown_id=#{uptownId}\n" +

+ 3 - 0
whepi-web/src/main/java/com/bofeng/entity/ExcelRiBaoLYBM4.java

@@ -1,6 +1,7 @@
 package com.bofeng.entity;
 
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotations.TableField;
 import com.google.common.base.Strings;
 import com.yvan.platform.Conv;
 import lombok.Getter;
@@ -41,6 +42,8 @@ public class ExcelRiBaoLYBM4 {
     private String workLocalOther = "";
     private int todayLocal = 0;
     private String todayLocalOther = "";
+    private String autoLocal="";
+    private String autoAddr="";
     private int isTrip = 0;
 
     private Date reportDate;

+ 8 - 2
whepi-web/src/main/java/com/bofeng/entity/ExcelRiBaoPrivate.java

@@ -372,7 +372,13 @@ public class ExcelRiBaoPrivate {
         return workLoalDesc;
     }
 
-    @ExcelProperty(value = "是否出行", index = 21)
+    @ExcelProperty(value = "定位地区", index = 21)
+    private String autoLocal="";
+
+    @ExcelProperty(value = "定位地址", index = 22)
+    private String autoAddr="";
+
+    @ExcelProperty(value = "是否出行", index = 23)
     private String isTripDesc = "";
 
     public String getIsTripDesc() {
@@ -384,7 +390,7 @@ public class ExcelRiBaoPrivate {
         return isTripDesc;
     }
 
-    @ExcelProperty(value = "出行详细", index = 22)
+    @ExcelProperty(value = "出行详细", index = 24)
     private String tripDetDesc = "";
 
 }

+ 6 - 0
whepi-web/src/main/java/com/bofeng/entity/MsTrip.java

@@ -31,6 +31,12 @@ public class MsTrip {
     @TableField("today_local_other")
     private String todayLocalOther;
 
+    @TableField("auto_local")
+    private String autoLocal="";
+
+    @TableField("auto_addr")
+    private String autoAddr="";
+
     @TableField("is_trip")
     private Integer isTrip;
 }

+ 7 - 1
whepi-web/src/main/java/com/bofeng/service/MsTripService.java

@@ -45,7 +45,7 @@ public class MsTripService {
     public Long addSuspectedTrip(Long suspectedId, String userName, Integer grender, Integer age, String familyStatus,
                                  String statusDesp, Integer medical, BigDecimal temperature, Integer cough, Integer muscle,
                                  Integer dyspnea, Integer fatigue, Integer diarrhea, Integer singleRoom, String others, Long userCreate, Integer scoreRezult, Integer temperatureScore, Integer scoreHistroy, Integer score
-            , Integer workLocal, String workLocalOther, Integer todayLocal, String todayLocalOther, Integer isTrip, List<MsTripDet> listTripDet) {
+            , Integer workLocal, String workLocalOther, Integer todayLocal, String todayLocalOther,String autoLocal, String autoAddr, Integer isTrip, List<MsTripDet> listTripDet) {
         Long reportId = 0L;
         //如果是当前日期 已经添加
         Date t = new Date();
@@ -155,6 +155,8 @@ public class MsTripService {
                 msTrip.setTodayLocalOther(todayLocalOther);
                 msTrip.setWorkLocal(workLocal);
                 msTrip.setWorkLocalOther(workLocalOther);
+                msTrip.setAutoLocal(autoLocal);
+                msTrip.setAutoAddr(autoAddr);
                 msTripMapper.insert(msTrip);
                 //添加出行详细
                 if (listTripDet != null && listTripDet.size() > 0) {
@@ -230,6 +232,8 @@ public class MsTripService {
                 msTrip.setTodayLocalOther(todayLocalOther);
                 msTrip.setTodayLocal(todayLocal);
                 msTrip.setIsTrip(isTrip);
+                msTrip.setAutoLocal(autoLocal);
+                msTrip.setAutoAddr(autoAddr);
                 msTripMapper.updateById(msTrip);
             } else {
                 msTrip = new MsTrip();
@@ -239,6 +243,8 @@ public class MsTripService {
                 msTrip.setTodayLocalOther(todayLocalOther);
                 msTrip.setWorkLocal(workLocal);
                 msTrip.setWorkLocalOther(workLocalOther);
+                msTrip.setAutoLocal(autoLocal);
+                msTrip.setAutoAddr(autoAddr);
                 msTripMapper.insert(msTrip);
             }
             //删除行程详细

+ 12 - 0
whepi-web/src/main/java/com/bofeng/wx/WxController.java

@@ -1,10 +1,13 @@
 package com.bofeng.wx;
 
 import com.bofeng.support.WeChatProperties;
+import com.yvan.Model;
 import com.yvan.ModelOps;
+import com.yvan.mvc.Pd;
 import lombok.extern.slf4j.Slf4j;
 import lombok.val;
 import me.chanjar.weixin.common.api.WxConsts;
+import me.chanjar.weixin.common.bean.WxJsapiSignature;
 import me.chanjar.weixin.common.bean.menu.WxMenu;
 import me.chanjar.weixin.common.bean.menu.WxMenuButton;
 import me.chanjar.weixin.common.error.WxErrorException;
@@ -16,6 +19,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Map;
+
 /**
  * Created by luoyifan on 2017/8/24.
  */
@@ -318,4 +323,11 @@ public class WxController {
         return true;
     }
     */
+
+    /**
+     * 获取定位相关的参数*/
+    @GetMapping("/wx/jsApiConfig")
+    public Model<WxJsapiSignature> sdkConfig(@Pd(name = "url")String url) throws WxErrorException {
+        return Model.newSuccess(wxService.createJsapiSignature(url));
+    }
 }

File diff ditekan karena terlalu besar
+ 6 - 2
whepi-web/src/main/java/com/bofeng/wx/controller/MsTripController.java


+ 3 - 3
whepi-web/src/main/resources/mapper/RbMapper.xml

@@ -6,7 +6,7 @@
         select suu.ridgepole,suu.unit,suh.doorplate,suho.linkman,suho.phone,msr.safety_num as safetyNum, msr.report_status as reportStatus,
         msr.sure_num as sureNum,msr.suspected_num as suspectedNum,msr.normal_num as normalNum,
         msr.single_num as singleNum,mss.user_name as userName,mss.grender, mss.age,mss.family_status as familyStatus,
-        mss.medical,mss.temperature,mss.cough,mss.muscle ,mss.dyspnea,mss.fatigue,mss.diarrhea,mss.single_room as singleRoom,mss.score_rezult,tr.trip_id,tr.is_trip,tr.today_local,tr.today_local_other,tr.work_local,tr.work_local_other
+        mss.medical,mss.temperature,mss.cough,mss.muscle ,mss.dyspnea,mss.fatigue,mss.diarrhea,mss.single_room as singleRoom,mss.score_rezult,tr.trip_id,tr.is_trip,tr.today_local,tr.today_local_other,tr.work_local,tr.work_local_other, tr.auto_local, tr.auto_addr
         from sys_uptown_house suh
         inner join sys_uptown_home suho on suho.house_id=suh.house_id
         INNER JOIN sys_uptown_unit suu ON suu.unit_id = suh.unit_id
@@ -35,7 +35,7 @@
         msr.sure_num as sureNum,msr.suspected_num as suspectedNum,msr.normal_num as normalNum,
         msr.single_num as singleNum,mss.user_name as userName,mss.grender, mss.age,mss.family_status as familyStatus,
         mss.medical,mss.temperature,mss.cough,mss.muscle ,mss.dyspnea,mss.fatigue,mss.diarrhea,mss.single_room as singleRoom,mss.score_rezult,
-        tr.trip_id,tr.is_trip,tr.today_local,tr.today_local_other,tr.work_local,tr.work_local_other,ur.user_id as userId
+        tr.trip_id,tr.is_trip,tr.today_local,tr.today_local_other,tr.work_local,tr.work_local_other, tr.auto_local, tr.auto_addr,ur.user_id as userId
         from sys_uptown_house suh
         inner join sys_uptown_home suho on suho.house_id=suh.house_id
         INNER JOIN sys_uptown_unit suu ON suu.unit_id = suh.unit_id and suu.uptown_id=#{uptownId}
@@ -69,7 +69,7 @@
         msr.sure_num as sureNum,msr.suspected_num as suspectedNum,msr.normal_num as normalNum,
         msr.single_num as singleNum,mss.user_name as userName,mss.grender, mss.age,mss.family_status as familyStatus,
         mss.medical,mss.temperature,mss.cough,mss.muscle ,mss.dyspnea,mss.fatigue,mss.diarrhea,mss.single_room as singleRoom,mss.score_rezult,mss.temperature_score,
-        tr.trip_id,tr.is_trip,tr.today_local,tr.today_local_other,tr.work_local,tr.work_local_other,ur.user_id as userId
+        tr.trip_id,tr.is_trip,tr.today_local,tr.today_local_other,tr.work_local,tr.work_local_other, tr.auto_local, tr.auto_addr,ur.user_id as userId
         from sys_uptown_house suh
         inner join sys_uptown_home suho on suho.house_id=suh.house_id
         INNER JOIN sys_uptown_unit suu ON suu.unit_id = suh.unit_id and suu.uptown_id=#{uptownId}