瀏覽代碼

Supporting Function: Warehouse Handle

master
B.E.N.S.O.N 3 週之前
父節點
當前提交
a2b3339456
共有 3 個檔案被更改,包括 73 行新增8 行删除
  1. +48
    -4
      src/main/java/com/ffii/fpsms/modules/master/service/WarehouseService.kt
  2. +15
    -0
      src/main/java/com/ffii/fpsms/modules/master/web/WarehouseController.kt
  3. +10
    -4
      src/main/java/com/ffii/fpsms/modules/master/web/models/SaveWarehouseRequest.kt

+ 48
- 4
src/main/java/com/ffii/fpsms/modules/master/service/WarehouseService.kt 查看文件

@@ -46,14 +46,58 @@ open class WarehouseService(
return warehouseRepository.findByCodeAndDeletedIsFalse(code);
}

open fun markDeleted(id: Long): List<Warehouse> {
val warehouse = warehouseRepository.findById(id).orElseThrow().apply {
deleted = true
}

warehouseRepository.save(warehouse)

return getWarehouses()
}

open fun saveWarehouse(request: SaveWarehouseRequest): Warehouse {
val warehouse = request.id?.let { warehouseRepository.findById(it).getOrNull() } ?: Warehouse();

warehouse.apply {
code = request.code
name = request.name
description = request.description
capacity = request.capacity
// Generate code, name, description if not provided but store_id, warehouse, area, slot are provided
if (request.code == null && request.store_id != null && request.warehouse != null && request.area != null && request.slot != null) {
code = "${request.store_id}-${request.warehouse}-${request.area}-${request.slot}"
} else if (request.code != null) {
code = request.code
}
if (request.name == null && request.store_id != null && request.warehouse != null) {
name = "${request.store_id}-${request.warehouse}"
} else if (request.name != null) {
name = request.name
}
if (request.description == null && request.store_id != null && request.warehouse != null) {
description = "${request.store_id}-${request.warehouse}"
} else if (request.description != null) {
description = request.description
}
if (request.capacity == null) {
capacity = BigDecimal(10000)
} else {
capacity = request.capacity
}
if (request.order == null && request.id == null) {
// Set a default order for new warehouses
val maxOrder = warehouseRepository.findAll().mapNotNull { it.order }.maxOrNull() ?: 0
order = maxOrder + 1
} else if (request.order != null) {
order = request.order
}
if (request.store_id != null) store_id = request.store_id
if (request.warehouse != null) this.warehouse = request.warehouse
if (request.area != null) area = request.area
if (request.slot != null) slot = request.slot
if (request.stockTakeSection != null) stockTakeSection = request.stockTakeSection
};

return warehouseRepository.save(warehouse);


+ 15
- 0
src/main/java/com/ffii/fpsms/modules/master/web/WarehouseController.kt 查看文件

@@ -8,8 +8,13 @@ import org.apache.poi.ss.usermodel.Workbook
import org.apache.poi.xssf.usermodel.XSSFWorkbook
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.ServletRequestBindingException
import com.ffii.fpsms.modules.master.web.models.SaveWarehouseRequest
import jakarta.validation.Valid
import org.springframework.web.bind.annotation.DeleteMapping
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
import org.springframework.web.multipart.MultipartHttpServletRequest
@@ -29,6 +34,16 @@ class WarehouseController(
return warehouseService.findCombo()
}

@DeleteMapping("/{id}")
fun deleteWarehouse(@PathVariable id: Long): List<Warehouse> {
return warehouseService.markDeleted(id)
}

@PostMapping("/save")
fun saveWarehouse(@Valid @RequestBody request: SaveWarehouseRequest): Warehouse {
return warehouseService.saveWarehouse(request)
}

@PostMapping("/import")
@Throws(ServletRequestBindingException::class)
fun importExcel(request: HttpServletRequest): ResponseEntity<*> {


+ 10
- 4
src/main/java/com/ffii/fpsms/modules/master/web/models/SaveWarehouseRequest.kt 查看文件

@@ -4,10 +4,16 @@ import java.math.BigDecimal

data class SaveWarehouseRequest(
val id: Long? = null,
val code: String,
val name: String,
val description: String,
val capacity: BigDecimal,
val code: String? = null,
val name: String? = null,
val description: String? = null,
val capacity: BigDecimal? = null,
val store_id: String? = null,
val warehouse: String? = null,
val area: String? = null,
val slot: String? = null,
val order: Int? = null,
val stockTakeSection: String? = null,
)
data class NewWarehouseRequest(



Loading…
取消
儲存