From 7ec34585d133ea1499ba3d76d8a4b8a739639e64 Mon Sep 17 00:00:00 2001 From: "CANCERYS\\kw093" Date: Fri, 3 Apr 2026 00:24:20 +0800 Subject: [PATCH] update --- .../ffii/fpsms/modules/master/entity/Items.kt | 3 +- .../service/PickExecutionIssueService.kt | 49 ++ .../pickOrder/service/PickOrderService.kt | 67 ++- .../stock/service/SuggestedPickLotService.kt | 13 +- .../20260402_01_Enson/01_alter_stock_take.sql | 8 + .../20260402_01_Enson/02_updateitemsorder.sql | 419 ++++++++++++++++++ 6 files changed, 536 insertions(+), 23 deletions(-) create mode 100644 src/main/resources/db/changelog/changes/20260402_01_Enson/01_alter_stock_take.sql create mode 100644 src/main/resources/db/changelog/changes/20260402_01_Enson/02_updateitemsorder.sql diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/Items.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/Items.kt index 5428626..e43a217 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/Items.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/Items.kt @@ -75,7 +75,8 @@ open class Items : BaseEntity() { @Column(name = "latestMupUpdatedDate", nullable = true) open var latestMupUpdatedDate: LocalDateTime? = null - + @Column(name = "item_Order", nullable = true) + open var item_Order: Int? = null @JsonManagedReference @OneToMany(mappedBy = "item", cascade = [CascadeType.ALL], orphanRemoval = true) open var itemUoms: MutableList = mutableListOf() diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickExecutionIssueService.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickExecutionIssueService.kt index 2d8c348..c791a92 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickExecutionIssueService.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickExecutionIssueService.kt @@ -185,6 +185,55 @@ open class PickExecutionIssueService( errorPosition = null ) } + + // 4.1 调整 inventory_lot_line.holdQty(以 actualPickQty-requiredQty 为差额) + // 例: + // required=8, actual=6 => delta=-2 => holdQty -= 2(释放预留) + // required=8, actual=10 => delta=+2 => holdQty += 2(补预留) + if (inventoryLotLine != null && request.lotId != null) { + val deltaHold = actualPickQty.subtract(requiredQty) + if (deltaHold.compareTo(BigDecimal.ZERO) != 0) { + val latestLotLine = inventoryLotLineRepository.findById(request.lotId).orElse(null) + ?: throw IllegalArgumentException("Inventory lot line not found: ${request.lotId}") + + val currentHold = latestLotLine.holdQty ?: BigDecimal.ZERO + val currentOut = latestLotLine.outQty ?: BigDecimal.ZERO + val currentIn = latestLotLine.inQty ?: BigDecimal.ZERO + + val newHold = currentHold.add(deltaHold) + if (newHold < BigDecimal.ZERO) { + return MessageResponse( + id = null, + name = "Invalid hold quantity adjustment", + code = "ERROR", + type = "pick_execution_issue", + message = "Cannot adjust holdQty by $deltaHold. Current holdQty=$currentHold, requiredQty=$requiredQty, actualPickQty=$actualPickQty", + errorPosition = null + ) + } + + // deltaHold > 0 时检查剩余是否足够(in - out - hold) + if (deltaHold > BigDecimal.ZERO) { + val remaining = currentIn.subtract(currentOut).subtract(currentHold) + if (deltaHold > remaining) { + return MessageResponse( + id = null, + name = "Insufficient remaining quantity", + code = "ERROR", + type = "pick_execution_issue", + message = "Cannot reserve additional $deltaHold. Remaining=$remaining (in=$currentIn, out=$currentOut, hold=$currentHold)", + errorPosition = null + ) + } + } + + latestLotLine.holdQty = newHold + latestLotLine.modified = LocalDateTime.now() + latestLotLine.modifiedBy = "system" + inventoryLotLineRepository.saveAndFlush(latestLotLine) + println("✅ Adjusted inventory_lot_line ${request.lotId} holdQty: $currentHold -> $newHold (delta=$deltaHold)") + } + } println("=== Quantity Summary ===") println(" Required Qty: $requiredQty") println(" Actual Pick Qty: $actualPickQty") diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt index e88489d..e951daa 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt @@ -49,6 +49,7 @@ import java.math.BigDecimal import java.time.LocalDate import java.time.LocalDateTime import java.time.format.DateTimeFormatter +import java.util.Locale import kotlin.jvm.optionals.getOrNull import com.ffii.fpsms.modules.pickOrder.entity.projection.PickOrderGroupInfo import com.ffii.fpsms.modules.deliveryOrder.entity.DeliveryOrderRepository @@ -3625,6 +3626,7 @@ open fun getAllPickOrderLotsWithDetailsHierarchical(userId: Long): Map - val lots = line["lots"] as? List> - val firstLot = lots?.firstOrNull() - val router = firstLot?.get("router") as? Map - val indexValue = router?.get("index") - when (indexValue) { - is Number -> indexValue.toInt() - is String -> { - // 提取数字部分:格式为 "store_id-number",取 "-" 后的数字 - val parts = indexValue.split("-") - if (parts.size > 1) { - parts.last().toIntOrNull() ?: 999999 - } else { - indexValue.toIntOrNull() ?: 999999 - } + // DB 里 store_id 可能是 "2/F"、"4/F",与字面 "2F" 不一致会导致分支走错 + val doStoreFloorKey = doPickOrderInfo["store_id"]?.toString()?.trim()?.uppercase(Locale.ROOT) + ?.replace("/", "") + ?.replace(" ", "") + ?: "" + when (doStoreFloorKey) { + "2F" -> { + // 2F:按 items.item_Order 排序(INT,NULL 置后) + allPickOrderLines.sortWith( + compareBy( + { line -> + val v = line["itemOrder"] ?: line["itemorder"] + when (v) { + is Number -> v.toInt() + else -> 999999 + } + }, + { line -> (line["id"] as? Number)?.toLong() ?: Long.MAX_VALUE } + ) + ) + } + "4F" -> { + // 4F:旧逻辑 — 保持 SQL 顺序(COALESCE(w.`order`, 999999), pol.id, lotNo),不二次排序 + } + else -> { + allPickOrderLines.sortWith( + compareBy { line -> + val lots = line["lots"] as? List> + val firstLot = lots?.firstOrNull() + val router = firstLot?.get("router") as? Map + val indexValue = router?.get("index") + when (indexValue) { + is Number -> indexValue.toInt() + is String -> { + val parts = indexValue.split("-") + if (parts.size > 1) { + parts.last().toIntOrNull() ?: 999999 + } else { + indexValue.toIntOrNull() ?: 999999 + } + } + else -> 999999 + } + } + ) } - else -> 999999 } - } -)) // 构建 FG 信息 diff --git a/src/main/java/com/ffii/fpsms/modules/stock/service/SuggestedPickLotService.kt b/src/main/java/com/ffii/fpsms/modules/stock/service/SuggestedPickLotService.kt index 2b9bbdd..a216721 100644 --- a/src/main/java/com/ffii/fpsms/modules/stock/service/SuggestedPickLotService.kt +++ b/src/main/java/com/ffii/fpsms/modules/stock/service/SuggestedPickLotService.kt @@ -104,9 +104,9 @@ open class SuggestedPickLotService( val suggestedList: MutableList = mutableListOf() val holdQtyMap: MutableMap = request.holdQtyMap val excludedWarehouseCodes = setOf( - "2F-W202-01-00", - // "4F-W401-#C-00", - ) + "2F-W202-01-00", + "2F-W200-#A-00", + ) val availableInventoryLotLines = inventoryLotLineService .allInventoryLotLinesByItemIdIn(itemIds) .filter { it.status == InventoryLotLineStatus.AVAILABLE.value } @@ -166,6 +166,13 @@ open class SuggestedPickLotService( val warehouseStoreId=inventoryLotLine?.warehouse?.store_id // 3F filter only applies to delivery order release; no limit for job order, AssignAndRelease, etc. val isDeliveryOrderPick = line.pickOrder?.type?.value == "do" + val warehouseCodeForExclusion = inventoryLotLine?.warehouse?.code + if (isDeliveryOrderPick && + warehouseCodeForExclusion != null && + excludedWarehouseCodes.contains(warehouseCodeForExclusion) + ) { + return@forEachIndexed + } if (warehouseStoreId == "3F" && isDeliveryOrderPick) { return@forEachIndexed } diff --git a/src/main/resources/db/changelog/changes/20260402_01_Enson/01_alter_stock_take.sql b/src/main/resources/db/changelog/changes/20260402_01_Enson/01_alter_stock_take.sql new file mode 100644 index 0000000..ba96d58 --- /dev/null +++ b/src/main/resources/db/changelog/changes/20260402_01_Enson/01_alter_stock_take.sql @@ -0,0 +1,8 @@ +-- liquibase formatted sql +-- changeset Enson:alter_items + +ALTER TABLE `fpsmsdb`.`items` +Add COLUMN `item_Order` INT; + + + diff --git a/src/main/resources/db/changelog/changes/20260402_01_Enson/02_updateitemsorder.sql b/src/main/resources/db/changelog/changes/20260402_01_Enson/02_updateitemsorder.sql new file mode 100644 index 0000000..a85593e --- /dev/null +++ b/src/main/resources/db/changelog/changes/20260402_01_Enson/02_updateitemsorder.sql @@ -0,0 +1,419 @@ +-- liquibase formatted sql +-- changeset Enson:alter_items + +UPDATE `fpsmsdb`.`items` +SET item_Order = CASE code + WHEN 'PP1157' THEN 1 + WHEN 'PP1074' THEN 2 + WHEN 'PP1071' THEN 3 + WHEN 'PP1066' THEN 4 + WHEN 'PP1078' THEN 5 + WHEN 'PP1069' THEN 6 + WHEN 'PP2335' THEN 7 + WHEN 'PP1076' THEN 8 + WHEN 'PP1041' THEN 9 + WHEN 'PP1067' THEN 10 + WHEN 'PP2260' THEN 11 + WHEN 'PP1082' THEN 12 + WHEN 'PP2169' THEN 13 + WHEN 'PP2211' THEN 14 + WHEN 'PP1080' THEN 15 + WHEN 'PP2105' THEN 16 + WHEN 'PP1136' THEN 17 + WHEN 'PP2363' THEN 18 + WHEN 'PP2063' THEN 19 + WHEN 'PP2334' THEN 20 + WHEN 'PP2037' THEN 21 + WHEN 'PP2115' THEN 22 + WHEN 'PP2243' THEN 23 + WHEN 'PP1209' THEN 24 + WHEN 'PP1216' THEN 25 + WHEN 'PP2286' THEN 26 + WHEN 'PP1178' THEN 27 + WHEN 'PP1202' THEN 28 + WHEN 'PP2214' THEN 29 + WHEN 'PP1042' THEN 30 + WHEN 'PP1222' THEN 31 + WHEN 'PP1185' THEN 32 + WHEN 'PP1118' THEN 33 + WHEN 'PP1088' THEN 34 + WHEN 'PP1133' THEN 35 + WHEN 'PP2127' THEN 36 + WHEN 'PP1234' THEN 37 + WHEN 'PP2167' THEN 38 + WHEN 'PP2008' THEN 39 + WHEN 'PP2018' THEN 40 + WHEN 'PP1137' THEN 41 + WHEN 'PP2239' THEN 42 + WHEN 'PP2338' THEN 43 + WHEN 'PP2238' THEN 44 + WHEN 'PP1175' THEN 45 + WHEN 'PP2288' THEN 46 + WHEN 'PP2236' THEN 47 + WHEN 'PP2237' THEN 48 + WHEN 'PP2336' THEN 49 + WHEN 'PP1167' THEN 50 + WHEN 'PP2251' THEN 51 + WHEN 'PP2252' THEN 52 + WHEN 'PP1180' THEN 53 + WHEN 'MD0083' THEN 54 + WHEN 'MD0077' THEN 55 + WHEN 'MD0076' THEN 56 + WHEN 'MD0072' THEN 57 + WHEN 'MA0808' THEN 58 + WHEN 'MD0081' THEN 59 + WHEN 'PP2212' THEN 60 + WHEN 'PP1065' THEN 61 + WHEN 'PP2262' THEN 62 + WHEN 'PP2241' THEN 63 + WHEN 'PP2240' THEN 64 + WHEN 'PP2182' THEN 65 + WHEN 'PP2244' THEN 66 + WHEN 'PP1126' THEN 67 + WHEN 'PP1214' THEN 68 + WHEN 'PP1213' THEN 69 + WHEN 'PP1223' THEN 70 + WHEN 'PP1181' THEN 71 + WHEN 'PP1093' THEN 72 + WHEN 'PP1117' THEN 73 + WHEN 'PP2331' THEN 74 + WHEN 'PP2317' THEN 75 + WHEN 'PP2248' THEN 76 + WHEN 'PP1211' THEN 77 + WHEN 'PP2332' THEN 78 + WHEN 'PP2220' THEN 79 + WHEN 'PP2326' THEN 80 + WHEN 'PP2218' THEN 81 + WHEN 'PP2126' THEN 82 + WHEN 'PP2074' THEN 83 + WHEN 'PP2219' THEN 84 + WHEN 'PP2346' THEN 85 + WHEN 'PP2284' THEN 86 + WHEN 'PP2300' THEN 87 + WHEN 'PP2330' THEN 88 + WHEN 'PP2333' THEN 89 + WHEN 'PP2343' THEN 90 + WHEN 'PP1231' THEN 91 + WHEN 'PP1120' THEN 92 + WHEN 'PP1152' THEN 93 + WHEN 'PP1044' THEN 94 + WHEN 'PP1210' THEN 95 + WHEN 'FB0064' THEN 96 + WHEN 'PP2144' THEN 97 + WHEN 'PP2206' THEN 98 + WHEN 'MD0084' THEN 99 + WHEN 'PP1237' THEN 100 + WHEN 'PP1232' THEN 101 + WHEN 'PP2017' THEN 102 + WHEN 'PP2098' THEN 103 + WHEN 'PP2204' THEN 104 + WHEN 'PP2205' THEN 105 + WHEN 'PP2228' THEN 106 + WHEN 'PP2231' THEN 107 + WHEN 'PP2058' THEN 108 + WHEN 'PP2235' THEN 109 + WHEN 'PP1043' THEN 110 + WHEN 'PP1018' THEN 111 + WHEN 'PP1224' THEN 112 + WHEN 'PP1225' THEN 113 + WHEN 'PP2227' THEN 114 + WHEN 'PP2325' THEN 115 + WHEN 'PP2210' THEN 116 + WHEN 'PP2106' THEN 117 + WHEN 'PP1062' THEN 118 + WHEN 'PP2246' THEN 119 + WHEN 'PP2254' THEN 120 + WHEN 'PP2298' THEN 121 + WHEN 'PP2278' THEN 122 + WHEN 'PP2290' THEN 123 + WHEN 'PP2215' THEN 124 + WHEN 'PP2250' THEN 125 + WHEN 'PP2001' THEN 126 + WHEN 'PP1121' THEN 127 + WHEN 'PP1144' THEN 128 + WHEN 'PP1188' THEN 129 + WHEN 'PP2328' THEN 130 + WHEN 'PP2341' THEN 131 + WHEN 'PP2342' THEN 132 + WHEN 'PP2345' THEN 133 + WHEN 'MB0929' THEN 134 + WHEN 'MB0911' THEN 135 + WHEN 'FA0803' THEN 136 + WHEN 'MA0864' THEN 137 + WHEN 'MK0536' THEN 138 + WHEN 'PP2197' THEN 139 + WHEN 'PP2349' THEN 140 + WHEN 'PP2253' THEN 141 + WHEN 'PP2145' THEN 142 + WHEN 'PP2267' THEN 143 + WHEN 'PP2306' THEN 144 + WHEN 'PP2269' THEN 145 + WHEN 'PP2292' THEN 146 + WHEN 'PP2242' THEN 147 + WHEN 'PP2024' THEN 148 + WHEN 'MB0846' THEN 149 + WHEN 'MB0847' THEN 150 + WHEN 'MB0344' THEN 151 + WHEN 'MB0779' THEN 152 + WHEN 'MB0805' THEN 153 + WHEN 'MB0807' THEN 154 + WHEN 'MB0432' THEN 155 + WHEN 'MB0544' THEN 156 + WHEN 'MB0850' THEN 157 + WHEN 'MA0757' THEN 158 + WHEN 'MB0873' THEN 159 + WHEN 'MB0851' THEN 160 + WHEN 'MB0848' THEN 161 + WHEN 'MB0849' THEN 162 + WHEN 'MB0845' THEN 163 + WHEN 'MB0810' THEN 164 + WHEN 'MB0797' THEN 165 + WHEN 'PP2265' THEN 166 + WHEN 'PP2301' THEN 167 + WHEN 'MG1683' THEN 168 + WHEN 'MA0852' THEN 169 + WHEN 'MA0806' THEN 170 + WHEN 'MB0921' THEN 171 + WHEN 'MA0151' THEN 172 + WHEN 'MB0877' THEN 173 + WHEN 'MB0879' THEN 174 + WHEN 'MG1843' THEN 175 + WHEN 'MB0883' THEN 176 + WHEN 'MB0885' THEN 177 + WHEN 'MB0886' THEN 178 + WHEN 'MG1848' THEN 179 + WHEN 'MG1849' THEN 180 + WHEN 'MG1857' THEN 181 + WHEN 'MG1858' THEN 182 + WHEN 'MG1859' THEN 183 + WHEN 'MG1860' THEN 184 + WHEN 'MG1862' THEN 185 + WHEN 'MB0889' THEN 186 + WHEN 'MG1877' THEN 187 + WHEN 'MA0823' THEN 188 + WHEN 'MA0824' THEN 189 + WHEN 'MB0891' THEN 190 + WHEN 'MA0832' THEN 191 + WHEN 'MA0833' THEN 192 + WHEN 'MA0834' THEN 193 + WHEN 'MA0846' THEN 194 + WHEN 'MB0907' THEN 195 + WHEN 'MB0908' THEN 196 + WHEN 'MG1908' THEN 197 + WHEN 'MG1909' THEN 198 + WHEN 'MG1910' THEN 199 + WHEN 'MB0923' THEN 200 + WHEN 'MB0806' THEN 201 + WHEN 'MB0782' THEN 202 + WHEN 'MB0777' THEN 203 + WHEN 'MB0781' THEN 204 + WHEN 'MJ0686' THEN 205 + WHEN 'MB0852' THEN 206 + WHEN 'MA0809' THEN 207 + WHEN 'MB0838' THEN 208 + WHEN 'MB0884' THEN 209 + WHEN 'MJ0629' THEN 210 + WHEN 'MB0880' THEN 211 + WHEN 'MB0881' THEN 212 + WHEN 'MJ0528' THEN 213 + WHEN 'MB0800' THEN 214 + WHEN 'MB0801' THEN 215 + WHEN 'MB0799' THEN 216 + WHEN 'MJ0565' THEN 217 + WHEN 'MG1899' THEN 218 + WHEN 'MA0734' THEN 219 + WHEN 'MB0817' THEN 220 + WHEN 'MB0836' THEN 221 + WHEN 'MB0855' THEN 222 + WHEN 'FA0895' THEN 223 + WHEN 'MB0580' THEN 224 + WHEN 'MB0660' THEN 225 + WHEN 'MB0860' THEN 226 + WHEN 'RB0039' THEN 227 + WHEN 'RB0041' THEN 228 + WHEN 'MB0803' THEN 229 + WHEN 'MF0418' THEN 230 + WHEN 'MF0531' THEN 231 + WHEN 'MF0431' THEN 232 + WHEN 'MA0552' THEN 233 + WHEN 'MB0875' THEN 234 + WHEN 'MA0452' THEN 235 + WHEN 'MA0045' THEN 236 + WHEN 'MA0297' THEN 237 + WHEN 'MA0830' THEN 238 + WHEN 'MA0441' THEN 239 + WHEN 'MA0524' THEN 240 + WHEN 'MG1684' THEN 241 + WHEN 'MA0851' THEN 242 + WHEN 'MB0738' THEN 243 + WHEN 'FB0063' THEN 244 + WHEN 'MF0549' THEN 245 + WHEN 'MA0803' THEN 246 + WHEN 'MB0567' THEN 247 + WHEN 'MB0700' THEN 248 + WHEN 'MC1320' THEN 249 + WHEN 'MB0922' THEN 250 + WHEN 'MB0516' THEN 251 + WHEN 'MF0514' THEN 252 + WHEN 'MF0540' THEN 253 + WHEN 'MF0477' THEN 254 + WHEN 'MF0456' THEN 255 + WHEN 'MB0876' THEN 256 + WHEN 'MB0222' THEN 257 + WHEN 'MA0719' THEN 258 + WHEN 'MB0794' THEN 259 + WHEN 'FA0627' THEN 260 + WHEN 'MJ0420' THEN 261 + WHEN 'MK0409' THEN 262 + WHEN 'MJ0418' THEN 263 + WHEN 'MI0447' THEN 264 + WHEN 'MI0351' THEN 265 + WHEN 'MI0352' THEN 266 + WHEN 'PP2276' THEN 267 + WHEN 'PP2277' THEN 268 + WHEN 'MG1887' THEN 269 + WHEN 'MB0896' THEN 270 + WHEN 'MB0897' THEN 271 + WHEN 'MB0903' THEN 272 + WHEN 'MB0937' THEN 273 + WHEN 'FB0062' THEN 274 + WHEN 'MB0637' THEN 275 + WHEN 'MB0162' THEN 276 + WHEN 'MB0757' THEN 277 + WHEN 'MB0671' THEN 278 + WHEN 'MB0572' THEN 279 + WHEN 'MB0652' THEN 280 + WHEN 'MB0785' THEN 281 + WHEN 'MB0786' THEN 282 + WHEN 'MI0466' THEN 283 + WHEN 'MB0828' THEN 284 + WHEN 'MB0795' THEN 285 + WHEN 'MK0413' THEN 286 + WHEN 'MB0909' THEN 287 + WHEN 'MI0468' THEN 288 + WHEN 'MI0297' THEN 289 + WHEN 'MB0699' THEN 290 + WHEN 'MB0904' THEN 291 + WHEN 'MB0638' THEN 292 + WHEN 'MB0862' THEN 293 + WHEN 'MB0758' THEN 294 + WHEN 'MI0357' THEN 295 + WHEN 'MB0809' THEN 296 + WHEN 'MB0739' THEN 297 + WHEN 'FB0055' THEN 298 + WHEN 'MB0826' THEN 299 + WHEN 'MB0825' THEN 300 + WHEN 'MI0068' THEN 301 + WHEN 'MB0744' THEN 302 + WHEN 'MB0910' THEN 303 + WHEN 'MB0901' THEN 304 + WHEN 'MB0184' THEN 305 + WHEN 'MB0655' THEN 306 + WHEN 'FB0060' THEN 307 + WHEN 'FB0061' THEN 308 + WHEN 'FB0054' THEN 309 + WHEN 'MB0713' THEN 310 + WHEN 'FB0057' THEN 311 + WHEN 'ME0035' THEN 312 + WHEN 'MI0124' THEN 313 + WHEN 'MB0661' THEN 314 + WHEN 'MI0126' THEN 315 + WHEN 'MI0301' THEN 316 + WHEN 'MI0141' THEN 317 + WHEN 'MI0143' THEN 318 + WHEN 'MI0173' THEN 319 + WHEN 'MD0051' THEN 320 + WHEN 'MI0181' THEN 321 + WHEN 'MB0719' THEN 322 + WHEN 'MB0601' THEN 323 + WHEN 'ME0029' THEN 324 + WHEN 'FA0184' THEN 325 + WHEN 'FA0531' THEN 326 + WHEN 'FC0006' THEN 327 + WHEN 'MB0857' THEN 328 + WHEN 'PP2348' THEN 329 + WHEN 'MB0906' THEN 330 + WHEN 'MG0811' THEN 331 + WHEN 'MI0258' THEN 332 + WHEN 'MI0156' THEN 333 + WHEN 'FA0717' THEN 334 + WHEN 'MI1800' THEN 335 + WHEN 'MI0172' THEN 336 + WHEN 'MI0446' THEN 337 + WHEN 'MD0096' THEN 338 + WHEN 'MD0098' THEN 339 + WHEN 'MD0097' THEN 340 + WHEN 'MI0402' THEN 341 + WHEN 'MD0094' THEN 342 + WHEN 'MI0185' THEN 343 + WHEN 'MI0399' THEN 344 + WHEN 'MG1502' THEN 345 + WHEN 'MB0905' THEN 346 + WHEN 'MJ0059' THEN 347 + WHEN 'FA0716' THEN 348 + WHEN 'MG1453' THEN 349 + WHEN 'PP0221' THEN 350 + WHEN 'PP2347' THEN 351 + WHEN 'MG1786' THEN 352 + WHEN 'MG1761' THEN 353 + WHEN 'MG1789' THEN 354 + WHEN 'MH0106' THEN 355 + WHEN 'FA0932' THEN 356 + WHEN 'MK0492' THEN 357 + WHEN 'MG1665' THEN 358 + WHEN 'MK0429' THEN 359 + WHEN 'MK0482' THEN 360 + WHEN 'MK0466' THEN 361 + WHEN 'MG1574' THEN 362 + WHEN 'MF0526' THEN 363 + WHEN 'MF0539' THEN 364 + WHEN 'MF0530' THEN 365 + WHEN 'MF0524' THEN 366 + WHEN 'MF0551' THEN 367 + WHEN 'FC0030' THEN 368 + WHEN 'FC0002' THEN 369 + WHEN 'FC0009' THEN 370 + WHEN 'FC0028' THEN 371 + ELSE item_Order -- keep existing value if code not in the list +END +WHERE code IN ( + 'PP1157','PP1074','PP1071','PP1066','PP1078','PP1069','PP2335','PP1076','PP1041','PP1067', + 'PP2260','PP1082','PP2169','PP2211','PP1080','PP2105','PP1136','PP2363','PP2063','PP2334', + 'PP2037','PP2115','PP2243','PP1209','PP1216','PP2286','PP1178','PP1202','PP2214','PP1042', + 'PP1222','PP1185','PP1118','PP1088','PP1133','PP2127','PP1234','PP2167','PP2008','PP2018', + 'PP1137','PP2239','PP2338','PP2238','PP1175','PP2288','PP2236','PP2237','PP2336','PP1167', + 'PP2251','PP2252','PP1180','MD0083','MD0077','MD0076','MD0072','MA0808','MD0081','PP2212', + 'PP1065','PP2262','PP2241','PP2240','PP2182','PP2244','PP1126','PP1214','PP1213','PP1223', + 'PP1181','PP1093','PP1117','PP2331','PP2317','PP2248','PP1211','PP2332','PP2220','PP2326', + 'PP2218','PP2126','PP2074','PP2219','PP2346','PP2284','PP2300','PP2330','PP2333','PP2343', + 'PP1231','PP1120','PP1152','PP1044','PP1210','FB0064','PP2144','PP2206','MD0084','PP1237', + 'PP1232','PP2017','PP2098','PP2204','PP2205','PP2228','PP2231','PP2058','PP2235','PP1043', + 'PP1018','PP1224','PP1225','PP2227','PP2325','PP2210','PP2106','PP1062','PP2246','PP2254', + 'PP2298','PP2278','PP2290','PP2215','PP2250','PP2001','PP1121','PP1144','PP1188','PP2328', + 'PP2341','PP2342','PP2345','MB0929','MB0911','FA0803','MA0864','MK0536','PP2197','PP2349', + 'PP2253','PP2145','PP2267','PP2306','PP2269','PP2292','PP2242','PP2024','MB0846','MB0847', + 'MB0344','MB0779','MB0805','MB0807','MB0432','MB0544','MB0850','MA0757','MB0873','MB0851', + 'MB0848','MB0849','MB0845','MB0810','MB0797','PP2265','PP2301','MG1683','MA0852','MA0806', + 'MB0921','MA0151','MB0877','MB0879','MG1843','MB0883','MB0885','MB0886','MG1848','MG1849', + 'MG1857','MG1858','MG1859','MG1860','MG1862','MB0889','MG1877','MA0823','MA0824','MB0891', + 'MA0832','MA0833','MA0834','MA0846','MB0907','MB0908','MG1908','MG1909','MG1910','MB0923', + 'MB0806','MB0782','MB0777','MB0781','MJ0686','MB0852','MA0809','MB0838','MB0884','MJ0629', + 'MB0880','MB0881','MJ0528','MB0800','MB0801','MB0799','MJ0565','MG1899','MA0734','MB0817', + 'MB0836','MB0855','FA0895','MB0580','MB0660','MB0860','RB0039','RB0041','MB0803','MF0418', + 'MF0531','MF0431','MA0552','MB0875','MA0452','MA0045','MA0297','MA0830','MA0441','MA0524', + 'MG1684','MA0851','MB0738','FB0063','MF0549','MA0803','MB0567','MB0700','MC1320','MB0922', + 'MB0516','MF0514','MF0540','MF0477','MF0456','MB0876','MB0222','MA0719','MB0794','FA0627', + 'MJ0420','MK0409','MJ0418','MI0447','MI0351','MI0352','PP2276','PP2277','MG1887','MB0896', + 'MB0897','MB0903','MB0937','FB0062','MB0637','MB0162','MB0757','MB0671','MB0572','MB0652', + 'MB0785','MB0786','MI0466','MB0828','MB0795','MK0413','MB0909','MI0468','MI0297','MB0699', + 'MB0904','MB0638','MB0862','MB0758','MI0357','MB0809','MB0739','FB0055','MB0826','MB0825', + 'MI0068','MB0744','MB0910','MB0901','MB0184','MB0655','FB0060','FB0061','FB0054','MB0713', + 'FB0057','ME0035','MI0124','MB0661','MI0126','MI0301','MI0141','MI0143','MI0173','MD0051', + 'MI0181','MB0719','MB0601','ME0029','FA0184','FA0531','FC0006','MB0857','PP2348','MB0906', + 'MG0811','MI0258','MI0156','FA0717','MI1800','MI0172','MI0446','MD0096','MD0098','MD0097', + 'MI0402','MD0094','MI0185','MI0399','MG1502','MB0905','MJ0059','FA0716','MG1453','PP0221', + 'PP2347','MG1786','MG1761','MG1789','MH0106','FA0932','MK0492','MG1665','MK0429','MK0482', + 'MK0466','MG1574','MF0526','MF0539','MF0530','MF0524','MF0551','FC0030','FC0002','FC0009','FC0028' +); + +