Przeglądaj źródła

bom備註

bomUpdateTest
CANCERYS\kw093 1 tydzień temu
rodzic
commit
112c34005c
2 zmienionych plików z 16 dodań i 0 usunięć
  1. +8
    -0
      src/main/java/com/ffii/fpsms/modules/master/service/BomService.kt
  2. +8
    -0
      src/main/java/com/ffii/fpsms/modules/master/web/BomController.kt

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/master/service/BomService.kt Wyświetl plik

@@ -216,6 +216,7 @@ open class BomService(
} }


/** /**
* FP-MTMS Version Checklist | Functions Ref. No. 17 | v1.0.0 | 2026-07-16
* Edit BOM (basic fields + BOM materials + BOM process lines). * Edit BOM (basic fields + BOM materials + BOM process lines).
* *
* Key rules: * Key rules:
@@ -1682,6 +1683,7 @@ open class BomService(
val path = dir.resolve("bom_format_issue_$issueLogFileId.xlsx") val path = dir.resolve("bom_format_issue_$issueLogFileId.xlsx")
return if (Files.exists(path)) path else null return if (Files.exists(path)) path else null
} }
/** FP-MTMS Version Checklist | Functions Ref. No. 15 | v1.0.0 | 2026-07-16 */
open fun checkBomExcelFormat(batchId: String): BomFormatCheckResponse { open fun checkBomExcelFormat(batchId: String): BomFormatCheckResponse {
val batchDir = getBatchDir(batchId) val batchDir = getBatchDir(batchId)
if (!Files.isDirectory(batchDir)) return BomFormatCheckResponse(correctFileNames = emptyList(), failList = emptyList()) if (!Files.isDirectory(batchDir)) return BomFormatCheckResponse(correctFileNames = emptyList(), failList = emptyList())
@@ -1764,6 +1766,7 @@ open class BomService(
) )
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 15 | v1.0.0 | 2026-07-16 */
open fun previewImportBom(batchId: String, fileNames: List<String>?): BomImportPreviewResponse { open fun previewImportBom(batchId: String, fileNames: List<String>?): BomImportPreviewResponse {
val batchDir = getBatchDir(batchId) val batchDir = getBatchDir(batchId)
if (!Files.isDirectory(batchDir)) { if (!Files.isDirectory(batchDir)) {
@@ -1823,6 +1826,7 @@ open class BomService(
return BomImportPreviewResponse(items = lines) return BomImportPreviewResponse(items = lines)
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 15 | v1.0.0 | 2026-07-16 */
open fun revalidateImportBomItem( open fun revalidateImportBomItem(
batchId: String, batchId: String,
fileName: String, fileName: String,
@@ -1872,6 +1876,7 @@ open class BomService(
) )
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 15 | v1.0.0 | 2026-07-16 */
open fun exportCorrectedImportBomExcel( open fun exportCorrectedImportBomExcel(
batchId: String, batchId: String,
fileName: String, fileName: String,
@@ -3642,6 +3647,7 @@ for (r in 0..20) {
} }
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 17 | v1.0.0 | 2026-07-16 */
@Transactional(readOnly = true) @Transactional(readOnly = true)
open fun listBomVersions(code: String, bomKind: String): List<BomVersionSummary> { open fun listBomVersions(code: String, bomKind: String): List<BomVersionSummary> {
val normalizedCode = code.trim() val normalizedCode = code.trim()
@@ -3663,6 +3669,7 @@ for (r in 0..20) {
} }
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 17 | v1.0.0 | 2026-07-16 */
@Transactional @Transactional
open fun saveBomAsNewVersion(sourceBomId: Long, request: SaveBomAsNewVersionRequest): BomDetailResponse { open fun saveBomAsNewVersion(sourceBomId: Long, request: SaveBomAsNewVersionRequest): BomDetailResponse {
val source = bomRepository.findByIdAndDeletedIsFalse(sourceBomId) val source = bomRepository.findByIdAndDeletedIsFalse(sourceBomId)
@@ -3915,6 +3922,7 @@ for (r in 0..20) {
} }
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 17 | v1.0.0 | 2026-07-16 */
@Transactional @Transactional
open fun activateBomVersion(id: Long): BomDetailResponse { open fun activateBomVersion(id: Long): BomDetailResponse {
val bom = bomRepository.findByIdAndDeletedIsFalse(id) val bom = bomRepository.findByIdAndDeletedIsFalse(id)


+ 8
- 0
src/main/java/com/ffii/fpsms/modules/master/web/BomController.kt Wyświetl plik

@@ -109,21 +109,25 @@ fun downloadBomFormatIssueLog(
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"bom_format_issue.xlsx\"") .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"bom_format_issue.xlsx\"")
.body(resource) .body(resource)
} }
/** FP-MTMS Version Checklist | Functions Ref. No. 15 | v1.0.0 | 2026-07-16 */
@PostMapping("/import-bom/format-check") @PostMapping("/import-bom/format-check")
fun checkBomFormat(@RequestBody request: BomFormatCheckRequest): BomFormatCheckResponse { fun checkBomFormat(@RequestBody request: BomFormatCheckRequest): BomFormatCheckResponse {
return bomService.checkBomExcelFormat(request.batchId) return bomService.checkBomExcelFormat(request.batchId)
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 15 | v1.0.0 | 2026-07-16 */
@PostMapping("/import-bom/preview") @PostMapping("/import-bom/preview")
fun previewImportBom(@RequestBody request: BomImportPreviewRequest): BomImportPreviewResponse { fun previewImportBom(@RequestBody request: BomImportPreviewRequest): BomImportPreviewResponse {
return bomService.previewImportBom(request.batchId, request.fileNames) return bomService.previewImportBom(request.batchId, request.fileNames)
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 15 | v1.0.0 | 2026-07-16 */
@PostMapping("/import-bom/revalidate") @PostMapping("/import-bom/revalidate")
fun revalidateImportBomItem(@RequestBody request: BomImportRevalidateRequest): BomImportRevalidateResponse { fun revalidateImportBomItem(@RequestBody request: BomImportRevalidateRequest): BomImportRevalidateResponse {
return bomService.revalidateImportBomItem(request.batchId, request.fileName, request.overrides) return bomService.revalidateImportBomItem(request.batchId, request.fileName, request.overrides)
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 15 | v1.0.0 | 2026-07-16 */
@PostMapping("/import-bom/export-corrected") @PostMapping("/import-bom/export-corrected")
fun exportCorrectedImportBomExcel(@RequestBody request: BomImportExportCorrectedRequest): ResponseEntity<Resource> { fun exportCorrectedImportBomExcel(@RequestBody request: BomImportExportCorrectedRequest): ResponseEntity<Resource> {
// Do not put Chinese filename in Content-Disposition (Tomcat rejects non-Latin-1 headers). // Do not put Chinese filename in Content-Disposition (Tomcat rejects non-Latin-1 headers).
@@ -219,12 +223,14 @@ fun downloadBomFormatIssueLog(
return bomService.findBomSummaryByItemCode(code.trim()) return bomService.findBomSummaryByItemCode(code.trim())
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 17 | v1.0.0 | 2026-07-16 */
@GetMapping("/versions") @GetMapping("/versions")
fun listBomVersions( fun listBomVersions(
@RequestParam code: String, @RequestParam code: String,
@RequestParam bomKind: String, @RequestParam bomKind: String,
): List<BomVersionSummary> = bomService.listBomVersions(code, bomKind) ): List<BomVersionSummary> = bomService.listBomVersions(code, bomKind)


/** FP-MTMS Version Checklist | Functions Ref. No. 17 | v1.0.0 | 2026-07-16 */
@PostMapping("/{id}/save-as-new-version") @PostMapping("/{id}/save-as-new-version")
fun saveBomAsNewVersion( fun saveBomAsNewVersion(
@PathVariable id: Long, @PathVariable id: Long,
@@ -236,12 +242,14 @@ fun getBomDetail(@PathVariable id: Long): BomDetailResponse {
return bomService.getBomDetail(id) return bomService.getBomDetail(id)
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 17 | v1.0.0 | 2026-07-16 */
@PostMapping("/{id}/activate-version") @PostMapping("/{id}/activate-version")
fun activateBomVersion(@PathVariable id: Long): BomDetailResponse { fun activateBomVersion(@PathVariable id: Long): BomDetailResponse {
return bomService.activateBomVersion(id) return bomService.activateBomVersion(id)
} }


/** /**
* FP-MTMS Version Checklist | Functions Ref. No. 17 | v1.0.0 | 2026-07-16
* Edit BOM (basic fields + materials + process lines). * Edit BOM (basic fields + materials + process lines).
* baseScore is recalculated on server. * baseScore is recalculated on server.
*/ */


Ładowanie…
Anuluj
Zapisz