From 29fc101ccd5165a1c3d762ba3a240b1a0ab4ddfe Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 10 九月 2024 13:08:27 +0800
Subject: [PATCH] 代码初始化

---
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                   |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java                 |   41 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java            |    6 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java           |   10 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java        |   87 ++++++++
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java              |   14 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java                     |    7 
 server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java                                    |    7 
 server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java                                     |   51 +++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java       |   17 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java   |   52 +++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java |   24 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/HkBaseTokenRequest.java         |   20 ++
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java         |   58 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformGroupWorkVO.java           |   20 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java |   21 ++
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java                |   98 ++++++++-
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java          |    8 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java                |   21 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java               |   14 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java                |    9 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java        |    4 
 22 files changed, 552 insertions(+), 39 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 57c23f5..09a1473 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
@@ -30,6 +30,7 @@
     public static final String HEADER_USER_TOKEN = "dm_user_token";
     public static final String REDIS_TOKEN_KEY = "token_";
     public static final String REDIS_HK_TOKEN_KEY = "hk_token_";
+    public static final String HK_TOKEN_VALIDITY = "HK_TOKEN_VALIDITY";
     public static final String[]  ALL_SPELL_LIST_FIRST = new String[]{"A", "B", "C", "D", "E", "F", "G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
     public static final int ZERO = 0 ;
     public static final int ONE = 1 ;
@@ -826,6 +827,7 @@
         AUTHED_LEAVE(9, "宸叉巿鏉冪鍥�","宸叉巿鏉冪鍥�" ),
         LEAVED(10, "宸茬鍥� ","宸茬鍥� " ),
         OVER_NUMBER(11, "宸茶繃鍙�","宸茶繃鍙�" ),
+        CANCEL(12, "宸插彇娑�","宸插彇娑�" ),
         ;
 
         // 鎴愬憳鍙橀噺
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
index 3486129..959cc6e 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
@@ -1,5 +1,12 @@
 package com.doumee.core.utils;
 
+import com.alibaba.fastjson.JSONObject;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+
 import javax.crypto.Cipher;
 import javax.crypto.CipherInputStream;
 import javax.crypto.CipherOutputStream;
@@ -9,6 +16,7 @@
 import java.io.*;
 import java.security.Key;
 import java.util.Base64;
+import java.util.concurrent.TimeUnit;
 
 public class DESUtil {
 
@@ -169,4 +177,47 @@
         }
         return null;
     }
+
+
+    /**
+     * 娴峰悍鍔犲瘑
+     * @param userName
+     * @param hour
+     * @return
+     */
+    public static  String generateTokenToHk(String userName,Integer hour, RedisTemplate<String,Object> redisTemplate){
+         long currentTimeMillis = System.currentTimeMillis() + 1000*60*60*hour;
+         String encrypt = DESUtil.encrypt("12345678",currentTimeMillis + "_" + userName );
+         redisTemplate.opsForValue().set(Constants.REDIS_HK_TOKEN_KEY+encrypt, encrypt,1000*60*60*hour, TimeUnit.MILLISECONDS);
+         return encrypt;
+    }
+
+
+    /**
+     * 娴峰悍瑙g爜
+     * @param token
+     * @return
+     */
+    public static String verifyHkToken(String token){
+        String decrypt = DESUtil.decrypt("12345678",token);
+        if(StringUtils.isBlank(decrypt)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token瑙f瀽澶辫触");
+        }
+        try{
+            Integer index_ = decrypt.indexOf("_");
+            long currentTimeMillis = Long.valueOf(decrypt.substring(Constants.ZERO,index_));
+            if(currentTimeMillis<=System.currentTimeMillis()){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token宸茶繃鏈�");
+            }
+            String userName = decrypt.substring(index_+Constants.ONE);
+            return userName ;
+        }catch (Exception e){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token瑙f瀽澶辫触");
+        }
+
+    }
+
+
+
+
 }
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
index a4cd38c..fbd64de 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -2971,6 +2971,13 @@
         return DateToStr(date, "yyyyMMdd");
     }
 
+    public static String afterDateHourToStr(Integer hour){
+        Date date = new Date();
+        Long l = date.getTime()+1000*60*60*hour;
+        date.setTime(l);
+        return DateToStr(date, "yyyyMMdd");
+    }
+
     public static String beforeDateToStr(Integer days){
         Date date = new Date();
         Long l = date.getTime()-1000*60*60*24*days;
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
index 0b00a66..6fb07a9 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -1,6 +1,7 @@
 package com.doumee.cloud.admin;
 
 import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.config.annotation.CloudRequiredPermission;
 import com.doumee.config.annotation.LoginNoRequired;
 import com.doumee.core.annotation.pr.PreventRepeat;
@@ -13,7 +14,9 @@
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DESUtil;
 import com.doumee.dao.business.model.Device;
 import com.doumee.service.business.impl.hksync.*;
 import io.swagger.annotations.Api;
@@ -22,6 +25,7 @@
 import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
@@ -47,6 +51,14 @@
     private HkSyncPushServiceImpl hkSyncPushService;
     @Autowired
     private HkSyncLoginAuthServiceImpl hkSyncLoginAuthService;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private RedisTemplate<String,Object> redisTemplate;
+
+
     @PreventRepeat
     @ApiOperation("銆愭捣搴枫�戝叏閲忓悓姝ユ湀鍙颁俊鎭帴鍙�")
     @PostMapping("/syncPlatforms")
@@ -167,9 +179,12 @@
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type",example = "0",value = "鑿滃崟绫诲瀷", required = true),
     })
-    public ApiResponse<String> getHkMenuLink(Integer type){
-        String token = "";//------------TODO----------搴峰悍缁х画鍐�
-        return ApiResponse.success( HKService.getMenuUrl(type,token));
+    public ApiResponse<String> getHkMenuLink(Integer type,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        LoginUserInfo loginUserInfo = this.getLoginUser(token);
+        String hkToken = DESUtil.generateTokenToHk(loginUserInfo.getUsername(),Integer.valueOf(
+          systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_TOKEN_VALIDITY).getCode()
+        ),redisTemplate);
+        return ApiResponse.success( HKService.getMenuUrl(type,hkToken));
     }
 
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java
index dd1490d..cea4426 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformBooksCloudController.java
@@ -1,21 +1,28 @@
 package com.doumee.cloud.admin;
 
 import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.PlatformBooks;
+import com.doumee.dao.business.model.PlatformReason;
+import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
+import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
+import com.doumee.dao.web.response.DriverHomeVO;
 import com.doumee.service.business.PlatformBooksService;
+import com.doumee.service.business.PlatformReasonService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;    
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,18 +37,20 @@
 
     @Autowired
     private PlatformBooksService platformBooksService;
+    @Autowired
+    private PlatformReasonService platformReasonService;
 
     @PreventRepeat
     @ApiOperation("鏂板缓")
     @PostMapping("/create")
-    @RequiresPermissions("business:platformbooks:create")
+    @CloudRequiredPermission("business:platformbooks:create")
     public ApiResponse create(@RequestBody PlatformBooks platformBooks) {
         return ApiResponse.success(platformBooksService.create(platformBooks));
     }
 
     @ApiOperation("鏍规嵁ID鍒犻櫎")
     @GetMapping("/delete/{id}")
-    @RequiresPermissions("business:platformbooks:delete")
+    @CloudRequiredPermission("business:platformbooks:delete")
     public ApiResponse deleteById(@PathVariable Integer id) {
         platformBooksService.deleteById(id);
         return ApiResponse.success(null);
@@ -49,7 +58,7 @@
 
     @ApiOperation("鎵归噺鍒犻櫎")
     @GetMapping("/delete/batch")
-    @RequiresPermissions("business:platformbooks:delete")
+    @CloudRequiredPermission("business:platformbooks:delete")
     public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
         String [] idArray = ids.split(",");
         List<Integer> idList = new ArrayList<>();
@@ -62,7 +71,7 @@
 
     @ApiOperation("鏍规嵁ID淇敼")
     @PostMapping("/updateById")
-    @RequiresPermissions("business:platformbooks:update")
+    @CloudRequiredPermission("business:platformbooks:update")
     public ApiResponse updateById(@RequestBody PlatformBooks platformBooks) {
         platformBooksService.updateById(platformBooks);
         return ApiResponse.success(null);
@@ -70,22 +79,53 @@
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
-    @RequiresPermissions("business:platformbooks:query")
-    public ApiResponse<PageData<PlatformBooks>> findPage (@RequestBody PageWrap<PlatformBooks> pageWrap) {
+    @CloudRequiredPermission("business:platformbooks:query")
+    public ApiResponse<PageData<PlatformBooks>> findPage (@RequestBody PageWrap<PlatformBooks> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         return ApiResponse.success(platformBooksService.findPage(pageWrap));
     }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
-    @RequiresPermissions("business:platformbooks:exportExcel")
+    @CloudRequiredPermission("business:platformbooks:exportExcel")
     public void exportExcel (@RequestBody PageWrap<PlatformBooks> pageWrap, HttpServletResponse response) {
         ExcelExporter.build(PlatformBooks.class).export(platformBooksService.findPage(pageWrap).getRecords(), "鏈堝彴鍏ュ洯棰勭害淇℃伅琛�", response);
     }
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
-    @RequiresPermissions("business:platformbooks:query")
+    @CloudRequiredPermission("business:platformbooks:query")
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(platformBooksService.findById(id));
     }
+
+
+
+    @ApiOperation("鍏ュ洯鍘熷洜")
+    @GetMapping("/platformReasonList")
+    public ApiResponse<List<PlatformReason>> platformReasonList (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        List<PlatformReason> platformReasons = platformReasonService.findList(null);
+        return ApiResponse.success(platformReasons);
+    }
+
+    @ApiOperation("鏌ヨ鍙绾﹂噺")
+    @PostMapping("/checkSurplusNum")
+    public ApiResponse<BigDecimal> checkSurplusNum (@RequestBody PlatformBooksCheckNumDTO platformBooksCheckNumDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(platformBooksService.checkNum(platformBooksCheckNumDTO));
+    }
+
+    @ApiOperation("鐗╂祦杞﹂绾�")
+    @PostMapping("/apply")
+    public ApiResponse<Integer> apply (@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.apply(platformBooksApplyDTO));
+    }
+
+    @ApiOperation("鐗╂祦杞﹂绾﹁鎯�")
+    @GetMapping("/getDetail")
+    public ApiResponse<PlatformBooks> getDetail (@RequestParam Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        PlatformBooks platformBooks = platformBooksService.getDetail(id,getLoginUser(token).getMemberId());
+        return ApiResponse.success(platformBooks);
+    }
 }
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 5acfa7d..3359739 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
@@ -13,6 +13,7 @@
 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.PlatformGroupWorkVO;
 import com.doumee.dao.web.response.PlatformWorkVO;
 import com.doumee.service.business.PlatformGroupService;
 import com.doumee.service.business.PlatformJobService;
@@ -212,6 +213,19 @@
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
+    @ApiOperation("鎺堟潈绂诲満")
+    @PostMapping("/powerLevel")
+    public ApiResponse powerLevel (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.powerLevel(jobOperateDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+    @ApiOperation("鑾峰彇鏈堝彴缁� 绛夊緟涓庡紓甯告寕璧锋暟鎹�")
+    @GetMapping("/getPlatformGroupWork")
+    public ApiResponse<PlatformGroupWorkVO> getPlatformGroupWork (@RequestParam Integer platformGroupId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(platformGroupService.getPlatformGroupWork(platformGroupId));
+    }
 
 
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
index 5c71da5..f71d7c1 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
@@ -9,6 +9,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.PlatformJob;
+import com.doumee.dao.web.reqeust.JobDetailDTO;
 import com.doumee.service.business.PlatformJobService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -41,7 +42,7 @@
     @GetMapping("/delete/{id}")
     @CloudRequiredPermission("business:platformjob:delete")
     public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
-        platformJobService.deleteById(id);
+        platformJobService.delete(id);
         return ApiResponse.success(null);
     }
 
@@ -81,4 +82,11 @@
     public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         return ApiResponse.success(platformJobService.findById(id));
     }
+
+    @ApiOperation("浠诲姟璇︽儏")
+    @PostMapping("/jobDetail")
+    @CloudRequiredPermission("business:platformjob:query")
+    public ApiResponse<PlatformJob>  jobDetail (@RequestBody JobDetailDTO jobDetailDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        return ApiResponse.success(platformJobService.getDetail(jobDetailDTO));
+    }
 }
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 686dbf0..c2292a7 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
@@ -1,26 +1,32 @@
 package com.doumee.cloud.openapi;
 
+import cn.emay.sdk.util.AES;
 import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.config.annotation.LoginNoRequired;
+import com.doumee.config.jwt.JwtTokenUtil;
 import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DESUtil;
 import com.doumee.dao.openapi.request.*;
 import com.doumee.dao.openapi.response.*;
+import com.doumee.dao.system.model.SystemUser;
 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 com.doumee.service.system.SystemUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 /**
  * @author 姹熻箘韫�
@@ -43,75 +49,135 @@
     @Autowired
     private PlatformWaterGasService platformWaterGasService;
 
+    @Autowired
+    private SystemUserService systemUserService;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private RedisTemplate<String,Object> redisTemplate;
+
+    @LoginNoRequired
+    @ApiOperation("token瑙f瀽")
+    @GetMapping("/water/decodeToken")
+    public ApiResponse<Map<String,Object>> decodeToken(@RequestParam String token) {
+        HkBaseTokenRequest hkBaseTokenRequest = new HkBaseTokenRequest();
+        hkBaseTokenRequest.setToken(token);
+        return ApiResponse.success(this.decodeTokenForHk(hkBaseTokenRequest));
+    }
+
+
+    public Map<String,Object> decodeTokenForHk(HkBaseTokenRequest hkBaseTokenRequest){
+        if(Objects.isNull(hkBaseTokenRequest)||StringUtils.isBlank(hkBaseTokenRequest.getToken())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"token鍙傛暟涓虹┖");
+        }
+        String redisToken = (String) redisTemplate.opsForValue().get(Constants.REDIS_HK_TOKEN_KEY+hkBaseTokenRequest.getToken());
+        if(StringUtils.isBlank(redisToken)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token瑙f瀽澶辫触");
+        }
+
+        String userName = DESUtil.verifyHkToken(hkBaseTokenRequest.getToken());
+        if(StringUtils.isBlank(userName)){
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"token瑙f瀽澶辫触");
+        }
+        //鏌ヨ鐢ㄦ埛淇℃伅鏄惁瀛樺湪
+        SystemUser systemUser = new SystemUser();
+        systemUser.setUsername(userName);
+        systemUser.setDeleted(Boolean.FALSE);
+        SystemUser queryBean = systemUserService.findOne(systemUser);
+        if(Objects.isNull(queryBean)){
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"token瑙f瀽澶辫触");
+        }
+        if(Constants.equalsInteger(queryBean.getStatus(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"鐢ㄦ埛宸茬鐢�");
+        }
+        redisTemplate.delete(Constants.REDIS_HK_TOKEN_KEY+hkBaseTokenRequest.getToken());
+        Map<String,Object> result = new HashMap<>();
+        result.put("userId",userName);
+        return result;
+    }
+
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愮敤姘撮噺銆戞湰鏈堛�佷笂鏈堝拰鍘诲勾鍚屾湀")
     @PostMapping("/water/dataByMonth")
-    @LoginNoRequired
     public ApiResponse<WaterByMonthResponse> waterDataByMonth(@RequestBody WaterByMonthRequest param) {
         return ApiResponse.success(platformWaterGasService.waterDataByMonth(param));
     }
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愮敤姘旈噺銆戞湰鏈堛�佷笂鏈堝拰鍘诲勾鍚屾湀")
     @PostMapping("/gas/dataByMonth")
-    @LoginNoRequired
     public ApiResponse<GasByMonthResponse> gasDataByMonth(@RequestBody GasByMonthRequest param) {
         return ApiResponse.success(platformWaterGasService.gasDataByMonth(param));
     }
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞寜澶╃粺璁¤繍鍗曡姹傚弬鏁�")
     @PostMapping("/platform/orderNumByDate")
-    @LoginNoRequired
     public ApiResponse<PlatformOrderNumByDateResponse> orderNumByDate(@RequestBody PlatformOrderNumByDateRequest param) {
         return ApiResponse.success(platformJobService.orderNumByDate(param));
     }
+
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞湀鍙扮姸鎬佹暟閲忕粺璁�")
     @PostMapping("/platform/totalNumByStatus")
-    @LoginNoRequired
     public ApiResponse<PlatformNumByStatusResponse> totalNumByStatus(@RequestBody PlatformNumByStatusRequest param) {
         return ApiResponse.success(platformService.getPlatformNumByStatusResponse());
     }
+
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞湀鍙板綋鍓嶄綔涓氫俊鎭垪琛�")
     @PostMapping("/platform/workingDataList")
-    @LoginNoRequired
     public ApiResponse<List<PlatformDataListResponse>> platformWorkingDataList(@RequestBody PlatformDataListRequest param) {
         return ApiResponse.success(platformJobService.platformWorkingDataList(param));
     }
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞湀鍙颁綔涓氳鎯呬俊鎭�")
     @PostMapping("/platform/workDataInfo")
-    @LoginNoRequired
     public ApiResponse<PlatformDataInfoResponse> platformWorkingDataList(@RequestBody PlatformDataInfoRequest param) {
         return ApiResponse.success(platformJobService.platformWorkingDataList(param));
     }
+
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戝綋鍓嶈溅杈嗙姸鎬佹暟閲忕粺璁�")
     @PostMapping("/platform/carStatusNum")
-    @LoginNoRequired
     public ApiResponse<CarNumByStatusResponse> carStatusNum(@RequestBody CarNumByStatusRequest param) {
         return ApiResponse.success(platformJobService.carStatusNum(param));
     }
 
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戣溅杈嗕簨浠跺垪琛ㄦ暟鎹泦鍚堬紙鏈�鏂癗鏉★級")
     @PostMapping("/platform/carLogsList")
-    @LoginNoRequired
     public ApiResponse<List<CarLogsListResponse>> carLogsList(@RequestBody CarLogsListRequest param) {
         return ApiResponse.success(platformLogService.getCarLogsListResponse(param));
     }
+
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戞帓闃熼槦鍒楀垪琛ㄩ泦鍚�")
     @PostMapping("/platform/queueList")
-    @LoginNoRequired
     public ApiResponse<PlatformQueuingListResponse> queueList(@RequestBody PlatformQueuingListRequest param) {
         return ApiResponse.success(platformJobService.queueList(param));
     }
 
+    @LoginNoRequired
     @PreventRepeat
     @ApiOperation("銆愭湀鍙般�戦璀︿簨浠堕泦鍚堝垪琛�")
     @PostMapping("/platform/warningEventList")
-    @LoginNoRequired
     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/config/swagger/SwaggerConfig.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
index be7e9e7..eff6a72 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -52,8 +52,11 @@
                 .apiInfo(this.getApiInfo()).groupName("default")
                 .host(host)
                 .select()
-                .apis( basePackage("com.doumee.cloud.openapi;com.doumee.api.common"))
-//                .apis( basePackage("com.doumee.cloud.openapi;"))
+                .apis( basePackage("com.doumee.cloud"))
+//                .apis( basePackage("com.doumee.api.common"))
+
+//                .apis( basePackage("com.doumee.cloud.openapi;com.doumee.api.common"))
+//                .apis( basePackage("com.doumee.cloud.openapi"))
                 // 璁剧疆闇�瑕佽鎵弿鐨勭被锛岃繖閲岃缃负娣诲姞浜咢Api娉ㄨВ鐨勭被
 //                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                 .paths(PathSelectors.any())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java
new file mode 100644
index 0000000..287cbc1
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java
@@ -0,0 +1,87 @@
+package com.doumee.dao.admin.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/2/26 11:02
+ */
+@Data
+@ApiModel("PC绔伐浣滃彴鏁版嵁")
+public class PCWorkPlatformDataVO {
+
+    @ApiModelProperty(value = "浠婃棩鍦ㄥ洯浜烘暟")
+    private Long todayInParkUserNum;
+
+    @ApiModelProperty(value = "浠婃棩鍏ュ洯浜烘暟")
+    private Long todayInUserNum;
+
+    @ApiModelProperty(value = "浠婃棩绂诲洯浜烘暟")
+    private Long todayOutUserNum;
+
+
+    @ApiModelProperty(value = "鍦ㄥ洯璁垮浜烘暟")
+    private Long inParkVisitUserNum;
+
+    @ApiModelProperty(value = "璁垮浜烘")
+    private Long visitUserNum;
+
+    @ApiModelProperty(value = "绛剧浜烘")
+    private Long signLevelNum;
+
+
+    @ApiModelProperty(value = "鍦ㄥ洯闀挎湡鐩稿叧鏂逛汉鏁�")
+    private Long inParkLwUserNum;
+
+    @ApiModelProperty(value = "鍏ュ洯浜烘")
+    private Long lwUserInNum;
+
+    @ApiModelProperty(value = "鍑哄洯浜烘")
+    private Long lwUserOutNum;
+
+
+    @ApiModelProperty(value = "浠婃棩鍦ㄥ洯杞﹁締")
+    private Long todayInParkCarNum;
+
+    @ApiModelProperty(value = "鍏ュ洯杞︽")
+    private Long todayInCarNum;
+
+    @ApiModelProperty(value = "鍑哄洯杞︽")
+    private Long todayOutCarNum;
+
+
+
+
+
+    @ApiModelProperty(value = "璁垮浜哄憳")
+    private Long visitorCount;
+
+    @ApiModelProperty(value = "鍔冲姟浜哄憳")
+    private Long lwCount;
+
+    @ApiModelProperty(value = "鍦ㄥ満杞﹁締")
+    private Long presenceCarCount;
+
+    @ApiModelProperty(value = "棰勭害杞﹁締")
+    private Long visitorCarCount;
+
+    @ApiModelProperty(value = "闀挎湡杞﹁締")
+    private Long longCarCount;
+
+    @ApiModelProperty(value = "渚涘簲鍟嗘暟閲�")
+    private Long supplierCount;
+
+    @ApiModelProperty(value = "鍔冲姟鍏徃浜哄憳鏁�")
+    private List<Map<String,Object>> companyUsers;
+
+    @ApiModelProperty(value = "婊炵暀浜哄憳鏁版嵁")
+    private List<Map<String,Object>> retentionUsers;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
index 12e06bd..ff5947f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
@@ -69,7 +69,6 @@
 
     @ApiModelProperty(value = "棰勮鍒板満鏃堕棿")
     @ExcelColumn(name="棰勮鍒板満鏃堕棿")
-  
     private Date arriveDate;
 
     @ApiModelProperty(value = "鍏ュ簱绫诲瀷 0鏁存墭鐩� 1浠剁儫", example = "1")
@@ -140,6 +139,19 @@
     @TableField(exist = false)
     private String prefixUrl;
 
+    @ApiModelProperty(value = "棰勮鍒板満寮�濮嬫椂闂�")
+    @TableField(exist = false)
+    private Date arriveDateStart;
+
+    @ApiModelProperty(value = "棰勮鍒板満缁撴潫鏃堕棿")
+    @TableField(exist = false)
+    private Date arriveDateEnd;
+
+    @ApiModelProperty(value = "瀹℃壒浜哄悕绉�")
+    @TableField(exist = false)
+    private String auditName;
+
+
     @ApiModelProperty(value = "瀹℃壒淇℃伅鏁版嵁")
     @TableField(exist = false)
     private ApproveDataVO approveDateVO;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
index c916a3d..8125540 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
@@ -59,8 +59,8 @@
     @ExcelColumn(name="澶囨敞")
     private String remark;
 
-    @ApiModelProperty(value = "鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�", example = "1")
-    @ExcelColumn(name="鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�")
+    @ApiModelProperty(value = "鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�  12鍙栨秷锛圵MS锛�" , example = "1")
+    @ExcelColumn(name="鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�  12鍙栨秷锛圵MS锛�")
     private Integer status;
 
     @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
@@ -206,12 +206,17 @@
 
     @ApiModelProperty(value = "杞﹁締绂诲巶涓嬪彂鏃堕棿")
     @ExcelColumn(name="杞﹁締绂诲巶涓嬪彂鏃堕棿")
-  
     private Date outHkdate;
 
     @ApiModelProperty(value = "杞﹁締绂诲巶涓嬪彂澶囨敞")
     @ExcelColumn(name="杞﹁締绂诲巶涓嬪彂澶囨敞")
     private String outHkinfo;
+
+
+    @ApiModelProperty(value = "绂诲満涓嬪彂鎿嶄綔浜�", example = "1")
+    @ExcelColumn(name="绂诲満涓嬪彂鎿嶄綔浜�")
+    private Integer outUserId;
+
 
     @ApiModelProperty(value = "杞﹁締杩涘巶涓嬪彂鐘舵�� 0寰呬笅鍙� 1涓嬪彂涓� 2涓嬪彂鎴愬姛 3涓嬪彂澶辫触", example = "1")
     @ExcelColumn(name="杞﹁締杩涘巶涓嬪彂鐘舵�� 0寰呬笅鍙� 1涓嬪彂涓� 2涓嬪彂鎴愬姛 3涓嬪彂澶辫触")
@@ -277,6 +282,11 @@
     @ExcelColumn(name="鎬昏繍杈撻噺")
     private BigDecimal totalNum;
 
+    @ApiModelProperty(value = "纭浠诲姟鏃堕棿")
+    @ExcelColumn(name="纭浠诲姟鏃堕棿")
+    private Date confirmTaskDate;
+
+
     @ApiModelProperty(value = "鍓嶆柟鎺掗槦鏁伴噺", example = "1")
     @TableField(exist = false)
     private Integer lineUpNum;
@@ -292,6 +302,11 @@
     @ApiModelProperty(value = "浣滀笟鏈堝彴鍚嶇О")
     @TableField(exist = false)
     private String platformName ;
+
+
+    @ApiModelProperty(value = "绂诲満涓嬪彂鎿嶄綔浜哄悕绉�", example = "1")
+    @TableField(exist = false)
+    private String outUserName;
 
     @ApiModelProperty(value = "wms涓氬姟涓婚敭")
     @TableField(exist = false)
@@ -336,6 +351,26 @@
     @TableField(exist = false)
     private Integer callType;
 
+    @ApiModelProperty(value = "浣滀笟绫诲瀷 0=瀹夋嘲鐗╂祦杞︿换鍔★紱1=甯傚叕鍙歌溅", example = "1")
+    @TableField(exist = false)
+    private Integer jobType;
+
+    @ApiModelProperty(value = "寮�濮嬩换鍔℃椂闂磋捣")
+    @TableField(exist = false)
+    private Date beginWorkDateStart;
+
+    @ApiModelProperty(value = "寮�濮嬩换鍔℃椂闂存")
+    @TableField(exist = false)
+    private Date beginWorkDateEnd;
+
+    @ApiModelProperty(value = "澶氱姸鎬佹煡璇� 澶氫釜浠�,鍒嗗壊")
+    @TableField(exist = false)
+    private String queryStatus;
+
+    @ApiModelProperty(value = "鐢靛瓙閿佺姸鎬侊細0=鏈笂閿� 1=涓嶅垎涓婇攣 2=鍏ㄩ儴涓婇攣")
+    @TableField(exist = false)
+    private Integer  lockStatus;
+
     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/openapi/request/HkBaseTokenRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/HkBaseTokenRequest.java
new file mode 100644
index 0000000..a324ca1
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/HkBaseTokenRequest.java
@@ -0,0 +1,20 @@
+package com.doumee.dao.openapi.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/12/7 11:19
+ */
+@Data
+@ApiModel("娴峰悍澶у睆BaseToken")
+public class HkBaseTokenRequest {
+
+    @ApiModelProperty(value = "token")
+    private String token;
+
+}
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 816c6db..65c78c0 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
@@ -18,8 +18,10 @@
  */
 @Data
 @ApiModel("鏈湀銆佷笂鏈堛�佸幓骞村悓鏈堢敤姘撮噺璇锋眰鍙傛暟")
-public class WaterByMonthRequest {
+public class WaterByMonthRequest extends HkBaseTokenRequest{
+
     @ApiModelProperty(value = "骞存湀淇℃伅锛屾牸寮忥細yyyy-MM",example = "2024-08")
     @JsonFormat(pattern = "yyyy-MM")
     private Date timeInfo;
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformGroupWorkVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformGroupWorkVO.java
new file mode 100644
index 0000000..b4dba48
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformGroupWorkVO.java
@@ -0,0 +1,20 @@
+package com.doumee.dao.web.response;
+
+import com.doumee.dao.business.model.PlatformJob;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("鏈堝彴浠诲姟鏁版嵁")
+public class PlatformGroupWorkVO {
+
+    @ApiModelProperty(value = "绛夊緟鏁伴噺")
+    private Long waitNum ;
+
+    @ApiModelProperty(value = "寮傚父鏁伴噺")
+    private Long exceptionNum ;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java
index e6e7570..a161b3e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java
@@ -117,4 +117,13 @@
     ApproveDataVO arrangeApprovedData(Integer businessId, Integer businessType, Integer memberId);
 
     void approved(ApproveDTO approveDTO);
+
+    /**
+     * 鏍规嵁涓氬姟涓婚敭鏌ヨ 瀹℃壒浜哄悕绉�
+     * @param businessId
+     * @param businessType
+     * @return
+     */
+    String getApproveUserName(Integer businessId,Integer businessType);
+
 }
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 1b843fc..f558b09 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
@@ -5,6 +5,7 @@
 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.PlatformGroupWorkVO;
 import com.doumee.dao.web.response.PlatformWorkVO;
 
 import java.util.List;
@@ -110,6 +111,11 @@
     List<PlatformGroup> getAllPlatformGroup(PlatformDataDTO platformDataDTO, LoginUserInfo loginUserInfo);
 
 
-
+    /**
+     * 鑾峰彇鏈堝彴缁� 绛夊緟涓庡紓甯告暟鎹�
+     * @param platformGroupId
+     * @return
+     */
+    PlatformGroupWorkVO getPlatformGroupWork(Integer platformGroupId);
 
 }
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 483569a..d82cd9f 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
@@ -36,6 +36,7 @@
      */
     void deleteById(Integer id);
 
+    void delete(Integer id);
     /**
      * 鍒犻櫎
      *
@@ -181,6 +182,11 @@
     void finishWork(JobOperateDTO jobOperateDTO);
 
     /**
+     * 鎵嬪姩鎺堟潈杞﹁締绂诲満
+     * @param jobOperateDTO
+     */
+    void powerLevel(JobOperateDTO jobOperateDTO);
+    /**
      * 鑾峰彇鏈堝彴涓嬬殑浠诲姟淇℃伅
      * @param groupId
      * @param loginUserInfo
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 9cef87e..9fca5c3 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
@@ -1050,6 +1050,23 @@
         return Constants.ZERO;
     }
 
+    @Override
+    public String getApproveUserName(Integer businessId,Integer businessType){
+         List<Approve> approveList = approveJoinMapper.selectJoinList(Approve.class,new MPJLambdaWrapper<Approve>()
+                 .selectAll(Approve.class)
+                 .selectAs(Member::getName,Approve::getMemberName)
+                 .leftJoin(Member.class,Member::getId,Approve::getChekorId)
+                .eq(Approve::getObjId,businessId)
+                .eq(Approve::getObjType,businessType)
+                .eq(Approve::getType,Constants.ZERO)
+                .eq(Approve::getStatus,Constants.approveStatus.auditIng)
+        );
+         if(CollectionUtils.isNotEmpty(approveList)){
+             List<String> names = approveList.stream().map(m->m.getMemberName()).collect(Collectors.toList());
+             return String.join(",",names);
+         }
+         return null;
+    }
 
 
 
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 e47c027..e9b3d38 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.system.join.NoticesJoinMapper;
 import com.doumee.dao.web.reqeust.ConfirmTaskDTO;
 import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
 import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
@@ -51,6 +52,9 @@
 
     @Autowired
     private PlatformBooksMapper platformBooksMapper;
+
+    @Autowired
+    private NoticesJoinMapper noticesJoinMapper;
 
     @Autowired
     private ApproveTemplMapper approveTemplMapper;
@@ -159,10 +163,24 @@
                 .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())
+                .ge(pageWrap.getModel().getArriveDateStart() != null, PlatformBooks::getArriveDate, Utils.Date.getStart(pageWrap.getModel().getArriveDateStart()))
+                .le(pageWrap.getModel().getArriveDateEnd() != null, PlatformBooks::getArriveDate, Utils.Date.getEnd(pageWrap.getModel().getArriveDateEnd()))
                 .orderByDesc(PlatformBooks::getCreateDate)
         ;
-        return PageData.from(platformBooksMapper.selectPage(page, queryWrapper));
+        PageData<PlatformBooks> pageData = PageData.from(platformBooksMapper.selectPage(page, queryWrapper));
+        for (PlatformBooks platformBooks:pageData.getRecords()) {
+            if(Constants.equalsInteger(platformBooks.getStatus(),Constants.ONE)){
+                String auditName = approveService.getApproveUserName(platformBooks.getId(),Constants.approveObjectType.reason);
+                platformBooks.setAuditName(auditName);
+            }
+        }
+
+        return pageData;
     }
+
+
+
+
 
     @Override
     public long count(PlatformBooks platformBooks) {
@@ -236,6 +254,7 @@
         platformBooks.setIsdeleted(Constants.ZERO);
         platformBooks.setStatus(Constants.ZERO);
         platformBooks.setDriverId(platformBooksApplyDTO.getUserId());
+        platformBooks.setEditDate(new Date());
         platformBooksMapper.insert(platformBooks);
 
         //鍒涘缓瀹℃壒娴佷俊鎭�
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 578a97b..7257cc8 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
@@ -17,6 +17,7 @@
 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.PlatformGroupWorkVO;
 import com.doumee.dao.web.response.PlatformWorkVO;
 import com.doumee.service.business.PlatformGroupService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -303,5 +304,28 @@
 
 
 
+    @Override
+    public PlatformGroupWorkVO getPlatformGroupWork(Integer platformGroupId){
+        PlatformGroupWorkVO platformGroupWorkVO = new PlatformGroupWorkVO();
+        platformGroupWorkVO.setExceptionNum(platformJobJoinMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                .eq(PlatformJob::getPlatformGroupId,platformGroupId)
+                .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.EXCEPTION.getKey())
+            )
+        );
+
+        platformGroupWorkVO.setWaitNum(platformJobJoinMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                        .eq(PlatformJob::getPlatformGroupId,platformGroupId)
+                        .in(PlatformJob::getStatus,
+                                Constants.PlatformJobStatus.WAIT_CALL.getKey(),
+                                Constants.PlatformJobStatus.IN_WAIT.getKey(),
+                                Constants.PlatformJobStatus.CALLED.getKey()
+
+                        )
+                )
+        );
+        return platformGroupWorkVO;
+    }
+
+
 }
 
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 a4b0ac7..0432147 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
@@ -17,6 +17,7 @@
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.openapi.request.*;
 import com.doumee.dao.openapi.response.*;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.web.reqeust.*;
 import com.doumee.dao.web.response.DriverHomeVO;
 import com.doumee.dao.web.response.LineUpVO;
@@ -94,6 +95,15 @@
         platformJobMapper.deleteById(id);
     }
 
+
+    @Override
+    public void delete(Integer id) {
+        platformJobMapper.update(null,new UpdateWrapper<PlatformJob>().lambda()
+                        .set(PlatformJob::getIsdeleted,Constants.ONE)
+                        .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey())
+                .eq(PlatformJob::getId,id));
+    }
+
     @Override
     public void delete(PlatformJob platformJob) {
         UpdateWrapper<PlatformJob> deleteWrapper = new UpdateWrapper<>(platformJob);
@@ -150,8 +160,10 @@
                 .selectAs(Platform::getName,PlatformJob::getPlatformName)
                 .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
                 .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName)
+                .selectAs(SystemUser::getUsername,PlatformJob::getOutUserName)
                 .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                 .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
+                .leftJoin(SystemUser.class,SystemUser::getId,PlatformJob::getOutUserId)
                 .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()))
@@ -225,6 +237,12 @@
                 .eq(pageWrap.getModel().getInType() != null, PlatformJob::getInType, pageWrap.getModel().getInType())
                 .eq(pageWrap.getModel().getTotalNum() != null, PlatformJob::getTotalNum, pageWrap.getModel().getTotalNum())
                 .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId())
+
+                .apply(pageWrap.getModel().getQueryStatus() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatus()+"')")
+                .ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getStartDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart()))
+                .le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd()))
+                .eq(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ONE,pageWrap.getModel().getJobType()), PlatformJob::getType, Constants.platformJobType.sgscxh)
+                .ne(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ZERO,pageWrap.getModel().getJobType()), PlatformJob::getType, Constants.platformJobType.sgscxh)
         ;
 
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
@@ -275,7 +293,7 @@
                                 .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"))
+//                .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(new Date(),"yyyy-MM-dd"))
                 .orderByDesc(PlatformJob::getStatus)
         ;
         IPage<PlatformJob> platformJobIPage = platformJobJoinMapper.selectJoinPage(page,PlatformJob.class,queryWrapper);
@@ -946,6 +964,38 @@
 
 
     /**
+     * 鎺堟潈绂诲洯
+     */
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public void powerLevel(JobOperateDTO jobOperateDTO){
+        if(Objects.isNull(jobOperateDTO)
+                || 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.DONE.getKey())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�");
+        }
+        PlatformJob oldPlatformJob = new PlatformJob();
+        BeanUtils.copyProperties(platformJob,oldPlatformJob);
+        platformJob.setOutUserId(jobOperateDTO.getLoginUserInfo().getId());
+        platformJob.setOutHkdate(new Date());
+        platformJob.setStatus(Constants.PlatformJobStatus.AUTHED_LEAVE.getKey());
+        platformJob.setEditDate(new Date());
+        platformJobMapper.updateById(platformJob);
+        //瀛樺偍鎿嶄綔鏃ュ織
+        savePlatformLog(Constants.PlatformJobLogType.AUTHED_LEAVE.getKey(),oldPlatformJob,platformJob ,
+                Constants.PlatformJobLogType.AUTHED_LEAVE.getInfo());
+
+        //TODO 鎺堟潈杞﹁締绂诲満鏉冮檺
+    }
+
+
+    /**
      * 鏈堝彴鐩告満鎺ㄩ�� 寮�濮嬩綔涓�
      * @param jobOperateDTO
      */

--
Gitblit v1.9.3