From 9aa75d91eb3f854c9d2001b3e3ae1743a51dd476 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期六, 12 十月 2024 16:27:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 admin/src/views/task/visSubDetail.vue                                                                      |    4 
 admin/src/views/task/driverDetail.vue                                                                      |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/InterestedListVO.java            |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java                 |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InoutDayCountService.java          |   97 +++++++
 admin/src/views/platform/queueUp.vue                                                                       |    7 
 h5/utils/config.js                                                                                         |    4 
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/InoutDayCountController.java             |   90 ++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java        |   49 +--
 admin/src/views/platform/components/PlatformSign.vue                                                       |   19 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java               |   15 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java                 |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutDayCount.java               |  107 ++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/InoutDayCountMapper.java               |   12 
 admin/src/views/index.vue                                                                                  |   19 
 /dev/null                                                                                                  |   48 ---
 admin/src/api/workbench/index.js                                                                           |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java                   |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutDayCountServiceImpl.java |  170 +++++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/RetentionMapper.java                   |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java        |  107 ++++++++
 21 files changed, 674 insertions(+), 105 deletions(-)

diff --git a/admin/src/api/workbench/index.js b/admin/src/api/workbench/index.js
index 815b79b..e6dcdcb 100644
--- a/admin/src/api/workbench/index.js
+++ b/admin/src/api/workbench/index.js
@@ -23,4 +23,10 @@
 // 浠诲姟涓績澶撮儴
 export function getWorkbenchTaskHead (data) {
   return request.post('/visitsAdmin/cloudService/business/staging/taskCenterHeadPC', data)
+}
+// pc宸ヤ綔鍙�
+export function getWorkbenchData (data) {
+  return request.get('/visitsAdmin/cloudService/business/staging/pCWorkPlatformData', {
+    params: {...data  }
+  })
 }
\ No newline at end of file
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index 2fbeab3..16c38ad 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -226,8 +226,7 @@
 import * as echarts from 'echarts'
 import { weeks } from '@/utils/config'
 import {
-  getWorkbenchBody,
-  getWorkbenchHead,
+  getWorkbenchData,
   getAppHeaderNav
 } from '@/api'
 const colors = ['#52a4f7', '#7678f7', '#5fc6d5']
@@ -283,10 +282,10 @@
       this.initEchart4()
     },
     getWorkBody() {
-      getWorkbenchBody()
+      getWorkbenchData({queryType: 2})
     },
     getWorkHead() {
-      getWorkbenchHead()
+      getWorkbenchData({queryType: 1})
     },
     initEchart1() {
       const myChart = echarts.init(document.getElementById('echart1'))
@@ -458,9 +457,9 @@
             symbol: 'circle',
             symbolSize: 10,
             itemStyle: {
-              normal: {
-                color: '#207FF7' // 鎶樼嚎鐐圭殑棰滆壊
-              }
+              borderWidth: 1,
+              borderColor: '#fff',
+              color: '#207FF7'
             },
             smooth: false
           }
@@ -557,9 +556,9 @@
             symbol: 'circle',
             symbolSize: 10,
             itemStyle: {
-              normal: {
-                color: '#42D49D' // 鎶樼嚎鐐圭殑棰滆壊
-              }
+              borderWidth: 1,
+              borderColor: '#fff',
+              color: '#42D49D' // 鎶樼嚎鐐圭殑棰滆壊
             },
             smooth: false
           }
diff --git a/admin/src/views/platform/components/PlatformSign.vue b/admin/src/views/platform/components/PlatformSign.vue
index 1ff8326..c9d2191 100644
--- a/admin/src/views/platform/components/PlatformSign.vue
+++ b/admin/src/views/platform/components/PlatformSign.vue
@@ -45,8 +45,8 @@
             </div>
           </div>
           <div class="footer df_sb">
-            <div @click="handleDetail(item)" v-if="item.type != 4" class="detail">杩愬崟璇︽儏</div>
-            <div v-else></div>
+            <div @click="handleDetail(item)" v-if="item.billCode" class="detail">杩愬崟璇︽儏</div>
+            <div @click="subDetail(item)" v-else class="detail">棰勭害璇︽儏</div>
             <el-button type="primary" @click="handleCall(item)">绛惧埌</el-button>
           </div>
         </div>
@@ -55,6 +55,7 @@
       </pagination>
     </div>
     <WaybillDetailRef v-if="isShowDetail" ref="WaybillDetailRef" />
+    <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" />
   </GlobalWindow>
 </template>
 
@@ -62,6 +63,7 @@
 import GlobalWindow from '@/components/common/GlobalWindow'
 import Pagination from '@/components/common/Pagination'
 import WaybillDetailRef from "./WaybillDetail.vue"
+import DriverDetail from "@/views/task/driverDetail.vue"
 import { platformJobPage, platformJobSign } from '@/api'
 import { statusMap } from '../config'
 import { Message } from 'element-ui'
@@ -69,13 +71,15 @@
   components: {
     GlobalWindow,
     Pagination,
-    WaybillDetailRef
+    WaybillDetailRef,
+    DriverDetail
   },
   data() {
     return {
       statusMap,
       isShowModal: false,
       isShowDetail: false,
+      isShowDriver: false,
       subLoading: false,
       pagination: {
         total: 0,
@@ -108,6 +112,15 @@
         this.pagination.total = res.total
       })
     },
+    subDetail(row) {
+      this.isShowDriver = true
+      this.$nextTick(() => {
+        this.$refs.DriverDetailRef.id = row.bookId
+        this.$refs.DriverDetailRef.type = row.objType
+        this.$refs.DriverDetailRef.getDetail()
+        this.$refs.DriverDetailRef.isShowModal = true
+      })
+    },
     handleDetail(row) {
       this.isShowDetail = true
       this.$nextTick(() => {
diff --git a/admin/src/views/platform/queueUp.vue b/admin/src/views/platform/queueUp.vue
index 9d04a1e..173ad1f 100644
--- a/admin/src/views/platform/queueUp.vue
+++ b/admin/src/views/platform/queueUp.vue
@@ -44,7 +44,9 @@
       <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" />
       <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right">
         <template slot-scope="{ row }">
-          <el-button v-if="activeGroup.type == 2" type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button>
+          <el-button v-if="row.billCode" type="text" @click="handleDetail(row)"
+            v-permissions="['business:company:update']">杩愬崟璇︽儏</el-button>
+          <el-button v-else type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -71,8 +73,9 @@
       <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" />
       <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right">
         <template slot-scope="{ row }">
-          <el-button type="text" @click="handleDetail(row)"
+          <el-button v-if="row.billCode" type="text" @click="handleDetail(row)"
             v-permissions="['business:company:update']">杩愬崟璇︽儏</el-button>
+          <el-button v-else type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button>
         </template>
       </el-table-column>
     </el-table>
diff --git a/admin/src/views/task/driverDetail.vue b/admin/src/views/task/driverDetail.vue
index 2856745..82ff153 100644
--- a/admin/src/views/task/driverDetail.vue
+++ b/admin/src/views/task/driverDetail.vue
@@ -69,7 +69,7 @@
             <div class="content">
               <div class="head">
                 <div class="event">{{ item.title }}</div>
-                <div class="time">{{ item.createDate }}</div>
+                <div class="time">{{ item.checkDate }}</div>
               </div>
               <div class="name_wrap">
                 <span>{{ item.memberName }}<span v-if="item.statusInfo" class="status">({{ item.statusInfo
@@ -134,7 +134,7 @@
       id: '',
       type: '',
 
-      title: '璁垮棰勭害璇︽儏',
+      title: '鐗╂祦杞﹂绾﹁鎯�',
       isShowModal: false,
       info: {},
       isShowAppr: false,
diff --git a/admin/src/views/task/visSubDetail.vue b/admin/src/views/task/visSubDetail.vue
index cb47f45..ce0413c 100644
--- a/admin/src/views/task/visSubDetail.vue
+++ b/admin/src/views/task/visSubDetail.vue
@@ -115,7 +115,7 @@
                   <div class="company">
                     {{ item.memberName }}
                     <div style="display: inline" v-if="item.statusInfo != null && item.statusInfo != ''">
-                      锛�<span class="status" :class="{ padding: item.statusInfo == '澶勭悊涓�' || item.status == '1' }">{{
+                      锛�<span :class="{ padding: item.statusInfo == '澶勭悊涓�' || item.status == '1' }">{{
                         item.statusInfo || ""
                         }}</span>锛�
                     </div>
@@ -130,7 +130,7 @@
             " class="remark">
               {{ item.checkInfo || "" }}
             </div>
-            <div v-if="item.approveType == 1 || item.approveType == 0" class="childList">
+            <div v-if="item.approveType == 1" class="childList">
               <div class="m_content company" v-for="item1 in item.approveList" :key="item1.id">
                 <img v-if="item1.faceImg != null && item1.faceImg != ''" :src="item1.faceImg" class="avatar" alt="" />
                 <img v-if="item1.faceImg == null || item1.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
diff --git a/h5/utils/config.js b/h5/utils/config.js
index d4d7d3a..d600971 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -1,5 +1,7 @@
 
-export const baseUrl = 'admin_interface/'
+// export const baseUrl = 'admin_interface/'
+export const baseUrl = 'http://192.168.0.173/gateway_interface/'
+
 export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
 export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`
 
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxMiniConfig.java b/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxMiniConfig.java
deleted file mode 100644
index 4a85ef7..0000000
--- a/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxMiniConfig.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.doumee.core.wx;
-
-import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
-import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
-import com.doumee.config.mybatis.SpringUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-
-import javax.annotation.PostConstruct;
-
-/**
- * 寰俊灏忕▼搴忕粍浠�
- */
-@Configuration
-public class WxMiniConfig {
-    public static WxMaService wxMaService;
-
-    @Autowired
-    private WxPayProperties wxPayProperties;
-
-    public static WxMiniConfig me() {
-        return SpringUtils.get().getBean(WxMiniConfig.class);
-    }
-
-    @PostConstruct
-    void init() {
-        this.load_WxMaService();
-//        this.load_wxPayService();
-//        this.load_wxAppPayService();
-    }
-    /**
-     * 鍒濆鍖栧井淇″皬绋嬪簭
-     */
-    public void load_WxMaService() {
-        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
-        config.setAppid(StringUtils.trimToNull(wxPayProperties.getAppId()));
-        config.setSecret(StringUtils.trimToNull(wxPayProperties.getAppSecret()));
-        config.setMsgDataFormat("JSON");
-        //config.setToken("");
-        //config.setAesKey("");
-        WxMaService wxMaService = new WxMaServiceImpl();
-        wxMaService.setWxMaConfig(config);
-        this.wxMaService = wxMaService;
-    }
-
-    /**
-     * 鍒濆鍖栧井淇″皬绋嬪簭鏀粯
-     */
-//    public void load_wxPayService() {
-//        WxPayConfig payConfig = new WxPayConfig();
-//        payConfig.setTradeType(WxPayConstants.TradeType.JSAPI);
-//        payConfig.setSignType(WxPayConstants.SignType.MD5);
-//        payConfig.setAppId(StringUtils.trimToNull(wxPayProperties.getAppId()));
-//        payConfig.setMchId(StringUtils.trimToNull(wxPayProperties.getMchId()));
-//        payConfig.setMchKey(StringUtils.trimToNull(wxPayProperties.getMchKey()));
-//        payConfig.setKeyPath(StringUtils.trimToNull(wxPayProperties.getKeyPath()));
-//        payConfig.setNotifyUrl(StringUtils.trimToNull(wxPayProperties.getNotifyUrl()));
-//        WxPayService wxPayService = new WxPayServiceImpl();
-//        wxPayService.setConfig(payConfig);
-//        this.wxPayService = wxPayService;
-//    }
-
-
-
-//    /**
-//     * 鍒濆鍖朅pp鏀粯
-//     */
-//    public void load_wxAppPayService() {
-//        WxPayConfig payConfig = new WxPayConfig();
-//        payConfig.setTradeType(WxPayConstants.TradeType.APP);
-//        payConfig.setSignType(WxPayConstants.SignType.MD5);
-//        payConfig.setAppId("");
-//        payConfig.setMchId(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_MchId.getCode())));
-//        payConfig.setMchKey(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_MchKey.getCode())));
-//        payConfig.setKeyPath(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_KeyPath.getCode())));
-//        payConfig.setNotifyUrl(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_NotifyUrl.getCode())));
-//        WxPayService wxPayService = new WxPayServiceImpl();
-//        wxPayService.setConfig(payConfig);
-//        this.wxAppPayService = wxPayService;
-//    }
-
-}
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPayProperties.java b/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPayProperties.java
deleted file mode 100644
index efe67cb..0000000
--- a/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPayProperties.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.doumee.core.wx;
-
-import lombok.Data;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-/**
- * Created by IntelliJ IDEA.
- *
- * @Author : Rk
- * @create 2023/3/22 18:04
- */
-@Component
-@ConfigurationProperties(prefix = "wx.pay")
-@Data
-public class WxPayProperties {
-
-    /**
-     * AppID
-     */
-    private String appId;
-
-    /**
-     * AppSecret
-     */
-    private String appSecret;
-
-    /**
-     * 寰俊鍟嗘埛鍙�
-     */
-    private String mchId;
-
-    /**
-     * 鏀粯API瀵嗛挜
-     */
-    private String mchKey;
-
-    /**
-     * 鏀粯鍥炶皟鍦板潃
-     */
-    private String notifyUrl;
-
-    /**
-     * 鏀粯璇佷功(p12)
-     */
-    private String keyPath;
-
-}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/InoutDayCountController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/InoutDayCountController.java
new file mode 100644
index 0000000..733e71c
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/InoutDayCountController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.model.PageData;
+import com.doumee.dao.business.model.InoutDayCount;
+import com.doumee.service.business.InoutDayCountService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;    
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/10/12 16:19
+ */
+@Api(tags = "鍑哄叆鍦轰汉娆¤溅娆℃瘡鏃ョ粺璁¤〃")
+@RestController
+@RequestMapping("/business/inoutDayCount")
+public class InoutDayCountController extends BaseController {
+
+    @Autowired
+    private InoutDayCountService inoutDayCountService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:inoutdaycount:create")
+    public ApiResponse create(@RequestBody InoutDayCount inoutDayCount) {
+        return ApiResponse.success(inoutDayCountService.create(inoutDayCount));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:inoutdaycount:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        inoutDayCountService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:inoutdaycount:delete")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        inoutDayCountService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:inoutdaycount:update")
+    public ApiResponse updateById(@RequestBody InoutDayCount inoutDayCount) {
+        inoutDayCountService.updateById(inoutDayCount);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:inoutdaycount:query")
+    public ApiResponse<PageData<InoutDayCount>> findPage (@RequestBody PageWrap<InoutDayCount> pageWrap) {
+        return ApiResponse.success(inoutDayCountService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:inoutdaycount:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<InoutDayCount> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(InoutDayCount.class).export(inoutDayCountService.findPage(pageWrap).getRecords(), "鍑哄叆鍦轰汉娆¤溅娆℃瘡鏃ョ粺璁¤〃", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:inoutdaycount:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(inoutDayCountService.findById(id));
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java
index 91b2143..f6d5cf1 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java
@@ -8,6 +8,7 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
+import com.doumee.dao.admin.response.PCWorkPlatformDataVO;
 import com.doumee.dao.admin.response.StagingDataVO;
 import com.doumee.dao.business.model.Visits;
 import com.doumee.dao.system.dto.NoticesDTO;
@@ -100,6 +101,7 @@
         return ApiResponse.success("鏌ヨ鎴愬姛",approveService.getHomeDataPC(noticesDTO));
     }
 
+
     @ApiOperation("浠诲姟涓績鍒嗛〉")
     @PostMapping("/taskPage")
     public ApiResponse<PageData<Notices>> taskPage (@RequestBody PageWrap<NoticesDTO> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
@@ -107,6 +109,8 @@
         pageWrap.getModel().setMemberId(loginUserInfo.getMemberId());
         return ApiResponse.success(noticesService.taskCanterPage(pageWrap));
     }
+
+
 
     @ApiOperation("鏍囪宸茶")
     @GetMapping("/signRead")
@@ -123,4 +127,15 @@
         }
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
+
+
+    @ApiOperation("PC宸ヤ綔鍙�")
+    @GetMapping("/pCWorkPlatformData")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "queryType", value = "鏌ヨ绫诲瀷锛�1=鍦ㄥ洯浜烘暟锛�2=鎶ヨ〃鏁版嵁锛�3=寰呭姙浜嬮」锛�4=瓒呮椂棰勮", required = true),
+    })
+    public ApiResponse<PCWorkPlatformDataVO> pCWorkPlatformData (@RequestParam Integer queryType, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        PCWorkPlatformDataVO pcWorkPlatformDataVO = visitsService.getPcWorkPlatformData(queryType,getLoginUser(token));
+        return ApiResponse.success("鏌ヨ鎴愬姛",pcWorkPlatformDataVO);
+    }
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/InterestedListVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/InterestedListVO.java
index 56d3076..eaa4ba3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/InterestedListVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/InterestedListVO.java
@@ -17,10 +17,10 @@
 @ApiModel("宸ヤ綔鍙扮浉鍏虫柟鏁版嵁")
 public class InterestedListVO {
 
-    @ApiModelProperty(value = "浜烘暟")
-    private Long userNum;
+    @ApiModelProperty(value = "鏁伴噺")
+    private Long num;
 
     @ApiModelProperty(value = "鍚嶇О")
-    private String interestedName;
+    private String name;
 
 }
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
index d458f70..4d1e4dd 100644
--- 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
@@ -1,5 +1,7 @@
 package com.doumee.dao.admin.response;
 
+import com.doumee.dao.business.model.Visits;
+import com.doumee.dao.system.model.Notices;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -20,12 +22,11 @@
     @ApiModelProperty(value = "浠婃棩鍦ㄥ洯浜烘暟")
     private Long todayInParkUserNum;
 
-    @ApiModelProperty(value = "浠婃棩鍏ュ洯浜烘暟")
+    @ApiModelProperty(value = "浠婃棩鍏ュ洯浜烘")
     private Long todayInUserNum;
 
-    @ApiModelProperty(value = "浠婃棩绂诲洯浜烘暟")
+    @ApiModelProperty(value = "浠婃棩绂诲洯浜烘")
     private Long todayOutUserNum;
-
 
     @ApiModelProperty(value = "鍦ㄥ洯璁垮浜烘暟")
     private Long inParkVisitUserNum;
@@ -36,16 +37,14 @@
     @ApiModelProperty(value = "绛剧浜烘")
     private Long signLevelNum;
 
-
     @ApiModelProperty(value = "鍦ㄥ洯闀挎湡鐩稿叧鏂逛汉鏁�")
     private Long inParkLwUserNum;
 
-    @ApiModelProperty(value = "鍏ュ洯浜烘")
+    @ApiModelProperty(value = "鐩稿叧鏂瑰叆鍥汉娆�")
     private Long lwUserInNum;
 
-    @ApiModelProperty(value = "鍑哄洯浜烘")
+    @ApiModelProperty(value = "鐩稿叧鏂瑰嚭鍥汉娆�")
     private Long lwUserOutNum;
-
 
     @ApiModelProperty(value = "浠婃棩鍦ㄥ洯杞﹁締")
     private Long todayInParkCarNum;
@@ -56,33 +55,25 @@
     @ApiModelProperty(value = "鍑哄洯杞︽")
     private Long todayOutCarNum;
 
-    @ApiModelProperty(value = "鐩稿叧鏂规暟鎹�")
-    private List<InterestedListVO> interestedListVOList;
+    @ApiModelProperty(value = "闀挎湡鐩稿叧鏂圭浉鍏虫柟鍒嗗竷 top 5")
+    private List<InterestedListVO> lwList;
 
+    @ApiModelProperty(value = "杩戜竷鏃ヨ瀹㈢粺璁�")
+    private List<InterestedListVO> weekVisitList;
 
+    @ApiModelProperty(value = "杩戜竷鏃ヨ溅杈嗙粺璁�")
+    private List<InterestedListVO> weekCarList;
 
-    @ApiModelProperty(value = "璁垮浜哄憳")
-    private Long visitorCount;
+    @ApiModelProperty(value = "寰呭姙浜嬮」鏁伴噺")
+    private Integer noticesNum;
 
-    @ApiModelProperty(value = "鍔冲姟浜哄憳")
-    private Long lwCount;
+    @ApiModelProperty(value = "寰呭姙浜嬮」")
+    private List<Notices> noticesList;
 
-    @ApiModelProperty(value = "鍦ㄥ満杞﹁締")
-    private Long presenceCarCount;
+    @ApiModelProperty(value = "瓒呮椂棰勮鏁伴噺")
+    private Integer timeOutVisitNum;
 
-    @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;
+    @ApiModelProperty(value = "璁垮瓒呮椂鏁版嵁")
+    private List<Visits> timeOutVisitList;
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/InoutDayCountMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/InoutDayCountMapper.java
new file mode 100644
index 0000000..0650afc
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/InoutDayCountMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.InoutDayCount;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/10/12 16:19
+ */
+public interface InoutDayCountMapper extends BaseMapper<InoutDayCount> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/RetentionMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/RetentionMapper.java
index edc3988..c98c78a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/RetentionMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/RetentionMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.Retention;
+import com.github.yulichang.base.MPJBaseMapper;
 
 import java.util.List;
 
@@ -9,5 +10,5 @@
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
  */
-public interface RetentionMapper extends BaseMapper<Retention> {
+public interface RetentionMapper extends MPJBaseMapper<Retention> {
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutDayCount.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutDayCount.java
new file mode 100644
index 0000000..f8f5ca0
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutDayCount.java
@@ -0,0 +1,107 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 鍑哄叆鍦轰汉娆¤溅娆℃瘡鏃ョ粺璁¤〃
+ * @author 姹熻箘韫�
+ * @date 2024/10/12 16:19
+ */
+@Data
+@ApiModel("鍑哄叆鍦轰汉娆¤溅娆℃瘡鏃ョ粺璁¤〃")
+@TableName("`inout_day_count`")
+public class InoutDayCount {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    @ExcelColumn(name="涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+    private Integer creator;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createDate;
+
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+    private Integer editor;
+
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    @ExcelColumn(name="鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date editDate;
+
+    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+    private Integer isdeleted;
+
+    @ApiModelProperty(value = "缁熻鏃ユ湡锛�2024-10-12 00:00:00锛�")
+    @ExcelColumn(name="缁熻鏃ユ湡锛�2024-10-12 00:00:00锛�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date timeInfo;
+
+    @ApiModelProperty(value = "澶囨敞")
+    @ExcelColumn(name="澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鍏ュ洯鎬讳汉娆�", example = "1")
+    @ExcelColumn(name="鍏ュ洯鎬讳汉娆�")
+    private Integer inMemberNum;
+
+    @ApiModelProperty(value = "鍑哄洯鎬讳汉娆�", example = "1")
+    @ExcelColumn(name="鍑哄洯鎬讳汉娆�")
+    private Integer outMemberNum;
+
+    @ApiModelProperty(value = "璁垮鍏ュ洯浜烘", example = "1")
+    @ExcelColumn(name="璁垮鍏ュ洯浜烘")
+    private Integer inVisitorNum;
+
+    @ApiModelProperty(value = "璁垮鍑哄洯浜烘", example = "1")
+    @ExcelColumn(name="璁垮鍑哄洯浜烘")
+    private Integer outVisitorNum;
+
+    @ApiModelProperty(value = "璁垮鐧昏浜烘", example = "1")
+    @ExcelColumn(name="璁垮鐧昏浜烘")
+    private Integer singinVisitorNum;
+
+    @ApiModelProperty(value = "璁垮绛剧浜烘", example = "1")
+    @ExcelColumn(name="璁垮绛剧浜烘")
+    private Integer leaveVisitorNum;
+
+    @ApiModelProperty(value = "鐩稿叧鏂瑰叆鍥汉娆�", example = "1")
+    @ExcelColumn(name="鐩稿叧鏂瑰叆鍥汉娆�")
+    private Integer inOrtherMemberNum;
+
+    @ApiModelProperty(value = "鐩稿叧鏂瑰嚭鍥汉娆�", example = "1")
+    @ExcelColumn(name="鐩稿叧鏂瑰嚭鍥汉娆�")
+    private Integer outOrtherMemberNum;
+
+    @ApiModelProperty(value = "鍐呴儴浜哄憳鍏ュ洯浜烘", example = "1")
+    @ExcelColumn(name="鍐呴儴浜哄憳鍏ュ洯浜烘")
+    private Integer inSelfMemberNum;
+
+    @ApiModelProperty(value = "鍐呴儴浜哄憳鍑哄洯浜烘", example = "1")
+    @ExcelColumn(name="鍐呴儴浜哄憳鍑哄洯浜烘")
+    private Integer outSelfMemberNum;
+
+    @ApiModelProperty(value = "鍏ュ洯杞︽", example = "1")
+    @ExcelColumn(name="鍏ュ洯杞︽")
+    private Integer inCarNum;
+
+    @ApiModelProperty(value = "鍑哄洯杞︽", example = "1")
+    @ExcelColumn(name="鍑哄洯杞︽")
+    private Integer outCarNum;
+
+}
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 2424691..5e4f6b3 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
@@ -137,7 +137,6 @@
 
     @ApiModelProperty(value = "閫氱煡鍏ュ洯绛夊緟鏃堕棿")
     @ExcelColumn(name="閫氱煡鍏ュ洯绛夊緟鏃堕棿")
-  
     private Date inwaitDate;
 
     @ApiModelProperty(value = "閫氱煡鍏ュ洯绛夊緟鎿嶄綔浜虹紪鐮�", example = "1")
@@ -147,8 +146,6 @@
     @ApiModelProperty(value = "鍙彿鏃堕棿")
     @ExcelColumn(name="鍙彿鏃堕棿")
     private Date callDate;
-
-
 
 
     @ApiModelProperty(value = "鍙彿浜虹紪鐮�", example = "1")
@@ -197,7 +194,6 @@
 
     @ApiModelProperty(value = "杞﹁締绂诲巶鏃堕棿")
     @ExcelColumn(name="杞﹁締绂诲巶鏃堕棿")
-  
     private Date outDate;
 
     @ApiModelProperty(value = "绂诲巶鏂瑰紡 0鑷姩绂诲巶 1鎵嬪姩绂诲満", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java
index dfdaa12..04e55fb 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java
@@ -117,6 +117,10 @@
     @TableField(exist = false)
     private String keyWords;
 
+    @ApiModelProperty(value = "绫诲瀷 0鍔冲姟鍏徃 1鍐呴儴缁勭粐")
+    @TableField(exist = false)
+    private Integer companyType;
+
     @ApiModelProperty(value = "寮�濮嬫椂闂�")
     @TableField(exist = false)
     private Date startTime;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InoutDayCountService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InoutDayCountService.java
new file mode 100644
index 0000000..474cf63
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InoutDayCountService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.InoutDayCount;
+import java.util.List;
+
+/**
+ * 鍑哄叆鍦轰汉娆¤溅娆℃瘡鏃ョ粺璁¤〃Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/10/12 16:19
+ */
+public interface InoutDayCountService {
+
+    /**
+     * 鍒涘缓
+     * 
+     * @param inoutDayCount 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(InoutDayCount inoutDayCount);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param inoutDayCount 瀹炰綋瀵硅薄
+     */
+    void delete(InoutDayCount inoutDayCount);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param inoutDayCount 瀹炰綋瀵硅薄
+     */
+    void updateById(InoutDayCount inoutDayCount);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param inoutDayCounts 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<InoutDayCount> inoutDayCounts);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return InoutDayCount
+     */
+    InoutDayCount findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param inoutDayCount 瀹炰綋瀵硅薄
+     * @return InoutDayCount
+     */
+    InoutDayCount findOne(InoutDayCount inoutDayCount);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param inoutDayCount 瀹炰綋瀵硅薄
+     * @return List<InoutDayCount>
+     */
+    List<InoutDayCount> findList(InoutDayCount inoutDayCount);
+  
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<InoutDayCount>
+     */
+    PageData<InoutDayCount> findPage(PageWrap<InoutDayCount> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param inoutDayCount 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(InoutDayCount inoutDayCount);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
index 172d792..fd4e843 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
@@ -1,7 +1,9 @@
 package com.doumee.service.business;
 
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.admin.response.PCWorkPlatformDataVO;
 import com.doumee.dao.business.dto.ResetPasswordDTO;
 import com.doumee.dao.business.model.Visits;
 import com.doumee.dao.web.reqeust.AuditApproveDTO;
@@ -143,4 +145,6 @@
     void resetPassword(ResetPasswordDTO resetPasswordDTO);
 
     void visitResend(Integer visitId);
+
+    PCWorkPlatformDataVO getPcWorkPlatformData(Integer queryType ,LoginUserInfo loginUserInfo);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutDayCountServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutDayCountServiceImpl.java
new file mode 100644
index 0000000..3aa9286
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutDayCountServiceImpl.java
@@ -0,0 +1,170 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.InoutDayCountMapper;
+import com.doumee.dao.business.model.InoutDayCount;
+import com.doumee.service.business.InoutDayCountService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 鍑哄叆鍦轰汉娆¤溅娆℃瘡鏃ョ粺璁¤〃Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2024/10/12 16:19
+ */
+@Service
+public class InoutDayCountServiceImpl implements InoutDayCountService {
+
+    @Autowired
+    private InoutDayCountMapper inoutDayCountMapper;
+
+    @Override
+    public Integer create(InoutDayCount inoutDayCount) {
+        inoutDayCountMapper.insert(inoutDayCount);
+        return inoutDayCount.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        inoutDayCountMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(InoutDayCount inoutDayCount) {
+        UpdateWrapper<InoutDayCount> deleteWrapper = new UpdateWrapper<>(inoutDayCount);
+        inoutDayCountMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        inoutDayCountMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(InoutDayCount inoutDayCount) {
+        inoutDayCountMapper.updateById(inoutDayCount);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<InoutDayCount> inoutDayCounts) {
+        if (CollectionUtils.isEmpty(inoutDayCounts)) {
+            return;
+        }
+        for (InoutDayCount inoutDayCount: inoutDayCounts) {
+            this.updateById(inoutDayCount);
+        }
+    }
+
+    @Override
+    public InoutDayCount findById(Integer id) {
+        return inoutDayCountMapper.selectById(id);
+    }
+
+    @Override
+    public InoutDayCount findOne(InoutDayCount inoutDayCount) {
+        QueryWrapper<InoutDayCount> wrapper = new QueryWrapper<>(inoutDayCount);
+        return inoutDayCountMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<InoutDayCount> findList(InoutDayCount inoutDayCount) {
+        QueryWrapper<InoutDayCount> wrapper = new QueryWrapper<>(inoutDayCount);
+        return inoutDayCountMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<InoutDayCount> findPage(PageWrap<InoutDayCount> pageWrap) {
+        IPage<InoutDayCount> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<InoutDayCount> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        if (pageWrap.getModel().getId() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getId, pageWrap.getModel().getId());
+        }
+        if (pageWrap.getModel().getCreator() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getCreator, pageWrap.getModel().getCreator());
+        }
+        if (pageWrap.getModel().getCreateDate() != null) {
+            queryWrapper.lambda().ge(InoutDayCount::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.lambda().le(InoutDayCount::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+        }
+        if (pageWrap.getModel().getEditor() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getEditor, pageWrap.getModel().getEditor());
+        }
+        if (pageWrap.getModel().getEditDate() != null) {
+            queryWrapper.lambda().ge(InoutDayCount::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.lambda().le(InoutDayCount::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+        }
+        if (pageWrap.getModel().getIsdeleted() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getIsdeleted, pageWrap.getModel().getIsdeleted());
+        }
+        if (pageWrap.getModel().getTimeInfo() != null) {
+            queryWrapper.lambda().ge(InoutDayCount::getTimeInfo, Utils.Date.getStart(pageWrap.getModel().getTimeInfo()));
+            queryWrapper.lambda().le(InoutDayCount::getTimeInfo, Utils.Date.getEnd(pageWrap.getModel().getTimeInfo()));
+        }
+        if (pageWrap.getModel().getRemark() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getRemark, pageWrap.getModel().getRemark());
+        }
+        if (pageWrap.getModel().getInMemberNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getInMemberNum, pageWrap.getModel().getInMemberNum());
+        }
+        if (pageWrap.getModel().getOutMemberNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getOutMemberNum, pageWrap.getModel().getOutMemberNum());
+        }
+        if (pageWrap.getModel().getInVisitorNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getInVisitorNum, pageWrap.getModel().getInVisitorNum());
+        }
+        if (pageWrap.getModel().getOutVisitorNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getOutVisitorNum, pageWrap.getModel().getOutVisitorNum());
+        }
+        if (pageWrap.getModel().getSinginVisitorNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getSinginVisitorNum, pageWrap.getModel().getSinginVisitorNum());
+        }
+        if (pageWrap.getModel().getLeaveVisitorNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getLeaveVisitorNum, pageWrap.getModel().getLeaveVisitorNum());
+        }
+        if (pageWrap.getModel().getInOrtherMemberNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getInOrtherMemberNum, pageWrap.getModel().getInOrtherMemberNum());
+        }
+        if (pageWrap.getModel().getOutOrtherMemberNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getOutOrtherMemberNum, pageWrap.getModel().getOutOrtherMemberNum());
+        }
+        if (pageWrap.getModel().getInSelfMemberNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getInSelfMemberNum, pageWrap.getModel().getInSelfMemberNum());
+        }
+        if (pageWrap.getModel().getOutSelfMemberNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getOutSelfMemberNum, pageWrap.getModel().getOutSelfMemberNum());
+        }
+        if (pageWrap.getModel().getInCarNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getInCarNum, pageWrap.getModel().getInCarNum());
+        }
+        if (pageWrap.getModel().getOutCarNum() != null) {
+            queryWrapper.lambda().eq(InoutDayCount::getOutCarNum, pageWrap.getModel().getOutCarNum());
+        }
+        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(inoutDayCountMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(InoutDayCount inoutDayCount) {
+        QueryWrapper<InoutDayCount> wrapper = new QueryWrapper<>(inoutDayCount);
+        return inoutDayCountMapper.selectCount(wrapper);
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index d7ee5e4..a0d43c7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -17,6 +17,7 @@
 import com.doumee.core.haikang.model.param.request.VisitAppointmentRequest;
 import com.doumee.core.haikang.model.param.respose.VisitAppointmentResponse;
 import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
@@ -24,6 +25,7 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
 import com.doumee.core.wx.wxPlat.WxPlatNotice;
+import com.doumee.dao.admin.response.PCWorkPlatformDataVO;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.CompanyMapper;
 import com.doumee.dao.business.dto.ResetPasswordDTO;
@@ -31,7 +33,10 @@
 import com.doumee.dao.business.join.VisitsJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.dto.NoticesDTO;
 import com.doumee.dao.system.dto.ResetSystemUserPwdDTO;
+import com.doumee.dao.system.join.NoticesJoinMapper;
+import com.doumee.dao.system.model.Notices;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.web.reqeust.AuditApproveDTO;
 import com.doumee.dao.web.reqeust.ErpVisitDTO;
@@ -108,6 +113,8 @@
     private SystemUserMapper systemUserMapper;
     @Autowired
     private ApproveService approveService;
+    @Autowired
+    private NoticesJoinMapper noticesJoinMapper;
 
 
     @Override
@@ -1463,4 +1470,104 @@
         systemUserBiz.resetPwd(dto);
     }
 
+    /**
+     *
+     * @param queryType 鏌ヨ绫诲瀷锛�1=鍦ㄥ洯浜烘暟锛�2=鎶ヨ〃鏁版嵁锛�3=寰呭姙浜嬮」锛�4=瓒呮椂棰勮
+     * @param loginUserInfo
+     * @return
+     */
+    @Override
+    public PCWorkPlatformDataVO getPcWorkPlatformData(Integer queryType ,LoginUserInfo loginUserInfo){
+        PCWorkPlatformDataVO pcWorkPlatformDataVO = new PCWorkPlatformDataVO();
+        if(Constants.equalsInteger(queryType,Constants.ONE)){
+            List<Retention> retentionList = retentionMapper.selectJoinList(Retention.class,
+                    new MPJLambdaWrapper<Retention>()
+                            .selectAll(Retention.class)
+                            .selectAs(Company::getType,Retention::getCompanyType)
+                            .leftJoin(Company.class,Company::getId,Retention::getCompanyId)
+            );
+            //浠婃棩鍦ㄥ洯浜烘暟
+            pcWorkPlatformDataVO.setTodayInParkUserNum(
+                    retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)).count()
+            );
+            pcWorkPlatformDataVO.setTodayInUserNum(0L);
+            pcWorkPlatformDataVO.setTodayOutUserNum(0L);
+
+            //鍦ㄥ洯闀挎湡鐩稿叧鏂逛汉鏁�
+            pcWorkPlatformDataVO.setInParkLwUserNum(
+                    retentionList.stream().filter(i->Constants.equalsInteger(i.getCompanyType(),Constants.ONE)).count()
+            );
+            pcWorkPlatformDataVO.setLwUserInNum(0L);
+            pcWorkPlatformDataVO.setLwUserOutNum(0L);
+
+            //鍦ㄥ洯璁垮鏁伴噺
+            pcWorkPlatformDataVO.setInParkVisitUserNum(
+                    retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)&&Objects.isNull(i.getCompanyType())).count()
+            );
+            pcWorkPlatformDataVO.setVisitUserNum(0L);
+            pcWorkPlatformDataVO.setSignLevelNum(0L);
+            //鍦ㄥ洯杞﹁締
+            pcWorkPlatformDataVO.setTodayInParkCarNum(
+                    retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)).count()
+            );
+            pcWorkPlatformDataVO.setTodayInCarNum(0L);
+            pcWorkPlatformDataVO.setTodayOutCarNum(0L);
+
+
+        }else if(Constants.equalsInteger(queryType,Constants.TWO)){
+
+        }else if(Constants.equalsInteger(queryType,Constants.THREE)) {
+            MPJLambdaWrapper<Notices> queryWrapper = new MPJLambdaWrapper<>();
+            queryWrapper.selectAll(Notices.class);
+            if (Objects.isNull(loginUserInfo.getMemberId())) {
+                queryWrapper.eq("1", "2");
+            } else {
+                queryWrapper.eq(Notices::getStatus, Constants.ZERO);
+                queryWrapper.eq(Notices::getSendacopy, Constants.ZERO);
+                queryWrapper.eq(Notices::getParam2, Constants.ZERO);
+                queryWrapper.eq(Notices::getUserId, loginUserInfo.getMemberId());
+            }
+            queryWrapper.orderByDesc(Notices::getCreateDate);
+            List<Notices> noticesList = noticesJoinMapper.selectList(queryWrapper);
+            pcWorkPlatformDataVO.setNoticesList(noticesList);
+            pcWorkPlatformDataVO.setNoticesNum(noticesList.size());
+        }else{
+            String code= systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.TIMEOUT_WARNING).getCode();
+            MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
+            queryWrapper.selectAll(Visits.class);
+            queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName);
+            queryWrapper.select("TIMESTAMPDIFF( MINUTE, NOW(), t.OUT_DATE) AS timeOut");
+            queryWrapper.selectAs(Member::getType,Visits::getMemberType);
+            queryWrapper.selectAs(Company::getName,Visits::getReceptMemberDepartment);
+            queryWrapper.leftJoin(Member.class,Member::getId,Visits::getReceptMemberId);
+            queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
+            queryWrapper.leftJoin(" member m on m.id= t.MEMBER_ID");
+            queryWrapper.eq(Visits::getStatus,Constants.VisitStatus.signin);
+            queryWrapper.apply(" TIMESTAMPDIFF( MINUTE, NOW(), t.OUT_DATE) <= "+code+"  ");
+            queryWrapper.ne("m.type ",Constants.TWO);
+            queryWrapper.eq(Visits::getIsdeleted,Constants.ZERO);
+            queryWrapper.orderByDesc(Visits::getEditDate);
+            List<Visits> result = visitsJoinMapper.selectList(queryWrapper);
+            if(result!=null&&result!=null){
+                result.stream().forEach(s ->{
+                    if(s.getStatus().equals(Constants.VisitStatus.signin)){
+                        if(s.getTimeOut()<=Integer.valueOf(code)&&s.getTimeOut()>=0){
+                            s.setOutStatus(Constants.TWO);
+                        }else if(s.getTimeOut()>Constants.ZERO){
+                            s.setOutStatus(Constants.ZERO);
+                        }else{
+                            s.setOutStatus(Constants.ONE);
+                        }
+                    }
+                });
+            }
+            pcWorkPlatformDataVO.setTimeOutVisitList(result);
+            pcWorkPlatformDataVO.setTimeOutVisitNum(result.size());
+        }
+
+
+
+
+        return pcWorkPlatformDataVO;
+    }
 }

--
Gitblit v1.9.3