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