VOC_Monitor/insert_sample_data.py

405 lines
22 KiB
Python

import sqlite3
from app.utils.database import VOCDatabase
from datetime import datetime
def insert_sample_data():
db = VOCDatabase()
samples = [
{
"id": "10001",
"title": "지하철 냉방 너무 춥습니다",
"writer": "김철수",
"date": "2023-10-26",
"department": "차량운영처",
"is_public": 1,
"status": "답변완료",
"is_related": 1,
"channel": "홈페이지",
# 상세 내용
"content": "2호선 아침 8시경 에어컨이 너무 셉니다. 조절 부탁드립니다.",
"station": "서면역",
"attachment": "",
"answer": "이용에 불편을 드려 죄송합니다. 기준 온도에 맞춰 운영 중이나...",
"voc_type": "불편",
"response_type": "게시판",
"summary": "냉방 과다 불편 신고"
},
{
"id": "10002",
"title": "역무원 불친절 신고합니다",
"writer": "이영희",
"date": "2023-10-27",
"department": "역무운영처",
"is_public": 0, # 비공개
"status": "접수중",
"is_related": 0,
"channel": "모바일",
"content": "비공개 글이라 내용은 볼 수 없어야 정상이지만 테스트용으로 넣음.",
"station": "부산역",
"attachment": "file.jpg",
"answer": "",
"voc_type": "불친절",
"response_type": "전화",
"summary": "역무원 태도 불량"
},
{
"id": "10003",
"title": "전동차 내 잡상인 단속 요청",
"writer": "박민수",
"date": "2023-10-28",
"department": "승무운영처",
"is_public": 1,
"status": "처리중",
"is_related": 1,
"channel": "홈페이지",
"content": "1호선 동래역 구간 잡상인이 물건을 팔고 있습니다.",
"station": "동래역",
"attachment": "",
"answer": "",
"voc_type": "질서저해",
"response_type": "게시판",
"summary": "잡상인 단속 요청"
},
{
"id": "10004",
"title": "화장실 청결 상태 불량",
"writer": "정수진",
"date": "2023-10-28",
"department": "환경위생처",
"is_public": 1,
"status": "답변완료",
"is_related": 0,
"channel": "전화",
"content": "해운대역 화장실 휴지가 없습니다.",
"station": "해운대역",
"attachment": "",
"answer": "조치 완료하였습니다.",
"voc_type": "시설물",
"response_type": "전화",
"summary": "화장실 비품 부족"
},
{
"id": "10005",
"title": "스크린도어 고장 문의",
"writer": "최동훈",
"date": "2023-10-29",
"department": "신호통신처",
"is_public": 1,
"status": "이첩",
"is_related": 1,
"channel": "홈페이지",
"content": "연산역 스크린도어가 안 열렸습니다. 확인 부탁드립니다.",
"station": "연산역",
"attachment": "video.mp4",
"answer": "",
"voc_type": "장애",
"response_type": "게시판",
"summary": "PSD 개폐 불량"
},
# --- 실전 VOC 샘플 (2026-02) ---
{
"id": "26021381782",
"title": "1호선 39편성 4호차 차량고장",
"writer": "이영아 상담사",
"date": "2026-02-13",
"department": "제1운영사업소",
"is_public": 1,
"status": "처리완료",
"is_related": 1,
"channel": "콜센터",
"content": """□ 민원인 : 30대 음성 여성.
02/13 11:28 전화 수신 내용 : 39편성 4호차인데 여기 멈췄다고 하다가 고객 아무 말 없고 주변 소음만 들림. 방송이 없어서 놀래서 전화했었는데 고장 났다고 방송이 나와서 괜찮다 함. 어느 역인지 탐색 시 지금 신평역이라 함.
답변 내용 : 양해 사과. 연락 감사 안내.
처리결과1)) 02/13 11:29 1운행관제 아웃콜. 직원(이름 말 안 함)에게 상기 내용 전달 시 차량 고장으로 정차하고 있다 함. 지연 시간 탐색 시 지금은 확인 어렵다 함.
확인내용1)) 02/13 11:31 2운행관제 김진묵 관제사 7013으로 연락 옴. 이영아 상담사 통화. 지금 1호선 2116, 39편성 열차가 차량 고장으로 지연되고 있다 함. 앞, 뒤 열차들도 함께 지연되고 있다며 참고 안내 부탁한다 함. 연락 감사 안내. 지연 시간 탐색 시 확인 후 다시 연락 주겠다 함.
확인내용2)) 02/13 11:47 1운행관제 아웃콜 시 최찬희 관제사 받음. 지연 시간 탐색 시 약 2분 정도 지연이라 함.
처리결과2)) 02/13 12:23 1운행관제 아웃콜. 직원(이름 말 안 함)에게 타 승객 수신 건 전달 후 역사 및 열차 방송 송출 요청.
참고사항)) 관련문의 총 7 ( 전화 1 , 문자 6 ) 건 / 3 회선 수신""",
"station": "신평역",
"attachment": "",
"answer": "",
"voc_type": "기타사항",
"response_type": "전화",
"summary": "39편성 4호차 차량고장 신평역 정차"
},
{
"id": "26021381776",
"title": "1호선 24편성 7호차 기관사 칭찬",
"writer": "김은경 상담사",
"date": "2026-02-13",
"department": "제1운영사업소",
"is_public": 1,
"status": "처리완료",
"is_related": 1,
"channel": "콜센터",
"content": """▶ 02/13 08:35 문자 수신내용 : (안녕하세요 아침 지하철 )안녕하세요 아침 지하철 1호선 타고가는데 기관사님이 새해인사 해주시네요. 처음 이런거 들어보기도 하고 아침부터 기분좋게 출근하게 해주셔서 감사하기도 해서 문자남깁니다. 부산지하철 직원분들도 새해 복많이 받으시고 올해 하시는일 잘되시길 바래요
문자 답신내용 : 연락 주셔서 대단히 감사합니다. 이용하고 계신 차량의 호선과 출입문 주변에 기록된 편성, 호차 확인 부탁드립니다.
▶ 02/13 08:39 문자 수신내용 : 다대포방면 1호선 24편성 7호차입니다. 민원은 아니예요^^
문자 답신내용 : 연락 주셔서 감사합니다. 고객님의 소중한 마음 해당 부서로 전달토록 하겠습니다. 설 연휴의 따뜻한 웃음과 정이 다시 시작되는 일상에도 오래 머물기를 바랍니다. 새해 복 많이 받으세요.
처리결과)) 02/13 08:39 1운행관제 아웃콜. 직원(이름 말 안 함)에게 상기 내용 전달.
참고사항)) 관련문의 총 9 ( 문자 9 ) 건 / 5 회선 수신 (18시 20분 기준)""",
"station": "",
"attachment": "",
"answer": "",
"voc_type": "기타사항",
"response_type": "전화",
"summary": "24편성 7호차 기관사 새해인사 칭찬"
},
{
"id": "26021381777",
"title": "정식민원접수 - 하단역 노포행 열차에서 성기 노출한 승객 신고",
"writer": "배소희",
"date": "2026-02-13",
"department": "제1운영사업소",
"is_public": 1,
"status": "처리완료",
"is_related": 1,
"channel": "콜센터",
"content": """◈ 응답채널 : 문자
□ 민원인 : 20대 음성 여성.
02/13 07:39 전화 수신 내용 : 조금 전 1호선 노포행 지하철을 이용했었고 14분~15분 쯤 하단역에 도착했었다 함. 원래는 다른 자리에 앉아있던 남자가 갑자기 본인 바로 앞에 섰다 함. 본인이 못 보고 있었는데 내리려고 보니까 성기를 본인 쪽으로 내놓고 있더라 함. 이용했던 칸 탐색 시 정확하게 기억 안 난다 함. 하단역에 내릴 때 엘리베이터 있는 쪽이었고, 열차 진행 방향에서 중간쯤이었다 함. 인상착의는 키와 덩치가 컸다 함. 본인이 봤을 때는 장애를 가진 사람이었던 것 같은데 인지를 못 하는 건 아닌 것 같았다 함. 왜냐하면 본인이 내리니까 바로 다시 바지를 올리더라 함. 어두운 네이비, 남색 상의를 입고 있었던 것 같고, 너무 놀라서 바지는 정확히 못 봤다 함. 처음에는 본인에게 소변을 보는 줄 알고 너무 놀라서 옆자리로 이동했었다 함.
답변 내용 : 제보 감사. 직원이 순찰할 수 있도록 해당 부서로 전달한 뒤 정식 민원 접수를 위해 다시 연락 주겠음 안내.
처리결과)) 02/13 07:42 1운행관제 아웃콜. 직원(이름 말 안 함)에게 상기 내용 및 해당 승객 인상착의 전달.
고객아웃콜)) 02/13 07:44 고객에게 아웃콜. 해당 부서로 내용 전달해 두었음 안내. 성범죄 관련으로는 수사 권한이 있는 경찰 051-112로 직접 신고 안내. 정식민원접수 안내. 본인 이름은 배*희이고, 주소는 부산광역시 사하구 승*로 1*번길 *2 **주택 *02호라 함. 문자로 답변 받고 싶다 함""",
"station": "하단역",
"attachment": "",
"answer": """안녕하십니까? 부산교통공사 제1운영사업소 VOC 담당자입니다.
1. 고객님께서 신청하신 민원에 대한 검토 결과를 다음과 같이 알려드립니다.
2. 고객님의 민원내용은 "열차 내 음란행위자 조치 요청"에 대한 것으로 이해됩니다.
3. 고객님의 질의사항에 대해 검토한 의견은 다음과 같습니다.
가. 먼저, 도시철도 이용 중 열차 내 음란행위자로 인해 불편을 드려 죄송하다는 말씀 드립니다.
나. 역사 또는 열차 내에서 범죄를 목격하시거나 피해를 입으신 경우에는 우선 112에 신고해 주시기를 부탁 드리며, 경찰의 공문을 통한 협조 요청이 있을 경우, 「영상정보처리기기 설치‧운영지침」에 따른 소정의 절차를 거쳐 CCTV 영상의 열람 및 제공에 적극 협조하겠습니다.
다. 경찰 신고와는 별도로 부산교통공사 휴메트로 콜센터(1544-5005)로 연락 주시면, 역 직원이 신속히 출동하여 현장에서 도움을 드리도록 노력하겠으며, 아울러 유사 사례 예방을 위해 해당 질서위반자의 인상착의를 주지시켜 보안관의 열차 내 순찰을 강화하겠습니다.
4. 도시철도 이용 중 불미스러운 일을 경험하신 점에 대해 다시 한 번 안타까운 말씀을 전하며, 답변 내용에 대한 추가 설명이 필요한 경우 담당자에게 연락 주시면 친절히 안내해 드리도록 하겠습니다. 감사합니다.""",
"voc_type": "불편불만",
"response_type": "전화",
"summary": "열차 내 질서위반자 조치 요청"
},
{
"id": "26021381793",
"title": "부산진역 타는 냄새",
"writer": "최희정 상담사",
"date": "2026-02-13",
"department": "제1운영사업소",
"is_public": 1,
"status": "처리완료",
"is_related": 1,
"channel": "콜센터",
"content": """□ 민원인 : 60대 음성 남성(보안관)
02/13 16:19 전화 수신내용 : 보안관이라 함. 부산진역에 타는 냄새가 많이 난다 함.
답변내용 : 긴급전화 연결 안내.
처리결과1)) 02/13 16:19 1호선 긴급전화 핫라인 연결.
처리결과2)) 02/13 16:19 운행관제 팀장(7035)에게 아웃콜 시 김민수 부팀장 받음. 상기 내용 및 수신 전화번호 전달.
처리결과3)) 02/13 16:27 1운행관제 아웃콜 시 최찬희 관제사 받음. 다수 수신 전달 시 (원인) 확인 중에 있다 함. 32편성과 1205 열차라고 수신되고 있음 전달 시 1205 열차가 32편성이고, 부산진역 통과하면서 출입문 열고 닫을 때 (타는 냄새가) 유입된 것 같다 함.
확인내용1)) 02/13 16:33 1운행관제 아웃콜 시 최찬희 관제사 받음. 원인 확인 요청하는 고객이 있어 원인 확인됐는지 탐색 시 직원들이 나가서 확인 중에 있다 함. 원인 확인되면 연락 부탁함.
확인내용2)) 02/13 16:53 1운행관제 아웃콜 시 최찬희 관제사 받음. 부산진역 타는 냄새 원인 확인 여부 탐색 시 최병곤 부장 바꿔 줌. 공기 흡입하는 공조기실에서 연기로 추정되는 게 발생하였고, 정확한 원인은 파악하는데 시간이 소요될 것 같다 함.
참고사항)) 관련문의 총 9 ( 전화 2 , 문자 7 ) 건 / 6 회선 수신.""",
"station": "부산진역",
"attachment": "",
"answer": "",
"voc_type": "불편불만",
"response_type": "전화",
"summary": "부산진역 타는 냄새 민원"
},
{
"id": "26021381797",
"title": "1호선 38편성 반대편 출입문 옷 끼임으로 열차 지연",
"writer": "최희정 상담사",
"date": "2026-02-13",
"department": "제1운영사업소",
"is_public": 1,
"status": "처리완료",
"is_related": 1,
"channel": "콜센터",
"content": """▶ 02/13 17:31 문자 수신내용 : 지금 연산역 가는 지하철 무슨 민원인가요
문자 답신내용 : 이용하고 계신 차량의 호선과 출입문 주변에 기록된 편성, 호차 확인 부탁드립니다. 아울러 열차 내 방송이 송출되었던 건가요?
▶ 02/13 17:34 문자 수신내용 : 민언때문에 열차지연으로 양정, 시청에서 정차했습니다
처리결과)) 02/13 17:34 1운행관제 아웃콜 시 최찬호 관제사 받음. 상기 내용 전달 시 반대편 출입문에 옷이 끼어 조금 늦어졌다 함. 열차번호 8906에 38편성이라 함.
문자 답신내용 : 열차 이용에 불편을 드려 죄송합니다. 반대편 출입문에 옷이 끼인 고객이 있어 조치하는 과정에서 조금 오래 정차하였다고 합니다. 안전하고 편안한 열차 이용을 위해 더욱 노력하겠습니다. 건강한 하루 보내세요.
확인내용)) 02/13 17:36 1운행관제 아웃콜. 직원(이름 말 안 함)에게 지연 여부 탐색 시 약 2분 지연되었다 함.
※ 2026. 02. 13. 17:26 38편성 7호차 출입문에 코트 끼인 다른 고객 신고 참고""",
"station": "연산역",
"attachment": "",
"answer": "",
"voc_type": "불편불만",
"response_type": "전화",
"summary": "38편성 출입문 옷 끼임 지연"
},
{
"id": "26021381796",
"title": "1호선 10편성 부산대역에서 출입문 끼임",
"writer": "최희정 상담사",
"date": "2026-02-13",
"department": "제1운영사업소",
"is_public": 1,
"status": "처리완료",
"is_related": 1,
"channel": "콜센터",
"content": """▶ 02/13 16:48 문자 수신내용 : (제목없음)부산대역에서 정차할 때 왜 자꾸 확인 안해보고 문 닫나요
방금도 3명이나 끼일 뻔 했고 방금도 끼어서 아파 죽겠습니다
저번달에도 그래서 흰패딩에 다 묻고 세탁비 청구하려다가 참았습니다
제가 늦장부리는 것도 아니고 부산대역은 유동인구가 많아서 사람들도 많이 내리고 어르신들도 많이 내리시는데 내리시는 고 기다렸다가 탈려면 문 닫히네요 제발 잘 좀 보라고 해주세요
내리는 분들 다 밀고 타야될까요?
진짜 저 어디서든 댓글쓰거나 컴플레인 안 가는데 참다참다가 보냅니다 이러다 다음엔 크게 다칠 것 같습니다 제발좀요
문자 답신내용 : 열차 이용에 불편을 드려 죄송합니다. 혹시 해당 열차 지금 탑승 중이십니까? 출입문 주변에 기록된 편성, 호차 확인 부탁드립니다.
▶ 02/13 16:50 문자 수신내용 : 10편성 7호찹니다
처리결과1)) 02/13 16:50 1운행관제 아웃콜 시 최찬희 관제사 받음. 상기 내용 전달.
문자 답신내용 : 열차 이용에 불편을 드려 대단히 죄송합니다. 주의 운전할 수 있도록 해당 부서로 16시 50분에 전달하였습니다. 아울러 출입문에 끼이셨다면 부산대역 051-678-6128 로 전화하셔서 사고 접수 부탁드립니다. 보상의 경우 공사의 귀책사유가 있는 경우에 한해 가능한 점 양해 부탁드립니다. 안전한 열차 운행을 위해 더욱 노력하겠습니다. 건강한 하루 보내세요.
처리결과2)) 02/13 17:14 부산대역 아웃콜 시 여성수 과장 받음. 상기 내용 및 고객 역으로 연락 갈 수 있음 전달 후 고객 전화번호 참고 전달.""",
"station": "부산대역",
"attachment": "",
"answer": "",
"voc_type": "불편불만",
"response_type": "전화",
"summary": "10편성 부산대역 출입문 끼임"
},
{
"id": "26021581813",
"title": "1호선 27편성 1호차 출입문 흔들림",
"writer": "강다혜 상담사",
"date": "2026-02-15",
"department": "제1운영사업소",
"is_public": 1,
"status": "처리완료",
"is_related": 1,
"channel": "콜센터",
"content": """▶ 02/15 18:12 문자 수신 내용 : 여기 1호선 27편성 1호차인데 제일 첫번째 왼쩍 출입문이 움질일때마다 많이 흔들려서요 빠른 대처 바랍니다
처리결과)) 02/15 18:12 1운행관제 아웃콜 시 직원(이름 말 안 함) 받음. 상기 내용 전달.
문자 답신 내용 : 연락 주셔서 감사합니다. 해당 부서로 18시 12분에 전달하였습니다. 설 연휴의 따뜻한 웃음과 정이 다시 시작되는 일상에도 오래 머물기를 바랍니다. 새해 복 많이 받으세요.
▶ 02/15 18:14 문자 수신 내용 : 네 감사합니다
문자 답신 내용 : 행복한 저녁시간 보내세요.""",
"station": "",
"attachment": "",
"answer": "",
"voc_type": "기타사항",
"response_type": "전화",
"summary": "27편성 1호차 출입문 흔들림"
},
{
"id": "26021481807",
"title": "1호선 18편성 8호차 열차 내 성 행위 커플 신고",
"writer": "이지현상담사",
"date": "2026-02-14",
"department": "제1운영사업소",
"is_public": 1,
"status": "처리완료",
"is_related": 1,
"channel": "콜센터",
"content": """▶ 02/14 20:54 문자 수신내용 : 18편성 8호차 남포에서 중앙 가는 방향 이상한 행동하는 커플있어요
문자 답신내용 : 연락 주셔서 감사합니다.어떤 불편을 주고 있는지 확인 부탁드립니다.
▶ 02/14 20:55 문자 수신내용 : 껴안고 성 행위 비슷한거 하능것같아요
문자 답신내용 : 해당승객의 인상착의 알려주시면 직원에게 순찰 요청하겠습니다. 참고로 열차 내 범죄 신고는 수사권한이 있는 112 (문자가능)로 직접 신고하셔야 처리됩니다.
▶ 02/14 20:56~57 문자 수신내용 : 빨리 도움부탁드립니다 현재 중앙역이에요여자 분홍 패딩 남자 회색바지 순찰이리도 부탁드립니다
처리결과)) 02/14 20:57 1운행관제 아웃콜. 직원(이름 말 안 함)에게 내용 및 인상착의 전달.
문자 답신내용 : 직원 순찰할 수 있도록 해당 부서로 20시57분에 통보하였습니다. 성범죄 관련해서는 수사권한이 있는 051-112 (문자가능)로 신고 부탁드립니다. 아울러, 직원 순찰 결과에 대한 연락을 받으실 수 있도록 정식 민원 접수를 도와드려도 되겠습니까?
▶ 02/14 20:58 문자 수신내용 : 네
문자 답신내용 : 정식 민원 접수를 위해 고객님의 성함과 주소 확인 부탁드립니다.
▶ 02/14 21:02 문자 수신내용 : 따로 경찰에 연락 했습니다
문자 답신내용 : 연락 주셔서 감사합니다. 건강한 하루 보내세요.
참고사항)) 관련문의 10 ( 문자 10 ) 건/ 2 회선 수신.
※ 정식 민원 접수 거부 .""",
"station": "중앙역",
"attachment": "",
"answer": "",
"voc_type": "불편불만",
"response_type": "전화",
"summary": "18편성 8호차 열차 내 부적절 행위 신고"
}
]
print(f"Adding {len(samples)} sample records...")
for s in samples:
# 1. 기본 정보 Upsert
# upsert_post는 dict를 받아서 처리
# id, title, writer, date, department, is_public, status, is_related
base_info = {
"id": s["id"],
"title": s["title"],
"writer": s["writer"],
"date": s["date"],
"department": s["department"],
"is_public": s["is_public"],
"status": s["status"],
"is_related": s["is_related"]
}
db.upsert_post(base_info)
# 2. 상세 정보 Update
# update_detail도 dict를 받음
detail_info = {
"title": s["title"], # 상세 업데이트 시 제목도 같이 감
"content": s["content"],
"date": s["date"],
"station": s["station"],
"channel": s["channel"],
"attachment": s["attachment"],
"answer": s["answer"],
"voc_type": s["voc_type"],
"response_type": s["response_type"],
"summary": s["summary"]
}
db.update_detail(s["id"], detail_info)
print("Sample data insertion completed.")
if __name__ == "__main__":
insert_sample_data()