69 lines
2.7 KiB
Java
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);
|
|
}
|
|
}
|
|
}
|