From f5ab83dfad01c87828232af8cd18c676e69fd917 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 21 五月 2025 09:14:11 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java           |   28 ++++-
 admin/src/components/business/OperaVisitsDesWindow.vue                                                           |    2 
 admin/src/views/business/reportRecord.vue                                                                        |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java         |   69 ++++++++++---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java              |    5 
 admin/src/views/business/visits.vue                                                                              |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java                       |    5 +
 admin/src/views/business/retention.vue                                                                           |   18 +++
 server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java                          |   24 ++--
 server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/MeetingCloudController.java                    |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java          |    9 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java             |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java         |    5 
 server/meeting/meeting_service/src/main/java/com/doumee/dao/admin/request/BusinessOverDTO.java                   |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java   |   78 +++++++++++----
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java         |    6 
 admin/src/views/business/relativeMember.vue                                                                      |    6 +
 admin/src/components/business/OperaCarUseBookWindow.vue                                                          |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java  |    8 
 admin/src/views/business/internalMember.vue                                                                      |    6 +
 admin/src/views/operation/serviceCar/apprRecord.vue                                                              |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java |    2 
 22 files changed, 202 insertions(+), 91 deletions(-)

diff --git a/admin/src/components/business/OperaCarUseBookWindow.vue b/admin/src/components/business/OperaCarUseBookWindow.vue
index fe82ece..05ac112 100644
--- a/admin/src/components/business/OperaCarUseBookWindow.vue
+++ b/admin/src/components/business/OperaCarUseBookWindow.vue
@@ -71,7 +71,7 @@
             <div class="info">
               <img src="@/assets/icons/ic_tongguo.png" class="iconnew" v-if="item.status == 2" />
               <img src="@/assets/icons/ic_dangqian.png" class="iconnew" v-if="item.status == 1" />
-              <img src="@/assets/icons/ic_jujue.png" class="iconnew" v-if="item.status == 3" />
+              <img src="@/assets/icons/ic_jujue.png" class="iconnew" v-if="item.status == 4 || item.status == 3" />
               <img src="@/assets/icons/ic_grey.png" class="iconnew" v-if="item.status == null || item.status == 0" />
               <div style="display: inline" v-if="item.approveType != 1">
                 <img v-if="item.faceImg != null && item.faceImg != ''" :src="item.faceImg" class="avatar" alt="" />
@@ -234,7 +234,7 @@
     agreeOpen() {
       this.isShowProblem = true
       this.$set(this.dealForm, 'driverId', this.model.driverId)
-      
+
       this.$set(this.dealForm, 'checkInfo', '')
       this.loadMemberList()
     },
diff --git a/admin/src/components/business/OperaVisitsDesWindow.vue b/admin/src/components/business/OperaVisitsDesWindow.vue
index bf9674b..225acf7 100644
--- a/admin/src/components/business/OperaVisitsDesWindow.vue
+++ b/admin/src/components/business/OperaVisitsDesWindow.vue
@@ -70,7 +70,7 @@
                 <span v-if="row.status === 4">鍙栨秷</span>
                 <span v-if="row.status === 5">棰勭害鎴愬姛</span>
                 <span v-if="row.status === 6">棰勭害澶辫触</span>
-                <span v-if="row.status === 7">鎷滆涓�</span>
+                <span v-if="row.status === 7">宸茬櫥璁�</span>
                 <span v-if="row.status === 8">宸茬绂�</span>
                 <span v-if="row.status === 9">宸插け鏁�</span>
               </template>
diff --git a/admin/src/views/business/internalMember.vue b/admin/src/views/business/internalMember.vue
index 19165d3..06fed51 100644
--- a/admin/src/views/business/internalMember.vue
+++ b/admin/src/views/business/internalMember.vue
@@ -43,6 +43,9 @@
             <el-option label="鍚屾澶辫触" value="2"></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="" prop="idcardNo">
+          <el-input v-model="searchForm.idcardNo" placeholder="韬唤璇佸彿" @keypress.enter.native="search"></el-input>
+        </el-form-item>
         <section>
           <el-button type="primary" @click="search">鎼滅储</el-button>
           <el-button @click="reset">閲嶇疆</el-button>
@@ -240,7 +243,8 @@
         positionId: '',
         companyId: '',
         hasFace: '',
-        authStatus: ''
+        authStatus: '',
+        idcardNo: ''
       },
       loading: false,
       heading: false,
diff --git a/admin/src/views/business/relativeMember.vue b/admin/src/views/business/relativeMember.vue
index 15bfb90..83a2d66 100644
--- a/admin/src/views/business/relativeMember.vue
+++ b/admin/src/views/business/relativeMember.vue
@@ -42,6 +42,9 @@
             <el-option label="鍚屾鎴愬姛" value="1"></el-option>
             <el-option label="鍚屾澶辫触" value="2"></el-option>
           </el-select>
+          <el-form-item label="" prop="idcardNo">
+            <el-input v-model="searchForm.idcardNo" placeholder="韬唤璇佸彿" @keypress.enter.native="search"></el-input>
+          </el-form-item>
         </el-form-item>
         <!--      <el-form-item label="">
         <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1">鏄惁鍖呭惈涓嬬骇缁勭粐</el-checkbox>
@@ -254,7 +257,8 @@
         workStatus: '',
         positionId: '',
         companyId: '',
-        hasFace: ''
+        hasFace: '',
+        idcardNo:''
       },
       loading: false,
       heading: false,
diff --git a/admin/src/views/business/reportRecord.vue b/admin/src/views/business/reportRecord.vue
index 69e5941..2cba9f7 100644
--- a/admin/src/views/business/reportRecord.vue
+++ b/admin/src/views/business/reportRecord.vue
@@ -77,7 +77,7 @@
           <span v-if="row.status === 4" style="color: gray">鍙栨秷</span>
           <span v-if="row.status === 5" style="color: green">涓嬪彂鎴愬姛</span>
           <span v-if="row.status === 6" style="color: gray">涓嬪彂澶辫触</span>
-          <span v-if="row.status === 7" style="color: green">鎷滆涓�</span>
+          <span v-if="row.status === 7" style="color: green">宸茬櫥璁�</span>
           <span v-if="row.status === 8" style="color: red">宸茬绂�</span>
           <span v-if="row.status === 9" style="color: gray">宸插け鏁�</span>
         </template>
diff --git a/admin/src/views/business/retention.vue b/admin/src/views/business/retention.vue
index 3d4f9d6..a7b8a3c 100644
--- a/admin/src/views/business/retention.vue
+++ b/admin/src/views/business/retention.vue
@@ -54,26 +54,36 @@
         <el-table-column prop="idcardDecode" label="韬唤璇佸彿" min-width="130px"></el-table-column>
         <el-table-column prop="companyName" label="缁勭粐" min-width="100px">
           <template slot-scope="{ row }">
-            <span v-if="row.type === 2 || row.type === 0">{{
+            <span v-if="row.type === 2 || row.type === 4 || row.type === 0">{{
               row.companyName
               }}</span>
             <span v-else>{{ row.visitCompanyName }}</span>
           </template>
         </el-table-column>
         <el-table-column prop="type" label="浜哄憳绫诲瀷" min-width="100px">
+          <template slot-scope="{row}">
+            <span  v-if="row.type ==1">璁垮</span>
+            <span  v-else-if="row.type ==2">鍐呴儴浜哄憳</span>
+            <span  v-else-if="row.type ==4">鐩稿叧鏂逛汉鍛�</span>
+            <span  v-else-if="row.type ==5">璐ц繍鍙告満</span>
+            <span  v-else ></span>
+          </template>
+        </el-table-column>
+<!--        <el-table-column prop="type" label="浜哄憳绫诲瀷" min-width="100px">
           <template slot-scope="{ row }">
             <span v-if="row.companyType == 0">鐩稿叧鏂圭粍缁�</span>
             <span v-else-if="row.companyType == 1">鍐呴儴鍛樺伐</span>
             <span v-else>璁垮</span>
           </template>
-        </el-table-column>
-        <el-table-column label="杩涘満闂ㄧ" min-width="100px">
+        </el-table-column>-->
+        <el-table-column label="杩涘満闂ㄧ" min-width="150px">
           <template slot-scope="{ row }">
             <!-- <span v-if="row.type === 1">-</span> -->
             <span>{{ row.deviceName || '-' }}</span>
           </template>
         </el-table-column>
         <el-table-column prop="eventDate" label="鏈�鍚庤繘鍦烘椂闂�" min-width="140px"></el-table-column>
+        <el-table-column label="澶囨敞" prop="remark"  min-width="100px"></el-table-column>
         <el-table-column label="浜鸿劯鐓х墖" min-width="100px">
           <template slot-scope="{ row }">
             <el-image v-if="row.faceImgFull != null" style="width: 80px; height: 80px" :src="row.faceImgFull"
@@ -81,12 +91,14 @@
             </el-image>
           </template>
         </el-table-column>
+
         <el-table-column label="鎿嶄綔" min-width="120" fixed="right">
           <template slot-scope="{ row }">
             <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
               v-permissions="['business:retention:delete']">鏍囪绂诲満</el-button>
           </template>
         </el-table-column>
+
       </el-table>
       <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
       </pagination>
diff --git a/admin/src/views/business/visits.vue b/admin/src/views/business/visits.vue
index 9af7373..e70dc07 100644
--- a/admin/src/views/business/visits.vue
+++ b/admin/src/views/business/visits.vue
@@ -37,7 +37,7 @@
             <el-option label="鍙栨秷" value="4"></el-option>
             <el-option label="涓嬪彂鎴愬姛" value="5"></el-option>
             <el-option label="涓嬪彂澶辫触" value="6"></el-option>
-            <el-option label="鎷滆涓�" value="7"></el-option>
+            <el-option label="宸茬櫥璁�" value="7"></el-option>
             <el-option label="宸茬绂�" value="8"></el-option>
             <el-option label="宸插け鏁�" value="9"></el-option>
           </el-select>
@@ -92,7 +92,7 @@
             <span v-if="row.status === 4" style="color: gray">鍙栨秷</span>
             <span v-if="row.status === 5" style="color: green">涓嬪彂鎴愬姛</span>
             <span v-if="row.status === 6" style="color: gray">涓嬪彂澶辫触</span>
-            <span v-if="row.status === 7" style="color: green">鎷滆涓�</span>
+            <span v-if="row.status === 7" style="color: green">宸茬櫥璁�</span>
             <span v-if="row.status === 8" style="color: red">宸茬绂�</span>
             <span v-if="row.status === 9" style="color: gray">宸插け鏁�</span>
           </template>
diff --git a/admin/src/views/operation/serviceCar/apprRecord.vue b/admin/src/views/operation/serviceCar/apprRecord.vue
index 4d79f02..01da365 100644
--- a/admin/src/views/operation/serviceCar/apprRecord.vue
+++ b/admin/src/views/operation/serviceCar/apprRecord.vue
@@ -101,7 +101,7 @@
 
         <el-table-column prop="createDate" label="鐢宠鏃堕棿" min-width="150px"></el-table-column>
         <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="150px"></el-table-column>
-        <el-table-column label="鎿嶄綔" min-width="180" align="center" fixed="right">
+        <el-table-column label="鎿嶄綔" min-width="240" align="center" fixed="right">
           <template slot-scope="{ row }">
             <el-button type="text" icon="el-icon-edit"
               @click="$refs.OperaDetailsWindow.open('鍏姟杞︾敵璇疯鎯�', row)">鏌ョ湅璇︽儏</el-button>
diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/MeetingCloudController.java b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/MeetingCloudController.java
index f72e362..3612a3d 100644
--- a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/MeetingCloudController.java
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/MeetingCloudController.java
@@ -139,6 +139,7 @@
     public ApiResponse reservationCancel(@RequestBody BusinessOverDTO businessOverDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         LoginUserInfo user = getLoginUser(token);
         businessOverDTO.setUserId(user.getId());
+        businessOverDTO.setLoginUser(user);
         bookingsService.reservationCancel(businessOverDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/admin/request/BusinessOverDTO.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/admin/request/BusinessOverDTO.java
index bd19d57..9438e49 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/admin/request/BusinessOverDTO.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/admin/request/BusinessOverDTO.java
@@ -4,6 +4,7 @@
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.utils.DESUtil;
 import com.doumee.dao.admin.response.DevWgResponseParam;
+import com.doumee.service.business.third.model.LoginUserInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -21,4 +22,6 @@
     @ApiModelProperty(value = "寮�濮嬬被鍨� 0 鎻愬墠寮�濮� 1 姝e父寮�濮�",required = true)
     private  Integer startType  ;
 
+    private LoginUserInfo loginUser ;
+
 }
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
index 666174e..fd048af 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -644,11 +644,11 @@
             s.setSysList(userrelList);
             //浼氳瀹ょ鐞嗗憳
             MPJLambdaWrapper<UserRel> param = new MPJLambdaWrapper<>();
-            urquery.selectAll(UserRel.class);
-            urquery.eq(UserRel::getObjType, MeetConstants.ZERO);
-            urquery.eq(UserRel::getIsdeleted, MeetConstants.ZERO);
-            urquery.eq(UserRel::getObjId, s.getRoomId());
-            List<UserRel> adminList = userRelJoinMapper.selectJoinList(UserRel.class, urquery);
+            param.selectAll(UserRel.class);
+            param.eq(UserRel::getObjType, MeetConstants.ZERO);
+            param.eq(UserRel::getIsdeleted, MeetConstants.ZERO);
+            param.eq(UserRel::getObjId, s.getRoomId());
+            List<UserRel> adminList = userRelJoinMapper.selectJoinList(UserRel.class, param);
             s.setAdminList(adminList);
 
             //鏌ヨ鏄惁鏈夋潈闄�
@@ -674,7 +674,7 @@
         if(Constants.equalsInteger(userInfo.getId(),s.getCreator())  ){
               return 1;
         }
-        if(adminList!=null){
+        if(adminList!=null && userInfo!=null){
             for(UserRel u : adminList){
                 if(Constants.equalsInteger(userInfo.getId(),u.getUserId())  ){
                     return 1;
@@ -1210,8 +1210,20 @@
         if (Objects.isNull(bookings)) {
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鏈煡璇㈠埌棰勭害璁板綍");
         }
-        if (!bookings.getCreator().equals(businessOverDTO.getUserId())) {
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "闈炰綘鐨勯绾﹁褰�,鏃犳硶杩涜鍙栨秷");
+
+//        LoginUserInfo user =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        //浼氳瀹ょ鐞嗗憳
+        MPJLambdaWrapper<UserRel> param = new MPJLambdaWrapper<>();
+        param.selectAll(UserRel.class);
+        param.eq(UserRel::getObjType, MeetConstants.ZERO);
+        param.eq(UserRel::getIsdeleted, MeetConstants.ZERO);
+        param.eq(UserRel::getObjId, bookings.getRoomId());
+        List<UserRel> adminList = userRelJoinMapper.selectJoinList(UserRel.class, param);
+        Integer hasRole =getHasRoleByParam(bookings,businessOverDTO.getLoginUser(),adminList);
+
+//        if (!bookings.getCreator().equals(businessOverDTO.getUserId())) {
+        if (!Constants.equalsInteger(hasRole,Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鍙湁浼氳瀹ょ鐞嗗憳鍜岀敵璇蜂汉鎵嶈兘杩涜璇ユ搷浣滃摝锛�");
         }
         if (Objects.nonNull(bookings.getStartTimeReal()) && System.currentTimeMillis() > bookings.getStartTimeReal().getTime()) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳宸插紑濮�,鏃犳硶杩涜鍙栨秷");
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index c6f70ac..05624af 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -447,16 +447,19 @@
                 List<String> rowList = dataList.get(i);
                 for (int j = 0; j < rowList.size(); j++) {
                     Cell cell = row.createCell(j);
-                    if(i==0&&j==0){
-                        cell.setCellValue("鏁版嵁鏃ユ湡");
-                    }else{
-                        cell.setCellValue(rowList.get(j));
-                    }
-
+                    cell.setCellValue(rowList.get(j));
+//                    if(i==0&&j==0){
+//                        cell.setCellValue("鏁版嵁鏃ユ湡");
+//                    }else{
+//                        cell.setCellValue(rowList.get(j));
+//                    }
                     if(i==0){
-                        sheet.setColumnWidth(i, rowList.get(i).length() * 2 * 256);
+                        sheet.setColumnWidth(i, (rowList.get(j).length() + 2 )  * 2 * 256);
+//                        cell.setCellStyle(hstyle);
+                    }
+                    if(i==0 || j==0){
                         cell.setCellStyle(hstyle);
-                    }else if(j==0){
+                    }else{
                         cell.setCellStyle(rowStyle);
                     }
                 }
@@ -502,8 +505,8 @@
         configDataCellStyle.setAlignment(HorizontalAlignment.CENTER);
         configDataCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
         // 璁剧疆鑳屾櫙
-        configDataCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
-        configDataCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+//        configDataCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+//        configDataCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
         // 瀛椾綋
         Font font = workbook.createFont();
         font.setFontHeightInPoints((short) 10);
@@ -512,7 +515,6 @@
         // 杈规
         configCellBorder(configDataCellStyle);
         configDataCellStyle.setWrapText(true);
-
         return configDataCellStyle;
     }
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java
index 5caac5f..80a4a5f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java
@@ -144,4 +144,9 @@
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date endDate;
 
+    @TableField(exist = false)
+    private String createDateStr;
+
+
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
index d4ecce3..19b3655 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -1206,8 +1206,10 @@
                 || Objects.isNull(approveDTO.getLoginUserInfo())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
-        if(approveDTO.getStatus().equals(Constants.THREE)&&StringUtils.isBlank(approveDTO.getCheckInfo())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇疯緭鍏ユ嫆缁濊鏄�");
+        if(!(Constants.equalsInteger(approveDTO.getObjType(),Constants.THREE)||Constants.equalsInteger(approveDTO.getObjType(),Constants.FOUR))){
+            if(approveDTO.getStatus().equals(Constants.THREE)&&StringUtils.isBlank(approveDTO.getCheckInfo())){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇疯緭鍏ユ嫆缁濊鏄�");
+            }
         }
         Approve approve = approveMapper.selectOne(new QueryWrapper<Approve>()
                 .lambda()
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
index 5809375..e4fcb35 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -569,7 +569,7 @@
                 .set(Approve::getStatus,Constants.FOUR)
                 .set(Approve::getCheckInfo,"鐢ㄨ溅鐢宠鍙栨秷")
                 .in(Approve::getStatus,Constants.ZERO,Constants.ONE)
-               .in(Approve::getObjType,Constants.approveObjectType.cityUseCar,Constants.approveObjectType.unCityUseCar)
+                .in(Approve::getObjType,Constants.approveObjectType.cityUseCar,Constants.approveObjectType.unCityUseCar)
                 .eq(Approve::getObjId,id)
         );
 
@@ -617,19 +617,20 @@
             //鐢宠浜哄彲浠ユ挙閿�鑷繁鐢宠涓殑鐢宠璁板綍
             return  Constants.ONE;
         }
-        if(Constants.equalsInteger(carUseBook.getStatus(),Constants.TWO) && carUseBook.getStartTime()!=null
+        if(Constants.equalsInteger(carUseBook.getStatus(),Constants.TWO)
+                 && carUseBook.getStartTime()!=null
                  && System.currentTimeMillis() >= carUseBook.getStartTime().getTime()){
             //瀹℃壒閫氳繃锛屼絾鏄� 宸插埌鍙戣溅鏃堕棿锛屼笉鍙互鎾ら攢
             return Constants.ZERO;
         }
-        if(!(Constants.equalsInteger(carUseBook.getStatus(),Constants.ZERO))
+        if((Constants.equalsInteger(carUseBook.getStatus(),Constants.ZERO))
                 ||Constants.equalsInteger(carUseBook.getStatus(),Constants.ONE)
                 ||Constants.equalsInteger(carUseBook.getStatus(),Constants.TWO)){
             //瀹℃壒浜哄彲浠ユ挙閿� 鑷繁瀹℃壒鐨勭敵璇疯褰�
             Approve approve = approveJoinMapper.selectOne(new QueryWrapper<Approve>().lambda()
                     .eq(Approve::getIsdeleted,Constants.ZERO)
                     .ge(Approve::getLevel,Constants.ZERO)
-                    .eq(Approve::getChekorId,loginUserInfo.getId())
+                    .eq(Approve::getChekorId,loginUserInfo.getMemberId())
                     .eq(Approve::getObjId,carUseBook.getId())
                     .eq(Approve::getObjType,carUseBook.getType()==0?3:4)
                     .last("limit 1"));
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java
index bd7d8a3..7426367 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java
@@ -331,21 +331,60 @@
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
-        List<InoutRecord> allList = inoutRecordMapper.selectJoinList(InoutRecord.class,new MPJLambdaWrapper<InoutRecord>()
-                .selectAll(InoutRecord.class)
-                .eq(InoutRecord::getIsdeleted,Constants.ZERO)
+        List<InoutRecord> allList = new ArrayList<>();
+        MPJLambdaWrapper mpjLambdaWrapper = new MPJLambdaWrapper<InoutRecord>().eq(InoutRecord::getIsdeleted,Constants.ZERO)
                 .eq(InoutRecord::getInOrOut,Constants.ZERO)
                 .isNotNull(Constants.equalsInteger(inParkDataDTO.getType(),Constants.ZERO),InoutRecord::getCarCode)
                 .isNotNull(Constants.equalsInteger(inParkDataDTO.getType(),Constants.ONE),InoutRecord::getMemberPhone)
                 .apply(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),4)," ( DATE_FORMAT(CREATE_DATE, '%Y') =  '"+inParkDataDTO.getDateStr()+"' ) ")
-                .apply(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),7)," ( DATE_FORMAT(CREATE_DATE, '%Y-%m') =  '"+inParkDataDTO.getDateStr()+"' ) ")
-        );
+                .apply(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),7)," ( DATE_FORMAT(CREATE_DATE, '%Y-%m') =  '"+inParkDataDTO.getDateStr()+"' ) ");
+        if(Constants.equalsInteger(inParkDataDTO.getIsGroupBy(),Constants.ONE)){
+             mpjLambdaWrapper.groupBy(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),4)&&Constants.equalsInteger(inParkDataDTO.getType(),Constants.ZERO),
+                            "car_code,category_name,DATE_FORMAT(CREATE_DATE, '%Y-%m')")
+                    .groupBy(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),7)&&Constants.equalsInteger(inParkDataDTO.getType(),Constants.ZERO),
+                            "car_code,category_name,DATE_FORMAT(CREATE_DATE, '%Y-%m-%d')")
+                    .groupBy(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),4)&&Constants.equalsInteger(inParkDataDTO.getType(),Constants.ONE),
+                            "member_phone,MEMBER_TYPE,DATE_FORMAT(CREATE_DATE, '%Y-%m')")
+                    .groupBy(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),7)&&Constants.equalsInteger(inParkDataDTO.getType(),Constants.ONE),
+                            "member_phone,MEMBER_TYPE,DATE_FORMAT(CREATE_DATE, '%Y-%m-%d')");
+            if(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),4)&&Constants.equalsInteger(inParkDataDTO.getType(),Constants.ZERO)){
+                mpjLambdaWrapper.select("car_code,category_name,DATE_FORMAT(CREATE_DATE, '%Y-%m') as createDateStr ");
+            }else if(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),7)&&Constants.equalsInteger(inParkDataDTO.getType(),Constants.ZERO)){
+                mpjLambdaWrapper.select("car_code,category_name,DATE_FORMAT(CREATE_DATE, '%Y-%m-%d') as createDateStr ");
+            }else if(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),4)&&Constants.equalsInteger(inParkDataDTO.getType(),Constants.ONE)){
+
+                mpjLambdaWrapper.select("member_phone,MEMBER_TYPE,DATE_FORMAT(CREATE_DATE, '%Y-%m') as createDateStr");
+            }else{
+                mpjLambdaWrapper.select("member_phone,MEMBER_TYPE,DATE_FORMAT(CREATE_DATE, '%Y-%m-%d') as createDateStr ");
+            }
+
+        }else{
+            mpjLambdaWrapper.selectAll(InoutRecord.class);
+            if(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),4)&&Constants.equalsInteger(inParkDataDTO.getType(),Constants.ZERO)){
+                mpjLambdaWrapper.select("DATE_FORMAT(CREATE_DATE, '%Y-%m') as createDateStr ");
+            }else if(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),7)&&Constants.equalsInteger(inParkDataDTO.getType(),Constants.ZERO)){
+                mpjLambdaWrapper.select("DATE_FORMAT(CREATE_DATE, '%Y-%m-%d') as createDateStr ");
+            }else if(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),4)&&Constants.equalsInteger(inParkDataDTO.getType(),Constants.ONE)){
+
+                mpjLambdaWrapper.select("DATE_FORMAT(CREATE_DATE, '%Y-%m') as createDateStr");
+            }else{
+                mpjLambdaWrapper.select("DATE_FORMAT(CREATE_DATE, '%Y-%m-%d') as createDateStr ");
+            }
+//           allList = inoutRecordMapper.selectJoinList(InoutRecord.class,new MPJLambdaWrapper<InoutRecord>()
+//                    .selectAll(InoutRecord.class)
+//                    .eq(InoutRecord::getIsdeleted,Constants.ZERO)
+//                    .eq(InoutRecord::getInOrOut,Constants.ZERO)
+//                    .isNotNull(Constants.equalsInteger(inParkDataDTO.getType(),Constants.ZERO),InoutRecord::getCarCode)
+//                    .isNotNull(Constants.equalsInteger(inParkDataDTO.getType(),Constants.ONE),InoutRecord::getMemberPhone)
+//                    .apply(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),4)," ( DATE_FORMAT(CREATE_DATE, '%Y') =  '"+inParkDataDTO.getDateStr()+"' ) ")
+//                    .apply(Constants.equalsInteger(inParkDataDTO.getDateStr().length(),7)," ( DATE_FORMAT(CREATE_DATE, '%Y-%m') =  '"+inParkDataDTO.getDateStr()+"' ) ")
+//            );
+        }
+        allList = inoutRecordMapper.selectJoinList(InoutRecord.class,mpjLambdaWrapper);
+
         List<List<String>>  resultList = new ArrayList<>();
         if(CollectionUtils.isEmpty(allList)){
             return resultList;
-        }
-        if(Constants.equalsInteger(inParkDataDTO.getIsGroupBy(),Constants.ONE)){
-            allList = this.getListByType(allList,inParkDataDTO.getType());
         }
 
         List<String> dateList = new ArrayList<>();
@@ -384,7 +423,7 @@
     public List<List<String>> dealResultData(List<InoutRecord> allList,List<String> dataList ,Integer type,String dateStr){
         List<List<String>>  resultList = new ArrayList<>();
         List<String> totalString = new ArrayList<>();
-        totalString.add("鏃ユ湡");
+        totalString.add("鏁版嵁鏃ユ湡");
         if(Constants.equalsInteger(type,Constants.ZERO)){
             List<String> categoryNameList = allList.stream().filter(j-> StringUtils.isNotBlank(j.getCategoryName())).map(j->j.getCategoryName()).collect(Collectors.toList());
             if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(categoryNameList)){
@@ -403,14 +442,14 @@
                 for (String categoryName:setList) {
                     if(Constants.equalsInteger(dateStr.length(),4)){
                         Integer childNum = allList.stream().filter(i->categoryName.equals(i.getCategoryName())
-                                && DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(str)).collect(Collectors.toList()).size();
+                                && i.getCreateDateStr().equals(str)).collect(Collectors.toList()).size();
                         dataChildList.add(
                                 Integer.toString(childNum)
                         );
                         total = total + childNum;
                     }else if(Constants.equalsInteger(dateStr.length(),7)){
                         Integer childNum = allList.stream().filter(i->categoryName.equals(i.getCategoryName())
-                                &&DateUtil.formatDate(i.getCreateDate(),"yyyy-MM-dd").equals(str)).collect(Collectors.toList()).size();
+                                &&i.getCreateDateStr().equals(str)).collect(Collectors.toList()).size();
                         dataChildList.add(
                                 Integer.toString(childNum)
                         );
@@ -441,14 +480,14 @@
                     int finalI = i;
                     if(Constants.equalsInteger(dateStr.length(),4)){
                         Integer childNum = allList.stream().filter(j->Constants.equalsInteger(j.getMemberType(), finalI)
-                                && DateUtil.formatDate(j.getCreateDate(),"yyyy-MM").equals(str)).collect(Collectors.toList()).size();
+                                && j.getCreateDateStr().equals(str)).collect(Collectors.toList()).size();
                         dataChildList.add(
                                 Integer.toString(childNum)
                         );
                         total = total + childNum;
                     }else if(Constants.equalsInteger(dateStr.length(),7)){
                         Integer childNum = allList.stream().filter(j->Constants.equalsInteger(j.getMemberType(), finalI)
-                                &&DateUtil.formatDate(j.getCreateDate(),"yyyy-MM-dd").equals(str)).collect(Collectors.toList()).size();
+                                &&j.getCreateDateStr().equals(str)).collect(Collectors.toList()).size();
                         dataChildList.add(
                                 Integer.toString(childNum)
                         );
@@ -461,10 +500,6 @@
         }
         return resultList;
     }
-
-
-
-
 
 
     public List<InoutRecord> getListByType(List<InoutRecord> list,Integer type){
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 17ca901..c18629e 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
@@ -1491,6 +1491,9 @@
                         .like(Member::getPhone,pageWrap.getModel().getKeyword())
                         .or().like(Member::getName,pageWrap.getModel().getKeyword())
                         .or().like(Member::getCode,pageWrap.getModel().getKeyword()))
+                .eq(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,
+                        DESUtil.encrypt(Constants.EDS_PWD, pageWrap.getModel().getIdcardNo())
+                )
                 .isNull(pageWrap.getModel().getHasFace()!=null&& Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId)
                 .isNotNull(pageWrap.getModel().getHasFace()!=null&& Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId)
                 .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),Member::getCanVisit,pageWrap.getModel().getCanVisit())
@@ -2194,7 +2197,7 @@
         String candNo = DESUtil.encrypt(Constants.EDS_PWD, model.getIdcardNo());
         if(StringUtils.isNotBlank(model.getIdcardNo())){
             if(findMemberFromListByIdcard(candNo,memberList ) !=null){
-                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+(index+3)+"琛岃韩浠借瘉鍙枫��"+model.getIdcardNo()+"銆戝凡瀛樺湪锛岃妫�鏌ヨ〃鏍煎唴瀹癸紒");
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+(index+3)+"琛岃韩浠借瘉鍙枫��"+model.getIdcardNo()+"銆戝凡瀛樺湪锛岃纭銆愯瀹㈢鐞嗐�戙�愬唴閮ㄤ汉鍛樸�戜互鍙娿�愮浉鍏虫柟浜哄憳銆戜腑鏃犺韬唤璇佸瓨鍦紝璇锋鏌ヨ〃鏍煎唴瀹癸紒");
             }
         }
 
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 d8839df..9dbe3a6 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
@@ -1154,14 +1154,12 @@
         }
     }
 
-
     @Override
     public void cancelInPark(PlatformJob platformJob){
         if(Constants.equalsInteger(platformJob.getType(),Constants.TWO)
                 || Constants.equalsInteger(platformJob.getType(),Constants.THREE)
                 || StringUtils.isBlank(platformJob.getCarCodeFront())
                 || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
-
             List<VisitPark> visitParkList = visitParkMapper.selectList(new QueryWrapper<VisitPark>().lambda()
                     .eq(VisitPark::getCarCode,platformJob.getCarCodeFront())
                     .eq(VisitPark::getObjType,Constants.ONE)
@@ -1186,7 +1184,6 @@
             }
         }
     }
-
     /**
      * 鏈堝彴鍙彿
      */
@@ -2457,7 +2454,7 @@
                 platformJobMapper.update(null,new UpdateWrapper<PlatformJob>().lambda()
                         .set(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey())
                         .set(PlatformJob::getDoneDate,new Date())
-                        .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CONFIRM.getKey(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())
+                        .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CONFIRM.getKey(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey(),Constants.PlatformJobStatus.WAIT_CALL.getKey())
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                         .in(PlatformJob::getId,platformJobList.stream().map(i->i.getId()).collect(Collectors.toList())));
             }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
index bb11d7b..be1567d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
@@ -30,10 +30,8 @@
  */
 @Service
 public class HkSyncDeviceServiceImpl extends HkSyncBaseServiceImpl {
-
     @Autowired
     private DeviceMapper deviceMapper;
-
     /**
      * 鍚屾娴峰悍闂ㄧ璁惧鏁版嵁
      * @param param
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index 154ab24..617c8fd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -146,7 +146,7 @@
             if(delRetentionLis.size()>0){
                 //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳锛�
                 retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
-                        .eq(Retention::getType,Constants.memberType.internal)
+//                        .eq(Retention::getType,Constants.memberType.internal)
                         .in(Retention::getMemberId,delRetentionLis));
             }
             if(retentionList.size()>0){
@@ -263,7 +263,6 @@
                     delRetentionLis.add(member.getId());
                     if( Constants.formatIntegerNum(request.getData().getExtEventInOut()) == Constants.ONE){
                         //濡傛灉鏄繘闂紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
-                        retentionList.add(getRetentionModelByRequest(member,request));
                         if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
                             record.setMemberType(Constants.RetentionMemberType.internalMember);
                             inoutDayCount.setInSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getInSelfMemberNum())+1);//鍐呴儴浜哄憳鍏ュ満浜烘
@@ -271,6 +270,7 @@
                             record.setMemberType(Constants.RetentionMemberType.relMember);
                             inoutDayCount.setInOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getInOtherMemberNum())+1);//鐩稿叧鏂瑰叆鍦轰汉娆�
                         }
+                        retentionList.add(getRetentionModelByRequest(member,request,record.getMemberType()));
                     }else{
                         if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
                             record.setMemberType(Constants.RetentionMemberType.internalMember);
@@ -372,7 +372,7 @@
      * @param request
      * @return
      */
-    private Retention getRetentionModelByRequest(Member member, EventAcsInfoRequest request) {
+    private Retention getRetentionModelByRequest(Member member, EventAcsInfoRequest request,int memberType) {
         Retention retention = new Retention();
         retention.setIsdeleted(Constants.ZERO);
         retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
@@ -382,7 +382,7 @@
         retention.setIdcardDecode(member.getIdcardDecode());
         retention.setName(member.getName());
         retention.setBirthday(member.getBirthday());
-        retention.setType(member.getType());
+        retention.setType(memberType);
         retention.setCompanyId(member.getCompanyId());
         retention.setCompanyName(member.getCompanyName());
         retention.setEventCode(request.getData().getExtEventCode()+"");
@@ -871,7 +871,7 @@
             List<CarEvent> list = new ArrayList<>();
             List<Retention> retentionList = new ArrayList<>();
             List<String> delRetentionList = new ArrayList<>();
-            List<Integer> delMemberRetentionList = new ArrayList<>();
+            List<Retention> delMemberRetentionList = new ArrayList<>();
             InoutDayCount inoutDayCount = new InoutDayCount();
             List<InoutRecord> inoutRecordList = new ArrayList<>();
             for(EventParkInfoRequest request : events){
@@ -886,18 +886,34 @@
                 carEventMapper.insert(list);
             }
             if(delRetentionList.size()>0){
-                //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳锛�
+                //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満杞﹁締浜哄憳(鍐呴儴浜哄憳锛�
                 retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                         .eq(Retention::getType,Constants.THREE)
                         .in(Retention::getCarNo,delRetentionList));
             }
             if(delMemberRetentionList.size()>0){
                 //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳銆佺浉鍏虫柟鍜岃瀹級
-                retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
-                        .in(Retention::getType,Constants.RetentionMemberType.internalMember
-                                ,Constants.RetentionMemberType.relMember
-                                ,Constants.RetentionMemberType.fk)
-                        .in(Retention::getMemberId,delMemberRetentionList));
+                List<Integer> memberList = new ArrayList<>();
+                for(Retention m :delMemberRetentionList){
+                    if(m.getMemberId()!=null){
+                        //璺熼殢杞﹁締鍏ュ満鐨刴ember瀛樺湪鐨勬暟鎹珛鍦�
+                        retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
+                                .in(Retention::getType,Constants.RetentionMemberType.internalMember
+                                        ,Constants.RetentionMemberType.relMember
+                                        ,Constants.RetentionMemberType.fk
+                                        ,Constants.RetentionMemberType.driver)
+                                .eq(Retention::getMemberId,m.getMemberId()));
+                    }else  if(m.getCarNo()!=null){
+                        //璺熼殢杞﹁締鍏ュ満鐨勭敤鎴蜂俊鎭�
+                        retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
+                                .in(Retention::getType,Constants.RetentionMemberType.internalMember
+                                        ,Constants.RetentionMemberType.relMember
+                                        ,Constants.RetentionMemberType.fk
+                                        ,Constants.RetentionMemberType.driver)
+                                .eq(Retention::getCarNo,m.getCarNo()));
+                    }
+                }
+
             }
             if(retentionList.size()>0){
                 //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
@@ -925,7 +941,7 @@
     private CarEvent getParkEventModelByRequest(EventParkInfoRequest request
             , List<String> delRetentionList
             , List<Retention> retentionList
-            , List<Integer> delMemberRetentionList
+            , List<Retention> delMemberRetentionList
             , InoutDayCount inoutDayCount
             , List<InoutRecord> inoutRecordList) {
         CarEvent event =initCarEventModelByRequest(request);
@@ -1068,14 +1084,22 @@
             if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){
                 //濡傛灉鏄叆鍘傛斁琛�
                 delRetentionList.add(event.getPlateNos());
-                delMemberRetentionList.add(event.getMemberId());
+                Retention dm = new Retention();
+                dm.setMemberId(event.getMemberId());
+                dm.setPhone(carrecord.getMemberPhone());
+                dm.setCarNo(event.getPlateNos());
+                delMemberRetentionList.add(dm);
                 retentionList.add(getRetentionModelByParkRequest(request,event,carrecord));//鍦ㄥ巶杞﹁締淇℃伅
                 inoutDayCount.setInCarNum(Constants.formatIntegerNum(inoutDayCount.getInCarNum())+1);
                 carrecord.setInOrOut(Constants.ZERO);
             }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){
                 //濡傛灉鏄嚭鍦烘斁琛�
                 delRetentionList.add(event.getPlateNos());
-                delMemberRetentionList.add(event.getMemberId());
+                Retention dm = new Retention();
+                dm.setMemberId(event.getMemberId());
+                dm.setPhone(carrecord.getMemberPhone());
+                dm.setCarNo(event.getPlateNos());
+                delMemberRetentionList.add(dm);
                 inoutDayCount.setOutCarNum(Constants.formatIntegerNum(inoutDayCount.getOutCarNum())+1);
                 carrecord.setInOrOut(Constants.ONE);
             }
@@ -1096,14 +1120,19 @@
                     event.setCarType(Constants.RetentionCarType.fkCar);
                     int index =0;
                     carrecord.setCarBizType(Constants.RetentionCarType.fkCar);
-                    if(1==2){
-                        Category category =findCategoryByBizType(Constants.RetentionCarType.fkCar,"璁垮杞﹁締","璁垮杞﹁締",categoryList);
-                        carrecord.setCategoryId(category.getId());
-                        carrecord.setCategoryName(StringUtils.defaultString(category.getName(),"璁垮杞﹁締"));
-                        carrecord.setCategoryParentName(StringUtils.defaultString(category.getParentName(),"璁垮杞﹁締"));
-                        carrecord.setCategoryParentId(category.getParentId());
-                        for(Visits v :visitsList){
-                            delMemberRetentionList.add(event.getMemberId());
+                    Category category =findCategoryByBizType(Constants.RetentionCarType.fkCar,"璁垮杞﹁締","璁垮杞﹁締",categoryList);
+                    carrecord.setCategoryId(category.getId());
+                    carrecord.setCategoryName(StringUtils.defaultString(category.getName(),"璁垮杞﹁締"));
+                    carrecord.setCategoryParentName(StringUtils.defaultString(category.getParentName(),"璁垮杞﹁締"));
+                    carrecord.setCategoryParentId(category.getParentId());
+                    for(Visits v :visitsList){
+                        if(v.getEndtime()!=null && v.getEndtime().getTime() < System.currentTimeMillis()){
+                            Retention dm = new Retention();
+                            dm.setMemberId(event.getMemberId());
+                            dm.setPhone(carrecord.getMemberPhone());
+                            dm.setCarNo(event.getPlateNos());
+                            delMemberRetentionList.add(dm);
+//                            delMemberRetentionList.add(event.getMemberId());
                             InoutRecord copyObj = new InoutRecord();
                             BeanUtils.copyProperties(carrecord,copyObj);
                             copyObj.setMemberId(v.getMemberId());
@@ -1373,7 +1402,9 @@
         retention.setMemberId(inoutRecord.getMemberId());
         retention.setDeviceName(request.getSrcName());
         retention.setDeviceIndex(request.getSrcIndex());
-        retention.setRemark("璺熼殢杞﹁締鍏ュ洯鍖�");
+        retention.setCarNo(inoutRecord.getCarCode());
+        retention.setDeviceName(request.getData().getGateName()+request.getData().getRoadwayName());
+        retention.setRemark("璺熼殢杞﹁締銆�"+inoutRecord.getCarCode()+"銆戝叆鍥尯");
         return retention;
     }
     private Retention getRetentionModelByParkRequest(EventParkInfoRequest request,CarEvent event ,InoutRecord carrecord ) {
@@ -1389,6 +1420,7 @@
         retention.setCategoryName(carrecord.getCategoryName());
         retention.setCategoryParentId(carrecord.getCategoryParentId());
         retention.setCategoryParentName(carrecord.getCategoryParentName());
+        retention.setDeviceName(request.getData().getGateName()+request.getData().getRoadwayName());
 //        retention.setDeviceName(request.getSrcName());
 //        retention.setDeviceIndex(request.getSrcIndex());
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
index 5e69f9a..501af50 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -119,7 +119,7 @@
 
                         //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鏅�氳瀹級
                         retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
-                                .eq(Retention::getType,Constants.memberType.visitor)
+                                .eq(Retention::getType,Constants.RetentionMemberType.fk)
                                 .eq(Retention::getMemberId,c.getMemberId()));
                     }
                 }
@@ -137,7 +137,7 @@
                         visitsMapper.updateById(update);
                         //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鏅�氳瀹級
                         retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
-                                .eq(Retention::getType,Constants.memberType.visitor)
+                                .eq(Retention::getType,Constants.RetentionMemberType.fk)
                                 .eq(Retention::getMemberId,c.getMemberId()));
                         //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
                         retentionMapper.insert(getRetentionModelByVisitRequest(c,update.getInDate()));
@@ -206,7 +206,7 @@
 
                         //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鏅�氳瀹級
                         retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
-                                .eq(Retention::getType,Constants.memberType.visitor)
+                                .eq(Retention::getType,Constants.RetentionMemberType.fk)
                                 .eq(Retention::getMemberId,c.getMemberId()));
                     }
                 }
@@ -224,7 +224,7 @@
                         visitsMapper.updateById(update);
                         //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鏅�氳瀹級
                         retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
-                                .eq(Retention::getType,Constants.memberType.visitor)
+                                .eq(Retention::getType,Constants.RetentionMemberType.fk)
                                 .eq(Retention::getMemberId,c.getMemberId()));
                         //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
                         retentionMapper.insert(getRetentionModelByVisitRequest(c,update.getInDate()));
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 fb603d3..8fdcc2f 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
@@ -1032,7 +1032,7 @@
                             .select(PlatformJob::getStatus,PlatformJob::getStatus)
                             .select(PlatformJob::getType,PlatformJob::getType)
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
-                        .in(PlatformJob::getType,Constants.ONE,Constants.THREE)
+//                        .in(PlatformJob::getType,Constants.ONE,Constants.THREE)
                         .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),
                                 Constants.PlatformJobStatus.LEAVED.getKey(),
                                 Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())
@@ -1077,7 +1077,7 @@
         data.setMonthLastOutTotal(getSumTotalByList(monthLastNum,null,null) );//涓婃湀鍑哄簱閲�
         data.setYearOutTotal(getSumTotalByList(yearNum,null,null)  );//鏈勾鍑哄簱閲�
         data.setYearLastOutTotal(getSumTotalByList(yearLastNum,null,null) );//鍘诲勾鍑哄簱閲�
-        data.setMonthOutTimes(monthNum!=null?monthNum.size():0);
+        data.setMonthOutTimes(monthNum!=null?monthNum.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)||Constants.equalsInteger(i.getType(),Constants.THREE)).collect(Collectors.toList()).size():0);
         data.setYearOutTimes(yearNum!=null?yearNum.size():0);
 
         //==========浠婂ぉ涔嬪墠鏈畬鎴愬嚭鍏ュ簱浠诲姟
@@ -1130,7 +1130,7 @@
         data.setTodayOutRate(getDayTotalRata(data.getCurrentOutDoneNum(),DateUtil.getToday()));//褰撴棩鍑哄簱鏁堢巼
         data.setTodayInRate(getDayTotalRata(data.getCurrentInDoneNum(),DateUtil.getToday()));//褰撴棩鍏ュ簱鏁堢巼
         data.setMonthOutRate(getMonthRata(monthNum,Constants.ZERO));//鏈湀鍑哄簱鏁堢巼
-        data.setMonthInRate(getMonthRata(monthNum,Constants.ONE));//鏈湀鍑哄簱鏁堢巼
+        data.setMonthInRate(getMonthRata(monthNum,Constants.ONE));//鏈湀鍏ュ簱鏁堢巼
         //------------浠婃棩鍑哄叆搴撴晥鐜�---------------- 
 //        BigDecimal outHours = getTotalDoneTimes(currentDoneNum,0);//
 //        BigDecimal inHours = getTotalDoneTimes(currentDoneNum,1);//

--
Gitblit v1.9.3