From 443e32fec6aec9dfa2ca802246950dc3c36e6251 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期五, 25 七月 2025 15:35:12 +0800
Subject: [PATCH] 保存一个版本

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/FaultCount.java                   |   44 ++
 zy-acs-flow/src/page/regionCount/index.jsx                                                       |   16 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewFaultCount.java          |   40 ++
 package-lock.json                                                                                |    6 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskCountService.java            |    8 
 zy-acs-manager/src/main/resources/mapper/manager/FaultCountMapper.xml                            |    5 
 zy-acs-flow/src/page/taskCount/index.jsx                                                         |   16 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/TaskCountMapper.java              |   12 
 zy-acs-manager/src/main/resources/application.yml                                                |   10 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/RegionCount.java                  |   44 ++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewRegion.java              |   64 +++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewTaskCount.java           |   45 ++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/FaultCountService.java           |    8 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/RegionCountService.java          |    8 
 zy-acs-flow/src/page/faultCount/FaultCountList.jsx                                               |  115 ++++++
 zy-acs-manager/src/main/resources/mapper/manager/TaskCountMapper.xml                             |    5 
 zy-acs-flow/src/page/faultCount/index.jsx                                                        |   16 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/FaultCountController.java     |   45 ++
 zy-acs-flow/src/i18n/zh.js                                                                       |   29 +
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/RegionCountMapper.java            |   12 
 zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/ExcelUtil.java                      |   61 +++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskCountServiceImpl.java   |   12 
 zy-acs-flow/src/page/agvDetail/AgvDetailList.jsx                                                 |    2 
 zy-acs-flow/src/page/regionCount/RegionCountList.jsx                                             |  118 ++++++
 zy-acs-flow/src/page/taskCount/TaskCountList.jsx                                                 |  113 ++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FaultCountServiceImpl.java  |   12 
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/StatisticsScheduler.java          |    3 
 zy-acs-flow/src/i18n/en.js                                                                       |   29 +
 zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java                          |    4 
 zy-acs-flow/src/page/ResourceContent.js                                                          |    9 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/RegionCountServiceImpl.java |   12 
 zy-acs-manager/src/main/resources/mapper/manager/RegionCountMapper.xml                           |    5 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskCount.java                    |   42 ++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskCountController.java      |   44 ++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RegionCountController.java    |   43 ++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/FaultCountMapper.java             |   12 
 36 files changed, 1,061 insertions(+), 8 deletions(-)

diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..af9641e
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,6 @@
+{
+  "name": "rcs-flow",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {}
+}
diff --git a/zy-acs-flow/src/i18n/en.js b/zy-acs-flow/src/i18n/en.js
index 13ebef0..27dabd2 100644
--- a/zy-acs-flow/src/i18n/en.js
+++ b/zy-acs-flow/src/i18n/en.js
@@ -152,6 +152,10 @@
         jam: 'Jam',
         action: 'Action',
         mission: 'Mission',
+        statistics: 'Statistics',
+        chargeCount: 'ChargeCount',
+        faultCount: 'FaultCount',
+        regionCount: 'RegionCount',
     },
     table: {
         field: {
@@ -542,6 +546,31 @@
                 runPath: 'Run Path',
                 actions: 'Actions',
             },
+            taskCount: {
+                type: 'type',
+                createTime: 'date',
+                region: 'region',
+                count: 'count',
+                agvNo: 'agvNo',
+            },
+            faultCount: {
+                type: 'type',
+                createTime: 'date',
+                region: 'region',
+                errorTime: 'errorTime',
+                agvNo: 'agvNo',
+            },
+            regionCount: {
+                type: 'type',
+                createTime: 'date',
+                agvNo: 'agvNo',
+                region: 'region',
+                errorTime: 'errorTime',
+                chargeTime: 'chargeTime',
+                waitTime: 'waitTime',
+                exeTime: 'exeTime',
+                taskNum: 'taskNum',
+            },
         }
     },
     page: {
diff --git a/zy-acs-flow/src/i18n/zh.js b/zy-acs-flow/src/i18n/zh.js
index 09310d7..8451828 100644
--- a/zy-acs-flow/src/i18n/zh.js
+++ b/zy-acs-flow/src/i18n/zh.js
@@ -152,6 +152,10 @@
         jam: '閬胯',
         action: '鍔ㄤ綔',
         mission: '鎵ц',
+        statistics: '缁熻涓績',
+        taskCount: '浠诲姟缁熻',
+        faultCount: '鍛婅缁熻',
+        regionCount: '鍖哄煙鏁堢巼缁熻',
     },
     table: {
         field: {
@@ -542,6 +546,31 @@
                 runPath: '璧拌璺緞',
                 actions: '鍔ㄤ綔鍒楄〃',
             },
+            taskCount: {
+                type: '绫诲瀷',
+                createTime: '鏃ユ湡',
+                count: '娆℃暟',
+                region: '鍖哄煙',
+                agvNo: '灏忚溅缂栧彿',
+            },
+            faultCount: {
+                type: '绫诲瀷',
+                createTime: '鏃ユ湡',
+                region: '鍖哄煙',
+                errorTime: '鏁呴殰鏃堕暱锛屽崟浣嶇',
+                agvNo: '灏忚溅缂栧彿',
+            },
+            regionCount: {
+                type: '绫诲瀷',
+                createTime: '鏃ユ湡',
+                agvNo: '灏忚溅缂栧彿',
+                region: '鍖哄煙',
+                errorTime: '鏁呴殰鏃堕暱锛屽崟浣嶇',
+                chargeTime: '鍏呯數鏃堕暱锛屽崟浣嶇',
+                waitTime: '鏁呴殰鏃堕暱锛屽崟浣嶇',
+                exeTime: '鎵ц鏃堕暱锛屽崟浣嶇',
+                taskNum: '浠诲姟鏁伴噺',
+            },
         }
     },
     page: {
diff --git a/zy-acs-flow/src/page/ResourceContent.js b/zy-acs-flow/src/page/ResourceContent.js
index 7576d04..3f641cd 100644
--- a/zy-acs-flow/src/page/ResourceContent.js
+++ b/zy-acs-flow/src/page/ResourceContent.js
@@ -41,6 +41,9 @@
 import jam from './jam';
 import action from './action';
 import mission from "./mission";
+import taskCount  from "./taskCount";
+import faultCount  from "./faultCount";
+import regionCount  from "./regionCount";
 
 const ResourceContent = (node) => {
     switch (node.component) {
@@ -118,6 +121,12 @@
             return action;
         case 'mission':
             return mission;
+        case 'faultCount':
+            return faultCount;
+        case 'taskCount':
+            return taskCount;
+        case 'regionCount':
+            return regionCount;
         default:
             return {
                 list: ListGuesser,
diff --git a/zy-acs-flow/src/page/agvDetail/AgvDetailList.jsx b/zy-acs-flow/src/page/agvDetail/AgvDetailList.jsx
index b18562f..77e78ac 100644
--- a/zy-acs-flow/src/page/agvDetail/AgvDetailList.jsx
+++ b/zy-acs-flow/src/page/agvDetail/AgvDetailList.jsx
@@ -141,7 +141,7 @@
                     rowClick={(id, resource, record) => false}
                     expand={() => <AgvDetailPanel />}
                     expandSingle={true}
-                    omit={['id', 'uuid', 'updateBy', 'createTime', 'createBy', 'memo']}
+                    o mit={['id', 'uuid', 'updateBy', 'createTime', 'createBy', 'memo']}
                 >
                     <NumberField source="id" />
                     <TextField source="uuid" label="table.field.agvDetail.uuid" />
diff --git a/zy-acs-flow/src/page/faultCount/FaultCountList.jsx b/zy-acs-flow/src/page/faultCount/FaultCountList.jsx
new file mode 100644
index 0000000..db2dbc1
--- /dev/null
+++ b/zy-acs-flow/src/page/faultCount/FaultCountList.jsx
@@ -0,0 +1,115 @@
+import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
+import { useNavigate } from 'react-router-dom';
+import {
+    List,
+    DatagridConfigurable,
+    SearchInput,
+    TopToolbar,
+    SelectColumnsButton,
+    EditButton,
+    FilterButton,
+    CreateButton,
+    ExportButton,
+    BulkDeleteButton,
+    WrapperField,
+    useRecordContext,
+    useTranslate,
+    useNotify,
+    useListContext,
+    FunctionField,
+    TextField,
+    NumberField,
+    DateField,
+    BooleanField,
+    ReferenceField,
+    TextInput,
+    DateTimeInput,
+    DateInput,
+    SelectInput,
+    NumberInput,
+    ReferenceInput,
+    ReferenceArrayInput,
+    AutocompleteInput,
+    DeleteButton,
+} from 'react-admin';
+import { Box, Typography, Card, Stack } from '@mui/material';
+import { styled } from '@mui/material/styles';
+import EmptyData from "../components/EmptyData";
+import MyCreateButton from "../components/MyCreateButton";
+import MyExportButton from '../components/MyExportButton';
+import PageDrawer from "../components/PageDrawer";
+import MyField from "../components/MyField";
+import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import * as Common from '@/utils/common';
+
+const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
+    '& .css-1vooibu-MuiSvgIcon-root': {
+        height: '.9em'
+    },
+    '& .RaDatagrid-row': {
+        cursor: 'auto'
+    },
+    '& .column-name': {
+    },
+    '& .opt': {
+        width: 200
+    },
+}));
+
+const filters = [
+    <DateInput label='common.time.after' source="timeStart" alwaysOn />,
+    <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
+
+
+]
+
+const FaultCountList = () => {
+    const translate = useTranslate();
+
+    const [createDialog, setCreateDialog] = useState(false);
+    const [drawerVal, setDrawerVal] = useState(false);
+
+    return (
+        <Box display="flex">
+            <List
+                sx={{
+                    flexGrow: 1,
+                    transition: (theme) =>
+                        theme.transitions.create(['all'], {
+                            duration: theme.transitions.duration.enteringScreen,
+                        }),
+                    marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
+                }}
+                title={"menu.faultCount"}
+                filters={filters}
+                sort={{ field: "", order: "" }}
+                actions={(
+                    <TopToolbar>
+                        <FilterButton />
+                        <MyExportButton />
+                    </TopToolbar>
+                )}
+                perPage={DEFAULT_PAGE_SIZE}
+            >
+                <StyledDatagrid
+                    preferenceKey='faultCount'
+                    bulkActionButtons={false}
+                    rowClick={false}
+                    expand={false}
+                    expandSingle={true}
+                    omit={['id']}
+                >
+                    <TextField source="id"  sortable={false}/>
+                    <TextField source="agvNo" label="table.field.faultCount.agvNo"  sortable={false}/>
+                    <TextField source="createTime" label="table.field.faultCount.createTime"  sortable={false}/>
+                    <TextField source="region" label="table.field.faultCount.region"  sortable={false}/>
+                    <NumberField source="errorTime" label="table.field.faultCount.errorTime" sortable={false}/>
+
+                </StyledDatagrid>
+            </List>
+
+        </Box>
+    )
+}
+
+export default FaultCountList;
diff --git a/zy-acs-flow/src/page/faultCount/index.jsx b/zy-acs-flow/src/page/faultCount/index.jsx
new file mode 100644
index 0000000..a9f4e5e
--- /dev/null
+++ b/zy-acs-flow/src/page/faultCount/index.jsx
@@ -0,0 +1,16 @@
+import React, { useState, useRef, useEffect, useMemo } from "react";
+import {
+    ListGuesser,
+    EditGuesser,
+    ShowGuesser,
+} from "react-admin";
+
+import FaultCountList from "./FaultCountList";
+
+export default {
+    list: FaultCountList,
+    show: ShowGuesser,
+    recordRepresentation: (record) => {
+        return `${record.agvNo}`
+    }
+};
diff --git a/zy-acs-flow/src/page/regionCount/RegionCountList.jsx b/zy-acs-flow/src/page/regionCount/RegionCountList.jsx
new file mode 100644
index 0000000..25d41f5
--- /dev/null
+++ b/zy-acs-flow/src/page/regionCount/RegionCountList.jsx
@@ -0,0 +1,118 @@
+import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
+import { useNavigate } from 'react-router-dom';
+import {
+    List,
+    DatagridConfigurable,
+    SearchInput,
+    TopToolbar,
+    SelectColumnsButton,
+    EditButton,
+    FilterButton,
+    CreateButton,
+    ExportButton,
+    BulkDeleteButton,
+    WrapperField,
+    useRecordContext,
+    useTranslate,
+    useNotify,
+    useListContext,
+    FunctionField,
+    TextField,
+    NumberField,
+    DateField,
+    BooleanField,
+    ReferenceField,
+    TextInput,
+    DateTimeInput,
+    DateInput,
+    SelectInput,
+    NumberInput,
+    ReferenceInput,
+    ReferenceArrayInput,
+    AutocompleteInput,
+    DeleteButton,
+} from 'react-admin';
+import { Box, Typography, Card, Stack } from '@mui/material';
+import { styled } from '@mui/material/styles';
+import EmptyData from "../components/EmptyData";
+import MyCreateButton from "../components/MyCreateButton";
+import MyExportButton from '../components/MyExportButton';
+import PageDrawer from "../components/PageDrawer";
+import MyField from "../components/MyField";
+import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import * as Common from '@/utils/common';
+
+const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
+    '& .css-1vooibu-MuiSvgIcon-root': {
+        height: '.9em'
+    },
+    '& .RaDatagrid-row': {
+        cursor: 'auto'
+    },
+    '& .column-name': {
+    },
+    '& .opt': {
+        width: 200
+    },
+}));
+
+const filters = [
+    <DateInput label='common.time.after' source="timeStart" alwaysOn />,
+    <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
+
+
+]
+
+const RegionCountList = () => {
+    const translate = useTranslate();
+
+    const [createDialog, setCreateDialog] = useState(false);
+    const [drawerVal, setDrawerVal] = useState(false);
+
+    return (
+        <Box display="flex">
+            <List
+                sx={{
+                    flexGrow: 1,
+                    transition: (theme) =>
+                        theme.transitions.create(['all'], {
+                            duration: theme.transitions.duration.enteringScreen,
+                        }),
+                    marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
+                }}
+                title={"menu.regionCount"}
+                filters={filters}
+                sort={{ field: "", order: "" }}
+                actions={(
+                    <TopToolbar>
+                        <FilterButton />
+                        <MyExportButton />
+                    </TopToolbar>
+                )}
+                perPage={DEFAULT_PAGE_SIZE}
+            >
+                <StyledDatagrid
+                    preferenceKey='regionCount'
+                    bulkActionButtons={false}
+                    rowClick={false}
+                    expand={false}
+                    expandSingle={true}
+                    omit={['id']}
+                >
+                    <TextField source="id"  sortable={false}/>
+                    <TextField source="region" label="table.field.regionCount.region"  sortable={false}/>
+                    <TextField source="createTime" label="table.field.regionCount.createTime"  sortable={false}/>
+                    <NumberField source="waitTime" label="table.field.regionCount.waitTime"  sortable={false}/>
+                    <NumberField source="exeTime" label="table.field.regionCount.exeTime"  sortable={false}/>
+                    <NumberField source="taskNum" label="table.field.regionCount.taskNum"  sortable={false}/>
+                    <NumberField source="errorTime" label="table.field.regionCount.errorTime"  sortable={false}/>
+                    <NumberField source="chargeTime" label="table.field.regionCount.chargeTime"  sortable={false}/>
+
+                </StyledDatagrid>
+            </List>
+
+        </Box>
+    )
+}
+
+export default RegionCountList;
diff --git a/zy-acs-flow/src/page/regionCount/index.jsx b/zy-acs-flow/src/page/regionCount/index.jsx
new file mode 100644
index 0000000..783140a
--- /dev/null
+++ b/zy-acs-flow/src/page/regionCount/index.jsx
@@ -0,0 +1,16 @@
+import React, { useState, useRef, useEffect, useMemo } from "react";
+import {
+    ListGuesser,
+    EditGuesser,
+    ShowGuesser,
+} from "react-admin";
+
+import RegionCountList from "./RegionCountList";
+
+export default {
+    list: RegionCountList,
+    show: ShowGuesser,
+    recordRepresentation: (record) => {
+        return `${record.id}`
+    }
+};
diff --git a/zy-acs-flow/src/page/taskCount/TaskCountList.jsx b/zy-acs-flow/src/page/taskCount/TaskCountList.jsx
new file mode 100644
index 0000000..f4ac12d
--- /dev/null
+++ b/zy-acs-flow/src/page/taskCount/TaskCountList.jsx
@@ -0,0 +1,113 @@
+import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
+import { useNavigate } from 'react-router-dom';
+import {
+    List,
+    DatagridConfigurable,
+    SearchInput,
+    TopToolbar,
+    SelectColumnsButton,
+    EditButton,
+    FilterButton,
+    CreateButton,
+    ExportButton,
+    BulkDeleteButton,
+    WrapperField,
+    useRecordContext,
+    useTranslate,
+    useNotify,
+    useListContext,
+    FunctionField,
+    TextField,
+    NumberField,
+    DateField,
+    BooleanField,
+    ReferenceField,
+    TextInput,
+    DateTimeInput,
+    DateInput,
+    SelectInput,
+    NumberInput,
+    ReferenceInput,
+    ReferenceArrayInput,
+    AutocompleteInput,
+    DeleteButton,
+} from 'react-admin';
+import { Box, Typography, Card, Stack } from '@mui/material';
+import { styled } from '@mui/material/styles';
+import EmptyData from "../components/EmptyData";
+import MyCreateButton from "../components/MyCreateButton";
+import MyExportButton from '../components/MyExportButton';
+import PageDrawer from "../components/PageDrawer";
+import MyField from "../components/MyField";
+import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import * as Common from '@/utils/common';
+
+const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
+    '& .css-1vooibu-MuiSvgIcon-root': {
+        height: '.9em'
+    },
+    '& .RaDatagrid-row': {
+        cursor: 'auto'
+    },
+    '& .column-name': {
+    },
+    '& .opt': {
+        width: 200
+    },
+}));
+
+const filters = [
+    <DateInput label='common.time.after' source="timeStart" alwaysOn />,
+    <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
+
+]
+
+const TaskCountList = () => {
+    const translate = useTranslate();
+
+    const [createDialog, setCreateDialog] = useState(false);
+    const [drawerVal, setDrawerVal] = useState(false);
+
+    return (
+        <Box display="flex">
+            <List
+                sx={{
+                    flexGrow: 1,
+                    transition: (theme) =>
+                        theme.transitions.create(['all'], {
+                            duration: theme.transitions.duration.enteringScreen,
+                        }),
+                    marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
+                }}
+                title={"menu.taskCount"}
+                filters={filters}
+                sort={{ field: "", order: "" }}
+                actions={(
+                    <TopToolbar>
+                        <MyExportButton />
+                    </TopToolbar>
+                )}
+                perPage={DEFAULT_PAGE_SIZE}
+            >
+                <StyledDatagrid
+                    preferenceKey='taskCount'
+                    bulkActionButtons={false}
+                    rowClick={false}
+                    expand={false}
+                    expandSingle={true}
+                    omit={['id']}
+                >
+                    <TextField source="id" sortable={false} />
+                    <TextField source="agvNo" label="table.field.taskCount.agvNo"  sortable={false}/>
+                    <TextField source="createTime" label="table.field.taskCount.createTime"  sortable={false}/>
+                    <TextField source="type" label="table.field.taskCount.type"  sortable={false}/>
+                    <NumberField source="count" label="table.field.taskCount.count"  sortable={false}/>
+
+                </StyledDatagrid>
+            </List>
+
+        </Box>
+    )
+}
+
+export default TaskCountList;
diff --git a/zy-acs-flow/src/page/taskCount/index.jsx b/zy-acs-flow/src/page/taskCount/index.jsx
new file mode 100644
index 0000000..ce9e184
--- /dev/null
+++ b/zy-acs-flow/src/page/taskCount/index.jsx
@@ -0,0 +1,16 @@
+import React, { useState, useRef, useEffect, useMemo } from "react";
+import {
+    ListGuesser,
+    EditGuesser,
+    ShowGuesser,
+} from "react-admin";
+
+import TaskCountList from "./TaskCountList";
+
+export default {
+    list: TaskCountList,
+    show: ShowGuesser,
+    recordRepresentation: (record) => {
+        return `${record.agvNo}`
+    }
+};
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java
index 8a0a868..2d6bf9c 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java
@@ -15,14 +15,14 @@
         generator.frontendPrefixPath = "zy-acs-flow/";
 
         generator.sqlOsType = SqlOsType.MYSQL;
-        generator.url="localhost:3306/react_admin_dev";
+        generator.url="localhost:3306/jbly";
         generator.username="root";
         generator.password="xltys1995";
 //        generator.url="47.97.1.152:51433;databasename=jkasrs";
 //        generator.username="sa";
 //        generator.password="Zoneyung@zy56$";
 
-        generator.table="man_map";
+        generator.table="view_region_count";
         generator.tableDesc="Map";
         generator.packagePath="com.zy.acs.manager.manager";
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/ExcelUtil.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/ExcelUtil.java
index f7f47b6..43ec024 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/ExcelUtil.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/ExcelUtil.java
@@ -6,6 +6,7 @@
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -92,4 +93,64 @@
 
 
 
+    public static <T> Workbook createXlsx(List<T> list, Class<T> clz) {
+        //HSSFWorkbook workbook = new HSSFWorkbook();
+        XSSFWorkbook workbook =new XSSFWorkbook();
+        Sheet sheet = workbook.createSheet(clz.getSimpleName());
+
+        Row header = sheet.createRow(0);
+        Field[] fields = Cools.getAllFields(clz);
+        int headerIdx = 0;
+        for (Field field : fields) {
+            if (Modifier.isFinal(field.getModifiers())
+                    || Modifier.isStatic(field.getModifiers())
+                    || Modifier.isTransient(field.getModifiers())) {
+                continue;
+            }
+            String memo = "Undefined";
+            if (field.isAnnotationPresent(ApiModelProperty.class)) {
+                memo = field.getAnnotation(ApiModelProperty.class).value();
+            }
+            header.createCell(headerIdx).setCellValue(memo);
+            headerIdx++;
+        }
+
+        int rowIndex = 1;
+        for (T t : list) {
+            Row row = sheet.createRow(rowIndex++);
+
+            int cellIndex = 0;
+            for (Field field : fields) {
+                if (Modifier.isFinal(field.getModifiers())
+                        || Modifier.isStatic(field.getModifiers())
+                        || Modifier.isTransient(field.getModifiers())) {
+                    continue;
+                }
+
+                field.setAccessible(true);  // 姝よ寰堥噸瑕侊紝鐗瑰埆鏄瓧娈典负private鏃�
+                Object value = null;
+                try {
+                    value = field.get(t);
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+                if (value != null) {
+                    if (value instanceof Date) {
+                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                        row.createCell(cellIndex).setCellValue(sdf.format((Date) value));
+                    } else {
+                        row.createCell(cellIndex).setCellValue(value.toString());
+                    }
+                }
+                cellIndex++;
+            }
+        }
+
+        for (int i = 0; i <= fields.length; i++) {
+            sheet.autoSizeColumn(i);
+        }
+
+        return workbook;
+    }
+
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/StatisticsScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/StatisticsScheduler.java
index 0fadee3..1b7f579 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/StatisticsScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/StatisticsScheduler.java
@@ -71,6 +71,9 @@
         List<AgvDuration> agvDurations = agvDurationService.listUnFinish();
         for (AgvDuration agvDuration : agvDurations) {
             Task task = taskService.getById(agvDuration.getTaskNo());
+            if (task == null) {
+                continue;
+            }
             if (task.getTaskSts() == TaskStsType.COMPLETE.val()) {
                 AgvDetail agvDetail = agvDetailService.selectByAgvId(agvDuration.getAgvId());
                 if (agvDetail.getAgvStatus() != AgvStatusType.CHARGE) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/FaultCountController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/FaultCountController.java
new file mode 100644
index 0000000..f9e5e82
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/FaultCountController.java
@@ -0,0 +1,45 @@
+package com.zy.acs.manager.manager.controller;
+
+import com.zy.acs.framework.common.R;
+import com.zy.acs.manager.common.domain.BaseParam;
+import com.zy.acs.manager.common.domain.PageParam;
+import com.zy.acs.manager.common.utils.ExcelUtil;
+import com.zy.acs.manager.manager.entity.FaultCount;
+import com.zy.acs.manager.manager.service.FaultCountService;
+import com.zy.acs.manager.system.controller.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api")
+public class FaultCountController extends BaseController {
+
+    @Autowired
+    private FaultCountService faultCountService;
+
+    @PreAuthorize("hasAuthority('manager:faultCount:list')")
+    @PostMapping("/faultCount/page")
+    public R page(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<FaultCount, BaseParam> pageParam = new PageParam<>(baseParam, FaultCount.class);
+        return R.ok().add(faultCountService.page(pageParam, pageParam.buildWrapper(true)));
+    }
+
+
+    @PreAuthorize("hasAuthority('manager:faultCount:list')")
+    @PostMapping("/faultCount/export")
+    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<FaultCount, BaseParam> pageParam = new PageParam<>(baseParam, FaultCount.class);
+        ExcelUtil.build(ExcelUtil.createXlsx(faultCountService.page(pageParam, pageParam.buildWrapper(true)).getRecords(), FaultCount.class), response);
+
+    }
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RegionCountController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RegionCountController.java
new file mode 100644
index 0000000..91c1058
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RegionCountController.java
@@ -0,0 +1,43 @@
+package com.zy.acs.manager.manager.controller;
+
+import com.zy.acs.framework.common.R;
+import com.zy.acs.manager.common.domain.BaseParam;
+import com.zy.acs.manager.common.domain.PageParam;
+import com.zy.acs.manager.common.utils.ExcelUtil;
+import com.zy.acs.manager.manager.entity.RegionCount;
+import com.zy.acs.manager.manager.entity.TaskCount;
+import com.zy.acs.manager.manager.service.RegionCountService;
+import com.zy.acs.manager.system.controller.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api")
+public class RegionCountController extends BaseController {
+
+    @Autowired
+    private RegionCountService regionCountService;
+
+    @PreAuthorize("hasAuthority('manager:regionCount:list')")
+    @PostMapping("/regionCount/page")
+    public R page(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<RegionCount, BaseParam> pageParam = new PageParam<>(baseParam, RegionCount.class);
+        return R.ok().add(regionCountService.page(pageParam, pageParam.buildWrapper(true)));
+    }
+
+
+    @PreAuthorize("hasAuthority('manager:regionCount:list')")
+    @PostMapping("/regionCount/export")
+    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<RegionCount, BaseParam> pageParam = new PageParam<>(baseParam, RegionCount.class);
+        ExcelUtil.build(ExcelUtil.createXlsx(regionCountService.page(pageParam, pageParam.buildWrapper(true)).getRecords(), RegionCount.class), response);
+    }
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskCountController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskCountController.java
new file mode 100644
index 0000000..c75da59
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskCountController.java
@@ -0,0 +1,44 @@
+package com.zy.acs.manager.manager.controller;
+
+import com.zy.acs.framework.common.R;
+import com.zy.acs.manager.common.domain.BaseParam;
+import com.zy.acs.manager.common.domain.PageParam;
+import com.zy.acs.manager.common.utils.ExcelUtil;
+import com.zy.acs.manager.manager.entity.TaskCount;
+import com.zy.acs.manager.manager.service.TaskCountService;
+import com.zy.acs.manager.system.controller.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api")
+public class TaskCountController extends BaseController {
+
+    @Autowired
+    private TaskCountService taskCountService;
+
+    @PreAuthorize("hasAuthority('manager:taskCount:list')")
+    @PostMapping("/taskCount/page")
+    public R page(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<TaskCount, BaseParam> pageParam = new PageParam<>(baseParam, TaskCount.class);
+        return R.ok().add(taskCountService.page(pageParam, pageParam.buildWrapper(true)));
+    }
+
+
+    @PreAuthorize("hasAuthority('manager:taskCount:list')")
+    @PostMapping("/taskCount/export")
+    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<TaskCount, BaseParam> pageParam = new PageParam<>(baseParam, TaskCount.class);
+        ExcelUtil.build(ExcelUtil.createXlsx(taskCountService.page(pageParam, pageParam.buildWrapper(true)).getRecords(), TaskCount.class), response);
+    }
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/FaultCount.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/FaultCount.java
new file mode 100644
index 0000000..8261762
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/FaultCount.java
@@ -0,0 +1,44 @@
+package com.zy.acs.manager.manager.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("view_fault_count")
+public class FaultCount implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value= "缂栧彿")
+    private String id;
+
+    /**
+     * 缂栧彿
+     */
+    @ApiModelProperty(value= "缂栧彿")
+    private String agvNo;
+
+    @ApiModelProperty(value= "鏃ユ湡")
+    private String createTime;
+
+    @ApiModelProperty(value= "鍖哄煙")
+    private String region;
+
+    @ApiModelProperty(value= "鏁呴殰鏃堕暱")
+    private Double errorTime;
+
+    public FaultCount() {}
+
+
+
+
+
+
+
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/RegionCount.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/RegionCount.java
new file mode 100644
index 0000000..f22bb3c
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/RegionCount.java
@@ -0,0 +1,44 @@
+package com.zy.acs.manager.manager.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("view_region_count")
+public class RegionCount implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "")
+    private String id;
+
+    @ApiModelProperty(value = "鍖哄煙")
+    private String region;
+
+    @ApiModelProperty(value = "鏃ユ湡")
+    private String createTime;
+
+    @ApiModelProperty(value = "绛夊緟鏃堕暱")
+    private Double waitTime;
+
+    @ApiModelProperty(value = "鎵ц鏃堕暱")
+    private Double exeTime;
+
+    @ApiModelProperty(value = "浠诲姟鏁伴噺")
+    private Long taskNum;
+
+    @ApiModelProperty(value = "鏁呴殰鏃堕暱")
+    private Double errorTime;
+
+    @ApiModelProperty(value = "鍏呯數鏃堕暱")
+    private Long chargeTime;
+
+    public RegionCount() {
+    }
+
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskCount.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskCount.java
new file mode 100644
index 0000000..95ca3b6
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskCount.java
@@ -0,0 +1,42 @@
+package com.zy.acs.manager.manager.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("view_task_count")
+public class TaskCount implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value= "缂栧彿")
+    private String id;
+
+    /**
+     * 缂栧彿
+     */
+    @ApiModelProperty(value= "缂栧彿")
+    private String agvNo;
+
+    @ApiModelProperty(value= "鏃ユ湡")
+    private String createTime;
+
+    @ApiModelProperty(value= "绫诲瀷")
+    private String type;
+
+    @ApiModelProperty(value= "鏁伴噺")
+    private Long count;
+
+    public TaskCount() {}
+
+
+
+
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewFaultCount.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewFaultCount.java
new file mode 100644
index 0000000..151664a
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewFaultCount.java
@@ -0,0 +1,40 @@
+package com.zy.acs.manager.manager.entity.view;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("view_fault_count")
+public class ViewFaultCount implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 缂栧彿
+     */
+    @ApiModelProperty(value = "缂栧彿")
+    private String id;
+    /**
+     * 灏忚溅缂栧彿
+     */
+    @ApiModelProperty(value = "灏忚溅缂栧彿")
+    private String agvNo;
+
+    /**
+     * 鏃ユ湡
+     */
+    @ApiModelProperty(value = "鏃ユ湡")
+    private String date;
+
+
+    /**
+     * 绛夊緟鏃堕暱
+     */
+    @ApiModelProperty(value = "绛夊緟鏃堕暱")
+    private Integer waitTime;
+
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewRegion.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewRegion.java
new file mode 100644
index 0000000..22e014b
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewRegion.java
@@ -0,0 +1,64 @@
+package com.zy.acs.manager.manager.entity.view;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("view_task_wait_time")
+public class ViewRegion implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 缂栧彿
+     */
+    @ApiModelProperty(value = "缂栧彿")
+    private String id;
+
+    /**
+     * 浠诲姟id
+     */
+    @ApiModelProperty(value = "浠诲姟id")
+    private String region;
+
+    /**
+     * 鏃ユ湡
+     */
+    @ApiModelProperty(value = "鏃ユ湡")
+    private String date;
+    /**
+     * 浠诲姟鏁�
+     */
+    @ApiModelProperty(value = "浠诲姟鏁伴噺")
+    private Integer taskNum;
+    /**
+     * 绛夊緟浠诲姟鏃堕棿
+     */
+    @ApiModelProperty(value = "绛夊緟浠诲姟鏃堕棿锛屽崟浣嶇")
+    private Integer waitTime;
+    /**
+     * 鎵ц浠诲姟鏃堕棿
+     */
+    @ApiModelProperty(value = "鎵ц浠诲姟鏃堕棿锛屽崟浣嶇")
+    private Integer exeTime;
+
+    /**
+     * 鎵ц鏃堕棿
+     */
+    @ApiModelProperty(value = "鎵ц鏃堕棿锛屽崟浣嶇")
+    private Integer duration;
+    /**
+     * 寮傚父鏃堕棿
+     */
+    @ApiModelProperty(value = "寮傚父鏃堕棿锛屽崟浣嶇")
+    private Integer errorTime;
+    /**
+     * 鍏呯數鏃堕棿
+     */
+    @ApiModelProperty(value = "鍏呯數鏃堕棿锛屽崟浣嶇")
+    private Integer chargeTime;
+
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewTaskCount.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewTaskCount.java
new file mode 100644
index 0000000..cb6d050
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/view/ViewTaskCount.java
@@ -0,0 +1,45 @@
+package com.zy.acs.manager.manager.entity.view;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("view_task_count")
+public class ViewTaskCount implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 缂栧彿
+     */
+    @ApiModelProperty(value = "缂栧彿")
+    private String id;
+    /**
+     * 灏忚溅缂栧彿
+     */
+    @ApiModelProperty(value = "灏忚溅缂栧彿")
+    private String agvNo;
+
+    /**
+     * 鏃ユ湡
+     */
+    @ApiModelProperty(value = "鏃ユ湡")
+    private String date;
+
+    /**
+     * 绫诲瀷
+     */
+    @ApiModelProperty(value = "绫诲瀷")
+    private String type;
+
+    /**
+     * 娆℃暟
+     */
+    @ApiModelProperty(value = "鏁伴噺")
+    private Integer count;
+
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/FaultCountMapper.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/FaultCountMapper.java
new file mode 100644
index 0000000..307e66c
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/FaultCountMapper.java
@@ -0,0 +1,12 @@
+package com.zy.acs.manager.manager.mapper;
+
+import com.zy.acs.manager.manager.entity.FaultCount;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface FaultCountMapper extends BaseMapper<FaultCount> {
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/RegionCountMapper.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/RegionCountMapper.java
new file mode 100644
index 0000000..c914278
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/RegionCountMapper.java
@@ -0,0 +1,12 @@
+package com.zy.acs.manager.manager.mapper;
+
+import com.zy.acs.manager.manager.entity.RegionCount;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface RegionCountMapper extends BaseMapper<RegionCount> {
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/TaskCountMapper.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/TaskCountMapper.java
new file mode 100644
index 0000000..9e27375
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/TaskCountMapper.java
@@ -0,0 +1,12 @@
+package com.zy.acs.manager.manager.mapper;
+
+import com.zy.acs.manager.manager.entity.TaskCount;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface TaskCountMapper extends BaseMapper<TaskCount> {
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/FaultCountService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/FaultCountService.java
new file mode 100644
index 0000000..f2d1a12
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/FaultCountService.java
@@ -0,0 +1,8 @@
+package com.zy.acs.manager.manager.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zy.acs.manager.manager.entity.FaultCount;
+
+public interface FaultCountService extends IService<FaultCount> {
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/RegionCountService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/RegionCountService.java
new file mode 100644
index 0000000..a337539
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/RegionCountService.java
@@ -0,0 +1,8 @@
+package com.zy.acs.manager.manager.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zy.acs.manager.manager.entity.RegionCount;
+
+public interface RegionCountService extends IService<RegionCount> {
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskCountService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskCountService.java
new file mode 100644
index 0000000..d2f2a01
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskCountService.java
@@ -0,0 +1,8 @@
+package com.zy.acs.manager.manager.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zy.acs.manager.manager.entity.TaskCount;
+
+public interface TaskCountService extends IService<TaskCount> {
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FaultCountServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FaultCountServiceImpl.java
new file mode 100644
index 0000000..2ad1768
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FaultCountServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.acs.manager.manager.service.impl;
+
+import com.zy.acs.manager.manager.mapper.FaultCountMapper;
+import com.zy.acs.manager.manager.entity.FaultCount;
+import com.zy.acs.manager.manager.service.FaultCountService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("faultCountService")
+public class FaultCountServiceImpl extends ServiceImpl<FaultCountMapper, FaultCount> implements FaultCountService {
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/RegionCountServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/RegionCountServiceImpl.java
new file mode 100644
index 0000000..086cbb0
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/RegionCountServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.acs.manager.manager.service.impl;
+
+import com.zy.acs.manager.manager.mapper.RegionCountMapper;
+import com.zy.acs.manager.manager.entity.RegionCount;
+import com.zy.acs.manager.manager.service.RegionCountService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("regionCountService")
+public class RegionCountServiceImpl extends ServiceImpl<RegionCountMapper, RegionCount> implements RegionCountService {
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskCountServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskCountServiceImpl.java
new file mode 100644
index 0000000..bbaa92e
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskCountServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.acs.manager.manager.service.impl;
+
+import com.zy.acs.manager.manager.mapper.TaskCountMapper;
+import com.zy.acs.manager.manager.entity.TaskCount;
+import com.zy.acs.manager.manager.service.TaskCountService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("taskCountService")
+public class TaskCountServiceImpl extends ServiceImpl<TaskCountMapper, TaskCount> implements TaskCountService {
+
+}
diff --git a/zy-acs-manager/src/main/resources/application.yml b/zy-acs-manager/src/main/resources/application.yml
index cbd4597..400bef4 100644
--- a/zy-acs-manager/src/main/resources/application.yml
+++ b/zy-acs-manager/src/main/resources/application.yml
@@ -7,7 +7,7 @@
     static-path-pattern: /**
   datasource:
     driver-class-name: com.mysql.jdbc.Driver
-    url: jdbc:mysql://10.10.10.200:3306/jbly?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://127.0.0.1:3306/jbly?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
     password: xltys1995
     type: com.alibaba.druid.pool.DruidDataSource
@@ -42,7 +42,7 @@
     enabled: false
 
 redis:
-  host: 10.10.10.200
+  host: 127.0.0.1
   password: xltys1995
   port: 6379
   max: 30
@@ -61,10 +61,10 @@
 
 mybatis-plus:
   mapper-locations: classpath:mapper/*/*.xml
-#  global-config:
-#    field-strategy: 0
+  #  global-config:
+  #    field-strategy: 0
   configuration:
-#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+    #    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     map-underscore-to-camel-case: true
     cache-enabled: true
   global-config:
diff --git a/zy-acs-manager/src/main/resources/mapper/manager/FaultCountMapper.xml b/zy-acs-manager/src/main/resources/mapper/manager/FaultCountMapper.xml
new file mode 100644
index 0000000..37c0455
--- /dev/null
+++ b/zy-acs-manager/src/main/resources/mapper/manager/FaultCountMapper.xml
@@ -0,0 +1,5 @@
+<?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.zy.acs.manager.manager.mapper.FaultCountMapper">
+
+</mapper>
diff --git a/zy-acs-manager/src/main/resources/mapper/manager/RegionCountMapper.xml b/zy-acs-manager/src/main/resources/mapper/manager/RegionCountMapper.xml
new file mode 100644
index 0000000..1ec05f8
--- /dev/null
+++ b/zy-acs-manager/src/main/resources/mapper/manager/RegionCountMapper.xml
@@ -0,0 +1,5 @@
+<?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.zy.acs.manager.manager.mapper.RegionCountMapper">
+
+</mapper>
diff --git a/zy-acs-manager/src/main/resources/mapper/manager/TaskCountMapper.xml b/zy-acs-manager/src/main/resources/mapper/manager/TaskCountMapper.xml
new file mode 100644
index 0000000..2e3d1a6
--- /dev/null
+++ b/zy-acs-manager/src/main/resources/mapper/manager/TaskCountMapper.xml
@@ -0,0 +1,5 @@
+<?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.zy.acs.manager.manager.mapper.TaskCountMapper">
+
+</mapper>

--
Gitblit v1.9.1