feat: 笔记提交

master
old-tom 1 year ago
parent 1adff764a9
commit b3b6968543

@ -1,6 +1,6 @@
/* -------- FRONT MATTER ---------
** Theme: Obsidian Typewriter
** Version number: 2.1.3
** Version number: 2.1.6
** GitHub Repo: https://github.com/crashmoney/obsidian-typewriter
** Made by: crashmoney
----------------------------------- */
@ -72,6 +72,7 @@ body {
--base-d: 15%; /* base lightness for dark mode. 0 is black */
--base-l: 96%; /* base lightness for light mode. 100 is white */
/* rgb: 81, 157, 92 */
--theme-accent-h: 129;
--theme-accent-s: 31.9%;
--theme-accent-l: 46.7%;
@ -276,6 +277,8 @@ body {
var(--font-text-override);
--font-monospace-theme: "JetBrains Mono";
--metadata-input-font-size: var(--font-small);
--font-normal: 1em;
--font-small: 0.813em;
--font-smaller: 0.688em;
@ -376,6 +379,18 @@ body {
font-weight: var(--h1-weight);
}
/* increase space between editor and metadata credit to Minimal */
.metadata-container {
--input-height: 2rem;
}
.markdown-source-view .metadata-container {
transform: translateX(-4px);
}
.is-phone {
--metadata-label-font-size: var(--font-adaptive-smaller);
--metadata-input-font-size: var(--font-adaptive-smaller);
}
/* make cursor accent color */
.CodeMirror-cursor {
background-color: var(--color-accent);
@ -398,7 +413,7 @@ body .modal .prompt-results {
padding: calc((1rem * 2) * 1);
}
body .modal-bg {
/*backdrop-filter: blur(8px);*/ /*causes slowdowns*/
/* backdrop-filter: blur(8px); */ /* causes slowdowns */
background-color: rgb(8, 8, 8);
}
@ -410,7 +425,7 @@ body .modal-bg {
background-color: var(--background-primary);
}
/* Remove note-to-note link underline */
/* remove note-to-note link underline */
:root body {
--link-decoration: none;
--link-decoration-hover: none;
@ -446,35 +461,35 @@ body {
:root h1 {
margin: 0;
}
.markdown-preview-view div:has(>h1) + div > p {
.markdown-preview-view div:has(> h1) + div > p {
margin-top: 1em;
}
.markdown-preview-view div:has(+div>h1) > p {
margin-bottom: .33em;
.markdown-preview-view div:has(+ div > h1) > p {
margin-bottom: 0.33em;
}
/* FIX: margin-top funkiness present since Obsidian 1.1+ */
.markdown-source-view table {
margin-top: 0;
margin-top: 0;
}
/* EDITOR: font-scalable edit-block-button */
/* add header padding for button if last column is right-aligned */
.markdown-source-view table th:last-child[align="right"] {
padding-right: 2.767527675276753em;
padding-left: 0.8324108241082411em; /* balances padding-right */
padding-right: 2.767527675276753em;
padding-left: 0.8324108241082411em; /* balances padding-right */
}
/* button attributes */
.markdown-source-view.mod-cm6 .edit-block-button {
opacity: 1;
top: 0.3em;
right: 0.25em;
align-items: center;
justify-content: center;
top: 0.3em;
right: 0.25em;
align-items: center;
justify-content: center;
}
.markdown-source-view div.edit-block-button svg {
width: 1.2em;
height: 1em;
width: 1.2em;
height: 1em;
}
/* +++ PLUGINS */
@ -485,7 +500,7 @@ body {
}
/* KANBAN by @mgmeyers */
.kanban-plugin__grow-wrap>textarea {
.kanban-plugin__grow-wrap > textarea {
background-color: var(--background-primary);
}
@ -495,12 +510,13 @@ div.todo-item-view-item span.due-date {
color: white; /* makes due dates legible */
}
div.todo-item-view-item span.due-date.overdue {
div.todo-item-view-item span.due-date.overdue {
background-color: var(--orange);
}
/* make toolbar items more legible */
div.todo-item-view-item-link svg, div.todo-item-view-toolbar-item svg {
div.todo-item-view-item-link svg,
div.todo-item-view-toolbar-item svg {
fill: var(--text-faint);
}
/* make focused toolbar item follow the theme accent */

@ -0,0 +1,15 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
%%
# Drawing
```json
{"type":"excalidraw","version":2,"source":"https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.0.18","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}}
```
%%

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 KiB

@ -1,5 +1,4 @@
* 创建本地及远程仓库
```shell
# 从命令行创建一个新的仓库
touch README.md
@ -15,7 +14,6 @@
```
* 常用命令
```shell
# 列出本地分支及最后一次提交
git branch -v

@ -88,3 +88,18 @@
with a as (SELECT create_date, node_value FROM nc_data_node_value_detail WHERE node_code = '' ORDER BY create_date DESC )
select create_date,node_value,lag(node_value,1) over (ORDER BY create_date) next_day_total FROM a ORDER BY create_date desc) tt
```
+ 序列生成
```sql
# 时间序列
# 例生成从2021年到2023年
select to_char(generate_series(to_date('2021','yyyy'),to_date('2023','yyyy'),'1 years'),'yyyy')
# 生成今天24小时
select to_char(generate_series(to_timestamp(current_date || ' 00:00:00', 'yyyy-MM-dd HH24:mi:ss'),
to_timestamp(current_date || ' 23:59:59', 'yyyy-MM-dd HH24:mi:ss'), '1 hour'),'yyyy-MM-dd HH24:mi:ss')
```
+ 获取本月第1天和最后一天
```sql
select date_trunc('month',current_date),date_trunc('month',current_date)+interval '1 month - 1 day';
```

@ -0,0 +1,216 @@
## 一、常用命令及SQL
+ 系统性能指标
```sql
1.当前连接数
select count(*) from pg_stat_activity where query <>'IDLE';
2.查看所有表
select * from pg_tables where schemaname='public';
3.查看表字段
select * from information_schema.columns where table_schema='public' and table_name='device';
4.查看表大小
select pg_size_pretty(pg_relation_size('device'))
5.使用表扫描最多的表
select * from pg_stat_user_tables where n_live_tup > 100000 and seq_scan > 0 order by seq_tup_read desc limit 10;
```
## 二、函数
### 1.字符串
+ 字符串拼接
```sql
'Post' || 'greSQL'  PostgreSQL
SELECT CONCAT ('CONCAT',' ', 'function')
```
+ 转大、小写
```sql
select upper('tom')
select lower('ABC')
```
+ 子串在字符串中的位置,可以替代like
```sql
select position('om' in 'Thomas')
```
+ 字符串截取
```sql
# 从下标0开始截取4个字符
select substr('month',0,4)
```
### 2.日期时间
+ 获取当前时间绝对秒
```sql
select floor(extract(epoch from now()))
```
+ 日期转字符串
```sql
select to_char(now(),'yyyy-MM-dd HH24:mi:ss')
```
+ 字符串转日期
```sql
select to_date('1992-04-12','yyyy-MM-dd')
```
+ 当前时间、时间戳
```sql
select current_timestamp,now();
```
+ 字符串转时间戳
```sql
select to_timestamp('2024-03-21 14:03:14','yyyy-MM-dd HH24:mi:ss')
```
+ 获取当前日期
```sql
select current_date;
```
+ 获取6个月之前时间
```sql
select to_char((select now() - interval '6 month'),'yyyy-MM-dd hh24:mi:ss')
```
+ 计算时间差
```sql
1.天数day可以换成month,year
select date_part('day','2019-01-01'::date-'2011-10-02'::date)
2.秒
(extract('epoch' from a.pass_time::timestamp) - extract('epoch' from b.snap_time::timestamp))
```
### 3.窗口函数
窗口函数不是将一组数据汇总为单个结果;而是针对每一行数据,基于和它相关的一组数据计算出一个结果
![[Pasted image 20240501095744.png]]
窗口函数的定义如下:
```text
window_function ( expression, ... ) OVER (
PARTITION BY ...
ORDER BY ...
frame_clause
)
```
| 函数类型 | 名称 | 用途 |
| ---- | ------------ | ---------------------------------------------------- |
| 聚合函数 | AVG | 平均值 |
| 聚合函数 | COUNT | 行数 |
| 聚合函数 | MAX | 最大值 |
| 聚合函数 | MIN | 最小值 |
| 聚合函数 | SUM | 总数 |
| 排名函数 | ROW_NUMBER | 为分区中的每行数据分配一个序列号,序列号从 1 开始分配 |
| 排名函数 | RANK | 计算每行数据在其分区中的名次;如果存在名次相同的数据,后续的排名将会产生跳跃 |
| 排名函数 | DENSE_RANK | 计算每行数据在其分区中的名次;即使存在名次相同的数据,后续的排名也是连续的值 |
| 排名函数 | PERCENT_RANK | 以百分比的形式显示每行数据在其分区中的名次;如果存在名次相同的数据,后续的排名将会产生跳跃 |
| 排名函数 | CUME_DIST | 计算每行数据在其分区内的累积分布,也就是该行数据及其之前的数据的比率;取值范围大于 0 并且小于等于 1 |
| 排名函数 | NTILE | 将分区内的数据分为 N 等份,为每行数据计算其所在的位置 |
| 取值函数 | FIRST_VALUE | 返回窗口内第一行的数据 |
| 取值函数 | LAST_VALUE | 返回窗口内最后一行的数据 |
| 取值函数 | NTH_VALUE | 返回窗口内第 N 行的数据 |
| 取值函数 | LAG | 返回分区中当前行之前的第 N 行的数据 |
| 取值函数 | LEAD | 返回分区中当前行之后第 N 行的数据 |
#### 3.1 排名窗口函数
以下示例按照部门为单位,计算员工的月薪排名:
```sql
SELECT d.department_name "部门名称", concat(e.first_name, ',' , e.last_name) "姓名", e.salary "月薪",
ROW_NUMBER() OVER (PARTITION BY e.department_id ORDER BY e.salary DESC) AS "row_number",
RANK() OVER (PARTITION BY e.department_id ORDER BY e.salary DESC) AS "rank",
DENSE_RANK() OVER (PARTITION BY e.department_id ORDER BY e.salary DESC) AS "dense_rank",
PERCENT_RANK() OVER (PARTITION BY e.department_id ORDER BY e.salary DESC) AS "percent_rank"
FROM employees e
JOIN departments d ON (e.department_id = d.department_id)
WHERE d.department_name in ('IT', 'Purchasing')
ORDER BY 1, 4;
```
![[Pasted image 20240501102554.png]]
ROW_NUMBER 函数为每个员工分配了一个连续的数字编号可以看作是一种排名。IT 部门的“Valli,Pataballa”和“David,Austin”的月薪相同但是编号不同
RANK 函数为每个员工指定了一个名次IT 部门的“Valli,Pataballa”和“David,Austin”的名次都是 3而且在他们之后的“Diana,Lorentz”的名次为 5产生了跳跃
DENSE_RANK 函数为每个员工指定了一个名次IT 部门的“Valli,Pataballa”和“David,Austin”的名次都是 3在他们之后的“Diana,Lorentz”的名次为 4名次是连续值
PERCENT_RANK 函数按照百分比指定名次,取值位于 0 到 1 之间。其中“Diana,Lorentz”的百分比排名为 1也产生了跳跃。
以上SQL的简化写法:
```sql
SELECT d.department_name "部门名称", concat(e.first_name, ',' , e.last_name) "姓名", e.salary "月薪",
ROW_NUMBER() OVER w AS "row_number",
RANK() OVER w AS "rank",
DENSE_RANK() w AS "dense_rank",
PERCENT_RANK() w AS "percent_rank"
FROM employees e
JOIN departments d ON (e.department_id = d.department_id)
WHERE d.department_name in ('IT', 'Purchasing')
WINDOW w AS (PARTITION BY e.department_id ORDER BY e.salary DESC)
ORDER BY 1, 4;
```
其中,`WINDOW`定义了一个窗口变量 w然后在窗口函数的 OVER 子句中使用了该变量;这样可以简化函数的输入。
以下语句演示了 CUME_DIST 和 NTILE 函数的作用:
```sql
SELECT concat(first_name, ',' , last_name) "姓名", hire_date AS "入职日期",
CUME_DIST() OVER (ORDER BY hire_date) AS "累积占比",
NTILE(100) OVER (ORDER BY hire_date) AS "相对位置"
FROM employees;
```
![[Pasted image 20240501102825.png]]
其中CUME_DIST 函数显示 2001-01-13 以及之前入职的员工大概有 0.9%1/107NTILE(100) 函数表明前 1% 入职的员工有“Lex,De Haan”和“Hermann,Baer”由于员工总数为 107所以不是完全准确。
#### 3.2 取值窗口函数
以下语句使用 FIRST_VALUE、LAST_VALUE 以及 NTH 函数分别获取每个部门内部月薪最高、月薪最低以及月薪第三高的员工:
```sql
SELECT department_id, first_name, last_name, salary,
FIRST_VALUE(salary) OVER w,
LAST_VALUE(salary) OVER w,
NTH_VALUE(salary, 3) OVER w
FROM employees
WINDOW w AS (PARTITION BY department_id ORDER BY salary desc ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
ORDER BY department_id, salary DESC;
```
![[Pasted image 20240501104752.png]]
LAG 和 LEAD 函数同样用于计算销量数据的环比/同比增长
```sql
WITH sales_monthly AS (
SELECT product, to_char(saledate,'YYYYMM') ym, sum(amount) sum_amount
FROM sales_data
GROUP BY product, to_char(saledate,'YYYYMM')
)
SELECT product AS "产品", ym "年月", sum_amount "销量",
(sum_amount - LAG(sum_amount, 1) OVER (PARTITION BY product ORDER BY ym))/
LAG(sum_amount, 1) OVER (PARTITION BY product ORDER BY ym) * 100 AS "环比增长率(%"
FROM sales_monthly
ORDER BY product, ym;
```
![[Pasted image 20240501105012.png]]
首先,创建一个通用表表达式 sales_monthly得到了不同产品每个月的销量汇总LAG(sum_amount, 1) 表示获取上一期的销量;当前月份的销量减去上个月的销量,再除以上个月的销量,就是环比增长率。
### 4.正则表达式
```sql
-- 提取数字
NULLIF(regexp_replace(po_number, '\D','','g'), '')::numeric
```
## 三、索引
[PostgreSQL 14种索引的原理和应用场景 - 简书 (jianshu.com)](https://www.jianshu.com/p/6aedd1b79dba)
| 索引 | 原理 | 场景 | 适用的数据类型 | 版本限制 |
| ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | ---- |
| btree | b-tree适合所有的数据类型支持排序支持大于、小于、等于、大于或等于、小于或等于的搜索 | | 所有 | 无 |
| hash | hash索引存储的是被索引字段VALUE的哈希值只支持等值查询。 | | 所有 | 无 |
| gin | 当需要搜索多值类型内的VALUE时适合多值类型例如数组、全文检索、TOKEN。根据不同的类型支持相交、包含、大于、在左边、在右边等搜索 | | | |
| gist | GiST是一个通用的索引接口可以使用GiST实现b-tree, r-tree等索引结构。不同的类型支持的索引检索也各不一样。 | 例如: <br>1、几何类型支持位置搜索包含、相交、在上下左右等按距离排序。 <br>2、范围类型支持位置搜索包含、相交、在左右等<br>3、IP类型支持位置搜索包含、相交、在左右等<br>4、空间类型PostGIS支持位置搜索包含、相交、在上下左右等按距离排序。 <br>5、标量类型支持按距离排序 | | |
| sp-gist | SP-GiST类似GiST是一个通用的索引接口但是SP-GIST使用了空间分区的方法使得SP-GiST可以更好的支持非平衡数据结构例如quad-trees, k-d tree, radis tree。 | 应用场景 <br>1、几何类型支持位置搜索包含、相交、在上下左右等按距离排序。 <br>2、范围类型支持位置搜索包含、相交、在左右等<br>3、IP类型支持位置搜索包含、相交、在左右等。 | | |
| brin | BRIN 索引是块级索引有别于B-TREE等索引BRIN记录并不是以行号为单位记录索引明细而是记录每个数据块或者每段连续的数据块的统计信息。因此BRIN索引空间占用特别的小对数据写入、更新、删除的影响也很小。 | 时序数据在时间或序列字段创建BRIN索引进行等值、范围查询时效果很棒。 | | |
| rum | rum 是一个索引插件由Postgrespro开源适合全文检索属于GIN的增强版本。 <br>增强包括: <br>1、在RUM索引中存储了lexem的位置信息所以在计算ranking时不需要回表查询而GIN需要回表查询<br>2、RUM支持phrase搜索而GIN无法支持。 <br>3、在一个RUM索引中允许用户在posting tree中存储除ctid行号以外的字段VALUE例如时间戳。 | RUM不仅支持GIN支持的全文检索还支持计算文本的相似度值按相似度排序等。同时支持位置匹配例如速度与激情可以采用"速度" <2> "激情" 进行匹配而GIN索引则无法做到 | | |
| bloom | bloom索引接口是PostgreSQL基于bloom filter构造的一个索引接口属于lossy索引可以收敛结果集(排除绝对不满足条件的结果,剩余的结果里再挑选满足条件的结果)因此需要二次checkbloom支持任意列组合的等值查询。 <br>bloom存储的是签名签名越大耗费的空间越多但是排除更加精准。有利有弊 | | | |
| zombodb | zombodb是PostgreSQL与ElasticSearch结合的一个索引接口可以直接读写ES | 与ES结合实现SQL接口的搜索引擎实现数据的透明搜索 | | |
| bitmap | bitmap索引是Greenplum的索引接口类似GIN倒排只是bitmap的KEY是列的值VALUE是BIT每个BIT对应一行而不是行号list或tree | 当某个字段的唯一值个数在100到10万之间(超出这个范围不建议使用bitmap)时如果表的记录数特别多而且变更不频繁或者是AO表那么很适合BITMAP索引bitmap索引可以实现快速的多个或单个VALUE的搜索。因为只需要对行号的BITMAP进行BIT与或运算得到最终的BITMAP从最终的BITMAP映射到行进行提取。 <br>bitmap与btree一样都支持 等于,大于,小于,大于等于,小于等于的查询。 | | |
| 表达式索引 | 表达式索引也是PostgreSQL特有的特性例如用户的数据需要转换后查询例如某些设备上传的地理坐标的坐标系不符合国标需要转换为国内的空间坐标来查询。 <br>那么可以针对这类字段,创建表达式索引,将转换过程放到表达式中,查询时也使用表达式进行查询。 | CREATE INDEX ods_ht_transport_realtime_pass_time_idx ON ods_ht_transport_realtime ((pass_time::DATE)); 函数索引 | | |
## 四、事务
## 五、常见问题

@ -0,0 +1,8 @@
```shell
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
```
**ESTABLISHED:指TCP连接已建立双方可以进行方向数据传递**
**CLOSE_WAIT:这种状态的含义其实是表示在等待关闭
**TIME_WAIT:指连接已准备关闭**

@ -0,0 +1,3 @@
```shell
ssh-keygen -R xxx.xx.xx.xxx
```

@ -1,10 +1,10 @@
## 一、版本差异
| 差异 | 5.7 | 8.X | 备注 |
| ---- | ---- | ---- | ---- |
| 字符集 | utf8 | utf8mb4 | |
| 字符序 | utf8mb4_general_ci | utf8mb4_0900_ai_ci | |
| JDBC驱动名称 | com.mysql.jdbc.driver | com.mysql.cj.jdbc.driver | |
| 差异 | 5.7 | 8.X | 备注 |
| -------- | --------------------- | ------------------------ | --- |
| 字符集 | utf8 | utf8mb4 | |
| 字符序 | utf8mb4_general_ci | utf8mb4_0900_ai_ci | |
| JDBC驱动名称 | com.mysql.jdbc.driver | com.mysql.cj.jdbc.driver | |
## 二、常用命令及SQL
+ 导出数据

@ -2,7 +2,7 @@
## 1. 镜像加速
```shell
# 添加 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install 'acryl-datahub[oracle]' -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install 'acryl-datahub[oracle]' -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
```
## 2. 导入导出依赖

@ -0,0 +1 @@
[java - 【建议收藏】Tomcat 优化总结 - 个人文章 - SegmentFault 思否](https://segmentfault.com/a/1190000044762384#item-4)

@ -0,0 +1,6 @@
### 1.贸易类型
+ 一般贸易
+ 边民互市
### 2.进口、出口、入境、出境
进口数量=中国入境数量+缅甸入境数量

@ -0,0 +1,6 @@
一、瑞丽AR
1. 蝉道剩余问题处理并发布新版本
二、畹町AR
1. 对接大通汇处理过车数据存在脏数据问题
三、车道
1. 协助安装传感器

@ -0,0 +1,5 @@
一、瑞丽AR
1. 参加瑞丽口岸项目会议
2. 遗留bug修复
二、河口口岸AR
1. 协助修改数据面板统计值(符合演示要求)

@ -0,0 +1,5 @@
一、瑞丽AR
1. 完成bug修复并上线
2. 编写相机网络测试步骤并协调杨锦辉配合测试-->排查相机操作延迟问题
二、其他
1. 任务进度管理填写问题总结会议

@ -0,0 +1,22 @@
一、河口海关AR
1. 排查1月29号后车牌识别断流问题
2. 测试并收集问题单
本周工作:
一、瑞丽AR
1. 修复上一轮测试出的bug并发版完成
2. 对接徐传翰收集统计查询、导出需求(完成)
二、畹町AR
1. 大通汇数据巡检(每天)
三、河口海关AR
1. 排查1月29号后无车牌识别数据问题完成原因1月29号当天机房down机华为文件服务重启后发生配置丢失导致AR无法上传图片
2. 测试海关AR并梳理问题单进行中
四、其他
1. 配合省领导检查(造数据等)
下周计划:
一、瑞丽AR
1. 配合完成第二轮测试
二、畹町AR
1. 核对瑞丽、畹町版本功能核对完善畹町版本及bugfix
三、河口海关AR
1. 根据问题单修复bug并上线现场项目经理要求3月15号之前给客户演示

@ -0,0 +1,19 @@
本周计划:
一、瑞丽AR
1. 配合完成第二轮测试
二、畹町AR
1. 核对瑞丽、畹町版本功能核对完善畹町版本及bugfix
三、河口海关AR
1. bug排查并输出问题单
2. 排查车牌识别(邹瑞)
3. 物流可视-车辆出入境图片缺失
4. 口岸数据看板是否可以从口岸导入sql先展示死数据
5. 监测点查询-缺失车牌图片
6. 车辆定位实现
今日工作:
一、瑞丽AR
1. 修复事件通知bug
二、河口海关AR
1. 排查视频无法播放问题
2. 测试并收集问题清单

@ -0,0 +1,2 @@
一、河口海关AR
1. 根据海关侧问题单讨论并分配任务

@ -0,0 +1,4 @@
一、河口海关AR
1. 排查无车牌识别数据问题
2. 参加河口海关综合指挥平台数据对接会议
3. 排查部分视频经过转码后无法播放问题

@ -0,0 +1,12 @@
本周工作:
一、河口海关AR
1. 梳理问题单及bug修复车牌识别及告警无数据反复出现、相机掉线、系统bug、首页出入境统计
2. 参加海关综合指挥平台数据对接会议需提供的5类接口下周开发完成。
问题:
1. 海关AR没有软硬件监控以及短信告警即使本次修复完成后续还会出问题。缺乏问题预警机制人力运维不现实。
下周计划:
一、海关AR
1. bug修复
2. 车辆定位功能实现
3. 对接海关综合指挥平台及5类接口开发

@ -0,0 +1,3 @@
一、海关AR
1.对接夏志毅排查海关AR视频转码后无法播放问题
2.算法服务器抓包并对接华为排查事件中心问题

@ -0,0 +1,15 @@
本周工作:
一、河口海关AR
1. 对接旅检平台提供5类接口完成开发及对接4类。剩余1类告警推送接口由于对方尚未开发无法对接。
2. 修复视频转码后在页面无法播放问题辅码流编码格式修改为H254完成
3. 排查车牌识别、告警数据未推送问题(代码中有生成模拟数据的定时任务未关闭;经过算法侧抓包发现相应数据已经推送到华为事件中心,还需要华为进一步排查)
二、河口口岸AR
1. 排查频繁宕机问题上周较为频繁本周四出现过1次1.socket耗尽 2.数据库连接池耗尽 原因代码里面循环插入、http没做超时机制
排查过程中发现的基础环境问题:
1. 服务器NTP最严重的事件中心和现实时间差13分钟、yum源、磁盘未挂载转码服务
2. 数据库时区口岸AR用的数据库是UTC时间与现实时间相差8小时
下周计划:
一、河口海关AR
1. 完成旅检平台告警推送接口
2. 解决车牌识别、告警数据推送问题

@ -0,0 +1,12 @@
本周计划:
一、河口海关AR
1. 相机测试并输出问题单1.掉线 2.车牌识别验证)
2. 对接王亚兵验证车辆定位
3. 融合指挥账号沟通
4. 车道用途(边民互市、一般贸易)与现场确认
今日工作:
一、河口海关AR
1. 小组会议梳理并分配开发任务
2. 对接融合指挥排查账号无法登录问题
3. 车道用途区分

@ -0,0 +1,4 @@
今日工作:
一、河口海关AR
1. 整理无车牌识别及掉线相机情况
2. 对接王亚兵排查车辆定位问题

@ -0,0 +1,4 @@
今日工作:
一、河口海关AR
1. 对比口岸AR排查相机配置过车牌识别但无数据问题
2. 对接融合智慧

@ -0,0 +1,5 @@
今日工作:
一、海关AR
1. 验证H986 2号相机是否有车牌识别--->对接算法(完成)
2. 协调前端开发(完成)
3. 融合指挥对接方案

@ -0,0 +1,17 @@
今日工作:
一、海关AR
1.物流可视化改版及前后端对接
本周工作:
一、海关AR
1. 相机测试并输出问题单结果掉线19台未配置车牌识别15台已配置车牌识别但无数据7台
2. 对接王亚兵验证车辆定位因为H9861号入场相机掉线现已切换为2号入场相机目前存在的问题是算法提供的车牌上传接口调不通。
3. 对接融合指挥讨论告警数据过滤和推送、告警结果反馈。后续会从AR直接过滤并推送告警到融合指挥不经过事件中心。
4. 物流可视化界面修改,参考瑞丽版本新增空车、重车、上一次通关口岸、上一次通关时间等。
下周计划:
一、海关AR
1. 准备4月2号演示内容
2. 修复车辆定位失效问题
3. 完成融合指挥对接

@ -0,0 +1,5 @@
本周计划:
一、海关AR
1. 无车牌识别相机重新画线
2. 告警数据过滤及推送接口开发
3. 准备4月2号客户演示

@ -0,0 +1,14 @@
本周工作:
一、河口口岸AR
1. 排查宕机问题车牌识别逻辑中包含2次图片上传车牌图片及车头图片由于华为文件服务不稳定导致单次车牌识别执行耗时超过10秒最终导致tomcat阻塞。针对上述情况在不大改代码情况下对tomcat调优内部线程池工具重构替换数据库连接池等。后续会继续观察如果还出现由于文件服务导致的宕机问题需要修改图片上传逻辑。
二、河口海关AR
1. 对接星网融合指挥,修改告警推送链路
2. 无车牌识别数据相机问题排查及重新画线
3. 车辆定位接口调试
下周计划:
一、河口海关AR
1. 根据4月2号内部演示意见进行修改并准备4月10号向海关汇报
二、河口口岸AR
1. 图片上传逻辑修改

@ -0,0 +1,5 @@
本周工作:
一、河口海关AR
1. 根据4月2号内部演示意见进行修改并准备4月10号向海关汇报
二、河口口岸AR
1. 图片上传逻辑修改

@ -0,0 +1,5 @@
今日工作:
一、口岸AR
1. 测试图片上传本地保存逻辑
二、海关AR
1. 对接算法排查车牌图片识别不准问题

@ -0,0 +1,4 @@
一、口岸AR
1. 调试图片上传接口
二、海关AR
1. bug修复

@ -0,0 +1,3 @@
一、海关AR
1. bug修复
2. 向客户汇报海关AR进度及演示

@ -0,0 +1,6 @@
一、海关AR
1. 整理昨天演示会议纪要及下一步工作计划
2. 对接覃晓福梳理海关AR预警项
3. 对接范俊联调告警推送接口
4. 对接星网,测试海关侧告警推送正式环境
5. 车牌图片切图区域验证

@ -0,0 +1,272 @@
本周工作:
一、口岸AR
1. 对接华为获取场站数据接口(真实性待验证)
2. 图片上传功能测试先存本地有单独线程执行上传以及更新文件ID
二、海关AR
1. 车辆定位功能测试(数据已对接,但是模型无法识别车辆需重新训练)
2. bug修复海关AR演示已整理成会议纪要
3. 对接星网,测试海关侧告警正式环境推送
4. 对接吴益,排查车牌切图不准问题,目前已替换车牌识别模型
下周计划:
一、海关AR
1. 根据会议纪要梳理待修复项
2. 重构首页统计、告警逻辑

@ -0,0 +1,12 @@
本周计划:
一、海关AR
1. 提取车辆定位训练集
2. 对接算法-车身颜色
3. 梳理8个场景相机点位对接前端添加相机位置
4. 告警重构
5. 告警转语音开发
6. 对接华为测试告警数据推送后与5G单兵联动处置
今日工作:
一、海关AR
1. 编写车辆定位训练数据生成脚本

@ -0,0 +1,4 @@
一、海关AR
1. 编写进度文档
2. 梳理前端开发工作及对接
3. 测试星网告警接口

@ -0,0 +1,3 @@
一、海关AR
1. 测试星网数据告警接口并对接告警更新功能
2. 排查部分相机车牌识别为0问题

@ -0,0 +1,14 @@
本周工作:
一、口岸AR
1. 测试整理BUG清单,对接前端修复计划20号修复完成
二、海关AR
1. 整理车辆定位训练视频
2. 8个场景添加相机位置标记、2个货场
3. 对接算法,添加车身颜色识别模型插件
4. 场景顺序切换及名称修改
下周计划:
一、海关AR
1. 增加缺失告警类型
2. 协调并配合前端迁移磨憨版本视频播放(带地图)
3. 车辆轨迹问题修复

@ -0,0 +1,4 @@
今日工作:
一、海关AR
1. 升级车牌识别流程并更新
2. 对接前端开发告警跳转地图功能

@ -0,0 +1,4 @@
今日工作:
一、海关AR
1. 调试告警推送星网、旅检平台程序
2. 重构首页统计后端

@ -0,0 +1,3 @@
今日工作:
一、海关AR
1. 重构首页统计

@ -0,0 +1,23 @@
今日工作:
一、海关AR
1.
本周工作:
一、海关AR
1. 重构首页统计后端并迁移到口岸AR
2. 补全告警查询项
3. 对接前端开发告警跳转地图功能
4. 实景管理相机配置
问题海关侧和口岸侧使用相同的南卡口车辆出入境统计SQL查询后发现数据量差异较大可能是口岸侧相机车牌识别率低导致需要算法处理。
二、口岸AR
1. 新增视频转码服务监控配置
三、其他
1. 4月25~26日参加新员工入职培训
下周计划:
一、海关AR
1. 新增‘北卡口出境车辆-未按照线路行驶‘告警类,并对接算法测试
2. 客户演示

@ -0,0 +1,13 @@
本周工作:
一、海关AR
1. 完成北卡口出境车辆告警接入
2. 增加告警类型筛选
3. 重构车辆轨迹查询
4. 客户演示
二、口岸AR
1. 验证航通过车数据并对比车牌识别
三、其他
1. 出差申请
2. 绩效评定

@ -0,0 +1,8 @@
一、海关AR
1. 增加告警类型筛选
2. 重构车辆轨迹查询
3. 协助客户编写海关AR建设进度汇报材料
4. 排查海关侧视频网闸问题
二、其他
1. 绩效评定

@ -0,0 +1,3 @@
一、海关AR
1. 增加告警类型筛选
2. 重构车辆轨迹查询

@ -0,0 +1,4 @@
一、海关AR
1. 增加告警类型筛选
2. 重构车辆轨迹查询
3. 重构各场景出入统计

@ -0,0 +1,10 @@
本周工作:
一、海关AR
1. 对接算法测试北卡口出境车辆告警(标签叠加率很低,算法表示没空做优化)
2. 排查海关侧视频网闸问题(配置丢失导致,原因不清楚,已对配置进行备份)
3. 客户演示主要问题点集中在车牌识别导致统计不准和轨迹丢失、告警14个告警缺少数据支撑
4. 编写AR进度汇报材料并参加海关项目推进会议
下周计划:
1. 根据演示结果对AR进行完善
2. 口岸侧过车数据接入

@ -0,0 +1,4 @@
一、海关AR
1. 同步最新数据到线上库
2. 梳理相机清单提供给客户
3. 重构vehicel_io表逻辑

@ -0,0 +1,5 @@
一、海关AR
1. 重构vehicel_io表逻辑
2. 检查场内相机车牌识别配置
3. 梳理告警项及无法实现困难点
4. 修复推送星网告警数据设备编码问题

@ -0,0 +1,3 @@
一、海关AR
1. 重构vehicel_io表逻辑
2. 梳理告警项及无法实现困难点

@ -0,0 +1,6 @@
一、海关AR
1. 梳理告警项及无法实现困难点
2. 统计未配置车牌识别的相机
3. 修改AR告警推送增加推送记录
4. 监管设备(摄像头)预警实现
5. 国门机房改配置以及确认测温设备是否正常使用

@ -0,0 +1,15 @@
本周工作:
一、海关AR
1. 梳理告警项及无法实现困难点共13项已实现5项
2. 统计未配置车牌识别的相机已配置70台
3. 重构全景地图统计
4. 梳理相机清单提供给客户(客户提出要对相机改名)
5. 对接星网讨论单点登录需求(星网开发反馈说需要和他们领导反馈,暂无回复)
二、口岸AR
1. 对接华为了解边民互市数据来源及接口源数据存储在GDE的clickhouse本地无法直连
2. 实时过车数据接入
下周计划:
一、海关AR
1. AR前端优化
2. 协调及处理国门相机识别率低问题

@ -0,0 +1,10 @@
本周:
一、口岸AR
1. 相机车牌识别问题对接及处理
2. 边民互市数据接入,数据查询界面设计
二、海关AR
1. 整理国门相机车牌识别结果并对接算法
2. 设备告警实现
3. 对接融合指挥单点登录
4. 若干bug修复

@ -0,0 +1,14 @@
本周工作:
一、海关AR
1. 重构设备查询树新增区域层级
2. 增加告警推送日志
3. 国门相机车牌识别问题排查及重新画线
二、口岸AR
1. 比较航通过车数据与南卡口车牌识别数据计算相机识别率并申请人员对相机进行调整
2. 边民互市贸易数据申请与数据接口测试
3. 新增3台相机协助现场安装及车牌识别验证
下周计划:
1. 海关AR优化项前后端联调
2. 边民互市数据接入
3. 口岸AR新增一般贸易、边民互市贸易数据明细查询功能

@ -0,0 +1,13 @@
本周计划:
一、海关AR
1. 海关AR优化项前后端联调
二、口岸AR
3. 边民互市数据接入
4. 口岸AR新增一般贸易、边民互市贸易数据明细查询功能
今日工作:
一、口岸AR
1. 整理南卡口26号过车数据与车牌识别比对
二、海关AR
1. 对接前端开发

@ -0,0 +1,2 @@
一、口岸AR
1. 边民互市数据接入

@ -0,0 +1,21 @@
本周工作:
一、口岸AR
1. 对接算法协助排查相机识别率低问题
2. 口岸AR车牌识别拆分生产者消费者模式
3. 一般贸易、边民互市数据接入及对接秦振
二、海关AR
1. 对接前端完成AR优化项及版本发布
2. 协助排查华为文件服务下载慢问题
三、磨憨AR
1. 协助练益楷排查慢SQL问题
相机问题:
1.相机版本
2.相机角度
3.识别算法更新
4.抓拍算法问题车道里面华为抓拍率87%
下周计划:
1. 口岸AR新增一般贸易、边民互市贸易数据明细查询功能
2. 完成一般贸易、边民互市数据接入
3. 协助海关侧处理相机抓拍问题

@ -0,0 +1,11 @@
本周工作计划:
一、海关AR
1. 修改tour.xml文件相机编码
2. 协助吴益排查盛行平台相机问题
二、口岸AR
1. 边民互市数据接入程序上线
2. 一般贸易、边民互市数据明细查询界面设计、接口开发
其他:
1. 绩效评定
2. 报销

@ -0,0 +1,5 @@
待办:
1. 整理其他区域车牌抓拍图片(国门、南卡口除外)
2. 商品详情查询试图编写
3. 海关侧前端tour.xml文件修改
4. 贸易数据拉取程序检查hash_id和逻辑并重新部署

@ -0,0 +1,27 @@
本周工作:
一、口岸AR
1. 一般贸易、边民互市数据明细查询需求梳理、设计并对接秦振
2. 贸易数据抽取代码bug修复
3. 能投9楼电脑网络问题排查奇安信防火墙策略
4. 整理边民互市贸易数据提供给河口县商务局(原始数据大量重复)
二、海关AR
1. 配合算法拉取异常车牌识别图片及视频(已编写脚本处理)
海关侧车牌识别排查进度:
1. 已对国门、南卡口进行排查及调整
2. 剩余其他监管区域将在本周内完成排查、下周调整
主要问题:
1. 相机太近而且角度不合适,导致车牌倾斜太严重
2. 抓拍线太近或过远
3. 部分相机对焦不准
口岸侧车牌识别排查进度:
南北卡口车道漏抓拍问题已排查并解决。今天相机抓拍算法和识别算法更新。货场和国门的相机问题下周排查。
主要问题:
1. 相机角度
2. 抓拍线偏移
下周计划:
1. 河口海关AR 验收材料编写
2. 海关监管区域(南卡口除外)相机识别率问题跟踪(跨周)
3. 贸易数据明细查询视图重构

@ -0,0 +1,10 @@
CountDownLatch让一个或多个线程在运行过程中的某个时间点能停下来等待其他的一些线程完成某些任务后再继续运行
CountDownLatch的构造函数接收一个 int 型参数作为计数器例如想让N任务完成之后才能继续执行创建CountDownLatch时传入参数N
需要等待的线程会调用CountDownLatch的await方法该线程就会阻塞直到计数器的值减为0而达到自己预期的线程会调用CountDownLatch的countDown()方法计数器N的值减1。由于countDown方法可以在任何地方调用所以计数器N既可以代表N个线程也可以是一个线程的N个执行步骤。代表多个线程时只需要将这个CountDownLatch的引用传到线程里面即可。
如下图所示使用CountDownLatch 强制线程等待可以实现每次只处理N条数据的效果而不是一直提交数据给线程池
![[Pasted image 20240530123021.png]]

@ -56,7 +56,7 @@ Redis字典相当于Java的HashMap属于无序字典在数据结构上使
![[Snipaste_2023-02-22_16-10-55 1.png]]
#### 获取字典中的所有值
![[Snipaste_2023-02-22_16-10-55 2.png]]
#### 获取字典中的所有键值对
#### 获取字典中的所有键值对
![[Snipaste_2023-02-22_16-10-55 3.png]]
### 3.2 底层数据结构
采用于HashMap相同的散列表结构redis字段的值只能是字符串

@ -22,15 +22,15 @@
### 2.结构型模式
如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效
| 序号 | 类型 | 业务场景 | 实现要点 |
| ---- | ------ | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| 1 | 适配器 | 从多个MQ消息体中,抽取指定字段值场景 | 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 |
| 2 | 桥接 | 多支付渠道(微信、支付宝)与多支付模式(刷脸、指纹);JDBC多种驱动 | 将抽象部分与实现部分分离,使它们都可以独立的变化 |
| 3 | 组合 | 营销差异化人群发卷,决策树引擎搭建场景 | 将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性 |
| 4 | 装饰 | SSO单点登录功能扩展增加拦截用户访问方法范围场景 | 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 |
| 5 | 外观 | 基于SpringBoot开发门面模式中间件统一控制接口白名单场景 | 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 |
| 6 | 享元 | 基于Redis秒杀提供活动与库存信息查询场景 | 运用共享技术有效地支持大量细粒度的对象 |
| 7 |代理 |模拟mybatis-spring中定义DAO接口使用代理类方式操作数据库原理实现场景 | 为其他对象提供一种代理以控制对这个对象的访问 |
| 序号 | 类型 | 业务场景 | 实现要点 |
| --- | --- | ------------------------------------------- | ------------------------------------------------------- |
| 1 | 适配器 | 从多个MQ消息体中,抽取指定字段值场景 | 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 |
| 2 | 桥接 | 多支付渠道(微信、支付宝)与多支付模式(刷脸、指纹);JDBC多种驱动 | 将抽象部分与实现部分分离,使它们都可以独立的变化 |
| 3 | 组合 | 营销差异化人群发卷,决策树引擎搭建场景 | 将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性 |
| 4 | 装饰 | SSO单点登录功能扩展增加拦截用户访问方法范围场景 | 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 |
| 5 | 外观 | 基于SpringBoot开发门面模式中间件统一控制接口白名单场景 | 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 |
| 6 | 享元 | 基于Redis秒杀提供活动与库存信息查询场景 | 运用共享技术有效地支持大量细粒度的对象 |
| 7 | 代理 | 模拟mybatis-spring中定义DAO接口使用代理类方式操作数据库原理实现场景 | 为其他对象提供一种代理以控制对这个对象的访问 |
### 3.行为模式
负责对象间的高效沟通和职责委派

Loading…
Cancel
Save