From befcd92f2be018e601860ab1fe8f45c2a2d436f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A4=80=EC=8B=9D=28PJS=29?= Date: Tue, 24 Feb 2026 16:36:29 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A7=84=EB=A3=8C=EC=9C=A0=ED=98=95=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95(=EC=A0=84=EC=B2=B4=EB=B3=B4=EA=B8=B0=20?= =?UTF-8?q?=ED=83=AD)=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ctrl/MedicalCategoryController.java | 40 +++++ .../mapper/MedicalCategoryMapper.java | 8 + .../service/MedicalCategoryService.java | 56 ++++++ .../medicalcategory/MedicalCategoryMapper.xml | 26 ++- .../medicalcategory/medicalCategoryList.js | 162 ++++++++++++++++-- .../medicalcategory/medicalCategoryList.html | 145 ++++++++++++++-- 6 files changed, 404 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/madeu/crm/settings/medicalcategory/ctrl/MedicalCategoryController.java b/src/main/java/com/madeu/crm/settings/medicalcategory/ctrl/MedicalCategoryController.java index 45f16d7..f18b5d1 100644 --- a/src/main/java/com/madeu/crm/settings/medicalcategory/ctrl/MedicalCategoryController.java +++ b/src/main/java/com/madeu/crm/settings/medicalcategory/ctrl/MedicalCategoryController.java @@ -209,4 +209,44 @@ public class MedicalCategoryController extends ManagerDraftAction { log.debug("MedicalCategoryController delMultiMedicalCategory END"); return map; } + + /** + * 진료유형 인라인(부분) 수정 + */ + @PostMapping("/updatePartialMedicalCategory.do") + public HashMap updatePartialMedicalCategory(@RequestBody HashMap paramMap, + HttpServletRequest request) { + log.debug("MedicalCategoryController updatePartialMedicalCategory START"); + HashMap map = new HashMap<>(); + + try { + map = medicalCategoryService.updatePartialMedicalCategory(paramMap); + } catch (Exception e) { + log.error("updatePartialMedicalCategory : ", e); + map.put("msgCode", Constants.FAIL); + map.put("msgDesc", "서버 오류가 발생했습니다."); + } + log.debug("MedicalCategoryController updatePartialMedicalCategory END"); + return map; + } + + /** + * 진료유형 인라인(부분) 여러건 일괄 수정 (전체보기 저장) + */ + @PostMapping("/updateBatchMedicalCategory.do") + public HashMap updateBatchMedicalCategory(@RequestBody List list, + HttpServletRequest request) { + log.debug("MedicalCategoryController updateBatchMedicalCategory START"); + HashMap map = new HashMap<>(); + + try { + map = medicalCategoryService.updateBatchMedicalCategory(list); + } catch (Exception e) { + log.error("updateBatchMedicalCategory : ", e); + map.put("msgCode", Constants.FAIL); + map.put("msgDesc", "서버 오류가 발생했습니다."); + } + log.debug("MedicalCategoryController updateBatchMedicalCategory END"); + return map; + } } diff --git a/src/main/java/com/madeu/crm/settings/medicalcategory/mapper/MedicalCategoryMapper.java b/src/main/java/com/madeu/crm/settings/medicalcategory/mapper/MedicalCategoryMapper.java index 877c2ad..97ff1d5 100644 --- a/src/main/java/com/madeu/crm/settings/medicalcategory/mapper/MedicalCategoryMapper.java +++ b/src/main/java/com/madeu/crm/settings/medicalcategory/mapper/MedicalCategoryMapper.java @@ -59,6 +59,14 @@ public interface MedicalCategoryMapper { */ int getChildCategoryCount(HashMap paramMap); + /** + * 카테고리 정보 부분 수정 (인라인 에디팅) + * + * @param paramMap + * @return + */ + int updatePartialMedicalCategory(HashMap paramMap); + /** * 거래처 목록 조회 (Depth 3 매핑용) * diff --git a/src/main/java/com/madeu/crm/settings/medicalcategory/service/MedicalCategoryService.java b/src/main/java/com/madeu/crm/settings/medicalcategory/service/MedicalCategoryService.java index ab3ae83..e729d17 100644 --- a/src/main/java/com/madeu/crm/settings/medicalcategory/service/MedicalCategoryService.java +++ b/src/main/java/com/madeu/crm/settings/medicalcategory/service/MedicalCategoryService.java @@ -91,6 +91,36 @@ public class MedicalCategoryService { return roots; } + /** + * 카테고리 정보 부분 다건 일괄 수정 (전체보기 저장) + * + * @param list + * @return + * @throws Exception + */ + public HashMap updateBatchMedicalCategory(List list) throws Exception { + HashMap map = new HashMap<>(); + try { + int successCount = 0; + for (MedicalCategoryDTO dto : list) { + // dto의 빈 값은 쿼리의 조건을 통과하지 않아 업데이트 되지 않음 + successCount += medicalCategoryMapper.updateMedicalCategory(dto); + } + if (successCount > 0) { + map.put("msgCode", Constants.OK); + map.put("success", true); + map.put("msgDesc", successCount + "건이 수정되었습니다."); + } else { + map.put("msgCode", Constants.FAIL); + map.put("msgDesc", "수정 사항이 없거나 실패했습니다."); + } + } catch (Exception e) { + log.error("updateBatchMedicalCategory Error: ", e); + throw e; + } + return map; + } + /** * 특정 카테고리 상세 정보 조회 */ @@ -282,4 +312,30 @@ public class MedicalCategoryService { return map; } + /** + * 카테고리 정보 부분 수정 (인라인 에디팅) + * + * @param paramMap + * @return + * @throws Exception + */ + public HashMap updatePartialMedicalCategory(HashMap paramMap) throws Exception { + HashMap map = new HashMap<>(); + try { + int result = medicalCategoryMapper.updatePartialMedicalCategory(paramMap); + if (result > 0) { + map.put("msgCode", Constants.OK); + map.put("success", true); + map.put("msgDesc", "수정되었습니다."); + } else { + map.put("msgCode", Constants.FAIL); + map.put("msgDesc", "수정 실패했습니다."); + } + } catch (Exception e) { + log.error("updatePartialMedicalCategory Error: ", e); + throw e; + } + return map; + } + } diff --git a/src/main/resources/mappers/crm/settings/medicalcategory/MedicalCategoryMapper.xml b/src/main/resources/mappers/crm/settings/medicalcategory/MedicalCategoryMapper.xml index 65c3ad9..6de6eb8 100644 --- a/src/main/resources/mappers/crm/settings/medicalcategory/MedicalCategoryMapper.xml +++ b/src/main/resources/mappers/crm/settings/medicalcategory/MedicalCategoryMapper.xml @@ -248,7 +248,31 @@ WHERE pid = #{pid} - + + + UPDATE medical_divi_list + + + divi_name = #{updateValue}, + + + kind_cost = #{updateValue}, + + + kind_unit = #{updateValue}, + + + list_use = #{updateValue}, + + + tax_free = #{updateValue}, + + up_date = NOW() + + WHERE pid = #{pid} + + + - +
+
+
+ +
+
+
+ +
-
- -
+ + @@ -96,7 +160,7 @@ -
+
제품/시술
@@ -114,7 +178,7 @@
-
+
부위
@@ -127,8 +191,9 @@
-
-
+
+
+ +
+ + +
-
+
+
+
+
+ 전체 진료유형 + + +
+
+ + +
+
+
+
+
@@ -151,7 +259,8 @@ - + + \ No newline at end of file