From 67ff8bd1223a488542f2504db84f68d17846d149 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 25 九月 2024 15:48:19 +0800
Subject: [PATCH] 代码初始化

---
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                       |   50 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java                        |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsJob.java                  |   13 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SavePlatformWarnEventDTO.java           |   32 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java                |   20 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java                      |   26 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java          |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWarnEventCloudController.java         |   90 +++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWarnEvent.java               |   75 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/WmsJobContractVO.java                   |   29 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java                  |   16 
 server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java                                        |   14 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java                   |   11 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java           |   23 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java       |  134 +++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java                       |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java |   13 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWarnEventService.java          |  101 ++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWarnEventServiceImpl.java |  185 +++++++++++
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsJobCloudController.java            |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWarnEventMapper.java               |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java    |   47 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsJobService.java             |    3 
 24 files changed, 879 insertions(+), 41 deletions(-)

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 472077e..5e3d67b 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
@@ -44,6 +44,7 @@
     public static final String HK_ROOTORG_CODE ="HK_ROOTORG_CODE" ;
     public static final String HK_ROOTORG_NAME ="HK_ROOTORG_NAME" ;
     public static final String PLATFORM ="PLATFORM" ;
+    public static final String POWER_MINUTE ="POWER_MINUTE" ;
     public static final String RESERVATION_TOTAL_NUM ="RESERVATION_TOTAL_NUM" ;
     public static final String SIGN_IN_PLACE_LAT ="SIGN_IN_PLACE_LAT" ;
     public static final String SIGN_IN_PLACE_LNT ="SIGN_IN_PLACE_LNT" ;
@@ -745,6 +746,55 @@
 
     }
 
+    public  enum PlatformWarnEvent {
+        STOP_TIMEOUT(0, "鍋滈潬瓒呮椂","${carCode}鏈堝彴鍋滈潬瓒呮椂" ),
+        STOP_ERROR(1, "鍋滈潬閿欒","${carCode}鏈堝彴鍋滈潬閿欒" );
+
+        // 鎴愬憳鍙橀噺
+        private int key;
+        private String name;
+        private String info;
+
+        // 鏋勯�犳柟娉�
+        PlatformWarnEvent(int key, String name,String info ) {
+            this.key = key;
+            this.info = info;
+            this.name = name;
+        }
+        public static String getName(int index) {
+            for (PlatformWarnEvent c : PlatformWarnEvent.values()) {
+                if (c.getKey() == index) {
+                    return c.name;
+                }
+            }
+            return null;
+        }
+
+        public int getKey() {
+            return key;
+        }
+
+        public void setKey(int key) {
+            this.key = key;
+        }
+
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public String getInfo() {
+            return info;
+        }
+
+        public void setInfo(String info) {
+            this.info = info;
+        }
+    }
+
 
     /**
      * 鏈堝彴浣滀笟 鐘舵��
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 fbd64de..18b274a 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
@@ -1229,6 +1229,20 @@
     }
 
     /**
+     * 寰楀埌X鍒嗛挓鍚庣殑鏃堕棿(鏃堕棿鏍煎紡)
+     *
+     * @param date
+     * @param minute
+     * @return
+     */
+    public static Date getXMinuteAfterDate(Date date, int minute) {
+        Calendar now = Calendar.getInstance();
+        now.setTime(date);
+        now.set(Calendar.MINUTE, now.get(Calendar.MINUTE) + minute);
+        return now.getTime();
+    }
+
+    /**
      * 寰楀埌涓や釜鏃ユ湡涔嬮棿鐩稿樊鐨勫ぉ鏁�
      *
      * @param newDate
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
index 0b34061..150a642 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
@@ -164,7 +164,8 @@
     @PostMapping("/platformInPark")
     public ApiResponse platformInPark (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.platformInPark(jobOperateDTO);
+        PlatformJob platformJob = platformJobService.platformInPark(jobOperateDTO);
+        platformJobService.sendInPark(platformJob);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -172,7 +173,11 @@
     @PostMapping("/platformCallNumber")
     public ApiResponse platformCallNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.platformCallNumber(jobOperateDTO);
+        PlatformJob oldPlatformJob = platformJobService.findById(jobOperateDTO.getJobId());
+        PlatformJob platformJob = platformJobService.platformCallNumber(jobOperateDTO);
+        if(Constants.equalsInteger(oldPlatformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){
+            platformJobService.sendInPark(platformJob);
+        }
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -205,7 +210,8 @@
     @PostMapping("/beginWork")
     public ApiResponse beginWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.beginWork(jobOperateDTO);
+        PlatformJob platformJob = platformJobService.beginWork(jobOperateDTO);
+        platformJobService.cancelInPark(platformJob);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -214,7 +220,9 @@
     @PostMapping("/finishWork")
     public ApiResponse finishWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.finishWork(jobOperateDTO);
+        PlatformJob platformJob = platformJobService.finishWork(jobOperateDTO);
+        //涓嬪彂绂诲洯鏉冮檺
+        platformJobService.sendInPark(platformJob);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWarnEventCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWarnEventCloudController.java
new file mode 100644
index 0000000..d91afa6
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWarnEventCloudController.java
@@ -0,0 +1,90 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.model.PageData;
+import com.doumee.dao.business.model.PlatformWarnEvent;
+import com.doumee.service.business.PlatformWarnEventService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;    
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/09/25 09:41
+ */
+@Api(tags = "鏈堝彴棰勮淇℃伅")
+@RestController
+@RequestMapping("/business/platformWarnEvent")
+public class PlatformWarnEventCloudController extends BaseController {
+
+    @Autowired
+    private PlatformWarnEventService platformWarnEventService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:platformwarnevent:create")
+    public ApiResponse create(@RequestBody PlatformWarnEvent platformWarnEvent) {
+        return ApiResponse.success(platformWarnEventService.create(platformWarnEvent));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:platformwarnevent:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        platformWarnEventService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:platformwarnevent:delete")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        platformWarnEventService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:platformwarnevent:update")
+    public ApiResponse updateById(@RequestBody PlatformWarnEvent platformWarnEvent) {
+        platformWarnEventService.updateById(platformWarnEvent);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:platformwarnevent:query")
+    public ApiResponse<PageData<PlatformWarnEvent>> findPage (@RequestBody PageWrap<PlatformWarnEvent> pageWrap) {
+        return ApiResponse.success(platformWarnEventService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:platformwarnevent:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<PlatformWarnEvent> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(PlatformWarnEvent.class).export(platformWarnEventService.findPage(pageWrap).getRecords(), "鏈堝彴棰勮淇℃伅", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:platformwarnevent:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(platformWarnEventService.findById(id));
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsJobCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsJobCloudController.java
index 03d84cf..ef332b8 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsJobCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsJobCloudController.java
@@ -84,8 +84,7 @@
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
-    @RequiresPermissions("business:platformwmsjob:query")
-    public ApiResponse findById(@PathVariable Integer id) {
-        return ApiResponse.success(platformWmsJobService.findById(id));
+    public ApiResponse<PlatformWmsJob> findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(platformWmsJobService.findByDetailId(id));
     }
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
index b87d935..e9c0ba9 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
@@ -56,6 +56,9 @@
     @Autowired
     private PlatformReasonService platformReasonService;
 
+    @Autowired
+    private PlatformWmsJobService platformWmsJobService;
+
 
 
     @ApiOperation("鍏ュ洯鍘熷洜")
@@ -149,4 +152,12 @@
         return ApiResponse.success(platformJobService.lineUpDetail(lineUpDetailDTO));
     }
 
+
+    @ApiOperation("WMS杩愯緭鍗曡鎯�")
+    @GetMapping("/wmsJobDetail")
+    public ApiResponse<PlatformWmsJob> wmsJobDetail(@RequestParam Integer id) {
+        return ApiResponse.success(platformWmsJobService.findByDetailId(id));
+    }
+
+
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java
index 8be5af1..73ca495 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java
@@ -55,6 +55,9 @@
     @Autowired
     private PlatformService platformService;
 
+    @Autowired
+    private PlatformWmsJobService platformWmsJobService;
+
     @ApiOperation("鑾峰彇鏈堝彴缁勪俊鎭�")
     @PostMapping("/getPlatformGroupList")
     public ApiResponse<List<PlatformGroup>>  getPlatformGroupList (@RequestBody PlatformDataDTO platformDataDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
@@ -100,7 +103,8 @@
     @PostMapping("/platformInPark")
     public ApiResponse platformInPark (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.platformInPark(jobOperateDTO);
+        PlatformJob platformJob = platformJobService.platformInPark(jobOperateDTO);
+        platformJobService.sendInPark(platformJob);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -108,7 +112,11 @@
     @PostMapping("/platformCallNumber")
     public ApiResponse platformCallNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.platformCallNumber(jobOperateDTO);
+        PlatformJob oldPlatformJob = platformJobService.findById(jobOperateDTO.getJobId());
+        PlatformJob platformJob = platformJobService.platformCallNumber(jobOperateDTO);
+        if(Constants.equalsInteger(oldPlatformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){
+            platformJobService.sendInPark(platformJob);
+        }
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -141,7 +149,8 @@
     @PostMapping("/beginWork")
     public ApiResponse beginWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.beginWork(jobOperateDTO);
+        PlatformJob platformJob = platformJobService.beginWork(jobOperateDTO);
+        platformJobService.cancelInPark(platformJob);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -150,9 +159,18 @@
     @PostMapping("/finishWork")
     public ApiResponse finishWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.finishWork(jobOperateDTO);
+        PlatformJob platformJob = platformJobService.finishWork(jobOperateDTO);
+        //涓嬪彂绂诲洯鏉冮檺
+        platformJobService.sendInPark(platformJob);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
 
+    @ApiOperation("WMS杩愯緭鍗曡鎯�")
+    @GetMapping("/wmsJobDetail")
+    public ApiResponse<PlatformWmsJob> wmsJobDetail(@RequestParam Integer id) {
+        return ApiResponse.success(platformWmsJobService.findByDetailId(id));
+    }
+
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWarnEventMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWarnEventMapper.java
new file mode 100644
index 0000000..3180246
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWarnEventMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.PlatformWarnEvent;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/09/25 09:41
+ */
+public interface PlatformWarnEventMapper extends BaseMapper<PlatformWarnEvent> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
index f91e1ab..2574f93 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -12,6 +12,8 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import java.util.Date;
 import java.math.BigDecimal;
 import java.util.List;
@@ -188,10 +190,14 @@
     private String workCarCode;
 
     @ApiModelProperty(value = "寮�濮嬫椂闂� yyyy-MM-dd", example = "1")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     @TableField(exist = false)
     private Date queryDateStart;
 
     @ApiModelProperty(value = "缁撴潫鏃堕棿 yyyy-MM-dd", example = "1")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     @TableField(exist = false)
     private Date queryDateEnd;
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWarnEvent.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWarnEvent.java
new file mode 100644
index 0000000..143c80b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWarnEvent.java
@@ -0,0 +1,75 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 鏈堝彴棰勮淇℃伅
+ * @author 姹熻箘韫�
+ * @date 2024/09/25 09:41
+ */
+@Data
+@ApiModel("鏈堝彴棰勮淇℃伅")
+@TableName("`platform_warn_event`")
+public class PlatformWarnEvent {
+
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    @ExcelColumn(name="涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+    private Integer creator;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createDate;
+
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+    private Integer editor;
+
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    @ExcelColumn(name="鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date editDate;
+
+    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+    private Integer isdeleted;
+
+    @ApiModelProperty(value = "澶囨敞")
+    @ExcelColumn(name="澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鏈堝彴涓婚敭", example = "1")
+    @ExcelColumn(name="鏈堝彴涓婚敭")
+    private Integer platformId;
+
+    @ApiModelProperty(value = "棰勮鏍囬")
+    @ExcelColumn(name="棰勮鏍囬")
+    private String title;
+
+    @ApiModelProperty(value = "杞︾墝鍙�")
+    @ExcelColumn(name="杞︾墝鍙�")
+    private String carCode;
+
+    @ApiModelProperty(value = "浜嬩欢鍐呭")
+    @ExcelColumn(name="浜嬩欢鍐呭")
+    private String eventContent;
+
+    @ApiModelProperty(value = "浠诲姟涓婚敭", example = "1")
+    @ExcelColumn(name="浠诲姟涓婚敭")
+    private Integer platformJobId;
+
+    @ApiModelProperty(value = "棰勮绫诲瀷 0 =  浣滀笟瓒呮椂 锛�1=鍋滈潬閿欒", example = "1")
+    @ExcelColumn(name="棰勮绫诲瀷 0 =  浣滀笟瓒呮椂 锛�1=鍋滈潬閿欒")
+    private Integer eventType;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsJob.java
index f3b22db..d85176d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsJob.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsJob.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.dao.business.vo.WmsJobContractVO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -9,6 +10,8 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -109,11 +112,21 @@
     @ApiModelProperty(value = "鍚堝悓鍙穈")
     @ExcelColumn(name="鍚堝悓鍙穈")
     private String contractNum;
+
     @ApiModelProperty(value = "鏄惁鏂版暟鎹甡")
     @TableField(exist = false)
     private int isNew;
 
+    @ApiModelProperty(value = "鎬绘暟閲�")
+    @TableField(exist = false)
+    private BigDecimal ioQty;
+
+
     @ApiModelProperty(value = "鏈堝彴_WMS浣滀笟閫氱煡鍗曟槑缁�")
     @TableField(exist = false)
     private List<PlatformWmsDetail> platformWmsDetailList;
+
+    @ApiModelProperty(value = "鍚堝悓鍒楄〃")
+    @TableField(exist = false)
+    private List<WmsJobContractVO> wmsJobContractVOList;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java
index 4a62ca8..ed90548 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java
@@ -67,12 +67,12 @@
     @ExcelColumn(name="杞︾墝鍙�")
     private String carCode;
 
-    @ApiModelProperty(value = "娴峰悍鏍囪瘑", example = "1")
+    @ApiModelProperty(value = "娴峰悍鏍囪瘑 棰勭害鏍囪瘑 reserveOrderNo", example = "1")
     @ExcelColumn(name="娴峰悍鏍囪瘑")
-    private Integer hkId;
+    private String hkId;
 
-    @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝� 2鍚屾澶辫触", example = "1")
-    @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝� 2鍚屾澶辫触")
+    @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝� 2鍚屾澶辫触 3宸插彇娑�", example = "1")
+    @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝� 2鍚屾澶辫触 3宸插彇娑�")
     private Integer hkStatus;
 
     @ApiModelProperty(value = "娴峰悍鏈�杩戝悓姝ユ椂闂�")
@@ -91,6 +91,10 @@
     @ExcelColumn(name="鍋滆溅搴撴捣搴风紪鐮�")
     private String parkHkId;
 
+    @ApiModelProperty(value = "涓氬姟绫诲瀷锛�0=璁垮鎶ュ锛�1=鏈堝彴鐗╂祦杞�", example = "1")
+    @ExcelColumn(name="涓氬姟绫诲瀷锛�0=璁垮鎶ュ锛�1=鏈堝彴鐗╂祦杞�")
+    private Integer objType;
+
     @ApiModelProperty(value = "鍋滆溅鍦哄悕绉�", example = "1")
     @TableField(exist = false)
     private String parksName;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/WmsJobContractVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/WmsJobContractVO.java
new file mode 100644
index 0000000..d42123f
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/WmsJobContractVO.java
@@ -0,0 +1,29 @@
+package com.doumee.dao.business.vo;
+
+import com.doumee.dao.business.model.Approve;
+import com.doumee.dao.business.model.Platform;
+import com.doumee.dao.business.model.PlatformWmsDetail;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/5/23 14:56
+ */
+@Data
+public class WmsJobContractVO {
+
+    @ApiModelProperty(value = "鍚堝悓鍙�")
+    private String contractCode;
+
+    @ApiModelProperty(value = "鏀惰揣鍦�")
+    private String address;
+
+    @ApiModelProperty(value = "鏄庣粏淇℃伅")
+    private List<PlatformWmsDetail> platformWmsDetailList;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SavePlatformWarnEventDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SavePlatformWarnEventDTO.java
new file mode 100644
index 0000000..804f323
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SavePlatformWarnEventDTO.java
@@ -0,0 +1,32 @@
+package com.doumee.dao.web.reqeust;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鏈堝彴棰勮淇℃伅
+ * @author 姹熻箘韫�
+ * @date 2024/09/25 09:41
+ */
+@Data
+public class SavePlatformWarnEventDTO {
+
+    @ApiModelProperty(value = "鏈堝彴涓婚敭", example = "1")
+    private Integer platformId;
+
+    @ApiModelProperty(value = "杞︾墝鍙�")
+    private String carCode;
+
+    @ApiModelProperty(value = "浠诲姟涓婚敭", example = "1")
+    private Integer platformJobId;
+
+    @ApiModelProperty(value = "棰勮绫诲瀷 0 =  浣滀笟瓒呮椂 锛�1=鍋滈潬閿欒", example = "1")
+    private Integer eventType;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
index d82cd9f..0100842 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -137,13 +137,25 @@
      * 閫氱煡鍏ュ洯
      * @param jobOperateDTO
      */
-    void platformInPark(JobOperateDTO jobOperateDTO);
+    PlatformJob platformInPark(JobOperateDTO jobOperateDTO);
+
+    /**
+     * 涓嬪彂鍏ュ洯鏉冮檺
+     * @param platformJob
+     */
+    void sendInPark(PlatformJob platformJob);
+
+    /**
+     * 鍙栨秷鍏ュ洯鏉冮檺
+     * @param platformJob
+     */
+    void cancelInPark(PlatformJob platformJob);
 
     /**
      * 鏈堝彴鍙彿
      * @param jobOperateDTO
      */
-    void platformCallNumber(JobOperateDTO jobOperateDTO);
+    PlatformJob platformCallNumber(JobOperateDTO jobOperateDTO);
 
     /**
      * 杞Щ鏈堝彴
@@ -167,7 +179,7 @@
      * 鎵嬪姩寮�濮嬩綔涓�
      * @param jobOperateDTO
      */
-    void beginWork(JobOperateDTO jobOperateDTO);
+    PlatformJob beginWork(JobOperateDTO jobOperateDTO);
 
     /**
      * 鏈堝彴鐩告満 寮�濮嬩綔涓�
@@ -179,7 +191,7 @@
      * 瀹屾垚浣滀笟
      * @param jobOperateDTO
      */
-    void finishWork(JobOperateDTO jobOperateDTO);
+    PlatformJob finishWork(JobOperateDTO jobOperateDTO);
 
     /**
      * 鎵嬪姩鎺堟潈杞﹁締绂诲満
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWarnEventService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWarnEventService.java
new file mode 100644
index 0000000..4c917e9
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWarnEventService.java
@@ -0,0 +1,101 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.PlatformWarnEvent;
+import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
+
+import java.util.List;
+
+/**
+ * 鏈堝彴棰勮淇℃伅Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/09/25 09:41
+ */
+public interface PlatformWarnEventService {
+
+    /**
+     * 鍒涘缓
+     * 
+     * @param platformWarnEvent 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(PlatformWarnEvent platformWarnEvent);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param platformWarnEvent 瀹炰綋瀵硅薄
+     */
+    void delete(PlatformWarnEvent platformWarnEvent);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param platformWarnEvent 瀹炰綋瀵硅薄
+     */
+    void updateById(PlatformWarnEvent platformWarnEvent);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param platformWarnEvents 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<PlatformWarnEvent> platformWarnEvents);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return PlatformWarnEvent
+     */
+    PlatformWarnEvent findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param platformWarnEvent 瀹炰綋瀵硅薄
+     * @return PlatformWarnEvent
+     */
+    PlatformWarnEvent findOne(PlatformWarnEvent platformWarnEvent);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param platformWarnEvent 瀹炰綋瀵硅薄
+     * @return List<PlatformWarnEvent>
+     */
+    List<PlatformWarnEvent> findList(PlatformWarnEvent platformWarnEvent);
+  
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<PlatformWarnEvent>
+     */
+    PageData<PlatformWarnEvent> findPage(PageWrap<PlatformWarnEvent> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param platformWarnEvent 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(PlatformWarnEvent platformWarnEvent);
+
+    void savePlatformWarnEvent(SavePlatformWarnEventDTO savePlatformWarnEventDTO);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsJobService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsJobService.java
index c2b5330..e1b7fcd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsJobService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsJobService.java
@@ -94,4 +94,7 @@
      * @return long
      */
     long count(PlatformWmsJob platformWmsJob);
+
+    PlatformWmsJob findByDetailId(Integer id);
+
 }
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 3d112dd..0d6f813 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
@@ -7,6 +7,8 @@
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.CarChargeAddRequest;
+import com.doumee.core.haikang.model.param.request.ParkReservationAddRequest;
+import com.doumee.core.haikang.model.param.respose.ParkReservationAddResponse;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
@@ -1467,16 +1469,24 @@
                         visitPark.setStartTime(visits.getStarttime());
                         visitPark.setEndTime(visits.getEndtime());
                         visitPark.setParkHkId(parks.getHkId());
+                        visitPark.setObjType(Constants.ZERO);
 
-                        CarChargeAddRequest param = new CarChargeAddRequest();
-                        param.setPlateNo(visitPark.getCarCode());
-                        param.setParkSyscode(visitPark.getParkHkId());
-                        param.setStartTime(Objects.isNull(visitPark.getStartTime())?DateUtil.getDate(new Date(),"yyyy-MM-dd"):DateUtil.getShortTimeToNull(visitPark.getStartTime()));
-                        param.setEndTime(Objects.isNull(visitPark.getEndTime())?"2999-12-31":DateUtil.getShortTimeToNull(visitPark.getEndTime()));
-                        BaseResponse response = HKService.carChargeAddtion(param);
+                        ParkReservationAddRequest request = new ParkReservationAddRequest();
+                        request.setPlateNo(visitPark.getCarCode());
+                        request.setParkSyscode(visitPark.getParkHkId());
+                        request.setPhoneNo(visits.getPhone());
+                        request.setOwner(visits.getName());
+                        request.setAllowTimes(Constants.ONE+"");
+                        request.setIsCharge(Constants.ONE+"");
+                        request.setStartTime(Objects.isNull(visitPark.getStartTime())?DateUtil.getISO8601Timestamp2(new Date()):DateUtil.getISO8601Timestamp2(visitPark.getStartTime()));
+                        request.setEndTime(Objects.isNull(visitPark.getEndTime())?"2999-12-31T00:00:00+08:00":DateUtil.getISO8601Timestamp2(visitPark.getEndTime()));
+                        BaseResponse response =  HKService.parkReservationAddition(request);
+
                         visitPark.setHkDate(new Date());
                         if(response!=null
                                 && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                            ParkReservationAddResponse parkReservationAddResponse = (ParkReservationAddResponse) response.getData();
+                            visitPark.setHkId(parkReservationAddResponse.getReserveOrderNo());
                             visitPark.setHkStatus(Constants.ONE);
                             visitPark.setRemark("鍖呮湡鎴愬姛");
                         }else{
@@ -1486,6 +1496,7 @@
                             sendStatus = false;
                         }
                         parkBookList.add(visitPark);
+
                     }
                     visitParkMapper.insert(parkBookList);
                 }
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 11d0117..771f5c1 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
@@ -4,6 +4,13 @@
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.CarChargeAddRequest;
+import com.doumee.core.haikang.model.param.request.ParkReservationAddRequest;
+import com.doumee.core.haikang.model.param.request.ParkReservationDelRequest;
+import com.doumee.core.haikang.model.param.respose.ParkReservationAddResponse;
+import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
@@ -82,6 +89,12 @@
 
     @Autowired
     private PlatformShowParamMapper platformShowParamMapper;
+
+    @Autowired
+    private ParksMapper parksMapper;
+
+    @Autowired
+    private VisitParkMapper visitParkMapper;
 
 
     @Override
@@ -728,7 +741,7 @@
      */
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public void platformInPark(JobOperateDTO jobOperateDTO){
+    public PlatformJob platformInPark(JobOperateDTO jobOperateDTO){
         if(Objects.isNull(jobOperateDTO)
                 || Objects.isNull(jobOperateDTO.getJobId())
                 || Objects.isNull(jobOperateDTO.getPlatformId())){
@@ -767,17 +780,110 @@
         platformJob.setEditDate(new Date());
         platformJobMapper.updateById(platformJob);
 
-        if(Constants.equalsInteger(platformJob.getType(),Constants.TWO)
-        || Constants.equalsInteger(platformJob.getType(),Constants.THREE)
-        || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
-            //TODO 涓嬪彂鍏ュ洯鏉冮檺
-
-
-        }
         //瀛樺偍鎿嶄綔鏃ュ織
         savePlatformLog(Constants.PlatformJobLogType.IN_WAIT.getKey(),oldPlatformJob,platformJob,
                 Constants.PlatformJobLogType.IN_WAIT.getInfo());
 
+        return platformJob;
+    }
+
+
+    @Override
+    public void sendInPark(PlatformJob platformJob){
+        if(Constants.equalsInteger(platformJob.getType(),Constants.TWO)
+                || Constants.equalsInteger(platformJob.getType(),Constants.THREE)
+                || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
+            //鏌ヨ褰撳墠鍚敤鐨勫仠杞﹀満
+            List<Parks> parksList = parksMapper.selectList(new QueryWrapper<Parks>()
+                    .lambda()
+                    .isNotNull(Parks::getHkId)
+                    .eq(Parks::getIsdeleted,Constants.ZERO));
+            List<VisitPark> visitParkList = new ArrayList<>();
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(parksList)){
+                Boolean sendStatus = true;
+                if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(parksList)){
+                    for (Parks parks:parksList) {
+                        VisitPark visitPark = new VisitPark();
+                        visitPark.setIsdeleted(Constants.ZERO);
+                        visitPark.setCreateDate(new Date());
+                        visitPark.setVisitApplyId(platformJob.getId().toString());
+                        visitPark.setCarCode(platformJob.getCarCodeFront());
+                        visitPark.setParkId(parks.getId().toString());
+                        visitPark.setStartTime(new Date());
+                        visitPark.setEndTime(DateUtil.getXMinuteAfterDate(visitPark.getStartTime(),Integer.valueOf(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.POWER_MINUTE).getCode())));
+                        visitPark.setParkHkId(parks.getHkId());
+                        visitPark.setObjType(Constants.ONE);
+
+                        ParkReservationAddRequest request = new ParkReservationAddRequest();
+                        request.setPlateNo(visitPark.getCarCode());
+                        request.setParkSyscode(visitPark.getParkHkId());
+                        request.setPhoneNo(platformJob.getDrivierPhone());
+                        request.setOwner(platformJob.getDriverName());
+                        request.setAllowTimes(Constants.ONE+"");
+                        request.setIsCharge(Constants.ONE+"");
+                        request.setStartTime(Objects.isNull(visitPark.getStartTime())?DateUtil.getISO8601Timestamp2(new Date()):DateUtil.getISO8601Timestamp2(visitPark.getStartTime()));
+                        request.setEndTime(Objects.isNull(visitPark.getEndTime())?"2999-12-31T00:00:00+08:00":DateUtil.getISO8601Timestamp2(visitPark.getEndTime()));
+                        BaseResponse response =  HKService.parkReservationAddition(request);
+
+                        visitPark.setHkDate(new Date());
+                        if(response!=null
+                                && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                            ParkReservationAddResponse parkReservationAddResponse = (ParkReservationAddResponse) response.getData();
+                            visitPark.setHkId(parkReservationAddResponse.getReserveOrderNo());
+                            visitPark.setHkStatus(Constants.ONE);
+                            visitPark.setRemark("鍖呮湡鎴愬姛");
+                        }else{
+                            visitPark.setHkStatus(Constants.TWO);
+                            visitPark.setRemark("鍖呮湡澶辫触~");
+                            //涓嬪彂澶辫触  鏍囪涓讳笟鍔$姸鎬佷负涓嬪彂澶辫触
+                            sendStatus = false;
+                        }
+                        visitParkList.add(visitPark);
+
+                    }
+                    visitParkMapper.insert(visitParkList);
+                    platformJob.setInHkdate(new Date());
+                    if(sendStatus){
+                        platformJob.setInHkstatus(Constants.TWO);
+                    }else{
+                        platformJob.setInHkstatus(Constants.THREE);
+                    }
+                    platformJobMapper.updateById(platformJob);
+                }
+
+            }
+        }
+    }
+
+
+    @Override
+    public void cancelInPark(PlatformJob platformJob){
+        if(Constants.equalsInteger(platformJob.getType(),Constants.TWO)
+                || Constants.equalsInteger(platformJob.getType(),Constants.THREE)
+                || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
+
+            List<VisitPark> visitParkList = visitParkMapper.selectList(new QueryWrapper<VisitPark>().lambda()
+                    .eq(VisitPark::getVisitApplyId,platformJob.getId())
+                    .eq(VisitPark::getObjType,Constants.ONE)
+                    .eq(VisitPark::getHkStatus,Constants.ONE)
+                    .isNotNull(VisitPark::getHkId)
+                    .apply(" END_TIME > now() ")
+            );
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(visitParkList)){
+                for (VisitPark visitPark:visitParkList) {
+                    ParkReservationDelRequest param = new ParkReservationDelRequest();
+                    param.setReserveOrderNo(visitPark.getHkId());
+                    BaseResponse response =  HKService.parkReservationDeletion(param);
+                    if(response!=null
+                            && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                        visitPark.setHkStatus(Constants.THREE);
+                        visitPark.setIsdeleted(Constants.ONE);
+                        visitPark.setEditDate(new Date());
+                        visitParkMapper.updateById(visitPark);
+                    }
+                }
+            }
+        }
     }
 
     /**
@@ -785,7 +891,7 @@
      */
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public void platformCallNumber(JobOperateDTO jobOperateDTO){
+    public PlatformJob platformCallNumber(JobOperateDTO jobOperateDTO){
         if(Objects.isNull(jobOperateDTO)
                 || Objects.isNull(jobOperateDTO.getJobId())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -836,6 +942,7 @@
         //瀛樺偍鎿嶄綔鏃ュ織
         savePlatformLog(Constants.PlatformJobLogType.CALLED.getKey(),oldPlatformJob,platformJob,
                 Constants.PlatformJobLogType.CALLED.getInfo().replace("{data}",platform.getName()));
+        return platformJob;
     }
 
 
@@ -958,7 +1065,7 @@
      */
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public void beginWork(JobOperateDTO jobOperateDTO){
+    public PlatformJob beginWork(JobOperateDTO jobOperateDTO){
         if(Objects.isNull(jobOperateDTO)
                 || Objects.isNull(jobOperateDTO.getJobId())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -989,6 +1096,8 @@
         //瀛樺偍鎿嶄綔鏃ュ織
         savePlatformLog(Constants.PlatformJobLogType.WORKING.getKey(),oldPlatformJob,platformJob,
                 Constants.PlatformJobLogType.WORKING.getInfo().replace("{data}",platform.getName()));
+
+        return platformJob;
     }
 
 
@@ -997,7 +1106,7 @@
      */
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public void finishWork(JobOperateDTO jobOperateDTO){
+    public PlatformJob finishWork(JobOperateDTO jobOperateDTO){
         if(Objects.isNull(jobOperateDTO)
                 || Objects.isNull(jobOperateDTO.getJobId())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -1024,9 +1133,10 @@
             //TODO 澶栧崗杞﹁璐� 鏌ヨTMS 鐢靛瓙閿佹儏鍐�
 
         }else if(Constants.equalsInteger(platformJob.getType(),Constants.ONE) || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
-            //TODO 澶栧崗杞﹀嵏璐� 鎴栬�� 甯傚叕鍙歌溅鍗歌揣 鍒欐牴鎹换鍔℃儏鍐佃繘琛屼笅鍙戠鍥潈闄�
+            //TODO 澶栧崗杞﹀嵏璐� 鎴栬�� 甯傚叕鍙歌溅鍗歌揣 鍒欐牴鎹换鍔℃儏鍐�
 
         }
+        return platformJob;
     }
 
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
index 5ccb79f..6f2a9c0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
@@ -342,7 +342,7 @@
                     .le(platform.getQueryDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(platform.getQueryDateEnd()))
             );
             //鏌ヨ2鏃ユ湡鐩稿樊澶╂暟
-            Integer sumDays = DateUtil.daysBetweenDates(platform.getQueryDateStart(),platform.getQueryDateEnd());
+            Integer sumDays = DateUtil.daysBetweenDates(platform.getQueryDateEnd(),platform.getQueryDateStart())+1;
             for (Platform bean:platformList) {
                 List<PlatformJob> beanJobList = platformJobList.stream().filter(i->Constants.equalsInteger(i.getPlatformId(),bean.getId())).collect(Collectors.toList());
                 bean.setStopCount(beanJobList.size());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWarnEventServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWarnEventServiceImpl.java
new file mode 100644
index 0000000..ebab17e
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWarnEventServiceImpl.java
@@ -0,0 +1,185 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.PlatformWarnEventMapper;
+import com.doumee.dao.business.model.PlatformWarnEvent;
+import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
+import com.doumee.service.business.PlatformWarnEventService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 鏈堝彴棰勮淇℃伅Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2024/09/25 09:41
+ */
+@Service
+public class PlatformWarnEventServiceImpl implements PlatformWarnEventService {
+
+    @Autowired
+    private PlatformWarnEventMapper platformWarnEventMapper;
+
+    @Override
+    public Integer create(PlatformWarnEvent platformWarnEvent) {
+        platformWarnEventMapper.insert(platformWarnEvent);
+        return platformWarnEvent.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        platformWarnEventMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(PlatformWarnEvent platformWarnEvent) {
+        UpdateWrapper<PlatformWarnEvent> deleteWrapper = new UpdateWrapper<>(platformWarnEvent);
+        platformWarnEventMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        platformWarnEventMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(PlatformWarnEvent platformWarnEvent) {
+        platformWarnEventMapper.updateById(platformWarnEvent);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<PlatformWarnEvent> platformWarnEvents) {
+        if (CollectionUtils.isEmpty(platformWarnEvents)) {
+            return;
+        }
+        for (PlatformWarnEvent platformWarnEvent: platformWarnEvents) {
+            this.updateById(platformWarnEvent);
+        }
+    }
+
+    @Override
+    public PlatformWarnEvent findById(Integer id) {
+        return platformWarnEventMapper.selectById(id);
+    }
+
+    @Override
+    public PlatformWarnEvent findOne(PlatformWarnEvent platformWarnEvent) {
+        QueryWrapper<PlatformWarnEvent> wrapper = new QueryWrapper<>(platformWarnEvent);
+        return platformWarnEventMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<PlatformWarnEvent> findList(PlatformWarnEvent platformWarnEvent) {
+        QueryWrapper<PlatformWarnEvent> wrapper = new QueryWrapper<>(platformWarnEvent);
+        return platformWarnEventMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<PlatformWarnEvent> findPage(PageWrap<PlatformWarnEvent> pageWrap) {
+        IPage<PlatformWarnEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<PlatformWarnEvent> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        if (pageWrap.getModel().getId() != null) {
+            queryWrapper.lambda().eq(PlatformWarnEvent::getId, pageWrap.getModel().getId());
+        }
+        if (pageWrap.getModel().getCreator() != null) {
+            queryWrapper.lambda().eq(PlatformWarnEvent::getCreator, pageWrap.getModel().getCreator());
+        }
+        if (pageWrap.getModel().getCreateDate() != null) {
+            queryWrapper.lambda().ge(PlatformWarnEvent::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.lambda().le(PlatformWarnEvent::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+        }
+        if (pageWrap.getModel().getEditor() != null) {
+            queryWrapper.lambda().eq(PlatformWarnEvent::getEditor, pageWrap.getModel().getEditor());
+        }
+        if (pageWrap.getModel().getEditDate() != null) {
+            queryWrapper.lambda().ge(PlatformWarnEvent::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.lambda().le(PlatformWarnEvent::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+        }
+        if (pageWrap.getModel().getIsdeleted() != null) {
+            queryWrapper.lambda().eq(PlatformWarnEvent::getIsdeleted, pageWrap.getModel().getIsdeleted());
+        }
+        if (pageWrap.getModel().getRemark() != null) {
+            queryWrapper.lambda().eq(PlatformWarnEvent::getRemark, pageWrap.getModel().getRemark());
+        }
+        if (pageWrap.getModel().getPlatformId() != null) {
+            queryWrapper.lambda().eq(PlatformWarnEvent::getPlatformId, pageWrap.getModel().getPlatformId());
+        }
+        if (pageWrap.getModel().getTitle() != null) {
+            queryWrapper.lambda().eq(PlatformWarnEvent::getTitle, pageWrap.getModel().getTitle());
+        }
+        if (pageWrap.getModel().getCarCode() != null) {
+            queryWrapper.lambda().eq(PlatformWarnEvent::getCarCode, pageWrap.getModel().getCarCode());
+        }
+        if (pageWrap.getModel().getEventContent() != null) {
+            queryWrapper.lambda().eq(PlatformWarnEvent::getEventContent, pageWrap.getModel().getEventContent());
+        }
+        if (pageWrap.getModel().getPlatformJobId() != null) {
+            queryWrapper.lambda().eq(PlatformWarnEvent::getPlatformJobId, pageWrap.getModel().getPlatformJobId());
+        }
+        if (pageWrap.getModel().getEventType() != null) {
+            queryWrapper.lambda().eq(PlatformWarnEvent::getEventType, pageWrap.getModel().getEventType());
+        }
+        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(platformWarnEventMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(PlatformWarnEvent platformWarnEvent) {
+        QueryWrapper<PlatformWarnEvent> wrapper = new QueryWrapper<>(platformWarnEvent);
+        return platformWarnEventMapper.selectCount(wrapper);
+    }
+
+
+    @Override
+    public void savePlatformWarnEvent(SavePlatformWarnEventDTO savePlatformWarnEventDTO){
+        if(Objects.isNull(savePlatformWarnEventDTO)
+             || Objects.isNull(savePlatformWarnEventDTO.getEventType())
+             || StringUtils.isBlank(savePlatformWarnEventDTO.getCarCode())
+        ){
+            return;
+        }
+        PlatformWarnEvent platformWarnEvent = new PlatformWarnEvent();
+        platformWarnEvent.setCreateDate(new Date());
+        platformWarnEvent.setIsdeleted(Constants.ZERO);
+        platformWarnEvent.setPlatformId(savePlatformWarnEventDTO.getPlatformId());
+        Constants.PlatformWarnEvent cPl = Constants.PlatformWarnEvent.STOP_TIMEOUT;
+        if(Constants.equalsInteger(savePlatformWarnEventDTO.getEventType(),Constants.ZERO)){
+            if(Objects.isNull(savePlatformWarnEventDTO.getPlatformJobId())){
+                return;
+            }
+            platformWarnEvent.setPlatformJobId(savePlatformWarnEventDTO.getPlatformJobId());
+        }else  if(Constants.equalsInteger(savePlatformWarnEventDTO.getEventType(),Constants.ONE)){
+            cPl = Constants.PlatformWarnEvent.STOP_ERROR;
+        }
+        platformWarnEvent.setTitle(cPl.getName());
+        platformWarnEvent.setEventContent(cPl.getInfo().replace("${carCode}",savePlatformWarnEventDTO.getCarCode()));
+        platformWarnEventMapper.insert(platformWarnEvent);
+    }
+
+
+
+}
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 eaf7f3a..b06acf9 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
@@ -1,10 +1,15 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.PlatformWmsDetailMapper;
 import com.doumee.dao.business.PlatformWmsJobMapper;
+import com.doumee.dao.business.model.PlatformWmsDetail;
 import com.doumee.dao.business.model.PlatformWmsJob;
+import com.doumee.dao.business.vo.WmsJobContractVO;
 import com.doumee.service.business.PlatformWmsJobService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -14,7 +19,9 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 鏈堝彴_WMS浣滀笟閫氱煡鍗曡鏁版嵁Service瀹炵幇
@@ -26,6 +33,9 @@
 
     @Autowired
     private PlatformWmsJobMapper platformWmsJobMapper;
+
+    @Autowired
+    private PlatformWmsDetailMapper platformWmsDetailMapper;
 
     @Override
     public Integer create(PlatformWmsJob platformWmsJob) {
@@ -72,6 +82,41 @@
         return platformWmsJobMapper.selectById(id);
     }
 
+
+
+    @Override
+    public PlatformWmsJob findByDetailId(Integer id) {
+        PlatformWmsJob platformWmsJob = platformWmsJobMapper.selectOne(new QueryWrapper<PlatformWmsJob>().lambda().eq(PlatformWmsJob::getJobId,id).last(" limit 1 "));
+        if(Objects.isNull(platformWmsJob)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌杩愬崟淇℃伅");
+        }
+        List<PlatformWmsDetail> platformWmsDetailList = platformWmsDetailMapper.selectList(new QueryWrapper<PlatformWmsDetail>()
+                .lambda().eq(PlatformWmsDetail::getJobId,id));
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformWmsDetailList)){
+            platformWmsJob.setIoQty(
+                    platformWmsDetailList.stream().map(m->m.getIoQty()).reduce(BigDecimal.ZERO,BigDecimal::add)
+            );
+            //鑾峰彇鎵�鏈夊悎鍚屽彿
+            List<String> ioCodeList = platformWmsDetailList.stream().map(m->m.getIocode()).collect(Collectors.toList());
+            Set<String> ioCodeSet = new HashSet<String>(ioCodeList);
+            List<WmsJobContractVO> wmsJobContractVOList = new ArrayList<>();
+            for (String ioCode:ioCodeSet) {
+                WmsJobContractVO wmsJobContractVO = new WmsJobContractVO();
+                wmsJobContractVO.setContractCode(ioCode);
+                wmsJobContractVO.setAddress(platformWmsJob.getRepertotyAddress());
+                wmsJobContractVO.setPlatformWmsDetailList(
+                        platformWmsDetailList.stream().filter(i->i.getIocode().equals(ioCode)).collect(Collectors.toList())
+                );
+                wmsJobContractVOList.add(wmsJobContractVO);
+            }
+
+            platformWmsJob.setWmsJobContractVOList(wmsJobContractVOList);
+        }else{
+            platformWmsJob.setIoQty(BigDecimal.ZERO);
+        }
+        return platformWmsJob;
+    }
+
     @Override
     public PlatformWmsJob findOne(PlatformWmsJob platformWmsJob) {
         QueryWrapper<PlatformWmsJob> wrapper = new QueryWrapper<>(platformWmsJob);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
index 0f2803f..7a7ba92 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
@@ -103,7 +103,6 @@
         }catch (Exception e){
 
         }
-
     }
 
     @Override
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 b10d537..ba580d2 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
@@ -21,9 +21,11 @@
 import com.doumee.dao.business.join.VisitsJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
 import com.doumee.service.business.DeviceEventService;
 import com.doumee.service.business.InterfaceLogService;
 import com.doumee.service.business.MemberService;
+import com.doumee.service.business.impl.PlatformWarnEventServiceImpl;
 import com.github.yulichang.interfaces.MPJBaseJoin;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.hikvision.artemis.sdk.config.ArtemisConfig;
@@ -82,6 +84,8 @@
     private PlatformEventMapper platformEventMapper;
     @Autowired
     private PlatformLogMapper platformLogMapper;
+    @Autowired
+    private PlatformWarnEventServiceImpl platformWarnEventService;
     /**
      * 娴峰悍闂ㄧ浜嬩欢鎺ㄩ��
      * @param param
@@ -1026,7 +1030,14 @@
      * @param status
      */
     private void dealCarsInErrorPlatformBiz( PlatformJob model,EventPlatformCarsStatusInfoRequest status) {
-        //TODO-----------------澶勭悊杞﹁締杩涘叆閿欒鏈堝彴涓氬姟閫昏緫
+        //澶勭悊杞﹁締杩涘叆閿欒鏈堝彴涓氬姟閫昏緫
+        SavePlatformWarnEventDTO savePlatformWarnEventDTO = new SavePlatformWarnEventDTO();
+        savePlatformWarnEventDTO.setPlatformJobId(model.getId());
+        savePlatformWarnEventDTO.setPlatformId(model.getPlatformId());
+        savePlatformWarnEventDTO.setCarCode(model.getCarCodeFront());
+        savePlatformWarnEventDTO.setEventType(Constants.PlatformWarnEvent.STOP_ERROR.getKey());
+        platformWarnEventService.savePlatformWarnEvent(savePlatformWarnEventDTO);
+
         List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
                 .eq(PlatformDevice::getPlatformId,model.getPlatformId())
                 .eq(PlatformDevice::getIsdeleted,Constants.ZERO));

--
Gitblit v1.9.3