From 76ac3375a039432db9e44b70350cb49e1786db1d Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 10 十月 2024 15:55:34 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                       |    5 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java                   |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/WmsService.java                  |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsLockStatusQueryResponse.java |   34 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsBaseResponse.java            |   31 ++
 server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java                                    |   38 +-
 server/visits/dmvisit_admin/src/main/resources/bootstrap.yml                                                   |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java           |  135 ++++++--
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java       |  130 ++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOrderInfoRequest.java         |   18 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderListResponse.java       |   38 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java     |   23 +
 admin/src/views/business/platformEvent.vue                                                                     |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java                   |    1 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java               |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsLockStatusQueryRequest.java   |   19 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java                       |   20 -
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOrderListRequest.java         |   23 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsBaseRequest.java              |   18 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java         |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java       |   37 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java         |  129 ++++++++
 server/system_gateway/src/main/resources/bootstrap.yml                                                         |    2 
 server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java                                        |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java          |  118 ++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java                  |   43 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java |   14 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java |    1 
 28 files changed, 774 insertions(+), 119 deletions(-)

diff --git a/admin/src/views/business/platformEvent.vue b/admin/src/views/business/platformEvent.vue
index 568b04d..193fbf5 100644
--- a/admin/src/views/business/platformEvent.vue
+++ b/admin/src/views/business/platformEvent.vue
@@ -63,7 +63,6 @@
                     <span v-if="row.stockStatus != 'rear' && row.stockStatus != 'front'">{{ row.stockStatus }}</span>
                   </template>
                 </el-table-column>
-                <el-table-column prop="stockStatus" label="杞﹂棬鐘舵��" min-width="90px"></el-table-column>
                 <el-table-column label="杞﹂棬鐘舵��" min-width="100px">
                     <template slot-scope="{row}">
                         <span v-if="row.vehicleDoorStatus == 'open'">寮�闂�</span>
diff --git a/server/system_gateway/src/main/resources/bootstrap.yml b/server/system_gateway/src/main/resources/bootstrap.yml
index 099da4a..8ecd0a5 100644
--- a/server/system_gateway/src/main/resources/bootstrap.yml
+++ b/server/system_gateway/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: pro
+    active: dev
   application:
     name: system_gateway
   # 瀹夊叏閰嶇疆
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index 8417fc0..5ab2efa 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -126,6 +126,11 @@
     public static final String WMS_INBOUND_PLATFROM_URL ="WMS_INBOUND_PLATFROM_URL" ;
     public static final String WMS_GET_INVENTORYLIST_URL ="WMS_GET_INVENTORYLIST_URL" ;
     public static final String WMS_OUTBOUND_PLATFROM_URL ="WMS_OUTBOUND_PLATFROM_URL" ;
+    public static final String TSM_PARAM ="TSM_PARAM" ;
+    public static final String TMS_ORDER_LIST_URL ="TMS_ORDER_LIST_URL" ;
+    public static final String TMS_ORDER_DETAIL_URL ="TMS_ORDER_DETAIL_URL" ;
+    public static final String TMS_LOCK_STATUS_URL ="TMS_LOCK_STATUS_URL" ;
+    public static final String TMS_INTERFACE_URL_PREFIX ="TMS_INTERFACE_URL_PREFIX" ;
     public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
     public static  boolean DEALING_HK_SYNCDEVICE = false;
     public static  boolean DEALING_HK_SYNCPLATFORM = false;
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
index ab48930..8b3ec51 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -331,7 +331,6 @@
         int currentMonth = Integer.parseInt(sdfMonth.format(currentDate));
         List<String> list = new ArrayList<>();
 
-        System.out.println("杩�12涓湀浠斤細");
         for (int i = 0; i < month; i++) {
             int tempYear = currentYear;
             int tempMonth = currentMonth - i;
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 e1af26d..84a8205 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
@@ -19,16 +19,14 @@
 
 public class SmsConstants {
 
-
-
-    public static final String inventCode ="inventCode" ;
-    public static final String visit ="visit" ;
-    public static final String visitReport ="visitReport" ;
-    public static final String hiddenDanger ="hiddenDanger" ;
-    public static final String carUse ="carUse" ;
-    public static final String meeting ="meeting" ;
-    public static final String platformBook ="platformBook" ;
-    public static final String platformJob ="platformJob" ;
+    public static final String inventCode ="0" ;
+    public static final String visit ="1" ;
+    public static final String visitReport ="2" ;
+    public static final String hiddenDanger ="3" ;
+    public static final String carUse ="4" ;
+    public static final String meeting ="5" ;
+    public static final String platformBook ="6" ;
+    public static final String platformJob ="7" ;
 
 
     /**
@@ -91,7 +89,6 @@
         String carUseBookCancel = "carUseBookCancel";
     }
 
-
     /**
      * 鐗╂祦杞﹂绾�
      */
@@ -103,7 +100,7 @@
         //鐗╂祦杞﹂绾�-瀹℃壒椹冲洖鐭俊閫氱煡妯℃澘锛堢粰鐢宠浜猴級
         String platformBookAuditFail = "platformBookAuditFail";
         //鐗╂祦杞﹂绾�-鍏ュ洯棰勭害鍙栨秷鐭俊閫氱煡妯℃澘锛堢粰鐢宠浜猴級
-        String carUseBookCancel = "carUseBookCancel";
+        String platformBookCancel = "platformBookCancel";
     }
 
 
@@ -116,22 +113,21 @@
         //鐗╂祦杞︿綔涓�-杩愯緭浠诲姟涓鎻愰啋锛堢粰鍙告満锛夛細銆�
         String platformJobStopJob = "platformJobStopJob";
         //鐗╂祦杞﹂绾�-鍙彿鍏ュ洯绛夊緟锛堢粰鍙告満锛�
-        String platformBookCallIn = "platformBookCallIn";
+        String platformJobCallIn = "platformJobCallIn";
         //鐗╂祦杞﹂绾�-鏈堝彴鍙彿锛堢粰鍙告満锛�
-        String platformBookSingIn = "platformBookSingIn";
+        String platformJobSingIn = "platformJobSingIn";
         //鐗╂祦杞﹂绾�-鏈堝彴鍙彿杩囧彿锛堢粰鍙告満锛�
-        String platformBookOverNum = "platformBookOverNum";
+        String platformJobOverNum = "platformJobOverNum";
         //鐗╂祦杞﹂绾�-浣滀笟寮�濮嬶紙缁欏徃鏈猴級
-        String platformBookWorking = "platformBookWorking";
+        String platformJobWorking = "platformJobWorking";
         //鐗╂祦杞﹂绾�-浣滀笟瀹屾垚锛堢粰鍙告満锛�
-        String platformBookFinish = "platformBookFinish";
+        String platformJobFinish = "platformJobFinish";
         //鐗╂祦杞﹂绾�-浣滀笟寮傚父鎸傝捣锛堢粰鍙告満锛�
-        String platformBookError = "platformBookError";
+        String platformJobError = "platformJobError";
         //鐗╂祦杞﹂绾�-鏈堝彴杞Щ锛堢粰鍙告満锛�
-        String platformBookMove = "platformBookMove";
+        String platformJobMove = "platformJobMove";
         //鐗╂祦杞﹂绾�-鏈堝彴鍋滈潬瓒呮椂锛堢粰鍙告満锛�
-        String platformBookTimeOut = "platformBookTimeOut";
-
+        String platformJobTimeOut = "platformJobTimeOut";
     }
 
 
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java
index 51ba5d1..a968b68 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java
@@ -4,39 +4,21 @@
 import com.doumee.api.BaseController;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.exception.BusinessException;
-import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
-import com.doumee.core.haikang.model.param.request.EventSubRequest;
-import com.doumee.core.haikang.model.param.request.ParkListRequest;
-import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
-import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
-import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
-import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
 import com.doumee.core.wms.model.request.WmsBaseRequest;
 import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
 import com.doumee.core.wms.model.request.WmsOutboundNoticeRequest;
 import com.doumee.core.wms.model.response.WmsBaseResponse;
-import com.doumee.service.business.WmsService;
-import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
-import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl;
-import com.doumee.service.business.impl.hksync.HkSyncPrivilegeServiceImpl;
-import com.doumee.service.business.impl.hksync.HkSyncPushServiceImpl;
+import com.doumee.service.business.third.WmsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
 
 /**
  * @author 姹熻箘韫�
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java
index 1ca7bc2..ffe7792 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java
@@ -10,7 +10,7 @@
 import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
 import com.doumee.core.wms.model.request.WmsOutboundNoticeRequest;
 import com.doumee.core.wms.model.response.WmsBaseResponse;
-import com.doumee.service.business.WmsService;
+import com.doumee.service.business.third.WmsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java
index 5c0a6a4..33158ca 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java
@@ -4,7 +4,7 @@
 import com.doumee.config.annotation.LoginNoRequired;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.wms.model.response.WmsBaseResponse;
-import com.doumee.service.business.WmsService;
+import com.doumee.service.business.third.WmsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
index 2df12af..9dc10e9 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: pro
+    active: dev
   application:
     name: visitsAdmin
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsBaseRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsBaseRequest.java
new file mode 100644
index 0000000..7b1e66c
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsBaseRequest.java
@@ -0,0 +1,18 @@
+package com.doumee.core.tms.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms璇锋眰鍏叡鍙傛暟")
+public class TmsBaseRequest  {
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsLockStatusQueryRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsLockStatusQueryRequest.java
new file mode 100644
index 0000000..00c7355
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsLockStatusQueryRequest.java
@@ -0,0 +1,19 @@
+package com.doumee.core.tms.model.request;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鏌ヨ鍚堝悓鍙蜂笂閿佺姸鎬佽姹傚弬鏁�")
+public class TmsLockStatusQueryRequest {
+
+
+    private List<String> contractNumbers; //鏄�	闆嗗悎	鍚堝悓鍙�	蹇呭~锛岃嚦灏戜紶涓�涓悎鍚屽彿
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOrderInfoRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOrderInfoRequest.java
new file mode 100644
index 0000000..eec06e5
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOrderInfoRequest.java
@@ -0,0 +1,18 @@
+package com.doumee.core.tms.model.request;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鍚堝悓璇︽儏璇锋眰鍙傛暟")
+public class TmsOrderInfoRequest {
+
+    private String contractNumber	;//鏄� 鍚堝悓鍙�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOrderListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOrderListRequest.java
new file mode 100644
index 0000000..9ef1434
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOrderListRequest.java
@@ -0,0 +1,23 @@
+package com.doumee.core.tms.model.request;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鍚堝悓鍒楄〃璇锋眰鍙傛暟")
+public class TmsOrderListRequest {
+
+
+    private List<String> permissionDomainIdList; //鏄�	闆嗗悎	鍖哄煙ID闆嗗悎
+    private List<String> contractNumbers; //	鍚�	闆嗗悎	鍚堝悓鍙烽泦鍚�
+    private String fromRepertoty	;//鍚�	瀛楃涓�	鍙戣揣鍦�
+    private String   toRepertoty	;//	鍚�	瀛楃涓�	鍒拌揣鍦�
+    private String  provinceName	;//	鍚�	瀛楃涓�	鍒拌揣鍦扮渷浠�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsBaseResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsBaseResponse.java
new file mode 100644
index 0000000..8001926
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsBaseResponse.java
@@ -0,0 +1,31 @@
+package com.doumee.core.tms.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鎺ュ彛澶勭悊杩斿洖鍙傛暟")
+public class TmsBaseResponse<T> {
+    public static final String CODE_SUCCESS = "0";
+    @ApiModelProperty(value = "杩斿洖鍙傛暟"  )
+    private  T data;
+
+    @ApiModelProperty(value = "鍝嶅簲鐮�")
+    private String code;
+
+    @ApiModelProperty(value = "璇锋眰鏄惁鎴愬姛")
+    private boolean success;
+
+    @ApiModelProperty(value = "閿欒娑堟伅")
+    private String message;
+
+    @ApiModelProperty(value = "寮傚父娑堟伅")
+    private String exception;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsLockStatusQueryResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsLockStatusQueryResponse.java
new file mode 100644
index 0000000..c8fa5b2
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsLockStatusQueryResponse.java
@@ -0,0 +1,34 @@
+package com.doumee.core.tms.model.response;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鏌ヨ鍚堝悓鍙蜂笂閿佺姸鎬佽繑鍥炲弬鏁�")
+public class TmsLockStatusQueryResponse {
+   /**
+    {
+        "code": 0,
+        "data": [
+            {
+                "outDate": "2024-04-25 14:50:20",
+                "contractNumber": "112623190"
+            },
+            {
+                "outDate": "2024-06-21 10:15:10",
+                "contractNumber": "112722870"
+            }
+        ],
+        "message": "鎿嶄綔鎴愬姛"
+    }
+    */
+   private String contractNumber;//	鍚堝悓鍙�
+   private String  outDate	;//涓婇攣鏃堕棿 2024-04-29 14:50:20
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java
new file mode 100644
index 0000000..716c37b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java
@@ -0,0 +1,37 @@
+package com.doumee.core.tms.model.response;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鍚堝悓璇︽儏杩斿洖鍙傛暟")
+public class TmsOrderInfoResponse {
+    /**
+     {
+         "code": 0,
+         "data": [
+             {
+                 "ncCreateDate": "2024-09-10 08:20:04",
+                 "toRepertotyName": "鑺滄箹甯傜儫鑽夊叕鍙镐粨搴�",
+                 "contractNumber": "112895169",
+                 "orderStatus": "鍒拌揪鍗歌揣鍦�",
+                 "fromRepertotyName": "鑺滄箹鎴愬搧搴�",
+                 "plateNumber": "鐨朆25010"
+             }
+         ],
+         "message": "鎿嶄綔鎴愬姛"
+     }
+     */
+ 
+    private String   contratNumber	; //鍚堝悓鍙�
+    private String   fromRepertotyName	; //鍙戣揣鍦�
+    private String    toRepertoty	; //鍒拌揣鍦�
+    private String    plateNumber; //	杞︾墝鍙�	鍚堝悓鏈厤杞藉垯鏃�
+    private String   orderStatus	; //褰撳墠杩愯緭鍗曠姸鎬�
+    private String   ncCreateDate; //	鍒跺崟鏃堕棿
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderListResponse.java
new file mode 100644
index 0000000..855faba
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderListResponse.java
@@ -0,0 +1,38 @@
+package com.doumee.core.tms.model.response;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鍚堝悓鍒楄〃杩斿洖鍙傛暟")
+public class TmsOrderListResponse {
+    /**
+     {
+         "code": 0,
+         "data": [
+             {
+                 "fromRepertoty": "鍚堣偉鎴愬搧搴�",
+                 "ncCreateDate": "2023-12-04 10:36:15",
+                 "toRepertoty": "澶╂触甯備腑蹇冧粨搴�",
+                 "contractNumber": "112308335",
+                 "orderStatus": "鍒拌揪鍗歌揣鍦�"
+             }
+         ],
+         "message": "鎿嶄綔鎴愬姛"
+     }
+     */
+    private String    contractNumber; //	鍚堝悓鍙�
+    private String    fromRepertoty; //	鍙戣揣鍦�
+    private String   toRepertoty	; //鍒拌揣鍦�
+    private String   plateNumber; //	杞︾墝鍙�	鍚堝悓鏈厤杞藉垯鏃�
+    private String    orderStatus; //	褰撳墠杩愯緭鍗曠姸鎬�
+    private String  ncCreateDate; //	鍒跺崟鏃堕棿
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
index ff5947f..9b41bd6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
@@ -151,7 +151,6 @@
     @TableField(exist = false)
     private String auditName;
 
-
     @ApiModelProperty(value = "瀹℃壒淇℃伅鏁版嵁")
     @TableField(exist = false)
     private ApproveDataVO approveDateVO;
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 a5e7686..ad2249f 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
@@ -13,6 +13,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.SmsConstants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.CompanyMapper;
@@ -32,12 +33,14 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.third.EmayService;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -110,6 +113,15 @@
 
     @Autowired
     private VisitParkMapper visitParkMapper;
+
+    @Autowired
+    private SmsConfigMapper smsConfigMapper;
+
+    @Autowired
+    private SmsEmailMapper smsEmailMapper;
+
+    @Autowired
+    private EmayService emayService;
 
 
     @Override
@@ -445,7 +457,6 @@
             this.organizeApproveCopyData(approveTempl,approveCopyList,businessId,approveList);
         }
         approveJoinMapper.insert(approveList);
-
     }
 
 
@@ -563,6 +574,19 @@
                 approve.setAddrParam(approveParam.getAddrParam());
                 approve.setType(Constants.ZERO);
                 approveList.add(approve);
+
+                if(Constants.equalsInteger(approve.getStatus(),Constants.ONE)){
+                    //鍙戦�佺煭淇¢�氱煡
+                    if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.reason)){
+                        //鐗╂祦杞﹂绾�
+                        SmsEmailServiceImpl.sendPlatformBookSms(systemDictDataBiz,
+                                emayService,smsEmailMapper,smsConfigMapper,platformBooksMapper,businessId,
+                                SmsConstants.platformBookContent.platformBookWaitAudit,
+                                null,null
+                        );
+                    }
+                }
+
             }
         }
     }
@@ -1233,6 +1257,17 @@
                             .in(Approve::getId,approveList.stream().map(m->m.getId()).collect(Collectors.toList())));
                 }
                 /**寮�鍚笅涓�绾у埆鐨勬暟鎹负寰呭鏍�**/
+
+                List<Approve> waitAuditList = approveJoinMapper.selectJoinList(Approve.class,
+                        new MPJLambdaWrapper<Approve>()
+                                .selectAll(Approve.class)
+                                .selectAs(Member::getPhone,Approve::getMemberPhone)
+                                .leftJoin(Member.class,Member::getId,Approve::getChekorId)
+                                .eq(Approve::getStatus,Constants.approveStatus.wait)
+                                .eq(Approve::getObjId,approve.getObjId())
+                                .eq(Approve::getObjType,approve.getObjType())
+                                .eq(Approve::getLevel,(approve.getLevel()+1)));
+
                 approveJoinMapper.update(null,new UpdateWrapper<Approve>()
                         .lambda()
                         .set(Approve::getStatus,Constants.approveStatus.auditIng)
@@ -1243,6 +1278,21 @@
                         .eq(Approve::getObjType,approve.getObjType())
                         .eq(Approve::getLevel,(approve.getLevel()+1))
                 );
+                //鍙戦�佺煭淇¢�氱煡  涓嬬骇瀹℃壒浜�
+
+
+                List<String> memberPhone = waitAuditList.stream().filter(i->StringUtils.isNotBlank(i.getMemberPhone())).map(i->i.getMemberPhone()).collect(Collectors.toList());
+                if(approveDTO.getObjType().equals(Constants.approveObjectType.reason)){
+                    SmsEmailServiceImpl.sendPlatformBookSms(systemDictDataBiz,
+                            emayService,smsEmailMapper,smsConfigMapper,platformBooksMapper,approveDTO.getObjId(),
+                            SmsConstants.platformBookContent.platformBookWaitAudit,
+                            approveDTO.getCheckInfo(),memberPhone
+                    );
+                }
+
+
+
+
                 if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit)
                         ||approveDTO.getObjType().equals(Constants.approveObjectType.constructionVisit)
                         ||approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)) {
@@ -1252,8 +1302,6 @@
                              visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.ONE).eq(Visits::getId,visits.getId()));
                         }
                     }
-
-
                 }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                         Constants.approveObjectType.unCityUseCar)){
                     this.updDriver(approveDTO,approve,false);
@@ -1443,8 +1491,7 @@
             visits.setEditDate(new Date());
             visits.setEditor(approveDTO.getLoginUserInfo().getMemberId());
             //涓嬪彂璁垮鎶ュ杞﹁締淇℃伅
-
-            if(approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)){
+            if(Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)&&approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)){
                 Boolean sendStatus = true;
                 //鏌ヨ褰撳墠鍚敤鐨勫仠杞﹀満
                 List<Parks> parksList = parksMapper.selectList(new QueryWrapper<Parks>()
@@ -1514,41 +1561,53 @@
             platformBooks.setStatus(approveDTO.getStatus());
             platformBooks.setEditDate(new Date());
             platformBooks.setEditor(approveDTO.getLoginUserInfo().getMemberId());
-            PlatformReason platformReason = platformReasonMapper.selectById(platformBooks.getReasonId());
-            if(Objects.isNull(platformReason)){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍏ュ洯鍘熷洜鏁版嵁");
-            }
-            PlatformGroup platformGroup = platformGroupMapper.selectById(platformReason.getGroupId());
-            if(Objects.isNull(platformGroup)){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍏ュ洯鍘熷洜閰嶇疆鏈堝彴缁勬暟鎹�");
-            }
+            if(Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)){
+                PlatformReason platformReason = platformReasonMapper.selectById(platformBooks.getReasonId());
+                if(Objects.isNull(platformReason)){
+                    throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍏ュ洯鍘熷洜鏁版嵁");
+                }
+                PlatformGroup platformGroup = platformGroupMapper.selectById(platformReason.getGroupId());
+                if(Objects.isNull(platformGroup)){
+                    throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍏ュ洯鍘熷洜閰嶇疆鏈堝彴缁勬暟鎹�");
+                }
 
-            //鐢熸垚浠诲姟璁板綍
-            PlatformJob platformJob = platformBooks.toPlatformJob();
-            platformJob.setId(null);
-            platformJob.setPlatformGroupId(platformReason.getGroupId().intValue());
-            if(Constants.equalsInteger(platformGroup.getType(),Constants.ZERO)){
-                platformJob.setType(Constants.platformJobType.wxcxh);
-            }else if(Constants.equalsInteger(platformGroup.getType(),Constants.ONE)){
-                platformJob.setType(Constants.platformJobType.wxczh);
-            }else{
-                platformJob.setType(Constants.platformJobType.sgscxh);
+                //鐢熸垚浠诲姟璁板綍
+                PlatformJob platformJob = platformBooks.toPlatformJob();
+                platformJob.setId(null);
+                platformJob.setPlatformGroupId(platformReason.getGroupId().intValue());
+                if(Constants.equalsInteger(platformGroup.getType(),Constants.ZERO)){
+                    platformJob.setType(Constants.platformJobType.wxcxh);
+                }else if(Constants.equalsInteger(platformGroup.getType(),Constants.ONE)){
+                    platformJob.setType(Constants.platformJobType.wxczh);
+                }else{
+                    platformJob.setType(Constants.platformJobType.sgscxh);
+                }
+                platformJob.setStatus(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
+                platformJobMapper.insert(platformJob);
+                platformBooks.setJobId(platformJob.getId());
+                platformBooksMapper.updateById(platformBooks);
+                //鐢熸垚浠诲姟鎿嶄綔璁板綍
+                PlatformLog platformLog = new PlatformLog();
+                platformLog.setCreateDate(new Date());
+                platformLog.setJobId(platformJob.getId());
+                platformLog.setIsdeleted(Constants.ZERO);
+                platformLog.setParam4(platformJob.getCarCodeFront());
+                platformLog.setContent(Constants.PlatformJobLogType.CREATE.getInfo());
+                platformLog.setObjType(Constants.PlatformJobLogType.CREATE.getKey());
+                platformLog.setObjId(platformJob.getId().toString());
+                platformLog.setAfterContent(JSONObject.toJSONString(platformJob));
+                platformLogMapper.insert(platformLog);
             }
-            platformJob.setStatus(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
-            platformJobMapper.insert(platformJob);
-            platformBooks.setJobId(platformJob.getId());
-            platformBooksMapper.updateById(platformBooks);
-            //鐢熸垚浠诲姟鎿嶄綔璁板綍
-            PlatformLog platformLog = new PlatformLog();
-            platformLog.setCreateDate(new Date());
-            platformLog.setJobId(platformJob.getId());
-            platformLog.setIsdeleted(Constants.ZERO);
-            platformLog.setParam4(platformJob.getCarCodeFront());
-            platformLog.setContent(Constants.PlatformJobLogType.CREATE.getInfo());
-            platformLog.setObjType(Constants.PlatformJobLogType.CREATE.getKey());
-            platformLog.setObjId(platformJob.getId().toString());
-            platformLog.setAfterContent(JSONObject.toJSONString(platformJob));
-            platformLogMapper.insert(platformLog);
+            //鍙戦�佺煭淇¢�氱煡
+            SmsEmailServiceImpl.sendPlatformBookSms(systemDictDataBiz,
+                    emayService,smsEmailMapper,smsConfigMapper,platformBooksMapper,platformBooks.getId(),
+                    Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?SmsConstants.platformBookContent.platformBookAuditSuccess:
+                            SmsConstants.platformBookContent.platformBookAuditFail,
+                    approveDTO.getCheckInfo(),null
+            );
+
+            //TODO 鍙戦�佸井淇″叕浼楀彿娑堟伅
+
         }else{
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
index ad482b6..f4b6d33 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -10,6 +10,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.SmsConstants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.ApproveJoinMapper;
@@ -26,6 +27,7 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.third.EmayService;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.tomcat.util.bcel.Const;
 import org.springframework.beans.BeanUtils;
@@ -77,6 +79,14 @@
     @Autowired
     private CarsMapper carsMapper;
 
+    @Autowired
+    private SmsConfigMapper smsConfigMapper;
+
+    @Autowired
+    private SmsEmailMapper smsEmailMapper;
+
+    @Autowired
+    private EmayService emayService;
 
     @Override
     public Integer create(PlatformBooks platformBooks) {
@@ -255,7 +265,7 @@
         if(carsMapper.selectCount(new QueryWrapper<Cars>().lambda().eq(Cars::getIsdeleted,Constants.ZERO).eq(Cars::getCode,platformBooksApplyDTO.getCarCodeFront()))>Constants.ZERO){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"["+platformBooksApplyDTO.getCarCodeFront()+"]灞炰簬鍐呴儴杞﹁締锛屾棤娉曢绾�");
         };
-        ApproveTempl approveTempl = approveTemplMapper.selectById(platformReason.getId());
+        ApproveTempl approveTempl = approveTemplMapper.selectById(platformReason.getApproveTemplId());
         if(Objects.isNull(approveTempl)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈厤缃鎵规祦,璇疯仈绯荤鐞嗗憳");
         }
@@ -272,7 +282,7 @@
         platformBooksMapper.insert(platformBooks);
 
         //鍒涘缓瀹℃壒娴佷俊鎭�
-        approveService.createApproveForPlatfrom(platformReason.getApproveTemplId(),platformBooks.getId(),platformBooks.getDriverId());
+        approveService.createApproveForPlatfrom(approveTempl.getId(),platformBooks.getId(),platformBooks.getDriverId());
         return platformBooks.getId();
     }
 
@@ -389,6 +399,15 @@
                 .eq(Approve::getObjType,Constants.approveObjectType.logisticsCarUse)
                 .eq(Approve::getObjId,revokeDTO.getId())
         );
+
+        //鍙戦�佺煭淇¢�氱煡
+        SmsEmailServiceImpl.sendPlatformBookSms(systemDictDataBiz,
+                emayService,smsEmailMapper,smsConfigMapper,platformBooksMapper,model.getId(),
+                        SmsConstants.platformBookContent.platformBookCancel,
+                null,null
+        );
+
+
     }
 
 
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 9b704bc..5957712 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
@@ -13,10 +13,7 @@
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Constants;
-import com.doumee.core.utils.DateUtil;
-import com.doumee.core.utils.PositionUtil;
-import com.doumee.core.utils.Utils;
+import com.doumee.core.utils.*;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.PlatformJobJoinMapper;
 import com.doumee.dao.business.join.PlatformJoinMapper;
@@ -34,6 +31,8 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.impl.hksync.HkSyncPushServiceImpl;
+import com.doumee.service.business.third.EmayService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -48,6 +47,7 @@
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.*;
+import java.util.Date;
 import java.util.stream.Collectors;
 
 /**
@@ -96,6 +96,17 @@
     @Autowired
     private VisitParkMapper visitParkMapper;
 
+    @Autowired
+    private SmsConfigMapper smsConfigMapper;
+
+    @Autowired
+    private SmsEmailMapper smsEmailMapper;
+
+    @Autowired
+    private EmayService emayService;
+
+    @Autowired
+    private PlatformBroadcastLogMapper platformBroadcastLogMapper;
 
     @Override
     public Integer create(PlatformJob platformJob) {
@@ -825,6 +836,12 @@
         savePlatformLog(Constants.PlatformJobLogType.IN_WAIT.getKey(),oldPlatformJob,platformJob,
                 Constants.PlatformJobLogType.IN_WAIT.getInfo());
 
+        //鍙戦�佺煭淇′俊鎭�
+        SmsEmailServiceImpl.sendPlatformJobSms(systemDictDataBiz,
+                emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
+                SmsConstants.platformJobContent.platformJobCallIn,null,null
+        );
+
         return platformJob;
     }
 
@@ -1010,7 +1027,61 @@
         //瀛樺偍鎿嶄綔鏃ュ織
         savePlatformLog(Constants.PlatformJobLogType.CALLED.getKey(),oldPlatformJob,platformJob,
                 Constants.PlatformJobLogType.CALLED.getInfo().replace("{data}",platform.getName()));
+
+        //鍙戦�佺煭淇′俊鎭�
+        SmsEmailServiceImpl.sendPlatformJobSms(systemDictDataBiz,
+                emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
+                SmsConstants.platformJobContent.platformJobSingIn,platform.getName(),null
+        );
+
+        //骞挎挱 led閫氱煡
+        this.broadcastAndLEed(platformJob,Constants.PlatformBroadcastContent.CALLING.getInfo().replace("{param2}",platform.getName()));
         return platformJob;
+    }
+
+
+    public void broadcastAndLEed(PlatformJob model,String content){
+        int speed = 13;
+        try {
+            speed = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.LED_CONTENT_SPEED).getCode());
+        }catch (Exception e){
+
+        }
+        List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
+                .eq(PlatformDevice::getPlatformId,model.getPlatformId())
+                .eq(PlatformDevice::getIsdeleted,Constants.ZERO));
+        if(deviceList ==null || deviceList.size() == 0){
+            return;
+        }
+        content = content.replace("${param}",model.getPlatformName());
+        content = content.replace("${param2}",model.getCarCodeFront());
+        List<String> broadcastList = new ArrayList<>();
+        List<String> ledList = new ArrayList<>();
+        String bNames = "";
+        List<PlatformBroadcastLog> logList = new ArrayList<>();
+        for(PlatformDevice device : deviceList){
+            if(StringUtils.isNotBlank(device.getHkId())){
+                continue;
+            }
+            if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
+                //濡傛灉鏄疞ED
+                PlatformBroadcastLog log = HkSyncPushServiceImpl.dealLedContentBiz(device.getHkNo(),device.getName(),content,speed,1);
+                logList.add(log);
+                ledList.add(device.getHkId());
+            }else  if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
+                //濡傛灉鏄箍鎾偣
+                bNames += device.getName()+";";
+                broadcastList.add(device.getHkId());
+            }
+        }
+        if(broadcastList.size()>0){
+            PlatformBroadcastLog log = HkSyncPushServiceImpl.dealBroadcastBiz(model,broadcastList,bNames,Constants.PlatformBroadcastContent.WRONG_IN.getInfo());
+            logList.add(log);
+        }
+        if(logList.size()>0){
+            platformBroadcastLogMapper.insert(logList);
+        }
+
     }
 
 
@@ -1062,6 +1133,13 @@
         //瀛樺偍鎿嶄綔鏃ュ織
         savePlatformLog(Constants.PlatformJobLogType.TRANSFERING.getKey(),oldPlatformJob,platformJob,
                 Constants.PlatformJobLogType.TRANSFERING.getInfo().replace("{data}",oldPlatform.getName()));
+
+
+        //鍙戦�佺煭淇′俊鎭�
+        SmsEmailServiceImpl.sendPlatformJobSms(systemDictDataBiz,
+                emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
+                SmsConstants.platformJobContent.platformJobMove,oldPlatform.getName(),platform.getName()
+        );
     }
 
 
@@ -1091,6 +1169,13 @@
         //瀛樺偍鎿嶄綔鏃ュ織
         savePlatformLog(Constants.PlatformJobLogType.OVER_NUMBER.getKey(),oldPlatformJob,platformJob,
                 Constants.PlatformJobLogType.OVER_NUMBER.getInfo());
+        //鍙戦�佺煭淇′俊鎭�
+        SmsEmailServiceImpl.sendPlatformJobSms(systemDictDataBiz,
+                emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
+                SmsConstants.platformJobContent.platformJobOverNum,null,null
+        );
+
+
         return platformJob;
     }
 
@@ -1113,6 +1198,8 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�");
         }
 
+        Platform platform = platformJoinMapper.selectById(platformJob.getPlatformId());
+
         PlatformJob oldPlatformJob = new PlatformJob();
         BeanUtils.copyProperties(platformJob,oldPlatformJob);
 
@@ -1124,6 +1211,12 @@
         //瀛樺偍鎿嶄綔鏃ュ織
         savePlatformLog(Constants.PlatformJobLogType.EXCEPTION.getKey(),oldPlatformJob,platformJob,
                 Constants.PlatformJobLogType.EXCEPTION.getInfo());
+
+        //鍙戦�佺煭淇′俊鎭�
+        SmsEmailServiceImpl.sendPlatformJobSms(systemDictDataBiz,
+                emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
+                SmsConstants.platformJobContent.platformJobError,platform.getName(),null
+        );
     }
 
 
@@ -1149,8 +1242,7 @@
         if(Objects.isNull(platform)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈堝彴淇℃伅");
         }
-
-
+        
         PlatformJob oldPlatformJob = new PlatformJob();
         BeanUtils.copyProperties(platformJob,oldPlatformJob);
         if(Objects.isNull(platformJob.getStartDate())){
@@ -1164,6 +1256,12 @@
         savePlatformLog(Constants.PlatformJobLogType.WORKING.getKey(),oldPlatformJob,platformJob,
                 Constants.PlatformJobLogType.WORKING.getInfo().replace("{data}",platform.getName()));
 
+        //鍙戦�佺煭淇′俊鎭�
+        SmsEmailServiceImpl.sendPlatformJobSms(systemDictDataBiz,
+                emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
+                SmsConstants.platformJobContent.platformJobWorking,platform.getName(),null
+        );
+        
         return platformJob;
     }
 
@@ -1186,6 +1284,13 @@
         ||Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.EXCEPTION.getKey()) )){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�");
         }
+
+
+        Platform platform = platformJoinMapper.selectById(platformJob.getPlatformId());
+        if(Objects.isNull(platform)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈堝彴淇℃伅");
+        }
+        
         PlatformJob oldPlatformJob = new PlatformJob();
         BeanUtils.copyProperties(platformJob,oldPlatformJob);
 
@@ -1204,6 +1309,15 @@
             //TODO 澶栧崗杞﹀嵏璐� 鎴栬�� 甯傚叕鍙歌溅鍗歌揣 鍒欐牴鎹换鍔℃儏鍐�
 
         }
+ 
+        //鍙戦�佺煭淇′俊鎭�
+        SmsEmailServiceImpl.sendPlatformJobSms(systemDictDataBiz,
+                emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
+                SmsConstants.platformJobContent.platformJobFinish,platform.getName(),null
+        );
+
+        //骞挎挱 led閫氱煡
+        this.broadcastAndLEed(platformJob,Constants.PlatformBroadcastContent.DONE.getInfo());
         return platformJob;
     }
 
@@ -1237,10 +1351,6 @@
         savePlatformLog(Constants.PlatformJobLogType.AUTHED_LEAVE.getKey(),oldPlatformJob,platformJob ,
                 Constants.PlatformJobLogType.AUTHED_LEAVE.getInfo());
         return platformJob;
-
-
-
-
     }
 
 
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 f87b04b..01afdca 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
@@ -1,5 +1,6 @@
 package com.doumee.service.business.impl;
 
+import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -12,10 +13,13 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 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.model.Company;
-import com.doumee.dao.business.model.SmsEmail;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.SmsEmailService;
 import com.doumee.service.business.third.EmayService;
 import org.apache.commons.lang3.StringUtils;
@@ -26,8 +30,10 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 鐭俊閭欢淇℃伅琛⊿ervice瀹炵幇
@@ -251,29 +257,113 @@
     }
 
 
-
-    
-
-
-
-
-
-    public static void sendBusiness(EmayService emayService ,SmsEmailMapper smsEmailMapper ,List<String> phoneList,String objType,String content,Integer objId){
-        for (String phone:phoneList) {
-            boolean result=   emayService.sendSingleSms(phone,content);
-            if(!result){
-                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐭俊楠岃瘉鐮佸彂閫佸け璐ワ紝璇风◢鍚庨噸璇曪紒");
+    /**
+     * 鐢ㄨ溅鐢宠 鐭俊閫氱煡閰嶇疆
+     * @param emayService
+     * @param smsEmailMapper
+     * @param smsConfigMapper
+     * @param platformBooksMapper
+     * @param objId
+     * @param objCode
+     * @param msg
+     * @param auditUser
+     */
+    public static void sendPlatformBookSms(SystemDictDataBiz systemDictDataBiz,EmayService emayService ,SmsEmailMapper smsEmailMapper ,SmsConfigMapper smsConfigMapper,
+            PlatformBooksMapper platformBooksMapper,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();
+                PlatformBooks platformBooks = platformBooksMapper.selectById(objId);
+                if(Objects.nonNull(platformBooks)){
+                    if(objCode.equals(SmsConstants.platformBookContent.platformBookAuditSuccess)){
+                        //鎮ㄧ殑銆愯溅杈嗗叆鍥敵璇枫�戝凡缁忓鎵归�氳繃锛屽叆鍥椂闂翠负{鍏ュ洯鏃堕棿}锛岃鎻愬墠30鍒嗛挓鍓嶅線鐜板満绛惧埌銆傚璁″垝鏈夊彉锛岃鍙婃椂鑱旂郴瀹℃牳浜哄憳銆�
+                        content = content.replace("{鍏ュ洯鏃堕棿}",DateUtil.getDate(platformBooks.getArriveDate(),"yyyy-MM-dd HH:mm"));
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(platformBooks.getDriverPhone().split(",")),SmsConstants.platformBook,content,platformBooks.getId());
+                    }else if(objCode.equals(SmsConstants.platformBookContent.platformBookAuditFail) || objCode.equals(SmsConstants.platformBookContent.platformBookCancel)){
+                        //鎮ㄧ殑銆愯溅杈嗗叆鍥敵璇枫�戝凡琚┏鍥烇紝椹冲洖鍘熷洜涓猴細{椹冲洖鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯诲鏍镐汉鍛樸��
+                        content = content.replace("{椹冲洖鍘熷洜}",msg);
+                        //鎮ㄧ殑銆愯溅杈嗗叆鍥敵璇枫�戝凡琚彇娑堬紝鍙栨秷鍘熷洜涓猴細{鍙栨秷鍘熷洜}銆傚鏈夌枒闂紝璇疯仈绯诲鏍镐汉鍛樸��
+                        content = content.replace("{鍙栨秷鍘熷洜}",msg);
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                Arrays.asList(platformBooks.getDriverPhone().split(",")),SmsConstants.platformBook,content,platformBooks.getId());
+                    }else{
+                        //鎮ㄦ湁涓�鏉°�愯溅杈嗗叆鍥敵璇枫�戦渶瑕佸鐞嗭紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
+                        sendBusinessSms(emayService,smsEmailMapper,
+                                auditUser,SmsConstants.platformBook,content,platformBooks.getId());
+                    }
+                }
             }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 鐢ㄨ溅鐢宠 鐭俊閫氱煡閰嶇疆
+     * @param emayService
+     * @param smsEmailMapper
+     * @param smsConfigMapper
+     * @param platformJobMapper
+     * @param objId
+     * @param objCode
+     * @param platformName
+     */
+    public static void sendPlatformJobSms(SystemDictDataBiz systemDictDataBiz,EmayService emayService , SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
+                                          PlatformJobMapper platformJobMapper, Integer objId, String objCode, String platformName,String newPlatformName){
+        //platformJobNewJob	{杞︾墝鍙穧杞︿富鎮ㄥソ锛屾偍鏈変竴涓柊鐨勮繍杈撲换鍔★紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
+        //platformJobStopJob	{杞︾墝鍙穧杞︿富鎮ㄥソ锛屾偍鐨勮繍杈撲换鍔″凡琚彇娑堬紝璇︾粏淇℃伅璇峰墠寰�寰俊鍏紬鍙锋煡鐪嬨��
+        //platformJobCallIn	{杞︾墝鍙穧杞︿富鎮ㄥソ锛岃鍦�10鍒嗛挓鍐咃紝鍓嶅線鍥尯绛夊緟鍖虹瓑寰呭彨鍙蜂綔涓氥��
+        //platformJobSingIn	{杞︾墝鍙穧杞︿富鎮ㄥソ锛岃鍦�10鍒嗛挓鍐咃紝鍓嶅線{鏈堝彴鍚嶇О}杩涜浣滀笟銆�
+        //platformJobOverNum	{杞︾墝鍙穧杞︿富鎮ㄥソ锛屾偍鐨勪换鍔″凡杩囧彿锛岃閲嶆柊绛惧埌鎺掗槦绛夊緟銆�
+        //platformJobWorking	{杞︾墝鍙穧杞︿富鎮ㄥソ锛屾偍鐨勮溅杈嗗凡鍦▄鏈堝彴鍚嶇О}寮�濮嬩綔涓氾紝璇烽殢鏃跺叧娉ㄤ綔涓氭儏鍐点��
+        //platformJobFinish	{杞︾墝鍙穧杞︿富鎮ㄥソ锛屾偍鐨勮溅杈嗗凡鍦▄鏈堝彴鍚嶇О}瀹屾垚浣滀笟锛岃鍙婃椂椹剁鏈堝彴銆�
+        //platformJobError	{杞︾墝鍙穧杞︿富鎮ㄥソ锛屾偍鍦▄鏈堝彴鍚嶇О}鐨勪綔涓氫换鍔″凡缁忚寮傚父鎸傝捣锛岃鍙婃椂鍏虫敞鍏蜂綋鎯呭喌銆�
+        //platformJobMove	{杞︾墝鍙穧杞︿富鎮ㄥソ锛屾偍鍦▄鏈堝彴鍚嶇О}鐨勪綔涓氫换鍔″凡缁忓凡琚浆绉昏嚦{杞Щ鍚庢湀鍙板悕绉皚锛岃鍙婃椂鍏虫敞鍙彿鎯呭喌銆�
+        //platformJobTimeOut	{杞︾墝鍙穧杞︿富鎮ㄥソ锛屾偍鍦▄鏈堝彴鍚嶇О}宸插仠闈犺秴鏃讹紝璇峰敖蹇┒绂讳互鍏嶅奖鍝嶅悗缁綔涓氥��
+        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();
+                PlatformJob platformJob = platformJobMapper.selectById(objId);
+                if(Objects.nonNull(platformJob)){
+                    content = content.replace("{杞︾墝鍙穧",platformJob.getCarCodeFront());
+                    if(StringUtils.isNotBlank(platformName)&&content.indexOf("{鏈堝彴鍚嶇О}")>=Constants.ZERO){
+                        content = content.replace("{鏈堝彴鍚嶇О}",platformName);
+                    }
+                    if(StringUtils.isNotBlank(newPlatformName)&&content.indexOf("{杞Щ鍚庢湀鍙板悕绉皚")>=Constants.ZERO){
+                        content = content.replace("{杞Щ鍚庢湀鍙板悕绉皚",newPlatformName);
+                    }
+                    sendBusinessSms(emayService,smsEmailMapper,
+                            Arrays.asList(platformJob.getDrivierPhone().split(",")),SmsConstants.platformJob,content,platformJob.getId());
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+    public static void sendBusinessSms(EmayService emayService, SmsEmailMapper smsEmailMapper, List<String> phoneList, String objType, String content, Integer objId){
+        for (String phone:phoneList) {
             SmsEmail smsEmail = new SmsEmail();
             smsEmail.setIsdeleted(Constants.ZERO);
             smsEmail.setCreateDate(new Date());
             smsEmail.setStatus(Constants.ONE);
             smsEmail.setType(Constants.ZERO);
             smsEmail.setTitle("涓氬姟鐭俊");
+            smsEmail.setPhone(phone);
             smsEmail.setContent(content);
             smsEmail.setObjType(objType);
             smsEmail.setObjId(objId);
             smsEmailMapper.insert(smsEmail);
+            emayService.sendSingleSms(phone,content);
+
         }
     }
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index 183e2e4..ed0f1fc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -149,7 +149,6 @@
     @Override
     public  void syncOrgUpdateData( Date start, Date end){
     }
-
     @Override
     public  void  syncVisitData() {
     }
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 fe0be93..202db3a 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
@@ -1075,16 +1075,24 @@
             }
         }
         if(broadcastList.size()>0){
-            PlatformBroadcastLog log = dealBroadcastBiz(model,broadcastList,bNames);
+            PlatformBroadcastLog log = dealBroadcastBiz(model,broadcastList,bNames,Constants.PlatformBroadcastContent.WRONG_IN.getInfo());
             logList.add(log);
         }
         if(logList.size()>0){
             platformBroadcastLogMapper.insert(logList);
         }
     }
-    public static PlatformBroadcastLog dealBroadcastBiz(PlatformJob model, List<String> broadcastList,String bNames) {
+
+    /**
+     * 骞挎挱閫氱煡
+     * @param model
+     * @param broadcastList
+     * @param bNames
+     * @param content1
+     * @return
+     */
+    public static PlatformBroadcastLog dealBroadcastBiz(PlatformJob model, List<String> broadcastList,String bNames , String content1) {
         PlatformBroadcastLog log = new PlatformBroadcastLog();
-        String content1 =Constants.PlatformBroadcastContent.WRONG_IN.getInfo();
         content1 = content1.replace("${param}",model.getCarCodeFront());
 
         log.setCreateDate(new Date());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
new file mode 100644
index 0000000..8da7117
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
@@ -0,0 +1,129 @@
+package com.doumee.service.business.impl.thrid;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
+import com.doumee.core.tms.model.request.TmsOrderListRequest;
+import com.doumee.core.tms.model.response.TmsBaseResponse;
+import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
+import com.doumee.core.tms.model.response.TmsOrderListResponse;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.HttpsUtil;
+import com.doumee.core.wms.model.request.*;
+import com.doumee.core.wms.model.response.WmsBaseDataResponse;
+import com.doumee.core.wms.model.response.WmsBaseResponse;
+import com.doumee.core.wms.model.response.WmsInventoryDataResponse;
+import com.doumee.dao.business.*;
+import com.doumee.dao.business.model.*;
+import com.doumee.service.business.third.TmsService;
+import com.doumee.service.business.third.WmsService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+/**
+ * TMS骞冲彴瀵规帴Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+@Slf4j
+public class TmsServiceImpl implements TmsService {
+    @Autowired
+    private PlatformWmsJobMapper platformWmsJobMapper;
+    @Autowired
+    private PlatformGroupMapper platformGroupMapper;
+    @Autowired
+    private CarsMapper carsMapper;
+    @Autowired
+    private MemberMapper memberMapper;
+    @Autowired
+    private PlatformJobMapper platformJobMapper;
+    @Autowired
+    private PlatformWmsDetailMapper platformWmsDetailMapper;
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private WmsInterfaceLogMapper wmsInterfaceLogMapper;
+
+    /**
+     * 鐢靛瓙閿佷笂閿佹椂闂存帴鍙�
+     * 鏍规嵁鍚堝悓鍙凤紝鏌ヨ鐢靛瓙閿佷笂閿佹儏鍐碉紱瀛樺湪鎵归噺鏌ヨ鐨勬儏鍐碉紱
+     * @param param 鍙傛暟
+     * @return WmsBaseResponse
+     */
+    @Override
+    public TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(TmsLockStatusQueryRequest param){
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_LOCK_STATUS_URL).getCode();
+
+        TmsBaseResponse<List<TmsLockStatusQueryResponse>> response = sendHttpRequest(url,"鐢靛瓙閿佷笂閿佹椂闂存帴鍙�",JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<List<TmsLockStatusQueryResponse>>>(){});
+        return  new TmsBaseResponse<>();
+    }
+
+    /**
+     * 鍚堝悓鍒楄〃鎺ュ彛
+     * 鏍规嵁鍖哄煙ID闆嗗悎+绛涢�夋潯浠讹紙鍚堝悓鍙枫�佸埗鍗曞紑濮嬫棩鏈熴�佸埗鍗曠粨鏉熸棩鏈熴�佸彂璐у湴銆佸埌璐у湴銆佺渷浠斤紝闈為渶瑕侊級锛岃繑鍥炲悎鍚屽垪琛ㄤ俊鎭紝鎸夌収鏃堕棿鍊掑簭灞曠ず锛�
+     * @param param 鍙傛暟
+     * @return WmsBaseResponse
+     */
+    @Override
+    public  TmsBaseResponse<List<TmsOrderListResponse>> orderList(TmsOrderListRequest param){
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_LIST_URL).getCode();
+        TmsBaseResponse<List<TmsOrderListResponse>> response = sendHttpRequest(url,"鍚堝悓鍒楄〃鎺ュ彛",JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<List<TmsOrderListResponse>>>(){});
+        return  new TmsBaseResponse<>();
+    }
+
+    /**
+     * 鍙戣捣 tms鎺ュ彛璇锋眰
+     * @param url
+     * @param name
+     * @param param
+     * @param typeReference
+     * @return
+     * @param <T>
+     */
+    public  <T> TmsBaseResponse<T> sendHttpRequest(String url, String name, String param,TypeReference<TmsBaseResponse<T>> typeReference){
+        log.info("銆�"+name+"銆�================寮�濮�===="+ JSONObject.toJSONString(param));
+        if ( StringUtils.isNotBlank(url)) {
+            String res = null;
+            int success = 0;
+            try {
+                Map<String,String> headers = new HashMap<>();
+                res = HttpsUtil.postJson(url,param);
+                TmsBaseResponse result = JSONObject.parseObject(res, typeReference.getType());
+                logResult(result,name);
+                if(result!=null && result.getData() !=null ){
+
+                }else{
+                    success =1;
+                }
+                return  result;
+            }catch (Exception e){
+                success = 1;
+                log.error("銆�"+name+"銆�================澶辫触===="+ JSONObject.toJSONString(param));
+            }finally {
+            }
+        }
+        return  null;
+    }
+    private static void logResult(TmsBaseResponse res,String name) {
+        if(StringUtils.equals(res.getCode(), TmsBaseResponse.CODE_SUCCESS)){
+            log.info("銆怲MS鎺ュ彛锛�"+name+"銆�================鎴愬姛====\n"+res);
+        }else{
+            log.error("銆怲MS鎺ュ彛锛�"+name+"銆�================澶辫触====锛歕n"+ res);
+        }
+    }
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
similarity index 99%
rename from server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java
rename to server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
index fb0e58e..d02db23 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
@@ -1,4 +1,4 @@
-package com.doumee.service.business.impl.wms;
+package com.doumee.service.business.impl.thrid;
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
@@ -13,7 +13,7 @@
 import com.doumee.core.wms.model.response.WmsInventoryDataResponse;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.model.*;
-import com.doumee.service.business.WmsService;
+import com.doumee.service.business.third.WmsService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
new file mode 100644
index 0000000..a2d0154
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
@@ -0,0 +1,43 @@
+package com.doumee.service.business.third;
+
+import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
+import com.doumee.core.tms.model.request.TmsOrderListRequest;
+import com.doumee.core.tms.model.response.TmsBaseResponse;
+import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
+import com.doumee.core.tms.model.response.TmsOrderListResponse;
+import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
+import com.doumee.core.wms.model.request.WmsBaseRequest;
+import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
+import com.doumee.core.wms.model.request.WmsOutboundNoticeRequest;
+import com.doumee.core.wms.model.response.WmsBaseResponse;
+import com.doumee.dao.business.model.PlatformJob;
+
+import java.util.List;
+
+/**
+ * 鏈堝彴淇℃伅琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/06/28 10:03
+ */
+public interface TmsService {
+
+
+
+    /**
+     * 鐢靛瓙閿佷笂閿佹椂闂存帴鍙�
+     * 鏍规嵁鍚堝悓鍙凤紝鏌ヨ鐢靛瓙閿佷笂閿佹儏鍐碉紱瀛樺湪鎵归噺鏌ヨ鐨勬儏鍐碉紱
+     * @param param 鍙傛暟
+     * @return WmsBaseResponse
+     */
+    TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(TmsLockStatusQueryRequest param);
+
+    /**
+     * 鍚堝悓鍒楄〃鎺ュ彛
+     * 鏍规嵁鍖哄煙ID闆嗗悎+绛涢�夋潯浠讹紙鍚堝悓鍙枫�佸埗鍗曞紑濮嬫棩鏈熴�佸埗鍗曠粨鏉熸棩鏈熴�佸彂璐у湴銆佸埌璐у湴銆佺渷浠斤紝闈為渶瑕侊級锛岃繑鍥炲悎鍚屽垪琛ㄤ俊鎭紝鎸夌収鏃堕棿鍊掑簭灞曠ず锛�
+     * @param param 鍙傛暟
+     * @return WmsBaseResponse
+     */
+    TmsBaseResponse<List<TmsOrderListResponse>> orderList(TmsOrderListRequest param);
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WmsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/WmsService.java
similarity index 95%
rename from server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WmsService.java
rename to server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/WmsService.java
index 7f96f9b..ff305ea 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WmsService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/WmsService.java
@@ -1,4 +1,4 @@
-package com.doumee.service.business;
+package com.doumee.service.business.third;
 
 import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
 import com.doumee.core.wms.model.request.WmsBaseRequest;
@@ -10,7 +10,7 @@
 import java.util.List;
 
 /**
- * 鏈堝彴淇℃伅琛⊿ervice瀹氫箟
+ * WMS绯荤当Service瀹氫箟
  * @author 姹熻箘韫�
  * @date 2024/06/28 10:03
  */

--
Gitblit v1.9.3