From 9cf8c1d147e558c9a89b4ef14e79ea79902a7d9d Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期六, 12 十月 2024 18:25:16 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 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 ++++++
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/InoutDayCountController.java                   |   90 +++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/GetTodoListResponse.java |   38 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/PCWorkPlatformDataVO.java              |   49 +-
 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 
 /dev/null                                                                                                        |   48 ---
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java                         |    7 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                       |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java   |  111 ++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutDayCountServiceImpl.java       |  170 ++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/GetTodoListRequest.java  |   18 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                       |   24 +
 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 ++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                           |   25 +
 server/system_service/src/main/java/com/doumee/dao/business/model/Company.java                                   |    4 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java             |    7 
 22 files changed, 831 insertions(+), 116 deletions(-)

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/system_service/src/main/java/com/doumee/dao/business/model/Company.java b/server/system_service/src/main/java/com/doumee/dao/business/model/Company.java
index abecdd5..ddaf90a 100644
--- a/server/system_service/src/main/java/com/doumee/dao/business/model/Company.java
+++ b/server/system_service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -76,8 +76,8 @@
     @ExcelColumn(name="鍥炬爣")
     private String imgurl;
 
-    @ApiModelProperty(value = "绫诲瀷 0鍔冲姟鍏徃 1鍐呴儴缁勭粐")
-    @ExcelColumn(name="绫诲瀷 0鍔冲姟鍏徃 1鍐呴儴缁勭粐")
+    @ApiModelProperty(value = "绫诲瀷 0鐩稿叧鏂瑰叕鍙� 1鍐呴儴缁勭粐")
+    @ExcelColumn(name="绫诲瀷 0鐩稿叧鏂瑰叕鍙� 1鍐呴儴缁勭粐")
     private Integer type;
 
     @ApiModelProperty(value = "鍒嗙被缂栫爜(鍏宠仈category)")
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/HkInterfaceTestCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
index d76042c..19b4846 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
@@ -100,6 +100,12 @@
     public ApiResponse<BaseResponse> testBroadcast(@RequestBody CustomBroadcastRequest request, HttpServletResponse response) {
         return ApiResponse.success(  HKService.customBroadcast(request));
     }
+    @ApiOperation("銆愭捣搴枫�戣幏鍙栦唬鍔炲垪琛�")
+    @PostMapping("/getTodoListPage")
+    @LoginNoRequired
+    public ApiResponse<BaseResponse> getTodoListPage(@RequestBody GetTodoListRequest request, HttpServletResponse response) {
+        return ApiResponse.success(  HKService.getTodoListPage(request));
+    }
     @ApiOperation("銆愭捣搴枫�戞祴璇曚汉鑴稿浘鐗囦笅杞�")
     @PostMapping("/testDonwLoadMemberImg")
     @LoginNoRequired
@@ -126,7 +132,6 @@
     public ApiResponse<BaseResponse> nhEventPageList(@RequestBody NhEventPageListRequest param, HttpServletResponse response) {
         return ApiResponse.success(  HKService.nhEventPageList(param));
     }
-
     @ApiOperation("銆愭捣搴枫�戝垎椤垫煡璇㈡秷闃蹭紶鎰熷櫒閮ㄤ欢鐘舵��")
     @PostMapping("/sensorStatusSearch")
     @LoginNoRequired
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/core/haikang/model/HKConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index c93a503..ad7e78d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -136,6 +136,7 @@
         String[] sensorStatusSearch= new String[]{"/api/fpnms/v2/sensor/status/search","鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬�"};//鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬�
         String[] fireDeviceStatusSearch= new String[]{"/api/fpnms/v2/device/status/search","鏌ヨ娑堥槻璁惧閮ㄤ欢鐘舵��"};//鏌ヨ娑堥槻璁惧閮ㄤ欢鐘舵��
         String[] findDeviceAlarmPage= new String[]{"/api/v1/alarm/findDeviceAlarmPage","鍒嗛〉鏌ヨ璁惧涓嬬殑鎵�鏈夋姤璀﹁褰�"};//鍒嗛〉鏌ヨ璁惧涓嬬殑鎵�鏈夋姤璀﹁褰�
+        String[] getTodoListPage= new String[]{"/api/v3/todo/getTodoListPage","鍒嗛〉鑾峰彇寰呭姙鍒楄〃"};//1.10.1鍒嗛〉鑾峰彇寰呭姙鍒楄〃
     }
 
     /**
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index 0e94f0b..6a26848 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -299,6 +299,14 @@
 		}
 	}
 	/**
+	 * 鍒嗛〉鑾峰彇寰呭姙鍒楄〃
+	 * @param body
+	 * @return
+	 */
+	public static String getTodoListPage(Map<String, String> body)  throws  Exception{
+		return startDoGetStringArtemis(HKConstants.InterfacePath.getTodoListPage,body);
+	}
+	/**
 	 *	鑾峰彇闂ㄧ鐐瑰垪琛�
 	 * @param body
 	 * @return
@@ -364,15 +372,7 @@
 		return  startDoPostStringArtemis(HKConstants.InterfacePath.visitCancel,body);
 	}
 
-	public static String startDoGetStringArtemis(String[] pathStr,Map<String,String> body ){
-		Map<String, String> path = getPath(pathStr[0]);
-		Map<String, String> header = new HashMap<>();
-		header.put("tagId", UUID.randomUUID().toString().replace("-", ""));
-		String result = ArtemisHttpUtil.doGetArtemis(path, body, null,  "application/json", header);// post璇锋眰application/json绫诲瀷鍙傛暟
-		saveInterfaceLog(JSONObject.toJSONString(body),result,path,pathStr[1]);
-		return result;
 
-	}
 	public static String startDoPostStringArtemis(String[] pathStr,String body ){
 		Map<String, String> path = getPath(pathStr[0]);
 		Map<String, String> header = new HashMap<>();
@@ -380,7 +380,14 @@
 		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post璇锋眰application/json绫诲瀷鍙傛暟
 		saveInterfaceLog(body,result,path,pathStr[1]);
 		return result;
-
+	}
+	public static String startDoGetStringArtemis(String[] pathStr,Map<String,String> body ){
+		Map<String, String> path = getPath(pathStr[0]);
+		Map<String, String> header = new HashMap<>();
+		header.put("tagId", UUID.randomUUID().toString().replace("-", ""));
+		String result = ArtemisHttpUtil.doGetArtemis(path, body, null, null,  header);
+		saveInterfaceLog(JSONObject.toJSONString(body),result,path,pathStr[1]);
+		return result;
 	}
 	public static String startDoPostStringArtemis(String[] pathStr,String param,String body ){
 		Map<String, String> path = getPath(pathStr[0]+StringUtils.defaultString(param,""));
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/GetTodoListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/GetTodoListRequest.java
new file mode 100644
index 0000000..5c94e1a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/GetTodoListRequest.java
@@ -0,0 +1,18 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class GetTodoListRequest {
+
+    private String  comId;//		Query	String	false	缁勪欢id
+    private int  pageSize	;//	Query	Number	false	鍒嗛〉澶у皬锛�1~999锛�
+    private int cascade	;//	Query	Number	false	绾ц仈鏁版嵁鏉ユ簮0:涓嬬骇骞冲彴鏉ユ簮锛�1:闈炰笅绾у钩鍙版潵婧愶紝涓虹┖榛樿鏌ヨ鎵�鏈夋暟鎹潵婧�
+    private String  messageId;//		Query	String	false	messageId
+    private int  pageNo;//		Query	Number	false	褰撳墠椤电爜(1~100000)
+    private String  localeType;//		Query	String	false	璇█绫诲瀷zh_CN:涓枃en_US:鑻辨枃
+    private int status;//		Query	Number	false	涓氬姟鐘舵�佺被鍨�,1-寰呭鐞嗭紝2-瀹℃壒涓紝3-宸插畬鎴愶紝4-鎶勯�佹垜锛�5-鎴戝鎵�,榛樿寰呭鐞�
+    private String userId;//		Query	String	false	鐢ㄦ埛id
+    private String clientType;//		Query	String	false	璋冪敤鏂圭被鍨�0:鍏朵粬锛�1锛欰PP锛屼负绌烘椂榛樿涓�1锛�2锛氶棬鎴�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/GetTodoListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/GetTodoListResponse.java
new file mode 100644
index 0000000..bf7f72f
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/GetTodoListResponse.java
@@ -0,0 +1,38 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class GetTodoListResponse {
+      private String tid;//	String	false	涓婚敭id
+      private String msgId	;//String	false	寰呭姙id
+      private String userId	;//String	false	鐢ㄦ埛id
+      private String comId;//	String	false	缁勪欢鏍囪瘑
+      private String moduleId;//	String	false	妯″潡鏍囪瘑
+      private String msgTitle;//	String	false	淇℃伅鏍囬
+      private String msgStatus	;//String	false	淇℃伅鐘舵��
+      private String msgStatusStr;//	String	false	淇℃伅鐘舵�佸悕绉�
+      private String msgCreateTime;//	String	false	娑堟伅鍒涘缓鏃堕棿,浼樺厛浣跨敤msgCreateTimeIso
+      private String msgCreateTimeIso;//	String	false	娑堟伅鍒涘缓鏃堕棿,ISO鏃堕棿
+      private String serverTime;//	Number	false	鎺ュ彛璋冪敤鏃舵湇鍔℃椂闂存埑锛屾绉�
+      private String menuCode;//	String	false	鑿滃崟code
+      private String picUrl	;//String	false	鍥剧墖url锛屼笉涓虹┖鍒欏睍绀�
+      private String extendJson	;//String	false	鎵╁睍瀛楁Json锛屼笉涓虹┖鍒欏睍绀�
+      private String extendNoShow;//	String	false	涓嶄綔灞曠ず鐨勬墿灞曞瓧娈礘son
+      private String extendParam;//	String	false	鎵╁睍鏍峰紡瀛楁
+      private String extendCascade;//	String	false	璺宠浆淇℃伅瀛楁
+      private String moduleName;//	String	false	妯″潡鍚嶇О锛屽嵆娑堟伅绫诲瀷
+      private String targetComId	;//String	false	璺宠浆鐩爣缁勪欢ID
+      private String createUser;//	String	false	杩欐潯寰呭姙鐨勭敵璇蜂汉
+      private String webCascadeUrl;//	String	false	杩欐潯寰呭姙鐨勭敵璇蜂汉
+      private String h5CascadeUrl;//	String	false	h5绔烦杞湴鍧�锛堢骇鑱斿钩鍙颁娇鐢級
+      private String cascadeTodoOpenType	;//String	false	绾ц仈寰呭姙鐨勬墦寮�鏂瑰紡  1锛氭祻瑙堝櫒鏂版墦寮�绐楀彛锛�2锛歩am鎵撳紑iportal鐨勪吉鑿滃崟锛�3锛歩am鎵撳紑寰呭姙鐨勭┖鑿滃崟
+      private String cascadeSourceConfigId	;//String	false	绾ц仈閰嶇疆id
+      private String h5Url;//	String	false	妯″潡閰嶇疆鐨凥5璺宠浆URL
+      private String segmentId	;//String	false	娈垫爣璇嗭紝鐢ㄤ簬缁勪欢瀵诲潃鐢�
+      private String lastUsers	;//String	false	涓婁竴澶勭悊浜�
+      private String currentUsers	;//String	false	褰撳墠澶勭悊浜�
+      private String todoTypeCode;//	String	false	寰呭姙鍒嗙被缂栫爜
+      private String currentUserIds	;//String	false	褰撳墠澶勭悊浜虹殑id
+      private String lastUserIds	;//String	false	涓婁竴澶勭悊浜虹殑id
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 470fd3e..388c717 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -902,13 +902,13 @@
      *鏍规嵁閰嶇疆寰俊鍏紬鍙风紪鍙锋煡璇㈠井淇″叕浼楀彿淇℃伅
      * @return
      */
-    public  static  BaseResponse<BaseListPageResponse<WxConfigInfoResponse>>   getWxConfig(WxConfigInfoRequest param){
+    public  static  BaseResponse< WxConfigInfoResponse>  getWxConfig(WxConfigInfoRequest param){
         log.info("銆愭捣搴锋牴鎹厤缃井淇″叕浼楀彿缂栧彿鏌ヨ寰俊鍏紬鍙蜂俊鎭��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.getWxConfig(toMap(param));
             TypeReference typeReference =
-                    new TypeReference<BaseResponse<BaseListPageResponse<WxConfigInfoResponse>>>(){};
-            BaseResponse<BaseListPageResponse<WxConfigInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+                    new TypeReference<BaseResponse<WxConfigInfoResponse>>(){};
+            BaseResponse<WxConfigInfoResponse>   result = JSONObject.parseObject(res, typeReference.getType());
             logResult(result,"娴峰悍鏍规嵁閰嶇疆寰俊鍏紬鍙风紪鍙锋煡璇㈠井淇″叕浼楀彿淇℃伅");
             return  result;
         }catch (Exception e){
@@ -916,6 +916,24 @@
         }
         return  null;
     }
+    /**
+     *鍒嗛〉鑾峰彇寰呭姙鍒楄〃
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<GetTodoListResponse>>   getTodoListPage(GetTodoListRequest param){
+        log.info("銆愭捣搴峰垎椤佃幏鍙栧緟鍔炲垪琛ㄣ��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.getTodoListPage(toMap(param));
+            TypeReference typeReference =
+                    new TypeReference<BaseResponse<BaseListPageResponse<GetTodoListResponse>>>(){};
+            BaseResponse<BaseListPageResponse<GetTodoListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鍒嗛〉鑾峰彇寰呭姙鍒楄〃");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰垎椤佃幏鍙栧緟鍔炲垪琛ㄣ��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
 
     /**
      *鍒嗛〉鏌ヨ娑堥槻璁惧閮ㄤ欢鐘舵��
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..504665a
--- /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 signinVisitorNum;
+
+    @ApiModelProperty(value = "璁垮绛剧浜烘", example = "1")
+    @ExcelColumn(name="璁垮绛剧浜烘")
+    private Integer leaveVisitorNum;
+
+    @ApiModelProperty(value = "鐩稿叧鏂瑰叆鍥汉娆�", example = "1")
+    @ExcelColumn(name="鐩稿叧鏂瑰叆鍥汉娆�")
+    private Integer inOtherMemberNum;
+
+    @ApiModelProperty(value = "鐩稿叧鏂瑰嚭鍥汉娆�", example = "1")
+    @ExcelColumn(name="鐩稿叧鏂瑰嚭鍥汉娆�")
+    private Integer outOtherMemberNum;
+
+    @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 70323e1..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
@@ -83,7 +83,6 @@
 
     @ApiModelProperty(value = "娴峰悍闂ㄧ鍚嶇О")
     @ExcelColumn(name="杩涘巶闂ㄧ" ,index = 6,width = 12)
-    @TableField(exist = false)
     private String deviceName;
 
     @ApiModelProperty(value = "娴峰悍闂ㄧ缂栫爜")
@@ -96,6 +95,8 @@
 
     @ApiModelProperty(value = "璁垮ID(鍏宠仈member)")
     private Integer memberId;
+    @ApiModelProperty(value = "璁垮1闂ㄧ浜嬩欢2杞﹁締浜嬩欢")
+    private String accessType;
 
     @ApiModelProperty(value = "浜嬩欢绫诲瀷鐮�")
     private String eventCode;
@@ -116,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;
+    }
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index 0047699..2edaf6b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -17,6 +17,7 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DESUtil;
 import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.VisitsJoinMapper;
 import com.doumee.dao.business.model.*;
@@ -43,6 +44,8 @@
 @Slf4j
 public class HkSyncPushServiceImpl extends HkSyncBaseServiceImpl {
 
+    @Autowired
+    private InoutDayCountMapper inoutDayCountMapper;
     @Autowired
     private InterfaceLogMapper interfaceLogMapper;
     @Autowired
@@ -102,13 +105,14 @@
             List<DeviceEvent> list = new ArrayList<>();
             List<Integer> delRetentionLis = new ArrayList<>();
             List<Retention> retentionList = new ArrayList<>();
+            InoutDayCount inoutDayCount = new InoutDayCount();
             for(EventAcsInfoRequest request : events){
                 EventDeviceDataRequest model = request.getData();
                 if(model ==null){
                     continue;
                 }
                 //鏍规嵁鎺ㄩ�佷汉鍛樼紪鐮侊紝澶勭悊鍦ㄥ満銆佺鍦轰汉鍛樻暟鎹褰�
-                dealMemberDataByRequest(request,delRetentionLis,retentionList);
+                dealMemberDataByRequest(request,delRetentionLis,retentionList,inoutDayCount);
                 //灏佽闂ㄧ浜嬩欢淇℃伅琛ㄥ璞�
                 list.add(getDeviceEventModelByRequest(request));
             }
@@ -126,6 +130,7 @@
                 //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
                 retentionMapper.insert(retentionList);
             }
+            dealInoutDayCountBiz(inoutDayCount);
             log.info("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========鎴愬姛=======");
         }catch (Exception e) {
             log.error("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========澶辫触=======锛歕n" + e.getMessage());
@@ -136,27 +141,80 @@
 
     }
 
+    private void dealInoutDayCountBiz(InoutDayCount param) {
+        param.setTimeInfo(Utils.Date.getStart(new Date()));
+        InoutDayCount model = inoutDayCountMapper.selectOne(new QueryWrapper<InoutDayCount>().lambda()
+                .eq(InoutDayCount::getTimeInfo,param.getTimeInfo())
+                .eq(InoutDayCount::getIsdeleted,Constants.ZERO)
+                .last("limit 1"));
+        if(model == null){
+            param.setIsdeleted(Constants.ZERO);
+            param.setCreateDate(new Date());
+            param.setEditDate(new Date());
+            inoutDayCountMapper.insert(param);
+        }else{
+            inoutDayCountMapper.update(null,new UpdateWrapper<InoutDayCount>().lambda()
+                    .eq(InoutDayCount::getId,model.getId() )
+                    .set(InoutDayCount::getEditDate,new Date() )
+                    .setSql(param.getInCarNum()!=null,"IN_CAR_NUM = ifnull(IN_CAR_NUM)"+param.getInCarNum() )
+                    .setSql(param.getOutCarNum()!=null,"OUT_CAR_NUM = ifnull(OUT_CAR_NUM)"+param.getOutCarNum() )
+                    .setSql(param.getInMemberNum()!=null,"IN_MEMBER_NUM = ifnull(IN_MEMBER_NUM)"+param.getInMemberNum() )
+                    .setSql(param.getOutMemberNum()!=null,"OUT_MEMBER_NUM = ifnull(OUT_MEMBER_NUM)"+param.getOutMemberNum() )
+                    .setSql(param.getInVisitorNum()!=null,"IN_VISITOR_NUM = ifnull(IN_VISITOR_NUM)"+param.getInVisitorNum() )
+                    .setSql(param.getOutVisitorNum()!=null,"OUT_VISITOR_NUM = ifnull(OUT_VISITOR_NUM)"+param.getOutVisitorNum() )
+                    .setSql(param.getSigninVisitorNum()!=null,"SIGNIN_VISITOR_NUM = ifnull(SIGNIN_VISITOR_NUM)"+param.getSigninVisitorNum() )
+                    .setSql(param.getLeaveVisitorNum()!=null,"LEAVE_VISITOR_NUM = ifnull(LEAVE_VISITOR_NUM)"+param.getLeaveVisitorNum() )
+                    .setSql(param.getInOtherMemberNum()!=null,"IN_OTHER_MEMBER_NUM = ifnull(IN_OTHER_MEMBER_NUM)"+param.getInOtherMemberNum() )
+                    .setSql(param.getOutOtherMemberNum()!=null,"OUT_OTHER_MEMBER_NUM = ifnull(OUT_OTHER_MEMBER_NUM)"+param.getOutOtherMemberNum() )
+                    .setSql(param.getInSelfMemberNum()!=null,"IN_SELF_MEMBER_NUM = ifnull(IN_SELF_MEMBER_NUM)"+param.getInSelfMemberNum() )
+                    .setSql(param.getOutSelfMemberNum()!=null,"OUT_SELF_MEMBER_NUM = ifnull(OUT_SELF_MEMBER_NUM)"+param.getOutSelfMemberNum() )
+            );
+        }
+    }
+
     /**
      * 鏍规嵁鎺ㄩ�佷汉鍛樼紪鐮侊紝澶勭悊鍦ㄥ満銆佺鍦轰汉鍛樻暟鎹褰�
      * @param request
      * @param delRetentionLis
      * @param retentionList
      */
-    private void dealMemberDataByRequest(EventAcsInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList) {
+    private void dealMemberDataByRequest(EventAcsInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList,InoutDayCount inoutDayCount) {
         //娴峰悍浜哄憳缂栫爜
         String userNo = request.getData().getExtEventPersonNo();
         if(StringUtils.isNotBlank(userNo)){
-            Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,userNo).last("limit 1"));
+            Member member = memberMapper.selectJoinOne(Member.class,new MPJLambdaWrapper<Member>()
+                    .selectAll(Member.class)
+                    .selectAs(Member::getCompanyType,Company::getType)
+                    .leftJoin(Company.class,Company::getId,Member::getCompanyId)
+                    .eq(Member::getHkId,userNo)
+                    .last("limit 1"));
+            //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級
+            Device d = deviceMapper.selectOne(new QueryWrapper<Device>().lambda()
+                    .eq(Device::getDoorId,request.getSrcIndex())
+                    .eq(Device::getIsdeleted,Constants.ZERO)
+                    .last("limit 1" ));
+            if(d!=null && !(Constants.equalsInteger(d.getIsEntrance(),Constants.ONE) && Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE)){
+                //濡傛灉鏄繘闂紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
+                inoutDayCount.setInMemberNum(Constants.formatIntegerNum(inoutDayCount.getInMemberNum())+1);//鍏ュ満浜烘
+            }else{
+                inoutDayCount.setOutMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutMemberNum())+1);//绂诲満浜烘
+            }
             if(member !=null){
-                //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級
-                Device d = deviceMapper.selectOne(new QueryWrapper<Device>().lambda()
-                        .eq(Device::getDoorId,request.getSrcIndex())
-                        .eq(Device::getIsdeleted,Constants.ZERO)
-                        .last("limit 1" ));
                 delRetentionLis.add(member.getId());
                 if(d!=null && !(Constants.equalsInteger(d.getIsEntrance(),Constants.ONE) && Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE)){
                     //濡傛灉鏄繘闂紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
                     retentionList.add(getRetentionModelByRequest(member,request));
+                    if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
+                        inoutDayCount.setInSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getInSelfMemberNum())+1);//鍐呴儴浜哄憳鍏ュ満浜烘
+                    }else{
+                        inoutDayCount.setInOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getInOtherMemberNum())+1);//鐩稿叧鏂瑰叆鍦轰汉娆�
+                    }
+                }else{
+                    if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
+                        inoutDayCount.setOutSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutSelfMemberNum())+1);//鍐呴儴浜哄憳鍑哄満浜烘
+                    }else{
+                        inoutDayCount.setOutOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutOtherMemberNum())+1);//鐩稿叧鏂瑰嚭鍦轰汉娆�
+                    }
                 }
             }
         }
@@ -345,6 +403,7 @@
             List<VisitEvent> list = new ArrayList<>();
             List<Integer> delRetentionLis = new ArrayList<>();
             List<Retention> retentionList = new ArrayList<>();
+            InoutDayCount inoutDayCount = new InoutDayCount();
             for(EventVisitIccmInfoRequest request : events){
                 if(request.getData() ==null || request.getData().getVisitorInvoices() ==null){
                     continue;
@@ -353,7 +412,7 @@
                     continue;
                 }
                 //娴峰悍璁垮璁板綍缂栫爜
-                dealVisitDataByRequstIccm(request,delRetentionLis,retentionList);
+                dealVisitDataByRequstIccm(request,delRetentionLis,retentionList,inoutDayCount);
                 list.add(getVisitEventModelByRequestIccm(request,request.getData().getVisitorInformationList().get(0)));
             }
             if(list.size()>0){
@@ -370,6 +429,7 @@
                 //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
                 retentionMapper.insert(retentionList);
             }
+            dealInoutDayCountBiz(inoutDayCount);
             log.info("銆愭捣搴疯瀹簨浠舵帹閫併��========鎴愬姛=======");
         }catch (Exception e){
             log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========澶辫触=======锛歕n"+e.getMessage());
@@ -382,7 +442,7 @@
     /**
      *  鏍规嵁璁垮鎺ㄩ�佽瀹㈣褰曠紪鐮侊紝澶勭悊璁垮璁板綍銆佸湪鍦轰汉鍛樼瓑淇℃伅
      */
-    private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList ) {
+    private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList,  InoutDayCount inoutDayCount) {
 
         EventVisitIccmDataRequest model = request.getData();
         EventVisitIccmInvoiceParamRequest data =  request.getData().getVisitorInvoices();
@@ -394,8 +454,6 @@
         queryWrapper.last("limit 1");
         Visits visits = visitsMapper.selectJoinOne(Visits.class,queryWrapper);
         if(visits !=null){
-            //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級
-            delRetentionLis.add(visits.getMemberId());
             if(dataSyncConfig.getOrgUserDataOrigin() == DataSyncConfig.origin.hk){
                 //濡傛灉鏄紛鍒╁ぇ灞忛」鐩紝涓嶅仛澶勭悊
                 return;
@@ -404,8 +462,9 @@
             updateVistis.setId(visits.getId());
             if (Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_ICCM_IN.getKey()) {
                 //濡傛灉鏄瀹㈢櫥璁帮紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
-                retentionList.add(getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType()));
+//                retentionList.add(getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType()));
                 //鏉ヨ鏃堕棿
+                inoutDayCount.setSigninVisitorNum(Constants.formatIntegerNum(inoutDayCount.getSigninVisitorNum())+1);
                 updateVistis.setStatus(Constants.VisitStatus.signin);
                 updateVistis.setInDate(DateUtil.getISO8601DateByStr(data.getBeginTime()));
                 updateVistis.setOutDate(DateUtil.getISO8601DateByStr(data.getFinishTime()));
@@ -416,13 +475,31 @@
                 memberMapper.updateById(member);
             }else if (Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_ICCM_OUT.getKey())  {
                 //濡傛灉鏄瀹㈢绂讳簨浠�
+                inoutDayCount.setLeaveVisitorNum(Constants.formatIntegerNum(inoutDayCount.getLeaveVisitorNum())+1);
                 updateVistis.setStatus(Constants.VisitStatus.signout);
                 updateVistis.setInDate(DateUtil.getISO8601DateByStr(data.getBeginTime()));
                 updateVistis.setOutDate(DateUtil.getISO8601DateByStr(data.getFinishTime()));
                 updateVistis.setOutType(Constants.ZERO);
                 updateVistis.setOutInfo("璁垮姝e父绛剧");
             }else{
+                //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垏鏄瀹㈤�氳锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級
+                delRetentionLis.add(visits.getMemberId());
                 //濡傛灉鏄瀹㈤�氳
+                if(request.getData()!=null&&request.getData().getParamValues()!=null &&
+                        StringUtils.equals(request.getData().getParamValues().getInOrOut(),"1")){
+                    //濡傛灉鏄瀹㈢櫥璁帮紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
+                    Retention r = getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType());
+                    r.setCarNo(request.getData().getParamValues().getPlateNos());
+                    r.setAccessType(request.getData().getParamValues().getAccessType());
+                    r.setDeviceName(request.getData().getParamValues().getSrcName());
+                    r.setDeviceIndex(request.getData().getParamValues().getSrcIndex());
+                    retentionList.add(r);
+                    inoutDayCount.setInVisitorNum(Constants.formatIntegerNum(inoutDayCount.getInVisitorNum())+1);
+                }
+                if(request.getData()!=null&&request.getData().getParamValues()!=null &&
+                         StringUtils.equals(request.getData().getParamValues().getInOrOut(),"2")){
+                    inoutDayCount.setOutVisitorNum(Constants.formatIntegerNum(inoutDayCount.getOutVisitorNum())+1);
+                }
             }
             updateVistis.setEditDate(new Date());
             //鏇存柊璁垮鏉ヨ鎴栬�呯绂绘椂闂翠俊鎭�
@@ -643,12 +720,13 @@
             List<CarEvent> list = new ArrayList<>();
             List<Retention> retentionList = new ArrayList<>();
             List<String> delRetentionList = new ArrayList<>();
+            InoutDayCount inoutDayCount = new InoutDayCount();
             for(EventParkInfoRequest request : events){
                 if(request.getData() ==null ||StringUtils.isBlank(request.getData().getPlateNo())){
                     continue;
                 }
                 //灏佽浜嬩欢淇℃伅琛ㄥ璞�
-                list.add(getParkEventModelByRequest(request,delRetentionList,retentionList));
+                list.add(getParkEventModelByRequest(request,delRetentionList,retentionList,inoutDayCount));
             }
             if(list.size()>0){
                 //鎻掑叆闂ㄧ璁板綍
@@ -664,6 +742,7 @@
                 //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
                 retentionMapper.insert(retentionList);
             }
+            dealInoutDayCountBiz(inoutDayCount);
             log.info("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========鎴愬姛=======");
         }catch (Exception e){
 
@@ -678,7 +757,7 @@
      * @param request
      * @return
      */
-    private CarEvent getParkEventModelByRequest(EventParkInfoRequest request, List<String> delRetentionList , List<Retention> retentionList ) {
+    private CarEvent getParkEventModelByRequest(EventParkInfoRequest request, List<String> delRetentionList , List<Retention> retentionList,InoutDayCount inoutDayCount ) {
         CarEvent event = new CarEvent();
         event.setIsdeleted(Constants.ZERO);
         event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
@@ -754,9 +833,11 @@
                 //濡傛灉鏄叆鍘傛斁琛�
                 delRetentionList.add(event.getPlateNos());
                 retentionList.add(getRetentionModelByParkRequest(request));
+                inoutDayCount.setInCarNum(Constants.formatIntegerNum(inoutDayCount.getInCarNum())+1);
             }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){
                 //濡傛灉鏄嚭鍦烘斁琛�
                 delRetentionList.add(event.getPlateNos());
+                inoutDayCount.setOutCarNum(Constants.formatIntegerNum(inoutDayCount.getOutCarNum())+1);
             }
         }
         return event;

--
Gitblit v1.9.3