From b33f2e78ffd4fd401698b84a33dc3c293793c62f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 18 二月 2025 16:22:33 +0800
Subject: [PATCH] 最新版本541200007

---
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java                |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java        |    3 
 admin/src/views/business/visits.vue                                                                        |    6 
 h5/pages/staff/index.vue                                                                                   |   44 +++---
 server/system_timer/src/main/resources/logback-spring.xml                                                  |   61 ++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java  |   25 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java   |   48 ++++---
 server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java                    |   40 ++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                 |    1 
 admin/src/views/vehicle/cars.vue                                                                           |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java   |   22 +--
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java                   |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                 |   36 ++++++
 admin/src/views/meeting/bookings.vue                                                                       |   13 +-
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java        |   11 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                     |   16 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java                    |    6 
 18 files changed, 268 insertions(+), 77 deletions(-)

diff --git a/admin/src/views/business/visits.vue b/admin/src/views/business/visits.vue
index 6e28c5b..bf7cde0 100644
--- a/admin/src/views/business/visits.vue
+++ b/admin/src/views/business/visits.vue
@@ -89,9 +89,9 @@
         <el-table-column v-if="containPermissions(['business:visits:update', 'business:visits:delete'])" label="鎿嶄綔"
           min-width="200" fixed="right">
           <template slot-scope="{row}">
-            <el-button type="text" @click="departure(row.id)" icon="el-icon-delete" style="color: red" v-if="row.status == 7">绂诲巶</el-button>
-            <el-button type="text" @click="cancel(row.id)" v-permissions="['business:visits:cancel']"
-              icon="el-icon-delete" style="color: red" v-if="row.status == 5">鍙栨秷棰勭害</el-button>
+          <el-button type="text" @click="departure(row.id)" icon="el-icon-delete" style="color: red" v-if="row.status == 7">绂诲満</el-button>
+            <!--           <el-button type="text" @click="cancel(row.id)" v-permissions="['business:visits:cancel']"
+                      icon="el-icon-delete" style="color: red" v-if="row.status == 5">鍙栨秷棰勭害</el-button>-->
             <el-button type="text" @click="resend(row.id)" v-permissions="['business:visits:update']"
               icon="el-icon-edit" v-if="row.status == 6">閲嶆柊涓嬪彂</el-button>
             <!-- <el-button type="text" @click="$refs.OperaVisitsDesWindow.open('璇︽儏', row.id)" icon="el-icon-view">璇︽儏</el-button> -->
diff --git a/admin/src/views/meeting/bookings.vue b/admin/src/views/meeting/bookings.vue
index bd9aea8..882ef72 100644
--- a/admin/src/views/meeting/bookings.vue
+++ b/admin/src/views/meeting/bookings.vue
@@ -102,13 +102,11 @@
           <template slot-scope="{ row }">
             <template>
               <el-button type="text" @click="$refs.operaBookingsDetailWindow.open('浼氳璇︽儏', row)">鏌ョ湅璇︽儏</el-button>
-              <el-button v-if="row.meetingStatus == '1'" type="text"
-                @click="$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', row)"
-                v-permissions="['business:bookings:update']">缂栬緫</el-button>
-              <el-button type="text" v-if="row.meetingStatus == '1' || row.meetingStatus == '4'" @click="handleStart(row)">寮�濮�</el-button>
-              <el-button type="text" v-if="row.meetingStatus == '2'" @click="handleEnd(row)">缁撴潫</el-button>
-              <el-button v-if="row.meetingStatus == '1' || row.meetingStatus == '4'" type="text" @click="cancelMeeting(row.id)"
-                v-permissions="['business:bookings:update']">鎾ゅ洖</el-button>
+              <el-button v-if="row.meetingStatus == '1' && row.creator===userInfo.id" type="text"
+                @click="$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', row)" >缂栬緫</el-button>
+              <el-button type="text" v-if="row.creator===userInfo.id &&(row.meetingStatus == '1' || row.meetingStatus == '4')" @click="handleStart(row)">寮�濮�</el-button>
+              <el-button type="text" v-if="row.creator===userInfo.id && row.meetingStatus == '2'" @click="handleEnd(row)">缁撴潫</el-button>
+              <el-button v-if="row.creator===userInfo.id &&(row.meetingStatus == '1' || row.meetingStatus == '4')" type="text" @click="cancelMeeting(row.id)">鎾ゅ洖</el-button>
             </template>
             <!-- <el-button v-else type="text" @click="deleteById(row)" v-permissions="['business:bookings:delete']">鍒犻櫎</el-button> -->
           </template>
@@ -142,6 +140,7 @@
   data() {
     return {
       date: [],
+      userInfo: this.$store.state.userInfo,
       // 鎼滅储
       searchForm: {
         roomId: '',
diff --git a/admin/src/views/vehicle/cars.vue b/admin/src/views/vehicle/cars.vue
index 5243461..2d74182 100644
--- a/admin/src/views/vehicle/cars.vue
+++ b/admin/src/views/vehicle/cars.vue
@@ -45,7 +45,7 @@
         v-permissions="['business:cars:create', 'business:cars:exportExcel', 'business:parkBook:create']">
         <li><el-button type="primary" @click="handleEdit" icon="el-icon-plus"
             v-permissions="['business:cars:create']">鏂板缓</el-button></li>
-        <li><el-button type="primary" @click="$refs.OperaCarsImportWindowRef.open('浜哄憳瀵煎叆', searchForm.companyType)" v-permissions="['business:cars:create']">杞﹁締瀵煎叆</el-button>
+        <li><el-button type="primary" @click="$refs.OperaCarsImportWindowRef.open('杞﹁締瀵煎叆', searchForm.companyType)" v-permissions="['business:cars:create']">杞﹁締瀵煎叆</el-button>
         </li>
         <li><el-button type="primary" @click="exportExcel" v-permissions="['business:cars:exportExcel']">瀵煎嚭</el-button>
         </li>
diff --git a/h5/pages/staff/index.vue b/h5/pages/staff/index.vue
index 17ea5a9..d9c3472 100644
--- a/h5/pages/staff/index.vue
+++ b/h5/pages/staff/index.vue
@@ -53,7 +53,7 @@
 		stagingHead,
 		wxAuthorize,
 		refreshToken,
-		app_url,
+		app_url,
 		delHkUserOpenid
 	} from '@/api'
 	export default {
@@ -145,7 +145,7 @@
 					} else if (yw == 7) {
 						this.jump('/pages/staff/task/driver?id=' + ywinfo.ywid)
 					} else if (yw == 5) {
-						this.jump('/pages/staff/vehicle/sendACarDetail')
+						this.jump('/pages/staff/vehicle/sendACarDetail?id=' + ywinfo.ywid)
 					}
 				}, 100)
 			}
@@ -173,25 +173,25 @@
 			loginOut() {
 				logoutPost({
 					isH5: 1
-				}).then(res => {
-					const userInfo = uni.getStorageSync('userInfo')
-					const openId = uni.getStorageSync('openId')
-					this.$store.commit('empty')
-					if(openId){
-						delHkUserOpenid({
-							userName: userInfo.username,
-							openId
-						}).then(ress => {
-							setTimeout(() => {
-								window.location.href = app_url
-							}, 300)
-						})
-					}else{
-						setTimeout(() => {
-							window.location.href = app_url
-						}, 300)
-					}
-					
+				}).then(res => {
+					const userInfo = uni.getStorageSync('userInfo')
+					const openId = uni.getStorageSync('openId')
+					this.$store.commit('empty')
+					if(openId){
+						delHkUserOpenid({
+							userName: userInfo.username,
+							openId
+						}).then(ress => {
+							setTimeout(() => {
+								window.location.href = app_url
+							}, 300)
+						})
+					}else{
+						setTimeout(() => {
+							window.location.href = app_url
+						}, 300)
+					}
+
 				})
 			},
 			getTaskInfo() {
@@ -328,4 +328,4 @@
 			height: 40rpx;
 		}
 	}
-</style>
\ No newline at end of file
+</style>
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java
index d3c494c..f8f067c 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java
@@ -38,6 +38,10 @@
      * 鏍囬琛屽彿
      */
     private int headerNum;
+    /**
+     * 鏍囬琛屽彿
+     */
+    private CellType changeType;
 
     /**
      * 鏋勯�犲嚱鏁�
@@ -101,6 +105,18 @@
         throws InvalidFormatException, IOException {
         this(multipartFile.getOriginalFilename(), multipartFile.getInputStream(), headerNum, sheetIndex);
     }
+    /**
+     * 鏋勯�犲嚱鏁� (閲嶈)
+     * @param--file 瀵煎叆鏂囦欢瀵硅薄
+     * @param headerNum 鏍囬琛屽彿锛屾暟鎹鍙�=鏍囬琛屽彿+1
+     * @param sheetIndex 宸ヤ綔琛ㄧ紪鍙�
+     * @throws InvalidFormatException
+     * @throws IOException
+     */
+    public ExcelImporter(MultipartFile multipartFile, int headerNum, int sheetIndex, CellType cellType)
+        throws InvalidFormatException, IOException {
+        this(multipartFile.getOriginalFilename(), multipartFile.getInputStream(), headerNum, sheetIndex,cellType);
+    }
 
     /**
      * 鏋勯�犲嚱鏁� 锛堬級
@@ -128,6 +144,27 @@
         this.headerNum = headerNum;
         log.debug("Initialize success.");
     }
+    public ExcelImporter(String fileName, InputStream in, int headerNum, int sheetIndex,CellType cellType)
+        throws InvalidFormatException, IOException {
+        if (StringUtils.isBlank(fileName)){
+            throw new RuntimeException("瀵煎叆鏂囨。涓虹┖!");
+        }else if(fileName.toLowerCase().endsWith("xls")){
+            this.wb = new HSSFWorkbook(in);
+        }else if(fileName.toLowerCase().endsWith("xlsx")){
+            this.wb = new XSSFWorkbook(in);
+        }else{
+            throw new RuntimeException("鏂囨。鏍煎紡涓嶆纭�!");
+        }
+        if (this.wb.getNumberOfSheets()<sheetIndex){
+            throw new RuntimeException("鏂囨。涓病鏈夊伐浣滆〃!");
+        }
+        this.sheet = this.wb.getSheetAt(sheetIndex);
+        this.headerNum = headerNum;
+        this.changeType = cellType;
+        log.debug("Initialize success.");
+    }
+
+
 
     /**
      * 鑾峰彇琛屽璞�
@@ -174,7 +211,8 @@
             Cell cell = row.getCell(column);
             if (cell != null){
                 if (cell.getCellType() == CellType.NUMERIC){
-                    val = cell.getNumericCellValue();
+                    cell.setCellType(CellType.STRING); // 纭繚鍗曞厓鏍肩被鍨嬩负瀛楃涓�
+                    val = cell.getStringCellValue();
                 }else if (cell.getCellType() == CellType.STRING){
                     val = cell.getStringCellValue();
                 }else if (cell.getCellType() == CellType.FORMULA){
diff --git a/server/system_timer/src/main/resources/logback-spring.xml b/server/system_timer/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..b5c4652
--- /dev/null
+++ b/server/system_timer/src/main/resources/logback-spring.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
+        <layout class="ch.qos.logback.classic.PatternLayout">
+            <pattern>%highlight(%date{yyyy-MM-dd HH:mm:ss}) | %highlight(%-5level) | %highlight(%thread) | %highlight(%logger) | %msg%n</pattern>
+        </layout>
+    </appender>
+    <property name="log.path" value="/usr/local/jars/logs/systemTimer"></property>
+    <property name="log.fileSize" value="100MB"></property>
+    <property name="log.historyDays" value="7"></property>
+
+    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <!--鍖归厤灏辫垗鍘�-->
+            <onMatch>DENY</onMatch>
+            <onMismatch>ACCEPT</onMismatch>
+        </filter>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!--璺緞-->
+            <fileNamePattern>${log.path}/info.%d.%i.log</fileNamePattern>
+            <maxFileSize>${log.fileSize}</maxFileSize>
+            <maxHistory>${log.historyDays}</maxHistory>
+            <totalSizeCap>1GB</totalSizeCap>
+        </rollingPolicy>
+    </appender>
+
+    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>ERROR</level>
+        </filter>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--婊氬姩绛栫暐-->
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!--璺緞-->
+            <fileNamePattern>${log.path}/error.%d.%i.log</fileNamePattern>
+            <maxFileSize>${log.fileSize}</maxFileSize>
+            <maxHistory>${log.historyDays}</maxHistory>
+            <totalSizeCap>1GB</totalSizeCap>
+        </rollingPolicy>
+    </appender>
+    <!-- 寮傛鍐欏叆鏃ュ織 -->
+    <appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
+        <!-- 涓嶄涪澶辨棩蹇�.榛樿鐨�,濡傛灉闃熷垪鐨�80%宸叉弧,鍒欎細涓㈠純TRACT銆丏EBUG銆両NFO绾у埆鐨勬棩蹇� -->
+        <discardingThreshold >0</discardingThreshold>
+        <!-- 鏇存敼榛樿鐨勯槦鍒楃殑娣卞害,璇ュ�间細褰卞搷鎬ц兘.榛樿鍊间负256 -->
+        <queueSize>512</queueSize>
+        <!-- 娣诲姞闄勫姞鐨刟ppender,鏈�澶氬彧鑳芥坊鍔犱竴涓� -->
+        <appender-ref ref ="fileInfoLog"/>
+    </appender>
+    <root level="info">
+        <appender-ref ref="consoleLog"/>
+        <appender-ref ref="fileInfoLog"/>
+        <appender-ref ref="fileErrorLog"/>
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java
index 41ca70e..520f2b3 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java
@@ -2,6 +2,8 @@
 
 import com.doumee.api.BaseController;
 import com.doumee.config.annotation.LoginNoRequired;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.service.business.third.model.ApiResponse;
 import com.doumee.service.business.third.model.LoginUserInfo;
 import com.doumee.core.utils.Constants;
@@ -93,6 +95,9 @@
             param.getParameters().setDriverTel("00000000000");//鎵嬫満鍙峰繀濉�
         }*/
         LoginUserInfo user = this.getLoginUser(token);
+        if(user ==null){
+            throw  new BusinessException(ResponseStatus.NO_LOGIN);
+        }
         param.getParameters().setDriverTel(user.getUsername());
         return  ApiResponse.success(tmsService.getDriverTaskList(param));
     }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index 268cc3f..777de62 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -625,6 +625,7 @@
         String[] regionDataRanking= new String[]{"/api/ecm/v1/energy/regionDataRanking","娑堥槻鐪嬫澘-4鑾峰彇鍖哄煙鐢ㄩ噺鎺掑悕-鑳借�楃湅鏉�"};//娑堥槻鐪嬫澘-鑾峰彇鍖哄煙鐢ㄩ噺鎺掑悕 - 鑳借�楃湅鏉�
         String[] energyTotal= new String[]{"/api/ecm/v1/energy/energyTotal","娑堥槻鐪嬫澘-4鏍规嵁鏃堕棿鍜屾椂闂寸淮搴﹁幏鍙栧洯鍖鸿兘鑰楁暟鎹�"};//娑堥槻鐪嬫澘-鏍规嵁鏃堕棿鍜屾椂闂寸淮搴﹁幏鍙栧洯鍖鸿兘鑰楁暟鎹�
         String[] findDeviceStatistics= new String[]{"/api/v1/device/findDeviceStatistics","鍒嗛〉鏌ヨ璁惧鐨勪互鍙婁笅灞炰紶鎰熷櫒鏁版嵁鐨勭姸鎬佺粺璁�"};// 鍒嗛〉鏌ヨ璁惧鐨勪互鍙婁笅灞炰紶鎰熷櫒鏁版嵁鐨勭姸鎬佺粺璁�
+        String[] iccmSignoff= new String[]{"/api/iccm/v1/signoff","iccm璁垮绛剧"};// iccm璁垮绛剧
     }
     /**
      * 闄勫綍A.55娑堥槻璁惧绫诲瀷
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index 60a4c3b..faaa2e5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -473,6 +473,22 @@
 		return startDoPostStringArtemis(HKConstants.InterfacePath.visitOut,body);
 	}
 	/**
+	 *	iccm绛剧璁垮棰勭害
+	 * @param body
+	 * @return
+	 */
+	public static String iccmSignoff(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.iccmSignoff,body);
+	}
+	/**
+	 *	iccm鍙栨秷璁垮棰勭害
+	 * @param body
+	 * @return
+	 */
+	public static String iccmCancelAppointment(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.iccmCancelAppointment,body);
+	}
+	/**
 	 *	璁垮鏉冮檺缁�
 	 * @param body
 	 * @return
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 4144bd6..b7bcb04 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -470,6 +470,42 @@
         return  null;
     }
     /**
+     *iccm璁垮棰勭害绛剧
+     * @return
+     */
+    public  static  BaseResponse  iccmSignoff(VisitAppointmentOutRequest param){
+        log.info("銆愭捣搴穒ccm璁垮棰勭害绛剧銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.iccmSignoff(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse>(){};
+            BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
+           logResult(result,"娴峰悍iccm璁垮棰勭害绛剧");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴穒ccm璁垮棰勭害绛剧銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *iccm璁垮棰勭害鍙栨秷
+     * @return
+     */
+    public  static  BaseResponse  iccmCancelAppointment(VisitAppointmentCancelRequest param){
+        log.info("銆愭捣搴穒ccm璁垮棰勭害鍙栨秷銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.iccmCancelAppointment(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse>(){};
+            BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
+           logResult(result,"娴峰悍iccm璁垮棰勭害鍙栨秷");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴穒ccm璁垮棰勭害鍙栨秷銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
      *璁垮鍏嶇櫥璁伴绾�
      * @return
      */
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
index e0b2b76..2cecf5e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -617,12 +617,12 @@
                     paramMap.put("touser", openId);
                     paramMap.put("data", dataMap);
                     String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
-                    log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭唴瀹癸細{}", JSONObject.toJSONString(paramMap));
+                    log.error("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭唴瀹癸細{}", JSONObject.toJSONString(paramMap));
                     if(StringUtils.isBlank(response)){
-                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                        log.error("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
                     }else{
                         JSONObject json = JSONObject.parseObject(response);
-                        log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                        log.error("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
                     }
                 }
             }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java
index 801474f..c198303 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.web.response;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.dao.business.model.PlatformJob;
 import com.doumee.dao.system.model.Multifile;
 import io.swagger.annotations.ApiModel;
@@ -7,12 +8,15 @@
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 @Data
 @ApiModel("鏈堝彴浠诲姟鏁版嵁")
 public class PlatformWorkVO {
 
+    @ApiModelProperty(value = "鏈嶅姟鍣ㄥ綋鍓嶆椂闂�")
+    private Date currentDate;
     @ApiModelProperty(value = "浠诲姟鍒楄〃")
     private List<PlatformJob> platformJobList;
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
index e12e744..5d6d27b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -34,6 +34,7 @@
 import com.doumee.service.business.third.EmayService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
+import org.checkerframework.checker.units.qual.C;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -349,6 +350,17 @@
                 if(StringUtils.isBlank(f.getFileurl())){
                     continue;
                 }
+                if(f.getType() == null){
+                    if(StringUtils.endsWithIgnoreCase(f.getFileurl(),".mp4")){
+                        f.setType(Constants.ONE);
+                    }else if(StringUtils.endsWithIgnoreCase(f.getFileurl(),".jpg")
+                            ||StringUtils.endsWithIgnoreCase(f.getFileurl(),".jpeg")
+                            ||StringUtils.endsWithIgnoreCase(f.getFileurl(),".png")){
+                        f.setType(Constants.ZERO);
+                    }else{
+                        f.setType(Constants.TWO);
+                    }
+                }
                 f.setFileurlFull(path+f.getFileurl());
                 if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.HIDDEN_DANGER_SUBMIT.getKey())){
                     //鐜板満鎯呭喌
@@ -566,6 +578,17 @@
                 multifile.setCreateDate(new Date());
                 multifile.setCreator(hiddenDanger.getEditor());
                 multifile.setIsdeleted(Constants.ZERO);
+                if(multifile.getType() == null){
+                    if(StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".mp4")){
+                        multifile.setType(Constants.ONE);
+                    }else if(StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".jpg")
+                    ||StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".jpeg")
+                    ||StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".png")){
+                        multifile.setType(Constants.ZERO);
+                    }else{
+                        multifile.setType(Constants.TWO);
+                    }
+                }
                 multifile.setObjId(hiddenDanger.getId());
                 multifile.setCreator(hiddenDanger.getLoginUserInfo().getId());
                 multifile.setObjType(Constants.MultiFile.HIDDEN_DANGER_DEAL_BEFORE.getKey());
@@ -579,7 +602,7 @@
             multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
                     .set(Multifile::getIsdeleted,Constants.ONE )
                     .eq(Multifile::getObjType,Constants.MultiFile.HIDDEN_DANGER_DEAL_BEFORE.getKey())
-                    .set(Multifile::getObjId,hiddenDanger.getId())
+                    .eq(Multifile::getObjId,hiddenDanger.getId())
             );
         }
         if(hiddenDanger.getStatus().equals(Constants.ONE)){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 55d3f76..e9173a9 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -57,6 +57,7 @@
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.CellType;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -2048,7 +2049,7 @@
             ExcelImporter ie = null;
             List<MemberImport> dataList =null;
             try {
-                ie = new ExcelImporter(file,1,0);
+                ie = new ExcelImporter(file,1,0, CellType.STRING); // 纭繚鍗曞厓鏍肩被鍨嬩负瀛楃涓�);
                 dataList = ie.getDataList(MemberImport.class,null);
             }  catch (Exception e) {
                 e.printStackTrace();
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
index 55300c8..cebd0dd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -289,6 +289,7 @@
 
     public static PlatformWorkVO getPlatformWorkVO(Platform platform,List<PlatformJob> platformJobList){
         PlatformWorkVO platformWorkVO = new PlatformWorkVO();
+        platformWorkVO.setCurrentDate(new Date());
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
             //鑾峰彇鏈堝彴缁勪笅鐨勬墍鏈変綔涓氭暟鎹�
             List<PlatformJob> platformJobs = platformJobList.stream().filter(
@@ -340,7 +341,6 @@
                 .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.EXCEPTION.getKey())
             )
         );
-
         platformGroupWorkVO.setWaitNum(platformJobJoinMapper.selectJoinCount(new MPJLambdaWrapper<PlatformJob>()
                         .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
index ff3aea9..f49d098 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -600,11 +600,17 @@
         BeanUtils.copyProperties(platformJob,oldPlatformJob);
 
         if(Constants.equalsInteger(signInDTO.getSignType(),Constants.ZERO)){
+            if(!StringUtils.equals(platformJob.getDrivierPhone(),signInDTO.getLoginUserInfo().getMobile())){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY);
+            }
             if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆锛岃鍒锋柊鏌ョ湅");
             }
             this.distanceSignIn(signInDTO,platformJob);
         }else if(Constants.equalsInteger(signInDTO.getSignType(),Constants.ONE)){
+            if(!StringUtils.equals(platformJob.getDrivierPhone(),signInDTO.getLoginUserInfo().getMobile())){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY);
+            }
             if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆锛岃鍒锋柊鏌ョ湅");
             }
@@ -652,7 +658,6 @@
                 || Objects.isNull(signInDTO.getLnt())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"缁忕含搴︿俊鎭紓甯�");
         }
-
         //鑾峰彇绛惧埌鐐圭殑缁忕含搴�
         Double lat = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LAT).getCode());
         Double lnt = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LNT).getCode());
@@ -677,11 +682,9 @@
         }
     }
 
-
     @Override
     public PlatformJob getDetail(JobDetailDTO jobDetailDTO){
-        if(Objects.isNull(jobDetailDTO)
-        || Objects.isNull(jobDetailDTO.getJobId())){
+        if(Objects.isNull(jobDetailDTO)   || Objects.isNull(jobDetailDTO.getJobId())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob  = platformJobMapper.selectById(jobDetailDTO.getJobId());
@@ -691,14 +694,16 @@
         if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){
             //寰呯鍒� 璁$畻璺濈
             if(Objects.nonNull(jobDetailDTO.getLnt())&&Objects.nonNull(jobDetailDTO.getLat())){
-                //鑾峰彇绛惧埌鐐圭殑缁忕含搴�
-                Double lat = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LAT).getCode());
-                Double lnt = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LNT).getCode());
-                //鑾峰彇2涓偣鐨勮窛绂籜绫�
-                Double getDistanceDouble = PositionUtil.getDistance(jobDetailDTO.getLnt(),jobDetailDTO.getLat(),lnt,lat);
-                //杞崲km
-                BigDecimal getDistance = BigDecimal.valueOf(getDistanceDouble).divide(new BigDecimal(1000),2,BigDecimal.ROUND_HALF_UP);
-                platformJob.setGetDistance(getDistance);
+                if(jobDetailDTO.getLat()!=null && jobDetailDTO.getLnt()!=null){
+                    //鑾峰彇绛惧埌鐐圭殑缁忕含搴�
+                    Double lat = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LAT).getCode());
+                    Double lnt = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LNT).getCode());
+                    //鑾峰彇2涓偣鐨勮窛绂籜绫�
+                    Double getDistanceDouble = PositionUtil.getDistance(jobDetailDTO.getLnt(),jobDetailDTO.getLat(),lnt,lat);
+                    //杞崲km
+                    BigDecimal getDistance = BigDecimal.valueOf(getDistanceDouble).divide(new BigDecimal(1000),2,BigDecimal.ROUND_HALF_UP);
+                    platformJob.setGetDistance(getDistance);
+                }
             }
         }else if( Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())
                 || Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())
@@ -886,7 +891,7 @@
         );
         
         //鍏紬鍙锋ā鏉挎秷鎭�
-        if(Objects.nonNull(platformJob.getDriverId())) {
+        if(Objects.nonNull(platformJob.getDrivierPhone())) {
           this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobCallIn,platformJob);
         }
         return platformJob;
@@ -895,7 +900,7 @@
     public void sendWxNotice(String objCode,PlatformJob platformJob){
         SystemUser driver = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                 .eq(SystemUser::getDeleted, Constants.ZERO)
-                .eq(SystemUser::getType, Constants.ZERO)
+                .in(SystemUser::getType, Constants.ZERO,Constants.TWO)
                 .eq(SystemUser::getMobile,platformJob.getDrivierPhone())
                 .last(" limit 1 "));
         if (Objects.nonNull(driver) && StringUtils.isNotBlank(driver.getOpenid())) {
@@ -1137,7 +1142,7 @@
         );
 
         //鍏紬鍙锋ā鏉挎秷鎭�
-        if(Objects.nonNull(platformJob.getDriverId())){ 
+        if(Objects.nonNull(platformJob.getDrivierPhone())){
             this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobSingIn,platformJob);
         }
 
@@ -1273,7 +1278,7 @@
         );
 
         //鍏紬鍙锋ā鏉挎秷鎭�
-        if(Objects.nonNull(platformJob.getDriverId())) { 
+        if(Objects.nonNull(platformJob.getDrivierPhone())) {
             this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobMove,platformJob);
         }
 
@@ -1326,7 +1331,7 @@
         );
 
         //鍏紬鍙锋ā鏉挎秷鎭�
-        if(Objects.nonNull(platformJob.getDriverId())){
+        if(Objects.nonNull(platformJob.getDrivierPhone())){
             this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobOverNum,platformJob);
         }
 
@@ -1378,7 +1383,7 @@
         );
 
         //鍏紬鍙锋ā鏉挎秷鎭�
-        if(Objects.nonNull(platformJob.getDriverId())) {
+        if(Objects.nonNull(platformJob.getDrivierPhone())) {
             this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobError,platformJob);
         }
 
@@ -1432,7 +1437,7 @@
                 SmsConstants.platformJobContent.platformJobWorking,platform.getName(),null
         );
         //鍏紬鍙锋ā鏉挎秷鎭�
-        if(Objects.nonNull(platformJob.getDriverId())) {
+        if(Objects.nonNull(platformJob.getDrivierPhone())) {
             this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobWorking,platformJob);
         }
         //骞挎挱 led閫氱煡
@@ -1533,7 +1538,7 @@
         );
 
         //鍏紬鍙锋ā鏉挎秷鎭�
-        if(Objects.nonNull(platformJob.getDriverId())) {
+        if(Objects.nonNull(platformJob.getDrivierPhone())) {
             this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobFinish,platformJob);
         }
 
@@ -2194,8 +2199,11 @@
             List<PlatformJob> calledList = platformJobList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())).collect(Collectors.toList());
             largeScreenDataVO.setWaitWorkList(calledList);
         }
+//        String u = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.BIGSCREEN_UUID);
+//        if(StringUtils.isBlank(u)){
         String u =  UUID.randomUUID().toString();
         redisTemplate.opsForValue().set(Constants.RedisKeys.BIGSCREEN_UUID,u,3, TimeUnit.MINUTES);
+//        }
         String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),Constants.WxUrlParams.BISCREEN_CODE,u);
         largeScreenDataVO.setQrCode(url);
         largeScreenDataVO.setAttention(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_ATTENTION).getCode());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index 3ea7c15..d4a6aa1 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -13,6 +13,7 @@
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.VisitAppointmentCancelRequest;
 import com.doumee.core.haikang.model.param.request.VisitAppointmentOutRequest;
 import com.doumee.core.haikang.model.param.request.VisitAppointmentRequest;
 import com.doumee.core.haikang.model.param.respose.VisitAppointmentResponse;
@@ -1505,7 +1506,8 @@
         VisitAppointmentOutRequest request = new VisitAppointmentOutRequest();
         request.setOrderId(visits.getHkId());
         //璋冪敤娴峰悍寮哄埗绛剧
-        BaseResponse response =  HKService.outVisitAppiontment(request);
+        BaseResponse response =  HKService.iccmSignoff(request);
+//        BaseResponse response =  HKService.outVisitAppiontment(request);
         visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.VisitStatus.signout)
                 .eq(Visits::getId,visitId));
         //浜у嚭鍦ㄥ満浜哄憳淇℃伅
@@ -1522,10 +1524,11 @@
         if(!visits.getStatus().equals(Constants.VisitStatus.xfSuccess)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁垮璁板綍鐘舵�侀敊璇紝璇峰埛鏂伴噸璇�");
         }
-        VisitAppointmentOutRequest request = new VisitAppointmentOutRequest();
-        request.setOrderId(visits.getHkId());
+        VisitAppointmentCancelRequest request = new VisitAppointmentCancelRequest();
+        request.setAppointRecordIds(new String[]{visits.getHkId()});
         //璋冪敤娴峰悍寮哄埗绛剧
-        BaseResponse response =  HKService.outVisitAppiontment(request);
+//        BaseResponse response =  HKService.outVisitAppiontment(request);
+        BaseResponse response =  HKService.iccmCancelAppointment(request);
         visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.VisitStatus.signout)
                 .eq(Visits::getId,visitId));
         //浜у嚭鍦ㄥ満浜哄憳淇℃伅
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
index 3a9c1b4..9a41523 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -1235,7 +1235,6 @@
     @Override
     public    YearDeviceDataVO yearFightingAdminDeviceData(){
         YearDeviceDataVO data = new YearDeviceDataVO();
-
         FireStatisticRequest param = new FireStatisticRequest();
         param.setIndexCode("api_fire_statistic");
         BaseResponse<FireStatisticResponse> response = HKService.fireStatistic(param);
@@ -1243,7 +1242,6 @@
             data.setProtectNum(Constants.formatIntegerNum(response.getData().getMaintenanceNum()));
             data.setPlanProtectTotal(Constants.formatIntegerNum(response.getData().getDeviceTotalNum()));
         }
-
         param = new FireStatisticRequest();
         param.setIndexCode("api_fire_statistic_month");
         BaseResponse<FireStatisticResponse> response1 = HKService.fireStatisticMonth(param);
@@ -1253,7 +1251,6 @@
             data.setMonthTotalNum(Constants.formatIntegerNum(response1.getData().getDeviceTotalNum()));
         }
         return data;
-
     }
 
     /**
@@ -1269,11 +1266,10 @@
         BaseResponse<List<FindDeviceStatisticsResponse>> response = HKService.findDeviceStatistics(param1);
         if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){
             for(FindDeviceStatisticsResponse r :response.getData()){
-                DeviceNumByTypeVO t = new DeviceNumByTypeVO();
-                t.setTypeName(r.getDeviceTypeName());
-                t.setTotalDeviceNum(Constants.formatIntegerNum(r.getTotalDeviceCount()));
                 if(r.getDevices()!=null){
                     for(FindDeviceStatisticsInfoResponse td : r.getDevices()){
+                        DeviceNumByTypeVO t = new DeviceNumByTypeVO();
+                        t.setTypeName(td.getDeviceName());
                         //灞忚斀鏁�
                         t.setShieldDeviceNum(Constants.formatIntegerNum(t.getShieldDeviceNum() )+ Constants.formatIntegerNum(td.getShieldSensorCount()));
                         //鎶ヨ鏁�
@@ -1284,15 +1280,15 @@
                         t.setErrDeviceNum(Constants.formatIntegerNum(t.getErrDeviceNum())+ Constants.formatIntegerNum(td.getFaultSensorCount()));
                         //鎬昏澶囨暟
                         t.setTotalDeviceNum(Constants.formatIntegerNum(t.getTotalDeviceNum())+ Constants.formatIntegerNum(td.getTotalSensorCount()));
+                        list.add(t);
+//                        data.setOfflineDeviceNum(Constants.formatIntegerNum( data.getOfflineDeviceNum())+Constants.formatIntegerNum(t.getOfflineDeviceNum()));
+                        data.setShieldDeviceNum(Constants.formatIntegerNum( data.getShieldDeviceNum())+Constants.formatIntegerNum(t.getShieldDeviceNum()));
+                        data.setAlarmDeviceNum(Constants.formatIntegerNum( data.getAlarmDeviceNum())+Constants.formatIntegerNum(t.getAlarmDeviceNum()));
+                        data.setOnlineDeviceNum(Constants.formatIntegerNum( data.getOnlineDeviceNum())+Constants.formatIntegerNum(t.getOnlineDeviceNum()));
+                        data.setErrDeviceNum(Constants.formatIntegerNum( data.getErrDeviceNum())+Constants.formatIntegerNum(t.getErrDeviceNum()));
+                        data.setTotalDeviceNum(Constants.formatIntegerNum( data.getTotalDeviceNum())+Constants.formatIntegerNum(t.getTotalDeviceNum()));
                     }
                 }
-                list.add(t);
-                data.setOfflineDeviceNum(Constants.formatIntegerNum( data.getOfflineDeviceNum())+Constants.formatIntegerNum(t.getOfflineDeviceNum()));
-                data.setShieldDeviceNum(Constants.formatIntegerNum( data.getAlarmDeviceNum())+Constants.formatIntegerNum(t.getShieldDeviceNum()));
-                data.setAlarmDeviceNum(Constants.formatIntegerNum( data.getAlarmDeviceNum())+Constants.formatIntegerNum(t.getAlarmDeviceNum()));
-                data.setOnlineDeviceNum(Constants.formatIntegerNum( data.getOnlineDeviceNum())+Constants.formatIntegerNum(t.getOnlineDeviceNum()));
-                data.setErrDeviceNum(Constants.formatIntegerNum( data.getErrDeviceNum())+Constants.formatIntegerNum(t.getErrDeviceNum()));
-                data.setTotalDeviceNum(Constants.formatIntegerNum( data.getTotalDeviceNum())+Constants.formatIntegerNum(t.getTotalDeviceNum()));
             }
         }
        /* FireDevStatusTotalRequest param = new FireDevStatusTotalRequest();

--
Gitblit v1.9.3