diff --git a/src/main/java/com/glxp/api/controller/stat/BigVisController.java b/src/main/java/com/glxp/api/controller/stat/BigVisController.java
new file mode 100644
index 0000000..67ef1aa
--- /dev/null
+++ b/src/main/java/com/glxp/api/controller/stat/BigVisController.java
@@ -0,0 +1,127 @@
+package com.glxp.api.controller.stat;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.pagehelper.PageInfo;
+import com.glxp.api.annotation.AuthRuleAnnotation;
+import com.glxp.api.common.res.BaseResponse;
+import com.glxp.api.common.util.ResultVOUtils;
+import com.glxp.api.controller.BaseController;
+import com.glxp.api.entity.stat.*;
+import com.glxp.api.req.replicate.FilterReplicateRequest;
+import com.glxp.api.req.trace.TraceTaskDetailRequest;
+import com.glxp.api.res.PageSimpleResponse;
+import com.glxp.api.res.trace.TraceTaskDlResponse;
+import com.glxp.api.service.stat.*;
+import com.glxp.api.service.trace.TraceTaskService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 大屏可视化查询
+ */
+@RestController
+public class BigVisController extends BaseController {
+
+
+    @Resource
+    StatCorpCountService statCorpCountService;
+    @Resource
+    StatCorpProductService statCorpProductService;
+    @Resource
+    StatCorpTypeService statCorpTypeService;
+    @Resource
+    StatTraceCountService statTraceCountService;
+    @Resource
+    SysMsgTodoService sysMsgTodoService;
+    @Resource
+    TraceTaskService traceTaskService;
+    @Resource
+    StatCityCorpService statCityCorpService;
+
+
+    /**
+     * 获取城市注册企业数量
+     */
+    @GetMapping("/cpt/bigVis/city/company")
+    public BaseResponse getCityCompany(FilterReplicateRequest filterReplicateRequest) {
+
+        List<StatCityCorpEntity> statCityCorpEntities = statCityCorpService.list(
+                new QueryWrapper<StatCityCorpEntity>());
+        return ResultVOUtils.success(statCityCorpEntities);
+    }
+
+    /**
+     * 企业维护UDI产品数量查询
+     */
+    @GetMapping("/cpt/bigVis/company/product/list")
+    public BaseResponse companyProduct(FilterReplicateRequest filterReplicateRequest) {
+
+
+        List<StatCorpProductEntity> statCorpProductEntities = statCorpProductService.list(
+                new QueryWrapper<StatCorpProductEntity>()
+                        .orderByDesc("productCount").last("limit 10"));
+        return ResultVOUtils.success(statCorpProductEntities);
+    }
+
+
+    /**
+     * 企业分类
+     */
+    @GetMapping("/cpt/bigVis/company/type/list")
+    public BaseResponse companyTypeList(FilterReplicateRequest filterReplicateRequest) {
+
+        StatCorpTypeEntity statCorpTypeEntity = statCorpTypeService.getOne(new QueryWrapper<StatCorpTypeEntity>().last("limit 1"));
+        return ResultVOUtils.success(statCorpTypeEntity);
+    }
+
+
+    /**
+     * 企业在线统计
+     */
+    @GetMapping("/cpt/bigVis/company/online/list")
+    public BaseResponse companyOnLineList(FilterReplicateRequest filterReplicateRequest) {
+
+        StatCorpCountEntity statCorpCountEntity = statCorpCountService.getOne(new QueryWrapper<StatCorpCountEntity>().last("limit 1"));
+        return ResultVOUtils.success(statCorpCountEntity);
+    }
+
+
+    /**
+     * 用户追溯查询
+     */
+    @GetMapping("/cpt/bigVis/company/trace/list")
+    public BaseResponse companyTraceList(FilterReplicateRequest filterReplicateRequest) {
+        List<StatTraceCountEntity> statCorpProductEntities = statTraceCountService.list(
+                new QueryWrapper<StatTraceCountEntity>()
+                        .orderByDesc("searchDate").last("limit 10"));
+        return ResultVOUtils.success(statCorpProductEntities);
+    }
+
+
+    /**
+     * 获取消息通知列表
+     */
+    @GetMapping("/cpt/bigVis/company/todo/msg")
+    public BaseResponse systemMsgTodo(FilterReplicateRequest filterReplicateRequest) {
+        List<SysMsgTodoEntity> sysMsgTodoEntities = sysMsgTodoService.list(
+                new QueryWrapper<SysMsgTodoEntity>()
+                        .orderByDesc("updateTime").last("limit 10"));
+        return ResultVOUtils.success(sysMsgTodoEntities);
+    }
+
+
+    //任务列表
+    @ApiOperation(value = "查询任务列表", response = TraceTaskDlResponse.class)
+    @GetMapping("/cpt/bigVis/task/filter")
+    public BaseResponse filterTask(TraceTaskDetailRequest traceTaskDetailRequest) {
+        traceTaskDetailRequest.setPage(1);
+        traceTaskDetailRequest.setLimit(10);
+        List<TraceTaskDlResponse> traceTaskDlResponses = traceTaskService.queryTraceTaskList(traceTaskDetailRequest);
+        return ResultVOUtils.success(traceTaskDlResponses);
+    }
+
+}
diff --git a/src/main/java/com/glxp/api/dao/stat/StatCityCorpMapper.java b/src/main/java/com/glxp/api/dao/stat/StatCityCorpMapper.java
new file mode 100644
index 0000000..0deb75c
--- /dev/null
+++ b/src/main/java/com/glxp/api/dao/stat/StatCityCorpMapper.java
@@ -0,0 +1,9 @@
+package com.glxp.api.dao.stat;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.glxp.api.entity.stat.StatCityCorpEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface StatCityCorpMapper extends BaseMapper<StatCityCorpEntity> {
+}
diff --git a/src/main/java/com/glxp/api/dao/stat/StatCorpCountMapper.java b/src/main/java/com/glxp/api/dao/stat/StatCorpCountMapper.java
new file mode 100644
index 0000000..479ad29
--- /dev/null
+++ b/src/main/java/com/glxp/api/dao/stat/StatCorpCountMapper.java
@@ -0,0 +1,9 @@
+package com.glxp.api.dao.stat;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.glxp.api.entity.stat.StatCorpCountEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface StatCorpCountMapper extends BaseMapper<StatCorpCountEntity> {
+}
diff --git a/src/main/java/com/glxp/api/dao/stat/StatCorpProductMapper.java b/src/main/java/com/glxp/api/dao/stat/StatCorpProductMapper.java
new file mode 100644
index 0000000..c9b4afd
--- /dev/null
+++ b/src/main/java/com/glxp/api/dao/stat/StatCorpProductMapper.java
@@ -0,0 +1,9 @@
+package com.glxp.api.dao.stat;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.glxp.api.entity.stat.StatCorpProductEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface StatCorpProductMapper extends BaseMapper<StatCorpProductEntity> {
+}
diff --git a/src/main/java/com/glxp/api/dao/stat/StatCorpTypeMapper.java b/src/main/java/com/glxp/api/dao/stat/StatCorpTypeMapper.java
new file mode 100644
index 0000000..80f05fb
--- /dev/null
+++ b/src/main/java/com/glxp/api/dao/stat/StatCorpTypeMapper.java
@@ -0,0 +1,9 @@
+package com.glxp.api.dao.stat;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.glxp.api.entity.stat.StatCorpTypeEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface StatCorpTypeMapper extends BaseMapper<StatCorpTypeEntity> {
+}
diff --git a/src/main/java/com/glxp/api/dao/stat/StatTraceCountMapper.java b/src/main/java/com/glxp/api/dao/stat/StatTraceCountMapper.java
new file mode 100644
index 0000000..992e7b6
--- /dev/null
+++ b/src/main/java/com/glxp/api/dao/stat/StatTraceCountMapper.java
@@ -0,0 +1,9 @@
+package com.glxp.api.dao.stat;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.glxp.api.entity.stat.StatTraceCountEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface StatTraceCountMapper extends BaseMapper<StatTraceCountEntity> {
+}
diff --git a/src/main/java/com/glxp/api/dao/stat/SysMsgTodoMapper.java b/src/main/java/com/glxp/api/dao/stat/SysMsgTodoMapper.java
new file mode 100644
index 0000000..1b82ae4
--- /dev/null
+++ b/src/main/java/com/glxp/api/dao/stat/SysMsgTodoMapper.java
@@ -0,0 +1,9 @@
+package com.glxp.api.dao.stat;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.glxp.api.entity.stat.SysMsgTodoEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysMsgTodoMapper extends BaseMapper<SysMsgTodoEntity> {
+}
diff --git a/src/main/java/com/glxp/api/entity/stat/StatCityCorpEntity.java b/src/main/java/com/glxp/api/entity/stat/StatCityCorpEntity.java
new file mode 100644
index 0000000..bc158f0
--- /dev/null
+++ b/src/main/java/com/glxp/api/entity/stat/StatCityCorpEntity.java
@@ -0,0 +1,39 @@
+package com.glxp.api.entity.stat;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "stat_city_corp")
+public class StatCityCorpEntity implements Serializable {
+    @TableId(value = "id", type = IdType.INPUT)
+    private Integer id;
+
+    @TableField(value = "cityCode")
+    private String cityCode;
+
+    @TableField(value = "cityName")
+    private String cityName;
+
+    @TableField(value = "`count`")
+    private Integer count;
+
+    @TableField(value = "updateTime")
+    private Date updateTime;
+
+    @TableField(value = "remark")
+    private String remark;
+
+    private static final long serialVersionUID = 1L;
+}
diff --git a/src/main/java/com/glxp/api/entity/stat/StatCorpCountEntity.java b/src/main/java/com/glxp/api/entity/stat/StatCorpCountEntity.java
new file mode 100644
index 0000000..341b82a
--- /dev/null
+++ b/src/main/java/com/glxp/api/entity/stat/StatCorpCountEntity.java
@@ -0,0 +1,42 @@
+package com.glxp.api.entity.stat;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "stat_corp_count")
+public class StatCorpCountEntity implements Serializable {
+    @TableId(value = "id", type = IdType.INPUT)
+    private Integer id;
+
+    @TableField(value = "totalCount")
+    private Integer totalCount;
+
+    @TableField(value = "onlineCount")
+    private Integer onlineCount;
+
+    @TableField(value = "offlineCount")
+    private Integer offlineCount;
+
+    @TableField(value = "errCount")
+    private Integer errCount;
+
+    @TableField(value = "updateTime")
+    private Date updateTime;
+
+    @TableField(value = "remark")
+    private String remark;
+
+    private static final long serialVersionUID = 1L;
+}
diff --git a/src/main/java/com/glxp/api/entity/stat/StatCorpProductEntity.java b/src/main/java/com/glxp/api/entity/stat/StatCorpProductEntity.java
new file mode 100644
index 0000000..112b2a5
--- /dev/null
+++ b/src/main/java/com/glxp/api/entity/stat/StatCorpProductEntity.java
@@ -0,0 +1,54 @@
+package com.glxp.api.entity.stat;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "stat_corp_product")
+public class StatCorpProductEntity implements Serializable {
+    @TableId(value = "id", type = IdType.INPUT)
+    private Integer id;
+
+    /**
+     * 企业名称
+     */
+    @TableField(value = "corpName")
+    private String corpName;
+
+    /**
+     * 企业ID
+     */
+    @TableField(value = "corpId")
+    private Long corpId;
+
+    /**
+     * 维护产品数量
+     */
+    @TableField(value = "productCount")
+    private Integer productCount;
+
+    /**
+     * 更新时间
+     */
+    @TableField(value = "updateTime")
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "remark")
+    private String remark;
+
+    private static final long serialVersionUID = 1L;
+}
diff --git a/src/main/java/com/glxp/api/entity/stat/StatCorpTypeEntity.java b/src/main/java/com/glxp/api/entity/stat/StatCorpTypeEntity.java
new file mode 100644
index 0000000..d09fa1f
--- /dev/null
+++ b/src/main/java/com/glxp/api/entity/stat/StatCorpTypeEntity.java
@@ -0,0 +1,55 @@
+package com.glxp.api.entity.stat;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "stat_corp_type")
+public class StatCorpTypeEntity implements Serializable {
+    @TableId(value = "id", type = IdType.INPUT)
+    private Integer id;
+
+    /**
+     * 生产企业数量
+     */
+    @TableField(value = "manuCount")
+    private Integer manuCount;
+
+    /**
+     * 医疗机构数量
+     */
+    @TableField(value = "hospCount")
+    private Integer hospCount;
+
+    /**
+     * 流通企业数量
+     */
+    @TableField(value = "supCount")
+    private Integer supCount;
+
+    /**
+     * 更新时间
+
+     */
+    @TableField(value = "updateTime")
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "remark")
+    private String remark;
+
+    private static final long serialVersionUID = 1L;
+}
diff --git a/src/main/java/com/glxp/api/entity/stat/StatTraceCountEntity.java b/src/main/java/com/glxp/api/entity/stat/StatTraceCountEntity.java
new file mode 100644
index 0000000..a98479a
--- /dev/null
+++ b/src/main/java/com/glxp/api/entity/stat/StatTraceCountEntity.java
@@ -0,0 +1,64 @@
+package com.glxp.api.entity.stat;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "stat_trace_count")
+public class StatTraceCountEntity implements Serializable {
+    @TableId(value = "id", type = IdType.INPUT)
+    private Integer id;
+
+    /**
+     * 查询日期
+     */
+    @TableField(value = "searchDate")
+    private Date searchDate;
+
+    /**
+     * 查询次数
+     */
+    @TableField(value = "searchCount")
+    private Integer searchCount;
+
+
+    /**
+     * 失败次数
+     */
+    @TableField(value = "failCount")
+    private Integer failCount;
+
+    /**
+     * 成功次数
+     */
+    @TableField(value = "successCount")
+    private Integer successCount;
+
+
+    /**
+     * 更新时间
+     */
+    @TableField(value = "updateTime")
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "remark")
+    private String remark;
+
+    private static final long serialVersionUID = 1L;
+}
diff --git a/src/main/java/com/glxp/api/entity/stat/SysMsgTodoEntity.java b/src/main/java/com/glxp/api/entity/stat/SysMsgTodoEntity.java
new file mode 100644
index 0000000..11d7245
--- /dev/null
+++ b/src/main/java/com/glxp/api/entity/stat/SysMsgTodoEntity.java
@@ -0,0 +1,96 @@
+package com.glxp.api.entity.stat;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "sys_msg_todo")
+public class SysMsgTodoEntity implements Serializable {
+    @TableId(value = "id", type = IdType.INPUT)
+    private Integer id;
+
+    /**
+     * 消息编码
+     */
+    @TableField(value = "code")
+    private String code;
+
+    /**
+     * 消息类型
+     */
+    @TableField(value = "msgType")
+    private Byte msgType;
+
+    /**
+     * 消息内容
+     */
+    @TableField(value = "msgContent")
+    private String msgContent;
+
+    /**
+     * 处理状态
+     */
+    @TableField(value = "dealStatus")
+    private Byte dealStatus;
+
+    /**
+     * 推送小程序状态(1:未推送;2:推送成功;3:推送失败
+     */
+    @TableField(value = "pushStatus")
+    private Byte pushStatus;
+
+    /**
+     * 跳转地址
+     */
+    @TableField(value = "toUrl")
+    private String toUrl;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "createTime")
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    @TableField(value = "updateUser")
+    private String updateUser;
+
+    /**
+     * 更新时间
+     */
+    @TableField(value = "updateTime")
+    private Date updateTime;
+
+    /**
+     * 企业ID
+     */
+    @TableField(value = "companyId")
+    private Long companyId;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "remark")
+    private String remark;
+
+
+    @TableField(value = "companyName")
+    private String companyName;
+
+    private static final long serialVersionUID = 1L;
+}
diff --git a/src/main/java/com/glxp/api/service/stat/StatCityCorpService.java b/src/main/java/com/glxp/api/service/stat/StatCityCorpService.java
new file mode 100644
index 0000000..7257ee0
--- /dev/null
+++ b/src/main/java/com/glxp/api/service/stat/StatCityCorpService.java
@@ -0,0 +1,10 @@
+package com.glxp.api.service.stat;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.glxp.api.dao.stat.StatCityCorpMapper;
+import com.glxp.api.entity.stat.StatCityCorpEntity;
+@Service
+public class StatCityCorpService extends ServiceImpl<StatCityCorpMapper, StatCityCorpEntity> {
+
+}
diff --git a/src/main/java/com/glxp/api/service/stat/StatCorpCountService.java b/src/main/java/com/glxp/api/service/stat/StatCorpCountService.java
new file mode 100644
index 0000000..a261537
--- /dev/null
+++ b/src/main/java/com/glxp/api/service/stat/StatCorpCountService.java
@@ -0,0 +1,10 @@
+package com.glxp.api.service.stat;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.glxp.api.dao.stat.StatCorpCountMapper;
+import com.glxp.api.entity.stat.StatCorpCountEntity;
+@Service
+public class StatCorpCountService extends ServiceImpl<StatCorpCountMapper, StatCorpCountEntity> {
+
+}
diff --git a/src/main/java/com/glxp/api/service/stat/StatCorpProductService.java b/src/main/java/com/glxp/api/service/stat/StatCorpProductService.java
new file mode 100644
index 0000000..eb58f90
--- /dev/null
+++ b/src/main/java/com/glxp/api/service/stat/StatCorpProductService.java
@@ -0,0 +1,10 @@
+package com.glxp.api.service.stat;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.glxp.api.entity.stat.StatCorpProductEntity;
+import com.glxp.api.dao.stat.StatCorpProductMapper;
+@Service
+public class StatCorpProductService extends ServiceImpl<StatCorpProductMapper, StatCorpProductEntity> {
+
+}
diff --git a/src/main/java/com/glxp/api/service/stat/StatCorpTypeService.java b/src/main/java/com/glxp/api/service/stat/StatCorpTypeService.java
new file mode 100644
index 0000000..8d9b563
--- /dev/null
+++ b/src/main/java/com/glxp/api/service/stat/StatCorpTypeService.java
@@ -0,0 +1,10 @@
+package com.glxp.api.service.stat;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.glxp.api.entity.stat.StatCorpTypeEntity;
+import com.glxp.api.dao.stat.StatCorpTypeMapper;
+@Service
+public class StatCorpTypeService extends ServiceImpl<StatCorpTypeMapper, StatCorpTypeEntity> {
+
+}
diff --git a/src/main/java/com/glxp/api/service/stat/StatTraceCountService.java b/src/main/java/com/glxp/api/service/stat/StatTraceCountService.java
new file mode 100644
index 0000000..d9ff139
--- /dev/null
+++ b/src/main/java/com/glxp/api/service/stat/StatTraceCountService.java
@@ -0,0 +1,10 @@
+package com.glxp.api.service.stat;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.glxp.api.dao.stat.StatTraceCountMapper;
+import com.glxp.api.entity.stat.StatTraceCountEntity;
+@Service
+public class StatTraceCountService extends ServiceImpl<StatTraceCountMapper, StatTraceCountEntity> {
+
+}
diff --git a/src/main/java/com/glxp/api/service/stat/SysMsgTodoService.java b/src/main/java/com/glxp/api/service/stat/SysMsgTodoService.java
new file mode 100644
index 0000000..929f729
--- /dev/null
+++ b/src/main/java/com/glxp/api/service/stat/SysMsgTodoService.java
@@ -0,0 +1,10 @@
+package com.glxp.api.service.stat;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.glxp.api.dao.stat.SysMsgTodoMapper;
+import com.glxp.api.entity.stat.SysMsgTodoEntity;
+@Service
+public class SysMsgTodoService extends ServiceImpl<SysMsgTodoMapper, SysMsgTodoEntity> {
+
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 0a4d863..161e280 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -78,6 +78,10 @@ logging:
   level:
     com.glxp.api.dao: debug
 
+
+minio_path: /udi
+minio_url: http://139.9.219.60:9000
+
 file_path: D:/udi/inUdiwms/udiwmsfile/
 UDI_KEY: 6b137c66-6286-46c6-8efa-c2f5dd9237df
 UDI_SERVER_URL: https://www.udims.com/UDI_DL_Server_test
diff --git a/src/main/resources/mybatis/mapper/stat/StatCityCorpMapper.xml b/src/main/resources/mybatis/mapper/stat/StatCityCorpMapper.xml
new file mode 100644
index 0000000..02907f1
--- /dev/null
+++ b/src/main/resources/mybatis/mapper/stat/StatCityCorpMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.glxp.api.dao.stat.StatCityCorpMapper">
+  <resultMap id="BaseResultMap" type="com.glxp.api.entity.stat.StatCityCorpEntity">
+    <!--@mbg.generated-->
+    <!--@Table stat_city_corp-->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="cityCode" jdbcType="VARCHAR" property="cityCode" />
+    <result column="cityName" jdbcType="VARCHAR" property="cityName" />
+    <result column="count" jdbcType="INTEGER" property="count" />
+    <result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="remark" jdbcType="VARCHAR" property="remark" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, cityCode, cityName, `count`, updateTime, remark
+  </sql>
+</mapper>
diff --git a/src/main/resources/mybatis/mapper/stat/StatCorpCountMapper.xml b/src/main/resources/mybatis/mapper/stat/StatCorpCountMapper.xml
new file mode 100644
index 0000000..9f7d525
--- /dev/null
+++ b/src/main/resources/mybatis/mapper/stat/StatCorpCountMapper.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.glxp.api.dao.stat.StatCorpCountMapper">
+  <resultMap id="BaseResultMap" type="com.glxp.api.entity.stat.StatCorpCountEntity">
+    <!--@mbg.generated-->
+    <!--@Table stat_corp_count-->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="totalCount" jdbcType="INTEGER" property="totalCount" />
+    <result column="onlineCount" jdbcType="INTEGER" property="onlineCount" />
+    <result column="offlineCount" jdbcType="INTEGER" property="offlineCount" />
+    <result column="errCount" jdbcType="INTEGER" property="errCount" />
+    <result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="remark" jdbcType="VARCHAR" property="remark" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, totalCount, onlineCount, offlineCount, errCount, updateTime, remark
+  </sql>
+</mapper>
diff --git a/src/main/resources/mybatis/mapper/stat/StatCorpProductMapper.xml b/src/main/resources/mybatis/mapper/stat/StatCorpProductMapper.xml
new file mode 100644
index 0000000..70777f4
--- /dev/null
+++ b/src/main/resources/mybatis/mapper/stat/StatCorpProductMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.glxp.api.dao.stat.StatCorpProductMapper">
+  <resultMap id="BaseResultMap" type="com.glxp.api.entity.stat.StatCorpProductEntity">
+    <!--@mbg.generated-->
+    <!--@Table stat_corp_product-->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="corpName" jdbcType="VARCHAR" property="corpName" />
+    <result column="corpId" jdbcType="BIGINT" property="corpId" />
+    <result column="productCount" jdbcType="INTEGER" property="productCount" />
+    <result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="remark" jdbcType="VARCHAR" property="remark" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, corpName, corpId, productCount, updateTime, remark
+  </sql>
+</mapper>
diff --git a/src/main/resources/mybatis/mapper/stat/StatCorpTypeMapper.xml b/src/main/resources/mybatis/mapper/stat/StatCorpTypeMapper.xml
new file mode 100644
index 0000000..fb95123
--- /dev/null
+++ b/src/main/resources/mybatis/mapper/stat/StatCorpTypeMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.glxp.api.dao.stat.StatCorpTypeMapper">
+  <resultMap id="BaseResultMap" type="com.glxp.api.entity.stat.StatCorpTypeEntity">
+    <!--@mbg.generated-->
+    <!--@Table stat_corp_type-->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="manuCount" jdbcType="INTEGER" property="manuCount" />
+    <result column="hospCount" jdbcType="INTEGER" property="hospCount" />
+    <result column="supCount" jdbcType="INTEGER" property="supCount" />
+    <result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="remark" jdbcType="VARCHAR" property="remark" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, manuCount, hospCount, supCount, updateTime, remark
+  </sql>
+</mapper>
diff --git a/src/main/resources/mybatis/mapper/stat/StatTraceCountMapper.xml b/src/main/resources/mybatis/mapper/stat/StatTraceCountMapper.xml
new file mode 100644
index 0000000..db182c8
--- /dev/null
+++ b/src/main/resources/mybatis/mapper/stat/StatTraceCountMapper.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.glxp.api.dao.stat.StatTraceCountMapper">
+    <resultMap id="BaseResultMap" type="com.glxp.api.entity.stat.StatTraceCountEntity">
+        <!--@mbg.generated-->
+        <!--@Table stat_trace_count-->
+        <id column="id" jdbcType="INTEGER" property="id"/>
+        <result column="searchDate" jdbcType="TIMESTAMP" property="searchDate"/>
+        <result column="searchCount" jdbcType="INTEGER" property="searchCount"/>
+        <result column="successCount" jdbcType="INTEGER" property="searchCount"/>
+        <result column="failCount" jdbcType="INTEGER" property="searchCount"/>
+        <result column="updateTime" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id, searchDate, searchCount, updateTime, remark,successCount,failCount
+    </sql>
+</mapper>
diff --git a/src/main/resources/mybatis/mapper/stat/SysMsgTodoMapper.xml b/src/main/resources/mybatis/mapper/stat/SysMsgTodoMapper.xml
new file mode 100644
index 0000000..2c538c4
--- /dev/null
+++ b/src/main/resources/mybatis/mapper/stat/SysMsgTodoMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.glxp.api.dao.stat.SysMsgTodoMapper">
+    <resultMap id="BaseResultMap" type="com.glxp.api.entity.stat.SysMsgTodoEntity">
+        <!--@mbg.generated-->
+        <!--@Table sys_msg_todo-->
+        <id column="id" jdbcType="INTEGER" property="id"/>
+        <result column="code" jdbcType="VARCHAR" property="code"/>
+        <result column="msgType" jdbcType="TINYINT" property="msgType"/>
+        <result column="msgContent" jdbcType="VARCHAR" property="msgContent"/>
+        <result column="dealStatus" jdbcType="TINYINT" property="dealStatus"/>
+        <result column="pushStatus" jdbcType="TINYINT" property="pushStatus"/>
+        <result column="toUrl" jdbcType="VARCHAR" property="toUrl"/>
+        <result column="createTime" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="updateUser" jdbcType="VARCHAR" property="updateUser"/>
+        <result column="updateTime" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="companyId" jdbcType="BIGINT" property="companyId"/>
+        <result column="companyName" jdbcType="VARCHAR" property="companyName"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id, code, msgType, msgContent, dealStatus, pushStatus, toUrl, createTime, updateUser,
+        updateTime, companyId, companyName,remark
+    </sql>
+</mapper>