| @@ -71,20 +71,11 @@ open class TruckLaneRenameService( | |||
| val oldTimeLabel = describeTimes(sourceRows.map { it.departureTime }) | |||
| val casings = sourceRows.map { it.truckLanceCode?.trim().orEmpty() }.filter { it.isNotEmpty() }.distinct() | |||
| // Existing delivery tickets (pending / released / assigned / completed) keep the old name. | |||
| // Later releases copy the new master name at insert time. | |||
| var scheduleCount = 0 | |||
| var ticketCount = 0 | |||
| for (casing in casings) { | |||
| scheduleCount += applyOpenScheduleRename(casing, newCode, floor, remarkKey) | |||
| val params = ticketParams(casing, floor, remarkKey).toMutableMap() | |||
| params["newCode"] = newCode | |||
| ticketCount += jdbcDao.executeUpdate( | |||
| updateTicketSql(DOPO_UPDATE_SQL, req.departureTimeChanged), | |||
| withTime(params, newTime), | |||
| ) | |||
| jdbcDao.executeUpdate( | |||
| updateTicketSql(PICK_UPDATE_SQL, req.departureTimeChanged), | |||
| withTime(params, newTime), | |||
| ) | |||
| } | |||
| for (row in sourceRows) { | |||
| row.truckLanceCode = newCode | |||
| @@ -99,12 +90,12 @@ open class TruckLaneRenameService( | |||
| log.remark = remarkKey.ifEmpty { null } | |||
| log.oldDepartureTime = oldTimeLabel | |||
| log.newDepartureTime = if (req.departureTimeChanged) newTime.toString() else oldTimeLabel | |||
| log.ticketCount = ticketCount | |||
| log.ticketCount = 0 | |||
| renameLogRepository.save(log) | |||
| return RenameTruckLaneResponse( | |||
| truckLanceCode = newCode, | |||
| ticketCount = ticketCount, | |||
| ticketCount = 0, | |||
| scheduleLineCount = scheduleCount, | |||
| ) | |||
| } | |||
| @@ -196,18 +187,6 @@ open class TruckLaneRenameService( | |||
| } | |||
| } | |||
| private fun withTime(params: MutableMap<String, Any?>, time: LocalTime?): Map<String, Any?> { | |||
| if (time != null) params["newTime"] = time.toString() | |||
| return params | |||
| } | |||
| private fun updateTicketSql(base: String, withTime: Boolean): String { | |||
| if (!withTime) return base | |||
| return base.replace("SET colCode = :newCode", "SET colCode = :newCode, colTime = :newTime") | |||
| .replace("SET TruckLanceCode = :newCode", "SET TruckLanceCode = :newCode, truck_departure_time = :newTime") | |||
| .replace("SET truckLanceCode = :newCode", "SET truckLanceCode = :newCode, truckDepartureTime = :newTime") | |||
| } | |||
| private fun ticketParams(code: String, floor: String, remarkKey: String): Map<String, Any?> = mapOf( | |||
| "oldCode" to code, | |||
| "floor" to floor, | |||
| @@ -273,24 +252,6 @@ open class TruckLaneRenameService( | |||
| AND ${FLOOR_MATCH.replace("storeCol", "storeId")} | |||
| """.trimIndent() | |||
| private val DOPO_UPDATE_SQL = """ | |||
| UPDATE delivery_order_pick_order | |||
| SET truckLanceCode = :newCode, version = version + 1 | |||
| WHERE deleted = 0 | |||
| AND ticketStatus IN ('pending', 'released') | |||
| AND TRIM(truckLanceCode) = :oldCode | |||
| AND ${FLOOR_MATCH.replace("storeCol", "storeId")} | |||
| """.trimIndent() | |||
| private val PICK_UPDATE_SQL = """ | |||
| UPDATE do_pick_order | |||
| SET TruckLanceCode = :newCode, version = version + 1 | |||
| WHERE deleted = 0 | |||
| AND ticket_status IN ('pending', 'released') | |||
| AND TRIM(TruckLanceCode) = :oldCode | |||
| AND ${FLOOR_MATCH.replace("storeCol", "store_id")} | |||
| """.trimIndent() | |||
| private val OPEN_SCHEDULE_COUNT_SQL = """ | |||
| SELECT COUNT(*) AS cnt | |||
| FROM truck_lane_schedule_line l | |||