This commit is contained in:
2025-12-27 11:44:50 +08:00
commit ccd43fac1f
1193 changed files with 384161 additions and 0 deletions
@@ -0,0 +1,10 @@
早会:
智慧小区项目开发内容接近收尾,但是需要保持状态到最后。所以这一周开始,通过一个早会让团和个人都明确目标和工作内容。
公布一个解决方案:
物业收费项计费这里,采用脚本的方式,做动态的处理,减少不同小区的费用计算版本区别。
居委调研:
可能会遇到问题,因为现在我们手上的资源更多的倾向于物业和小区管理,虽然有参考一些三方系统关于网格管理的内容,不过内容不够具体。也许会拼凑一些需求来促进需求的自我演进。
居委系统功能分析文档:
@@ -0,0 +1,2 @@
## Ali Canal
主要完成了Canal的基本配置,可以分别配置不同的表关联到指定的topic中。
@@ -0,0 +1,9 @@
```
docker run -p 192.168.3.211:9093:8080 \
--link kafka:kafka \
--link zookeeper:zookeeper \
-e KAFKA_CLUSTERS_0_ZOOKEEPER=zookeeper:2183 \
-e KAFKA_CLUSTERS_0_NAME=dev \
-e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092 \
-d provectuslabs/kafka-ui:latest
```
@@ -0,0 +1,50 @@
# 智慧社区阶段工作计划
| * 计划说明 | |
|:------------ |:------------------------------------------------ |
| 标题 | 智慧社区阶段工作计划 |
| 年 | 2021 |
| 周 | 49 |
| 日期 | 2021-12-08 |
| 迭代编号格式 | * YYYY-SWEW+W |
| * | 表示任务正在进行中 |
| YYYY | 年 |
| SW | 启动周编号,如果某个任务启动时间不确定,则为00。 |
| EW | 截止周编号,如果某个任务截止周不确定,则为00。 |
| +W | 可预期延期周数 |
# 智慧社区工作内容
| 系统 | 任务 | 子任务 | 任务描述 | 负责人/参与人 | 迭代目标编号 | 完成度 | 计划开始时间 | 计划完成时间 |
| ---------------- |:----------- |:---------------------------- | -------------------------------------------- |:-------------------- | ------------:| ------:|:--------------:|:--------------:|
| **智慧社区系统** | 任务模块 | APP端任务模块 | 任务执行人通过APP完成任务查看与打卡 | 陈孟泽、徐钊、孔文斌 | * 2021-0049 | 80% | N/A | 2021年12月11日 |
| ^^ | APP版本检查 | APP端与接口 | 安卓APP启动时检查更新,下载更新包 | 陈孟泽、徐钊 | ^^ | 80% | 2021年12月6日 | ^^ |
| ^^ | 工单模块 | 小程序端 | 面向业主提交工单需求 | 陈孟泽、徐钊、孔文斌 | 2021-0050 | 80% | N/A | 2021年12月17日 |
| ^^ | ^^ | 管理端 | 物业服务人员查看工单,接收并指派工作人员 | ^^ | ^^ | 80% | ^^ | ^^ |
| ^^ | ^^ | APP端 | 工单处理人查看工单并记录处理情况 | ^^ | 2021-4950 | 0% | 2021年12月6日 | ^^ |
| ^^ | 费用模块 | 小区计费逻辑设计 | 收费逻辑分析,设计文档 | 黄国超 | 2021-4950 | 10% | 2021年12月6日 | 2021年12月18日 |
| ^^ | ^^ | 脚本运行引擎实现 | 脚本处理引擎模块实现 | ^^ | ^^ | 70% | ^^ | ^^ |
| ^^ | ^^ | 管理端,计费管理 | 收费管理,定义收费项,计算公式脚本 | 陈孟泽、徐钊、孔文斌 | 2021-5152+1 | 0% | 2021年12月20日 | 2021年12月31日 |
| ^^ | ^^ | 管理端,订单管理与统计 | 订单管理与统计 | ^^ | ^^ | 0% | ^^ | ^^ |
| ^^ | ^^ | APP端 | 水、电、气抄表 | ^^ | ^^ | 0% | ^^ | ^^ |
| ^^ | ^^ | 微信小程序 | 查看月度费用、支付 | ^^ | ^^ | 0% | ^^ | ^^ |
| **数据中心** | 方案研究 | 数据仓库整体建设方案 | 实时采集,批量采集,多数据中心,容量扩展方案 | 高宇 | * 2021-4950 | 80% | 2021年12月6日 | 2021年12月10日 |
| ^^ | 建模设计 | ODS仓库层建模初稿 | | ^^ | ^^ | 100% | ^^ | 2021年12月18日 |
| ^^ | ^^ | DW仓库层建模初稿 | | ^^ | ^^ | 30% | ^^
| ^^ | 部署方案 | Kettle工具离线数据采集 | | 高宇、黄国超 | 2021-5152 | 5% | 2021年12月20日 | 2021年12月31日 |
| ^^ | ^^ | Kettle工具实时数据采集 | | ^^ | 2021-5152 | 5% | 202
| ^^ | ^^ | kafka集群布署方案 | | ^^ | ^^ | 0% | ^^ | ^^ |
| ^^ | ^^ | mongodb多中心部署方案 | | ^^ | ^^ | 0% | ^^ | ^^ |
| ^^ | ^^ | mongodbshake实时数据采集方案 | | ^^ | ^^ | 0% | ^^ | ^^ |
| ^^ | ^^ | mysql主备方案 | | ^^ | ^^ | 0% | ^^ | ^^ |
| ^^ | ^^ | mysql canal实时数据采集方案 | | ^^ | ^^ | 0% | ^^ | ^^ |
| **网格管理系统** | 需求确定 | 整理业务逻辑 | 基础管理逻辑 | 陈思宇 | * 2021-4949 | 1% | 2021年12月6日 | 2021年12月11日 |
| ^^ | ^^ | ^^ | 业务对接-业务委员会流程 | ^^ | ^^ | ^^ | ^^ | ^^ |
| ^^ | ^^ | ^^ | 居委信息管理 | ^^ | ^^ | ^^ | ^^ | ^^ |
| ^^ | ^^ | ^^ | 信息公示 | ^^ | ^^ | ^^ | ^^ | ^^ |
| ^^ | ^^ | ^^ | 投票管理 | ^^ | ^^ | ^^ | ^^ | ^^ |
| ^^ | ^^ | ^^ | 下发通知 | ^^ | ^^ | ^^ | ^^ | ^^ |
| ^^ | ^^ | 产品原型 | 初稿-讨论 | ^^ | 2021-5051 | ^^ | 2021年12月14日 | 2021年12月25日 |
| ^^ | ^^ | 产品原型终稿 | 修改-定稿 | ^^ | 2021-5252 | ^^ | 2021年12月27日 | 2021年12月31日 |
@@ -0,0 +1,53 @@
---
excalidraw-plugin: parsed
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
# Excalidraw Data
## Text Elements
scop发布仓库
ccy-devops ^PU7AkXXV
创医元虚拟社区(预生产)
GDCYY-META ^EI2V5oHF
英德聚龙湖花园
GDYD-JLH ^jsaggv9j
%%
## Drawing
```compressed-json
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
```
%%
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 83 KiB

@@ -0,0 +1,901 @@
---
excalidraw-plugin: parsed
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
# Text Elements
HHG_K8S ^i40hStcJ
Master01 ^PNyJ5a0g
Master02 ^PFjXnn0t
Master03 ^FbcEXrtF
Worker01 ^KwYDTFWb
Worker02 ^IbjfUOBH
扩容 ^LiynO2aV
Mysql主 ^V1agINHV
Redis主 ^QDGUfxnV
Mysql备 ^BKpuvJEY
Redis备 ^TxDUtJyF
%%
# Drawing
```json
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [
{
"type": "rectangle",
"version": 285,
"versionNonce": 696838701,
"isDeleted": false,
"id": "0WvnrZg4QPpquGQ-NBxeZ",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -148.9236111111111,
"y": -290.23046875,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 480.2864583333332,
"height": 41.779513888888886,
"seed": 586090733,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "i40hStcJ"
}
],
"updated": 1641803883011
},
{
"type": "text",
"version": 235,
"versionNonce": 1326539528,
"isDeleted": false,
"id": "i40hStcJ",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -143.9236111111111,
"y": -281.84071180555554,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 470.2864583333332,
"height": 25,
"seed": 841012771,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1642988575654,
"fontSize": 20,
"fontFamily": 1,
"text": "HHG_K8S",
"rawText": "HHG_K8S",
"baseline": 18,
"textAlign": "left",
"verticalAlign": "middle",
"containerId": "0WvnrZg4QPpquGQ-NBxeZ",
"originalText": "HHG_K8S"
},
{
"type": "rectangle",
"version": 223,
"versionNonce": 1600601315,
"isDeleted": false,
"id": "3XGwZyKeCyLSDIoArGUuS",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -149.09722222222223,
"y": -233.8224826388889,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 480.06857638888886,
"height": 144.97092013888889,
"seed": 1543940003,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1641803841056
},
{
"type": "ellipse",
"version": 37,
"versionNonce": 983698701,
"isDeleted": false,
"id": "3F7fVsciZc_JPAnWx1m3p",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -122.5234375,
"y": -217.6484375,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 124,
"height": 48.7890625,
"seed": 485415011,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "PNyJ5a0g"
}
],
"updated": 1641802331342
},
{
"type": "text",
"version": 29,
"versionNonce": 1869623672,
"isDeleted": false,
"id": "PNyJ5a0g",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -117.5234375,
"y": -203.25390625,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 114,
"height": 20,
"seed": 1866902029,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1642988575672,
"fontSize": 16,
"fontFamily": 1,
"text": "Master01",
"rawText": "Master01",
"baseline": 14,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "3F7fVsciZc_JPAnWx1m3p",
"originalText": "Master01"
},
{
"type": "ellipse",
"version": 110,
"versionNonce": 1459573187,
"isDeleted": false,
"id": "G6UMusSY6KWPcZlDNIGMN",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 12.203125,
"y": -219.6171875,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 124,
"height": 48.7890625,
"seed": 1038216653,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "PFjXnn0t",
"type": "text"
},
{
"type": "text",
"id": "PFjXnn0t"
}
],
"updated": 1641802335221
},
{
"type": "text",
"version": 103,
"versionNonce": 603963912,
"isDeleted": false,
"id": "PFjXnn0t",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 17.203125,
"y": -205.22265625,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 114,
"height": 20,
"seed": 2077647235,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1642988575692,
"fontSize": 16,
"fontFamily": 1,
"text": "Master02",
"rawText": "Master02",
"baseline": 14,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "G6UMusSY6KWPcZlDNIGMN",
"originalText": "Master02"
},
{
"type": "ellipse",
"version": 173,
"versionNonce": 1175863267,
"isDeleted": false,
"id": "10E8djt468oQwZICRZF6t",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 148.63671875,
"y": -218.5703125,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 124,
"height": 48.7890625,
"seed": 555931715,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "FbcEXrtF",
"type": "text"
},
{
"id": "FbcEXrtF",
"type": "text"
},
{
"type": "text",
"id": "FbcEXrtF"
}
],
"updated": 1641802340333
},
{
"type": "text",
"version": 167,
"versionNonce": 1851474552,
"isDeleted": false,
"id": "FbcEXrtF",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 153.63671875,
"y": -204.17578125,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 114,
"height": 20,
"seed": 424149357,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1642988575709,
"fontSize": 16,
"fontFamily": 1,
"text": "Master03",
"rawText": "Master03",
"baseline": 14,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "10E8djt468oQwZICRZF6t",
"originalText": "Master03"
},
{
"type": "ellipse",
"version": 104,
"versionNonce": 1811972579,
"isDeleted": false,
"id": "EAkvZ1OoKcCA2KfCap3dj",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -121.15321180555556,
"y": -151.37282986111111,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 124,
"height": 48.7890625,
"seed": 2116392269,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "KwYDTFWb",
"type": "text"
},
{
"type": "text",
"id": "KwYDTFWb"
}
],
"updated": 1641803829302
},
{
"type": "text",
"version": 103,
"versionNonce": 701120776,
"isDeleted": false,
"id": "KwYDTFWb",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -116.15321180555556,
"y": -136.97829861111111,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 114,
"height": 20,
"seed": 279114243,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1642988575731,
"fontSize": 16,
"fontFamily": 1,
"text": "Worker01",
"rawText": "Worker01",
"baseline": 14,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "EAkvZ1OoKcCA2KfCap3dj",
"originalText": "Worker01"
},
{
"type": "ellipse",
"version": 192,
"versionNonce": 1606169464,
"isDeleted": false,
"id": "jeuC57u0mc8T9Pzyn9WLG",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 15.78428819444445,
"y": -150.11892361111111,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 124,
"height": 48.7890625,
"seed": 1213482915,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "IbjfUOBH",
"type": "text"
},
{
"id": "IbjfUOBH",
"type": "text"
},
{
"type": "text",
"id": "IbjfUOBH"
}
],
"updated": 1642988575752
},
{
"type": "text",
"version": 193,
"versionNonce": 804053000,
"isDeleted": false,
"id": "IbjfUOBH",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 20.78428819444445,
"y": -135.72439236111111,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 114,
"height": 20,
"seed": 1269807117,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1642988575755,
"fontSize": 16,
"fontFamily": 1,
"text": "Worker02",
"rawText": "Worker02",
"baseline": 14,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "jeuC57u0mc8T9Pzyn9WLG",
"originalText": "Worker02"
},
{
"type": "ellipse",
"version": 252,
"versionNonce": 1203610915,
"isDeleted": false,
"id": "koappD7aLkxZaYEtSfUDB",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 156.6202256944444,
"y": -150.81032986111111,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 124,
"height": 48.7890625,
"seed": 2071845891,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "LiynO2aV",
"type": "text"
},
{
"id": "LiynO2aV",
"type": "text"
},
{
"id": "LiynO2aV",
"type": "text"
},
{
"type": "text",
"id": "LiynO2aV"
}
],
"updated": 1641803829302
},
{
"type": "text",
"version": 271,
"versionNonce": 970392696,
"isDeleted": false,
"id": "LiynO2aV",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 161.6202256944444,
"y": -136.41579861111111,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 114,
"height": 20,
"seed": 1759517101,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1642988575789,
"fontSize": 16,
"fontFamily": 1,
"text": "扩容",
"rawText": "扩容",
"baseline": 14,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "koappD7aLkxZaYEtSfUDB",
"originalText": "扩容"
},
{
"type": "rectangle",
"version": 561,
"versionNonce": 2105415811,
"isDeleted": false,
"id": "WLyZym6nIBxaaqs4wq8ve",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -147.93988715277777,
"y": -71.9403211805556,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 232.5703125,
"height": 180.60546875,
"seed": 198804259,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1641803865915
},
{
"type": "ellipse",
"version": 315,
"versionNonce": 862971181,
"isDeleted": false,
"id": "mu9kzisuytLql6gQ1Mm_c",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -88.57465277777777,
"y": -54.1219618055556,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 124,
"height": 48.7890625,
"seed": 1595591949,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "V1agINHV",
"type": "text"
},
{
"id": "V1agINHV",
"type": "text"
},
{
"type": "text",
"id": "V1agINHV"
}
],
"updated": 1641803865916
},
{
"type": "text",
"version": 328,
"versionNonce": 912498440,
"isDeleted": false,
"id": "V1agINHV",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -83.57465277777777,
"y": -39.7274305555556,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 114,
"height": 20,
"seed": 1317934659,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1642988575814,
"fontSize": 16,
"fontFamily": 1,
"text": "Mysql主",
"rawText": "Mysql主",
"baseline": 14,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "mu9kzisuytLql6gQ1Mm_c",
"originalText": "Mysql主"
},
{
"type": "ellipse",
"version": 372,
"versionNonce": 1341437837,
"isDeleted": false,
"id": "RUd11toVs7dq9OfGqROPj",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -88.53559027777777,
"y": 19.4444444444444,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 124,
"height": 48.7890625,
"seed": 2132258819,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "QDGUfxnV",
"type": "text"
},
{
"id": "QDGUfxnV",
"type": "text"
},
{
"id": "QDGUfxnV",
"type": "text"
},
{
"type": "text",
"id": "QDGUfxnV"
}
],
"updated": 1641803865916
},
{
"type": "text",
"version": 399,
"versionNonce": 175093112,
"isDeleted": false,
"id": "QDGUfxnV",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -83.53559027777777,
"y": 33.8389756944444,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 114,
"height": 20,
"seed": 1669170605,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1642988575837,
"fontSize": 16,
"fontFamily": 1,
"text": "Redis主",
"rawText": "Redis主",
"baseline": 14,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "RUd11toVs7dq9OfGqROPj",
"originalText": "Redis主"
},
{
"type": "rectangle",
"version": 592,
"versionNonce": 601296771,
"isDeleted": false,
"id": "yWndpmWeACnEV8EJI2iKx",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 96.66579861111109,
"y": -71.09743923611114,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 232.5703125,
"height": 180.60546875,
"seed": 846125133,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1641803875887
},
{
"type": "ellipse",
"version": 329,
"versionNonce": 1954930221,
"isDeleted": false,
"id": "hpZ74reGCV7kdx_mqdbTv",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 153.6150173611111,
"y": -58.89626736111114,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 124,
"height": 48.7890625,
"seed": 105175053,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "BKpuvJEY",
"type": "text"
},
{
"id": "BKpuvJEY",
"type": "text"
},
{
"id": "BKpuvJEY",
"type": "text"
},
{
"type": "text",
"id": "BKpuvJEY"
}
],
"updated": 1641803875887
},
{
"type": "text",
"version": 346,
"versionNonce": 1571454472,
"isDeleted": false,
"id": "BKpuvJEY",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 158.6150173611111,
"y": -44.50173611111114,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 114,
"height": 20,
"seed": 253639491,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1642988575858,
"fontSize": 16,
"fontFamily": 1,
"text": "Mysql备",
"rawText": "Mysql备",
"baseline": 14,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "hpZ74reGCV7kdx_mqdbTv",
"originalText": "Mysql备"
},
{
"type": "ellipse",
"version": 406,
"versionNonce": 1306759309,
"isDeleted": false,
"id": "zh6BiQ1SGmsMuf4N2W2YX",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 156.1462673611111,
"y": 15.713107638888857,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 124,
"height": 48.7890625,
"seed": 1293239011,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "TxDUtJyF",
"type": "text"
},
{
"id": "TxDUtJyF",
"type": "text"
},
{
"id": "TxDUtJyF",
"type": "text"
},
{
"id": "TxDUtJyF",
"type": "text"
},
{
"type": "text",
"id": "TxDUtJyF"
}
],
"updated": 1641803875887
},
{
"type": "text",
"version": 437,
"versionNonce": 113919608,
"isDeleted": false,
"id": "TxDUtJyF",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 161.1462673611111,
"y": 30.107638888888857,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 114,
"height": 20,
"seed": 738136269,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1642988575878,
"fontSize": 16,
"fontFamily": 1,
"text": "Redis备",
"rawText": "Redis备",
"baseline": 14,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "zh6BiQ1SGmsMuf4N2W2YX",
"originalText": "Redis备"
}
],
"appState": {
"theme": "light",
"viewBackgroundColor": "#ffffff",
"currentItemStrokeColor": "#000000",
"currentItemBackgroundColor": "transparent",
"currentItemFillStyle": "hachure",
"currentItemStrokeWidth": 1,
"currentItemStrokeStyle": "solid",
"currentItemRoughness": 1,
"currentItemOpacity": 100,
"currentItemFontFamily": 1,
"currentItemFontSize": 20,
"currentItemTextAlign": "left",
"currentItemStrokeSharpness": "sharp",
"currentItemStartArrowhead": null,
"currentItemEndArrowhead": "arrow",
"currentItemLinearStrokeSharpness": "round",
"gridSize": null
},
"files": {}
}
```
%%
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 97 KiB

@@ -0,0 +1,41 @@
## 支付模块
1. 管理后台完成度:70%
2. 小程序与微信公众号推送:20%
## 实施工作情况
### 部署情况
1. 机房集群环境部署情况:
![[Drawing 2022-01-10 16.10.59.excalidraw]]
1. 完成了机房kubernetes集群环境搭建,Master集群管理节点3台虚机,Worker工作节点2台虚机,可动态扩容。
2. 两个数据服务节点,一主一备,运行mysql与redis服务。
3. 集群运行服务:
![[Drawing 2022-01-10 16.07.22.excalidraw]]
1. Devops服务
1. harbor: 企业镜像服务(已完成)
2. chartmuseum: k8s应用发布管理服务(已完成)
2. scop-center 社区平台管理中心
1. nacos: 服务注册中心(已完成)
3. 小区应用(规划)
1. gdcyy-meta:创医元虚拟社区,预生产环境,演示
2. gdyd-jlh:聚龙湖花园项目生产环境
2. 项目发布标准
1. 项目发行Docker镜像
2. 部署操作文档
1. 社区系统初始数据(已完成)
2. 应用版本(剩下支付模块,未完成)
1. SCOP发布版本1.0.0: 大版本号1,升级版本0,临时修正版本0
3. 操作说明文档计划中
### 待定问题
## 项目
### 英德项目
1. 数据收集(已完成)
2. 账户注册
需要确定认证主体,按目前的调研情况,受限于一家公司可以申请的公众号最多为2个,认证主体应该是各个小区物业项目公司。
1. 公众号(已注山,未做企业认证)
2. 认证费用300元/年,确认认证主体后,确定是否由物业公司出这个费用
3. 小程序(公众号完成认证后,可以快速开通)
4. 支付商户(公众号完成认证后注册)
@@ -0,0 +1,224 @@
---
excalidraw-plugin: parsed
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
# Text Elements
Helm仓库 ^NuN5J43D
Kubernetes集群 ^HuIdFKNq
%%
# Drawing
```json
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [
{
"type": "rectangle",
"version": 51,
"versionNonce": 639331558,
"isDeleted": false,
"id": "JWGgRhpUxfQXbE0S_-hDy",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -80.20703125,
"y": -204.60546875,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 167,
"height": 61.34765625,
"seed": 263880506,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "NuN5J43D"
},
{
"id": "ePutVgRbK0xgJ8pfN1fJm",
"type": "arrow"
}
],
"updated": 1641827500567
},
{
"type": "text",
"version": 20,
"versionNonce": 2057084198,
"isDeleted": false,
"id": "NuN5J43D",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -75.20703125,
"y": -186.431640625,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 157,
"height": 25,
"seed": 1545550330,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1641829157158,
"fontSize": 20,
"fontFamily": 1,
"text": "Helm仓库",
"rawText": "Helm仓库",
"baseline": 18,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "JWGgRhpUxfQXbE0S_-hDy",
"originalText": "Helm仓库"
},
{
"type": "rectangle",
"version": 134,
"versionNonce": 1864949798,
"isDeleted": false,
"id": "YT5mcsK1LjgTpfvK1TxsM",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -111.265625,
"y": 9.44140625,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 229.265625,
"height": 90.34765625,
"seed": 968510310,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "HuIdFKNq"
},
{
"id": "ePutVgRbK0xgJ8pfN1fJm",
"type": "arrow"
}
],
"updated": 1641827500567
},
{
"type": "text",
"version": 91,
"versionNonce": 3512570,
"isDeleted": false,
"id": "HuIdFKNq",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -106.265625,
"y": 42.115234375,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 219.265625,
"height": 25,
"seed": 1904878118,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1641829157165,
"fontSize": 20,
"fontFamily": 1,
"text": "Kubernetes集群",
"rawText": "Kubernetes集群",
"baseline": 18,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "YT5mcsK1LjgTpfvK1TxsM",
"originalText": "Kubernetes集群"
},
{
"type": "arrow",
"version": 27,
"versionNonce": 882509926,
"isDeleted": false,
"id": "ePutVgRbK0xgJ8pfN1fJm",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1.3789062499999996,
"y": -138.83984375,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 1.9179687500000022,
"height": 138.6875,
"seed": 1453762854,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1641829157163,
"startBinding": {
"elementId": "JWGgRhpUxfQXbE0S_-hDy",
"gap": 4.41796875,
"focus": 0.04988519949075857
},
"endBinding": {
"elementId": "YT5mcsK1LjgTpfvK1TxsM",
"gap": 9.59375,
"focus": -0.06439029252234496
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
-1.9179687500000022,
138.6875
]
]
}
],
"appState": {
"theme": "light",
"viewBackgroundColor": "#ffffff",
"currentItemStrokeColor": "#000000",
"currentItemBackgroundColor": "transparent",
"currentItemFillStyle": "hachure",
"currentItemStrokeWidth": 1,
"currentItemStrokeStyle": "solid",
"currentItemRoughness": 1,
"currentItemOpacity": 100,
"currentItemFontFamily": 1,
"currentItemFontSize": 20,
"currentItemTextAlign": "left",
"currentItemStrokeSharpness": "sharp",
"currentItemStartArrowhead": null,
"currentItemEndArrowhead": "arrow",
"currentItemLinearStrokeSharpness": "round",
"gridSize": null
},
"files": {}
}
```
%%
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 83 KiB

@@ -0,0 +1,45 @@
### Helm是什么
Helm就是一个K8s的软件包管理工具,相当于centos的yum或是ubuntu的apt-get。所以一个完整的Helm体系就可以概括为:
![[Drawing 2022-01-10 23.10.38.excalidraw]]
当然,Helm的仓库可以有很多供应商,就像yum的仓库有不同的源,阿里的,腾讯的,还有centos官方的,有一些软件,你在阿里上面找不到,但是腾讯的源有。一样的道理。
### Helm软件包 - Chart
在[[kubernetes]]上面运行的,是服务,所以chart就是这些服务运行的定义,例如:
1. 定义应用:
1. 我需要跑一个nginx应用服务,运行一个网站,然后这个应用通过一个80端口向外提供服务。
2. 我需要跑一个spring boot应用服务,提供一些接口,供上面的网站调用。
2. 定义服务
1. 定义一个web服务,后端指向上述nginx应用服务
2. 定义一个api服务,后端指向上述的springboot应用服务
3. 开放服务
1. 通过ingress做域名解析,将web.example.com解析到上面的web服务
2. 通过ingress做域名解析,将api.example.com解析到上面的api服务
### Helm仓库
Harbor,是一个企业级的制品库管理系统,这里说的制品,包括了Docker镜像和Helm包。所以,以harbor为基础,可以搭建一个企业私有的制品发行管理系统。
创医元的Harbor地址为:[创医元harbor](https://harbor.devops.jtgdyyb.cn)
关于Harbor的详细介绍参考[[制品仓库Harbor]]
### HelmCLI
helm官方提供了一个没有比yum看起来更强大的工具,也就是这样一个命令行。
* 查找仓库中的mysql服务
<div style="text-align:center">
<img src="http://thoughts.taotechip.com/uPic/lyz6RO.png"/>
</div>
* 安装mysql服务到集群中
``````bash
$ helm install project_mysql c7n/mysql --namespace test_ns
``````
除了最基本的chart包操作,还有:
1. 制作Chart包
2. 仓库(repo)管理
3. 集群中服务的安装/卸载/升级
4. 发布
可以认为,通过HelmCLI和Harbor我们可以完成一个产品的发行制作与部署、升级等运费的管理操作
#### 安装
@@ -0,0 +1,6 @@
### Kubernetes能做啥?
### 基础组件
### 环境的搭建
@@ -0,0 +1,2 @@
### 容器管理
### 服务应用包
@@ -0,0 +1,36 @@
主要保存公司内部外部业务系统。
**现有业务**
```plantuml
!theme sketchy-outline
package "社区服务平台" {
[智慧小区]
[网格管理业务]
}
package "保险" {
[医疗责任]
[校园责任]
[小区责任]
}
```
**数据模型**
```plantuml
!theme minty
package 公司业务信息域 {
class Service<服务信息> {
string service_id
string name
string code
string provider_corp_id
}
class ServiceUserMapping<系统用户关系映射> {
string person_id
string user_id
string service_id
datatime register_date
}
}
Service ||--o{ ServiceUserMapping
Person ||--o{ ServiceUserMapping
```
@@ -0,0 +1,58 @@
```plantuml
!theme sketchy-outline
package 人员基本信息域 {
class Person<人员基本信息>{
string name
string given_name
string family_name
string person_id
string license_type
string license_no
string gender_code
date birthday
}
class ContactPerson<联系人> {
string person_id
string contact_person_id
string relationship_code{关系}
}
enum ContactType {
Mobile
Phone
Email
Address
}
class Phone<电话> {
string provider
string number
}
class ContactMethod<联系方式> {
string contact_type_code
string contact_value
}
class Mobile<联系电话> {
string provider
string number
}
class Email<电子邮箱> {
string person_id
string address
}
class Address<地址> {
string address_id
string country_id
string province_code
string city_code
string district_code
string address
}
}
Mobile }-- ContactMethod : 包含
Address }-- ContactMethod : 包含
Email }-- ContactMethod : 包含
Phone }-- ContactMethod : 包含
ContactMethod }o--|| Person : 拥有
License }o--|| Person : 拥有
ContactPerson }o--|| Person : 属于
```
@@ -0,0 +1,154 @@
---
number headings: auto, first-level 3, max 6, 1.1
---
### 1 字典表结构ER
```mermaid
erDiagram
Dict {
string id
string type
string code
string name
string level
string value
string description
string category_dict_id
string standard_dict_id
string base_dict_id
string parent_dict_id
boolean idc_base
}
```
### 2 字典表字典说明
**字段说明**
| 字段 | 类型 | 备注 |
|:---------------- |:-------:|:-------------------------------------------- |
| id | string | 唯一标识 |
| type | string | 记录类型, [standard \| category \| dict] |
| code | string | 字典编码 |
| name | string | 字典中文名 |
| level | string | 字典内级别 |
| value | string | 字典值 |
| description | string | 字典描述 |
| category_dict_id | string | 字典组标识 |
| standard_dict_id | string | 标准标识 |
| base_dict_id | string | 外部字典使用,基准ID关联,用于字典映射转换。 |
| parent_dict_id | string | 父级字典ID |
| idc_base | boolean | 系统基准字典标识 |
## 2 初始数据定义
### 3 基准标准(base_standard)
| 字段 | 类型 | 取值 | 备注 |
|:---------------- |:-------:| -------------:|:---------------------------------------------------------- |
| id | string | 1 | 唯一标识 |
| type | string | standard | 记录类型, [standard \| category \| dict] |
| code | string | base_standard | 字典编码 |
| name | string | BASE基准标准 | 字典中文名 |
| level | string | NULL | 字典内级别,标准不适用 |
| value | string | NULL | 字典值,标准不适用 |
| description | string | 平台基准标准 | 字典描述 |
| category_dict_id | string | NULL | 字典组标识,标准类型不适用 |
| standard_dict_id | string | NULL | 标准标识,标准类型不适用 |
| base_dict_id | string | NULL | 外部字典使用,基准ID关联,用于字典映射转换,标准类型不适用 |
| parent_dict_id | string | NULL | 父级字典ID,,标准不适用 |
| idc_base | boolean | true | 系统基准字典标识 |
### 4 基准字典组
#### 4.1 性别分组(base_gender_category)
| 字段 | 类型 | 取值 | 备注 |
|:---------------- |:-------:| --------------------:|:----------------------------------------------- |
| type | string | category | 记录类型 |
| code | string | base_gender_category | 平台标准性别 |
| name | string | 平台标准性别 | 字典名称 |
| level | string | NULL | 字典内级别,分组不适用 |
| value | string | NULL | 字典值,分组不适用 |
| description | string | CYY平台基准性别标准 | 字典描述 |
| category_dict_id | string | NULL | 字典组标识 |
| standard_dict_id | string | 1 | 表示属于base_standard表示这个分组是系统内部标准 |
| base_dict_id | string | NULL | 基准ID关联,内部字典不适用 |
| parent_dict_id | string | NULL | 父级字典ID,分组不适用 |
| idc_base | boolean | true | 内部标准字典标记 |
#### 4.2 政区分组(base_district_category)
| 字段 | 类型 | 取值 | 备注 |
|:---------------- |:-------:| ----------------------:|:----------------------------------------------- |
| type | string | category | 记录类型 |
| code | string | base_district_category | 平台标准性别 |
| name | string | 平台标准政区 | 字典名称 |
| level | string | NULL | 字典内级别,分组不适用 |
| value | string | NULL | 字典值,分组不适用 |
| description | string | 平台标准政区分组 | 字典描述 |
| category_dict_id | string | NULL | 字典组标识 |
| standard_dict_id | string | 1 | 表示属于base_standard表示这个分组是系统内部标准 |
| base_dict_id | string | NULL | 基准ID关联,内部字典不适用 |
| parent_dict_id | string | NULL | 父级字典ID,分组不适用 |
| idc_base | boolean | true | 内部标准字典标记 |
#### 4.3 证件类型(base_license_type_category)
| 字段 | 类型 | 取值 | 备注 |
|:---------------- |:-------:| --------------------------:|:----------------------------------------------- |
| type | string | category | 记录类型 |
| code | string | base_license_type_category | 证件类型 |
| name | string | 证件类型 | 字典名称 |
| level | string | NULL | 字典内级别,分组不适用 |
| value | string | NULL | 字典值,分组不适用 |
| description | string | 证件类型 | 字典描述 |
| category_dict_id | string | NULL | 字典组标识 |
| standard_dict_id | string | 1 | 表示属于base_standard表示这个分组是系统内部标准 |
| base_dict_id | string | NULL | 基准ID关联,内部字典不适用 |
| parent_dict_id | string | NULL | 父级字典ID,分组不适用 |
| idc_base | boolean | true | 内部标准字典标记 |
#### 4.4 汽车品牌(base_vehicle_brand_category)
| 字段 | 类型 | 取值 | 备注 |
|:---------------- |:-------:| ---------------------------:|:----------------------------------------------- |
| type | string | category | 记录类型 |
| code | string | base_vehicle_brand_category | 平台标准汽车品牌 |
| name | string | 汽车品牌字典 | 字典名称 |
| level | string | NULL | 字典内级别,分组不适用 |
| value | string | NULL | 字典值,分组不适用 |
| description | string | 汽车品牌字典 | 字典描述 |
| category_dict_id | string | NULL | 字典组标识 |
| standard_dict_id | string | 1 | 表示属于base_standard表示这个分组是系统内部标准 |
| base_dict_id | string | NULL | 基准ID关联,内部字典不适用 |
| parent_dict_id | string | NULL | 父级字典ID,分组不适用 |
| idc_base | boolean | true | 内部标准字典标记 |
#### 4.5 机构类型(base_corporation_category)
| 字段 | 类型 | 取值 | 备注 |
|:---------------- |:-------:| -------------------------:|:----------------------------------------------- |
| type | string | category | 记录类型 |
| code | string | base_corporation_category | 机构类型 |
| name | string | 机构类型 | 字典名称 |
| level | string | NULL | 字典内级别,分组不适用 |
| value | string | NULL | 字典值,分组不适用 |
| description | string | 机构类型 | 字典描述 |
| category_dict_id | string | NULL | 字典组标识 |
| standard_dict_id | string | 1 | 表示属于base_standard表示这个分组是系统内部标准 |
| base_dict_id | string | NULL | 基准ID关联,内部字典不适用 |
| parent_dict_id | string | NULL | 父级字典ID,分组不适用 |
| idc_base | boolean | true | 内部标准字典标记 |
#### 4.6 小区业务(base_community_business_category)
| 字段 | 类型 | 取值 | 备注 |
|:---------------- |:-------:| --------------------------------:|:----------------------------------------------- |
| type | string | category | 记录类型 |
| code | string | base_community_business_category | 小区业务 |
| name | string | 小区业务 | 字典名称 |
| level | string | NULL | 字典内级别,分组不适用 |
| value | string | NULL | 字典值,分组不适用 |
| description | string | 小区业务 | 字典描述 |
| category_dict_id | string | NULL | 字典组标识 |
| standard_dict_id | string | 1 | 表示属于base_standard表示这个分组是系统内部标准 |
| base_dict_id | string | NULL | 基准ID关联,内部字典不适用 |
| parent_dict_id | string | NULL | 父级字典ID,分组不适用 |
| idc_base | boolean | true | 内部标准字典标记 |
@@ -0,0 +1,12 @@
```plantuml
!theme sketchy-outline
package 小区信息域 {
class Community {
string community_id
string province_code
string city_code
string district_code
string address
}
}
```
@@ -0,0 +1,14 @@
```plantuml
!theme sketchy-outline
package 组织机构信息域 {
class Corporation {
string license_number
string corporation_id
string name
string province_code
string city_code
string district_code
string address
}
}
```
@@ -0,0 +1,22 @@
```plantuml
!theme sketchy-outline
package 证件信息域 {
enum LicenseType<证件类型字典> {
IdCard 人员证件/身份证
Passport 人员证件/护照
Driver 人员证件/驾照
SecurityCard 人员证件/社保卡
VehicleLicense 车辆证件/行驶证
HouseLicense 房产/房产证
BusinessLicense 企业/营业执照
}
class License<证件> {
string license_id
string license_type
string license_no
date valid_since_date
date valid_due_date
string issuer
}
}
```
@@ -0,0 +1,30 @@
```plantuml
!theme sketchy-outline
package 资产信息域 {
class Vehicle {
string vehicle_id
string vehicle_brand_code
string license_no
datetime register_date
}
Vehicle ||--|| License : has
class House {
string house_id
string community_id
string province_code
string city_code
string district_code
string address
}
House ||--|| License : has
class ParkSpot {
string park_spot_id
string community_id
string code
}
ParkSpot ||--|| License : has
}
Vehicle ||--o{ AssetRecord : has
House ||--o{ AssetRecord : has
ParkSpot ||--o{ AssetRecord : has
```
@@ -0,0 +1,27 @@
```plantuml
!theme sketchy-outline
enum AssetType_Dict<资产类型> {
Vehicle 车
House 房
ParkSpot 车位
}
enum AssetOwnStatus_Dict<资产> {
Owned 拥有
Transferred 已转让
Rent 租用
}
class AssetRecord {
string asset_id
string asset_type
string asset_no
string owner_type
string owner_id //关联人员/机构组织ID
string asset_id_ref //关联资产信息
string own_status //状态
date register_date //状态变更时间
}
Person ||--o{ AssetRecord : 关联
Asset -- Vehicle : 关联
Asset -- House : 关联
Asset -- ParkSpot : 关联
```
@@ -0,0 +1,5 @@
开源仓库地址
https://github.com/pentaho/pentaho-kettle
发行版下载地址
https://sourceforge.net/projects/pentaho/files/
@@ -0,0 +1,147 @@
---
title: 创医元数据中心建设第一阶段构思
number headings: auto, first-level 2, max 6, 1.
---
<h1 style="text-align:center;padding-bottom:30px">
创医元数据中心建设第一阶段构思
</h1>
数据中心的建设,对目前的团队来说,并不是一个一促而就的事情。从这两天的学习情况总结,在对业务有充分了解,进而制定一系列数据标准后,才更容易分析出各种领域的数据应该如何去组织。
如果是要逐渐完善这样一个系统,基于前人的经验,我们可以先明确一下目标,确定我们上山的第一个满足需求,有挑战且不会太高的台阶。
## 1. 目标分析
### 1.1. 数据流
首先可以明确的一点是,数据服务并不是产生数据的业务服务系统,对这个服务来说,数据是它加工的源材料。如下图所示:
``` mermaid
graph LR
异构采集-->保存ODS-->清洗加工-->存储DW-->统计-->展示
```
这是现在我们的基本需求,从分散的业务系统中抽取数据,在数据中心清洗、沉淀,进而为业务系统提供统计分析。
### 1.2. 功能模块图
下图是一个数据中台的示意图。有别于常见的业务系统,这里每一个功能点的核心都是数据。
<div style="padding-top:10px;padding-bottom:10px">
<img src="http://thoughts.taotechip.com/uPic/eSFks6.jpg" width=80%/>
</div>
### 1.3. 数据服务体系的层次
数据采集:从数据源同步,采集数据,存入ODS;
数据的处理:清洗,加工,重组,存入DW;
数据的应用:组织DW的数据,对外提供服务,共享,分析,展现。
<div style="padding-top:10px;padding-bottom:10px">
<img src="http://thoughts.taotechip.com/uPic/2sDndM.jpg" width=70%/>
</div>
详细的分层说明,可以参考链接[数据仓库--通用的数据仓库分层方法](https://www.cnblogs.com/itboys/p/10592871.html)
## 2. 方案
### 2.1. 技术方案
#### 2.1.1. 数据流入
``` mermaid
graph LR
subgraph 数据流入
A1[业务系统数据]-->B[ODS层源数据]-->DW仓库数据
A2[业务系统日志]-->B
end
```
**1. 采集工具选择**
* Kettle
通过数据采集,将业务中的数据收集到数据中心系统(ODS)。然后仍然使用kettle,将采集到的源数据,清洗加工进入数据中心核心仓库(DW)。
**2. 采集策略**
通常来说都是会有延时的,但部分工具可以通过一些配置手段,实现延时相对小的效果。
* 实时采集
<div style="padding-top:10px;padding-bottom:10px">
<img src="http://thoughts.taotechip.com/uPic/R5KWne.png" width=80%/>
</div>
* 定时批量采集
<div style="padding-top:10px;padding-bottom:10px">
<img src="http://thoughts.taotechip.com/uPic/zx98Nn.png" width=60%/>
</div>
#### 2.1.2. 数据存储
从ODS层的角度来说,数据结构与逻辑会保留与原业务库的一致性,因此,基于现在我们的系统架构,在ODS层,可能会以mysql结构化数据存储,以mongodb做文档,或系统运行日志数据的存储。
到了DW层,目前的思考是以mongodb建立多中心数据集群,同时依赖Mongodb对于大数据的优化能力,为日后的数据分析,提供更好的基础。
``` mermaid
graph LR
subgraph 数据源
S1[JSON日志]
S3[MONGODB]
S2[MYSQL源]
end
subgraph ODS库
S1-->T1[MONGODB]
S3-->T1
S2-->T2[MYSQL]
end
subgraph DW库
T1-->DW[MONGODB]
T2-->DW
end
```
[[ODS层]] [[DW层]]
#### 2.1.3. 整体方案
<div style="padding-top:10px;padding-bottom:10px;background:#ffffff">
<img src="http://thoughts.taotechip.com/uPic/overall1.png" width=100%/>
</div>
### 2.2. 业务方案
通过业务熟悉分析,来确定数据模型。数仓的建模与业务服务数据库的建模有很大的不同,熟悉业务后,还需要了解下面的建模思路。
* 学习参考资料
[数据仓库学习(二)——数据仓库建模](https://blog.csdn.net/livan1234/article/details/80993391)
[数据仓库学习(四)——星型模型与雪花模型](https://blog.csdn.net/livan1234/article/details/80993541)
## 3. 域模型设计
![[人员基本信息域]]
![[小区信息域]]
![[业务信息域]]
![[机构信息域]]
![[证件信息域]]
![[资产所有权变更信息域]]
![[资产信息域]]
![[字典数据定义]]
## 4. 工作步骤
1. 业务建模(2周)
上面已经找到数据仓库的建模指引,完成初步的DW数据模型设计,预计需要一到两周时间。
1. 测试环境搭建(2周)
上面的整体结构部署和测试工作预期一周时间
1. 构建数据映射(2周)
源数据到仓库各域对象字段的映射。
1. 配置kettle同步脚本与计划任务(2周)
## 5. 二阶段预期
完成基于graphQL的数据服务体系。
待完善...
### 5.1. 数据集市 - 域对象设计Schema
待完善...
### 5.2. 数据服务
#### 5.2.1. 接口框架
Spring GraphQL
#### 5.2.2. 权限管理
##### 5.2.2.1. 账户分配
待完善...
##### 5.2.2.2. 控制到表
待完善...
##### 5.2.2.3. 控制到字段
待完善...
## 6. 参考
1. [基于mongodb的数据中台建设](https://www.doc88.com/p-1846198097871.html?r=1)
1. [kafka官网](http://kafka.apache.org/)
1. [kettle仓库](https://github.com/pentaho/pentaho-kettle)
1. [数据仓库学习系列](https://blog.csdn.net/livan1234/category_7751887.html)
@@ -0,0 +1,15 @@
基本确定使用,维度模型
<div style="text-align:center">
<img src="http://thoughts.taotechip.com/uPic/JMSUPZ.jpg"/>
</div>
* 系统记录域(System of Record):
属于[[ODS层]],这部分是主要的数据仓库业务数据存储区,数据模型在这里保证了数据的一致性。
* 内部管理域(Housekeeping):
这部分主要存储数据仓库用于内部管理的元数据,数据模型在这里能够帮助进行统一的元数据的管理。将在这里进行对从数据源采集到的数据进行整理和清洗,对应[[模型设计]]中定义的内容。
* 汇总域(Summary of Area):这部分数据来自于系统记录域的汇总,数据模型在这里保证了分析域的主题分析的性能,满足了部分的报表查询。
* 分析域(Analysis Area):这部分数据模型主要用于各个业务部分的具体的主题业务分析。这部分数据模型可以单独存储在相应的数据集市中。
* 反馈域(Feedback Area):可选项,这部分数据模型主要用于相应前端的反馈数据,数据仓库可以视业务的需要设置这一区域。
@@ -0,0 +1 @@
在这里,主要是提供给数据产品和数据分析使用的数据,一般会存放在 ES、PostgreSql、Redis等系统中供线上系统使用,也可能会存在 Hive 或者 Druid 中供数据分析和数据挖掘使用。比如我们经常说的报表数据,一般就放在这里。
@@ -0,0 +1,25 @@
数据仓库层是我们在做数据仓库时要核心设计的一层,在这里,从 ODS 层中获得的数据按照主题建立各种数据模型。DW层又细分为 DWDData Warehouse Detail)层、DWMData WareHouse Middle)层和DWSData WareHouse Servce)层。
## 数据明细层:DWDData Warehouse Detail
该层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。
另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性,后文会举例说明。
## 数据中间层:DWMData WareHouse Middle
该层会在DWD层的数据基础上,对数据做轻度的聚合操作,生成一系列的中间表,提升公共指标的复用性,减少重复加工。
直观来讲,就是对通用的核心维度进行聚合操作,算出相应的统计指标。
## 数据服务层:DWSData WareHouse Servce
又称数据集市或宽表。按照业务划分,如流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。
一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。
在实际计算中,如果直接从DWD或者ODS计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在DWM层先计算出多个小的中间表,然后再拼接成一张DWS的宽表。由于宽和窄的界限不易界定,也可以去掉DWM这一层,只留DWS层,将所有的数据在放在DWS亦可。
^[[字典数据定义]]
^[[核心数据域]]
@@ -0,0 +1,3 @@
“面向主题的”数据运营层,也叫ODS层,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的 ETL 之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。
一般来讲,为了考虑后续可能需要追溯数据问题,因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可,至于数据的去噪、去重、异常值处理等过程可以放在后面的DWD层来做。
@@ -0,0 +1,4 @@
目标
通过熟悉业务,了解业务对于数据的需要,希望达到什么目标。进而确定数据仓库要解决什么问题。
报表
指标
@@ -0,0 +1,67 @@
从某个角度来看,数据中台很帖近数据仓库
## 数据中台功能模块图
![eSFks6](http://thoughts.taotechip.com/uPic/eSFks6.jpg)
从上所可知,基于数据中台,要实现的是基于数据的应用体系:
* 数据图表化
* 基于数据,对业务进行分析
* 基于数据,提供的服务
因此,我们要实现这一平台,需要做的,并不是业务本身,而是通过对业务的分析,找到便于分析的数据。
为了实现这一目标,区别于一众业务服务,对业务进行建模,数据中台,要基于业务的分析,对数据进一步抽象。
## 功能层次
功能层次类似于业务系统中,每一层分工完成对入参的解析,加工处理,存储,提取,加工,输出。
![jpQadZ](http://thoughts.taotechip.com/uPic/jpQadZ.png)
附上一篇CSDN中对于数据分层说明的文章
![CSDN 数据仓库—stg层_数据仓库和数据分层](https://blog.csdn.net/weixin_39692253/article/details/111497058)
### 采集层(STG
这一层主要做的是数据采集与抽取,定义策略来把数据采集回来,好像一种计划任务,批量或是实时。
是根据CDC策略把各个源系统的数据抽取到数据仓库中。STG层主要是面向批处理的形式,如果是根据日志信息实时同步,可以跳过STG层直接进入ODS层。
[知乎上关于CDC的说明](https://zhuanlan.zhihu.com/p/76997736)
* 数据源类型(mysql, log, mongodb
* 源数据格式 (json, db result set)
* 采集策略 (CDC)
* 采集模式 (批量,实时)
* 采集工具 (oplog, kettle, dataX)
[[明确采集层工作内容]]
### ODS层
ODS层,操作数据层,也叫贴源层,本层直接存放从业务系统抽取过来的数据,这些数据从结构上和数据上与业务系统保持一致,降低了数据抽取的复杂性,本层数据大多是按照源头业务系统的分类方式而分类的。一般来讲,为了考虑后续可能需要追溯数据问题,因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可。
某种意义上来说,这一层仅仅是为了保证原始数据的完整性。源系统依照标准把数据上报,存到这个临时空间,
* 日志,JSON数据
* 结构化数据
使用mongodb存储
### DW(Data Warehouse)层 - 数据仓库层
数据仓库层是我们在做数据仓库时要核心设计的一层,本层将从 ODS 层中获得的数据按照主题建立各种数据模型,每一个主题对应一个宏观的分析领域,数据仓库层排除对决策无用的数据,提供特定主题的简明视图。DW层又细分为 DWD(Data Warehouse Detail)层、DWM(Data Warehouse Middle)层和DWS(Data Warehouse Service)层。
即是说,这一层的数据,便是面向数据分析,大数据接口服务的核心数据。
### DM层
为数据集市层,这层数据是面向主题来组织数据的,通常是星形或雪花结构的数据。
### APP层
为应用层,这层数据是完全为了满足具体的分析需求而构建的数据,也是星形或雪花结构的数据。
## 模块细化
### 从源系统抽取数据
#### 问题1 异构数据服务
#### 问题2 实时抽取
#### 问题3 批量抽取
### 数据处理
@@ -0,0 +1 @@
[[核心数据域]]
@@ -0,0 +1,137 @@
---
number headings: auto, first-level 2, max 6, 1.1
title: 模型设计
date: 2021-12-20
tags: 每日工作
---
## 1 星座型
<div style="text-align:center">
<img src="http://thoughts.taotechip.com/uPic/2Yi46R.jpg" width=80%>
</div>
## 2 数据域模型
[[证件信息域]]
[[小区信息域]]
[[机构信息域]]
[[资产信息域]]
[[业务信息域]]
[[资产所有权变更信息域]]
### 2.1 公共字典域
字典表,该表向整个平台提供统一的字典服务,系统之间不同标准的字典映射。
* 表示结ER图参考[[字典数据定义#字典表结构ER]]
* 模型字段说明参考[[字典数据定义#字典表字典说明]]
#### 2.1.1 字典类型
```mermaid
graph TB
BASE[字典类型]-->A
BASE-->B
BASE-->C
A[标准]
B[分组]
C[键值]
```
##### 2.1.1.1 标准类型字典(standard)
**一:定义**
不同系统间的字典定义有所不同,如对于性别男的定义可能为1、M、Male、男。为了在数据清洗加工过程中做转换处理,字典服务提供字典数据整理外,还提供字典信息的映射查询等能力。
**二:举例**
1. BASE标准:
系统默认标准,数据平台默认的基础标准,来自不同外部系统的数据,如有相关字段需要,会按照BASE标准的数据进行转化。转化依据为各字典记录中的base_dict_id,这个字段记录了外部系统字典对应的平台base标准字典。定义:[[字典数据定义#2 1 基准标准 base_standard]]
1. 三方标准
各地区、机构、政府会有自定义的标准,有些三方系统的字典,可能没有标准依据,仅仅定义字典值本身。因此本数据平台中会有部分字典,源于组织,机构,或地区的定义。
##### 2.1.1.2 字典分组(category)
**一:定义**
字典组,即属于相关概念的一组字典KV。如性别,行政区,工作分类等等。
**二:举例**
1. 基准性别字典组,定义参考[[字典数据定义#2 2 1 性别分组 base_gender_category]]
2. 基准政区字典组,定义参考[[字典数据定义#2 2 2 政区分组 base_district_category]]
3. 基准证件类型字典组,定义参考[[字典数据定义#2 2 3 证件类型 base_license_type_category]]
4. 基准汽车品牌字典组,定义参考[[字典数据定义#2 2 4 汽车品牌 base_vehicle_brand_category]]
5. 基准机构类型字典组,定义参考[[字典数据定义#2 2 5 机构类型 base_corporation_category]]
6. 基准小区业务类型字典组,定义参考[[字典数据定义#2 2 6 小区业务 base_community_business_category]]
##### 2.1.1.3 基础字典(dict)
**字典转化**
```mermaid
graph LR
ODS源数据--外部字典-->字典映射--转化BASE标准-->DW仓库标准数据
```
### 2.2 基本信息域
基本信息域,保存基本信息与实体间的关系,基于公司内部业务分析,暂定以下几点:
```mermaid
graph
M[域模型]-->人员信息域
M-->车辆信息域
M-->机构信息域
M-->小区信息域
M-->不动产信息域
```
#### 2.2.1 人员信息域
**定义**
1. 人员信息域-[[核心数据域#人员信息]]
1. 车辆信息域-[[核心数据域#车辆信息域]]
1. 机构信息域-[[核心数据域#机构信息域]]
1. 小区信息域-[[核心数据域#小区信息域]]
1. 不动产信息域-[[核心数据域#不动产信息域]]
### 2.3 业务信息域
基于公司内的系统,以及所含子服务的分析,大致划分以下三个大的业务域范围。下文先以智慧小区系统进行分析。
```mermaid
graph TB
ROOT[业务划分]
ROOT-->SECURITY[保险业务]
ROOT-->COMMUNITY_BUSI[小区业务]
ROOT-->GRIDMGMT_BUSI[网格管理业务]
```
#### 2.3.1 小区业务域
基于智慧社区系统,对小区业务域进行划分
```mermaid
graph TB
subgraph 智慧小区核心服务业务
COMMUNITY_BUSI_AUTH[小区服务授权域]
COMMUNITY_SVC_MEMBER[服务人员信息域]
COMMUNITY_SCHEDULE_TASK[计划任务信息域]
COMMUNITY_ORDER_TASK[工单记录信息域]
end
subgraph 智慧小区大健康业务
COMMUNITY_OTHER[更多业务]
end
```
#### 2.3.2 居委业务域
待补充
#### 2.3.3 保险业务域
```mermaid
graph
subgraph 业务域
SECURITY[保险业务域]
SECURE_SCHOOL[校园安全保]
SECURE_MEDICAL[医疗安全保]
SECURE_OTHER[...]
end
SECURITY-->SECURE_SCHOOL
SECURITY-->SECURE_MEDICAL
SECURITY-->SECURE_OTHER
```
### 2.4 事件信息域
系统事件,各系统运行日志
事物事件
@@ -0,0 +1,8 @@
#### 描述:
部分房间在售出时,开发商免物业管理费,这部分费用,对于业主而言是开发商赠送,对物业公司而言,是开发商负责。
1. 物业费由开发商赠送
2. 赠送时长
每间房的信息若标注为“入住”,需要添加一个输入项,物业费是否由开发商赠送,赠送起止月份。
未入住,则物业费用由开发商自负,直到售出。
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 132 KiB

@@ -0,0 +1,17 @@
`````ad-example
title: 大纲
#### 计划编号
* SCOP-MAR-220228
#### 周期
* 3月份
#### 工作目标
![[3月份整体目标]]
`````
![[完成网格平台全部设计工作]]
![[智慧社区集成测试]]
![[智慧社区实施工作]]
![[数据中心建设]]
@@ -0,0 +1,6 @@
| No | 3月份工作计划 |
|:---:|:-------------------------------------------------- |
| 1. | 智慧社区系统集成测试与完善。 |
| 2. | 完成聚龙湖小区上线;番禺小区调研。 |
| 3. | 完成网格平台业务需求分析与技术设计;启动开发工作。 |
@@ -0,0 +1,75 @@
## OKR
`````ad-abstract
title: OKR培训课
collapse: open
````ad-example
title: 关键结果
collapse: open
```ad-note
title: [[介绍OKR基础概念]]
```
```ad-note
title: [[练习:每人制定一个3月份学习计划]]
```
```ad-note
title: [[实践:3月份团队工作计划]]
```
````
`````
## 相关信息
### 价值讨论
* 商业模式的价值
* 产品的价值
* 团队的价值
* 实现个人的价值
* 成员的价值
### OKR基本说明
* 指导我们定义一个有价值的目标,并且趋动完成的完整的方法论。
* OKR的制定,应该基于洞见,它是OKR责任者的洞察呈现,反映OKR责任者对业务的思考,体现OKR责任者的思维模式、专业经验、观察分析能力、创新意识等。OKR的质量,可以反映制定者的思考与洞察的质量。
### Obect:一个好的目标
* 基于价值定义目标
* 书写范式
<div style="text-align:center">
<img src="http://thoughts.taotechip.com/uPic/Mx0Fi7.jpg" width=80%/>
</div>
* 明确目标性质而非数量
* 明确行动方向与责任
* 有挑战、可行
* 精简、无歧义
### Key Result: 关键结果
* 定义关键结果的三个思路
* 实现目标的策略
* 目标涵盖的不同维度分解
* 目标完程时间
* 承诺型KR/挑战型KR
* OKR表
<div style="text-align:center">
<img src="http://thoughts.taotechip.com/uPic/yHLz5m.jpg" width=80%/>
</div>
* 用数字来度量KeyResult,将比率转化为具体的数字
* 过程可检查
* 关键结果≠任务,所以KR后续还会对应一个TASK
* 书写范式:通过(过程|措施),实现(可度量的结果)
* 参考SMART原则进行讨论
<div style="text-align:center">
<img src="http://thoughts.taotechip.com/uPic/rJaYi5.jpg" width=80%/>
</div>
### 对齐
* 上级目标都有承接、分解
* 能够明确协作关系
### OKR的复盘表
<div style="text-align:center">
<img src="http://thoughts.taotechip.com/uPic/ny8OvW.jpg" width=80%/>
</div>
### OKR的总结表
<div style="text-align:center">
<img src="http://thoughts.taotechip.com/uPic/hlqsmI.jpg" width=80%/>
</div>
@@ -0,0 +1,19 @@
为团队讲解OKR基础概念,初步掌握OKR的确定思路。
## OKR
`````ad-abstract
title: OKR工作法推进
```ad-note
title: [[Object-OKR组内培训课,组织复盘会与总结会]]
confidence: 8/10
```
```ad-note
title: [[应用OKR,制定3月份的小组工作计划,4星+]]
confidence: 7/10
```
```ad-note
title: [[应用OKR,制定3月份的小组工作计划,组成成员对于协作体验的打分,4星+]]
confidence: 8/10
```
`````
@@ -0,0 +1,20 @@
## 工作计划
| Obj | 网格管理平台设计工作 | 责任人 | 信心 |
|:--- |:---------------------------------------- | ------ | ------ |
| KR1 | 3月份前两周,完成第一期产品原型确定 | 陈思宇 | 8.5/10 |
| KR2 | 完成第一期业务分析与数据建模,做工期评估 | 孔文斌 | 7/10 |
## 工作内容
1. 网格管理平台
![[网格管理区域.excalidraw]]
1. 小区-->居委 管理关系配置管理,正在制做原型
1. 小区与居委的通道管理
2. 小区所属居委的管理关系配置
3. 居委入驻管理
2. 投票/公告
3. 业委会组建与管理
4. 居委数据统计
1. 人口信息统计
2. 疫情数据
3. 安全数据(监控设备,传感器,消防设备检查)
5. 各小区安全评估(监控运行、覆盖率、消防安全巡检)
@@ -0,0 +1,7 @@
| Obj | 数据中心建设 | 责任人 | 信心 |
|:--- |:------------------------------------------------ | ------ | ---- |
| KR1 | 完成Mongodb集群搭建与基于mongo-shake实时数据采集 | 黄国超 | 9/10 |
| KR2 | 完成居住信息变更星形模型建模与数据采集。 | 黄国超 | 8/10 |
| KR3 | 完成业委会成立流程的星形模型建模与数据采集。 | 黄国超 | 5/10 |
| KR4 | 完成graphql数据查询接口的开发 | 黄国超 | 5/10 |
| KR5 | 公司机房生产环境的数据节点部署 | 黄国超 | 9/10 |
@@ -0,0 +1,31 @@
## 工作计划
| Obj | 智慧社区实施工作 | 责任人 | 信心 |
|:--- |:---------------------------------------------- | ------ | ---- |
| KR1 | 聚龙湖:拜访刘总,完成微信认证工作 | 高宇 | 8/10 |
| KR2 | 番禺小区,拜访,了解小区基本信息,敲定上线事宜 | 高宇 | 8/10 |
## 工作内容
1. 服务中心整体架构
![[智慧社区整体架构.excalidraw]]
1. 实施方案已经确定,计划下周开始编写文档
```mermaid
graph TB
subgraph 微信公众平台账号
A[code.wxmp邮箱申请公众号]-->CERT[物业公司资料]-->B
需要300块认证费用-->B[通常两个工作日内完成主体认证]
B-->C(注册关联小程序)
C-->PAY[开通微信支付]-->OA[法人认证商户主体]-->ASCO[关联小程序]-->D[完成准备]
end
subgraph 确定小区信息
确定小区代码-->COL[收集小区基础数据]-->业主-->DEP[部署]
COL-->楼栋-->DEP
COL-->物业服务人员-->DEP
end
```
2. 两个小区都完成了公众号/小程序/支付通道的开通
2. 两个小区已完成基础数据收集
1. 英德聚龙湖已经初步完成
2. 番禺小区已提供模板
3. 需求修改
1. 从番禺小区收集到的需求正在修改中,影响数据中心的进度。
2. 计划本周完成开发,则下周开始集成测试工作
@@ -0,0 +1,16 @@
## 工作计划
| Obj | 智慧社区集成测试 | 责任人 | 信心 |
|:--- |:----------------------------------------- | ------ | ----- |
| KR1 | 社区小程序业主实名认证 | 黄国超 | 10/10 |
| KR2 | 管理后台忘记密码/业主/住户手机短信校验 | 徐钊 | 10/10 |
| KR3 | 整理业务流程与功能点清单 | 陈思宇 | 10/10 |
| KR4 | 一周完成一轮测试,记录BUG,月底通过率100% | 阵孟泽 | 9 |
## 工作内容
1. 新增功能需求(预计本周完成)
1. 账户绑定逻辑调整
2. 小区收费计算逻辑编辑
2. KR1预计本周完成
3. 已完成KR3业务清单整理
4. 本周末下周初完成虚拟社区部署,在本月完成两轮测试
Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 245 KiB

@@ -0,0 +1,40 @@
### 确定主题
```mermaid
graph TB
subgraph 3: 合作产出
小组-->学习收集资料-->O
O[输出]-->博客文章
O-->沙龙
end
subgraph 2: 目标整合
D[目标讨论与调整]-->统一意见-->成立小组
end
subgraph 1: 收集学习目标
收集每个人的学习目标-->B[目标组合]-->确定主题
end
```
#### 收集学习目标
1. 每人写13个学习目标
2. 定目标:用精简的话概括自己的学习目标
3. 写出2~5个希望达到的关键结果(KeyResult)
> 如:O:学习小型团队工作方法,改善我们的团队效率。
KR1:阅读3~5本小型团队管理的书籍,找到可能适合我们的一种协作方式。
KR2:详细分析这种工作协作方式,并且在项目组试验。
KR3:协助每一个小组成员,在工作中实践这种模式。
#### 目标整合
集合大家提交的个人学习意愿,依照相似/相关/包含关系,形成2到3人一组,组队原则:
1. 自由组队,讨论目标,确定主题
2. 独立完成命题
3. 加入其他小组
#### 输出
沙龙/博文/PPT
### 规则与要求
1. 沙龙每月开一次,每年共计12次。
2. 每年每人至少完成1次以上的沙龙主题
3. 除沙龙的基本奖励外,沙龙质量将纳入年底奖金考核依据。
4. 业余时间完成。
@@ -0,0 +1,34 @@
##### 目标概括
基于[[BladeX框架]],完成建立网格化管理体系,完成系统对接逻辑设计。
![[settings/archived/work/2022年/CCY综合服务平台/系统逻辑设计/教育网格化管理体系.exdraw|500|center]]
##### 当前工作目标
> [!INFO] 目标一:完成基于BladeX框架搭建综合服务平台基础管理
> * KR1[孔文威10]: 框架采购
> * KR2[孔文斌10]: BladeX框架功能模块学习与分析
> * KR3[陈孟泽10]: BladeX框架前端技术分析
> * KR4[孔文斌]: 综合服务平台与外部系统的<u>**集成与对接**</u>方案
> 1. 教育网格管理平台的租户与组织结构设计,外部系统集成方案
> 2. 校园信息系统租户与组织结构设计,外部系统集成方案
> [!INFO] 目标二:教育网格管理系统产品原型
> * KR1[陈思宇]: 确定第一期功能清单
> * KR2[高宇]: 第一期功能的开发方案文档
> * KR3[孔文斌]: BladeX框架使用主站提供的Oauth2.0三方登录方案改造
> [!INFO] 目标三:综合服务平台门户网站
> * KR1[陈孟泽7]: 5月底完成
> * KR2[高宇]: 主站各页面内容整理
> [!INFO] 目标四:
#### 计划推进工作
##### 项目:校园管理系统改造
> [!INFO] 彭总的校园管理系统网格化改造方案
> 原彭总的校园信息系统是独立的系统,平台的需要将他的账户认证功能,转接到综合服务平台租户以及子账户授权体系。
##### 项目:数据中心
> [!INFO] 校园数据建模
> 数据中心完成对校园系统数据库信息的收集,建模。
@@ -0,0 +1,2 @@
####
![[2022-07-06 2022-07-06 17.15.27.excalidraw]]
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 145 KiB

@@ -0,0 +1,16 @@
方案分析
![[创医元AI视频识别服务.excalidraw|left]]
Python拉流
![[Python RTMP视频流#拉流RTMP]]
Python推流
![[Python RTMP视频流#RTMP推流]]
Python AI识别
流服务器
* 可以10路rtmp流服务,用于监控中心开启AI实时分析回显示。(腾讯云|自建rtmp服务)
* 可以考虑提供同步录制服务(腾讯云端录制|python拉流后存储)
* 视频回放(腾讯云点播功能|基于文件服务回放)
@@ -0,0 +1,30 @@
##### 五月份工作回顾
1. 完成综合服务平台线上环境部署(网站/平台)
2. 完成教育网格管理平台的一期需求
3. 完成校园信息系统的需求确认
4. 完成数据中心的核心服务建设
5. 完成数据采集->数据清洗->数据可视化的初步技术验证
##### 六月份工作主题概括
1. 综合服务平台扩展应用集成与整合能力
2. 教育网格平台研发
3. 综合服务平台/教育主站的更新
##### 六月份目标细节
> [!INFO] 目标一:综合服务平台v1.1 服务整合能力扩展
> ![[Pasted image 20220607095133.png]]
> 主要相关人员:孔文斌、陈孟泽、陈启慧
> * 子目标:个性化工作台
> * 子目标:租户自有外部系统集成管理
> * 子目标:SSO单点登录
> [!INFO] 目标二:教育网格管理平台设计与开发
> * 子目标:基于Blade框架,接入综合服务平台的教育局租户
> * 子目标:彭总校园OA系统的数据采集与业务对接
> * 子目标:江泰安全巡查系统的数据采集与业务对接
> [!INFO] 目标三:综合服务平台门户网站设计与更新
> 主要相关人员:陈思宇、范雨欣
> * 子目标:综合服务平台主站
> * 子目标:教育主站
@@ -0,0 +1,6 @@
1. [[综合服务平台系统整合方案]]
2. [[视频源与AI监控方案]]
3. [[校园数据采集与分析方案]]
4. [[安全巡查系统功能体系分析]]
![[Pasted image 20220620134545.png]]
@@ -0,0 +1,38 @@
---
title: 智能化网格安全管理云平台(校园版)V2.0 调整建议
type: collection
category: bookNotes
tags: bookNotes
annotation-target: http://thoughts.taotechip.com/uPic/智能化网格安全管理云平台(校园版)V2.0.pdf
---
>%%
>```annotation-json
>{"created":"2022-06-21T09:52:51.725Z","text":"把我们投保平台的统计数据拿出来,给用户看数据,然后举一两个案件的例子(匿名),来表达出校园安全状况。","updated":"2022-06-21T09:52:51.725Z","document":{"title":"%E6%99%BA%E8%83%BD%E5%8C%96%E7%BD%91%E6%A0%BC%E5%AE%89%E5%85%A8%E7%AE%A1%E7%90%86%E4%BA%91%E5%B9%B3%E5%8F%B0%EF%BC%88%E6%A0%A1%E5%9B%AD%E7%89%88%EF%BC%89V2.0.pdf","link":[{"href":"urn:x-pdf:f5eba160157f93a9b7f4b8b18bd1e405"},{"href":"http://thoughts.taotechip.com/uPic/%E6%99%BA%E8%83%BD%E5%8C%96%E7%BD%91%E6%A0%BC%E5%AE%89%E5%85%A8%E7%AE%A1%E7%90%86%E4%BA%91%E5%B9%B3%E5%8F%B0%EF%BC%88%E6%A0%A1%E5%9B%AD%E7%89%88%EF%BC%89V2.0.pdf"}],"documentFingerprint":"f5eba160157f93a9b7f4b8b18bd1e405"},"uri":"http://thoughts.taotechip.com/uPic/%E6%99%BA%E8%83%BD%E5%8C%96%E7%BD%91%E6%A0%BC%E5%AE%89%E5%85%A8%E7%AE%A1%E7%90%86%E4%BA%91%E5%B9%B3%E5%8F%B0%EF%BC%88%E6%A0%A1%E5%9B%AD%E7%89%88%EF%BC%89V2.0.pdf"}
>```
>%%
>*%%PREFIX%%%%HIGHLIGHT%% ==== %%POSTFIX%%*
>%%LINK%%[[#^sxh8kw3vud|show annotation]]
>%%COMMENT%%
>把我们投保平台的统计数据拿出来,给用户看数据,然后举一两个案件的例子(匿名),来表达出校园安全状况。
>%%TAGS%%
>
^sxh8kw3vud
>%%
>```annotation-json
>{"created":"2022-06-21T09:58:08.314Z","text":"学校里的管理者肯定是专业搞教育的。","updated":"2022-06-21T09:58:08.314Z","document":{"title":"%E6%99%BA%E8%83%BD%E5%8C%96%E7%BD%91%E6%A0%BC%E5%AE%89%E5%85%A8%E7%AE%A1%E7%90%86%E4%BA%91%E5%B9%B3%E5%8F%B0%EF%BC%88%E6%A0%A1%E5%9B%AD%E7%89%88%EF%BC%89V2.0.pdf","link":[{"href":"urn:x-pdf:f5eba160157f93a9b7f4b8b18bd1e405"},{"href":"http://thoughts.taotechip.com/uPic/%E6%99%BA%E8%83%BD%E5%8C%96%E7%BD%91%E6%A0%BC%E5%AE%89%E5%85%A8%E7%AE%A1%E7%90%86%E4%BA%91%E5%B9%B3%E5%8F%B0%EF%BC%88%E6%A0%A1%E5%9B%AD%E7%89%88%EF%BC%89V2.0.pdf"}],"documentFingerprint":"f5eba160157f93a9b7f4b8b18bd1e405"},"uri":"http://thoughts.taotechip.com/uPic/%E6%99%BA%E8%83%BD%E5%8C%96%E7%BD%91%E6%A0%BC%E5%AE%89%E5%85%A8%E7%AE%A1%E7%90%86%E4%BA%91%E5%B9%B3%E5%8F%B0%EF%BC%88%E6%A0%A1%E5%9B%AD%E7%89%88%EF%BC%89V2.0.pdf","target":[{"source":"http://thoughts.taotechip.com/uPic/%E6%99%BA%E8%83%BD%E5%8C%96%E7%BD%91%E6%A0%BC%E5%AE%89%E5%85%A8%E7%AE%A1%E7%90%86%E4%BA%91%E5%B9%B3%E5%8F%B0%EF%BC%88%E6%A0%A1%E5%9B%AD%E7%89%88%EF%BC%89V2.0.pdf","selector":[{"type":"TextPositionSelector","start":264,"end":271},{"type":"TextQuoteSelector","exact":"管理者有心无力","prefix":";ü缺乏系统化的应急机制;ü家校责任难于界定;ü监管手段缺失;(","suffix":"!\"#$ %&'()*)+,-./0)*123451.《国务院"}]}]}
>```
>%%
>*%%PREFIX%%;ü缺乏系统化的应急机制;ü家校责任难于界定;ü监管手段缺失;(%%HIGHLIGHT%% ==管理者有心无力== %%POSTFIX%%!"#$ %&'()*)+,-./0)*123451.《国务院*
>%%LINK%%[[#^bd1ap0nokil|show annotation]]
>%%COMMENT%%
>学校里的管理者肯定是专业搞教育的。
>%%TAGS%%
>
^bd1ap0nokil
@@ -0,0 +1,780 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
# Text Elements
创医元SSO统一认证中心 ^O5iiaI2D
综合服务平台 ^03272zok
数据库 ^aHK5pcVH
登录校验页 ^nYxyA8y5
租户自有系统 ^4XYEPHXx
%%
# Drawing
```json
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [
{
"type": "rectangle",
"version": 190,
"versionNonce": 101198939,
"isDeleted": false,
"id": "zJIScDtARvFNeY6ZVd-d4",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -226.6328125,
"y": -199.8125,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 285,
"height": 84,
"seed": 440292405,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "O5iiaI2D"
},
{
"id": "yOnZSL570ftUaRPc229HP",
"type": "arrow"
}
],
"updated": 1655178692796,
"link": null,
"locked": false
},
{
"type": "text",
"version": 218,
"versionNonce": 1063774331,
"isDeleted": false,
"id": "O5iiaI2D",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -221.6328125,
"y": -170.3125,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 275,
"height": 25,
"seed": 754314773,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1655187040452,
"link": null,
"locked": false,
"fontSize": 20.00030517578125,
"fontFamily": 1,
"text": "创医元SSO统一认证中心",
"rawText": "创医元SSO统一认证中心",
"baseline": 18,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "zJIScDtARvFNeY6ZVd-d4",
"originalText": "创医元SSO统一认证中心"
},
{
"type": "rectangle",
"version": 341,
"versionNonce": 1280242485,
"isDeleted": false,
"id": "C9aZZ-01SjnLILDKZMtR-",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -197.6015625,
"y": 85.5625,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 237.3984375,
"height": 83.0546875,
"seed": 821753435,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "03272zok"
},
{
"id": "rlVJkY5KFWEthWgi-1Vb4",
"type": "arrow"
},
{
"id": "HlE0RRjQKeSRnP0JwdoDX",
"type": "arrow"
},
{
"id": "hkgrU39wjRxLTjmPrFlHg",
"type": "arrow"
}
],
"updated": 1655179434433,
"link": null,
"locked": false
},
{
"type": "text",
"version": 319,
"versionNonce": 1401917653,
"isDeleted": false,
"id": "03272zok",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -192.6015625,
"y": 114.58984375,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 227.3984375,
"height": 25,
"seed": 118992699,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1655187040452,
"link": null,
"locked": false,
"fontSize": 20.035104625550662,
"fontFamily": 1,
"text": "综合服务平台",
"rawText": "综合服务平台",
"baseline": 18,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "C9aZZ-01SjnLILDKZMtR-",
"originalText": "综合服务平台"
},
{
"type": "rectangle",
"version": 593,
"versionNonce": 726077851,
"isDeleted": false,
"id": "xNb9d9iuvO_Mv4ZtUVkYx",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 157.9296875,
"y": 95.00786415183859,
"strokeColor": "#000000",
"backgroundColor": "#868e96",
"width": 129,
"height": 65,
"seed": 329570645,
"groupIds": [
"viQcfYjxa3liflHjrf-p3"
],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "aHK5pcVH"
},
{
"id": "rlVJkY5KFWEthWgi-1Vb4",
"type": "arrow"
}
],
"updated": 1655178692796,
"link": null,
"locked": false
},
{
"type": "ellipse",
"version": 638,
"versionNonce": 1570810261,
"isDeleted": false,
"id": "RhQOamxXLcgNZnOlE4Wkx",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 159.37789792321317,
"y": 147.2421795290374,
"strokeColor": "#000000",
"backgroundColor": "#ced4da",
"width": 128.1181958267868,
"height": 24.842133169918057,
"seed": 778741973,
"groupIds": [
"viQcfYjxa3liflHjrf-p3"
],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1655178692796,
"link": null,
"locked": false
},
{
"type": "ellipse",
"version": 687,
"versionNonce": 1229465147,
"isDeleted": false,
"id": "J5lx7RoFRaWSCRICtxsS9",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 159.5626956074255,
"y": 81.484375,
"strokeColor": "#000000",
"backgroundColor": "#ced4da",
"width": 128.37740149165438,
"height": 25.247963737858726,
"seed": 885176853,
"groupIds": [
"viQcfYjxa3liflHjrf-p3"
],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "yOnZSL570ftUaRPc229HP",
"type": "arrow"
}
],
"updated": 1655178692796,
"link": null,
"locked": false
},
{
"type": "text",
"version": 623,
"versionNonce": 635452315,
"isDeleted": false,
"id": "aHK5pcVH",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 162.9296875,
"y": 115.50786415183859,
"strokeColor": "#000000",
"backgroundColor": "#868e96",
"width": 119,
"height": 24,
"seed": 1326304533,
"groupIds": [
"viQcfYjxa3liflHjrf-p3"
],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1655187040453,
"link": null,
"locked": false,
"fontSize": 19.330769521619267,
"fontFamily": 1,
"text": "数据库",
"rawText": "数据库",
"baseline": 17,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "xNb9d9iuvO_Mv4ZtUVkYx",
"originalText": "数据库"
},
{
"type": "rectangle",
"version": 180,
"versionNonce": 2036077874,
"isDeleted": false,
"id": "wnV1XZYxmZ-WAAsmauHVx",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -220.45703125,
"y": -108.609375,
"strokeColor": "#000000",
"backgroundColor": "#868e96",
"width": 116,
"height": 37,
"seed": 1183615477,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "nYxyA8y5"
},
{
"id": "HlE0RRjQKeSRnP0JwdoDX",
"type": "arrow"
},
{
"id": "LAzrOSsHVGOAhrFgrb9RT",
"type": "arrow"
}
],
"updated": 1655179065041,
"link": null,
"locked": false
},
{
"type": "text",
"version": 178,
"versionNonce": 223629531,
"isDeleted": false,
"id": "nYxyA8y5",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -215.45703125,
"y": -103.109375,
"strokeColor": "#000000",
"backgroundColor": "#868e96",
"width": 106,
"height": 26,
"seed": 56151995,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1655187040453,
"link": null,
"locked": false,
"fontSize": 20.176859861591694,
"fontFamily": 1,
"text": "登录校验页",
"rawText": "登录校验页",
"baseline": 18,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "wnV1XZYxmZ-WAAsmauHVx",
"originalText": "登录校验页"
},
{
"type": "arrow",
"version": 230,
"versionNonce": 14836565,
"isDeleted": false,
"id": "yOnZSL570ftUaRPc229HP",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 64.99609374999999,
"y": -143.30326272320838,
"strokeColor": "#000000",
"backgroundColor": "#868e96",
"width": 156.7109375,
"height": 216.08451272320838,
"seed": 1587495195,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1655187040451,
"link": null,
"locked": false,
"startBinding": {
"elementId": "zJIScDtARvFNeY6ZVd-d4",
"gap": 6.62890625,
"focus": -0.21725756317196793
},
"endBinding": {
"elementId": "J5lx7RoFRaWSCRICtxsS9",
"focus": -0.006348430744046835,
"gap": 8.709362791407454
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
142.47265625,
28.494668973208377
],
[
156.7109375,
216.08451272320838
]
]
},
{
"type": "arrow",
"version": 94,
"versionNonce": 1768992309,
"isDeleted": false,
"id": "rlVJkY5KFWEthWgi-1Vb4",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 43.5234375,
"y": 125.90474980394524,
"strokeColor": "#000000",
"backgroundColor": "#868e96",
"width": 108.0390625,
"height": 0.604527978088214,
"seed": 751979675,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1655187040453,
"link": null,
"locked": false,
"startBinding": {
"elementId": "C9aZZ-01SjnLILDKZMtR-",
"gap": 3.7265625,
"focus": -0.011852788536231928
},
"endBinding": {
"elementId": "xNb9d9iuvO_Mv4ZtUVkYx",
"gap": 6.3671875,
"focus": 0.07924847169824341
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
108.0390625,
-0.604527978088214
]
]
},
{
"type": "rectangle",
"version": 447,
"versionNonce": 752141461,
"isDeleted": false,
"id": "2WJ_4-MIf5-rLqnSQAIrF",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -525.58203125,
"y": 85.9921875,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 237.3984375,
"height": 83.0546875,
"seed": 1421853781,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "4XYEPHXx",
"type": "text"
},
{
"id": "rlVJkY5KFWEthWgi-1Vb4",
"type": "arrow"
},
{
"id": "LAzrOSsHVGOAhrFgrb9RT",
"type": "arrow"
},
{
"id": "hkgrU39wjRxLTjmPrFlHg",
"type": "arrow"
}
],
"updated": 1655179434434,
"link": null,
"locked": false
},
{
"type": "text",
"version": 451,
"versionNonce": 406066715,
"isDeleted": false,
"id": "4XYEPHXx",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -520.58203125,
"y": 114.51953125,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 227.3984375,
"height": 26,
"seed": 726472571,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1655187040454,
"link": null,
"locked": false,
"fontSize": 20.070270867838076,
"fontFamily": 1,
"text": "租户自有系统",
"rawText": "租户自有系统",
"baseline": 18,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "2WJ_4-MIf5-rLqnSQAIrF",
"originalText": "租户自有系统"
},
{
"type": "arrow",
"version": 88,
"versionNonce": 724308027,
"isDeleted": false,
"id": "HlE0RRjQKeSRnP0JwdoDX",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -147.477464385114,
"y": 78.92578125,
"strokeColor": "#000000",
"backgroundColor": "#868e96",
"width": 1.15392213796639,
"height": 143.43359375,
"seed": 1596055899,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1655187040453,
"link": null,
"locked": false,
"startBinding": {
"elementId": "C9aZZ-01SjnLILDKZMtR-",
"gap": 6.63671875,
"focus": -0.5728450609358663
},
"endBinding": {
"elementId": "wnV1XZYxmZ-WAAsmauHVx",
"gap": 7.1015625,
"focus": -0.23422104633200858
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
-1.15392213796639,
-143.43359375
]
]
},
{
"type": "arrow",
"version": 353,
"versionNonce": 1568276053,
"isDeleted": false,
"id": "LAzrOSsHVGOAhrFgrb9RT",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -343.4139459016998,
"y": 79.05078125,
"strokeColor": "#000000",
"backgroundColor": "#868e96",
"width": 149.8469638253253,
"height": 142.3671875,
"seed": 936393883,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1655187040454,
"link": null,
"locked": false,
"startBinding": {
"elementId": "2WJ_4-MIf5-rLqnSQAIrF",
"gap": 6.94140625,
"focus": 0.3674570008906557
},
"endBinding": {
"elementId": "wnV1XZYxmZ-WAAsmauHVx",
"gap": 8.29296875,
"focus": 0.42117837524642115
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
15.558477151699776,
-49.9453125
],
[
134.23816465169978,
-61.57421875
],
[
149.8469638253253,
-142.3671875
]
]
},
{
"type": "arrow",
"version": 55,
"versionNonce": 1991338933,
"isDeleted": false,
"id": "hkgrU39wjRxLTjmPrFlHg",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -203.171875,
"y": 127.75,
"strokeColor": "#000000",
"backgroundColor": "#868e96",
"width": 81.3671875,
"height": 1.15234375,
"seed": 1029252309,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1655187040454,
"link": null,
"locked": false,
"startBinding": {
"elementId": "C9aZZ-01SjnLILDKZMtR-",
"gap": 5.5703125,
"focus": 0.02545296896184916
},
"endBinding": {
"elementId": "2WJ_4-MIf5-rLqnSQAIrF",
"gap": 3.64453125,
"focus": 0.07210351884860543
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
-81.3671875,
1.15234375
]
]
},
{
"id": "TIeoNBmMcB9mjTjyvqiK7",
"type": "text",
"x": 54.88346000787345,
"y": 90.46272926614449,
"width": 81,
"height": 28,
"angle": 0,
"strokeColor": "#000000",
"backgroundColor": "#868e96",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"strokeSharpness": "sharp",
"seed": 685228661,
"version": 68,
"versionNonce": 1000203925,
"isDeleted": true,
"boundElements": null,
"updated": 1655187056531,
"link": null,
"locked": false,
"text": "用户管理",
"rawText": "用户管理",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 21,
"containerId": null,
"originalText": "用户管理"
}
],
"appState": {
"theme": "dark",
"viewBackgroundColor": "#ffffff",
"currentItemStrokeColor": "#000000",
"currentItemBackgroundColor": "#868e96",
"currentItemFillStyle": "solid",
"currentItemStrokeWidth": 1,
"currentItemStrokeStyle": "solid",
"currentItemRoughness": 1,
"currentItemOpacity": 100,
"currentItemFontFamily": 1,
"currentItemFontSize": 20,
"currentItemTextAlign": "left",
"currentItemStrokeSharpness": "sharp",
"currentItemStartArrowhead": null,
"currentItemEndArrowhead": "arrow",
"currentItemLinearStrokeSharpness": "round",
"gridSize": null,
"colorPalette": {}
},
"files": {}
}
```
%%
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 97 KiB

@@ -0,0 +1,20 @@
### 系统整合
1. Case-1:仅使用平台提供的账户校验,但是登录入口还在外部系统,业务系统还是独立提供服务。
2. Case-2:用户登录的是综合服务平台,而平台集成了租户下相关的业务系统,用户可以系统间无缝跳转。
3. Case-3:平台分配给租户专属的域名,平台依据域名显示对应的登录信息。
### 认证中心
### SSO单点登录
#### 参考解决方案
1. CAS
基于CAS解决多租户统一账户管理问题
http://t.csdn.cn/wqFco
http://t.csdn.cn/WuPVQ
http://t.csdn.cn/tbvh4
1. JAP
2. KISSO
#### 单点登录逻辑示意
![[Drawing 2022-06-14 11.22.43.excalidraw|center]]
@@ -0,0 +1,32 @@
---
number headings: first-level 4, max 6, 1.1.
---
#### 1. 乐昌教育安全情况
##### 1.1. 监控
1. 没有集中监控:现有的监控,仅用于考试监考。
2. 校内有部署监控摄像头,可以协调人员收集视频地址。
##### 1.2. 安全网格人员
1. 计划采用以下的网格管理模式
![[2022-07-29 教育安全网格管理平台 2022-08-01 11.08.05.excalidraw|500]]
1. 可以由驻校网格管理人员进行日常安全隐患排查
##### 1.3. 韶关市教育局 - 定位卡
由三方供应,韶关市正在推。
1. 180元/年一张有定位功能的学生卡
2. 基本功能仅有刷卡功能
3. 整合外部系统定位路径等数据
#### 2. 需求
##### 2.1. 工作进度跟踪
1. 教育局安全工作下发,跟踪(重点)。
2. 连接教育局与学校管理人员
##### 2.2. 平台功能需求
由教育局对下属院校进行安全教育,关注“驻校安全员”的培训与指导。
##### 2.3. 定位数据接入安全平台
![[2022-07-29 教育安全网格管理平台 2022-08-01 11.18.29.excalidraw]]
##### 2.4. 隐患
基础隐患排查
日常隐患排查
专业隐患排查,如教学楼危楼
#### 3. 待办
1. 服务器资源需求
2. 学校资源收集
3. 分期计划,计划先给出前三期
@@ -0,0 +1,84 @@
```toc
```
#### 六月份工作回顾
1. 综合服务平台扩展应用集成与整合能力(完成度80%),预计7月第一周完成后续功能
2. 教育网格平台的准备工作
1. 与江泰就隐患排查系统数据的对接进行了接洽
2. 明确了教育局视频资源的的推进方向
3. 新投保平台的数据仓库基本完成了建模与部分数据采集工作
3. 综合服务平台宣传网站进入周期性更新阶段。
#### 七月份工作安排
##### 七月份工作主题概括
1. 完成综合服务平台扩展应用集成与整合能力
2. 启动教育网格安全管理平台基础开发,接入综合服务平台系统整合体系
3. 初步搭建数据中心的AI分析服务
4. 教育网格主题门户网站完善设计
##### 七月份重点目标
> [!INFO] 目标 1 :完成综合服务平台租户自有系统接入监权模块的开发
>
> 人员:孔文斌、陈孟泽
> 内容:
> 1. 租户自有系统接入管理
> 2. Oauth授权、与接口调用校验
> [!INFO] 目标 2 :教育网格管理平台基础建设
>
> 人员:陈孟泽、陈启慧
> 内容:
> 1. 以BladeX框架为基础,改造接入综合服务平台账户体系
> 2. 接入综合服务平台认证中心
> [!INFO] 目标 3:教育网格管理平台数据分析大屏
> 人员:黄国超、徐钊、陈思宇、高宇
> 细化:[[#教育网格数据大屏目标细化]]
> [!INFO] 目标四:AI视觉分析中心基本搭建
> 人员:高宇
> 内容:
> 1. 信息管理(视频流|AI智能识别模型|AI分析作业记录)
> 2. AI分析作业模块
#### 目标细化
##### 教育网格数据大屏(新增)
![[网格大屏工作计划.excalidraw|left]]
> [!INFO] 目标 3.1:针对教育网格安全需求,完成学平险投保数据分析大屏调整
> 人员:黄国超、徐钊、陈思宇
> 内容:
> 1. 讨论调整教育网格“投保数据分析屏”数据模块调整(陈思宇/黄国超)
> 2. 完成数据准备与界面对接
> 3. 发布到教育网格平台
>
> 时间点:
> 1. 计划完成时间:7月19日
> [!INFO] 目标 3.2:完成纠纷系统数据分析大屏
> 人员:陈思宇、黄国超、徐钊
> 内容:
> 1. 讨论教育网格“纠纷案件数据分析屏”(陈思宇/黄国超)
> 2. 完成数据准备与界面对接
> 3. 发布到教育网格平台
>
> 时间点:
> 1. 计划完成时间:7月29日
> [!INFO] 目标 3.3:完成教育网格监控中心统计分析大屏
> 人员:黄国超、陈思宇、高宇
> 内容:
> 1. 完成AI分析系统基础视觉分析模型
> 2. 完成教育网格数据对接
> 3. 完成监控中心数据准备与界面对接
> 4. 发布到教育网格平台
>
> 时间点:
> 1. 7月29日 完成第1点
> 2. 计划完成时间,8月15日
![[Drawing 2022-01-10 23.10.38.excalidraw]]
![[七月份综合服务平台工作计划 2022-08-03 18.43.45.excalidraw|400|right]]
@@ -0,0 +1,8 @@
乐昌领导有相对具体的安全管理方面的考虑
[[2022-07-21英德教育局教育安全网格管理平台-产品介绍会议纪要]]
[[2022-07-25 英德市教育安全管控平台实施工作计划]]
[[2022-07-29 拜访乐昌教育局 - 安全网格管理平台记录]]
[[2022-07-27 乐昌教育安全管控平台实施工作计划]]
![[BladeX框架信息]]
@@ -0,0 +1,7 @@
![[Drawing 2022-07-05 09.30.21.excalidraw]]
![[AI视觉任务.excalidraw]]
![[OpenCV与FFmpeg]]
@@ -0,0 +1,119 @@
opencv是图形处理
ffmpeg是媒体转换
opencv的流媒体部分,依赖于ffmpeg,通过以下方式,获取opencv的信息,如下,我的电脑里安装的opencv,即没有ffmpeg的功能。
```shell
python >> print(cv2.getBuildInformation())
General configuration for OpenCV 4.6.0 =====================================
Version control: 4.6.0
Platform:
Timestamp: 2022-07-04T07:35:14Z
Host: Darwin 21.5.0 arm64
CMake: 3.22.5
CMake generator: Unix Makefiles
CMake build tool: /usr/bin/make
Configuration: Release
CPU/HW features:
Baseline: NEON FP16
C/C++:
Built as dynamic libs?: NO
C++ standard: 11
C++ Compiler: /Library/Developer/CommandLineTools/usr/bin/c++ (ver 13.1.6.13160021)
C++ flags (Release): -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Qunused-arguments -Wno-semicolon-before-method-body -ffunction-sections -fdata-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG
C++ flags (Debug): -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Qunused-arguments -Wno-semicolon-before-method-body -ffunction-sections -fdata-sections -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG
C Compiler: /Library/Developer/CommandLineTools/usr/bin/cc
C flags (Release): -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Qunused-arguments -Wno-semicolon-before-method-body -ffunction-sections -fdata-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG
C flags (Debug): -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Qunused-arguments -Wno-semicolon-before-method-body -ffunction-sections -fdata-sections -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG
Linker flags (Release): -Wl,-dead_strip
Linker flags (Debug): -Wl,-dead_strip
ccache: NO
Precompiled headers: NO
Extra dependencies: -framework OpenCL /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Accelerate.framework -lm -ldl -framework Cocoa -framework AppKit
3rdparty dependencies: libprotobuf ade ittnotify libjpeg-turbo libwebp libpng libtiff libopenjp2 IlmImf zlib quirc tegra_hal
OpenCV modules:
To be built: calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo python3 stitching video videoio
Disabled: world
Disabled by dependency: -
Unavailable: java python2 ts
Applications: -
Documentation: NO
Non-free algorithms: NO
GUI: COCOA
Cocoa: YES
VTK support: NO
Media I/O:
ZLib: build (ver 1.2.12)
JPEG: build-libjpeg-turbo (ver 2.1.2-62)
WEBP: build (ver encoder: 0x020f)
PNG: build (ver 1.6.37)
TIFF: build (ver 42 - 4.2.0)
JPEG 2000: build (ver 2.4.0)
OpenEXR: build (ver 2.3.0)
HDR: YES
SUNRASTER: YES
PXM: YES
PFM: YES
Video I/O:
DC1394: NO
FFMPEG: NO
avcodec: NO
avformat: NO
avutil: NO
swscale: NO
avresample: NO
GStreamer: NO
AVFoundation: YES
Parallel framework: GCD
Trace: YES (with Intel ITT)
Other third-party libraries:
Lapack: YES (/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Accelerate.framework -lm -ldl)
Eigen: NO
Custom HAL: YES (carotene (ver 0.0.1))
Protobuf: build (3.19.1)
OpenCL: YES (no extra features)
Include path: NO
Link libraries: -framework OpenCL
Python 3:
Interpreter: /opt/homebrew/Caskroom/miniconda/base/envs/local_paddle_develop/bin/python (ver 3.8.13)
Libraries: /opt/homebrew/Caskroom/miniconda/base/envs/local_paddle_develop/lib/libpython3.8.dylib (ver 3.8.13)
numpy: /private/var/folders/5k/3y05d4h11p14mnf2fmmtcn140000gn/T/pip-build-env-agsw393m/overlay/lib/python3.8/site-packages/numpy/core/include (ver 1.21.0)
install path: python/cv2/python-3
Python (for build): /opt/homebrew/Caskroom/miniconda/base/envs/local_paddle_develop/bin/python
Java:
ant: NO
JNI: /Users/adamgao/.sdkman/candidates/java/current/include /Users/adamgao/.sdkman/candidates/java/current/include/darwin /Users/adamgao/.sdkman/candidates/java/current/include
Java wrappers: NO
Java tests: NO
Install to: /private/var/folders/5k/3y05d4h11p14mnf2fmmtcn140000gn/T/pip-req-build-3qs550ci/_skbuild/macosx-12.0-arm64-3.8/cmake-install
-----------------------------------------------------------------
```
解决方法,重装opencv,参考[](https://zhuanlan.zhihu.com/p/472115312)
```
# 编译x264解码库
```
```
# 编译ffmpeg
$ ./configure --enable-shared --enable-gpl --enable-libx264 --disable-avfilter --prefix=/usr/local
```
```
# 编译opencv
$ cmake -D CMAKE_BUILD_TYPE=Release -D WITH_VTK=OFF -D BUILD_opencv_stereo=OFF -D BUILD_opencv_viz=OFF -D BUILD_opencv_dnn=OFF -D BUILD_opencv_python2=OFF -D BUILD_opencv_test_imgproc=OFF -D BUILD_opencv_gapi=OFF -D PYTHON_EXECUTABLE=/opt/homebrew/Caskroom/miniconda/base/envs/local_paddle_develop/bin/python3 -D BUILD_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -D CMAKE_INSTALL_PREFIX=/usr/local ..
```
@@ -0,0 +1,25 @@
---
number headings: first-level 3, max 6, 1.1
---
### 1 产品介绍
#### 1.1 基本情况
时间:2022年07月20日
地点:英德市教育局
人员:高宇、廖帆、陈思宇
#### 1.2 过程
1. 产品介绍
2. 关注费用问题
1. 服务器资源
2. 大屏设备
#### 1.3 对接人员安排
1. 罗股:英德教育局工作对接人,负责网络、设备、服务器等资源
2. 高宇:创医元,整体工作安排
3. 廖帆、陈思宇:创医元,后续需求与实施
### 2 当前工作项
#### 2.1 上线工作计划(创医元)
#### 2.2 服务器资源预算(创医元)
#### 2.3 现场大屏预算(创医元)
#### 2.4 列出数据采集清单(创医元)
@@ -0,0 +1,60 @@
---
number headings: first-level 3, max 6, 1.1
---
### 1 功能清单
| 序号 | 模块 | 功能点 | 包含 | 备注 |
| ---- | ------------ | -------------- | ---- |:---------------------------- |
| 1 | 信息管理模块 | 人员信息管理 | 是 | |
| ^^ | ^^ | 角色权限管理 | 是 | |
| 2 | 监控中心 | 实时监控 | 是 | |
| ^^ | ^^ | 智慧监控服务 | 是 | |
| ^^ | ^^ | 历史回放 | 待定 | 需要视频源供应方提供存储支持 |
| 3 | 数据大屏 | 投保数据屏 | 是 | |
| ^^ | ^^ | 安全隐患数据屏 | 是 | |
| ^^ | ^^ | 纠纷案件数据屏 | 是 | |
| ^^ | ^^ | 监控中心数据屏 | 是 | |
### 2 实施工作节点
![[2022-07-25 实施工作计划.excalidraw|1024|left]]
### 3 当前工作
#### 3.1 资源需求
##### 3.1.1 服务器资源预算
| 序号 | 名称 | 数量 | CPU<br/>核心数 | 硬盘<br/>GB | 内存<br/>GB | 网络(内) | 网络(外) | 备注 |
| ---- | ---- |:----:|:--------------:|:-----------:|:-----------:|:--------:|:--------:|:-------------------------------------------------------- |
| 1 | MN01 | 1 | 8 | 500 | 16 | 内网 | 出 | 集群控制节点<br/>NACOS服务管理集群<br/>Minio文件存储集群 |
| 2 | MN02 | 1 | 8 | 500 | 16 | 内网 | 出 | 集群控制节点<br/>NACOS服务管理集群<br/>Minio文件存储集群 |
| 3 | MN03 | 1 | 8 | 500 | 16 | 内网 | 出 | 集群控制节点<br/>NACOS服务管理集群<br/>Minio文件存储集群 |
| 4 | WN01 | 1 | 10 | 500 | 32 | 内网 | 出/入 | 高可用网关<br/>教育网格应用服务 |
| 5 | WN02 | 1 | 10 | 500 | 32 | 内网 | 出/入 | 高可用网关<br/>教育网格应用服务 |
| 6 | DN01 | 1 | 8 | 500 | 16 | 内网 | 出 | 持久化数据结点(主)<br/>缓存结点<br/>集群共享存储节点 |
| 7 | DN02 | 1 | 8 | 500 | 16 | 内网 | 出 | 持久化数据结点(备)<br/>缓存结点 |
##### 3.1.2 现场大屏预算
| 序号 | 名称 | 数量 | 备注 |
|:----:|:------ |:---- |:-------------------------- |
| 1 | 电脑 | 1 | 根据外接显示器数,增加显卡 |
| 2 | 显示器 | 14 | 按需 |
#### 3.2 信息收集
##### 3.2.1 各级别教育机构信息采集
* 采集内容与模板
| 机构编码 | 机构名称 | 教职工总数 | 级别 | 年级 | 各年级班级数 | 各年级学生数 |
| -------------- | -------- | ---------- | ---- | ---- | ------------ | ------------ |
| xxxxxxxxxxxxxx | XXX小学 | 108 | 小学 | 1 | 10 | 401 |
| ^^ | ^^ | ^^ | ^^ | 2 | 10 | 404 |
| ^^ | ^^ | ^^ | ^^ | 3 | 10 | 434 |
| ^^ | ^^ | ^^ | ^^ | 4 | 11 | 450 |
| ^^ | ^^ | ^^ | ^^ | 5 | 10 | 402 |
| ^^ | ^^ | ^^ | ^^ | 6 | 10 | 398 |
##### 3.2.2 监控设备信息
* 采集内容与模板
| 所属教育机构 | 所属教育机构编码 | 监控视频源格式 | 网络环境 | 视频源网络地址 | 认证信息 |
| ------------ | ---------------- | -------------- | --------- | ------------------------ | -------- |
| XXX小学 | xxxxxxxxxxxxxx | RTMP/RTSP/其他 | 内网/外网 | rtmp://xxx.x.x.x/xxx/xxx | 是/否 |
@@ -0,0 +1,60 @@
---
number headings: first-level 3, max 6, 1.1
---
### 1 功能清单
| 序号 | 模块 | 功能点 | 包含 | 备注 |
| ---- | ------------ | -------------- | ---- |:---------------------------- |
| 1 | 信息管理模块 | 人员信息管理 | 是 | |
| ^^ | ^^ | 角色权限管理 | 是 | |
| 2 | 监控中心 | 实时监控 | 是 | |
| ^^ | ^^ | 智慧监控服务 | 是 | |
| ^^ | ^^ | 历史回放 | 待定 | 需要视频源供应方提供存储支持 |
| 3 | 数据大屏 | 投保数据屏 | 是 | |
| ^^ | ^^ | 安全隐患数据屏 | 是 | |
| ^^ | ^^ | 纠纷案件数据屏 | 是 | |
| ^^ | ^^ | 监控中心数据屏 | 是 | |
### 2 实施工作节点
![[2022-07-25 实施工作计划.excalidraw|1024|left]]
### 3 当前工作
#### 3.1 资源需求
##### 3.1.1 服务器资源预算
| 序号 | 名称 | 数量 | CPU<br/>核心数 | 硬盘<br/>GB | 内存<br/>GB | 网络(内) | 网络(外) | 备注 |
| ---- | ---- |:----:|:--------------:|:-----------:|:-----------:|:--------:|:--------:|:-------------------------------------------------------- |
| 1 | MN01 | 1 | 8 | 500 | 16 | 内网 | 出 | 集群控制节点<br/>NACOS服务管理集群<br/>Minio文件存储集群 |
| 2 | MN02 | 1 | 8 | 500 | 16 | 内网 | 出 | 集群控制节点<br/>NACOS服务管理集群<br/>Minio文件存储集群 |
| 3 | MN03 | 1 | 8 | 500 | 16 | 内网 | 出 | 集群控制节点<br/>NACOS服务管理集群<br/>Minio文件存储集群 |
| 4 | WN01 | 1 | 10 | 500 | 32 | 内网 | 出/入 | 高可用网关<br/>教育网格应用服务 |
| 5 | WN02 | 1 | 10 | 500 | 32 | 内网 | 出/入 | 高可用网关<br/>教育网格应用服务 |
| 6 | DN01 | 1 | 8 | 500 | 16 | 内网 | 出 | 持久化数据结点(主)<br/>缓存结点<br/>集群共享存储节点 |
| 7 | DN02 | 1 | 8 | 500 | 16 | 内网 | 出 | 持久化数据结点(备)<br/>缓存结点 |
##### 3.1.2 现场大屏预算
| 序号 | 名称 | 数量 | 备注 |
|:----:|:------ |:---- |:-------------------------- |
| 1 | 电脑 | 1 | 根据外接显示器数,增加显卡 |
| 2 | 显示器 | 14 | 按需 |
#### 3.2 信息收集
##### 3.2.1 各级别教育机构信息采集
* 采集内容与模板
| 机构编码 | 机构名称 | 教职工总数 | 级别 | 年级 | 各年级班级数 | 各年级学生数 |
| -------------- | -------- | ---------- | ---- | ---- | ------------ | ------------ |
| xxxxxxxxxxxxxx | XXX小学 | 108 | 小学 | 1 | 10 | 401 |
| ^^ | ^^ | ^^ | ^^ | 2 | 10 | 404 |
| ^^ | ^^ | ^^ | ^^ | 3 | 10 | 434 |
| ^^ | ^^ | ^^ | ^^ | 4 | 11 | 450 |
| ^^ | ^^ | ^^ | ^^ | 5 | 10 | 402 |
| ^^ | ^^ | ^^ | ^^ | 6 | 10 | 398 |
##### 3.2.2 监控设备信息
* 采集内容与模板
| 所属教育机构 | 所属教育机构编码 | 监控视频源格式 | 网络环境 | 视频源网络地址 | 认证信息 |
| ------------ | ---------------- | -------------- | --------- | ------------------------ | -------- |
| XXX小学 | xxxxxxxxxxxxxx | RTMP/RTSP/其他 | 内网/外网 | rtmp://xxx.x.x.x/xxx/xxx | 是/否 |
@@ -0,0 +1,72 @@
---
number headings: first-level 3, max 6, 1.1.
---
```toc
```
### 1. 七月份工作回顾
1. 综合服务平台已完成应用整合与集成能力(完成)
2. 教育网格(完成)
1. 产品开发
1. 教育网格平台人员管理逻辑,已接入综合服务平台
2. 数据大屏完成两个,剩余两个
2. 实施
1. 完成英德、乐昌的产品宣讲
2. 基于乐昌的需求,初步定义一期计划,并完成设计
3. AI分析服务完成基础AI分析模块的建设,正在开发预警模块
### 2. 八月份工作安排
#### 2.1. 八月份工作主题
1. 产品宣传
1. 英德预览环境
2. 乐昌预览环境
2. 教育网格
1. 监控中心:
1. 教育网格监控中心开发
2. 完成预警逻辑接入
2. 任务跟踪模块
3. 完成AI服务预警逻辑
4. 隐患排查数据仓库建立
#### 2.2. 八月份目标
> [!INFO] 目标 1 :英德、乐昌预览环境部署
> 人员:孔文斌、徐钊
> 细化: [[#预览环境部署细化]]
> [!INFO] 目标 2 :教育网格监控中心开发
> 人员:陈孟泽、陈启慧
> 状态: 前后端接口对接、联调
> [!INFO] 目标 3:教育网格任务跟踪模块
> 人员:陈思宇、高宇、孔文斌
> 细化: [[#教育网格任务跟踪细化]]
> [!INFO] 目标四:AI视频监控预警
> 人员:黄国超、高宇
> 状态: 完善预警逻辑
### 3. 八月份目标细化
#### 3.1. 预览环境部署细化
> [!INFO] 目标 1 :英德、乐昌预览环境部署
> 人员:徐钊
> [!INFO] 目标 2 :预览环境部署
> 人员:孔文斌
> 子项:
> 1. 环境部署
> 2. 大屏接入
#### 3.2. 教育网格任务跟踪细化
> [!INFO] 目标 1 :需求分析
> 人员:高宇、思宇
> ![[教育网格工作跟踪设计思路.excalidraw|100%]]
> [!INFO] 目标 2 :开发工作预期
> 人员:孔文斌、陈孟泽
> 说明:
> 1. 教育网格后端
> 1. 人员组织结构
> 1. 任务管理模块
> 2. 任务小程序:小程序可以挂靠到教育局公众号,教育局企业微信,学校企业微信等等。
@@ -0,0 +1,9 @@
创医元在广东省各市建立了线下服务团队,从事调节服务10年
1. 依拖案件管理系统,提供了包括医疗,住建,校园的纠纷调节服务
2. 依拖安全隐患巡查系统,对各教育机构做专业的安全隐患分析
3. 我们正在积极的将医疗服务整合进创医元的服务体系
大数据时代,数据分析技术给了我们一种新的可能,于是为了将这10年的沉淀下来的数据转化为经验,我们启动了
- 创医元数据中台项目:
1. 创医元大数据中心
2. AI分析服务
@@ -0,0 +1,16 @@
| 系统名 | 开源/活跃 | 开发技术 | 最新版 | 描述 | 相关网址 | 部署方式 | 是否有开放的API接口 | 中文支持 | 插件支持 |
| ------ | ----- | ---- | ------ | -------------------------------- | --------------------------------------------------------------------------- | ------------- | ----------- | -------- | ----- |
| Moodle | 是/是 | PHP | | 都很好,只是PHP的技术栈不符合公司情况 | | docker | 有 | 是 | 是 |
| SAKAI | 是/是 | JAVA | | 项目,研究讨论,<br/>通过Demo可见,并不是课程的组织结构 | [开放代码](https://github.com/sakaiproject/sakai) | Tomcat/Docker | 官网说有,不过没找到 | 是 | 是 |
| ^^ | ^^ | ^^ | ^^ | ^^ | [官网-英语](https://www.sakailms.org) | ^^ | ^^ | ^^ | ^^ |
| ^^ | ^^ | ^^ | ^^ | ^^ | [DEMO演示](http://nightly2.sakaiproject.org) | ^^ | ^^ | ^^ | ^^ |
| LAMS | 是/是 | JAVA | 4.6 | 是否有API开放调用机制<br/>是否支持插件扩展体系 | [开放代码](https://github.com/lamsfoundation/lams) | | 无相关描述 | 是 | 无相关描述 |
| ^^ | ^^ | ^^ | ^^ | ^^ | [官网-英语](https://www.lamsinternational.com) | ^^ | ^^ | ^^ | ^^ |
| ^^ | ^^ | ^^ | ^^ | ^^ | [课程资源](https://lamscommunity.org/lamscentral/) | ^^ | ^^ | ^^ | ^^ |
| ^^ | ^^ | ^^ | ^^ | ^^ | [安装指引](https://edutechwiki.unige.ch/en/LAMS_installation_and_configuration) | ^^ | ^^ | ^^ | ^^ |
| ^^ | ^^ | ^^ | ^^ | ^^ | [DEMO演示](https://demo.lamsfoundation.org) | ^^ | ^^ | ^^ | ^^ |
| OLAT | 是/是 | JAVA | 17.0.1 | 综合对比,技术栈符合公司情况<br/>有接口可二开,能做系统对接 | [开放代码](https://github.com/OpenOLAT/OpenOLAT) | Tomcat | 有 | 可以做本地化配置 | 无插件 |
| ^^ | ^^ | ^^ | ^^ | ^^ | [安装指引](https://docs.openolat.org/manual_admin/installation/installGuide/) | ^^ | ^^ | ^^ | ^^ |
| ^^ | ^^ | ^^ | ^^ | ^^ | [官网-德语](https://www.openolat.org/) | ^^ | ^^ | ^^ | ^^ |
@@ -0,0 +1,41 @@
# 教育网格管理平台1.0上线
内容
* 教育局-学校网格管理关系(配置与查看)
* 教育局-人员结构、角色权限管理
* 教育局监控中心
* 安全巡检功能,风险整改通知
* 各园区数据统计
# 1.0版本产品研发与测试
人员:孔文斌、陈启慧、陈孟泽
# 网格化校园信息系统改造方案
负责人:高宇、孔文斌、刘国庆
内容:
1. 网格管理对接(管理关系,kafka消息中心)
2. 账户体系
3. 上级通知中心
4. 确定部署方案
# 网格化校园信息系统2.0功能范围
描述:协议外,教育网格管理平台的版本升级计划。
负责人:陈思雨、高宇
# 数据中心(教育网格)建模与转换开发
人员:黄国超、徐钊
# 数据中心(教育网格)原始数据采集分析
人员:黄国超、徐钊
# 网格化校园信息系统1.0功能范围
描述:依据协议,确定一期版本功能范围
负责人:高宇、陈思宇
# 1.0版本产品原型与设计
负责人:陈思宇
参与:陈思宇、范雨欣、陈孟泽
# 确定1.0版本功能边界
负责人:陈思宇
参与:高宇、孔文斌
@@ -0,0 +1,51 @@
# 综合服务平台1.0上线
内容
* 租户子账户管理
* 外部应用授权管理集成
* 门户网站
截止时间
5月31日
# 租户外部系统集成方案
人员:高宇、孔文斌
内容
* 租户机构外部系统集成方案
截止时间
5月25日
# BladeX线上环境部署
人员:孔文斌、高宇
内容:
* 项目chart&docker打包
* 基于猪齿鱼,部署测试、线上集群环境
截止时间
5月28日
# BladeX学习与测试环境部署
人员:孔文斌
内容:
* 功能模块分析
* 本地测试环境
截止时间
5月17日
# 门户网站发布
# 门户网站内容结构
人员:陈思宇
内容:
* 网站内容组织结构
* 产品页/主题页等内容提纲
# 门户网站内容
人员:范雨欣
截止时间
5月30日
# 门户网站技术框架
人员:陈孟泽
截止时间
5月30日
@@ -0,0 +1,9 @@
# 目标-综合服务平台2.0上线
内容
* 个人中心
* 松散服务整合体系
* 学平险服务包
截止时间
6月30日
@@ -0,0 +1,77 @@
---
number headings: first-level 3, max 6, 1.1.
banner: "![[joanna-kosinska-LAaSoL0LrYs-unsplash.jpg]]"
banner_y: 0.628
---
<center><h1>10月份工作计划</h1></center>
```toc
title: "### 目录"
```
### 1. 九月份工作回顾
#### 1.1. 概括
产品研发进度基本符合预期;
实施工作推进进程缓慢,从反馈信息看,需要平台做一次改造工作。
#### 1.2. 明细
> [!WARNING]+ 乐昌教育安全网格实施
> 1. 乐昌的数据经过两次联系,还没有收集上来。
> 1. 教育局有不少对接工作,要放在20大以后才能推进
> 2. 政务云环境对于系统使用的技术,有国产化的需求,文斌正在对改造范围进行评估
> [!SUCCESS]+ 教育网格任务跟踪已完成
> 教育局任务发布,整体进度数字化,明细环节信息的跟踪
<div style='page-break-after: always;'></div>
> [!NOTE]+ 智慧社区改造
> 1. 如期:9月最后一周启动了,智慧社区平台,接入综合服务平台账户体系的改造评估。
> 2. 逾期:停车收费管理模块的产品原型未完成最终确定
> [!SUCCESS]+ 教育网格应急影响体系
> 1. 完成:指挥体系的功能架构
> 2. 完成:指挥中心&节点分管控制&现场报警三个环节的功能分析与原型设计
> [!SUCCESS]+ 教育网格安全机制
> 1. 通过安全网关,为监控视频流的访问增加了访问鉴权机制
> 2. 将创医元的BI大屏服务,纳入到综合服务平台的鉴权网关管理下
### 2. 十月份工作计划
#### 2.1. 概括
1. 教育网格乐昌项目的实施与改造
2. 教育网格&智慧校园 产品体系融合设计
3. 完成综合服务平台个人用户账户体系方案确定
4. 教育网格应急指挥中心的研发
5. 增加与完善AI识别模型与预警功能
#### 2.2. 明细
> [!hint] 教育网格乐昌项目的实施与改造
> 1. 国产化改造工作整体评估(范围/工期)(文斌)
> 2. 启动改造工作(文斌、启慧)
> [!hint] 教育网格&智慧校园 产品体系融合设计
> 依照 [[彭总团队入场工作计划]]
> 1. 安排节后彭总团队成员进驻 (高宇)
> 2. 明确网格体系整体思路 (高宇、刘国庆)
> 3. 完成进入正式开发前的产品设计工作
> [!hint] 完成综合服务平台个人用户账户体系方案确定
> 人员:高宇、孔文斌
> [!hint] 教育网格应急指挥中心的研发
> 人员:孔文斌,陈孟泽,陈启慧
> [!hint] 增加与完善AI识别模型与预警功能
> 人员:黄国超,陈启慧
#### 2.2. 工作情况
* OA实施工作
* 计划今年完成全部分支机构的实施
* 教育网格:
* 国产化改造工作已明确需要进行
* 乐昌教育机构信息收集正常进行,但因20大原因,教育局配合工作缓慢
* 指挥中心在技术设计与开发中
* AI预警功能完善中
@@ -0,0 +1,107 @@
## 2022年创医元系统演示
### 三大业务体系
1. 网格化社区治理体系
2. 网格化教育管理体系
3. 创医元核心服务体系
### 业务体系相关系统客户端
#### 网格化社区治理体系
1. 智慧社区信息系统: [http://admin.gdcyy.gdytw.net](http://admin.gdcyy.gdytw.net/resident/list/4027855601870790656)
1. 物业工作台APPhttps://www.pgyer.com/scop
1. 业主端微信小程序
#### 网格化教育管理体系
1. 智慧校园信息系统:[https://edu.admin.gdcyy.com.cn](http://admin.gdcyy.gdytw.net/resident/list/4027855601870790656)
2. 教育网格微信小程序
#### 创医元核心服务体系
1. 创医元综合服务平台:[https://admin.gdcyy.com.cn](http://admin.gdcyy.gdytw.net/resident/list/4027855601870790656)
2. 创医元数据大屏系统:[https://datav.gdytw.net](https://datav.gdytw.net/login)
3. 创医元综合服务平台主页:[https://spol.gdcyy.com.cn](https://spol.gdcyy.com.cn/)
### 三大业务体系相关系统功能
[创医元产品体系.xmind](创医元产品体系.xmind)
### 三大业务体系亮点功能演示清单
[创医元产品演示计划.pdf](创医元产品演示计划.pdf)
### 系统演示待完善
1. 更换所有系统 Logo*
2. 监控视频准备
3. 教育网格应急响应中心研发与测试
### 综合服务平台数据准备与测试
一、角色准备
1. 系统管理员
2. 教育局管理员
3. 医调委管理员
二、数据准备
1. 基础数据准备(角色菜单配置)
2. 首页卡片配置(针对不同角色分配不同卡片[管理员、教育局、医调委])
3. 报表准备
三、重点流程测试
1. 账户统一登录测试
2. 系统间跳转与登录测试
3. 报表相关业务功能测试
### 智慧社区系统数据准备与测试
#### 1. 小程序支付与财报统计
已实名的业主和对应的房屋,房屋费用
记账规则-收费明细-新建动态费用,选择需要收费的房屋,然后本月账期会出现这笔费用,在对应业主小程序查询并支付费用,回到账期页面可查询到已支付金额
#### 2. 业委会功能演示
为老总们创建业主信息并完成实名,
绑定公众号接收推送消息
1.查看业委会制定依据和流程.
2.开始组建工作,填写标题,公告时间,并组建出投票的内容.
3.业主们会收到问卷调查投票,进行投票后,上传业委会申请资料和居委会批复材料.
4.发起业委会公示,通过后组建出筹备组人员选举投票的内容
5.业主进行投票,同上一样,会进行筹备组人员公示,之后填入筹备组团队信息新建
6.最后业委会人员选举,投票后进行公示
#### 3. 任务与打卡记录
准备工作团队,小组,人员
打卡业务类型和打卡点
1.新建业务类型(比如绿化,安保)
2.新建打卡点(比如 花园)
3.新建工作计划 填写打卡规则设置打卡人后生成任务,然后打卡任务列表点击详情点击生成打卡点立即在app端生成任务
4.有打卡任务后使用工作端APP拍照打卡
5.回到页面查看打卡记录和照片
### 网格化教育安全管理平台数据准备与测试
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 460 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

@@ -0,0 +1,51 @@
---
number headings: first-level 3, max 4, 1.1.
banner: "![[leone-venter-VieM9BdZKFo-unsplash.jpg]]"
banner_y: 0.576
---
### 1. 创医元产品体系介绍
![[Pasted image 20221114163100.png]]
1. 体系一:[[网格化社区治理体系]]
* [[网格化社区治理体系#网格化社区综合治理平台|网格化社区综合治理平台]]
* [[网格化社区治理体系#智慧社区信息系统|智慧社区信息系统]]
![[Pasted image 20221025112235.png|1200]]
1. 体系二:[[网格化教育管理体系]]
1. [[网格化教育管理体系#网格化社区治理体系|网格化社区治理体系]]
2. [[网格化教育管理体系#网格化教育管理体系|网格化教育管理体系]]
![[Pasted image 20221025102945.png|1200]]
1. 体系三:[[创医元核心服务体系]]
1. [[创医元核心服务体系#综合服务平台|综合服务平台]]
![[Pasted image 20221025092008.png|1000]]
1. [[创医元核心服务体系#创医元数据中心|创医元数据中心]]
![[Pasted image 20221025092033.png|1000]]
1. [[创医元核心服务体系#创医元AI分析&智能预警服务|创医元AI分析&智能预警服务]]
![[Pasted image 20221025092051.png|1000]]
<div style='page-break-after: always;'></div>
### 2. 产品演示功能大纲
#### 2.1. 智慧社区
![[智慧社区演示与讲解]]
#### 2.2. 网格化教育安全管理平台
![[网格化教育安全管理平台演示与讲解]]
##### 智慧校园系统情况调研
> 本周与石伏进行第二次协同
> 计划可以看到系统演示
> 并对应合同上的需求清单
#### 2.3. 综合服务平台
![[综合服务平台演示与讲解]]
### 3. 流程保证
#### 3.1. 待完善的项目清单
陈孟泽 - 基于上述功能演示方案,列出待完善的功能清单
#### 3.2. 流程保障测试 & 数据准备
徐钊 - 智慧社区流程
陈孟泽 - 综合服务平台(启慧,徐钊)
孔文斌 - 教育网格
@@ -0,0 +1,37 @@
状态: 功能已具备 正在准备数据与环境
```start-multi-column
ID: ID_1exr
Number of Columns: 2
Largest Column: standard
```
> [!TIPS] 功能演示说明
> 1. 综合的社区信息管理
> 1. 多种类型家庭成员管理(业主/家庭成员/租户)
> 2. 多种社区资产信息(区域/住宅/公寓/商铺)
> 2. 财务收费管理
> 1. 演示租户通过小程序支付物业费用
> 2. 管理系统查看财务月报表
> 3. 计划任务与工单服务
> 1. 演示任务清单/查看任务/打卡操作
> 2. 展示自动化的计划任务
> 3. 演示管理后台任务跟踪
> 4. 业委会成立流程
> 1. 投票创建与统计:可视化操作,收集业主意见,随时可查看情况。
> 2. 公告发布
> 3. 团队业务权限管理:动态灵活的权限管理
--- column-end ---
> [!SUCCESS] 场景模拟
> 1. 小程序支付与财报统计
> 2. 工作端APP任务查看与打卡记录
> 3. 业委会流程(重点演示环节)
=== end-multi-column
@@ -0,0 +1,32 @@
```start-multi-column
ID: ID_3zu7
Number of Columns: 2
Largest Column: standard
```
> [!TIPS] 功能演示说明
> 1. 广东调解(演示)
> 1. 报表与统计 PDCA闭环
> 2. 教育网格安全管理核心服务(介绍)
> 1. 体现业务整合
> 2. 统一登录,安全网格管理平台的界面跳转
> 3. 社区系统的服务团队账户体系(介绍)
> 1. 体现业务整合
> 4. 计划整合的其他服务(介绍)
> 1. 心理测评
> 2. 智慧校园信息系统
--- column-end ---
> [!SUCCESS] 场景模拟
> 广东调解业务数据统计分析,通过该部分功能演示,体现
> 1. 综合服务平台面向B端用户的业务整合能力
> 2. 数据中心的数据分析能力
=== end-multi-column
@@ -0,0 +1,49 @@
状态:应急响应体系在开发中,其他功能已具备,需要准备数据与环境
```start-multi-column
ID: ID_h7dv
Number of Columns: 2
Largest Column: standard
```
> [!TIPS] 功能演示说明
> 1. 教育局安全管理
> 1. BI大屏(数据中心应用)
> 1. 创医元数据中心已完成对纠纷案件、投保平台、江泰安全隐患平台、教育网格平台的数据对接。
> 2. 向公司内部业务提供数据分析支持。
> 2. 视频AI预警(AI分析服务应用)
> 1. 预警警界线设置
> 2. 超限报警画面截图
> 3. 网格化任务跟踪(网格化管理体系)
> 1. 分角色演示
> 4. 应急响应体系(网格化多点协同机制)
> 1. 事件即时实时报警显示(重点演示)
> 2. 分角色,多点协同,演示应急响应过程(功能尚未就绪)
> 1. 预警事件报警
> 2. 事故上报
> 3. 事件频道记录事件信息
> 4. 调取实时视频
> 5. 事后审查
> 5. 校园安全隐患巡查管理(巡查员工作小程序)
> 2. 智慧校园
> 1. 校园安防监控管理端
> 2. 校内隐患自查(网格节点工作小程序)
> 3. 校内办公协同
--- column-end ---
> [!SUCCESS] 场景模拟
> 1. BI大屏
> 2. 现场启用视频分析预警,接收预警消息
> 3. 分角色演示网格化任务跟踪(重点演示)
> 4. 事件即时实时报警显示
=== end-multi-column
@@ -0,0 +1,315 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
# Excalidraw Data
## Text Elements
安全标准 ^HHdk6GVO
依据标准制定
隐患排查项目表 ^hbnCyGD9
系统执行标准 ^mi4gHyiW
物业类型 ^diE8Nvah
各级院校 ^eAEao7Q8
公司楼宇 ^Xsxs6aTF
小区物业 ^PJvRJdT5
政策 ^ZTzHRLDD
政策 ^YVMmcBjA
政策 ^hcXEivSB
物业类型管理 ^nw8paHFU
安全标准管理 ^Cp4drQzQ
排查项目表 ^qSkINhBT
排查记录 ^PMV9oegN
统计&
汇总报告 ^FyH6OnZS
外部接口服务 ^9tZiOjkJ
外部系统对接管理 ^4yY9kWXE
排查工作安排 ^Vzv06vYz
排查人员管理 ^of2TJHzU
住建部门 ^vm6mtFDL
教育局 ^y30jhUBn
业商场地安全管理 ^qDrJDfWg
广营数据分析 & 报表服务 ^wnojSKZ6
教育网格 ^8UcBwIXO
广营租户 ^LSDJlHjy
综合服务平台 ^Ce0SmblQ
人员构成 ^B3Q1LrQK
安全巡查人员管理 ^S85Nv9hV
专家排查 ^EtJ3QoxJ
单位人员自查
1次/月 ^r0MC5j7G
巡查机构管理 ^i7UGRrN8
关联系统 -> 教育网格
机构/物业信息管理 ^7XjE2Wjw
记录/报告 ^HCH9SxQe
任务管理 ^Rtb2eeDz
%%
## Drawing
```compressed-json
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
```
%%
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 118 KiB

@@ -0,0 +1,431 @@
# 系统结构设计
![[Drawing 2022-10-26 09.41.53.excalidraw|left]]
# 隐患数据对接需求
三部分安全数据:
1. 安全隐患排查,需要江泰总部提供
1. 隐患排查记录
| 字段名 | 字段编码 | 父字段 | 数据类型 | 是否必须 |
| --- | --- | --- | --- | --- |
| 客户名称 | clientName | 无 | String | 是 |
| 客户编号 | clientCode | 无 | String | 是 |
| 学校类型 | schoolType | 无 | String | 是 |
| 省 | provinceCode | 无 | String | 是 |
| 市 | cityCode | 无 | String | 是 |
| 区 | regionCode | 无 | String | 是 |
| 食堂标记 | canteenIdc | 无 | StringTrue\|False\) | 否 |
| 校车标记 | schoolBusIdc | 无 | StringTrue\|False\) | 否 |
| 宿舍标记 | dormitoryIdc | 无 | StringTrue\|False\) | 否 |
| 保安数 | securityCount | 无 | String | 否 |
| 学生数 | studentCount | 无 | String | 否 |
| 教职工数 | staffCount | 无 | String | 否 |
| 任务创建时间 | checkCreateAt | 无 | String (yyyy-MM-dd hh:mm:ss) | 否 |
| 任务开始时间 | checkStartAt | 无 | String (yyyy-MM-dd hh:mm:ss) | 否 |
| 任务结束时间 | checkCloseAt | 无 | String (yyyy-MM-dd hh:mm:ss) | 否 |
| 现场勘查详情 | checkDetails | 无 | JsonArray | 是 |
| 隐患组 | groupName | checkDetails | String | 是 |
| 隐患组编码 | groupCode | checkDetails | String | 是 |
| 检查项目详情 | items | checkDetails | JsonArray | 是 |
| 项目名 | itemName | items | String | 是 |
| 检查结果 | itemResult | items | String | 是 |
| 隐患记录 | itemDetails | items | JsonArray | 否 |
| 地点 | position | itemDetails | String | 否 |
| 问题 | problem | itemDetails | String | 否 |
| 整改建议 | advice | itemDetails | String | 否 |
``` json
{
clientName: "东方红小学",
clientCode: "1t21084",
provinceCode: "",
cityCode: "",
regionCode: "",
checkDetails: [
{
groupName: "安全机制建设",
groupCode: "xxxxxxx",
items: [
{
itemName: "",
itemResult: "",
itemDetails: [
{
position: "",
problem: "",
advice: ""
},
{
position: "",
problem: "",
advice: ""
},
...
]
},
...
]
},
],
checkStartAt: "2022-05-12 18:23:40",
checkCreateAt: "2022-05-12 18:23:40",
checkCloseAt: "2022-05-12 18:23:40"
}
```
2. 安全巡查记录
1. 日常巡查记录(广东当前没启用该业务)
3. 政府大检查记录
1. 大检查记录(广东当前没启用该业务)
# 隐患排查数据定义
## 隐患点记录
| 隐患点 | 隐患类型 | 问题描述 | 管理建议 | 隐患照片 |
| ------ | -------- | -------- | -------- | -------- |
| 序号 | 类型字典 | 字符串 | 字符串 | 附件链接 |
## 隐患排查项目
### 1. 安全机制建设(8/8
1. 建立学校安全工作领导小组
2. 设立安全保卫机构(保卫处)
3. 定期召开领导小组专题会议
4. 层层签订安全责任书
5. 安全管理制度完善
6. 应急预案完善
7. 建立隐患排查和整改制度
8. 校责险和实责险
### 2. 安全教育与应急演练(10/10)
1. 落实安全教育课程
2. 开学初、放假前集中安全教育
3. 开展安全主题活动
4. 开展校园安全教育宣传
5. 聘请法制副校长,每学期至少一次法治教育
6. 定期开展应急疏散演练,有文字、影像资料
7. 有演练方案,演练前开展安全教育
8. 演练时安排教职工进行引导
9. 开展教职工集中培训
10. 家长安全告知到位
### 3. 校园周边安全(15/17
1. 校址不处于自然灾害危险地段
2. 周边危险水域安全措施到位
3. 周边无环境污染严重的企业或垃圾站、污水处理站等污染源
4. 周边无易燃易爆、剧毒、放射性、腐蚀性等危险
5. 周边无人流密集场所
6. 周边无公共娱乐场所、彩票专营和不文明商业
7. 校门口无摆设摊点、流动小吃车
8. 周边无影响学校安全的工程建设
9. 校内无高压输电线、燃气、输油管道主干道穿越
10. 周边无治安高危人员
11. 城市学校建立警务室或治安岗亭
12. 城市学校上、放学时段,有警力维持秩序
13. 上、放学时段,学校安排人员护导,安保员规范着装并持械上岗
14. 周边交通秩序良好
15. 门前道路有交通安全设施
16. 门口无黑车运营
17. 学生无不安全交通行为
### 4. 校园“三防”建设(15/16)
1. 校门口有防冲撞设施
2. 校园封闭管理,外来人员和车辆登记或验证
3. 学生离校管理严格
4. 门卫24小时值班
5. 防卫器械配备到位
6. 门卫室安装一键式报警装置,并与公安机关联网。
7. 专职保安员数量充足,持证上岗
8. 安保员年龄、身体素质符合要求
9. 落实校园安保日常巡逻
10. 围墙高度不低于2米,坚固可靠
11. 学校围墙周边不存在方便外人攀爬进入的设施
12. 学校围墙设置了入侵报警装置,并处于正常工作状态
13. 校园视频监控全覆盖,清晰显示,无黑屏现象,记录保存时间满足要求。
14. 校园视频监控系统接入教育、公安部门的监控平台。
15. 安防监控室有人值班,配置了紧急报警、广播等工具
16. 学校技防系统故障能确保24小时内恢复功能。
### 5. 校舍及设施安全(1/21
1. 校舍主体建筑结构安全
2. 校舍墙面、地面平整,地面防滑
3. 建筑外立面和附属设施无坠落风险
4. 阳台窗台、空调外机等外沿部位无摆放物品的情况
5. 玻璃门窗牢固,有安全提醒标识
6. 防盗窗预留了逃生出口
7. 临空窗台的高度不低于0.90m
8. 临空部位设防护栏杆,高度不低于1.10m。护栏牢固,安全
9. 室内楼梯扶手高度不低于0.90m,室外楼梯扶手高度不低于1.10m。扶手牢固
10. 楼梯宽度不小于1.20m。地面无裂缝、踏步无损坏;防滑砖、防滑条无脱落
11. 楼梯实行上下分行,且标识标线清晰
12. 楼梯踏步级数、坡度、宽度、高度满足要求
13. 教学楼走道宽度满足要求
14. 楼梯、通道照明良好;通道、楼梯、出入口等处设置了安全标识
15. 课桌椅完好,无破损、裂缝、松动、尖角等危险
16. 吊扇、灯具、投影仪等设施安装牢固
17. 有防止学生到达屋顶的措施
18. 屋顶的展板、标志等设施安装牢固
19. 屋顶排水口无堵塞,无地面开裂、长期漏雨等情况
20. 屋顶防雷设施完好
21. 建筑防雷设施有年检记录
### 6. 宿舍管理(1/11
1. 有宿舍管理员
2. 宿舍封闭式管理
3. 值班室配备应急物资是
4. 现场合规信息
5. 不存在宿管员夜间睡觉,锁闭大门的情况
6. 落实学生宿舍夜间巡查制度
7. 落实宿舍夜间查寝
8. 建立住宿学生及其家长档案、有班主任联系方式
9. 不存在学生私拉乱接电线,私用大功率电器情况
10. 不存在吸烟,使用蜡烛、打火机、火柴、蚊香等情况
11. 经常性开展管制刀具等危险物品查禁工作
12. 双层床上铺护栏高度、长度符合标准,上下床床梯牢固。
### 7. 食堂安全管理(0/19
1. 在食堂的显著位置悬挂或者摆放《食品经营许可证》
2. 建立食堂管理工作领导小组,配备专(兼)职食品安全管理人员
3. 签订食品安全责任书
4. 应急预案完善
5. 建立索证索票、进货查验和台账记录制度
6. 从业人员持健康证上岗,有晨检记录
7. 从业人员定期培训,培训内容齐全
8. 建立安全检查制度
9. 建立集中用餐陪餐制度
10. 实施“明厨亮灶”工程
11. 食品留样规范
12. 环境整洁卫生,地沟盖板、挡鼠板、灭蝇灯、消毒灯等设施齐全
13. 工具、容器、冰箱分类使用,生熟标志明显
14. 从业人员穿戴正确,无染指甲、戴首饰等现象
15. 食品储存管理规范
16. 定期清理油烟机和烟道,并留存记录
17. 操作间配备灭火毯
18. 安装可燃气体泄漏探测器,并与燃气切断阀联动
19. 气瓶安全管理规范
### 8. 集体配餐安全(0/6
1. 配送单位资质满足要求
2. 签订食品安全责任书
3. 建立食品查验制度
4. 配送食品标识齐全
5. 分餐人员持证上岗,穿戴规范
6. 食品留样规范
7. 实验安全及危化品管理0/11编辑
8. 化学实验室管理制度、应急预案上墙
9. 实验前,开展实验安全教育
10. 不存在实验指导教师脱岗情况
11. 实验室配备急救冲洗设备
12. 建立废弃化学品处置制度
13. 建立危险化学品领用登记制度
14. 危化品室双人双锁,采用防盗门窗
15. 危化品室设有视频监控、防入侵报警装置,配备消防沙、灭火器等消防器材
16. 危化品室安装有排风扇,开关设在门外
17. 危化品专柜储存,无药品超量存储的情况
18. 药品标签清楚、规范
### 9. 体育活动安全(1/8
1. 配备专职或兼职体育场馆及器材管理人员
2. 体育器材与场地安全台帐记录完整
3. 不存在在校外进行日常体育活动的情况
4. 活动场地面积满足上课需要;场地地面平整,无杂物略
5. 体育器材无尖角、锈蚀、松动;器材室器械堆放有序
6. 体育课前组织热身准备,并开展体育活动安全教育
7. 体育课上,学生按教师指导开展活动
8. 体育教师能够关注特异体质学生
### 10. 学生课堂课间管理(0/6)
1. 课堂上无教师缺岗、迟到、早退情况
2. 建立日常考勤、请销假、缺课管理制度
3. 晚自习,学校有负责人和教师值班
4. 建立课间教师值班、巡查制度
5. 课间学生上下楼梯秩序良好
6. 在人员拥挤时段,在通道、楼梯、出入口等处安排专人疏导
### 11. 集体活动安全(0/11
1. 落实校外集体活动审批制度
2. 有校外集体活动方案和应急预案
3. 活动前,开展专题安全教育
4. 校外集体活动前,家校沟通工作到位
5. 开展校外集体活动时,明确安全责任人,配备带队老师
6. 开展校外集体活动时,与旅行社、车辆出租单位签订安全协议
7. 开展校外集体活动时,租用车辆具有运营资质
8. 开展校内集体活动时,制定应急处置预案
9. 开展校内集体活动时,参加活动人数在场所容纳范围之内
10. 校内场馆集体活动时,所有安全出口畅通
11. 开展校内集体活动时,工作人员配备到位,学生入场退场秩序良好
### 12. 实习实训管理(0/25
1. 实习管理制度完善
2. 开展实习安全教育
3. 实习前,对实习单位实地考察评估
4. 制订实习计划
5. 签订实习协议
6. 未成年人参加实习,应取得家长同意书
7. 建立实习指导教师制度
8. 学校与学生经常性进行沟通联系
9. 不安排一年级在校学生顶岗实习
10. 不安排未满16周岁的学生跟岗实习、顶岗实习
11. 不安排学生到酒吧、洗浴中心等营业性娱乐场所实习
12. 不通过中介安排实习
13. 外地实习安排统一住宿,在外住宿的由家长签字同意
14. 建立实习学生住宿制度和请销假制度
15. 校内实训安全管理制度完善
16. 建立设备维护制度
17. 建立实训室、仓库安全检查制度
18. 开展学生实训安全教育
19. 实训场地用电管理规范
20. 实训场地防高处坠落措施到位
21. 按要求配备安全防护用具
22. 压力气瓶做颜色区分,有防震圈、固定保护措施
23. 储存、使用可燃气体的场所配置防泄漏报警装置
24. 焊接切割作业现场配置灭火器,周边无可燃物
25. 烹饪实习室刀上锁管理
### 13. 校园环境安全(0/14
1. 校内工地有围挡和安全警示
2. 施工人员、施工车辆备案
3. 工程车辆进出和行驶管理良好
4. 施工现场用电规范、安全措施到位
5. 校内机动车行驶与停放区避开学生活动区域
6. 校内无车辆乱停乱放现象
7. 旗杆固定良好,无严重锈蚀
8. 花架牢固,无学生晃动、攀爬
9. 板报栏牢固,无玻璃破碎、刺头、尖锐
10. 长廊无开裂、脱落、松动
11. 井盖无缺失、损坏、不牢固
12. 定期修剪树木枯枝
13. 校内照明100%覆盖
14. 警示标志或者防护设施到位
### 14. 消防管理(0/17
1. 建筑消防备案或通过验收
2. 建立防火检查制度
3. 建立防火巡查制度
4. 消防栓部件配备齐全;水带双卷,无老化、破损,无外用现象,无遮挡现象。
5. 存在冲撞风险的室外消火栓设置了防护栏
6. 灭火器配备到位、在有效期内、压力正常,放置距离地面1.5米以下
7. 不存在烟感报警器防尘罩未摘除现象
8. 宿舍设有火灾报警装置
9. 高度大于27m的建筑设置自动灭火系统。
10. 疏散用门向疏散方向开启,常闭式防火门保持关闭
11. 防火卷帘门下方无物品堆放
12. 疏散通道:安全疏散出口不少于2个;疏散通道保持畅通,逃生门未上锁
13. 疏散指示标识:疏散指示标志间距不大于20m,安装位置离地面1m以下。
14. 楼梯、走廊设置应急照明灯,可正常使用
15. 消防控制室:值班人员持证上岗,每班至少2人,24小时值班制,值班人员熟悉应急响应流程。
16. 消防水泵房:环境良好;设备无明显锈蚀;定期启泵测试;控制柜处于自动状态;消防管道压力正常。
17. 校内消防车通道畅通
### 15. 校车安全(0/16
1. 与校车服务提供者签订安全责任书
2. 有校车安全事故预案,并定期演练
3. 开展学生安全教育,校车服务提供者、校车驾驶人、随车照管人员安全培训
4. 车前、后窗醒目处放置校车标牌
5. 逃生锤、灭火器、急救箱等配置到位
6. 安装有卫星定位装置
7. 校车每半年检验,有安全维护档案
8. 校车每日安全检查
9. 校车驾驶人持证上岗
10. 校车行驶行驶线路安全,或设置安全设施
11. 道路停车操作规范
12. 校车停靠点固定,有标识标牌
13. 建立学生乘车交接手续,指派人员随校车
14. 校车不超员、超速运行
15. 不存在载有学生时加油,或驾驶员在引擎熄灭前离开驾驶位的情况
16. 副驾驶座不安排学生乘坐。运行过程中,无无关人员乘坐
### 16. 特种设备管理(0/9
1. 锅炉房远离学生集中区域,有警示标志
2. 锅炉工持证上岗
3. 锅炉有特种设备检测合格证
4. 锅炉运行时,锅炉值班人员在岗
5. 燃气锅炉房有燃气泄漏探测器和排风装置
6. 燃气锅炉房采用防爆型电器
7. 电梯管理人员持证上岗
8. 电梯定期进行年检,日常运行稳定
9. 电梯的报警装置能正常使用
### 17. 疫情防控与健康管理(0/21)
1. 传染病防控管理制度和应急预案完善
2. 明确传染病疫情报告人
3. 按规定,设置医务(卫生)室
4. 配备专兼职医务(保健)人员,医务(保健)人员取得执业证书或经培训考核合格
5. 医务(卫生)室购置必需的急救器材和药品,药品在保质期内
6. 配备消毒剂、体温计、医用口罩、手套等防疫物资,物资存放管理情况良好,在使用期限内
7. 每年对学生、教职员工开展传染病防控相关健康教育
8. 传染病(结核病)列入新生入学和教职员工常规体检的必查项目
9. 每年定期组织学生和教职工健康体检,建立学生健康档案
10. 对于具有特殊体质的学生,学校有专门档案
11. 落实晨检和因病缺勤病因追查与登记记录
12. 教室、宿舍、食堂等场所经常性通风换气,室内空气清新
13. 定期对公共场所、重点部位进行清洁、消毒
14. 独立设置的厕所与生活饮用水水源、食堂相距30米以上,厕所卫生良好
15. 公共浴室、游泳池具有有效卫生许可证,卫生状况良好
16. 有学生饮用水水质检测合格报告
17. 供水设施定期进行清洗和消毒
18. 供(管)水人员持有健康证,且经卫生知识培训
19. 热水设备有防烫措施
20. 设立心理咨询室,配置专(兼)职心理健康教师
21. 开展心理健康教育活动
### 18. 校园欺凌与暴力防控(0/7)
1. 积极开展学生法制教育
2. 开展防欺凌专题教育
3. 将学生欺凌预防放入教职工培训内容
4. 建立防治学生欺凌和暴力工作制度
5. 成立学生欺凌治理委员会
6. 在学校醒目处公布防欺凌举报电话、责任人
7. 严格落实暴力防控值班、巡查制度
### 19. 防溺水安全管理(0/7
1. 积极开展防溺水安全教育
2. 签订《学生防溺水安全承诺书》
3. 开展家长防溺水安全教育
4. 与家长签订《学生防溺水安全管理责任书》
5. 提请、配合政府对学校周边水域进行管理
6. 建立危险水域排查档案和隐患台帐
7. 防溺水安全管理档案管理规范
### 20. 教职工管理(0/5
1. 校园工作人员背景审查
2. 不合适的教职员工及时调离
3. 实施教职工监管和品行考核
4. 教职员工安全培训
5. 关注教职工心理状况,进行心理辅导
### 21. 电气安全(0/12
1. 室内电线、电缆采用穿管、线槽保护
2. 电源插座、饮水机等电器设有漏电保护装置
3. 室内配电箱锁闭,防护盖齐全,张贴安全警示标识
4. 不存在私拉乱接电线,在电线上系、托或压物品等情况
5. 无线路老化,灯座、开关、插座表面发黑积碳,电源插座及接线板上插头松动等现象
6. 无电动车停放在建筑物首层、门厅、疏散通道、楼梯间以及校门口处等现象
7. 电动车充电线路固定,采取定时断电措施,配置灭火器
8. 电工持证上岗
9. 变配电室设有警示标志,并采取隔离措施
10. 室外电气设备周边无杂草树林
11. 变配电室“四防一通”措施到位,门口设有挡鼠板
12. 变配电室配置个人防护用具,合格证有效
8+10+17+16+21+12+19+18+8+6+11+25+14+17+16+9+21+7+7+5+12
@@ -0,0 +1,173 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
# Excalidraw Data
## Text Elements
安全教育 ^vZ5MSBuQ
隐患排查 ^3bPg6erZ
安全巡查 ^dpuwVeA2
风险清单 ^XH6FNGxb
应急预案 ^SMZQRJS2
实践场地 ^RfMqOz2H
风险隐患预防 ^pI0SSRU2
应急演练 ^suJz67UE
整改记录 ^DNL4Se0e
教育与实践 ^xiifXY7X
心理辅导 ^7BRwHskF
安全数据中心 ^WgrLdcfh
前置防控体系 ^iHofGMS5
%%
## Drawing
```compressed-json
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
z5vGMVKCDhA2ASABHgQAA===
```
%%
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

@@ -0,0 +1,58 @@
---
number headings: first-level 3, max 6, 1.1.
banner: "![[beatriz-perez-moya-XN4T2PVUUgk-unsplash.jpg]]"
banner_y: 1
---
<h3>创医元教育安全网格管理平台国产化技术改造说明</h3>
### 1. 背景说明
> 近些年,中国信息化产业在许多方面都先后受到了限制,如CPU先进制程的使用,5G技术在国外市场上受到抑制,某些技术无法在中国商用等。同时另一个问题是在我国广泛使用的技术,由于缺少对内部逻辑,结构的了解,我们无法考究其中存在的信息安全问题。因此,一方面为了减少对国外技术的依赖,一方面为了建立并加固我国信息化产业自身的安全屏障,积极推进国产化技术成为每个信息产业从业者维护自身利益的心声。
### 2. 公司情况
> 广东创医元信息技术有限公司积极推进国产化改造相关工作,公司重点发展项目“网格化教育安全管理平台”已经启动相关改造工作,和相关部门沟通和查阅相关政策资料后确定,目前省里的要求是从边缘系统开始逐步向核心系统过渡,2027年完成全部国产化改造。考虑到目前全部国产化有可能在后续适配以及教育局及终端感受方面有个比较长期的磨合阶段,建议分阶段逐步实现全部国产化。
> 本文档主要说明改造工作进展情况,与工作安排。
### 3. 项目背景
> 项目启动于2022年5月份,面向教育系统提供完整安全管理服务。在团队核心技术栈基础上进行技术选型,经过几次技术受限事件,团队更多考虑采用开放性与国内成熟的技术产品。
> 经过与韶关政数据领导对接,公司研发团队已经完成了对于有关规定,与技术方案的学习,评估产品所采用的核心技术支持国产化改造,评估细节参考下表:
<div style='page-break-after: always;'></div>
| 项目名 | 改造支持 | 说明 |
| ----------------- |:--------:| ------------------------------------------------ |
| ARM CPU | 支持 | 需要调研相关技术服务是否具有arm的发行版本。 |
| 麒麟操作系统 | 支持 | 已经在公司内部完成测试环境的搭建 |
| 数据库服务 | 支持 | 正在学习官方提供的改造说明文档 |
| 服务容器 | 支持 | 正在学习供应商提供的改造说明文档 |
| 缓存服务 | 支持 | 正在学习官方提供的改造说明文档 |
| nacos | 支持 | 阿里国产技术框架,社区已经给出国产化的适配方案 |
| minio | 调研中 | 暂无替代方案,可以考虑使用国产的对象存储服务 |
| docker/containerd | 调研中 | 暂无替代方案,如无法使用,可以使用非容器方式部署 |
| kubernetes | 调研中 | 暂无替代方案,如无法使用,可以使用非容器方式部署 |
<div style='page-break-after: always;'></div>
###### 附:改造工作实施计划
* 阶段一 底层架构
> [!TODO] 计划工作内容
> 1. 适配:Arm架构的CPU
> 2. 适配:麒麟linux操作系统
* 阶段二 中层程序开发以运行环境
> [!TODO] 计划工作内容
> 1. 适配:金仓数据库
> 2. 适配:金仓缓存服务
* 阶段三 实施方案改造
> [!TODO] 计划工作内容
> 项目实施-->国产化标准支持的容器实施方案
> 项目实施-->去容器化部署方案
* 阶段四 其他三方服务改造
> 以上三个阶段,为主要的国产化改造阶段,后续创医元团队将逐步对已用产品进行调研,并加强术选型的评审工作。
> 1. nacos
> 2. minio
> 3. 其他...
@@ -0,0 +1,114 @@
---
number headings: first-level 3, max 6, 1.1.
banner: "![[beatriz-perez-moya-XN4T2PVUUgk-unsplash.jpg]]"
---
```toc
title: "### 目录"
```
<div style='page-break-after: always;'></div>
### 1. 公司项目基本情况梳理
> [!TIP] 公司项目梳理
> ![[Pasted image 20221027223907.png]]
> [!TIP] 项目涉及技术栈梳理
> ![[Pasted image 20221027223621.png]]
<div style='page-break-after: always;'></div>
### 2. 国产化技术栈分析
> [!TIP] 国产化技术栈梳理
> ![[Pasted image 20221027231749.png]]
> [!TODO] 国产化技术重点关注领域
> ![[Pasted image 20221027171222.png]]
### 3. 工作安排
#### 3.1. 项目国产化需求级别定义
根据公司项目清单,梳理对于国产化改造的需求情况,暂定以下项目国产化需求级别。定义此级别意在指导研发团队后续国产化工作安排。
``````col
```col-md
flexGrow=2
===
> [!QUOTE] 低优先级
> 没有上线需求,且不涉及政务,或暂时没有相关技术栈改造需求。
```
```col-md
flexGrow=2
===
> [!Info] 中优先级
> 暂时没有上线需求,或不涉及政务管理,属于创医元重点项目,稳定性与安全性需要兼顾。保障系统正常提供服务,后续按需求进行逐步改造。
```
```col-md
flexGrow=2
===
> [!Warning] 高优先级
> 短期内没有上线需求,但涉及政务管理,以及用户有运行环境需求。此类项目在紧急级别项目后,以其改造经验的基础,优先推进改造工作。
```
```col-md
flexGrow=2
===
> [!Danger] 紧急
> 有上线需要,涉及政务管理,用户有运行环境需求,此类项目将优先开展改造工作。
```
``````
#### 3.2. 工作安排
##### 3.2.1. 技术适配研究
| <u>改造项</u> | <u>技术研究状态</u> |
| ---------------- | ------------------- |
| CPU架构适配 | 调研中 |
| 操作系统适配 | 已完成 |
| 数据库适配 | 已完成 |
| 缓存服务适配 | 已完成 |
| 网关服务适配 | 已完成 |
| 应用容器服务适配 | 已完成 |
##### 3.2.2. 项目国产化支持工作计划
由于上述国产化替代要求来自韶关政数局,因此改造工作计划优先针对韶关市相关项目,后续工作会考虑具体部署环境提供方的需求。
* 一期适配项目(紧急):网格化教育安全管理平台
* 二期适配项目(中优先级):智慧校园
* 三期适配项目(其他政务相关):网格化社区综合治理平台 & 智慧社区
* 后续适配工作:基于以上适配工作,基于现有规定的国产化替代标准,其他项目可以更准确的做好改造工作评估,具体改造工作按需进行。
<div style='page-break-after: always;'></div>
### 4. 附:适配测试项目表
#### 4.1. ARM架构CPU适配
由于韶关提供的政务云服务器均是基于arm架构的CPU,因此以下表中项目主要验证三方依赖服务、中间件是否有官方发行的ARM版本,或是否支持在ARM CPU下运行。
| 验证项目 | 支持 |
| -------------------- | ------ |
| Minio ARM版 | 是 |
| Docker ARM版 | 是 |
| Kubernetes ARM版 | 是 |
| Python AI服务ARM支持 | 未完成 |
#### 4.2. 操作系统适配
主要适配国产麒麟操作系统V10,由于该系统本质与原使用的Centos都是64位linux的核心,同时由于支持docker环境,因此适配工作预期较为乐观。
#### 4.3. 数据库测试
数据持久化中间件是项目技术领域中的核心技术,程序中有大量的数据库操作,因此需要对项目中涉及到的数据查询语句进行全面的测试。
| 验证项目 | 验证情况 |
| ------------------------------------ | -------- |
| 程序与数据库的连接配置 | 已验证 |
| Spring data orm对于金仓sql的语法支持 | 待验证 |
| Mybatis orm对于金仓sql的语法支持 | 待验证 |
| 项目中的原生sql语句查询校验 | 待验证 |
| Python对于金仓数据库的连接支持与配置 | 未计划 |
| Python ORM框对于金仓sql的语法支持 | 未计划 |
#### 4.4. 缓存服务测试
| 验证项目 | 验证情况 |
| ------------------------------------- | -------- |
| 程序与缓存服务RDS的连接配置 | 已验证 |
| Spring data redis对于缓存服务的读写 | 待验证 |
| Python对于RDS缓存服务的连接支持与配置 | 未计划 |
| Python对于RDS读写操作语法支持 | 未计划 |
@@ -0,0 +1,45 @@
参考文档都在
\\192.168.3.122\综合服务平台
账号:zhfwpt
密码:GDcyy701
mysql到人大金仓改造(数据库)
1、MySQL至KingbaseES迁移最佳实践(参考文档内标题目录)
包括用户、表结构、数据迁移(其中时间格式不一样)
2、KingbaseES客户端编程开发框架-MyBatis(参考文档内标题目录)
包括配置文件,mapper文件内的语句
3、测试各种语句的适配情况
成功启动项目之后数据显示是否正常
redis到TongRDS(缓存)
1、参考文档“TongRDS V2.2.1服务节点测试报告”的70页,springboot整合RDS
2、参考文档“TongRDS V2.2.1服务节点用户手册”
3、参考文档“TongRDS V2.2.1开发手册”
4、参考文档“TongRDS V2.2.1快速使用手册”
5、参考demo
nginx到TongHttpServer(负载均衡)
语法跟nginx差不多,有可视化配置页面,参考文档36页开始的内容
从tomcat适配到TongWeb
将tomcat的相关包替换成tongweb的,做法应该是替换pom的引用依赖,在进行打包的时候替换,如果不行就需要在打包后的jar包文件进行替换
参考文档“001_TongWeb7快速使用手册”
安装参考:https://blog.csdn.net/anyiVIP/article/details/120379305
参考视频:https://www.bilibili.com/video/BV1RZ4y1h7Qb
暂时未解决
nacos可以使用嵌入式版本来支持
minio这个目前东方通暂时没有替代的中间件产品。跟文件相关的有个GTP产品,不过主要是做文件传输和归档。(类似FTP)
应该是5套应用服务器软件TongWeb V7.0,其中3套使用嵌入式版本,2套使用企业版,Minio暂时无法替代
minio在没有替代的情况,应该是能自行安装,但是如果有问题就需要自行负责?
k8s和nacos应该也是如此?
打包成docker镜像运行?
@@ -0,0 +1,62 @@
---
number headings: first-level 3, max 6, 1.1.
banner: "![[paico-oficial-7jFMs5vzsSQ-unsplash.jpg]]"
---
<center><h1>国产化改造问题说明报告</h1></center>
```toc
title: "### 目录"
```
### 1. 问题与背景
> [!ERROR] 问题:技术国产化替代改造
>
> 项目:乐昌教育局教育网格安全管理平台
> 要求提出方:韶关市政数局,韶关市政务云
### 2. 事实
> [!ABSTRACT] 事实:顺应国家要求,逐步减少对不可控的技术方案的依赖
> 1. 政策引导使用可控的,低风险的国内技术解决方案。
> 2. 我们更多是面向民生,政务的服务,有更高的预防技术风险的须要。
<div style='page-break-after: always;'></div>
> [!TIP] 原因:
> 1. <h5><u>欧美技术限制</u></h5>
>
> > 许多技术会受到欧美对华政策的影响,比如某些服务在华禁止商用。因此近年从最基本的电脑硬件CPU开始,中国都在推动国产替代方案。
>
> 2. <h5><u>国产方案不主流,不完善,不先进</u></h5>
>
> > 1. 主流的技术用的最多,也最容易被限制。问题便是一般都会采用主流的技术,因为可以得到更多的技术资料,我们的项目也是如此。
> > 2. 国产化,突破一些限制,然后换新赛道超车。我们使用的技术,不可能全部找到国产替代方案(不只我们,国产化要求越高,越多的公司和项目都面会临这个问题)
### 3. 思路调整
> [!QUESTION] 讨论工作思路:保证系统使用,逐步改造?
> 经过与韶关政数局的初步沟通,整理改造清单 请参考 [[#4. 附:初步评估国产化替代项目清单]]
> 1. 工作量大
> >自身程序
> >我们使用的部分三方服务也需要改造
> 2. 技术点多
> > 最基础的硬件架构
> > 系统
> > 中间件
<div style='page-break-after: always;'></div>
### 附:初步评估国产化替代项目清单
| 项目名 | 强制要求 | 影响程度 | 说明 |
| ---------------------- | -------- | -------- | ---------------------------------------------------------------------- |
| ARM CPU | 是 | 高 | 我们使用很多三方服务,不见得都有arm的发行版本。 |
| 麒麟操作系统 | 是 | 中 | 是linux的国产发行版,基于很多公司都做过适配,预期只是时间问题 |
| 数据库服务 | 是 | 中低 | 国产,资料较少,主要是依据官方文档对我们的程序改造和测试 |
| 服务容器 | 是 | 高 | 我们自己的程序,与我们使用的第三方程序,都要求适配 |
| 缓存服务 | 是 | 中低 | 国产,资料较少,主要是依据官方文档对我们的程序改造和测试 |
| 三方-nacos | 否 | 中高 | 无国产替代方案,但是要求我们去适配国产数据库与服务容器,时间较难估算。 |
| 三方-minio | 否 | 中 | 无国产替代方案,目前韶关政数局没有给出明确的反馈是否可以使用。 |
| 三方-docker/containerd | 否 | 中低 | 对于我们自己这个是可选项,可以综合考虑后,选择最简单的实施方式。 |
| 三方-kubernetes | 否 | 中低 | 对于我们自己这个是可选项,可以综合考虑后,选择最简单的实施方式。 |
@@ -0,0 +1,14 @@
指挥中心
1. 左上角,模式切换改为分组
2. 事件信息:添加事件过滤条件
1. 报警-》解除
2. 指挥中心分开设计
1. 数据屏
2. 控制台
3. 添加事件历史页
* 2022-10-08
* 完成指挥中心控制台界面设计
* 2022-10-09
* 完成网格分管节点监控管理端设计
* 定稿讨论

Some files were not shown because too many files have changed in this diff Show More