| @@ -18,4 +18,5 @@ interface DoPickOrderRepository : JpaRepository<DoPickOrder, Long> { | |||||
| storeId: String, | storeId: String, | ||||
| status: DoPickOrderStatus | status: DoPickOrderStatus | ||||
| ): List<DoPickOrder> | ): List<DoPickOrder> | ||||
| fun findByPickOrderId(pickOrderId: Long): List<DoPickOrder> | |||||
| } | } | ||||
| @@ -462,7 +462,7 @@ open class DeliveryOrderService( | |||||
| println("🔍 DEBUG: Processing ${deliveryOrder.deliveryOrderLines.size} delivery order lines") | println("🔍 DEBUG: Processing ${deliveryOrder.deliveryOrderLines.size} delivery order lines") | ||||
| deliveryOrder.deliveryOrderLines.forEach { line -> | deliveryOrder.deliveryOrderLines.forEach { line -> | ||||
| val storeId = if (deliveryOrder.shop?.code == "P06B") "2/F" else "4/F" | |||||
| val storeId = if (deliveryOrder.supplier?.code == "P06B") "4/F" else "2/F" | |||||
| println("�� DEBUG: Processing line - Item ID: ${line.item?.id}, Store ID: $storeId") | println("�� DEBUG: Processing line - Item ID: ${line.item?.id}, Store ID: $storeId") | ||||
| val doPickOrder = DoPickOrder( | val doPickOrder = DoPickOrder( | ||||
| @@ -475,7 +475,7 @@ open class DeliveryOrderService( | |||||
| itemId = line.item?.id, | itemId = line.item?.id, | ||||
| shopId = deliveryOrder.shop?.id, | shopId = deliveryOrder.shop?.id, | ||||
| shopPoSupplierId = deliveryOrder.shop?.id, | shopPoSupplierId = deliveryOrder.shop?.id, | ||||
| handledBy = request.userId | |||||
| handledBy = null | |||||
| ) | ) | ||||
| println("�� DEBUG: Creating DoPickOrder - Store: $storeId, Ticket: $nextTicketNumber, Truck: ${truck?.id}") | println("�� DEBUG: Creating DoPickOrder - Store: $storeId, Ticket: $nextTicketNumber, Truck: ${truck?.id}") | ||||
| @@ -92,4 +92,9 @@ class DoPickOrderService( | |||||
| entity = null | entity = null | ||||
| ) | ) | ||||
| } | } | ||||
| fun updateHandledByForPickOrder(pickOrderId: Long, userId: Long): List<DoPickOrder> { | |||||
| val doPickOrders = doPickOrderRepository.findByPickOrderId(pickOrderId) | |||||
| doPickOrders.forEach { it.handledBy = userId } | |||||
| return doPickOrderRepository.saveAll(doPickOrders) | |||||
| } | |||||
| } | } | ||||
| @@ -50,6 +50,7 @@ import com.ffii.fpsms.modules.pickOrder.entity.projection.PickOrderGroupInfo | |||||
| import com.ffii.fpsms.modules.deliveryOrder.entity.DeliveryOrderRepository | import com.ffii.fpsms.modules.deliveryOrder.entity.DeliveryOrderRepository | ||||
| import com.ffii.fpsms.modules.pickOrder.entity.TruckRepository | import com.ffii.fpsms.modules.pickOrder.entity.TruckRepository | ||||
| import com.ffii.fpsms.modules.pickOrder.entity.RouterRepository | import com.ffii.fpsms.modules.pickOrder.entity.RouterRepository | ||||
| import com.ffii.fpsms.modules.deliveryOrder.service.DoPickOrderService | |||||
| @Service | @Service | ||||
| open class PickOrderService( | open class PickOrderService( | ||||
| private val jdbcDao: JdbcDao, | private val jdbcDao: JdbcDao, | ||||
| @@ -70,6 +71,7 @@ open class PickOrderService( | |||||
| private val deliveryOrderRepository: DeliveryOrderRepository, | private val deliveryOrderRepository: DeliveryOrderRepository, | ||||
| private val truckRepository: TruckRepository, | private val truckRepository: TruckRepository, | ||||
| private val routerRepository: RouterRepository, | private val routerRepository: RouterRepository, | ||||
| private val doPickOrderService: DoPickOrderService, | |||||
| ) : AbstractBaseEntityService<PickOrder, Long, PickOrderRepository>(jdbcDao, pickOrderRepository) { | ) : AbstractBaseEntityService<PickOrder, Long, PickOrderRepository>(jdbcDao, pickOrderRepository) { | ||||
| open fun create(request: SavePickOrderRequest): MessageResponse { | open fun create(request: SavePickOrderRequest): MessageResponse { | ||||
| val code = assignPickCode() | val code = assignPickCode() | ||||
| @@ -2211,6 +2213,8 @@ open fun autoAssignAndReleasePickOrderByStore(userId: Long, storeId: String): Me | |||||
| selected.assignTo = user | selected.assignTo = user | ||||
| pickOrderRepository.saveAndFlush(selected) | pickOrderRepository.saveAndFlush(selected) | ||||
| doPickOrderService.updateHandledByForPickOrder(selected.id!!, user.id!!) | |||||
| println("✅ Updated DoPickOrder handledBy to user $userId for pick order ${selected.id}") | |||||
| return MessageResponse( | return MessageResponse( | ||||
| id = null, | id = null, | ||||
| name = "Pick order assigned", | name = "Pick order assigned", | ||||
| @@ -0,0 +1,11 @@ | |||||
| -- liquibase formatted sql | |||||
| -- changeset enson:altertable_enson | |||||
| ALTER TABLE `fpsmsdb`.`do_pick_order` | |||||
| DROP FOREIGN KEY `FK_DO_PICK_ORDER_ON_HANDLED_BY`; | |||||
| ALTER TABLE `fpsmsdb`.`do_pick_order` | |||||
| CHANGE COLUMN `handled_by` `handled_by` INT NULL ; | |||||
| ALTER TABLE `fpsmsdb`.`do_pick_order` | |||||
| ADD CONSTRAINT `FK_DO_PICK_ORDER_ON_HANDLED_BY` | |||||
| FOREIGN KEY (`handled_by`) | |||||
| REFERENCES `fpsmsdb`.`user` (`id`); | |||||