Files
vexplor/backend/src/main/java/com/pms/service/TableManagementService.java
2025-09-01 11:48:12 +09:00

69 lines
2.7 KiB
Java

package com.pms.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 테이블 관리 서비스
*/
@Service
public class TableManagementService {
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
/**
* 테이블 목록 조회
*/
public List<Map<String, Object>> getTableList() {
return sqlSessionTemplate.selectList("tableManagement.selectTableList");
}
/**
* 테이블 컬럼 정보 조회
*/
public List<Map<String, Object>> getColumnList(String tableName) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("tableName", tableName);
return sqlSessionTemplate.selectList("tableManagement.selectColumnList", paramMap); // Uses injected template
}
public void updateColumnSettings(String tableName, String columnName, Map<String, Object> settings) {
// 테이블이 table_labels에 없으면 자동 추가
sqlSessionTemplate.insert("tableManagement.insertTableIfNotExists", tableName);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("tableName", tableName);
paramMap.put("columnName", columnName); // 실제 DB 컬럼명 (변경 불가)
paramMap.put("columnLabel", settings.get("columnLabel")); // 사용자가 입력한 표시명
paramMap.put("webType", settings.get("webType"));
paramMap.put("detailSettings", settings.get("detailSettings"));
paramMap.put("codeCategory", settings.get("codeCategory"));
paramMap.put("codeValue", settings.get("codeValue"));
paramMap.put("referenceTable", settings.get("referenceTable"));
paramMap.put("referenceColumn", settings.get("referenceColumn"));
// 디버깅을 위한 로그 추가
System.out.println("저장할 컬럼 설정:");
System.out.println(" tableName: " + tableName);
System.out.println(" columnName: " + columnName);
System.out.println(" columnLabel: " + settings.get("columnLabel"));
System.out.println(" webType: " + settings.get("webType"));
sqlSessionTemplate.update("tableManagement.updateColumnSettings", paramMap);
}
public void updateAllColumnSettings(String tableName, List<Map<String, Object>> columnSettings) {
for (Map<String, Object> columnSetting : columnSettings) {
String columnName = (String) columnSetting.get("columnName");
updateColumnSettings(tableName, columnName, columnSetting);
}
}
}