From 6b9a7ae981171c1bb6ff6c7d6d0c0103ed1f9348 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 30 八月 2024 17:18:40 +0800
Subject: [PATCH] 代码初始化

---
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                        |   25 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java                     |   31 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/WaterByMonthResponse.java           |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java                           |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataListResponse.java       |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/CarNumByStatusResponse.java         |   11 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java            |   10 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java        |  606 ++++++++++++++++++++++----
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java            |    9 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java      |   62 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataInfoResponse.java       |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java      |   18 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java                     |   41 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java               |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/GasByMonthRequest.java               |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java   |   95 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java                       |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java                 |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java                         |    7 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java                      |   24 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java                 |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java                 |   33 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java                       |   52 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java               |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java           |   37 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java                    |    9 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformOrderNumByDateRequest.java   |    3 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java                   |  113 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java                      |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ConfirmTaskDTO.java                      |   29 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java                    |    6 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java                    |   17 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java    |    9 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformDataDTO.java                     |   25 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformOrderNumByDateResponse.java |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/GasByMonthResponse.java             |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java             |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java        |   32 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java              |   13 
 39 files changed, 1,182 insertions(+), 187 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 69bfdaa..76f1b7f 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
@@ -746,17 +746,18 @@
      * 0浠诲姟鍒涘缓 1鍙告満纭浠诲姟 2鍙告満绛惧埌 3鍏ュ洯绛夊緟 4鏈堝彴鍙彿 5寮�濮嬩綔涓� 6浣滀笟瀹屾垚 7鏈堝彴杞Щ 8浠诲姟鎸傝捣 9涓嬪彂鎺堟潈绂诲洯 10绂诲洯
      */
     public  enum PlatformJobLogType {
-        CREATE(0, "浠诲姟鍒涘缓","浠诲姟鍒涘缓" ),
-        CONFIRM_TASK(1, "鍙告満纭浠诲姟","鍙告満纭浠诲姟" ),
-        SIGN(2, "鍙告満绛惧埌","鍙告満绛惧埌"),
-        IN_WAIT(3, "鍏ュ洯绛夊緟","鍏ュ洯绛夊緟" ),
-        CALLED(4, "鏈堝彴鍙彿","鏈堝彴鍙彿" ),
-        WORKING(5, "寮�濮嬩綔涓�","寮�濮嬩綔涓�" ),
-        DONE(6, "浣滀笟瀹屾垚 ","浣滀笟瀹屾垚 " ),
-        TRANSFERING(7, "鏈堝彴杞Щ","鏈堝彴杞Щ" ),
-        EXCEPTION(8, "浠诲姟鎸傝捣","浠诲姟鎸傝捣" ),
+        CREATE(0, "浠诲姟鍒涘缓","鍏ュ洯棰勭害鎴愬姛" ),
+        CONFIRM_TASK(1, "鍙告満纭浠诲姟","宸插畬鎴愭椂闂寸‘璁�" ),
+        SIGN(2, "鍙告満绛惧埌","鎺掗槦绛夊緟鍙彿"),
+        IN_WAIT(3, "鍏ュ洯绛夊緟","鍙彿鍏ュ洯绛夊緟" ),
+        CALLED(4, "鏈堝彴鍙彿","{data}鍙彿" ),
+        WORKING(5, "寮�濮嬩綔涓�","杩涘叆{data}寮�濮嬩綔涓�" ),
+        DONE(6, "浣滀笟瀹屾垚 ","鏈堝彴浣滀笟瀹屾垚锛岄┒绂绘湀鍙�" ),
+        TRANSFERING(7, "鏈堝彴杞Щ","{data}鍙戣捣鏈堝彴杞Щ" ),
+        EXCEPTION(8, "浠诲姟鎸傝捣","浣滀笟寮傚父琚寕璧�" ),
         AUTHED_LEAVE(9, "涓嬪彂鎺堟潈绂诲洯","涓嬪彂鎺堟潈绂诲洯" ),
-        LEAVED(10, "宸茬鍥� ","宸茬鍥� " ),
+        LEAVED(10, "宸茬鍥� ","杞﹁締浠巤data}绂诲満 " ),
+        OVER_NUMBER(11, "宸茶繃鍙�","瓒呮椂鏈埌鎸囧畾鏈堝彴鑷姩杩囧彿" ),
         ;
 
         // 鎴愬憳鍙橀噺
@@ -811,8 +812,8 @@
     public  enum PlatformJobStatus {
         WAIT_CONFIRM(0, "寰呯‘璁�","寰呯‘璁�" ),
         WART_SIGN_IN(1, "寰呯鍒�","寰呯鍒�" ),
-        WAIT_CALL(2, "宸茬鍒�","宸茬鍒�"), //绛夊緟鍙彿鍏ュ洯
-        IN_WAIT(3, "鍏ュ洯绛夊緟","鍏ュ洯绛夊緟" ),//宸插叆鍥� 鏈彨鍙疯繘鍏ユ湀鍙�
+        WAIT_CALL(2, "宸茬鍒�","宸茬鍒�"),
+        IN_WAIT(3, "鍏ュ洯绛夊緟","鍏ュ洯绛夊緟" ),
         CALLED(4, "宸插彨鍙�","宸插彨鍙�" ),
         WORKING(5, "浣滀笟涓�","浣滀笟涓�" ),
         DONE(6, "浣滀笟瀹屾垚 ","浣滀笟瀹屾垚 " ),
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 3ac0fde..5acfa7d 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
@@ -9,8 +9,15 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.Platform;
+import com.doumee.dao.business.model.PlatformGroup;
+import com.doumee.dao.business.model.PlatformJob;
+import com.doumee.dao.web.reqeust.JobOperateDTO;
+import com.doumee.dao.web.reqeust.PlatformDataDTO;
+import com.doumee.dao.web.response.PlatformWorkVO;
+import com.doumee.service.business.PlatformGroupService;
 import com.doumee.service.business.PlatformJobService;
 import com.doumee.service.business.PlatformService;
+import com.doumee.service.business.PlatformShowParamService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,7 +30,7 @@
  * @author 姹熻箘韫�
  * @since 2024/04/28 16:06
  */
-@Api(tags = "鏈堝彴淇℃伅琛�")
+@Api(tags = "銆愬悗绔�戞湀鍙颁俊鎭〃")
 @RestController
 @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/platform")
 public class PlatformCloudController extends BaseController {
@@ -32,7 +39,13 @@
     private PlatformService platformService;
 
     @Autowired
+    private PlatformGroupService platformGroupService;
+
+    @Autowired
     private PlatformJobService platformJobService;
+
+    @Autowired
+    private PlatformShowParamService platformShowParamService;
 
     @PreventRepeat
     @ApiOperation("鏂板缓")
@@ -103,4 +116,102 @@
     public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         return ApiResponse.success(platformService.findById(id));
     }
+
+
+
+
+    @ApiOperation("鑾峰彇鏈堝彴缁勪俊鎭�")
+    @PostMapping("/getPlatformGroupList")
+    public ApiResponse<List<PlatformGroup>>  getPlatformGroupList (@RequestBody PlatformDataDTO platformDataDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        return ApiResponse.success(platformGroupService.getAllPlatformGroup(platformDataDTO,getLoginUser(token)));
+    }
+
+    @ApiOperation("鑾峰彇鏈堝彴浠诲姟淇℃伅")
+    @GetMapping("/getPlatformWorkData")
+    public ApiResponse<PlatformWorkVO>  getPlatformWorkData (@RequestParam Integer platformId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        return ApiResponse.success(platformJobService.getPlatformWorkVOById(platformId));
+    }
+
+    @ApiOperation("鏇存柊鏈堝彴閰嶇疆淇℃伅")
+    @GetMapping("/updUserPlatformConfig")
+    public ApiResponse  updUserPlatformConfig (@RequestParam List<Integer> ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        platformShowParamService.updUserConfig(ids,getLoginUser(token));
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+
+    @ApiOperation("杞﹁締鎺掗槦鎯呭喌")
+    @PostMapping("/platformLineUpPage")
+    public ApiResponse<PageData<PlatformJob>> platformLineUpPage (@RequestBody PageWrap<PlatformJob> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(platformJobService.platformCallList(pageWrap));
+    }
+
+
+    @ApiOperation("鍙彿鍒楄〃")
+    @PostMapping("/platformCallList")
+    public ApiResponse<PageData<PlatformJob>> platformCallList (@RequestBody PageWrap<PlatformJob> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(platformJobService.platformCallList(pageWrap));
+    }
+
+
+    @ApiOperation("鍙彿鍏ュ洯")
+    @PostMapping("/platformInPark")
+    public ApiResponse platformInPark (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.platformInPark(jobOperateDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+    @ApiOperation("鏈堝彴鍙彿")
+    @PostMapping("/platformCallNumber")
+    public ApiResponse platformCallNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.platformCallNumber(jobOperateDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+
+    @ApiOperation("杞Щ鏈堝彴")
+    @PostMapping("/platformMove")
+    public ApiResponse platformMove (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.platformMove(jobOperateDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+    @ApiOperation("鏈堝彴杩囧彿")
+    @PostMapping("/platformOverNumber")
+    public ApiResponse platformOverNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.platformOverNumber(jobOperateDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+    @ApiOperation("寮傚父鎸傝捣")
+    @PostMapping("/platformErr")
+    public ApiResponse platformErr (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.platformErr(jobOperateDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+    @ApiOperation("鎵嬪姩寮�濮嬩綔涓�")
+    @PostMapping("/beginWork")
+    public ApiResponse beginWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.beginWork(jobOperateDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+
+    @ApiOperation("瀹屾垚浣滀笟")
+    @PostMapping("/finishWork")
+    public ApiResponse finishWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.finishWork(jobOperateDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+
+
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
index a614144..c4a02f9 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
@@ -9,8 +9,11 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.PlatformGroup;
+import com.doumee.dao.web.reqeust.PlatformDataDTO;
 import com.doumee.service.business.PlatformGroupService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -92,4 +95,14 @@
     public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         return ApiResponse.success(platformGroupService.findById(id));
     }
+
+    @ApiOperation("鑾峰彇鏈堝彴缁勪俊鎭�")
+    @PostMapping("/getPlatformGroupList")
+    @CloudRequiredPermission("business:platformgroup:query")
+    public ApiResponse<List<PlatformGroup>>  getPlatformGroupList (@RequestBody PlatformDataDTO platformDataDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        return ApiResponse.success(platformGroupService.getAllPlatformGroup(platformDataDTO,getLoginUser(token)));
+    }
+
+
+
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
index a1af0d7..686dbf0 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
@@ -7,8 +7,13 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.openapi.request.*;
 import com.doumee.dao.openapi.response.*;
+import com.doumee.service.business.PlatformJobService;
+import com.doumee.service.business.PlatformLogService;
+import com.doumee.service.business.PlatformService;
+import com.doumee.service.business.PlatformWaterGasService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+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;
@@ -26,54 +31,66 @@
 @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/hk/api")
 public class HkOpenApiController extends BaseController {
 
+    @Autowired
+    private PlatformService platformService;
+
+    @Autowired
+    private PlatformLogService platformLogService;
+
+    @Autowired
+    private PlatformJobService platformJobService;
+
+    @Autowired
+    private PlatformWaterGasService platformWaterGasService;
+
     @PreventRepeat
     @ApiOperation("銆愮敤姘撮噺銆戞湰鏈堛�佷笂鏈堝拰鍘诲勾鍚屾湀")
     @PostMapping("/water/dataByMonth")
     @LoginNoRequired
     public ApiResponse<WaterByMonthResponse> waterDataByMonth(@RequestBody WaterByMonthRequest param) {
-        return ApiResponse.success(new WaterByMonthResponse());
+        return ApiResponse.success(platformWaterGasService.waterDataByMonth(param));
     }
     @PreventRepeat
     @ApiOperation("銆愮敤姘旈噺銆戞湰鏈堛�佷笂鏈堝拰鍘诲勾鍚屾湀")
     @PostMapping("/gas/dataByMonth")
     @LoginNoRequired
     public ApiResponse<GasByMonthResponse> gasDataByMonth(@RequestBody GasByMonthRequest param) {
-        return ApiResponse.success(new GasByMonthResponse());
+        return ApiResponse.success(platformWaterGasService.gasDataByMonth(param));
     }
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞寜澶╃粺璁¤繍鍗曡姹傚弬鏁�")
     @PostMapping("/platform/orderNumByDate")
     @LoginNoRequired
     public ApiResponse<PlatformOrderNumByDateResponse> orderNumByDate(@RequestBody PlatformOrderNumByDateRequest param) {
-        return ApiResponse.success(new PlatformOrderNumByDateResponse());
+        return ApiResponse.success(platformJobService.orderNumByDate(param));
     }
     @PreventRepeat
-    @ApiOperation("銆愭湀鍙般�戞湀鍙颁釜鐘舵�佹暟閲忕粺璁�")
+    @ApiOperation("銆愭湀鍙般�戞湀鍙扮姸鎬佹暟閲忕粺璁�")
     @PostMapping("/platform/totalNumByStatus")
     @LoginNoRequired
     public ApiResponse<PlatformNumByStatusResponse> totalNumByStatus(@RequestBody PlatformNumByStatusRequest param) {
-        return ApiResponse.success(new PlatformNumByStatusResponse());
+        return ApiResponse.success(platformService.getPlatformNumByStatusResponse());
     }
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞湀鍙板綋鍓嶄綔涓氫俊鎭垪琛�")
     @PostMapping("/platform/workingDataList")
     @LoginNoRequired
     public ApiResponse<List<PlatformDataListResponse>> platformWorkingDataList(@RequestBody PlatformDataListRequest param) {
-        return ApiResponse.success(new ArrayList<>());
+        return ApiResponse.success(platformJobService.platformWorkingDataList(param));
     }
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞湀鍙颁綔涓氳鎯呬俊鎭�")
     @PostMapping("/platform/workDataInfo")
     @LoginNoRequired
     public ApiResponse<PlatformDataInfoResponse> platformWorkingDataList(@RequestBody PlatformDataInfoRequest param) {
-        return ApiResponse.success(new PlatformDataInfoResponse());
+        return ApiResponse.success(platformJobService.platformWorkingDataList(param));
     }
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戝綋鍓嶈溅杈嗙姸鎬佹暟閲忕粺璁�")
     @PostMapping("/platform/carStatusNum")
     @LoginNoRequired
     public ApiResponse<CarNumByStatusResponse> carStatusNum(@RequestBody CarNumByStatusRequest param) {
-        return ApiResponse.success(new CarNumByStatusResponse());
+        return ApiResponse.success(platformJobService.carStatusNum(param));
     }
 
     @PreventRepeat
@@ -81,21 +98,21 @@
     @PostMapping("/platform/carLogsList")
     @LoginNoRequired
     public ApiResponse<List<CarLogsListResponse>> carLogsList(@RequestBody CarLogsListRequest param) {
-        return ApiResponse.success(new ArrayList<>());
+        return ApiResponse.success(platformLogService.getCarLogsListResponse(param));
     }
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞帓闃熼槦鍒楀垪琛ㄩ泦鍚�")
     @PostMapping("/platform/queueList")
     @LoginNoRequired
-    public ApiResponse< PlatformQueuingListResponse> carLogsList(@RequestBody PlatformQueuingListRequest param) {
-        return ApiResponse.success(new PlatformQueuingListResponse());
+    public ApiResponse<PlatformQueuingListResponse> queueList(@RequestBody PlatformQueuingListRequest param) {
+        return ApiResponse.success(platformJobService.queueList(param));
     }
 
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戦璀︿簨浠堕泦鍚堝垪琛�")
     @PostMapping("/platform/warningEventList")
     @LoginNoRequired
-    public ApiResponse<List<CarLogsListResponse>> carLogsList(@RequestBody PlatformWarnEventListRequest param) {
+    public ApiResponse<List<PlatformWarnEventListResponse>> warningEventList(@RequestBody PlatformWarnEventListRequest param) {
         return ApiResponse.success(new ArrayList<>());
     }
 }
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 688be9f..b87d935 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
@@ -87,6 +87,16 @@
         return ApiResponse.success(platformBooksService.apply(platformBooksApplyDTO));
     }
 
+
+    @ApiOperation("鐗╂祦杞﹂绾︿慨鏀�")
+    @PostMapping("/applyEdit")
+    public ApiResponse<Integer> applyEdit (@RequestBody PlatformBooksApplyDTO platformBooksApplyDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        LoginUserInfo loginUserInfo = getLoginUser(token);
+        platformBooksApplyDTO.setUserId(loginUserInfo.getMemberId());
+        platformBooksApplyDTO.setDriverId(loginUserInfo.getMemberId());
+        return ApiResponse.success(platformBooksService.edit(platformBooksApplyDTO));
+    }
+
     @ApiOperation("鐗╂祦杞﹂绾﹁褰�")
     @PostMapping("/page")
     public ApiResponse<PageData<PlatformBooks>> findPage (@RequestBody PageWrap<PlatformBooks> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
@@ -111,6 +121,13 @@
     }
 
     /******************************************************鍙告満浠诲姟鎺ュ彛************************************************************************/
+    @ApiOperation("浠诲姟纭")
+    @PostMapping("/confirmTask")
+    public ApiResponse  confirmTask (@RequestBody ConfirmTaskDTO confirmTaskDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        confirmTaskDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.confirmTask(confirmTaskDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
 
     @ApiOperation("浠诲姟绛惧埌")
     @PostMapping("/signIn")
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 bee4a37..8be5af1 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
@@ -12,6 +12,7 @@
 import com.doumee.dao.web.reqeust.*;
 import com.doumee.dao.web.response.DriverHomeVO;
 import com.doumee.dao.web.response.LineUpVO;
+import com.doumee.dao.web.response.PlatformWorkVO;
 import com.doumee.service.business.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -55,17 +56,20 @@
     private PlatformService platformService;
 
     @ApiOperation("鑾峰彇鏈堝彴缁勪俊鎭�")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "queryType", dataType = "Integer", value = "0=鍏ㄩ儴鏈堝彴锛�1=鍚敤鏈堝彴 2=閰嶇疆鏄剧ず鏈堝彴", required = false)
-    })
-    @GetMapping("/getPlatformGroupList")
-    public ApiResponse<List<PlatformGroup>>  getPlatformGroupList (@RequestParam Integer queryType, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        return ApiResponse.success(platformGroupService.getAllPlatformGroup(queryType,getLoginUser(token)));
+    @PostMapping("/getPlatformGroupList")
+    public ApiResponse<List<PlatformGroup>>  getPlatformGroupList (@RequestBody PlatformDataDTO platformDataDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        return ApiResponse.success(platformGroupService.getAllPlatformGroup(platformDataDTO,getLoginUser(token)));
+    }
+
+    @ApiOperation("鑾峰彇鏈堝彴浠诲姟淇℃伅")
+    @GetMapping("/getPlatformWorkData")
+    public ApiResponse<PlatformWorkVO>  getPlatformWorkData (@RequestParam Integer platformId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        return ApiResponse.success(platformJobService.getPlatformWorkVOById(platformId));
     }
 
     @ApiOperation("鏇存柊鏈堝彴閰嶇疆淇℃伅")
-    @PostMapping("/updUserPlatformConfig")
-    public ApiResponse  updUserPlatformConfig (@RequestBody List<Integer> ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+    @GetMapping("/updUserPlatformConfig")
+    public ApiResponse  updUserPlatformConfig (@RequestParam List<Integer> ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         platformShowParamService.updUserConfig(ids,getLoginUser(token));
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
@@ -73,22 +77,38 @@
     @ApiOperation("淇敼绂佸惎鐢ㄧ姸鎬�")
     @PostMapping("/updPlatformStatus")
     public ApiResponse  updPlatformStatus (@RequestBody Platform platform, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        platform.setLoginUserInfo(getLoginUser(token));
         platformService.updateStatusById(platform);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
     @ApiOperation("杞﹁締鎺掗槦鎯呭喌")
     @PostMapping("/platformLineUpPage")
-    public ApiResponse<PageData<PlatformJob>> platformLineUpPage (@RequestBody PageWrap<PlatformJob> pageWrap) {
-        return ApiResponse.success(platformJobService.findPage(pageWrap));
+    public ApiResponse<PageData<PlatformJob>> platformLineUpPage (@RequestBody PageWrap<PlatformJob> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(platformJobService.platformCallList(pageWrap));
     }
 
+
+    @ApiOperation("鍙彿鍒楄〃")
+    @PostMapping("/platformCallList")
+    public ApiResponse<PageData<PlatformJob>> platformCallList (@RequestBody PageWrap<PlatformJob> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(platformJobService.platformCallList(pageWrap));
+    }
+
+
+    @ApiOperation("鍙彿鍏ュ洯")
+    @PostMapping("/platformInPark")
+    public ApiResponse platformInPark (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.platformInPark(jobOperateDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
 
     @ApiOperation("鏈堝彴鍙彿")
     @PostMapping("/platformCallNumber")
     public ApiResponse platformCallNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.platformInPark(jobOperateDTO);
+        platformJobService.platformCallNumber(jobOperateDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -97,7 +117,7 @@
     @PostMapping("/platformMove")
     public ApiResponse platformMove (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.platformInPark(jobOperateDTO);
+        platformJobService.platformMove(jobOperateDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -105,7 +125,7 @@
     @PostMapping("/platformOverNumber")
     public ApiResponse platformOverNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.platformInPark(jobOperateDTO);
+        platformJobService.platformOverNumber(jobOperateDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -113,7 +133,7 @@
     @PostMapping("/platformErr")
     public ApiResponse platformErr (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.platformInPark(jobOperateDTO);
+        platformJobService.platformErr(jobOperateDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -121,7 +141,7 @@
     @PostMapping("/beginWork")
     public ApiResponse beginWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.platformInPark(jobOperateDTO);
+        platformJobService.beginWork(jobOperateDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -130,7 +150,7 @@
     @PostMapping("/finishWork")
     public ApiResponse finishWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         jobOperateDTO.setLoginUserInfo(getLoginUser(token));
-        platformJobService.platformInPark(jobOperateDTO);
+        platformJobService.finishWork(jobOperateDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
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 7f6c4b6..fafc0aa 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
@@ -4,6 +4,7 @@
 import com.doumee.core.annotation.excel.ExcelColumn;
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.LoginUserModel;
+import com.doumee.dao.web.response.PlatformWorkVO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -183,4 +184,10 @@
     @ApiModelProperty(value = "浣滀笟鐘舵�侊細0=绌洪棽锛�1=浣滀笟涓�")
     @TableField(exist = false)
     private Integer workStatus;
+
+
+
+    @ApiModelProperty(value = "鏈堝彴浣滀笟鏁版嵁")
+    @TableField(exist = false)
+    private PlatformWorkVO platformWorkVO;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
index 364d303..a82275a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
@@ -81,4 +81,13 @@
     @ApiModelProperty(value = "鏈堝彴缁勪笅鐨勬湀鍙�")
     @TableField(exist = false)
     private List<Platform> platformList;
+
+
+    @ApiModelProperty(value = "浣滀笟涓帓闃熻溅杈�", example = "1")
+    @TableField(exist = false)
+    private List<PlatformJob> workJobList;
+
+    @ApiModelProperty(value = "宸茬鍒版帓闃熻溅杈�", example = "1")
+    @TableField(exist = false)
+    private List<PlatformJob> signJobList;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
index f3e24c0..cce09ae 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -274,13 +274,21 @@
     @TableField(exist = false)
     private String finishTimeStr;
 
-    @ApiModelProperty(value = "鍏宠仈鏈堝彴缁勭紪鐮侊紙鍏宠仈platform_group琛級", example = "1")
-    @TableField(exist = false)
-    private Integer groupId;
-
     @ApiModelProperty(value = "浣滀笟鏈堝彴鍚嶇О")
     @TableField(exist = false)
     private String platformName ;
+
+    @ApiModelProperty(value = "wms涓氬姟涓婚敭")
+    @TableField(exist = false)
+    private Integer wmsId ;
+
+    @ApiModelProperty(value = "鏈堝彴缁勭被鍨嬶細0瀹夋嘲鐗╂祦瑁呰揣 1瀹夋嘲鐗╂祦鍗歌揣 2甯傚叕鍙稿嵏璐�")
+    @TableField(exist = false)
+    private Integer groupType ;
+
+    @ApiModelProperty(value = "鎵胯繍鍟�")
+    @TableField(exist = false)
+    private String carrierName ;
 
     @ApiModelProperty(value = "璺濈绛惧埌鐐硅窛绂�")
     @TableField(exist = false)
@@ -302,6 +310,14 @@
     @TableField(exist = false)
     private  PlatformWmsJob platformWmsJob;
 
+    @ApiModelProperty(value = "鏀惰揣鍦帮紙鐩殑鍦帮級")
+    @TableField(exist = false)
+    private String repertotyAddress;
+
+    @ApiModelProperty(value = "鍙彿绫诲瀷锛�1=鍙彿鍏ュ洯 锛� 2=鏈堝彴鍙彿 锛� 3=鎺掗槦鎯呭喌", example = "1")
+    @TableField(exist = false)
+    private Integer callType;
+
     public void dealTime(){
         if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey())
                 || Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
index dc52393..5ed449e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
@@ -91,7 +91,7 @@
     @ExcelColumn(name="鍙傛暟3")
     private String param3;
 
-    @ApiModelProperty(value = "鍙傛暟4")
+    @ApiModelProperty(value = "鍙傛暟4 杞︾墝鐓�")
     @ExcelColumn(name="鍙傛暟4")
     private String param4;
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java
index a801e0d..ec20891 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java
@@ -60,8 +60,8 @@
     @ExcelColumn(name="鎺掑簭鐮�")
     private Integer sortnum;
 
-    @ApiModelProperty(value = "绫诲瀷 0鐢ㄧ數 1鐢ㄧ數 2娌硅��", example = "1")
-    @ExcelColumn(name="绫诲瀷 0鐢ㄧ數 1鐢ㄧ數 2娌硅��")
+    @ApiModelProperty(value = "绫诲瀷 0鐢ㄦ按 1鐢ㄦ皵 2鐢ㄦ补", example = "1")
+    @ExcelColumn(name="绫诲瀷 0鐢ㄦ按 1鐢ㄦ皵 2鐢ㄦ补")
     private Integer type;
 
     @ApiModelProperty(value = "鏁伴噺 (鐢ㄧ數椤匡紝鐢ㄧ數搴︼紱 娌硅�桳锛�", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/GasByMonthRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/GasByMonthRequest.java
index 23c3552..0131957 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/GasByMonthRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/GasByMonthRequest.java
@@ -1,11 +1,12 @@
 package com.doumee.dao.openapi.request;
 
-import com.doumee.core.utils.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
+
 /**
  * Created by IntelliJ IDEA.
  *
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformOrderNumByDateRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformOrderNumByDateRequest.java
index ee8d53b..8277dd6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformOrderNumByDateRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformOrderNumByDateRequest.java
@@ -1,11 +1,12 @@
 package com.doumee.dao.openapi.request;
 
-import com.doumee.core.utils.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
+
 /**
  * Created by IntelliJ IDEA.
  *
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java
index 556e6ea..816c6db 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java
@@ -1,6 +1,5 @@
 package com.doumee.dao.openapi.request;
 
-import com.doumee.core.utils.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModel;
@@ -9,6 +8,7 @@
 import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.NotBlank;
+import java.util.Date;
 
 /**
  * Created by IntelliJ IDEA.
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/CarNumByStatusResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/CarNumByStatusResponse.java
index 3c36936..8b0a5d3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/CarNumByStatusResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/CarNumByStatusResponse.java
@@ -13,13 +13,12 @@
 @Data
 @ApiModel("銆愭湀鍙般�戝綋鍓嶈溅杈嗙姸鎬佺粺璁℃暟閲忚繑鍥炲弬鏁�")
 public class CarNumByStatusResponse {
-    @ApiModelProperty(value = "鎺掗槦涓暟鎺�", example = "1")
-    private int queuingNum;
-
+    @ApiModelProperty(value = "鎺掗槦涓暟閲�", example = "1")
+    private Long queuingNum;
     @ApiModelProperty(value = "宸茶繘鍦烘暟閲�", example = "1")
-    private int inNum;
+    private Long inNum;
     @ApiModelProperty(value = "浣滀笟涓暟閲�", example = "1")
-    private int workingNum;
+    private Long workingNum;
     @ApiModelProperty(value = "宸茬鍦烘暟閲�", example = "1")
-    private int doneNum;
+    private Long doneNum;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/GasByMonthResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/GasByMonthResponse.java
index b0da793..9706276 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/GasByMonthResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/GasByMonthResponse.java
@@ -20,9 +20,9 @@
     private BigDecimal currentMonth;
 
     @ApiModelProperty(value = "涓婁釜鏈堢敤姘旈噺锛堢珛鏂圭背锛�", example = "1")
-    private String lastMonth;
+    private BigDecimal lastMonth;
 
     @ApiModelProperty(value = "鍘诲勾鍚屾湀鐢ㄦ皵閲忥紙绔嬫柟绫筹級", example = "1")
-    private String lastYearMonth;
+    private BigDecimal lastYearMonth;
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataInfoResponse.java
index 1e8bef3..cf2adf0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataInfoResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataInfoResponse.java
@@ -21,6 +21,7 @@
     private String hkId;
     @ApiModelProperty(value = "鏈堝彴鍚嶇О")
     private String name;
+
     @ApiModelProperty(value = "鎵胯繍鍗曞彿")
     private String orderCode;
     @ApiModelProperty(value = "浣滀笟杞﹁締")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataListResponse.java
index 0ac0001..4d6ee20 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataListResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataListResponse.java
@@ -22,7 +22,7 @@
     @ApiModelProperty(value = "鏈堝彴鍚嶇О")
     private String name;
     @ApiModelProperty(value = "褰撳墠浣滀笟鏃堕暱", example = "1")
-    private int workTime;
+    private Long workTime;
     @ApiModelProperty(value = "浣滀笟杞﹁締")
     private String carCode;
     @ApiModelProperty(value = "浣滀笟绫诲瀷锛�0=鍏ュ簱 1鍑哄簱", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java
index 5112567..f2f3b8e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java
@@ -13,11 +13,14 @@
 @Data
 @ApiModel("銆愭湀鍙般�戞寜鐘舵�佺粺璁℃湀鍙版暟閲�")
 public class PlatformNumByStatusResponse {
+
     @ApiModelProperty(value = "浣跨敤涓暟閲�", example = "1")
-    private int usingNum;
+    private int usingNum = 0;
 
     @ApiModelProperty(value = "绌洪棽鏁伴噺", example = "1")
-    private int idleNum;
+    private int idleNum = 0;
+
     @ApiModelProperty(value = "鍋滅敤鏁伴噺", example = "1")
-    private int forbiddenNum;
+    private int forbiddenNum = 0;
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformOrderNumByDateResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformOrderNumByDateResponse.java
index fa34c24..6286d6e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformOrderNumByDateResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformOrderNumByDateResponse.java
@@ -17,9 +17,10 @@
 @Data
 @ApiModel("銆愭湀鍙般�戞寜澶╃粺璁¤繍鍗曡繑鍥炲弬鏁�")
 public class PlatformOrderNumByDateResponse {
+
     @ApiModelProperty(value = "杩愬崟瀹屾垚閲�", example = "1")
-    private int doneNum;
+    private Long doneNum;
 
     @ApiModelProperty(value = "杩愬崟鎬婚噺", example = "1")
-    private int totalNum;
+    private Long totalNum;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/WaterByMonthResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/WaterByMonthResponse.java
index 9793420..1fa7ed4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/WaterByMonthResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/WaterByMonthResponse.java
@@ -21,9 +21,9 @@
     private BigDecimal currentMonth;
 
     @ApiModelProperty(value = "涓婁釜鏈堢敤姘撮噺锛堝惃锛�", example = "1")
-    private String lastMonth;
+    private BigDecimal lastMonth;
 
     @ApiModelProperty(value = "鍘诲勾鍚屾湀鐢ㄦ按閲忥紙鍚級", example = "1")
-    private String lastYearMonth;
+    private BigDecimal lastYearMonth;
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ConfirmTaskDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ConfirmTaskDTO.java
new file mode 100644
index 0000000..e68fbf6
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ConfirmTaskDTO.java
@@ -0,0 +1,29 @@
+package com.doumee.dao.web.reqeust;
+
+import com.doumee.core.model.LoginUserInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/8/15 10:49
+ */
+@Data
+public class ConfirmTaskDTO {
+
+    @ApiModelProperty(value = "璁板綍涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍒板満鏃ユ湡")
+    private Date arriveDate;
+
+    @ApiModelProperty(value = "鍚庤溅鐗岀収")
+    private String  carCodeBack;
+
+    @ApiModelProperty(value = "鐢ㄦ埛", hidden = true)
+    private LoginUserInfo loginUserInfo;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformDataDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformDataDTO.java
new file mode 100644
index 0000000..ffd05e0
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformDataDTO.java
@@ -0,0 +1,25 @@
+package com.doumee.dao.web.reqeust;
+
+import com.doumee.core.model.LoginUserInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/12/7 11:19
+ */
+@Data
+@Api(tags = "鏈堝彴淇℃伅鏌ヨ涓氬姟" )
+public class PlatformDataDTO {
+
+    @ApiModelProperty(value = "鏌ヨ鏈堝彴绫诲瀷锛�0=鍏ㄩ儴鏈堝彴锛�1=閰嶇疆鏄剧ず鏈堝彴")
+    private Integer queryType;
+
+    @ApiModelProperty(value = "鏄惁鏌ヨ鏈堝彴浠诲姟鏁版嵁锛�0=鍚�;1=鏄� 鍚庡彴浣跨敤锛屽墠绔叆0")
+    private Integer queryData;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java
index 430b316..5b3e933 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java
@@ -7,6 +7,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 @Data
@@ -25,5 +26,7 @@
     @ApiModelProperty(value = "鍥尯瀵艰鍥�")
     private String reservationMap;
 
+    @ApiModelProperty(value = "绛惧埌闄愬埗璺濈")
+    private BigDecimal signDistance;
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java
index 3c7b6c7..c59b0ea 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java
@@ -2,6 +2,7 @@
 
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.dao.business.model.Platform;
+import com.doumee.dao.business.model.PlatformGroup;
 import com.doumee.dao.business.model.PlatformJob;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
@@ -20,7 +21,7 @@
 public class LineUpVO {
 
     @ApiModelProperty(value = "鏈堝彴缁勪俊鎭�")
-    private List<Platform> platformList;
+    private List<PlatformGroup> platformGroupList;
 
     @ApiModelProperty(value = "鐢ㄦ埛", hidden = true)
     private LoginUserInfo loginUserInfo;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java
new file mode 100644
index 0000000..7fcd0c9
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.web.response;
+
+import com.doumee.dao.business.model.PlatformJob;
+import com.doumee.dao.system.model.Multifile;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@ApiModel("鏈堝彴浠诲姟鏁版嵁")
+public class PlatformWorkVO {
+
+    @ApiModelProperty(value = "浠诲姟鍒楄〃")
+    private List<PlatformJob> platformJobList;
+
+    @ApiModelProperty(value = "浣滀笟鏁伴噺")
+    private Integer workNum = 0;
+
+    @ApiModelProperty(value = "宸插彨鍙锋暟閲�")
+    private Integer callNum = 0;
+
+    @ApiModelProperty(value = "绛夊緟鏁伴噺")
+    private Integer waitNum = 0;
+
+    @ApiModelProperty(value = "寮傚父鏁伴噺")
+    private Integer exceptionNum  = 0;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java
index 8931030..0a8dd08 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java
@@ -130,4 +130,10 @@
      */
     void revoke(RevokeDTO revokeDTO, LoginUserInfo loginUserInfo);
 
+    /**
+     * 淇敼棰勭害鐢宠
+     * @param platformBooksApplyDTO
+     * @return
+     */
+    Integer edit(PlatformBooksApplyDTO platformBooksApplyDTO);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
index 5f98d89..1b843fc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
@@ -4,6 +4,9 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.PlatformGroup;
+import com.doumee.dao.web.reqeust.PlatformDataDTO;
+import com.doumee.dao.web.response.PlatformWorkVO;
+
 import java.util.List;
 
 /**
@@ -100,12 +103,11 @@
 
     /**
      * 鑾峰彇鏈堝彴缁勪俊鎭�
-     * @param queryType
+     * @param platformDataDTO
      * @param loginUserInfo
      * @return
      */
-    List<PlatformGroup> getAllPlatformGroup(Integer queryType, LoginUserInfo loginUserInfo);
-
+    List<PlatformGroup> getAllPlatformGroup(PlatformDataDTO platformDataDTO, LoginUserInfo loginUserInfo);
 
 
 
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 a842e2d..483569a 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
@@ -5,12 +5,12 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Platform;
 import com.doumee.dao.business.model.PlatformJob;
-import com.doumee.dao.web.reqeust.JobDetailDTO;
-import com.doumee.dao.web.reqeust.JobOperateDTO;
-import com.doumee.dao.web.reqeust.LineUpDetailDTO;
-import com.doumee.dao.web.reqeust.SignInDTO;
+import com.doumee.dao.openapi.request.*;
+import com.doumee.dao.openapi.response.*;
+import com.doumee.dao.web.reqeust.*;
 import com.doumee.dao.web.response.DriverHomeVO;
 import com.doumee.dao.web.response.LineUpVO;
+import com.doumee.dao.web.response.PlatformWorkVO;
 
 import java.util.List;
 
@@ -97,6 +97,12 @@
     PageData<PlatformJob> findPage(PageWrap<PlatformJob> pageWrap);
 
     /**
+     * 鍙彿鍒楄〃鏁版嵁
+     * @param pageWrap
+     * @return
+     */
+    PageData<PlatformJob> platformCallList(PageWrap<PlatformJob> pageWrap);
+    /**
      * 鏉′欢缁熻
      *
      * @param platformJob 瀹炰綋瀵硅薄
@@ -182,4 +188,23 @@
      */
     List<Platform> getPlatformList(Integer groupId, LoginUserInfo loginUserInfo);
 
+    void confirmTask(ConfirmTaskDTO confirmTaskDTO);
+
+    /**
+     * 鑾峰彇鏈堝彴浠诲姟鏁版嵁
+     * @param platformId
+     * @return
+     */
+    PlatformWorkVO getPlatformWorkVOById(Integer platformId);
+
+
+    PlatformOrderNumByDateResponse orderNumByDate(PlatformOrderNumByDateRequest param);
+
+    List<PlatformDataListResponse> platformWorkingDataList(PlatformDataListRequest param);
+
+    PlatformDataInfoResponse platformWorkingDataList(PlatformDataInfoRequest param);
+
+    CarNumByStatusResponse carStatusNum(CarNumByStatusRequest param);
+
+    PlatformQueuingListResponse queueList(PlatformQueuingListRequest param);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java
index 6ba2888..e892949 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java
@@ -3,6 +3,9 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.PlatformLog;
+import com.doumee.dao.openapi.request.CarLogsListRequest;
+import com.doumee.dao.openapi.response.CarLogsListResponse;
+
 import java.util.List;
 
 /**
@@ -94,4 +97,6 @@
      * @return long
      */
     long count(PlatformLog platformLog);
+
+    List<CarLogsListResponse> getCarLogsListResponse(CarLogsListRequest carLogsListRequest);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java
index 01093fb..beaa70c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java
@@ -3,6 +3,8 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Platform;
+import com.doumee.dao.openapi.response.PlatformNumByStatusResponse;
+
 import java.util.List;
 
 /**
@@ -95,4 +97,8 @@
      * @return long
      */
     long count(Platform platform);
+
+
+    PlatformNumByStatusResponse getPlatformNumByStatusResponse();
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java
index 320008c..100767b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java
@@ -5,6 +5,11 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.PlatformWaterGas;
+import com.doumee.dao.openapi.request.GasByMonthRequest;
+import com.doumee.dao.openapi.request.WaterByMonthRequest;
+import com.doumee.dao.openapi.response.GasByMonthResponse;
+import com.doumee.dao.openapi.response.WaterByMonthResponse;
+
 import java.util.List;
 
 /**
@@ -98,4 +103,8 @@
      * @return long
      */
     long count(PlatformWaterGas platformWaterGas);
+
+    WaterByMonthResponse waterDataByMonth(WaterByMonthRequest param);
+
+    GasByMonthResponse gasDataByMonth(GasByMonthRequest param);
 }
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 b698dd5..9cef87e 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
@@ -96,6 +96,8 @@
     private PlatformJobMapper platformJobMapper;
     @Autowired
     private PlatformLogMapper platformLogMapper;
+    @Autowired
+    private PlatformReasonMapper platformReasonMapper;
 
 
 
@@ -1410,9 +1412,13 @@
             platformBooks.setStatus(approveDTO.getStatus());
             platformBooks.setEditDate(new Date());
             platformBooks.setEditor(approveDTO.getLoginUserInfo().getMemberId());
+            PlatformReason platformReason = platformReasonMapper.selectById(platformBooks.getReasonId());
 
             //鐢熸垚浠诲姟璁板綍
             PlatformJob platformJob = platformBooks.toPlatformJob();
+            platformJob.setPlatformGroupId(platformReason.getGroupId().intValue());
+            platformJob.setType(Constants.platformJobType.sgscxh);
+            platformJob.setStatus(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
             platformJobMapper.insert(platformJob);
             platformBooks.setJobId(platformJob.getId());
             platformBooksMapper.updateById(platformBooks);
@@ -1421,7 +1427,9 @@
             platformLog.setCreateDate(new Date());
             platformLog.setJobId(platformJob.getId());
             platformLog.setIsdeleted(Constants.ZERO);
-            platformLog.setObjType(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
+            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);
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 68318b2..e47c027 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
@@ -18,6 +18,7 @@
 import com.doumee.dao.business.join.ApproveJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.vo.ApproveDataVO;
+import com.doumee.dao.web.reqeust.ConfirmTaskDTO;
 import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
 import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
 import com.doumee.dao.web.reqeust.RevokeDTO;
@@ -158,14 +159,8 @@
                 .eq(pageWrap.getModel().getPlateNum() != null, PlatformBooks::getPlateNum, pageWrap.getModel().getPlateNum())
                 .eq(pageWrap.getModel().getDriverPhone() != null, PlatformBooks::getDriverPhone, pageWrap.getModel().getDriverPhone())
                 .ge(pageWrap.getModel().getQueryDate() != null, PlatformBooks::getCreateDate, pageWrap.getModel().getQueryDate())
+                .orderByDesc(PlatformBooks::getCreateDate)
         ;
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
         return PageData.from(platformBooksMapper.selectPage(page, queryWrapper));
     }
 
@@ -250,7 +245,7 @@
 
 
 
-//    @Override
+    @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public Integer edit(PlatformBooksApplyDTO platformBooksApplyDTO){
         if(Objects.isNull(platformBooksApplyDTO)
@@ -265,8 +260,6 @@
                 || StringUtils.isBlank(platformBooksApplyDTO.getDriverPhone())
                 || StringUtils.isBlank(platformBooksApplyDTO.getDriverName())
                 || StringUtils.isBlank(platformBooksApplyDTO.getTransportImg())
-                || Objects.isNull(platformBooksApplyDTO.getReasonId())
-                || StringUtils.isBlank(platformBooksApplyDTO.getInReason())
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
@@ -279,7 +272,9 @@
         }
         BeanUtils.copyProperties(platformBooksApplyDTO,platformBooks);
         platformBooks.setEditDate(new Date());
-        platformBooksMapper.insert(platformBooks);
+        platformBooks.setReasonId(null);
+        platformBooks.setInReason(null);
+        platformBooksMapper.updateById(platformBooks);
         return platformBooks.getId();
     }
 
@@ -358,7 +353,6 @@
                 .eq(Approve::getObjId,revokeDTO.getId())
         );
     }
-
 
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
index 05ad10f..578a97b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -16,6 +16,8 @@
 import com.doumee.dao.business.model.PlatformGroup;
 import com.doumee.dao.business.model.PlatformJob;
 import com.doumee.dao.business.model.PlatformShowParam;
+import com.doumee.dao.web.reqeust.PlatformDataDTO;
+import com.doumee.dao.web.response.PlatformWorkVO;
 import com.doumee.service.business.PlatformGroupService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -202,10 +204,16 @@
 
 
     @Override
-    public List<PlatformGroup> getAllPlatformGroup(Integer queryType,LoginUserInfo loginUserInfo) {
+    public List<PlatformGroup> getAllPlatformGroup(PlatformDataDTO platformDataDTO, LoginUserInfo loginUserInfo) {
+        if(Objects.isNull(platformDataDTO)
+        || Objects.isNull(platformDataDTO.getQueryType())
+        || Objects.isNull(platformDataDTO.getQueryData())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
         List<PlatformGroup> platformGroups = platformGroupMapper.selectList(
                 new QueryWrapper<PlatformGroup>()
-                        .lambda().eq(PlatformGroup::getIsdeleted, Constants.ZERO)
+                        .lambda()
+                        .eq(PlatformGroup::getIsdeleted, Constants.ZERO)
                         .orderByAsc(PlatformGroup::getSortnum)
         );
         //鏌ヨ鏈堝彴缁勪笅鎵�鏈夋湀鍙�
@@ -214,10 +222,12 @@
                         .selectAll(Platform.class)
                         .select(" ( select count(1) from platform_job pj where t.id = pj.PLATFORM_ID and pj.STATUS = "+Constants.PlatformJobStatus.WORKING.getKey()+" ) as workStatus ")
                         .eq(Platform::getIsdeleted, Constants.ZERO)
-                        .eq(Objects.nonNull(queryType)&&!Constants.equalsInteger(queryType,Constants.ZERO),Platform::getStatus,Constants.ZERO)
+                        .eq(Objects.nonNull(platformDataDTO.getQueryType())&&!Constants.equalsInteger(platformDataDTO.getQueryType(),Constants.ZERO),
+                                Platform::getStatus,Constants.ZERO)
         );
         //澶勭悊鎴戠殑鏈堝彴淇℃伅 鏄惁閰嶇疆闅愯棌
-        if(Constants.equalsInteger(queryType,Constants.TWO)){
+        if(Constants.equalsInteger(platformDataDTO.getQueryType(),Constants.ONE)){
+            //鏌ヨ褰撳墠鐧诲綍浜洪厤缃殑鍙煡鐪嬫湀鍙�
             List<PlatformShowParam> platformShowParamList = platformShowParamMapper.selectList(new QueryWrapper<PlatformShowParam>()
                     .lambda()
                     .eq(PlatformShowParam::getIsdeleted, Constants.ZERO)
@@ -240,6 +250,26 @@
                 }
             }
         }
+        if(Constants.equalsInteger(platformDataDTO.getQueryData(),Constants.ONE)){
+            //鏌ヨ浠婂ぉ鎵�鏈夌殑浠诲姟鏁版嵁
+            List<PlatformJob> platformJobList =  platformJobJoinMapper.selectList(new QueryWrapper<PlatformJob>().lambda()
+                    .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                            .in(PlatformJob::getStatus,
+                                    Constants.PlatformJobStatus.WAIT_CALL.getKey(),
+                                    Constants.PlatformJobStatus.IN_WAIT.getKey(),
+                                    Constants.PlatformJobStatus.CALLED.getKey(),
+                                    Constants.PlatformJobStatus.WORKING.getKey(),
+                                    Constants.PlatformJobStatus.EXCEPTION.getKey(),
+                                    Constants.PlatformJobStatus.OVER_NUMBER.getKey()
+                            )
+//                    .like(PlatformJob::getArriveDate,DateUtil.getCurrDate())
+                    .orderByDesc(PlatformJob::getCreateDate)
+            );
+            for (Platform platform:allPlatformList) {
+                PlatformWorkVO platformWorkVO = PlatformGroupServiceImpl.getPlatformWorkVO(platform.getId(),platformJobList);
+                platform.setPlatformWorkVO(platformWorkVO);
+            }
+        }
         for (PlatformGroup platformGroup:platformGroups) {
             platformGroup.setPlatformList(allPlatformList.stream().filter(m->Constants.equalsInteger(m.getGroupId(),platformGroup.getId())).collect(Collectors.toList()));
         }
@@ -247,7 +277,31 @@
     }
 
 
+    public static PlatformWorkVO getPlatformWorkVO(Integer platformId,List<PlatformJob> platformJobList){
+        PlatformWorkVO platformWorkVO = new PlatformWorkVO();
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
+            //鑾峰彇鏈堝彴涓嬬殑鎵�鏈変綔涓氭暟鎹�
+            List<PlatformJob> platformJobs = platformJobList.stream().filter(i->Constants.equalsInteger(i.getPlatformId(),platformId)).collect(Collectors.toList());
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobs)){
+                platformWorkVO.setWorkNum(
+                        platformJobs.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())).collect(Collectors.toList()).size()
+                );
+                platformWorkVO.setCallNum(
+                        platformJobs.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())).collect(Collectors.toList()).size()
+                );
+                platformWorkVO.setWaitNum(
+                        platformJobs.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())).collect(Collectors.toList()).size()
+                );
+                platformWorkVO.setExceptionNum(
+                        platformJobs.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.EXCEPTION.getKey())).collect(Collectors.toList()).size()
+                );
+                platformWorkVO.setPlatformJobList(platformJobs);
+            }
+        }
+        return platformWorkVO;
+    }
 
 
 
 }
+
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 2544ffb..a4b0ac7 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
@@ -15,12 +15,12 @@
 import com.doumee.dao.business.join.PlatformJobJoinMapper;
 import com.doumee.dao.business.join.PlatformJoinMapper;
 import com.doumee.dao.business.model.*;
-import com.doumee.dao.web.reqeust.JobDetailDTO;
-import com.doumee.dao.web.reqeust.JobOperateDTO;
-import com.doumee.dao.web.reqeust.LineUpDetailDTO;
-import com.doumee.dao.web.reqeust.SignInDTO;
+import com.doumee.dao.openapi.request.*;
+import com.doumee.dao.openapi.response.*;
+import com.doumee.dao.web.reqeust.*;
 import com.doumee.dao.web.response.DriverHomeVO;
 import com.doumee.dao.web.response.LineUpVO;
+import com.doumee.dao.web.response.PlatformWorkVO;
 import com.doumee.service.business.PlatformJobService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -33,9 +33,11 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -61,6 +63,9 @@
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
 
+    @Autowired
+    private PlatformWmsDetailMapper platformWmsDetailMapper;
+
 
     @Autowired
     private PlatformJoinMapper platformJoinMapper;
@@ -70,9 +75,6 @@
 
     @Autowired
     private PlatformWmsJobMapper platformWmsJobMapper;
-
-    @Autowired
-    private PlatformWmsDetailMapper platformWmsDetailMapper;
 
     @Autowired
     private PlatformGroupMapper platformGroupMapper;
@@ -147,7 +149,9 @@
                 .selectAll(PlatformJob.class)
                 .selectAs(Platform::getName,PlatformJob::getPlatformName)
                 .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+                .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName)
                 .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+                .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
                 .eq(pageWrap.getModel().getId() != null, PlatformJob::getId, pageWrap.getModel().getId())
                 .eq(pageWrap.getModel().getCreator() != null, PlatformJob::getCreator, pageWrap.getModel().getCreator())
                 .ge(pageWrap.getModel().getCreateDate() != null, PlatformJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -234,21 +238,61 @@
         platformJobIPage.getRecords().forEach(i->{
             i.dealTime();
             this.getWmsJobData(i);
+            this.queryWaitNum(i);
         });
         return PageData.from(platformJobIPage);
-//        PageData<PlatformJob> pageData = PageData.from(platformJobMapper.selectPage(page, queryWrapper));
-//        pageData.getRecords().forEach(i->{
-//            i.dealTime();
-//            this.getWmsJobData(i);
-//        });
-//        return pageData;
+    }
+
+
+
+    @Override
+    public PageData<PlatformJob> platformCallList(PageWrap<PlatformJob> pageWrap) {
+        IPage<PlatformJob> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<PlatformJob> queryWrapper = new MPJLambdaWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper
+                .selectAll(PlatformJob.class)
+                .selectAs(Platform::getName,PlatformJob::getPlatformName)
+                .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+                .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName)
+                .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+                .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
+                .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId())
+                .like(pageWrap.getModel().getCarCodeFront() != null, PlatformJob::getCarCodeFront, pageWrap.getModel().getCarCodeFront())
+                .eq(Objects.nonNull(pageWrap.getModel().getCallType())
+                        &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.ONE),PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()
+                )
+                .and(Objects.nonNull(pageWrap.getModel().getCallType())
+                        &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.TWO),
+                        i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()).or()
+                                .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey()).or()
+                                .apply(" ( t.status = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_ID = "+pageWrap.getModel().getPlatformId()+" ) ")
+                )
+                .and(Objects.nonNull(pageWrap.getModel().getCallType())
+                                &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.THREE),
+                        i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()).or()
+                                .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey()).or()
+                                .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()).or()
+                                .apply(" ( t.status = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_GROUP_ID = "+pageWrap.getModel().getPlatformGroupId()+" ) ")
+                )
+                .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(new Date(),"yyyy-MM-dd"))
+                .orderByDesc(PlatformJob::getStatus)
+        ;
+        IPage<PlatformJob> platformJobIPage = platformJobJoinMapper.selectJoinPage(page,PlatformJob.class,queryWrapper);
+        platformJobIPage.getRecords().forEach(i->{
+            i.dealTime();
+            this.getWmsJobData(i);
+            this.queryWaitNum(i);
+        });
+        return PageData.from(platformJobIPage);
     }
 
 
     public void getWmsJobData(PlatformJob platformJob){
         if(Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.zycxh)
-        || Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.zyczh)
-        || Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.sgscxh)) {
+            || Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.zyczh)
+            || Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.wxcxh)
+                || Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.wxczh)) {
 
             PlatformWmsJob platformWmsJob = platformWmsJobMapper.selectOne(new QueryWrapper<PlatformWmsJob>().lambda()
                     .eq(PlatformWmsJob::getIsdeleted,Constants.ZERO)
@@ -283,29 +327,33 @@
                             ,Constants.PlatformJobStatus.TRANSFERING.getKey())
                     .gt(PlatformJob::getSignDate,platformJob.getSignDate())
                     .eq(PlatformJob::getPlatformGroupId,platformJob.getPlatformGroupId())
-                    .like(PlatformJob::getArriveDate,DateUtil.getDate(platformJob.getArriveDate(),"yyyy-MM-dd")));
+                    .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(platformJob.getArriveDate(),"yyyy-MM-dd")));
             platformJob.setLineUpNum(lineUpNum.size());
             BigDecimal sumWorkRate = platformJob.getTotalNum();
             for (PlatformJob linePlatformJob:lineUpNum) {
                 this.getWmsJobData(linePlatformJob);
                 sumWorkRate = sumWorkRate.add(linePlatformJob.getTotalNum());
             }
-            //璁$畻棰勮绛夊緟鏃堕棿
-            List<Platform> platformList = platformJoinMapper.selectList(new QueryWrapper<Platform>().lambda().eq(Platform::getIsdeleted,Constants.ZERO).eq(Platform::getGroupId,platformJob.getPlatformGroupId()));
-            BigDecimal workRate = platformList.stream().map(m->m.getWorkRate()).reduce(BigDecimal.ZERO,BigDecimal::add);
-            if(sumWorkRate.compareTo(BigDecimal.ZERO) == Constants.ZERO|| workRate.compareTo(BigDecimal.ZERO)  == Constants.ZERO ){
-                BigDecimal sumMinute = sumWorkRate.divide(workRate,1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
-                Integer sumMinuteInteger = sumMinute.intValue();
-                Integer hours = sumMinuteInteger/60;
-                Integer minus = sumMinuteInteger%60;
-                String  waitTime = "棰勮绛夊緟锛�";
-                if(!Constants.equalsInteger(hours,Constants.ZERO)){
-                    waitTime = waitTime + hours + "灏忔椂";
+            if(lineUpNum.size()>Constants.ZERO){
+                //璁$畻棰勮绛夊緟鏃堕棿
+                List<Platform> platformList = platformJoinMapper.selectList(new QueryWrapper<Platform>().lambda().eq(Platform::getIsdeleted,Constants.ZERO).eq(Platform::getGroupId,platformJob.getPlatformGroupId()));
+                BigDecimal workRate = platformList.stream().map(m->m.getWorkRate()).reduce(BigDecimal.ZERO,BigDecimal::add);
+                if(sumWorkRate.compareTo(BigDecimal.ZERO) == Constants.ZERO|| workRate.compareTo(BigDecimal.ZERO)  == Constants.ZERO ){
+                    BigDecimal sumMinute = sumWorkRate.divide(workRate,1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
+                    Integer sumMinuteInteger = sumMinute.intValue();
+                    Integer hours = sumMinuteInteger/60;
+                    Integer minus = sumMinuteInteger%60;
+                    String  waitTime = "棰勮绛夊緟锛�";
+                    if(!Constants.equalsInteger(hours,Constants.ZERO)){
+                        waitTime = waitTime + hours + "灏忔椂";
+                    }
+                    if(!Constants.equalsInteger(hours,Constants.ZERO)){
+                        waitTime = waitTime + minus + "鍒嗛挓";
+                    }
+                    platformJob.setWaitTime(waitTime);
                 }
-                if(!Constants.equalsInteger(hours,Constants.ZERO)){
-                    waitTime = waitTime + minus + "鍒嗛挓";
-                }
-                platformJob.setWaitTime(waitTime);
+            }else{
+                platformJob.setWaitTime("绛夊緟鍙彿");
             }
         }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
             //鏌ヨ鏈�鍚庡紑濮嬩换鍔$殑鏈堝彴璁板綍  鏃ュ織琛�  鍥犱负瀛樺湪寮傚父鎸傝捣 杞Щ 绛夐棶棰�
@@ -319,6 +367,15 @@
                 BigDecimal sumMinute = platformJob.getTotalNum().divide(platformJob.getWorkRate(),1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
                 platformJob.setFinishTimeStr(DateUtil.DateToStr(DateUtil.afterMinutesDate(platformLog.getCreateDate(),sumMinute.intValue()),"HH:mm"));
             }
+            //澶勭悊浣滀笟鏃堕暱
+            List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda()
+                    .eq(PlatformLog::getJobId,platformJob.getId())
+                    .isNotNull(PlatformLog::getParam3)
+                    .ne(PlatformLog::getParam3,Constants.ZERO+"")
+                    .orderByDesc(PlatformLog::getCreateDate));
+            platformJob.setWorkTime(platformLogList.stream().map(m->Long.valueOf(m.getParam3())).reduce(Long.valueOf(0),Long::sum));
+
+
         }
     }
     
@@ -334,7 +391,6 @@
     public DriverHomeVO getDriverHome(LoginUserInfo loginUserInfo){
         DriverHomeVO driverHomeVO = new DriverHomeVO();
         //TODO 杞挱鍥�
-
         List<PlatformJob> platformJobList =  platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
                 .selectAll(PlatformJob.class)
                 .selectAs(Platform::getName,PlatformJob::getPlatformName)
@@ -359,10 +415,44 @@
         driverHomeVO.setReservationMap(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.PLATFORM_GUIDEMAP).getCode());
         // 棰勭害鎸囧崡 鏂囨湰
         driverHomeVO.setBookingTips(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.PLATFORM_BOOKING_TIPS).getCode());
+        driverHomeVO.setSignDistance(new BigDecimal(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_DISTANCE).getCode()));
 
         return driverHomeVO;
     }
 
+
+
+    @Override
+    public void confirmTask(ConfirmTaskDTO confirmTaskDTO){
+        if(Objects.isNull(confirmTaskDTO)
+                || Objects.isNull(confirmTaskDTO.getId())
+                || Objects.isNull(confirmTaskDTO.getArriveDate())
+                || StringUtils.isBlank(confirmTaskDTO.getCarCodeBack())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        PlatformJob platformJob = platformJobMapper.selectById(confirmTaskDTO.getId());
+        if(Objects.isNull(platformJob)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(platformJob.getStatus(),Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�");
+        }
+        if(confirmTaskDTO.getArriveDate().getTime()<=System.currentTimeMillis()){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"棰勮鍒板巶鏃堕棿蹇呴』澶т簬褰撳墠鏃堕棿");
+        }
+
+        PlatformJob oldPlatformJob = new PlatformJob();
+        BeanUtils.copyProperties(platformJob,oldPlatformJob);
+
+        platformJob.setArriveDate(confirmTaskDTO.getArriveDate());
+        platformJob.setStatus(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
+        platformJob.setEditDate(new Date());
+        platformJobMapper.updateById(platformJob);
+        //瀛樺偍鎿嶄綔鏃ュ織
+        savePlatformLog(Constants.PlatformJobLogType.CONFIRM_TASK.getKey(),oldPlatformJob,platformJob ,
+                Constants.PlatformJobLogType.CONFIRM_TASK.getInfo());
+    }
 
     /**
      * 璺濈绛惧埌
@@ -396,7 +486,8 @@
         platformJob.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey());
         platformJobMapper.updateById(platformJob);
         //瀛樺偍鎿嶄綔鏃ュ織
-        savePlatformLog(Constants.PlatformJobStatus.WAIT_CALL.getKey(),oldPlatformJob,platformJob);
+        savePlatformLog(Constants.PlatformJobLogType.SIGN.getKey(),oldPlatformJob,platformJob,
+                Constants.PlatformJobLogType.SIGN.getInfo());
     }
 
 
@@ -409,12 +500,12 @@
         Double lat = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LAT).getCode());
         Double lnt = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LNT).getCode());
         BigDecimal distance = new BigDecimal(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_DISTANCE).getCode());
-        //鑾峰彇2涓偣鐨勮窛绂籜绫�
+        //鑾峰彇2涓偣鐨勮窛绂� 鍗曚綅锛氱背
         Double getDistanceDouble = PositionUtil.getDistance(signInDTO.getLnt(),signInDTO.getLat(),lnt,lat);
         //杞崲km
         BigDecimal getDistance = BigDecimal.valueOf(getDistanceDouble).divide(new BigDecimal(1000),2,BigDecimal.ROUND_HALF_UP);
         if(distance.compareTo(getDistance)<Constants.ZERO){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瓒呭嚭鍙鍒拌窛绂伙紝鍙鍒拌窛绂籟"+distance+"]鍏噷]");
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瓒呭嚭鍙鍒拌窛绂伙紝鍙鍒拌窛绂讳负["+distance+"]鍏噷]");
         }
         platformJob.setSignDistance(BigDecimal.valueOf(getDistanceDouble));
     }
@@ -483,6 +574,9 @@
         List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,
                 new MPJLambdaWrapper<PlatformJob>()
                         .selectAll(PlatformJob.class)
+                        .selectAs(Platform::getName,PlatformJob::getPlatformName)
+                        .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+                        .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                         .eq(Constants.equalsInteger(lineUpDetailDTO.getQueryType(),Constants.ZERO)
                                 ,PlatformJob::getDrivierPhone,lineUpDetailDTO.getMobile())
@@ -495,36 +589,45 @@
         );
         //鑾峰彇鎵�鏈夋湀鍙扮粍
         List<Integer> platformIdList = platformJobList.stream().map(m->m.getPlatformGroupId()).collect(Collectors.toList());
-        List<Platform> platformList = platformJoinMapper.selectList(new QueryWrapper<Platform>().lambda()
-                .eq(Platform::getIsdeleted,Constants.ZERO)
-                .in(Platform::getId,platformIdList));
+        if(CollectionUtils.isEmpty(platformIdList)){
+            return lineUpVO;
+        }
+        List<PlatformGroup> platformGroupList = platformGroupMapper.selectList(new QueryWrapper<PlatformGroup>().lambda()
+                .eq(PlatformGroup::getIsdeleted,Constants.ZERO)
+                .in(PlatformGroup::getId,platformIdList));
 
-        for (Platform platform:platformList) {
+        for (PlatformGroup platformGroup:platformGroupList) {
             //鏌ヨ鏈湀鍙扮粍涓� 鑷繁鐨勬暟鎹� 鏈�鏃╃鍒扮殑
-            PlatformJob platformJob = platformJobList.stream().filter(i->Constants.equalsInteger(i.getPlatformId(),platform.getId())).findFirst().orElse(null);
+            PlatformJob platformJob = platformJobList.stream().filter(i->Constants.equalsInteger(i.getPlatformGroupId(),platformGroup.getId())).findFirst().orElse(null);
             //鏌ヨ鍦ㄥ綋鍓嶆湀鍙扮粍涓� 绛惧埌鎺掗槦杞﹁締鏁版嵁
             List<PlatformJob> platformJobSignInList = platformJobJoinMapper.selectJoinList(PlatformJob.class,
                     new MPJLambdaWrapper<PlatformJob>()
                             .selectAll(PlatformJob.class)
+                            .selectAs(Platform::getName,PlatformJob::getPlatformName)
+                            .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+                            .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                             .eq(PlatformJob::getIsdeleted,Constants.ZERO)
-                            .eq(PlatformJob::getPlatformGroupId,platform.getGroupId())
-                            .ge(Objects.nonNull(platformJob),PlatformJob::getSignDate,DateUtil.getDate(platformJob.getSignDate(),"yyyy-MM-dd HH:mm:ss"))
+                            .eq(PlatformJob::getPlatformGroupId,platformGroup.getId())
+                            .ge(Objects.nonNull(platformJob),PlatformJob::getSignDate,DateUtil.dateTypeToString(platformJob.getSignDate(),"yyyy-MM-dd HH:mm:ss"))
                             .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey(),
                                     Constants.PlatformJobStatus.IN_WAIT.getKey(),
                                     Constants.PlatformJobStatus.CALLED.getKey())
                             .orderByDesc(PlatformJob::getSignDate));
-            platform.setSignJobList(platformJobSignInList);
+            platformGroup.setSignJobList(platformJobSignInList);
             //鏌ヨ褰撳墠鏈堝彴缁勪笅
             List<PlatformJob> platformJobWorkList = platformJobJoinMapper.selectJoinList(PlatformJob.class,
                     new MPJLambdaWrapper<PlatformJob>()
                             .selectAll(PlatformJob.class)
+                            .selectAs(Platform::getName,PlatformJob::getPlatformName)
+                            .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+                            .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                             .eq(PlatformJob::getIsdeleted,Constants.ZERO)
-                            .eq(PlatformJob::getPlatformGroupId,platform.getGroupId())
+                            .eq(PlatformJob::getPlatformGroupId,platformGroup.getId())
                             .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
                             .orderByDesc(PlatformJob::getSignDate));
-            platform.setWorkJobList(platformJobWorkList);
+            platformGroup.setWorkJobList(platformJobWorkList);
         }
-        lineUpVO.setPlatformList(platformList);
+        lineUpVO.setPlatformGroupList(platformGroupList);
         return lineUpVO;
     }
 
@@ -533,7 +636,7 @@
      * 鑾峰彇宸蹭綔涓氭椂闂�
      * @param platformJob
      */
-    public void getWorkTime(PlatformJob platformJob){
+    public Long getWorkTime(PlatformJob platformJob){
         List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>()
                 .lambda().eq(PlatformLog::getIsdeleted,Constants.ZERO)
                 .eq(PlatformLog::getJobId,platformJob.getId())
@@ -561,6 +664,7 @@
             }
         }
         platformJob.setWorkTime(optTime);
+        return optTime;
     }
 
     /**
@@ -595,9 +699,9 @@
             //TODO 涓嬪彂鍏ュ洯鏉冮檺
 
         }
-
         //瀛樺偍鎿嶄綔鏃ュ織
-        savePlatformLog(Constants.PlatformJobStatus.WAIT_CALL.getKey(),oldPlatformJob,platformJob);
+        savePlatformLog(Constants.PlatformJobLogType.IN_WAIT.getKey(),oldPlatformJob,platformJob,
+                Constants.PlatformJobLogType.IN_WAIT.getInfo());
 
     }
 
@@ -621,17 +725,31 @@
         ) ){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�");
         }
-
+        
+        Platform platform = platformJoinMapper.selectById(jobOperateDTO.getPlatformId());
+        if(Objects.isNull(platform)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈堝彴淇℃伅");
+        }
         PlatformJob oldPlatformJob = new PlatformJob();
         BeanUtils.copyProperties(platformJob,oldPlatformJob);
 
         platformJob.setCallDate(new Date());
         platformJob.setCallUserId(jobOperateDTO.getLoginUserInfo().getId());
         platformJob.setStatus(Constants.PlatformJobStatus.CALLED.getKey());
+        platformJob.setPlatformId(jobOperateDTO.getPlatformId());
+        //鍒ゆ柇鏄惁闇�瑕佸~鍏呰繘鍘�
+        if(StringUtils.isBlank(platformJob.getPlatforms())){
+            platformJob.setPlatforms(jobOperateDTO.getPlatformId().toString());
+            platformJob.setPlatformNames(platform.getName());
+        }else{
+            platformJob.setPlatforms(platformJob.getPlatforms() + "," +jobOperateDTO.getPlatformId().toString());
+            platformJob.setPlatformNames(platformJob.getPlatformNames() + "," +platform.getName());
+        }
         platformJob.setEditDate(new Date());
         platformJobMapper.updateById(platformJob);
         //瀛樺偍鎿嶄綔鏃ュ織
-        savePlatformLog(Constants.PlatformJobStatus.CALLED.getKey(),oldPlatformJob,platformJob);
+        savePlatformLog(Constants.PlatformJobLogType.CALLED.getKey(),oldPlatformJob,platformJob,
+                Constants.PlatformJobLogType.CALLED.getInfo().replace("{data}",platform.getName()));
     }
 
 
@@ -659,9 +777,18 @@
         if(Constants.equalsInteger(platformJob.getPlatformId(),jobOperateDTO.getPlatformId())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犳硶杞Щ鏈湀鍙�");
         }
+        Platform oldPlatform = platformJoinMapper.selectById(platformJob.getPlatformId());
+
+        Platform platform = platformJoinMapper.selectById(jobOperateDTO.getPlatformId());
+        if(Objects.isNull(platform)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈堝彴淇℃伅");
+        }
 
         PlatformJob oldPlatformJob = new PlatformJob();
         BeanUtils.copyProperties(platformJob,oldPlatformJob);
+
+        platformJob.setPlatforms(platformJob.getPlatforms() + "," +jobOperateDTO.getPlatformId().toString());
+        platformJob.setPlatformNames(platformJob.getPlatformNames() + "," +platform.getName());
 
         platformJob.setTransPlatformDate(new Date());
         platformJob.setTransPlatformUserId(jobOperateDTO.getLoginUserInfo().getId());
@@ -672,7 +799,8 @@
 
         //TODO 璋冭捣WMS 閫氱煡鏈堝彴杞Щ
         //瀛樺偍鎿嶄綔鏃ュ織
-        savePlatformLog(Constants.PlatformJobStatus.TRANSFERING.getKey(),oldPlatformJob,platformJob);
+        savePlatformLog(Constants.PlatformJobLogType.TRANSFERING.getKey(),oldPlatformJob,platformJob,
+                Constants.PlatformJobLogType.TRANSFERING.getInfo().replace("{data}",oldPlatform.getName()));
     }
 
 
@@ -683,18 +811,16 @@
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public void platformOverNumber(JobOperateDTO jobOperateDTO){
         if(Objects.isNull(jobOperateDTO)
-                || Objects.isNull(jobOperateDTO.getJobId())
-                || Objects.isNull(jobOperateDTO.getPlatformId())){
+                || Objects.isNull(jobOperateDTO.getJobId())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
         if(Objects.isNull(platformJob)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
+        if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�");
         }
-
         PlatformJob oldPlatformJob = new PlatformJob();
         BeanUtils.copyProperties(platformJob,oldPlatformJob);
 
@@ -702,7 +828,8 @@
         platformJob.setEditDate(new Date());
         platformJobMapper.updateById(platformJob);
         //瀛樺偍鎿嶄綔鏃ュ織
-        savePlatformLog(Constants.PlatformJobStatus.WART_SIGN_IN.getKey(),oldPlatformJob,platformJob);
+        savePlatformLog(Constants.PlatformJobLogType.OVER_NUMBER.getKey(),oldPlatformJob,platformJob,
+                Constants.PlatformJobLogType.OVER_NUMBER.getInfo());
 
 
     }
@@ -715,8 +842,7 @@
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public void platformErr(JobOperateDTO jobOperateDTO){
         if(Objects.isNull(jobOperateDTO)
-                || Objects.isNull(jobOperateDTO.getJobId())
-                || Objects.isNull(jobOperateDTO.getPlatformId())){
+                || Objects.isNull(jobOperateDTO.getJobId())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
@@ -736,7 +862,8 @@
         platformJob.setEditDate(new Date());
         platformJobMapper.updateById(platformJob);
         //瀛樺偍鎿嶄綔鏃ュ織
-        savePlatformLog(Constants.PlatformJobStatus.EXCEPTION.getKey(),oldPlatformJob,platformJob);
+        savePlatformLog(Constants.PlatformJobLogType.EXCEPTION.getKey(),oldPlatformJob,platformJob,
+                Constants.PlatformJobLogType.EXCEPTION.getInfo());
     }
 
 
@@ -747,8 +874,7 @@
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public void beginWork(JobOperateDTO jobOperateDTO){
         if(Objects.isNull(jobOperateDTO)
-                || Objects.isNull(jobOperateDTO.getJobId())
-                || Objects.isNull(jobOperateDTO.getPlatformId())){
+                || Objects.isNull(jobOperateDTO.getJobId())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
@@ -758,24 +884,26 @@
         if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�");
         }
-        platformJobMapper.update(null,new UpdateWrapper<PlatformJob>()
-                .lambda()
-                .set(Objects.isNull(platformJob.getStartDate()),PlatformJob::getStartDate,new Date())
-                .set(PlatformJob::getEditDate,new Date())
-                .set(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
-                .eq(PlatformJob::getId,jobOperateDTO.getJobId())
-        );
+
+        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);
+
+
         if(Objects.isNull(platformJob.getStartDate())){
             platformJob.setStartDate(new Date());
         }
         platformJob.setStatus(Constants.PlatformJobStatus.WORKING.getKey());
         platformJob.setEditDate(new Date());
         platformJobMapper.updateById(platformJob);
+
         //瀛樺偍鎿嶄綔鏃ュ織
-        savePlatformLog(Constants.PlatformJobStatus.WORKING.getKey(),oldPlatformJob,platformJob);
+        savePlatformLog(Constants.PlatformJobLogType.WORKING.getKey(),oldPlatformJob,platformJob,
+                Constants.PlatformJobLogType.WORKING.getInfo().replace("{data}",platform.getName()));
     }
 
 
@@ -800,11 +928,12 @@
         BeanUtils.copyProperties(platformJob,oldPlatformJob);
 
         platformJob.setDoneDate(new Date());
-        platformJob.setStatus(Constants.PlatformJobStatus.EXCEPTION.getKey());
+        platformJob.setStatus(Constants.PlatformJobStatus.DONE.getKey());
         platformJob.setEditDate(new Date());
         platformJobMapper.updateById(platformJob);
         //瀛樺偍鎿嶄綔鏃ュ織
-        savePlatformLog(Constants.PlatformJobStatus.EXCEPTION.getKey(),oldPlatformJob,platformJob);
+        savePlatformLog(Constants.PlatformJobLogType.DONE.getKey(),oldPlatformJob,platformJob ,
+                Constants.PlatformJobLogType.DONE.getInfo());
 
         if(Constants.equalsInteger(platformJob.getType(),Constants.TWO)){
             //TODO 澶栧崗杞﹁璐� 鏌ヨTMS 鐢靛瓙閿佹儏鍐�
@@ -858,7 +987,8 @@
         platformJob.setEditDate(new Date());
         platformJobMapper.updateById(platformJob);
         //瀛樺偍鎿嶄綔鏃ュ織
-        savePlatformLog(Constants.PlatformJobStatus.WORKING.getKey(),oldPlatformJob,platformJob);
+        savePlatformLog(Constants.PlatformJobLogType.WORKING.getKey(),oldPlatformJob,platformJob ,
+                Constants.PlatformJobLogType.DONE.getInfo());
     }
 
 
@@ -868,34 +998,33 @@
      * @param platformJobBefor
      * @param platformJobAfter
      */
-    public void savePlatformLog(Integer objType,PlatformJob platformJobBefor,PlatformJob platformJobAfter){
+    public void savePlatformLog(Integer objType,PlatformJob platformJobBefor,PlatformJob platformJobAfter,String content){
         PlatformLog platformLog = new PlatformLog();
         platformLog.setIsdeleted(Constants.ZERO);
         platformLog.setCreateDate(new Date());
         platformLog.setJobId(platformJobAfter.getId());
         platformLog.setObjType(objType);
+        platformLog.setContent(content);
+        platformLog.setParam4(platformJobAfter.getCarCodeFront());
         platformLog.setBeforeContent(JSONObject.toJSONString(platformJobBefor));
         platformLog.setAfterContent(JSONObject.toJSONString(platformJobAfter));
         platformLog.setObjId(platformJobAfter.getId().toString());
-        //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
-        PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
-                .eq(PlatformLog::getIsdeleted,Constants.ZERO)
-                .eq(PlatformLog::getObjType,Constants.PlatformJobStatus.WORKING.getKey())
-                .eq(PlatformLog::getJobId,platformLog.getJobId())
-                .orderByDesc(PlatformLog::getCreateDate)
-                .last(" limit 1 ")
-        );
-        if(Objects.isNull(lastBeginPlatform)){
-            return;
-        }
-        if(Constants.equalsInteger(objType,Constants.PlatformJobStatus.EXCEPTION.getKey())
-            || Constants.equalsInteger(objType,Constants.PlatformJobStatus.TRANSFERING.getKey())){
+
+        if(Constants.equalsInteger(objType,Constants.PlatformJobLogType.EXCEPTION.getKey())){
+            //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
+            PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
+                    .eq(PlatformLog::getIsdeleted,Constants.ZERO)
+                    .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey())
+                    .eq(PlatformLog::getJobId,platformLog.getJobId())
+                    .orderByDesc(PlatformLog::getCreateDate)
+                    .last(" limit 1 ")
+            );
             //寮傚父鎸傝捣 涓庤浆绉讳腑 璁板綍鏈 浣滀笟鏃堕棿
-            platformLog.setParam1(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
-            platformLog.setParam2(DateUtil.getDate(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
-            String v = Long.toString(platformJobAfter.getDoneDate().getTime() - platformJobBefor.getStartDate().getTime() / 1000) ;
+            platformLog.setParam1(lastBeginPlatform.getParam1());
+            platformLog.setParam2(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+            String v = Long.toString((platformLog.getCreateDate().getTime() - DateUtil.StringToDate(lastBeginPlatform.getParam1(),"yyyy-MM-dd HH:mm:ss").getTime() )/ 1000) ;
             platformLog.setParam3(v);
-        }else  if(Constants.equalsInteger(objType,Constants.PlatformJobStatus.DONE.getKey())){
+        }else if(Constants.equalsInteger(objType,Constants.PlatformJobLogType.TRANSFERING.getKey())){
             //鏌ヨ鏈�鍚庝竴娆℃棩蹇楁槸鍚︿负寮傚父鎸傝捣锛屽紓甯告寕璧峰悗鍙繘琛岃浆绉� 濡傛灉杩涜杞Щ閭d箞涓氬姟灏遍渶瑕侀噸鏂拌繘琛屽紑濮嬪氨涓嶉渶瑕佺壒娈婂鐞�  锛屽鏋滀笉鏄紓甯告寕璧疯繘琛屾暟鎹粨鏉� 鍒欑洿鎺ユ煡璇㈡渶鍚庝竴娆″紑濮嬬殑鏃堕棿
             PlatformLog lastPlatformLog = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
                     .eq(PlatformLog::getIsdeleted,Constants.ZERO)
@@ -903,15 +1032,51 @@
                     .orderByDesc(PlatformLog::getCreateDate)
                     .last(" limit 1 ")
             );
-            if(Objects.nonNull(lastPlatformLog) && Constants.equalsInteger(lastPlatformLog.getObjType(),Constants.PlatformJobStatus.EXCEPTION.getKey())){
+            if(!Constants.equalsInteger(lastPlatformLog.getObjType(),Constants.PlatformJobLogType.EXCEPTION.getKey())){
+                //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
+                PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
+                        .eq(PlatformLog::getIsdeleted,Constants.ZERO)
+                        .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey())
+                        .eq(PlatformLog::getJobId,platformLog.getJobId())
+                        .orderByDesc(PlatformLog::getCreateDate)
+                        .last(" limit 1 ")
+                );
+                //寮傚父鎸傝捣 涓庤浆绉讳腑 璁板綍鏈 浣滀笟鏃堕棿
+                platformLog.setParam1(lastBeginPlatform.getParam1());
+                platformLog.setParam2(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+                String v = Long.toString((platformLog.getCreateDate().getTime() - DateUtil.StringToDate(lastBeginPlatform.getParam1(),"yyyy-MM-dd HH:mm:ss").getTime() )/ 1000) ;
+                platformLog.setParam3(v);
+            }else{
+                platformLog.setParam3("0");
+            }
+        }else  if(Constants.equalsInteger(objType,Constants.PlatformJobLogType.DONE.getKey())){
+            //鏌ヨ鏈�鍚庝竴娆℃棩蹇楁槸鍚︿负寮傚父鎸傝捣锛屽紓甯告寕璧峰悗鍙繘琛岃浆绉� 濡傛灉杩涜杞Щ閭d箞涓氬姟灏遍渶瑕侀噸鏂拌繘琛屽紑濮嬪氨涓嶉渶瑕佺壒娈婂鐞�  锛屽鏋滀笉鏄紓甯告寕璧疯繘琛屾暟鎹粨鏉� 鍒欑洿鎺ユ煡璇㈡渶鍚庝竴娆″紑濮嬬殑鏃堕棿
+            PlatformLog lastPlatformLog = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
+                    .eq(PlatformLog::getIsdeleted,Constants.ZERO)
+                    .eq(PlatformLog::getJobId,platformLog.getJobId())
+                    .orderByDesc(PlatformLog::getCreateDate)
+                    .last(" limit 1 ")
+            );
+            if(Objects.nonNull(lastPlatformLog) && Constants.equalsInteger(lastPlatformLog.getObjType(),Constants.PlatformJobLogType.EXCEPTION.getKey())){
                 platformLog.setParam3("0");
             }else{
+                //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
+                PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
+                        .eq(PlatformLog::getIsdeleted,Constants.ZERO)
+                        .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey())
+                        .eq(PlatformLog::getJobId,platformLog.getJobId())
+                        .orderByDesc(PlatformLog::getCreateDate)
+                        .last(" limit 1 ")
+                );
                 //闈炲紓甯告寕璧� 鍒欑洿鎺ヨ繃鍘绘渶鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織鐨勫紑濮嬫椂闂�
-                platformLog.setParam1(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
-                platformLog.setParam2(DateUtil.getDate(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
-                String v = Long.toString(platformJobAfter.getDoneDate().getTime() - platformJobBefor.getStartDate().getTime() / 1000) ;
+                platformLog.setParam1(lastBeginPlatform.getParam1());
+                platformLog.setParam2(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+                String v = Long.toString((platformJobAfter.getDoneDate().getTime() -  DateUtil.StringToDate(lastBeginPlatform.getParam1(),"yyyy-MM-dd HH:mm:ss").getTime()) / 1000) ;
                 platformLog.setParam3(v);
             }
+        }else if(Constants.equalsInteger(objType,Constants.PlatformJobLogType.WORKING.getKey())){
+            platformLog.setParam1(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+            platformLog.setParam3("0");
         }else{
             platformLog.setParam3("0");
         }
@@ -982,6 +1147,14 @@
                 .eq(PlatformJob::getPlatformId,platform.getId())
                 .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                 .eq(PlatformJob::getDrivierPhone,loginUserInfo.getMobile())
+                .in(PlatformJob::getStatus,
+                        Constants.PlatformJobStatus.WAIT_CALL.getKey(),
+                        Constants.PlatformJobStatus.IN_WAIT.getKey(),
+                        Constants.PlatformJobStatus.CALLED.getKey(),
+                        Constants.PlatformJobStatus.WORKING.getKey(),
+                        Constants.PlatformJobStatus.EXCEPTION.getKey(),
+                        Constants.PlatformJobStatus.OVER_NUMBER.getKey()
+                )
                 .like(PlatformJob::getArriveDate, DateUtil.getCurrDate())
                 .orderByDesc(PlatformJob::getId)
         );
@@ -994,4 +1167,247 @@
         platform.setWorkJobList(platformJobList);
     }
 
+    @Override
+    public PlatformWorkVO getPlatformWorkVOById(Integer platformId){
+        //鑾峰彇鏈堝彴涓嬬殑鎵�鏈変綔涓氭暟鎹�
+        List<PlatformJob> platformJobList =  platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+                .selectAll(PlatformJob.class)
+                .selectAs(Platform::getName,PlatformJob::getPlatformName)
+                .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+                .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+                .eq(PlatformJob::getPlatformId,platformId)
+                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                .in(PlatformJob::getStatus,
+                        Constants.PlatformJobStatus.WAIT_CALL.getKey(),
+                        Constants.PlatformJobStatus.IN_WAIT.getKey(),
+                        Constants.PlatformJobStatus.CALLED.getKey(),
+                        Constants.PlatformJobStatus.WORKING.getKey(),
+                        Constants.PlatformJobStatus.EXCEPTION.getKey(),
+                        Constants.PlatformJobStatus.OVER_NUMBER.getKey()
+                )
+                .like(PlatformJob::getArriveDate, DateUtil.getCurrDate())
+                .orderByDesc(PlatformJob::getId)
+        );
+        for (PlatformJob platformJob:platformJobList) {
+            //澶勭悊WSM鏁伴噺
+            this.getWmsJobData(platformJob);
+            //鏌ヨ鍓嶆柟鎺掗槦鏁伴噺
+            this.queryWaitNum(platformJob);
+        }
+        PlatformWorkVO platformWorkVO = PlatformGroupServiceImpl.getPlatformWorkVO(platformId,platformJobList);
+        return platformWorkVO;
+    }
+
+
+    @Override
+    public PlatformOrderNumByDateResponse orderNumByDate(PlatformOrderNumByDateRequest param){
+        PlatformOrderNumByDateResponse platformOrderNumByDateResponse = new PlatformOrderNumByDateResponse();
+        Date queryDate = (Objects.nonNull(param)&&Objects.nonNull(param.getTimeInfo()))?param.getTimeInfo():new Date();
+        String queryDateStr = DateUtil.getDate(queryDate,"yyyy-MM-dd");
+        //鏌ヨ浠婃棩鍏ㄩ儴浠诲姟
+        platformOrderNumByDateResponse.setTotalNum(
+            platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                    .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                    .and(i->
+                            i.like(PlatformJob::getDoneDate,queryDateStr)
+                            .or().ne(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey())
+                    )
+            )
+        );
+        //鏌ヨ浠婃棩瀹屾垚浠诲姟
+        platformOrderNumByDateResponse.setDoneNum(
+                platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .like(PlatformJob::getDoneDate,queryDateStr)
+                        .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey())
+                )
+        );
+        return platformOrderNumByDateResponse;
+    }
+
+
+
+    @Override
+    public List<PlatformDataListResponse> platformWorkingDataList(PlatformDataListRequest param){
+        List<PlatformDataListResponse> platformDataListResponseList = new ArrayList<>();
+        List<Platform> platformList = platformJoinMapper.selectList(
+                new MPJLambdaWrapper<Platform>().eq(Platform::getIsdeleted,Constants.ZERO)
+                .eq(Platform::getStatus,Constants.ZERO)
+        );
+        for (Platform platform:platformList) {
+            PlatformDataListResponse platformDataListResponse  = new PlatformDataListResponse();
+            platformDataListResponse.setId(platform.getId());
+            platformDataListResponse.setHkId(platform.getHkId());
+            platformDataListResponse.setName(platform.getName());
+            platformDataListResponse.setWorkStatus(Constants.ZERO);
+            //鏌ヨ褰撳墠浣滀笟杞﹁締
+            PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
+                    .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                    .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
+                    .orderByDesc(PlatformJob::getWorkTime)
+                    .last(" limit 1")
+            );
+            if(Objects.nonNull(platformJob)){
+                platformDataListResponse.setCarCode(platformJob.getCarCodeFront());
+                platformDataListResponse.setWorkType(
+                        Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.zycxh)
+                                ||Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.wxcxh)
+                        ||Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.sgscxh)?Constants.ZERO:Constants.ONE
+                );
+                platformDataListResponse.setWorkStatus(Constants.ONE);
+                //鏌ヨ浣滀笟鏃堕暱
+                platformDataListResponse.setWorkTime(
+                        this.getWorkTime(platformJob)
+                );
+            }
+        }
+        return platformDataListResponseList;
+    }
+
+    @Override
+    public PlatformDataInfoResponse platformWorkingDataList(PlatformDataInfoRequest param){
+        if(Objects.isNull(param)
+        || Objects.isNull(param.getId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        PlatformDataInfoResponse response = new PlatformDataInfoResponse();
+        Platform platform = platformJoinMapper.selectById(param.getId());
+        if(Objects.isNull(platform)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈堝彴淇℃伅");
+        }
+        response.setId(platform.getId());
+        response.setHkId(platform.getHkId());
+        response.setName(platform.getName());
+
+        PlatformJob platformJob = platformJobJoinMapper.selectJoinOne(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+                        .selectAll(PlatformJob.class)
+                        .selectAs(Platform::getName,PlatformJob::getPlatformName)
+                        .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+                        .selectAs(PlatformWmsJob::getId,PlatformJob::getWmsId)
+                        .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName)
+                        .selectAs(PlatformWmsJob::getRepertotyAddress,PlatformJob::getRepertotyAddress)
+                        .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+                        .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
+                        .eq(PlatformJob::getPlatformId,platform.getId())
+                        .orderByDesc(PlatformJob::getDoneDate)
+        );
+        if(Objects.nonNull(platformJob)){
+            response.setCarCode(platformJob.getCarCodeFront());
+            response.setCarrierName(platformJob.getCarrierName());
+            response.setOrderCode(platformJob.getBillCode());
+            response.setRepertotyAddress(platformJob.getRepertotyAddress());
+            //鏌ヨ渚涘簲鍟嗕俊鎭� 鍙湁瀛樺湪鎵胯繍鍗曞彿鎵嶆湁
+            if(Objects.nonNull(platformJob.getWmsId())){
+                List<PlatformWmsDetail> platformWmsDetailList = platformWmsDetailMapper.selectList(new QueryWrapper<PlatformWmsDetail>().lambda()
+                        .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO)
+                        .eq(PlatformWmsDetail::getJobId,platformJob.getId()));
+                if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformWmsDetailList)){
+                    List<String> stringList = platformWmsDetailList.stream().map(m->m.getInRepertotyCode()).collect(Collectors.toList());
+                    response.setInRepertotyCode(stringList);
+                }
+            }
+        }
+        return response;
+    }
+
+
+    @Override
+    public CarNumByStatusResponse carStatusNum(CarNumByStatusRequest param){
+        CarNumByStatusResponse response = new CarNumByStatusResponse();
+        response.setQueuingNum(
+            platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                    .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                    .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey())
+            )
+        );
+        response.setInNum(
+                platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .and(i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey())
+                                .or()
+                                .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
+                        )
+                )
+        );
+        response.setWorkingNum(
+                platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
+                )
+        );
+        response.setDoneNum(
+                platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.LEAVED.getKey())
+                        .like(PlatformJob::getOutDate,DateUtil.getDate(new Date(),"yyyy-MM-dd"))
+                )
+        );
+        return response;
+    }
+
+
+    @Override
+    public PlatformQueuingListResponse  queueList(PlatformQueuingListRequest param){
+        PlatformQueuingListResponse response = new PlatformQueuingListResponse();
+
+        List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+                .selectAll(PlatformJob.class)
+                .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+                .leftJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId)
+                        .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey())
+                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey())
+                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
+                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                .isNotNull(PlatformJob::getCarCodeFront)
+                .orderByDesc(PlatformJob::getCreateDate)
+                .eq(PlatformGroup::getType,Constants.ZERO));
+
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
+            response.setOutboundList(
+                    platformJobList.stream().map(m->m.getCarCodeFront()).collect(Collectors.toList())
+            );
+        }
+
+        platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+                .selectAll(PlatformJob.class)
+                .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+                .leftJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId)
+                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey())
+                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey())
+                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
+                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                .isNotNull(PlatformJob::getCarCodeFront)
+                .orderByDesc(PlatformJob::getCreateDate)
+                .eq(PlatformGroup::getType,Constants.ONE));
+
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
+            response.setInboundList(
+                    platformJobList.stream().map(m->m.getCarCodeFront()).collect(Collectors.toList())
+            );
+        }
+
+        platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+                .selectAll(PlatformJob.class)
+                .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+                .leftJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId)
+                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey())
+                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey())
+                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
+                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                .isNotNull(PlatformJob::getCarCodeFront)
+                .orderByDesc(PlatformJob::getCreateDate)
+                .eq(PlatformGroup::getType,Constants.TWO));
+
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
+            response.setMunicipalComList(
+                    platformJobList.stream().map(m->m.getCarCodeFront()).collect(Collectors.toList())
+            );
+        }
+        return response;
+    }
+
+
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java
index 4008597..5811b1b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java
@@ -2,9 +2,12 @@
 
 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.PlatformLogMapper;
 import com.doumee.dao.business.model.PlatformLog;
+import com.doumee.dao.openapi.request.CarLogsListRequest;
+import com.doumee.dao.openapi.response.CarLogsListResponse;
 import com.doumee.service.business.PlatformLogService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -14,7 +17,10 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛⊿ervice瀹炵幇
@@ -126,4 +132,30 @@
         QueryWrapper<PlatformLog> wrapper = new QueryWrapper<>(platformLog);
         return platformLogMapper.selectCount(wrapper);
     }
+
+
+
+    @Override
+    public List<CarLogsListResponse> getCarLogsListResponse(CarLogsListRequest carLogsListRequest){
+        List<CarLogsListResponse> carLogsListResponseList = new ArrayList<>();
+
+        List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda()
+                .notIn(PlatformLog::getObjType,
+                        Constants.PlatformJobLogType.CREATE.getKey(),
+                        Constants.PlatformJobLogType.CONFIRM_TASK.getKey()
+                )
+                .orderByDesc(PlatformLog::getCreateDate)
+                .last(Objects.nonNull(carLogsListRequest)&&Objects.nonNull(carLogsListRequest.getLimitNum())," limit " +carLogsListRequest.getLimitNum())
+        );
+        for (PlatformLog platformLog:platformLogList) {
+            CarLogsListResponse carLogsListResponse = new CarLogsListResponse();
+            carLogsListResponse.setCarCode(platformLog.getParam4());
+            carLogsListResponse.setContent(platformLog.getContent());
+            carLogsListResponse.setCreateDate(new Date());
+            carLogsListResponseList.add(carLogsListResponse);
+        }
+        return carLogsListResponseList;
+    }
+
+
 }
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 82709a7..4acdb01 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
@@ -8,9 +8,11 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.PlatformMapper;
+import com.doumee.dao.business.join.PlatformJoinMapper;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Platform;
 import com.doumee.dao.business.model.PlatformGroup;
+import com.doumee.dao.openapi.response.PlatformNumByStatusResponse;
 import com.doumee.service.business.PlatformService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -24,6 +26,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 鏈堝彴淇℃伅琛⊿ervice瀹炵幇
@@ -35,6 +38,8 @@
 
     @Autowired
     private PlatformMapper platformMapper;
+    @Autowired
+    private PlatformJoinMapper platformJoinMapper;
 
     @Override
     public Integer create(Platform platform) {
@@ -65,6 +70,7 @@
     public void updateById(Platform platform) {
         platformMapper.updateById(platform);
     }
+
     @Override
     public void updateStatusById(Platform platform) {
         Platform model  =platformMapper.selectById(platform.getId());
@@ -162,4 +168,35 @@
         QueryWrapper<Platform> wrapper = new QueryWrapper<>(platform);
         return platformMapper.selectCount(wrapper);
     }
+
+
+    @Override
+    public PlatformNumByStatusResponse getPlatformNumByStatusResponse(){
+        PlatformNumByStatusResponse platformNumByStatusResponse = new PlatformNumByStatusResponse();
+        List<Platform> platformList =  platformJoinMapper.selectJoinList(Platform.class,new MPJLambdaWrapper<Platform>()
+                .selectAll(Platform.class)
+                .select(" ( select count(1) from platform_job pj where t.id = pj.PLATFORM_ID and pj.STATUS = "+Constants.PlatformJobStatus.WORKING.getKey()+" ) as workStatus ")
+                .eq(Platform::getIsdeleted,Constants.ZERO)
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformList)){
+            //鍋滅敤鏁伴噺
+            platformNumByStatusResponse.setForbiddenNum(
+                    platformList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size()
+            );
+            //宸ヤ綔鏁伴噺
+            platformNumByStatusResponse.setUsingNum(
+                    platformList.stream().filter(i->i.getWorkStatus()>Constants.ZERO).collect(Collectors.toList()).size()
+            );
+            //绌洪棽鏁伴噺
+            platformNumByStatusResponse.setIdleNum(
+                    platformList.stream().filter(i->i.getWorkStatus()<=Constants.ZERO).collect(Collectors.toList()).size()
+            );
+        }
+        return platformNumByStatusResponse;
+    }
+
+
+
+
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java
index 202d2b0..5ba00a4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java
@@ -12,6 +12,10 @@
 import com.doumee.dao.business.PlatformWaterGasMapper;
 import com.doumee.dao.business.model.PlatformReason;
 import com.doumee.dao.business.model.PlatformWaterGas;
+import com.doumee.dao.openapi.request.GasByMonthRequest;
+import com.doumee.dao.openapi.request.WaterByMonthRequest;
+import com.doumee.dao.openapi.response.GasByMonthResponse;
+import com.doumee.dao.openapi.response.WaterByMonthResponse;
 import com.doumee.service.business.PlatformWaterGasService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -22,9 +26,13 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.RequestBody;
 
+import java.math.BigDecimal;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 鏈堝彴_鐢ㄦ按鐢ㄦ皵淇℃伅璁板綍琛⊿ervice瀹炵幇
@@ -207,4 +215,91 @@
         QueryWrapper<PlatformWaterGas> wrapper = new QueryWrapper<>(platformWaterGas);
         return platformWaterGasMapper.selectCount(wrapper);
     }
+
+
+    @Override
+    public WaterByMonthResponse waterDataByMonth(WaterByMonthRequest param){
+        Date queryDate = (Objects.nonNull(param)&&Objects.nonNull(param.getTimeInfo()))?param.getTimeInfo():new Date();
+        //鑾峰彇涓婁釜鏈堟棩鏈�
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(queryDate);
+        calendar.add(Calendar.MONTH, -1);
+        Date beforMonth = calendar.getTime();
+        calendar.add(Calendar.MONTH, -11);
+        Date beforYearMonth = calendar.getTime();
+
+        WaterByMonthResponse waterByMonthResponse = new WaterByMonthResponse();
+
+        List<PlatformWaterGas> list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+                .eq(PlatformWaterGas::getType,Constants.ZERO)
+                .like(PlatformWaterGas::getTimeInfo,DateUtil.getDate(queryDate,"yyyy-MM"))
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+            waterByMonthResponse.setCurrentMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        }
+
+        list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+                .eq(PlatformWaterGas::getType,Constants.ZERO)
+                .like(PlatformWaterGas::getTimeInfo,beforMonth)
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+            waterByMonthResponse.setLastMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        }
+
+        list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+                .eq(PlatformWaterGas::getType,Constants.ZERO)
+                .like(PlatformWaterGas::getTimeInfo,beforYearMonth)
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+            waterByMonthResponse.setLastYearMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        }
+        return waterByMonthResponse;
+    }
+
+
+    @Override
+    public GasByMonthResponse gasDataByMonth(GasByMonthRequest param){
+        Date queryDate = (Objects.nonNull(param)&&Objects.nonNull(param.getTimeInfo()))?param.getTimeInfo():new Date();
+        //鑾峰彇涓婁釜鏈堟棩鏈�
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(queryDate);
+        calendar.add(Calendar.MONTH, -1);
+        Date beforMonth = calendar.getTime();
+        calendar.add(Calendar.MONTH, -11);
+        Date beforYearMonth = calendar.getTime();
+
+        GasByMonthResponse response = new GasByMonthResponse();
+
+        List<PlatformWaterGas> list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+                .eq(PlatformWaterGas::getType,Constants.ONE)
+                .like(PlatformWaterGas::getTimeInfo,DateUtil.getDate(queryDate,"yyyy-MM"))
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+            response.setCurrentMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        }
+
+        list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+                .eq(PlatformWaterGas::getType,Constants.ONE)
+                .like(PlatformWaterGas::getTimeInfo,beforMonth)
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+            response.setLastMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        }
+
+        list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+                .eq(PlatformWaterGas::getType,Constants.ONE)
+                .like(PlatformWaterGas::getTimeInfo,beforYearMonth)
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+            response.setLastYearMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        }
+        return response;
+    }
+
 }

--
Gitblit v1.9.3