From da981f066eba7911ec5532195edfeda8563638df Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 17 十月 2024 14:38:03 +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         |    2 
 server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java                                    |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java            |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java         |    9 +
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java                       |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InterfaceLogService.java               |    2 
 admin/src/views/business/position.vue                                                                          |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java          |  190 +++++++++++++++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Position.java                        |    3 
 server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java                                         |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java           |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java |   60 ++++++
 admin/src/views/business/relativeMember.vue                                                                    |    4 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java                    |   40 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                     |   14 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java      |   20 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java            |   37 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                         |   16 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java    |   13 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java                      |    2 
 20 files changed, 383 insertions(+), 43 deletions(-)

diff --git a/admin/src/views/business/position.vue b/admin/src/views/business/position.vue
index 36ce1dd..acf08e8 100644
--- a/admin/src/views/business/position.vue
+++ b/admin/src/views/business/position.vue
@@ -24,6 +24,7 @@
       >
         <el-table-column type="selection" width="55"></el-table-column>
         <el-table-column prop="name" label="宀椾綅" min-width="200px"></el-table-column>
+        <el-table-column prop="memberNum" label="鍛樺伐鏁�" min-width="200px"></el-table-column>
         <el-table-column prop="sortnum" label="鎺掑簭鐮�"  min-width="100px"></el-table-column>
         <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="200px"></el-table-column>
         <el-table-column
diff --git a/admin/src/views/business/relativeMember.vue b/admin/src/views/business/relativeMember.vue
index 7085411..31248aa 100644
--- a/admin/src/views/business/relativeMember.vue
+++ b/admin/src/views/business/relativeMember.vue
@@ -228,7 +228,7 @@
         name: '',
         status: '',
         hkStatus: '',
-        includeChild: false,
+        includeChild: true,
         canVisit: '',
         keyword: '',
         type: 2,
@@ -244,8 +244,8 @@
       working: false,
       canvisiting: false,
       companyTree: [],
-      department: [],
       positionList: [],
+      department: []
     }
   },
   created () {
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java
index 6aaf69e..2130b39 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java
@@ -36,7 +36,9 @@
     @Select(" select a.id , a.START_TIME , a.END_TIME , b.`NAME` as roomName , a.`NAME` as meetingName  ,date_format(a.START_TIME,'%Y-%m-%d') as meetingDate , a.START_TIME as startTime, a.status ," +
             " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime,  c.REALNAME as bookingUser ," +
             //" CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1  WHEN ( (a.END_TIME < now()  AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
-            " CASE WHEN a.START_TIME_REAL IS NULL AND a.`STATUS` = 0 THEN 1  WHEN ( (a.END_TIME < now()  AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
+            " CASE WHEN a.START_TIME_REAL IS NULL AND a.`STATUS` = 0 THEN 1 " +
+//            " WHEN ( (a.END_TIME < now()  AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 " +
+            "WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
             " b.IMGURL as imgUrl ," +
             " a.remark  " +
             " from meeting_book a inner join meeting_rooms b  on a.ROOM_ID = b.ID  " +
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 3f42bb6..db0499c 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
@@ -1204,7 +1204,9 @@
                 .eq("b.STATUS",MeetConstants.ZERO)
                 .eq("a.ISDELETED",MeetConstants.ZERO)
                 .eq("a.status",Constants.ZERO)
+                .ne("a.status",Constants.TWO)
                 .like("a.start_time",DateUtil.getCurrDate())
+                .apply(" not exists ( select 1  from  meeting_book mb where mb.END_TIME < now() and  mb.id = a.id and START_TIME_REAL is null  )   ")
                 .orderByAsc("a.start_time")
         );
         this.dealMeetingStatus(meetingList);
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
index ca03698..1871e2d 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
@@ -190,12 +190,12 @@
     public static  String generateTokenToHk(String userName,Integer hour, RedisTemplate<String,Object> redisTemplate) {
          long currentTimeMillis = System.currentTimeMillis() + 1000*60*60*hour;
          String encrypt = DESUtil.encrypt("12345678",currentTimeMillis + "_" + userName );
-         redisTemplate.opsForValue().set(Constants.REDIS_HK_TOKEN_KEY+encrypt, encrypt,1000*60*60*hour, TimeUnit.MILLISECONDS);
         try{
             encrypt = URLEncoder.encode(encrypt,"UTF-8");
         }catch (Exception e){
             throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"鐢熸垚鍔犲瘑鐮佸け璐�!");
         }
+        redisTemplate.opsForValue().set(Constants.REDIS_HK_TOKEN_KEY+encrypt, encrypt,1000*60*60*hour, TimeUnit.MILLISECONDS);
          return encrypt;
     }
 
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java b/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java
index 84a8205..77c5611 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java
@@ -94,7 +94,7 @@
      */
     public interface platformBookContent{
         //鐭俊閫氱煡妯℃澘锛堢粰澶勭悊浜猴級
-        String platformBookWaitAudit = "platformBookContent";
+        String platformBookWaitAudit = "platformBookWaitAudit";
         //鐗╂祦杞﹂绾�-瀹℃壒閫氳繃閫氱煡锛堢粰鐢宠浜猴級锛氥��
         String platformBookAuditSuccess = "platformBookAuditSuccess";
         //鐗╂祦杞﹂绾�-瀹℃壒椹冲洖鐭俊閫氱煡妯℃澘锛堢粰鐢宠浜猴級
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
index b9135cf..83fb8c8 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
@@ -1,12 +1,15 @@
 package com.doumee.cloud.openapi;
 
+import com.alibaba.fastjson.JSONObject;
 import com.doumee.api.BaseController;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.config.annotation.LoginNoRequired;
 import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DESUtil;
+import com.doumee.core.wms.model.response.WmsBaseResponse;
 import com.doumee.dao.openapi.request.*;
 import com.doumee.dao.openapi.response.*;
 import com.doumee.dao.system.model.SystemUser;
@@ -14,12 +17,15 @@
 import com.doumee.service.system.SystemUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import java.net.URLEncoder;
 import java.util.*;
 
 /**
@@ -28,11 +34,14 @@
  */
 @Api(tags = "鎻愪緵瀹夐槻骞冲彴瀵规帴鎺ュ彛锛堟暟鎹ぇ灞忓熀纭�鏁版嵁绛夛級")
 @RestController
+@Slf4j
 @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/hk/api")
 public class HkOpenApiController extends BaseController {
 
     @Autowired
     private PlatformService platformService;
+    @Autowired
+    private InterfaceLogService interfaceLogService;
 
     @Autowired
     private PlatformLogService platformLogService;
@@ -59,17 +68,30 @@
     @ApiOperation("token瑙f瀽")
     @GetMapping("/water/decodeToken")
     public Map<String,Object> decodeToken(@RequestParam String token) {
+        String token1 =token;
+        log.info("銆愬畨闃插钩鍙板崟鐐圭櫥褰晅oken瑙f瀽銆�================="+token1);
+        int success = Constants.ZERO;
+        Map<String,Object>  result = new HashMap<>() ;
         try {
-            token = URLDecoder.decode(token,"UTF-8");
+             token = URLEncoder.encode(token1);
+            HkBaseTokenRequest hkBaseTokenRequest = new HkBaseTokenRequest();
+            hkBaseTokenRequest.setToken(token);
+            result = this.decodeTokenForHk(hkBaseTokenRequest);
+        }catch (BusinessException e){
+            log.error("銆愬畨闃插钩鍙般�戝崟鐐圭櫥褰晅oken瑙�===澶辫触锛�"+e.getMessage());
+            success = Constants.ONE;
         }catch (Exception e){
-
+            log.error("銆愬畨闃插钩鍙般�戝崟鐐圭櫥褰晅oken瑙f瀽===澶辫触锛�"+e.getMessage());
+            e.printStackTrace();
+            success = Constants.ONE;
+        }finally {
+            interfaceLogService.saveInterfaceLog("/hk/api/water/decodeToken", "銆愬畨闃插钩鍙般�戝崟鐐圭櫥褰晅oken瑙f瀽",token1,
+                    success, JSONObject.toJSONString(result),Constants.ZERO);
         }
-        HkBaseTokenRequest hkBaseTokenRequest = new HkBaseTokenRequest();
-        hkBaseTokenRequest.setToken(token);
-        return this.decodeTokenForHk(hkBaseTokenRequest);
+        return result;
     }
 
-    public Map<String,Object> decodeTokenForHk(HkBaseTokenRequest hkBaseTokenRequest){
+    public Map<String,Object> decodeTokenForHk(HkBaseTokenRequest hkBaseTokenRequest)   {
         Map<String,Object> result = new HashMap<>();
         result.put("code","0");
         result.put("msg","success");
@@ -84,7 +106,11 @@
             result.put("msg","token鏃犳晥!");
             return result;
         }
-        String userName = DESUtil.verifyHkToken(hkBaseTokenRequest.getToken());
+        String userName = null;
+        try {
+             userName = DESUtil.verifyHkToken(URLDecoder.decode(hkBaseTokenRequest.getToken(),"UTF-8"));
+        }catch (Exception e){
+        }
         if(StringUtils.isBlank(userName)){
             result.put("code","-1");
             result.put("msg","token鍙傛暟涓虹┖");
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 6a26848..3ba05db 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
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.core.haikang.model.param.request.CarPictureRequest;
+import com.doumee.core.haikang.model.param.request.FacePictureCheckRequest;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.dao.business.model.InterfaceLog;
 import com.doumee.service.business.InterfaceLogService;
@@ -28,11 +29,12 @@
 
 
 	public static void main(String[] args) throws Exception {
-		ArtemisConfig.host = "10.50.60.253";
-		ArtemisConfig.appKey = "27786546";
-		ArtemisConfig.appSecret = "kC5dohxU7CvEqgGhVt4R";
+		ArtemisConfig.host = "10.50.250.253:1443";
+
+		ArtemisConfig.appKey = "23154099";
+		ArtemisConfig.appSecret = "88wFsg3xfn7o8QMsWEO2";
 		HKConstants.https = "https://";
-		CarPictureRequest param = new CarPictureRequest();
+	/*	CarPictureRequest param = new CarPictureRequest();
 		param.setPicUri( "HKIMG=/pic?0dd400=4c40ip-feo831-933*9o4=3=2109*2l0001893117*0t7=6*2ps==014b*=787d*069d70361-95754d-9*l108od0b192=001");
 		param.setAswSyscode("3fa3e5e3-db3e-41ba-97fc-39c948778dfe");
 		InputStream is = HKService.getCarPicture(param);
@@ -51,7 +53,11 @@
 			outStream.close(); //鍐欏叆鏁版嵁
 		} catch ( Exception e) {
 			throw new RuntimeException(e);
-		}
+		}*/
+
+		FacePictureCheckRequest param = new FacePictureCheckRequest();
+		param.setFacePicUrl("http://10.50.250.253:8088/file/member/20241016/d0cded86-a55d-43be-bc01-4f628a1400cf.jpg");
+		System.out.println(facePictureCheck(JSONObject.toJSONString(param)));
 
 	}
 	public static InterfaceLogService interfaceLogService = null;
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 d90b4e8..dbb67f0 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
@@ -1231,20 +1231,20 @@
         return  null;
     }
     /**
-     *澧為噺杞﹁締鏌ヨ锛堝垎椤碉級
+     *浜鸿劯璇勫垎
      * @return
      */
-    public  static  BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>>   facePictureCheck(TimeRangeListRequest param){
-        log.info("銆愭捣搴峰閲忎汉鍛樻煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
+    public  static  BaseResponse<FacePictureCheckResponse>   facePictureCheck(FacePictureCheckRequest param){
+        log.info("銆愪汉鑴歌瘎鍒嗐��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.facePictureCheck(JSONObject.toJSONString(param));
             TypeReference typeReference =
-                    new TypeReference< BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>> >(){};
-            BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
-            logResult(result,"娴峰悍澧為噺浜哄憳鏌ヨ");
+                    new TypeReference<BaseResponse<FacePictureCheckResponse>>(){};
+            BaseResponse<FacePictureCheckResponse>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"浜鸿劯璇勫垎");
             return  result;
         }catch (Exception e){
-            log.error("銆愭捣搴峰閲忎汉鍛樻煡璇€��================澶辫触====锛歕n"+ e.getMessage());
+            log.error("銆愪汉鑴歌瘎鍒嗐��================澶辫触====锛歕n"+ e.getMessage());
         }
         return  null;
     }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
index 7f89081..39a3028 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
@@ -56,6 +56,8 @@
 
     @ApiModelProperty(value = "娴峰悍鐘舵�� 0寰呬笅鍙� 1鎴愬姛2澶辫触")
     private Integer hkStatus;
+    @ApiModelProperty(value = "鍦ㄨ亴鐘舵��")
+    private Integer workStatus;
 
     @ApiModelProperty(value = "鎿嶄綔浜哄憳 ")
     private Integer createrId;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Position.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Position.java
index f10b48d..8bdf331 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Position.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Position.java
@@ -79,6 +79,9 @@
     @ApiModelProperty(value = "瀛愰泦鍒嗙被")
     @TableField(exist = false)
     private List<Position> childList;
+    @ApiModelProperty(value = "褰撳墠宀椾綅浜哄憳鏁伴噺")
+    @TableField(exist = false)
+    private Integer memberNum;
 
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InterfaceLogService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InterfaceLogService.java
index 01d40d7..3c0ea56 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InterfaceLogService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InterfaceLogService.java
@@ -70,7 +70,7 @@
      * @return InterfaceLog
      */
     InterfaceLog findOne(InterfaceLog interfaceLog);
-
+    void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone,int type);
     /**
      * 鏉′欢鏌ヨ
      *
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 1159f56..5417979 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
@@ -575,14 +575,14 @@
                 approve.setType(Constants.ZERO);
                 approveList.add(approve);
 
-                if(Constants.equalsInteger(approve.getStatus(),Constants.ONE)){
+                if(Constants.equalsInteger(approve.getStatus(),Constants.ONE) && StringUtils.isNotBlank(member.getPhone())){
                     //鍙戦�佺煭淇¢�氱煡
                     if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.reason)){
                         //鐗╂祦杞﹂绾�
                         SmsEmailServiceImpl.sendPlatformBookSms(systemDictDataBiz,
                                 emayService,smsEmailMapper,smsConfigMapper,platformBooksMapper,businessId,
                                 SmsConstants.platformBookContent.platformBookWaitAudit,
-                                null,null
+                                null,Arrays.asList(member.getPhone().split(","))
                         );
                     }
                 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
index 0ac1181..2a7e7fd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
@@ -7,6 +7,7 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.InterfaceLogMapper;
 import com.doumee.dao.business.model.InterfaceLog;
+import com.doumee.dao.business.model.WmsInterfaceLog;
 import com.doumee.service.business.InterfaceLogService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -16,6 +17,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -81,6 +83,24 @@
         QueryWrapper<InterfaceLog> wrapper = new QueryWrapper<>(interfaceLog);
         return interfaceLogMapper.selectOne(wrapper);
     }
+    @Override
+    public  void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone,int type){
+        if(interfaceLogMapper ==null){
+            return;
+        }
+        InterfaceLog log = new InterfaceLog();
+        log.setCreateDate(new Date());
+        log.setUrl(url);
+        log.setEditDate(log.getCreateDate());
+        log.setPlat(Constants.ZERO);
+        log.setName(name);
+        log.setIsdeleted(Constants.ZERO);
+        log.setRequest(param);
+        log.setType(type);
+        log.setSuccess(success);
+        log.setRepose(respone);
+        interfaceLogMapper.insert(log);
+    }
 
     @Override
     public List<InterfaceLog> findList(InterfaceLog interfaceLog) {
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 6a2eaf2..7316080 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
@@ -1387,6 +1387,7 @@
                 .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),Member::getCanVisit,pageWrap.getModel().getCanVisit())
                 .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus())
                 .eq(Objects.nonNull(pageWrap.getModel().getHkStatus()),Member::getHkStatus,pageWrap.getModel().getHkStatus())
+                .eq(Objects.nonNull(pageWrap.getModel().getWorkStatus()),Member::getWorkStatus,pageWrap.getModel().getWorkStatus())
                 .eq(Objects.isNull(pageWrap.getModel().getIsdeleted()),Member::getIsdeleted,Constants.ZERO)
                 .eq(Objects.nonNull(pageWrap.getModel().getIsdeleted()),Member::getIsdeleted,pageWrap.getModel().getIsdeleted())
                 .eq(Objects.nonNull(pageWrap.getModel().getCompanyType()),Company::getType,pageWrap.getModel().getCompanyType())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java
index 1aa81ba..1a0d1ad 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java
@@ -110,9 +110,16 @@
                 );
                 if(Objects.isNull(wmsJobContractVO.getLockStatus())&&
                         com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(wmsJobContractVO.getPlatformWmsDetailList())){
-                    wmsJobContractVO.setLockStatus(
-                            wmsJobContractVO.getPlatformWmsDetailList().get(Constants.ZERO).getLockStatus()
-                    );
+                    if(Constants.equalsInteger(platformWmsJob.getType(),Constants.ONE)){
+                        if(Objects.isNull(wmsJobContractVO.getPlatformWmsDetailList().get(Constants.ZERO).getLockStatus())){
+                            wmsJobContractVO.setLockStatus(Constants.ZERO
+                            );
+                        }else{
+                            wmsJobContractVO.setLockStatus(
+                                    wmsJobContractVO.getPlatformWmsDetailList().get(Constants.ZERO).getLockStatus()
+                            );
+                        }
+                    }
                     wmsJobContractVO.setStatus(
                             wmsJobContractVO.getPlatformWmsDetailList().get(Constants.ZERO).getStatus()
                     );
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
index 01afdca..512150d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -15,10 +15,7 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.SmsConstants;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.PlatformBooksMapper;
-import com.doumee.dao.business.PlatformJobMapper;
-import com.doumee.dao.business.SmsConfigMapper;
-import com.doumee.dao.business.SmsEmailMapper;
+import com.doumee.dao.business.*;
 import com.doumee.dao.business.model.*;
 import com.doumee.service.business.SmsEmailService;
 import com.doumee.service.business.third.EmayService;
@@ -256,9 +253,192 @@
         return smsEmailMapper.selectCount(wrapper);
     }
 
+    /**
+     * 璁垮鐢宠涓氬姟鐭俊閫氱煡
+     * @param systemDictDataBiz
+     * @param emayService
+     * @param smsEmailMapper
+     * @param smsConfigMapper
+     * @param visitsMapper
+     * @param objId
+     * @param objCode
+     * @param msg
+     * @param auditUser
+     */
+    public static void sendVisitSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+                                    VisitsMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
+        try{
+            SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
+                    objCode).last(" limit 1 "));
+            //寮�鍚煭淇¢�氱煡
+            if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
+                String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent();
+                Visits visits = visitsMapper.selectById(objId);
+                if(Objects.nonNull(visits)){
+                    if(objCode.equals(SmsConstants.visitContent.visitAuditSuccess)){
+                        //鎮ㄧ殑銆愯瀹㈢敵璇枫�戝凡缁忓鎵归�氳繃锛岃浜巤棰勭害鍏ュ洯寮�濮嬫椂闂磢鍓嶅線闂ㄥ崼瀹よ瀹㈡満绛惧埌鍏ュ洯锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉
+                        content = content.replace("{棰勭害鍏ュ洯寮�濮嬫椂闂磢",DateUtil.getDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"));
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitContent.visitAuditFail)){
+                        //鎮ㄧ殑銆愯瀹㈢敵璇枫�戝凡琚┏鍥烇紝椹冲洖鍘熷洜涓猴細{椹冲洖鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯昏璁夸汉銆�
+                        content = content.replace("{椹冲洖鍘熷洜}",msg);
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitContent.visitTimeOutSignOut)){
+                        //鎮ㄧ殑銆愯瀹㈢敵璇枫�戝凡浜巤鍒版湡鏃堕棿}鍒版湡锛岃鍙婃椂绂诲満骞跺墠寰�闂ㄥ崼瀹よ瀹㈡満绛剧锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉
+                        content = content.replace("{鍒版湡鏃堕棿}",DateUtil.getDate(visits.getEndtime(),"yyyy-MM-dd HH:mm"));
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitContent.visitTimeOutSignOutNum)) {
+                        //浠婃棩杩樻湁{鏈绂绘暟閲弣涓瀹㈡湭绛剧锛岃鍓嶅線PC绔煡鐪嬭缁嗕俊鎭��
+                        content = content.replace("{鏈绂绘暟閲弣",msg);
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
+                    }else{
+                        //鎮ㄦ湁涓�鏉°�愯溅杈嗗叆鍥敵璇枫�戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                auditUser,SmsConstants.platformBook,content,visits.getId());
+                    }
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
 
     /**
-     * 鐢ㄨ溅鐢宠 鐭俊閫氱煡閰嶇疆
+     * 璁垮鎶ュ涓氬姟鐭俊閫氱煡
+     * @param systemDictDataBiz
+     * @param emayService
+     * @param smsEmailMapper
+     * @param smsConfigMapper
+     * @param visitsMapper
+     * @param objId
+     * @param objCode
+     * @param msg
+     * @param auditUser
+     */
+    public static void sendVisitReportSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+                                    VisitsMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
+        try{
+            SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
+                    objCode).last(" limit 1 "));
+            //寮�鍚煭淇¢�氱煡
+            if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
+                String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent();
+                Visits visits = visitsMapper.selectById(objId);
+                if(Objects.nonNull(visits)){
+                    if(objCode.equals(SmsConstants.visitReportingContent.visitReportingAuditSuccess)){
+                        // 鎮ㄧ殑銆愯瀹㈡姤澶囥�戝凡缁忓鎵归�氳繃锛岃閫氱煡璁垮浜巤棰勭害鍏ュ洯寮�濮嬫椂闂磢鍚庝箻鍧恵杞︾墝鍙穧鍏ュ洯锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉銆�
+                        content = content.replace("{棰勭害鍏ュ洯寮�濮嬫椂闂磢",DateUtil.getDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"))
+                                .replace("{杞︾墝鍙穧",visits.getCarNos());
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingAuditFail)){
+                        //鎮ㄧ殑銆愯瀹㈡姤澶囥�戝凡琚┏鍥烇紝椹冲洖鍘熷洜涓猴細{椹冲洖鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯诲鎵逛汉銆�
+                        content = content.replace("{椹冲洖鍘熷洜}",msg);
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingTimeOutSignOut)){
+                        //鎮ㄧ殑銆愯瀹㈡姤澶囥�戝凡浜巤棰勭害鍏ュ洯缁撴潫鏃堕棿}鍒版湡锛岃鍙婃椂绂诲満锛屽鏈夌枒闂紝璇疯仈绯昏璁夸汉
+                        content = content.replace("{棰勭害鍏ュ洯缁撴潫鏃堕棿}",DateUtil.getDate(visits.getEndtime(),"yyyy-MM-dd HH:mm"));
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId());
+                    }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingTimeOutSignOutNum)) {
+                        //浠婃棩杩樻湁{鏈绂绘暟閲弣涓瀹㈡姤澶囪溅杈嗘湭绂诲満锛岃鍓嶅線PC绔煡鐪嬭缁嗕俊鎭��
+                        content = content.replace("{鏈绂绘暟閲弣",msg);
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId());
+                    }else{
+                        //鎮ㄦ湁涓�鏉°�愯溅杈嗗叆鍥敵璇枫�戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                auditUser,SmsConstants.platformBook,content,visits.getId());
+                    }
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 闅愭偅闅忔墜鎷�
+     * @param systemDictDataBiz
+     * @param emayService
+     * @param smsEmailMapper
+     * @param smsConfigMapper
+     * @param hiddenDangerMapper
+     * @param objId
+     * @param objCode
+     * @param auditUser
+     */
+    public static void sendHiddenDangerSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+                                    HiddenDangerMapper hiddenDangerMapper, Integer objId, String objCode,List<String> auditUser){
+        try{
+            SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
+                    objCode).last(" limit 1 "));
+            //寮�鍚煭淇¢�氱煡
+            if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
+                String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent();
+                HiddenDanger hiddenDanger = hiddenDangerMapper.selectById(objId);
+                //鎮ㄦ湁涓�鏉°�愰殣鎮i殢鎵嬫媿-娑堥槻闅愭偅銆戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪�
+                //鎮ㄦ彁浜ょ殑銆愰殣鎮i殢鎵嬫媿-娑堥槻闅愭偅銆戝凡缁忓鐞嗗畬姣曪紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
+                if(Objects.nonNull(hiddenDanger)){
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                auditUser,SmsConstants.platformBook,content,hiddenDanger.getId());
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 鐢ㄨ溅鐢宠
+     * @param systemDictDataBiz
+     * @param emayService
+     * @param smsEmailMapper
+     * @param smsConfigMapper
+     * @param carUseBookMapper
+     * @param objId
+     * @param objCode
+     * @param msg
+     * @param userList
+     */
+    public static void sendCarUseSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+                                           CarUseBookMapper carUseBookMapper, Integer objId, String objCode, String msg, List<String> userList){
+        //鎮ㄦ湁涓�鏉°�愮敤杞︾敵璇枫�戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
+        try{
+            SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
+                    objCode).last(" limit 1 "));
+            //寮�鍚煭淇¢�氱煡
+            if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
+                String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent();
+                CarUseBook carUseBook = carUseBookMapper.selectById(objId);
+                if(Objects.nonNull(carUseBook)){
+                    if(objCode.equals(SmsConstants.carUseBookContent.carUseBookAuditSuccess)){
+                        //鎮ㄧ殑銆愮敤杞︾敵璇枫�戝凡缁忓鎵归�氳繃锛屽嚭鍙戞椂闂翠负{鎻愪氦鐨勫嚭鍙戞椂闂磢锛岃鎸夋椂鐢ㄨ溅銆傚鐢ㄨ溅璁″垝鏈夊彉锛岃鍙婃椂鑱旂郴娲捐溅鍛樸��
+                        content = content.replace("{鎻愪氦鐨勫嚭鍙戞椂闂磢",DateUtil.getDate(carUseBook.getStartTime(),"yyyy-MM-dd HH:mm"));
+                    }else if(objCode.equals(SmsConstants.carUseBookContent.carUseBookAuditFail) || objCode.equals(SmsConstants.carUseBookContent.carUseBookCancel)){
+                        //鎮ㄧ殑銆愮敤杞︾敵璇枫�戝凡琚┏鍥烇紝椹冲洖鍘熷洜涓猴細{椹冲洖鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯绘淳杞﹀憳銆�
+                        content = content.replace("{椹冲洖鍘熷洜}",msg);
+                        //鎮ㄧ殑銆愮敤杞︾敵璇枫�戝凡琚彇娑堬紝鍙栨秷鍘熷洜涓猴細{鍙栨秷鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯绘淳杞﹀憳銆�
+                        content = content.replace("{鍙栨秷鍘熷洜}",msg);
+                    }
+                    sendBusinessSms(emayService,smsEmailMapper,
+                            userList,SmsConstants.carUse,content,carUseBook.getId());
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 鐗╂祦杞﹂绾� 鐭俊閫氱煡閰嶇疆
      * @param emayService
      * @param smsEmailMapper
      * @param smsConfigMapper
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 3196d04..3098750 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
@@ -12,9 +12,13 @@
 import com.doumee.core.erp.model.openapi.response.erp.ApproveInfoResponse;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseListPageResponse;
 import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.FacePictureCheckRequest;
 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.AscDeviceStatusInfoResponse;
+import com.doumee.core.haikang.model.param.respose.FacePictureCheckResponse;
 import com.doumee.core.haikang.model.param.respose.VisitAppointmentResponse;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.model.LoginUserInfo;
@@ -63,7 +67,16 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
+import sun.misc.BASE64Encoder;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -232,6 +245,26 @@
         visits.setVisitType(Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MDJ_VISIT_REQUIRED).getCode()));
         //鍒濆鍖栬瀹俊鎭�
         initVisitInfo(visits,date);
+
+        if(StringUtils.isNotBlank(visits.getFaceImg())&&(Constants.equalsInteger(visits.getType(),Constants.ZERO)|| Constants.equalsInteger(visits.getType(),Constants.TWO))){
+            //浜鸿劯璇勫垎
+            FacePictureCheckRequest param = new FacePictureCheckRequest();
+            String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+            param.setFacePicUrl(prefixUrl + visits.getFaceImg());
+            BaseResponse<FacePictureCheckResponse> response = HKService.facePictureCheck(param);
+            if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~");
+            }
+            FacePictureCheckResponse facePictureCheckResponse = response.getData();
+            if(Objects.isNull(facePictureCheckResponse) || Objects.isNull(facePictureCheckResponse.getCheckResult())){
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~");
+            }
+            if(!facePictureCheckResponse.getCheckResult()){
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), facePictureCheckResponse.getStatusMessage());
+            }
+        }
+
         visitsMapper.insert(visits);
 
         //鍙戣捣ERP瀹℃壒鐢宠
@@ -262,8 +295,6 @@
 
         return visits.getId();
     }
-
-
 
 
     @Override
@@ -629,7 +660,7 @@
         if(Constants.equalsInteger(visits.getType(),Constants.ZERO)
              ||  Constants.equalsInteger(visits.getType(),Constants.ONE)){
             if(  visits.getIdcardType() == null
-                    ||  StringUtils.isBlank( visits.getIdcardNo() ) ){
+                    ||  StringUtils.isBlank( visits.getIdcardNo() ) || StringUtils.isBlank(visits.getFaceImg()) ){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝淇℃伅濉啓涓嶆纭紒");
             }
         }
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 db4a384..7143ee1 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
@@ -29,11 +29,11 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 璁垮鏉冮檺缁勪俊鎭〃Service瀹炵幇
@@ -494,7 +494,7 @@
                 delRetentionLis.add(visits.getMemberId());
                 //濡傛灉鏄瀹㈤�氳
                 if(request.getData()!=null&&request.getData().getParamValues()!=null &&
-                        StringUtils.equals(request.getData().getParamValues().getInOrOut(),"1")){
+                        StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){
                     //濡傛灉鏄瀹㈢櫥璁帮紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
                     Retention r = getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType());
                     r.setCarNo(request.getData().getParamValues().getPlateNos());
@@ -505,7 +505,7 @@
                     inoutDayCount.setInVisitorNum(Constants.formatIntegerNum(inoutDayCount.getInVisitorNum())+1);
                 }
                 if(request.getData()!=null&&request.getData().getParamValues()!=null &&
-                         StringUtils.equals(request.getData().getParamValues().getInOrOut(),"2")){
+                         !StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){
                     inoutDayCount.setOutVisitorNum(Constants.formatIntegerNum(inoutDayCount.getOutVisitorNum())+1);
                 }
             }
@@ -571,6 +571,7 @@
         event.setPhotoUrl(getHkImgUrl(detail.getFacePic()));
         event.setPersonName(detail.getVisitorName());
         event.setCarNo(detail.getPlateNo());
+        event.setRemark(JSONObject.toJSONString(request));
         event.setInvoicesNo(request.getData().getVisitorInvoices().getInvoicesNo());//璁垮鍗曞彿
         event.setIdType(detail.getCertType());
         String idnum = detail.getCertNo();
@@ -821,6 +822,55 @@
                     .last("limit 1" ));
             if(cars!=null){
                 event.setMemberId(cars.getMemberId());
+                //鑷湁杞�  鏌ヨ褰撳墠鏄惁鏈夊緟绛惧埌鐨勪换鍔�
+                if(carsMapper.selectCount(new QueryWrapper<Cars>()
+                        .lambda().eq(Cars::getCode,event.getPlateNos())
+                        .eq(Cars::getType,Constants.ONE)
+                        .eq(Cars::getIsdeleted,Constants.ZERO)
+                )>Constants.ZERO){
+                    //鏌ヨ杞﹁締褰撳墠鏄惁瀛樺湪杩涜涓殑浠诲姟
+                    if( platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                            .eq(PlatformJob::getCarCodeFront,event.getPlateNos())
+                            .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                            .in(PlatformJob::getStatus,
+                                    Constants.PlatformJobStatus.IN_WAIT.getKey(),
+                                    Constants.PlatformJobStatus.CALLED.getKey(),
+                                    Constants.PlatformJobStatus.WORKING.getKey(),
+                                    Constants.PlatformJobStatus.DONE.getKey(),
+                                    Constants.PlatformJobStatus.TRANSFERING.getKey(),
+                                    Constants.PlatformJobStatus.EXCEPTION.getKey(),
+                                    Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
+                            )
+                    )<Constants.ZERO){
+                        PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
+                                .eq(PlatformJob::getCarCodeFront,event.getPlateNos())
+                                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                                .in(PlatformJob::getStatus,
+                                        Constants.PlatformJobStatus.WAIT_CONFIRM.getKey(),
+                                        Constants.PlatformJobStatus.WART_SIGN_IN.getKey()
+                                )
+                                .orderByAsc(PlatformJob::getCreateDate)
+                                .last(" limit 1")
+                        );
+                        if(Objects.nonNull(platformJob)){
+                            platformJob.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey());
+                            platformJob.setArriveDate(new Date());
+                            platformJob.setSingType(Constants.TWO);
+                            platformJob.setSignDate(new Date());
+                            List<PlatformJob> signList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().lambda().apply(" DATE(SIGN_DATE) = DATE(NOW()) and sign_date is not null  "));
+                            if(CollectionUtils.isEmpty(signList)){
+                                platformJob.setSignNum(Constants.ONE);
+                            } else{
+                                int maxNumber = Collections.max(signList.stream().map(i->i.getSignNum()).collect(Collectors.toList()));
+                                platformJob.setSignNum(maxNumber + Constants.ONE);
+                            }
+                            platformJobMapper.updateById(platformJob);
+                        }
+                    }
+                };
+
+
+
             }else{
                 Visits visits =  visitsMapper.selectOne(new QueryWrapper<Visits>().lambda()
                         .eq(Visits::getCarNos,event.getPlateNos())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
index 68245b6..7d5e472 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
@@ -23,8 +23,10 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * WMS骞冲彴瀵规帴Service瀹炵幇
@@ -340,6 +342,13 @@
                 job.setArriveDate(new Date());
                 job.setSingType(Constants.TWO);
                 job.setSignDate(new Date());
+                List<PlatformJob> signList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().lambda().apply(" DATE(SIGN_DATE) = DATE(NOW()) and sign_date is not null  "));
+                if(CollectionUtils.isEmpty(signList)){
+                    job.setSignNum(Constants.ONE);
+                } else{
+                    int maxNumber = Collections.max(signList.stream().map(i->i.getSignNum()).collect(Collectors.toList()));
+                    job.setSignNum(maxNumber + Constants.ONE);
+                }
             }
         }
         PlatformGroup group = platformGroupMapper.selectOne(new QueryWrapper<PlatformGroup>().lambda()

--
Gitblit v1.9.3