feat: Implement hospital update functionality including operating hours and holiday management.
This commit is contained in:
@@ -55,14 +55,18 @@
|
||||
<select id="selectHospitalWeek" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT MH.MU_HOSPITAL_ID AS "muHospitalId"
|
||||
,MH.HOSPITAL_NAME AS "hospitalName"
|
||||
,CASE DAYOFWEEK(DATE_FORMAT(#{searchDate}, '%Y-%m-%d'))
|
||||
WHEN '2' THEN MH.MON_OPEN_YN
|
||||
WHEN '3' THEN MH.TUE_OPEN_YN
|
||||
WHEN '4' THEN MH.WED_OPEN_YN
|
||||
WHEN '5' THEN MH.THU_OPEN_YN
|
||||
WHEN '6' THEN MH.FRI_OPEN_YN
|
||||
WHEN '7' THEN MH.SAT_OPEN_YN
|
||||
WHEN '1' THEN MH.SUN_OPEN_YN
|
||||
,CASE
|
||||
WHEN MHS.MU_HOSPITAL_SCHEDULE_ID IS NOT NULL THEN MHS.OPEN_YN
|
||||
ELSE
|
||||
CASE DAYOFWEEK(DATE_FORMAT(#{searchDate}, '%Y-%m-%d'))
|
||||
WHEN '2' THEN MH.MON_OPEN_YN
|
||||
WHEN '3' THEN MH.TUE_OPEN_YN
|
||||
WHEN '4' THEN MH.WED_OPEN_YN
|
||||
WHEN '5' THEN MH.THU_OPEN_YN
|
||||
WHEN '6' THEN MH.FRI_OPEN_YN
|
||||
WHEN '7' THEN MH.SAT_OPEN_YN
|
||||
WHEN '1' THEN MH.SUN_OPEN_YN
|
||||
END
|
||||
END AS "openYn"
|
||||
,CASE
|
||||
WHEN EXISTS (
|
||||
@@ -85,43 +89,63 @@
|
||||
THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS "holidayYn"
|
||||
,CASE DAYOFWEEK(DATE_FORMAT(#{searchDate}, '%Y-%m-%d'))
|
||||
WHEN '2' THEN MH.MON_OPEN_START_TIME
|
||||
WHEN '3' THEN MH.TUE_OPEN_START_TIME
|
||||
WHEN '4' THEN MH.WED_OPEN_START_TIME
|
||||
WHEN '5' THEN MH.THU_OPEN_START_TIME
|
||||
WHEN '6' THEN MH.FRI_OPEN_START_TIME
|
||||
WHEN '7' THEN MH.SAT_OPEN_START_TIME
|
||||
WHEN '1' THEN MH.SUN_OPEN_START_TIME
|
||||
,CASE
|
||||
WHEN MHS.MU_HOSPITAL_SCHEDULE_ID IS NOT NULL THEN MHS.OPEN_START_TIME
|
||||
ELSE
|
||||
CASE DAYOFWEEK(DATE_FORMAT(#{searchDate}, '%Y-%m-%d'))
|
||||
WHEN '2' THEN MH.MON_OPEN_START_TIME
|
||||
WHEN '3' THEN MH.TUE_OPEN_START_TIME
|
||||
WHEN '4' THEN MH.WED_OPEN_START_TIME
|
||||
WHEN '5' THEN MH.THU_OPEN_START_TIME
|
||||
WHEN '6' THEN MH.FRI_OPEN_START_TIME
|
||||
WHEN '7' THEN MH.SAT_OPEN_START_TIME
|
||||
WHEN '1' THEN MH.SUN_OPEN_START_TIME
|
||||
END
|
||||
END AS "openStartTime"
|
||||
,CASE DAYOFWEEK(DATE_FORMAT(#{searchDate}, '%Y-%m-%d'))
|
||||
WHEN '2' THEN MH.MON_OPEN_END_TIME
|
||||
WHEN '3' THEN MH.TUE_OPEN_END_TIME
|
||||
WHEN '4' THEN MH.WED_OPEN_END_TIME
|
||||
WHEN '5' THEN MH.THU_OPEN_END_TIME
|
||||
WHEN '6' THEN MH.FRI_OPEN_END_TIME
|
||||
WHEN '7' THEN MH.SAT_OPEN_END_TIME
|
||||
WHEN '1' THEN MH.SUN_OPEN_END_TIME
|
||||
,CASE
|
||||
WHEN MHS.MU_HOSPITAL_SCHEDULE_ID IS NOT NULL THEN MHS.OPEN_END_TIME
|
||||
ELSE
|
||||
CASE DAYOFWEEK(DATE_FORMAT(#{searchDate}, '%Y-%m-%d'))
|
||||
WHEN '2' THEN MH.MON_OPEN_END_TIME
|
||||
WHEN '3' THEN MH.TUE_OPEN_END_TIME
|
||||
WHEN '4' THEN MH.WED_OPEN_END_TIME
|
||||
WHEN '5' THEN MH.THU_OPEN_END_TIME
|
||||
WHEN '6' THEN MH.FRI_OPEN_END_TIME
|
||||
WHEN '7' THEN MH.SAT_OPEN_END_TIME
|
||||
WHEN '1' THEN MH.SUN_OPEN_END_TIME
|
||||
END
|
||||
END AS "openEndTime"
|
||||
,CASE DAYOFWEEK(DATE_FORMAT(#{searchDate}, '%Y-%m-%d'))
|
||||
WHEN '2' THEN MH.MON_BREAK_START_TIME
|
||||
WHEN '3' THEN MH.TUE_BREAK_START_TIME
|
||||
WHEN '4' THEN MH.WED_BREAK_START_TIME
|
||||
WHEN '5' THEN MH.THU_BREAK_START_TIME
|
||||
WHEN '6' THEN MH.FRI_BREAK_START_TIME
|
||||
WHEN '7' THEN MH.SAT_BREAK_START_TIME
|
||||
WHEN '1' THEN MH.SUN_BREAK_START_TIME
|
||||
,CASE
|
||||
WHEN MHS.MU_HOSPITAL_SCHEDULE_ID IS NOT NULL THEN MHS.BREAK_START_TIME
|
||||
ELSE
|
||||
CASE DAYOFWEEK(DATE_FORMAT(#{searchDate}, '%Y-%m-%d'))
|
||||
WHEN '2' THEN MH.MON_BREAK_START_TIME
|
||||
WHEN '3' THEN MH.TUE_BREAK_START_TIME
|
||||
WHEN '4' THEN MH.WED_BREAK_START_TIME
|
||||
WHEN '5' THEN MH.THU_BREAK_START_TIME
|
||||
WHEN '6' THEN MH.FRI_BREAK_START_TIME
|
||||
WHEN '7' THEN MH.SAT_BREAK_START_TIME
|
||||
WHEN '1' THEN MH.SUN_BREAK_START_TIME
|
||||
END
|
||||
END AS "breakStartTime"
|
||||
,CASE DAYOFWEEK(DATE_FORMAT(#{searchDate}, '%Y-%m-%d'))
|
||||
WHEN '2' THEN MH.MON_BREAK_END_TIME
|
||||
WHEN '3' THEN MH.TUE_BREAK_END_TIME
|
||||
WHEN '4' THEN MH.WED_BREAK_END_TIME
|
||||
WHEN '5' THEN MH.THU_BREAK_END_TIME
|
||||
WHEN '6' THEN MH.FRI_BREAK_END_TIME
|
||||
WHEN '7' THEN MH.SAT_BREAK_END_TIME
|
||||
WHEN '1' THEN MH.SUN_BREAK_END_TIME
|
||||
,CASE
|
||||
WHEN MHS.MU_HOSPITAL_SCHEDULE_ID IS NOT NULL THEN MHS.BREAK_END_TIME
|
||||
ELSE
|
||||
CASE DAYOFWEEK(DATE_FORMAT(#{searchDate}, '%Y-%m-%d'))
|
||||
WHEN '2' THEN MH.MON_BREAK_END_TIME
|
||||
WHEN '3' THEN MH.TUE_BREAK_END_TIME
|
||||
WHEN '4' THEN MH.WED_BREAK_END_TIME
|
||||
WHEN '5' THEN MH.THU_BREAK_END_TIME
|
||||
WHEN '6' THEN MH.FRI_BREAK_END_TIME
|
||||
WHEN '7' THEN MH.SAT_BREAK_END_TIME
|
||||
WHEN '1' THEN MH.SUN_BREAK_END_TIME
|
||||
END
|
||||
END AS "breakEndTime"
|
||||
FROM MU_HOSPITAL AS MH
|
||||
LEFT JOIN MU_HOSPITAL_SCHEDULE MHS
|
||||
ON MH.MU_HOSPITAL_ID = MHS.MU_HOSPITAL_ID
|
||||
AND MHS.SCHEDULE_DATE = #{searchDate}
|
||||
AND MHS.USE_YN = 'Y'
|
||||
WHERE MH.USE_YN = 'Y'
|
||||
LIMIT 0, 1
|
||||
</select>
|
||||
@@ -136,7 +160,11 @@
|
||||
FROM T_TEMP_DATES
|
||||
WHERE RESULT_DATE < #{endDate}
|
||||
)
|
||||
SELECT TTD.OPEN_YN AS "openYn"
|
||||
SELECT
|
||||
CASE
|
||||
WHEN MHS.OPEN_YN IS NOT NULL THEN MHS.OPEN_YN
|
||||
ELSE TTD.OPEN_YN
|
||||
END AS "openYn"
|
||||
,TTD.HOLIDAY_YN AS "holidayYn"
|
||||
FROM (
|
||||
SELECT TTD.RESULT_DATE AS RESULT_DATE
|
||||
@@ -187,6 +215,9 @@
|
||||
LEFT JOIN MU_HOSPITAL AS MH
|
||||
ON 1 = 1
|
||||
) AS TTD
|
||||
LEFT JOIN MU_HOSPITAL_SCHEDULE MHS
|
||||
ON MHS.SCHEDULE_DATE = TTD.RESULT_DATE
|
||||
AND MHS.USE_YN = 'Y'
|
||||
</select>
|
||||
|
||||
<select id="selectHospitalHoliday" parameterType="hashmap" resultType="hashmap">
|
||||
@@ -213,8 +244,105 @@
|
||||
WHERE MPH.USE_YN = 'Y'
|
||||
AND DATE_FORMAT( MPH.LOC_DATE, '%Y' ) >= DATE_FORMAT( CURDATE( ), '%Y' )
|
||||
)
|
||||
UNION ALL
|
||||
(
|
||||
SELECT 'hospitalSchedule' AS "dateType"
|
||||
, CASE WHEN OPEN_YN = 'Y' THEN '운영' ELSE '휴무' END AS "hospitalHolidayName"
|
||||
, DATE_FORMAT(SCHEDULE_DATE, '%Y-%m-%d') AS "locDate"
|
||||
FROM MU_HOSPITAL_SCHEDULE
|
||||
WHERE MU_HOSPITAL_ID = #{muHospitalId}
|
||||
AND USE_YN = 'Y'
|
||||
AND DATE_FORMAT( SCHEDULE_DATE, '%Y' ) >= DATE_FORMAT( CURDATE( ), '%Y' )
|
||||
)
|
||||
</select>
|
||||
|
||||
<select id="selectHospitalScheduleDetail" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT MU_HOSPITAL_SCHEDULE_ID AS "muHospitalScheduleId"
|
||||
, MU_HOSPITAL_ID AS "muHospitalId"
|
||||
, DATE_FORMAT(SCHEDULE_DATE, '%Y-%m-%d') AS "scheduleDate"
|
||||
, OPEN_YN AS "openYn"
|
||||
, OPEN_START_TIME AS "openStartTime"
|
||||
, OPEN_END_TIME AS "openEndTime"
|
||||
, BREAK_START_TIME AS "breakStartTime"
|
||||
, BREAK_END_TIME AS "breakEndTime"
|
||||
FROM MU_HOSPITAL_SCHEDULE
|
||||
WHERE MU_HOSPITAL_ID = #{muHospitalId}
|
||||
AND SCHEDULE_DATE = #{searchDate}
|
||||
AND USE_YN = 'Y'
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="selectHospitalScheduleCheck" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT MU_HOSPITAL_SCHEDULE_ID AS "muHospitalScheduleId"
|
||||
FROM MU_HOSPITAL_SCHEDULE
|
||||
WHERE MU_HOSPITAL_ID = #{muHospitalId}
|
||||
AND SCHEDULE_DATE = #{scheduleDate}
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="selectHospitalHolidayCheck" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT 1 AS "isHoliday"
|
||||
FROM DUAL
|
||||
WHERE EXISTS (
|
||||
SELECT 1
|
||||
FROM MU_HOSPITAL_HOLIDAY
|
||||
WHERE MU_HOSPITAL_ID = #{muHospitalId}
|
||||
AND USE_YN = 'Y'
|
||||
AND (
|
||||
(REPEAT_YN = 'Y' AND DATE_FORMAT(LOC_DATE, '%m-%d') = DATE_FORMAT(#{searchDate}, '%m-%d'))
|
||||
OR
|
||||
(REPEAT_YN = 'N' AND LOC_DATE = #{searchDate})
|
||||
)
|
||||
) OR EXISTS (
|
||||
SELECT 1
|
||||
FROM MU_PUBLIC_HOLIDAY MPH
|
||||
JOIN MU_HOSPITAL MH
|
||||
ON MH.MU_HOSPITAL_ID = #{muHospitalId}
|
||||
AND MH.PUBLIC_HOLIDAY_USE_YN = 'Y'
|
||||
WHERE MPH.USE_YN = 'Y'
|
||||
AND MPH.LOC_DATE = #{searchDate}
|
||||
)
|
||||
</select>
|
||||
|
||||
<insert id="insertHospitalSchedule" parameterType="hashmap">
|
||||
INSERT INTO MU_HOSPITAL_SCHEDULE (
|
||||
MU_HOSPITAL_SCHEDULE_ID, MU_HOSPITAL_ID, SCHEDULE_DATE, OPEN_YN,
|
||||
OPEN_START_TIME, OPEN_END_TIME, BREAK_START_TIME, BREAK_END_TIME,
|
||||
WRITE_DATE, WRITE_TIME, CUD_FLAG, USE_YN, REG_ID, MOD_ID,
|
||||
REG_DATE, MOD_DATE
|
||||
) VALUES (
|
||||
(SELECT CONCAT('S', DATE_FORMAT(NOw(), '%y%m%d%H%i%s%f'), LPAD(NEXT_NOT_CACHED_VALUE, 9, '0'))
|
||||
FROM MU_HOSPITAL_SCHEDULE_SEQ),
|
||||
#{muHospitalId}, #{scheduleDate}, #{openYn},
|
||||
#{openStartTime}, #{openEndTime}, #{breakStartTime}, #{breakEndTime},
|
||||
CURDATE(), CURTIME(), 'C', 'Y', #{regId}, #{modId},
|
||||
NOW(),NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateHospitalSchedule" parameterType="hashmap">
|
||||
UPDATE MU_HOSPITAL_SCHEDULE
|
||||
SET OPEN_YN = #{openYn},
|
||||
OPEN_START_TIME = #{openStartTime},
|
||||
OPEN_END_TIME = #{openEndTime},
|
||||
BREAK_START_TIME = #{breakStartTime},
|
||||
BREAK_END_TIME = #{breakEndTime},
|
||||
USE_YN = 'Y',
|
||||
MOD_ID = #{modId},
|
||||
MOD_DATE = NOW(),
|
||||
CUD_FLAG = 'U'
|
||||
WHERE MU_HOSPITAL_SCHEDULE_ID = #{muHospitalScheduleId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteHospitalSchedule" parameterType="hashmap">
|
||||
UPDATE MU_HOSPITAL_SCHEDULE
|
||||
SET USE_YN = 'N',
|
||||
CUD_FLAG = 'D',
|
||||
MOD_ID = #{modId},
|
||||
MOD_DATE = NOW()
|
||||
WHERE MU_HOSPITAL_SCHEDULE_ID = #{muHospitalScheduleId}
|
||||
</delete>
|
||||
|
||||
<update id="updateHospital" parameterType="hashmap">
|
||||
UPDATE MU_HOSPITAL
|
||||
SET MOD_ID = #{modId}
|
||||
|
||||
Reference in New Issue
Block a user