Obsidian/Recognition/Work Related/1.업무메모/2022.06/2022-06-08.md

114 lines
4.7 KiB
Markdown
Raw Normal View History

2023-08-14 16:19:25 +00:00
### 방송 수신 ID 표출
- 상황관제시스템 해도에 육상국 최근 송신방송, 각 선박 마지막 수신 방송, 24시간 이내 방송 수신 이력 표출
- 표출항목 :
```txt
[최근 송신 방송]
방송일시, 방송ID, 방송종류, 송신모뎀(해당선박의 위치 수신모뎀기준)
[마지막 수신 방송]
수신일시(방송이후 최초 위치보고일시), 방송ID, 방송종류, 수신위치,
통달거리(수신모뎀기준 해당지역의 송신소로부터 수신 위치까지의 거리), 최초 수신까지 걸린 시간, 수신모뎀
[24시간이내 수신한 방송 이력]
[마지막 수신 방송]과 동일 (Grid형식)
```
### TssGW 최종위치데이터 <-> 최종조업 및 항적 데이터 불일치
- 패킷의 위치보고시각을 기준으로 최종위치테이블 업데이트 수행 여부 체크하고 있음.
- 위로직에서 ====**패킷에 해당하는 Slot번호가 아니라 0번슬롯의 최종위치시각과 패킷의 시각을 비교함.**
- ====**최종위치 시각에서 시분초는 제외하고 날짜만 비교함.**
- 패킷이 보고시각 순서로 들어오지 않음.
- 위 사항으로 인해 패킷이 들어오는 순서대로 최종 위치수신시각이 업데이트 되었고
- 핸재패킷의 시각이 이전패킷의 시각보다 이른 시각이여도 그대로 업데이트 됨.
- 현행 프로그램에서 Data부 해더의 Slot으로 보고시각을 비교하는데 해당 데이터는 대부분 0으로 들어옴.
- 최종위치인지 비교시 년월일까지만 비교함
### 수동위치보고응답 데이터 누락되는 문제.
- MMSI가 0으로 고정되어 모뎀+보고일시가 동일하면 누락됨.
- Data 해더부에 MMSI가 0으로 고정되어 전송되고 있음.
- ===Data Binary 부분의 Slot번호로 MMSI검색하여 업데이트하도록 수정.
### 동일시간대 여려방송이 방생하여 인덱스7개 금방 차버리는 문제
- 동일시간대 일+시+분 까지 체크하여 동일한 시간대면 1개로 발송.
### DB서버 시각 동기화
- 물리적인 위치 아는사람 없음..
- 수협본회 데이터분석서버(112)번에서 Putty로 110번 접속가능.
---
##### 확인필요
- 수동위치보고 응답패킷 보고일자와 slot 불일치
```sql
/*
$SYENC,29,MD213|12,20220530061357,0,216,Ag2B9BNzq9WX8M/+P/KAA9/3iAkX/zAJ6AZQBLgKCALoCvf++Avn/RALn/1IsnF61JOgg9U=*47
$SYENC,29,MD038|12,20220530062328,0,0,AgkyBM3Tt09YK3fPGCBXxLgcD8HIEne8iBf/vuAX378wF+e+0BefvfAcn8OwjuewN+eF544=*60
$SYENC,29,MD112|12,20220530000000,0,147,AgkyBM3Tt09YK3fPGCBXxLgcD8HIEne8iBf/vuAX378wF+e+0BefvfAcn8OwjuewN+eF544=*66
$SYENC,29,MD112|12,20220530000000,0,920,AjmCBf6ztiTIET/IIBBXyQgVV8uoF5fMqBXXzLAVN8sgFN/LiBTXyhgUx8eQLtQNS/5KDGQ=*1D
$SYENC,29,MD038|12,20220530064542,0,0,AjmCBf6ztiTIET/IIBBXyQgVV8uoF5fMqBXXzLAVN8sgFN/LiBTXyhgUx8eQLtQNS/5KDGQ=*1E
*/
SELECT *
FROM TB_PASSIVLC_RSPNS
WHERE to_char(INSERT_DT , 'yyyymmdd') LIKE '20220608'
```
- [x] ~~- 패킷일부 처리안됨 : tmp_29packet
- [x] ~~- 패킷없는 데이터가 TB_TRACK에 생성됨 : tmp_nonlc : 조업구분 필드 값 15로 들어온경우(정상)
- [x] ~~- 패킷총량과 DB Table 튜플수 불일치 : 2,872 / 2877(5개는 수동)
- [x] ~~TB_TRACK과 TB_LC_FSHOPRRPT 불일치 : 2,196 / 2,872 : 키컬럼 차이(정상)
### Tss 29번 패킷 확인
```sql
-- 처리안된 퐤킷 확인
SELECT *
FROM tmp_29packet a
WHERE NOT EXISTS (
SELECT 'x'
FROM TB_LC_FSHOPRRPT_202205
WHERE instr(a.PACKET , to_char(REPORT_DT, 'yyyymmddhh24miss') ) > 1 )
-- TB_TRACK과 TB_LC_FSHOPRRPT 불일치
SELECT SLOT_NO , to_char(REPORT_DT, 'yyyymmddhh24miss') AS reporrt_txt
FROM TB_TRACK_05 a
WHERE to_char(INSERT_DT , 'yyyymmdd') LIKE '20220608'
AND NOT EXISTS (
SELECT SLOT_NO , REPORT_DT
FROM TB_LC_FSHOPRRPT_202205
WHERE to_char(INSERT_DT , 'yyyymmdd') LIKE '20220608'
AND SLOT_NO = a.slot_no
AND REPORT_DT = a.report_dt )
------패킷전송Test------------------------------------------------------------------------------------
SELECT to_char(REPORT_DT, 'yyyymmddhh24miss') AS reporrt_txt, a.*
FROM TB_LAST_LC a
--WHERE to_char(INSERT_DT , 'yyyymmdd') LIKE '20220608'
WHERE SLOT_NO = '1024'
SELECT *
FROM TB_LAST_LC a
--WHERE to_char(INSERT_DT , 'yyyymmdd') LIKE '20220608'
WHERE SLOT_NO = '1024'
SELECT *
FROM TB_LC_FSHOPRRPT_202205
WHERE to_char(INSERT_DT , 'yyyymmdd') LIKE '20220608'
--AND to_char(REPORT_DT, 'yyyymmddhh24miss') = '20220530061328'
--AND SLOT_NO = 147
ORDER BY INSERT_DT DESC , rowid desc
SELECT sysdate FROM dual
SELECT to_char(REPORT_DT, 'yyyymmddhh24miss') AS reporrt_txt, a.*
FROM TB_TRACK_05 a
WHERE to_char(INSERT_DT , 'yyyymmdd') LIKE '20220608'
--AND to_char(REPORT_DT, 'yyyymmddhh24miss') = '20220529223000'
--AND SLOT_NO = 1024
ORDER BY INSERT_DT DESC, rowid desc
```