사이트·관리자 봉투 물류 기능(수불·통계·레포트·재고·발주)과 DB·메뉴·E2E를 운영 반영한다.

통계 분석(전년대비·월별·계절별), 수급계획·LOT 수불, 지정판매소·실사·메뉴 링크 등을 포함한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
taekyoungc
2026-06-01 16:15:15 +09:00
parent 21e7b91871
commit 0f1d414f37
129 changed files with 18068 additions and 1585 deletions

View File

@@ -0,0 +1,66 @@
-- =============================================================================
-- 담당자(manager) 원격/운영 DB 보정 스크립트
-- =============================================================================
-- 목적
-- - 앱에서 사용하는 담당자 구분값(mg_dept_code): company | district | agency
-- - 테스트용처럼 보이지 않도록 성명·전화·이메일·직위코드를 현실적인 형태로 정리
--
-- 실행 전
-- 1) 반드시 백업(또는 스테이징 DB에서 먼저 검증)
-- 2) 아래 @LG_IDX 를 운영 지자체 PK로 맞추거나, 전체 지자체에 적용하려면 NULL 로 둠
--
-- 사용 예 (MySQL 클라이언트)
-- mysql -h HOST -u USER -p DBNAME < writable/database/manager_remote_realistic_update.sql
--
-- 주의
-- - 이 스크립트는 **기존 manager 행을 UPDATE** 합니다(INSERT 아님).
-- - mg_position_code 는 기존 시드에서 쓰던 직위 코드(1,2,3,5,6)를 순환 배정합니다.
-- 운영 DB에 해당 code_detail(T) 코드가 없다면 직위 셀렉트가 비어 보일 수 있으니, 그 경우 직위 UPDATE 블록만 주석 처리하세요.
-- =============================================================================
SET NAMES utf8mb4;
-- 적용 대상 지자체: 예) 대구 시범 lg_idx=1 이면 1 / 전체 적용이면 NULL
SET @LG_IDX := NULL;
-- ---------------------------------------------------------------------------
-- 1) 카테고리(담당자 구분) 부여: mg_idx 기준으로 3종 순환
-- ---------------------------------------------------------------------------
UPDATE `manager` m
SET m.`mg_dept_code` = ELT(MOD(m.`mg_idx`, 3) + 1, 'company', 'district', 'agency')
WHERE m.`mg_state` = 1
AND (@LG_IDX IS NULL OR m.`mg_lg_idx` = @LG_IDX);
-- ---------------------------------------------------------------------------
-- 2) 성명/전화/이메일/직위: mg_idx 기반으로 일관되게 생성(완전 난수 아님)
-- ---------------------------------------------------------------------------
UPDATE `manager` m
SET
m.`mg_name` = ELT(
MOD(m.`mg_idx`, 18) + 1,
'김민환', '이서연', '박지훈', '최유진', '정다운', '한채원',
'오승우', '윤가람', '강도현', '임하늘', '조은별', '배시현',
'문태영', '신재원', '홍수진', '권도영', '안예린', '유재혁'
),
m.`mg_tel` = CONCAT(
'053-661-',
LPAD(300 + MOD(m.`mg_idx`, 700), 4, '0')
),
m.`mg_phone` = CONCAT(
'010-',
LPAD(2000 + MOD(m.`mg_idx` * 7, 7999), 4, '0'),
'-',
LPAD(3000 + MOD(m.`mg_idx` * 11, 7999), 4, '0')
),
m.`mg_email` = CONCAT('waste.mgr.', m.`mg_idx`, '@daegu.go.kr'),
m.`mg_position_code` = ELT(MOD(m.`mg_idx`, 5) + 1, '1', '2', '3', '5', '6')
WHERE m.`mg_state` = 1
AND (@LG_IDX IS NULL OR m.`mg_lg_idx` = @LG_IDX);
-- ---------------------------------------------------------------------------
-- 3) 확인용 SELECT (실행 후 결과 점검)
-- ---------------------------------------------------------------------------
-- SELECT mg_idx, mg_lg_idx, mg_dept_code, mg_name, mg_position_code, mg_tel, mg_phone, mg_email
-- FROM manager
-- WHERE mg_state = 1 AND (@LG_IDX IS NULL OR mg_lg_idx = @LG_IDX)
-- ORDER BY mg_lg_idx, mg_idx;