[agent-pipeline] pipe-20260328071539-8dqp round-2
This commit is contained in:
@@ -308,7 +308,7 @@ public class AdminController {
|
||||
* 부서 목록 조회
|
||||
*/
|
||||
@GetMapping("/departments")
|
||||
public ResponseEntity<ApiResponse<List<Map<String, Object>>>> getDepartmentList(
|
||||
public ResponseEntity<ApiResponse<Map<String, Object>>> getDepartmentList(
|
||||
@RequestAttribute("companyCode") String companyCode,
|
||||
@RequestParam Map<String, Object> params) {
|
||||
params.put("companyCode", companyCode);
|
||||
|
||||
@@ -13,7 +13,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/approvals")
|
||||
@RequestMapping("/api/approval")
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class ApprovalController {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.erp.controller;
|
||||
|
||||
import com.erp.dto.ApiResponse;
|
||||
import com.erp.service.CommonService;
|
||||
import com.erp.service.ScreenManagementService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -17,6 +18,7 @@ import java.util.Map;
|
||||
public class ScreenManagementController {
|
||||
|
||||
private final ScreenManagementService service;
|
||||
private final CommonService commonService;
|
||||
|
||||
// ─── 화면 목록 / 단건 ─────────────────────────────────────
|
||||
|
||||
@@ -42,7 +44,7 @@ public class ScreenManagementController {
|
||||
if (screen == null) {
|
||||
return ResponseEntity.status(404).body(ApiResponse.error("화면을 찾을 수 없습니다."));
|
||||
}
|
||||
return ResponseEntity.ok(ApiResponse.success(screen));
|
||||
return ResponseEntity.ok(ApiResponse.success(commonService.toCamelCaseKeys(screen)));
|
||||
}
|
||||
|
||||
@GetMapping("/screens/{id}/menu")
|
||||
@@ -336,9 +338,10 @@ public class ScreenManagementController {
|
||||
}
|
||||
|
||||
@GetMapping("/screens/{screenId}/layout")
|
||||
public ResponseEntity<ApiResponse<List<Map<String, Object>>>> getLayout(
|
||||
public ResponseEntity<ApiResponse<Map<String, Object>>> getLayout(
|
||||
@RequestAttribute("companyCode") String companyCode,
|
||||
@PathVariable Integer screenId) {
|
||||
return ResponseEntity.ok(ApiResponse.success(service.getLayoutV1(screenId)));
|
||||
return ResponseEntity.ok(ApiResponse.success(service.getLayout(screenId, companyCode)));
|
||||
}
|
||||
|
||||
@GetMapping("/screens/{screenId}/layout-v1")
|
||||
|
||||
@@ -25,7 +25,9 @@ public class AdminService extends BaseService {
|
||||
|
||||
public List<Map<String, Object>> getAdminMenuList(Map<String, Object> params) {
|
||||
params.putIfAbsent("userLang", "ko");
|
||||
params.putIfAbsent("includeInactive", false);
|
||||
// String "false"/"true" → Boolean (OGNL !includeInactive 오작동 방지)
|
||||
Object includeInactiveRaw = params.get("includeInactive");
|
||||
params.put("includeInactive", Boolean.TRUE.equals(includeInactiveRaw) || "true".equals(includeInactiveRaw));
|
||||
params.putIfAbsent("isManagementScreen", false);
|
||||
return sqlSession.selectList("admin.selectAdminMenuList", params);
|
||||
}
|
||||
@@ -124,7 +126,7 @@ public class AdminService extends BaseService {
|
||||
pagination.put("totalPages", totalPages);
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("data", users);
|
||||
result.put("data", commonService.toCamelCaseKeysList(users));
|
||||
result.put("total", total);
|
||||
result.put("searchType", rawSearch != null ? "v2" : "none");
|
||||
result.put("pagination", pagination);
|
||||
@@ -336,15 +338,18 @@ public class AdminService extends BaseService {
|
||||
|
||||
// ── 부서 관리 ──────────────────────────────────────────────────────────
|
||||
|
||||
public List<Map<String, Object>> getDepartmentList(Map<String, Object> params) {
|
||||
public Map<String, Object> getDepartmentList(Map<String, Object> params) {
|
||||
commonService.applyCompanyCodeFilter(params);
|
||||
return sqlSession.selectList("admin.selectDepartmentList", params);
|
||||
List<Map<String, Object>> list = sqlSession.selectList("admin.selectDepartmentList", params);
|
||||
return commonService.buildListResponse(list, list.size(), params);
|
||||
}
|
||||
|
||||
// ── 회사 관리 ──────────────────────────────────────────────────────────
|
||||
|
||||
public List<Map<String, Object>> getCompanyList() {
|
||||
return sqlSession.selectList("admin.selectCompanyList", new HashMap<>());
|
||||
List<Map<String, Object>> list = sqlSession.selectList("admin.selectCompanyList", new HashMap<>());
|
||||
list.forEach(row -> row.put("data_type", "company"));
|
||||
return list;
|
||||
}
|
||||
|
||||
public Map<String, Object> getCompanyByCode(String companyCode) {
|
||||
|
||||
@@ -25,7 +25,10 @@ public class ScheduleService extends BaseService {
|
||||
Integer totalObj = sqlSession.selectOne(NS + "getScheduleListCnt", params);
|
||||
int totalCount = totalObj != null ? totalObj : 0;
|
||||
List<Map<String, Object>> list = sqlSession.selectList(NS + "getScheduleList", params);
|
||||
return commonService.buildListResponse(list, totalCount, params);
|
||||
Map<String, Object> result = new LinkedHashMap<>();
|
||||
result.put("data", list);
|
||||
result.put("total", totalCount);
|
||||
return result;
|
||||
}
|
||||
|
||||
public Map<String, Object> getScheduleInfo(Map<String, Object> params) {
|
||||
|
||||
@@ -498,6 +498,17 @@ public class ScreenManagementService extends BaseService {
|
||||
return sqlSession.selectList(NS + "selectLayoutV1ByScreen", params);
|
||||
}
|
||||
|
||||
/** GET /layout — V2 우선 조회 (layer_id=1), 없으면 V1을 { components: [...] } 로 감싸서 반환 */
|
||||
public Map<String, Object> getLayout(Integer screenId, String companyCode) {
|
||||
Map<String, Object> v2 = getLayoutV2(screenId, companyCode, 1);
|
||||
if (v2 != null) return v2;
|
||||
|
||||
List<Map<String, Object>> v1 = getLayoutV1(screenId);
|
||||
Map<String, Object> result = new LinkedHashMap<>();
|
||||
result.put("components", v1 != null ? v1 : Collections.emptyList());
|
||||
return result;
|
||||
}
|
||||
|
||||
// ═══════════════════════════════════════════════════════════
|
||||
// Layout V2
|
||||
// ═══════════════════════════════════════════════════════════
|
||||
|
||||
@@ -32,10 +32,14 @@ public class TableManagementService extends BaseService {
|
||||
|
||||
public List<Map<String, Object>> getTableList() {
|
||||
List<Map<String, Object>> tables = sqlSession.selectList(NS + "getTableList");
|
||||
// column_count BigInt → Integer 변환
|
||||
// column_count BigInt → Integer 변환 + camelCase 키 추가 (Node 호환)
|
||||
for (Map<String, Object> t : tables) {
|
||||
Object cnt = t.get("column_count");
|
||||
if (cnt instanceof Number) t.put("column_count", ((Number) cnt).intValue());
|
||||
if (cnt instanceof Number) {
|
||||
int intVal = ((Number) cnt).intValue();
|
||||
t.put("column_count", intVal);
|
||||
t.put("columnCount", intVal);
|
||||
}
|
||||
}
|
||||
return tables;
|
||||
}
|
||||
|
||||
@@ -111,6 +111,16 @@
|
||||
LIMIT 1),
|
||||
V.MENU_NAME_KOR
|
||||
) AS TRANSLATED_NAME
|
||||
, COALESCE(
|
||||
(SELECT MLT.LANG_TEXT
|
||||
FROM MULTI_LANG_KEY_MASTER MLKM
|
||||
JOIN MULTI_LANG_TEXT MLT
|
||||
ON MLKM.KEY_ID = MLT.KEY_ID
|
||||
WHERE MLKM.LANG_KEY = V.LANG_KEY_DESC
|
||||
AND MLT.LANG_CODE = #{userLang}
|
||||
LIMIT 1),
|
||||
V.MENU_DESC
|
||||
) AS TRANSLATED_DESC
|
||||
, CASE UPPER(V.STATUS)
|
||||
WHEN 'ACTIVE' THEN '활성화'
|
||||
WHEN 'INACTIVE' THEN '비활성화'
|
||||
@@ -208,6 +218,16 @@
|
||||
LIMIT 1),
|
||||
V.MENU_NAME_KOR
|
||||
) AS TRANSLATED_NAME
|
||||
, COALESCE(
|
||||
(SELECT MLT.LANG_TEXT
|
||||
FROM MULTI_LANG_KEY_MASTER MLKM
|
||||
JOIN MULTI_LANG_TEXT MLT
|
||||
ON MLKM.KEY_ID = MLT.KEY_ID
|
||||
WHERE MLKM.LANG_KEY = V.LANG_KEY_DESC
|
||||
AND MLT.LANG_CODE = #{userLang}
|
||||
LIMIT 1),
|
||||
V.MENU_DESC
|
||||
) AS TRANSLATED_DESC
|
||||
, CASE UPPER(V.STATUS)
|
||||
WHEN 'ACTIVE' THEN '활성화'
|
||||
WHEN 'INACTIVE' THEN '비활성화'
|
||||
|
||||
@@ -393,12 +393,12 @@
|
||||
SELECT
|
||||
LAYER_ID
|
||||
, LAYER_NAME
|
||||
, CONDITION_CONFIG
|
||||
, COALESCE(CONDITION_CONFIG, '{}') AS CONDITION_CONFIG
|
||||
, JSONB_ARRAY_LENGTH(COALESCE(LAYOUT_DATA->'components', '[]'::jsonb)) AS COMPONENT_COUNT
|
||||
, UPDATED_AT
|
||||
FROM SCREEN_LAYOUTS_V2
|
||||
WHERE SCREEN_ID = #{screenId}
|
||||
<if test="companyCode != null and companyCode != "*"">
|
||||
<if test='companyCode != null and companyCode != "*"'>
|
||||
AND (COMPANY_CODE = #{companyCode} OR COMPANY_CODE = '*')
|
||||
</if>
|
||||
ORDER BY LAYER_ID
|
||||
|
||||
Reference in New Issue
Block a user