2026-02-14 병원휴일관련 수정

This commit is contained in:
pjs
2026-02-14 15:15:03 +09:00
parent 3899fc47fd
commit 1175eb13c5
8 changed files with 2580 additions and 1365 deletions

View File

@@ -25,6 +25,7 @@ import javax.xml.xpath.XPathFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -33,6 +34,9 @@ import org.xml.sax.SAXException;
import com.madeu.dao.web.webpublicholiday.WebPublicHolidaySqlMapDAO;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@@ -42,9 +46,30 @@ public class InsertPublicHolidayBatchExcute {
@Autowired
private WebPublicHolidaySqlMapDAO webPublicHolidaySqlMapDAO;
// 21~22년 (공공 api 조회 가능 연도가 내년꺼까지만 가능.) https://www.data.go.kr/dataset/15012690/openapi.do
/**
* [임시 실행용] 서버 시작(또는 리로드) 시 배치를 즉시 1회 실행합니다.
* 실행이 완료된 후에는 다시 주석 처리하거나 삭제하세요.
*/
@EventListener(ContextRefreshedEvent.class)
public void forceRunBatch() {
log.info("============================================================================");
log.info("============== [FORCE START] Public Holiday Batch Execution ==============");
log.info("============================================================================");
try {
go();
} catch (Exception e) {
log.error("Force Batch Error", e);
}
log.info("============================================================================");
log.info("============== [FORCE END] Public Holiday Batch Execution ================");
log.info("============================================================================");
}
// 21~22년 (공공 api 조회 가능 연도가 내년꺼까지만 가능.)
// https://www.data.go.kr/dataset/15012690/openapi.do
@Scheduled(cron = "0 0 03 1 * ?") // 매월 1일 03:00
// @Scheduled(cron = "0 0/1 * * * ?")
@Transactional
public void go() {
log.debug("InsertPublicHolidayBatchExcute - run start");
@@ -95,13 +120,13 @@ public class InsertPublicHolidayBatchExcute {
publicHolidayParamMap.put("dateName", dateName);
publicHolidayParamMap.put("locDate", sbTemp.toString());
List<Map<String, Object>> listMapTemp = webPublicHolidaySqlMapDAO.selectListPublicHolidayDate(publicHolidayParamMap);
List<Map<String, Object>> listMapTemp = webPublicHolidaySqlMapDAO
.selectListPublicHolidayDate(publicHolidayParamMap);
// 존재하는 공휴일일 경우
if (1 <= listMapTemp.size()) {
}
else{
} else {
String muPublicHolidayId = ("PH").concat(String.valueOf(System.currentTimeMillis()));
publicHolidayParamMap.put("muPublicHolidayId", muPublicHolidayId);
publicHolidayParamMap.put("regId", "BATCH_SYSTEM");
@@ -128,13 +153,14 @@ public class InsertPublicHolidayBatchExcute {
DocumentBuilder builder;
Document doc = null;
String addr = "http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService";
String addr = "https://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService";
String query = "/getRestDeInfo?";
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(addr);
stringBuffer.append(query);
stringBuffer.append("ServiceKey=" + "IMP1dVPnFLL2UYlH8yyENSeLeS5UMLYxnaomTs5L2IHp8qnyd%2FzApTGcCUV9%2FD76wZQzD24HegGoNFotIoh9GA%3D%3D");
stringBuffer.append("ServiceKey="
+ "bd37daa85809e0f1ef330722c6b92dd8ebbe7226a63be7644d9f334662996e7c");
stringBuffer.append("&solYear=" + year);
stringBuffer.append("&solMonth=" + month);
@@ -157,9 +183,11 @@ public class InsertPublicHolidayBatchExcute {
}
// xml 리절트 출력부분
/*if(0<result.toString().length()){
logger.debug("result :"+result.toString());
}*/
/*
* if(0<result.toString().length()){
* logger.debug("result :"+result.toString());
* }
*/
rd.close();
@@ -183,8 +211,7 @@ public class InsertPublicHolidayBatchExcute {
holidayList.add(holidayMapTemp);
}
}
catch (Exception e) {
} catch (Exception e) {
e.printStackTrace();
}

View File

@@ -21,7 +21,6 @@ import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Controller
public class WebHospitalController extends ManagerDraftAction {
@@ -40,7 +39,8 @@ public class WebHospitalController extends ManagerDraftAction{
* @return
*/
@RequestMapping(value = "/webhospital/selectHospitalIntro.do")
public String selectHospitalIntro(HttpSession session,HttpServletRequest request, HttpServletResponse response, Model model) {
public String selectHospitalIntro(HttpSession session, HttpServletRequest request, HttpServletResponse response,
Model model) {
log.debug("WebHospitalController selectHospitalIntro START");
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
@@ -49,8 +49,7 @@ public class WebHospitalController extends ManagerDraftAction{
try {
if (!webCheckLogin(session)) {
return "/web/login/logout";
}
else {
} else {
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
map = webHospitalService.selectHospitalIntro(paramMap);
@@ -60,8 +59,7 @@ public class WebHospitalController extends ManagerDraftAction{
model.addAttribute("deleteUseYn", map.get("deleteUseYn"));
model.addAttribute("downloadUseYn", map.get("downloadUseYn"));
}
}
catch (Exception e) {
} catch (Exception e) {
e.printStackTrace();
return "/web/login/logout";
}
@@ -87,21 +85,17 @@ public class WebHospitalController extends ManagerDraftAction{
try {
if (!webCheckLogin(session)) {
return null;
}
else{
} else {
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
map = webHospitalService.selectHospital(paramMap);
}
}
catch (Exception e) {
} catch (Exception e) {
e.printStackTrace();
return null;
}
finally {
} finally {
if (Constants.OK == map.get("msgCode")) {
}
else{
} else {
map.put("msgCode", Constants.FAIL);
map.put("success", false);
if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
@@ -131,21 +125,17 @@ public class WebHospitalController extends ManagerDraftAction{
try {
if (!webCheckLogin(session)) {
return null;
}
else{
} else {
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
map = webHospitalService.selectWorkTime(paramMap);
}
}
catch (Exception e) {
} catch (Exception e) {
e.printStackTrace();
return null;
}
finally {
} finally {
if (Constants.OK == map.get("msgCode")) {
}
else{
} else {
map.put("msgCode", Constants.FAIL);
map.put("success", false);
if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
@@ -157,6 +147,47 @@ public class WebHospitalController extends ManagerDraftAction{
return HttpUtil.makeHashToJsonModelAndView(map);
}
/**
* 병원 휴일 정보 조회 (달력 표출용)
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/webhospital/selectHospitalHolidayList.do")
public ModelAndView selectHospitalHolidayList(HttpSession session, HttpServletRequest request,
HttpServletResponse response) {
log.debug("WebHospitalController selectHospitalHolidayList START");
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
HashMap<String, Object> map = new HashMap<String, Object>();
try {
if (!webCheckLogin(session)) {
return null;
} else {
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
map = webHospitalService.selectHospitalHolidayList(paramMap);
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (Constants.OK == map.get("msgCode")) {
} else {
map.put("msgCode", Constants.FAIL);
map.put("success", false);
if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
map.put("msgDesc", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다.");
}
}
}
log.debug("WebHospitalController selectHospitalHolidayList END");
return HttpUtil.makeHashToJsonModelAndView(map);
}
/**
* 병원 정보 수정
*
@@ -165,7 +196,8 @@ public class WebHospitalController extends ManagerDraftAction{
* @return
*/
@RequestMapping(value = "/webhospital/updateHospital.do")
public ModelAndView updateHospital(HttpSession session,HttpServletRequest request, HttpServletResponse response, MultipartHttpServletRequest file) {
public ModelAndView updateHospital(HttpSession session, HttpServletRequest request, HttpServletResponse response,
MultipartHttpServletRequest file) {
log.debug("WebHospitalController updateHospital START");
@@ -177,23 +209,19 @@ public class WebHospitalController extends ManagerDraftAction{
try {
if (!webCheckLogin(session)) {
return null;
}
else{
} else {
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId")));
paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId")));
map = webHospitalService.updateHospital(paramMap);
}
}
catch (Exception e) {
} catch (Exception e) {
e.printStackTrace();
errorMsg.append(e);
}
finally {
} finally {
if (Constants.OK == map.get("msgCode")) {
}
else{
} else {
map.put("msgCode", Constants.FAIL);
map.put("success", false);
if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
@@ -213,18 +241,17 @@ public class WebHospitalController extends ManagerDraftAction{
insertMap.put("requestValue", String.valueOf(paramMap));
insertMap.put("responseValue", String.valueOf(map));
insertMap.put("tId", map.get("tId"));
if((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) || String.valueOf(errorMsg).length() == 0){
if ((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null)
|| String.valueOf(errorMsg).length() == 0) {
insertMap.put("resultCode", "SUCCESS");
}
else{
} else {
insertMap.put("resultCode", "ERROR");
}
insertMap.put("resultMsg", String.valueOf(errorMsg));
insertMap.put("muMemberId", paramMap.get("loginMemberId"));
webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap);
}
catch (Exception e) {
} catch (Exception e) {
e.printStackTrace();
}
}

View File

@@ -5,8 +5,13 @@ import java.util.HashMap;
public interface WebHospitalService {
public HashMap<String, Object> selectHospitalIntro(HashMap<String, Object> paramMap) throws Exception;
public HashMap<String, Object> selectHospital(HashMap<String, Object> paramMap) throws Exception;
public HashMap<String, Object> selectWorkTime(HashMap<String, Object> paramMap) throws Exception;
public HashMap<String, Object> updateHospital(HashMap<String, Object> paramMap) throws Exception;
public HashMap<String, Object> selectHospitalHolidayList(HashMap<String, Object> paramMap) throws Exception;
}

View File

@@ -45,7 +45,6 @@ public class WebHospitalServiceImpl implements WebHospitalService {
@Autowired
private WebAuthMenuRelationSqlMapDAO webAuthMenuRelationSqlMapDAO;
/**
* 병원 상세 화면으로 이동.
*
@@ -84,8 +83,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
}
else {
} else {
check = false;
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -97,7 +95,8 @@ public class WebHospitalServiceImpl implements WebHospitalService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap);
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
int authMenuRelationlistMapSize = authMenuRelationlistMap.size();
if (1 == authMenuRelationlistMapSize) {
@@ -109,14 +108,12 @@ public class WebHospitalServiceImpl implements WebHospitalService {
map.put("updateUseYn", authMenuRelationlistMap.get(0).get("updateUseYn"));
map.put("deleteUseYn", authMenuRelationlistMap.get(0).get("deleteUseYn"));
map.put("downloadUseYn", authMenuRelationlistMap.get(0).get("downloadUseYn"));
}
else {
} else {
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다.");
}
}
}
catch(Exception e){
} catch (Exception e) {
e.printStackTrace();
throw e;
}
@@ -125,7 +122,6 @@ public class WebHospitalServiceImpl implements WebHospitalService {
return map;
}
/**
* 병원 정보 상세 조회 (one)
*
@@ -155,8 +151,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
}
else {
} else {
check = false;
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -167,20 +162,19 @@ public class WebHospitalServiceImpl implements WebHospitalService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap);
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
if (1 == authMenuRelationlistMap.size()) {
if (("Y").equals(authMenuRelationlistMap.get(0).get("selectUseYn"))) {
}
else {
} else {
check = false;
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "조회 권한 정보가 없습니다.");
}
}
else {
} else {
check = false;
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다.");
@@ -194,15 +188,15 @@ public class WebHospitalServiceImpl implements WebHospitalService {
if (1 == hospitalListMapSize) {
// 병원 휴일 정보 조회
paramMap.put("muHospitalId", hospitalListMap.get(0).get("muHospitalId"));
List<Map<String, Object>> hospitalHolidayListMap = webHospitalHolidaySqlMapDAO.selectListHospitalHoliday(paramMap);
List<Map<String, Object>> hospitalHolidayListMap = webHospitalHolidaySqlMapDAO
.selectListHospitalHoliday(paramMap);
hospitalListMap.get(0).put("holidayRows", hospitalHolidayListMap);
map.put("msgCode", Constants.OK);
map.put("success", "true");
map.put("rows", hospitalListMap);
}
else {
} else {
check = false;
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "병원 정보가 없습니다.");
@@ -210,8 +204,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
}
}
catch(Exception e){
} catch (Exception e) {
e.printStackTrace();
throw e;
}
@@ -248,8 +241,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
}
else {
} else {
check = false;
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -263,15 +255,15 @@ public class WebHospitalServiceImpl implements WebHospitalService {
if (1 == hospitalListMapSize) {
// 병원 휴일 정보 조회
paramMap.put("muHospitalId", hospitalListMap.get(0).get("muHospitalId"));
List<Map<String, Object>> hospitalHolidayListMap = webHospitalHolidaySqlMapDAO.selectListHospitalHoliday(paramMap);
List<Map<String, Object>> hospitalHolidayListMap = webHospitalHolidaySqlMapDAO
.selectListHospitalHoliday(paramMap);
hospitalListMap.get(0).put("holidayRows", hospitalHolidayListMap);
map.put("msgCode", Constants.OK);
map.put("success", "true");
map.put("rows", hospitalListMap);
}
else {
} else {
check = false;
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "병원 정보가 없습니다.");
@@ -279,8 +271,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
}
}
catch(Exception e){
} catch (Exception e) {
e.printStackTrace();
throw e;
}
@@ -288,6 +279,54 @@ public class WebHospitalServiceImpl implements WebHospitalService {
return map;
}
/**
* 병원 휴일 정보 조회 (달력 표출용)
*
* @param paramMap
* @return
* @throws Exception
*/
@Override
public HashMap<String, Object> selectHospitalHolidayList(HashMap<String, Object> paramMap) throws Exception {
log.debug("WebHospitalServiceImpl selectHospitalHolidayList START");
HashMap<String, Object> map = new HashMap<String, Object>();
try {
// 병원 정보 조회 (병원 ID 등을 가져오기 위함)
// paramMap에 muHospitalId가 없을 수 있으므로, 로그인한 사용자의 병원을 찾아야 할 수도 있음.
// 하지만 보통 관리자 메뉴이므로 muHospitalId를 parameter로 받거나, 없으면 첫번째 병원을 가져오는 로직이 필요할 수 있음.
// 여기서는 selectHospital 로직을 참고하여 병원 조회를 먼저 수행.
List<Map<String, Object>> hospitalListMap = null;
if (paramMap.get("muHospitalId") == null || "".equals(paramMap.get("muHospitalId"))) {
hospitalListMap = webHospitalSqlMapDAO.selectHospital(paramMap);
if (hospitalListMap.size() > 0) {
paramMap.put("muHospitalId", hospitalListMap.get(0).get("muHospitalId"));
}
}
// muHospitalId가 있어야 조회 가능
if (paramMap.get("muHospitalId") != null && !"".equals(paramMap.get("muHospitalId"))) {
// 병원 휴일 및 공휴일 조회 (UNION 쿼리 사용)
List<Map<String, Object>> holidayList = webHospitalSqlMapDAO.selectHospitalHoliday(paramMap);
map.put("msgCode", Constants.OK);
map.put("success", "true");
map.put("rows", holidayList);
} else {
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "병원 정보가 없습니다.");
}
} catch (Exception e) {
e.printStackTrace();
throw e;
}
log.debug("WebHospitalServiceImpl selectHospitalHolidayList END");
return map;
}
/**
* 병원 정보 수정
*
@@ -395,7 +434,6 @@ public class WebHospitalServiceImpl implements WebHospitalService {
String sunBreakEndTime = String.valueOf(paramMap.get("sunBreakEndTime"));
String publicHolidayUseYn = String.valueOf(paramMap.get("publicHolidayUseYn"));
if (true != ValidationCheckUtil.emptyCheck(muHospitalId)) {
check = false;
map.put("msgCode", Constants.FAIL);
@@ -426,8 +464,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "월요일 휴게 종료시간 정보가 없습니다.");
}
}
else {
} else {
monOpenYn = "N";
monOpenStartTime = "00:00";
monOpenEndTime = "00:00";
@@ -459,8 +496,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "화요일 휴게 종료시간 정보가 없습니다.");
}
}
else {
} else {
tueOpenYn = "N";
tueOpenStartTime = "00:00";
tueOpenEndTime = "00:00";
@@ -492,8 +528,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "수요일 휴게 종료시간 정보가 없습니다.");
}
}
else {
} else {
wedOpenYn = "N";
wedOpenStartTime = "00:00";
wedOpenEndTime = "00:00";
@@ -525,8 +560,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "목요일 휴게 종료시간 정보가 없습니다.");
}
}
else {
} else {
thuOpenYn = "N";
thuOpenStartTime = "00:00";
thuOpenEndTime = "00:00";
@@ -558,8 +592,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "금요일 휴게 종료시간 정보가 없습니다.");
}
}
else {
} else {
friOpenYn = "N";
friOpenStartTime = "00:00";
friOpenEndTime = "00:00";
@@ -591,8 +624,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "토요일 휴게 종료시간 정보가 없습니다.");
}
}
else {
} else {
satOpenYn = "N";
satOpenStartTime = "00:00";
satOpenEndTime = "00:00";
@@ -624,8 +656,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "일요일 휴게 종료시간 정보가 없습니다.");
}
}
else {
} else {
sunOpenYn = "N";
sunOpenStartTime = "00:00";
sunOpenEndTime = "00:00";
@@ -646,8 +677,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
}
else {
} else {
check = false;
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -659,21 +689,20 @@ public class WebHospitalServiceImpl implements WebHospitalService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap);
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
int authMenuRelationlistMapSize = authMenuRelationlistMap.size();
if (1 == authMenuRelationlistMapSize) {
if (("Y").equals(authMenuRelationlistMap.get(0).get("updateUseYn"))) {
}
else {
} else {
check = false;
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "수정 권한 정보가 없습니다.");
}
}
else {
} else {
check = false;
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다.");
@@ -711,6 +740,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
holidayParamMap.put("hospitalHolidayName", hospitalHolidayName);
holidayParamMap.put("locDate", locDate);
holidayParamMap.put("repeatYn", repeatYn);
holidayParamMap.put("useYn", "Y");
holidayParamMap.put("regId", paramMap.get("regId"));
holidayParamMap.put("modId", paramMap.get("modId"));
holidayParamMap.put("tId", paramMap.get("tId"));
@@ -721,8 +751,7 @@ public class WebHospitalServiceImpl implements WebHospitalService {
map.put("msgCode", Constants.OK);
map.put("msgDesc", "수정되었습니다.");
}
}
catch (Exception e) {
} catch (Exception e) {
e.printStackTrace();
throw e;
}

View File

@@ -190,22 +190,26 @@
</select>
<select id="selectHospitalHoliday" parameterType="hashmap" resultType="hashmap">
SELECT 'hospitalHoliday' AS dateType
, DATE_FORMAT(LOC_DATE, '%Y.%m.%d') AS locDate
SELECT 'hospitalHoliday' AS "dateType"
, HOSPITAL_HOLIDAY_NAME AS "hospitalHolidayName"
, DATE_FORMAT(LOC_DATE, '%Y-%m-%d') AS "locDate"
FROM MU_HOSPITAL_HOLIDAY MH
WHERE MH.USE_YN = 'Y'
AND MH.MU_HOSPITAL_ID = #{muHospitalId}
AND (
(MH.REPEAT_YN = 'Y')
OR
(MH.REPEAT_YN = 'N' AND DATE_FORMAT( MH.LOC_DATE, '%Y' ) >= DATE_FORMAT( CURDATE( ), '%Y' ))
)
UNION
UNION ALL
(
SELECT 'publicHoliday' AS dateType
, DATE_FORMAT(LOC_DATE, '%Y.%m.%d') AS locDate
SELECT 'publicHoliday' AS "dateType"
, MPH.PUBLIC_HOLIDAY_NAME AS "publicHolidayName"
, DATE_FORMAT(MPH.LOC_DATE, '%Y-%m-%d') AS "locDate"
FROM MU_PUBLIC_HOLIDAY MPH
JOIN MU_HOSPITAL
ON PUBLIC_HOLIDAY_USE_YN='Y'
JOIN MU_HOSPITAL MH
ON MH.MU_HOSPITAL_ID = #{muHospitalId}
AND MH.PUBLIC_HOLIDAY_USE_YN = 'Y'
WHERE MPH.USE_YN = 'Y'
AND DATE_FORMAT( MPH.LOC_DATE, '%Y' ) >= DATE_FORMAT( CURDATE( ), '%Y' )
)

File diff suppressed because it is too large Load Diff

View File

@@ -127,6 +127,9 @@ function fn_selectHospitalJson(){
// 휴일 상세 정보
fn_addRow2(hospitalRows.holidayRows);
// 달력 조회 (병원 ID 확보 후 실행)
fn_selectHospitalHolidayList();
}
else {
modalEvent.danger("조회 오류", data.msgDesc);
@@ -246,8 +249,8 @@ function fn_addRow(param){
addRowHtml += ' <div class="select_list">';
addRowHtml += ' <div class="select_box dropdown">';
addRowHtml += ' <button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">반복 여부</button>';
addRowHtml += ' <input type="hidden" name="repeatYn" value=""/>';
addRowHtml += ' <button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">반복 안함</button>';
addRowHtml += ' <input type="hidden" name="repeatYn" value="N"/>';
addRowHtml += ' <ul class="select_option_list dropdown-menu">';
addRowHtml += ' <li class="option_list_item first" onclick="fn_clickSelectValue(this, \'Y\', \'반복\');">반복</li>';
addRowHtml += ' <li class="option_list_item" onclick="fn_clickSelectValue(this, \'N\', \'반복 안함\');">반복 안함</li>';
@@ -715,6 +718,83 @@ function fn_pageInit(){
fn_selectHospitalJson();
}
/****************************************************************************
* 병원 휴일 정보 조회 (달력용)
****************************************************************************/
function fn_selectHospitalHolidayList() {
let calendarEl = document.getElementById('calendar');
let calendar = new FullCalendar.Calendar(calendarEl, {
initialView: 'dayGridMonth',
fixedWeekCount: false,
contentHeight: 'auto',
headerToolbar: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,listMonth'
},
locale: 'ko',
events: function (info, successCallback, failureCallback) {
let formData = new FormData();
// 필요한 파라미터가 있다면 추가 (예: 검색 년월 등)
// 여기서는 전체 조회를 하거나, FullCalendar가 주는 start/end 날짜를 활용할 수 있음
// 하지만 현재 API는 파라미터 없이 병원 ID 기준으로 다 가져오거나 날짜 조건이 필요함.
// selectHospitalHoliday 쿼리를 보면 locDate 등의 조건이 있을 수 있음.
// 일단 전체 조회 또는 현재 월 기준 조회가 필요하지만, 쿼리 확인 결과 조건이 없거나 locDate 조건이 있을 수 있음.
// 여기서는 단순히 호출하고 결과 매핑.
// FullCalendar는 startStr, endStr을 쿼리스트링으로 보낼 수 있음 (?start=...&end=...)
// API 컨트롤러에서 이를 paramMap으로 받아서 쿼리에 넘겨줘야 함.
// 현재 selectHospitalHoliday 쿼리(WebHospitalSqlMap.xml)를 확인해보지 않았지만,
// 보통 날짜 조건이 없다면 전체를 가져옴.
formData.append("paramStartDate", info.startStr);
formData.append("paramEndDate", info.endStr);
formData.append("muHospitalId", $("#muHospitalId").val());
$.ajax({
url: encodeURI('/webhospital/selectHospitalHolidayList.do'),
data: formData,
dataType: "json",
processData: false,
contentType: false,
type: 'POST',
success: function (data) {
if ('0' == data.msgCode) {
let events = [];
let rows = data.rows;
if (rows) {
for (let i = 0; i < rows.length; i++) {
let row = rows[i];
let color = '#3985EA'; // 기본 파란색 (Theme Blue)
if (row.dateType === 'publicHoliday') {
color = '#FF5252'; // 공휴일 빨간색 (Vibrant Red)
} else if (row.dateType === 'hospitalHoliday') {
color = '#2ECC71'; // 병원휴일 초록색 (Vibrant Green)
}
events.push({
title: row.hospitalHolidayName || row.publicHolidayName || '휴일',
start: row.locDate, // yyyy.MM.dd 포맷이라면 yyyy-MM-dd로 변환 필요할 수 있음
color: color,
allDay: true
});
}
}
successCallback(events);
} else {
failureCallback(data.msgDesc);
}
},
error: function () {
failureCallback('실패');
}
});
}
});
calendar.render();
}
/****************************************************************************
* 페이지 event
****************************************************************************/

View File

@@ -1,10 +1,9 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{/web/layout/homeLayout}">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{/web/layout/homeLayout}">
<th:block layout:fragment="layout_css">
<link rel="stylesheet" href="/css/web/hospital_info.css?v1.1">
<script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.js'></script>
</th:block>
<th:block layout:fragment="layout_top_script">
@@ -26,7 +25,40 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<p class="page_title">병원 기본정보</p>
<div class="info_box">
<div class="info">
<div class="info_left">
<div class="form_box first">
<div class="hospital_box" style="margin-top: 0;">
<!-- 달력 영역 -->
<div id='calendar' style="margin-bottom: 20px;"></div>
<ul class="hospital_list" id="hospitalHolidayList">
<li class="list_title_li">
<span class="list_title">휴일명</span>
<span class="list_title">날짜</span>
<span class="list_title">일정반복</span>
<span class="list_title"></span>
</li>
</ul>
</div>
<div class="holiday_box">
<p class="holiday_title">법정 공휴일</p>
<div class="check_holiday_box">
<div class="check_box">
<label for="checkPublicHolidayUseYn">
<input class="select_check_hide" type="checkbox" id="checkPublicHolidayUseYn"
name="checkPublicHolidayUseYn" value="Y">
<div class="select_check_show"></div>
</label>
</div>
<span>법정 공휴일 반영</span>
</div>
</div><!--content_box-->
</div>
</div>
<div class="info_right">
<div class="form_box first">
<p class="title">운영시간</p>
@@ -49,7 +81,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="monOpenStartTime">
<ul class="select_option_list dropdown-menu" id="selMonOpenStartTime"></ul>
@@ -60,7 +93,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="monOpenEndTime">
<ul class="select_option_list dropdown-menu" id="selMonOpenEndTime"></ul>
@@ -71,7 +105,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="monBreakStartTime">
<ul class="select_option_list dropdown-menu" id="selMonBreakStartTime"></ul>
</div><!--select_box-->
@@ -81,7 +116,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="monBreakEndTime">
<ul class="select_option_list dropdown-menu" id="selMonBreakEndTime"></ul>
</div><!--select_box-->
@@ -106,7 +142,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="tueOpenStartTime">
<ul class="select_option_list dropdown-menu" id="selTueOpenStartTime"></ul>
</div><!--select_box-->
@@ -116,7 +153,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="tueOpenEndTime">
<ul class="select_option_list dropdown-menu" id="selTueOpenEndTime"></ul>
</div><!--select_box-->
@@ -126,7 +164,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="tueBreakStartTime">
<ul class="select_option_list dropdown-menu" id="selTueBreakStartTime"></ul>
</div><!--select_box-->
@@ -136,7 +175,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="tueBreakEndTime">
<ul class="select_option_list dropdown-menu" id="selTueBreakEndTime"></ul>
</div><!--select_box-->
@@ -161,7 +201,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="wedOpenStartTime">
<ul class="select_option_list dropdown-menu" id="selWedOpenStartTime"></ul>
</div><!--select_box-->
@@ -171,7 +212,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="wedOpenEndTime">
<ul class="select_option_list dropdown-menu" id="selWedOpenEndTime"></ul>
</div><!--select_box-->
@@ -181,7 +223,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="wedBreakStartTime">
<ul class="select_option_list dropdown-menu" id="selWedBreakStartTime"></ul>
</div><!--select_box-->
@@ -191,7 +234,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="wedBreakEndTime">
<ul class="select_option_list dropdown-menu" id="selWedBreakEndTime"></ul>
</div><!--select_box-->
@@ -216,7 +260,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="thuOpenStartTime">
<ul class="select_option_list dropdown-menu" id="selThuOpenStartTime"></ul>
</div><!--select_box-->
@@ -226,7 +271,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="thuOpenEndTime">
<ul class="select_option_list dropdown-menu" id="selThuOpenEndTime"></ul>
</div><!--select_box-->
@@ -236,7 +282,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="thuBreakStartTime">
<ul class="select_option_list dropdown-menu" id="selThuBreakStartTime"></ul>
</div><!--select_box-->
@@ -246,7 +293,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="thuBreakEndTime">
<ul class="select_option_list dropdown-menu" id="selThuBreakEndTime"></ul>
</div><!--select_box-->
@@ -271,7 +319,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="friOpenStartTime">
<ul class="select_option_list dropdown-menu" id="selFriOpenStartTime"></ul>
</div><!--select_box-->
@@ -281,7 +330,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="friOpenEndTime">
<ul class="select_option_list dropdown-menu" id="selFriOpenEndTime"></ul>
</div><!--select_box-->
@@ -291,7 +341,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="friBreakStartTime">
<ul class="select_option_list dropdown-menu" id="selFriBreakStartTime"></ul>
</div><!--select_box-->
@@ -301,7 +352,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="friBreakEndTime">
<ul class="select_option_list dropdown-menu" id="selFriBreakEndTime"></ul>
</div><!--select_box-->
@@ -327,7 +379,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="satOpenStartTime">
<ul class="select_option_list dropdown-menu" id="selSatOpenStartTime"></ul>
</div><!--select_box-->
@@ -337,7 +390,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="satOpenEndTime">
<ul class="select_option_list dropdown-menu" id="selSatOpenEndTime"></ul>
</div><!--select_box-->
@@ -347,7 +401,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="satBreakStartTime">
<ul class="select_option_list dropdown-menu" id="selSatBreakStartTime"></ul>
</div><!--select_box-->
@@ -357,7 +412,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="satBreakEndTime">
<ul class="select_option_list dropdown-menu" id="selSatBreakEndTime"></ul>
</div><!--select_box-->
@@ -383,7 +439,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="sunOpenStartTime">
<ul class="select_option_list dropdown-menu" id="selSunOpenStartTime"></ul>
</div><!--select_box-->
@@ -393,7 +450,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="sunOpenEndTime">
<ul class="select_option_list dropdown-menu" id="selSunOpenEndTime"></ul>
</div><!--select_box-->
@@ -403,7 +461,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_time_list_box">
<div class="select_list first">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="sunBreakStartTime">
<ul class="select_option_list dropdown-menu" id="selSunBreakStartTime"></ul>
</div><!--select_box-->
@@ -413,7 +472,8 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<div class="select_list">
<div class="select_box dropdown">
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<button type="button" class="label" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
<input type="hidden" id="sunBreakEndTime">
<ul class="select_option_list dropdown-menu" id="selSunBreakEndTime"></ul>
</div><!--select_box-->
@@ -432,32 +492,10 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
</ul>
</div>
<div class="holiday_box">
<p class="holiday_title">법정 공휴일</p>
<div class="check_holiday_box">
<div class="check_box">
<label for="checkPublicHolidayUseYn">
<input class="select_check_hide" type="checkbox" id="checkPublicHolidayUseYn" name="checkPublicHolidayUseYn" value="Y">
<div class="select_check_show"></div>
</label>
<div class="button_box">
<button id="btnUpdateHospital">저장</button>
</div>
<span>법정 공휴일 반영</span>
</div>
</div><!--content_box-->
<div class="hospital_box">
<p class="hospital_title">운영시간</p>
<ul class="hospital_list" id="hospitalHolidayList">
<li class="list_title_li">
<span class="list_title">휴일명</span>
<span class="list_title">날짜</span>
<span class="list_title">일정반복</span>
<span class="list_title"></span>
</li>
</ul>
</div>
</div>
@@ -477,9 +515,7 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
</div>
</div> -->
<div class="button_box">
<button id="btnUpdateHospital">저장</button>
</div>
</div>
</div>
</div>
@@ -490,4 +526,5 @@ let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
<th:block layout:fragment="layout_script">
<script src="/js/web/hospital/hospitalUpdate.js"></script>
</th:block>
</html>