diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt index 954eeb3..ccec25d 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JoPickOrderService.kt @@ -246,7 +246,7 @@ open class JoPickOrderService( } val pickOrderIds = filteredPickOrders.map { it.id!! } - println("🎯 Job Order Pick order IDs to fetch: $pickOrderIds") + println(" Job Order Pick order IDs to fetch: $pickOrderIds") if (pickOrderIds.isEmpty()) { return mapOf( diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt index acc5653..dd1f769 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderService.kt @@ -467,6 +467,53 @@ open class JobOrderService( } } + //New Print Pick Record + //Print Pick Record + @Transactional + open fun NewPrintPickRecord(request: PrintPickRecordRequest){ + val printer = printerService.findById(request.printerId) ?: throw java.util.NoSuchElementException("No such printer") + println("New DEBUG: Printer found: ${printer.name}") + println("New DEBUG: Exporting pick record for pick order ID: ${request.pickOrderId}") + val pdf = exportPickRecord( + ExportPickRecordRequest( + pickOrderIds = request.pickOrderId + ) + ) + println("New DEBUG: PDF exported: ${pdf}") + val jasperPrint = pdf["report"] as JasperPrint + println("New DEBUG: JasperPrint: ${jasperPrint}") + val tempPdfFile = File.createTempFile("print_job_",".pdf") + println("New DEBUG: Temporary PDF file created: ${tempPdfFile.absolutePath}") + try{ + JasperExportManager.exportReportToPdfFile(jasperPrint,tempPdfFile.absolutePath) + println("New DEBUG: JasperPrint exported to PDF file: ${tempPdfFile.absolutePath}") + val printQty = if (request.printQty == null || request.printQty <= 0) 1 else request.printQty + println("New DEBUG: Print quantity: $printQty") + // Auto-detect orientation and set duplex mode accordingly + val duplexMode = if (CanonPrinterUtil.isLandscape(tempPdfFile)) { + CanonPrinterUtil.DuplexMode.DUPLEX_SHORT_EDGE // Landscape: flip on short edge + } else { + CanonPrinterUtil.DuplexMode.DUPLEX_LONG_EDGE // Portrait: flip on long edge + } + + println("New DEBUG: PDF orientation detected - Landscape: ${CanonPrinterUtil.isLandscape(tempPdfFile)}, Duplex mode: $duplexMode") + + printer.ip?.let { ip -> + printer.port?.let { port -> + CanonPrinterUtil.printPdfToCanon( + tempPdfFile, + ip, + port, + printQty, + duplexMode + ) + } + } + } finally { + //tempPdfFile.delete() + } + } + //FG Pick Record Label @Throws(IOException::class) @Transactional diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt index d68a8a4..07d3bdc 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderController.kt @@ -191,7 +191,10 @@ fun recordSecondScanIssue( fun printPickRecord(@ModelAttribute request: PrintPickRecordRequest){ jobOrderService.printPickRecord(request) } - + @GetMapping("/newPrint-PickRecord") + fun NewprintPickRecord(@ModelAttribute request: PrintPickRecordRequest){ + jobOrderService.NewPrintPickRecord(request) + } @PostMapping("/FGPickRecordLabel") @Throws(UnsupportedEncodingException::class, NoSuchMessageException::class, ParseException::class, Exception::class) fun exportFGPickRecordLabel(@Valid @RequestBody request: ExportPickRecordRequest, response: HttpServletResponse){ diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/Equipment.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/Equipment.kt index a4dedae..419dd97 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/Equipment.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/Equipment.kt @@ -25,5 +25,5 @@ open class Equipment : BaseEntity() { @ManyToOne @JoinColumn(name = "equipmentTypeId") - open var equipmentType: EquipmentType? = null + open var EquipmentDetail: EquipmentDetail? = null } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentType.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentDetail.kt similarity index 88% rename from src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentType.kt rename to src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentDetail.kt index a1c0f31..eb9eee1 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentType.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentDetail.kt @@ -7,9 +7,9 @@ import jakarta.persistence.Table import jakarta.validation.constraints.NotNull import jakarta.validation.constraints.Size -@Table(name = "equipment_type") +@Table(name = "equipment_detail") @Entity -open class EquipmentType : BaseEntity() { +open class EquipmentDetail : BaseEntity() { @Size(max = 30) @NotNull @Column(name = "code", nullable = false, length = 30) diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentDetailRepository.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentDetailRepository.kt new file mode 100644 index 0000000..c48d799 --- /dev/null +++ b/src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentDetailRepository.kt @@ -0,0 +1,17 @@ +package com.ffii.fpsms.modules.master.entity + +import com.ffii.core.support.AbstractRepository +import org.springframework.stereotype.Repository + +@Repository +interface EquipmentDetailRepository : AbstractRepository { + fun findAllByDeletedFalse(): List; + fun findByCodeAndDeletedFalse(code: String): EquipmentDetail? + fun findByIdAndDeletedFalse(id: Long): EquipmentDetail?; + + fun findByCodeAndDeletedIsFalse(code: String): EquipmentDetail?; + + fun findByNameAndDeletedIsFalse(name: String): EquipmentDetail?; + + fun findByDescriptionAndDeletedIsFalse(description: String): EquipmentDetail?; +} \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentTypeRepository.kt b/src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentTypeRepository.kt deleted file mode 100644 index e9fcf8c..0000000 --- a/src/main/java/com/ffii/fpsms/modules/master/entity/EquipmentTypeRepository.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.ffii.fpsms.modules.master.entity - -import com.ffii.core.support.AbstractRepository -import org.springframework.stereotype.Repository - -@Repository -interface EquipmentTypeRepository : AbstractRepository { - fun findAllByDeletedFalse(): List; - fun findByCodeAndDeletedFalse(code: String): EquipmentType? - fun findByIdAndDeletedFalse(id: Long): EquipmentType?; - - fun findByCodeAndDeletedIsFalse(code: String): EquipmentType?; - - fun findByNameAndDeletedIsFalse(name: String): EquipmentType?; - - fun findByDescriptionAndDeletedIsFalse(description: String): EquipmentType?; -} \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/EquipmentDetailService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/EquipmentDetailService.kt new file mode 100644 index 0000000..74451d1 --- /dev/null +++ b/src/main/java/com/ffii/fpsms/modules/master/service/EquipmentDetailService.kt @@ -0,0 +1,90 @@ +package com.ffii.fpsms.modules.master.service + +import com.ffii.core.support.AbstractBaseEntityService +import com.ffii.core.support.JdbcDao +import com.ffii.fpsms.modules.master.entity.EquipmentDetail +import com.ffii.fpsms.modules.master.entity.EquipmentDetailRepository +import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Transactional +import com.ffii.fpsms.modules.master.web.models.NewEquipmentDetailRequest +@Service +open class EquipmentDetailService( + private val jdbcDao: JdbcDao, + private val equipmentDetailRepository: EquipmentDetailRepository, +) : AbstractBaseEntityService(jdbcDao, equipmentDetailRepository) { + + open fun allEquipmentDetails(): List { + return equipmentDetailRepository.findAll() + } + + open fun getEquipmentDetailsByPage(args: Map): List> { + val sql = StringBuilder( + "SELECT e.id, e.code, e.name, e.description FROM equipment_detail e WHERE e.deleted = FALSE" + ) + if (args.containsKey("code")) { + sql.append(" AND e.code like :code ") + } + if (args.containsKey("id")) { + sql.append(" AND e.id like :id ") + } + if (args.containsKey("name")) { + sql.append(" AND e.name like :name ") + } + if (args.containsKey("description")) { + sql.append(" AND e.description like :description ") + } + return jdbcDao.queryForList(sql.toString(), args) + } + + open fun findById(id: Long): EquipmentDetail? { + return equipmentDetailRepository.findByIdAndDeletedFalse(id) + } + + open fun findByCode(code: String): EquipmentDetail? { + return equipmentDetailRepository.findByCodeAndDeletedIsFalse(code) + } + + open fun findByName(name: String): EquipmentDetail? { + return equipmentDetailRepository.findByNameAndDeletedIsFalse(name) + } + + open fun findByDescription(description: String): EquipmentDetail? { + return equipmentDetailRepository.findByDescriptionAndDeletedIsFalse(description) + } + + @Transactional + open fun saveEquipmentDetail(request: NewEquipmentDetailRequest): EquipmentDetail { + + if (request.code.isNullOrBlank()) { + throw IllegalArgumentException("Equipment detail code cannot be null or blank") + } + val duplicated = equipmentDetailRepository.findByCodeAndDeletedIsFalse(request.code!!) + if (duplicated != null && duplicated.id != request.id) { + throw IllegalArgumentException("Equipment detail code already exists") + } + + + val entity = if (request.id != null && request.id > 0) { + + equipmentDetailRepository.findByIdAndDeletedFalse(request.id) ?: EquipmentDetail() + } else { + EquipmentDetail() + } + + + entity.code = request.code + entity.name = request.name + entity.description = request.description + + return equipmentDetailRepository.saveAndFlush(entity) + } + + @Transactional + open fun deleteEquipmentDetail(id: Long) { + val equipmentDetail = equipmentDetailRepository.findByIdAndDeletedFalse(id) + equipmentDetail?.let { et -> + et.deleted = true + equipmentDetailRepository.saveAndFlush(et) + } + } +} \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/EquipmentService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/EquipmentService.kt index 742b727..e40444d 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/service/EquipmentService.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/service/EquipmentService.kt @@ -79,7 +79,7 @@ open class EquipmentService( entity.code = request.code entity.name = request.name entity.description = request.description - entity.equipmentType= request.equipmentType + entity.EquipmentDetail= request.equipmentType return equipmentRepository.saveAndFlush(entity) } diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/EquipmentTypeService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/EquipmentTypeService.kt deleted file mode 100644 index 234db2f..0000000 --- a/src/main/java/com/ffii/fpsms/modules/master/service/EquipmentTypeService.kt +++ /dev/null @@ -1,90 +0,0 @@ -package com.ffii.fpsms.modules.master.service - -import com.ffii.core.support.AbstractBaseEntityService -import com.ffii.core.support.JdbcDao -import com.ffii.fpsms.modules.master.entity.EquipmentType -import com.ffii.fpsms.modules.master.entity.EquipmentTypeRepository -import org.springframework.stereotype.Service -import org.springframework.transaction.annotation.Transactional -import com.ffii.fpsms.modules.master.web.models.NewEquipmentTypeRequest -@Service -open class EquipmentTypeService( - private val jdbcDao: JdbcDao, - private val equipmentTypeRepository: EquipmentTypeRepository, -) : AbstractBaseEntityService(jdbcDao, equipmentTypeRepository) { - - open fun allEquipmentTypes(): List { - return equipmentTypeRepository.findAll() - } - - open fun getEquipmentTypesByPage(args: Map): List> { - val sql = StringBuilder( - "SELECT e.id, e.code, e.name, e.description FROM equipment_type e WHERE e.deleted = FALSE" - ) - if (args.containsKey("code")) { - sql.append(" AND e.code like :code ") - } - if (args.containsKey("id")) { - sql.append(" AND e.id like :id ") - } - if (args.containsKey("name")) { - sql.append(" AND e.name like :name ") - } - if (args.containsKey("description")) { - sql.append(" AND e.description like :description ") - } - return jdbcDao.queryForList(sql.toString(), args) - } - - open fun findById(id: Long): EquipmentType? { - return equipmentTypeRepository.findByIdAndDeletedFalse(id) - } - - open fun findByCode(code: String): EquipmentType? { - return equipmentTypeRepository.findByCodeAndDeletedIsFalse(code) - } - - open fun findByName(name: String): EquipmentType? { - return equipmentTypeRepository.findByNameAndDeletedIsFalse(name) - } - - open fun findByDescription(description: String): EquipmentType? { - return equipmentTypeRepository.findByDescriptionAndDeletedIsFalse(description) - } - - @Transactional - open fun saveEquipmentType(request: NewEquipmentTypeRequest): EquipmentType { - - if (request.code.isNullOrBlank()) { - throw IllegalArgumentException("Equipment type code cannot be null or blank") - } - val duplicated = equipmentTypeRepository.findByCodeAndDeletedFalse(request.code!!) - if (duplicated != null && duplicated.id != request.id) { - throw IllegalArgumentException("Equipment type code already exists") - } - - - val entity = if (request.id != null && request.id > 0) { - - equipmentTypeRepository.findByIdAndDeletedFalse(request.id) ?: EquipmentType() - } else { - EquipmentType() - } - - - entity.code = request.code - entity.name = request.name - entity.description = request.description - - return equipmentTypeRepository.saveAndFlush(entity) - } - - @Transactional - open fun deleteEquipmentType(id: Long) { - val equipmentType = equipmentTypeRepository.findByIdAndDeletedFalse(id) - equipmentType?.let { et -> - et.deleted = true - equipmentTypeRepository.saveAndFlush(et) - } - } -} \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/WarehouseService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/WarehouseService.kt index 5a26401..cb5e56c 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/service/WarehouseService.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/service/WarehouseService.kt @@ -93,7 +93,7 @@ open class WarehouseService( val warehouseCode = "$code-$zone-$slot" val warehouseName = "$floor-$place" val existingWarehouse = findByCode(warehouseCode) - + //check id if (existingWarehouse == null) { val warehouseRequest = SaveWarehouseRequest( code = warehouseCode, diff --git a/src/main/java/com/ffii/fpsms/modules/master/web/EquipmentTypeController.kt b/src/main/java/com/ffii/fpsms/modules/master/web/EquipmentDetailController.kt similarity index 67% rename from src/main/java/com/ffii/fpsms/modules/master/web/EquipmentTypeController.kt rename to src/main/java/com/ffii/fpsms/modules/master/web/EquipmentDetailController.kt index 9a68fb2..80c16aa 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/web/EquipmentTypeController.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/web/EquipmentDetailController.kt @@ -3,21 +3,21 @@ package com.ffii.fpsms.modules.master.web import com.ffii.core.response.RecordsRes import com.ffii.core.utils.CriteriaArgsBuilder import com.ffii.core.utils.PagingUtils -import com.ffii.fpsms.modules.master.entity.EquipmentType -import com.ffii.fpsms.modules.master.service.EquipmentTypeService +import com.ffii.fpsms.modules.master.entity.EquipmentDetail +import com.ffii.fpsms.modules.master.service.EquipmentDetailService import jakarta.servlet.http.HttpServletRequest import jakarta.validation.Valid import org.springframework.web.bind.annotation.* import java.util.Collections.emptyList -import com.ffii.fpsms.modules.master.web.models.NewEquipmentTypeRequest +import com.ffii.fpsms.modules.master.web.models.NewEquipmentDetailRequest @RestController -@RequestMapping("/EquipmentType") -class EquipmentTypeController( - private val equipmentTypeService: EquipmentTypeService +@RequestMapping("/EquipmentDetail") +class EquipmentDetailController( + private val equipmentDetailService: EquipmentDetailService ) { @GetMapping - fun allEquipmentType(): List { - return equipmentTypeService.allEquipmentTypes() + fun allEquipmentDetail(): List { + return equipmentDetailService.allEquipmentDetails() } // @GetMapping("/getRecordByPage") @@ -35,7 +35,7 @@ class EquipmentTypeController( // } @GetMapping("/getRecordByPage") -fun getAllEquipmentTypeByPage( +fun getAllEquipmentDetailByPage( request: HttpServletRequest ): RecordsRes> { val criteriaArgs = CriteriaArgsBuilder.withRequest(request) @@ -49,7 +49,7 @@ fun getAllEquipmentTypeByPage( val pageNum = request.getParameter("pageNum")?.toIntOrNull() ?: 1 // ζ–Ήζ³•εε’Œε˜ι‡ειƒ½θ¦ε’Œ Service δΏζŒδΈ€θ‡΄ - val fullList = equipmentTypeService.getEquipmentTypesByPage(criteriaArgs) ?: emptyList() + val fullList = equipmentDetailService.getEquipmentDetailsByPage(criteriaArgs) ?: emptyList() val paginatedList = PagingUtils.getPaginatedList(fullList, pageSize, pageNum) return RecordsRes(paginatedList as List>, fullList.size) @@ -57,20 +57,20 @@ fun getAllEquipmentTypeByPage( // θ―¦ζƒ… @GetMapping("/details/{id}") - fun getEquipmentType(@PathVariable id: Long): EquipmentType? { - return equipmentTypeService.findById(id) + fun getEquipmentDetail(@PathVariable id: Long): EquipmentDetail? { + return equipmentDetailService.findById(id) } // ζ–°ε’ž/ηΌ–θΎ‘ @PostMapping("/save") - fun saveEquipmentType(@Valid @RequestBody equipmentType: NewEquipmentTypeRequest): EquipmentType { - return equipmentTypeService.saveEquipmentType(equipmentType) + fun saveEquipmentDetail(@Valid @RequestBody equipmentDetail: NewEquipmentDetailRequest): EquipmentDetail { + return equipmentDetailService.saveEquipmentDetail(equipmentDetail) } // ι€»θΎ‘εˆ ι™€ @DeleteMapping("/delete/{id}") - fun deleteEquipmentType(@PathVariable id: Long) { - equipmentTypeService.deleteEquipmentType(id) + fun deleteEquipmentDetail(@PathVariable id: Long) { + equipmentDetailService.deleteEquipmentDetail(id) } } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/master/web/models/NewEquipmentTypeRequest.kt b/src/main/java/com/ffii/fpsms/modules/master/web/models/NewEquipmentDetailRequest.kt similarity index 94% rename from src/main/java/com/ffii/fpsms/modules/master/web/models/NewEquipmentTypeRequest.kt rename to src/main/java/com/ffii/fpsms/modules/master/web/models/NewEquipmentDetailRequest.kt index 5556a7d..dcf8d15 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/web/models/NewEquipmentTypeRequest.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/web/models/NewEquipmentDetailRequest.kt @@ -11,7 +11,7 @@ enum class EquipmentType(val type: String) { CONSUMABLE("consumables"), } */ -data class NewEquipmentTypeRequest( +data class NewEquipmentDetailRequest( @field:NotBlank(message = "material code cannot be empty") val code: String, @field:NotBlank(message = "material name cannot be empty") diff --git a/src/main/java/com/ffii/fpsms/modules/master/web/models/NewEquipmentRequest.kt b/src/main/java/com/ffii/fpsms/modules/master/web/models/NewEquipmentRequest.kt index a8c04f3..b824dc5 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/web/models/NewEquipmentRequest.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/web/models/NewEquipmentRequest.kt @@ -1,6 +1,6 @@ package com.ffii.fpsms.modules.master.web.models -import com.ffii.fpsms.modules.master.entity.EquipmentType +import com.ffii.fpsms.modules.master.entity.EquipmentDetail import jakarta.validation.constraints.NotBlank import jakarta.validation.constraints.NotNull import java.time.LocalDateTime @@ -20,7 +20,7 @@ data class NewEquipmentRequest( val id: Long?, val description: String?, - val equipmentType: EquipmentType?, + val equipmentType: EquipmentDetail?, // val type: List?, // val uom: List?, // val weightUnit: List?, 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 863b399..2a549bb 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 @@ -2208,7 +2208,7 @@ open class PickOrderService( } } - println("🎯 Active pick orders: ${activePickOrders.size}") + println(" Active pick orders: ${activePickOrders.size}") if (activePickOrders.isNotEmpty()) { // User already has active pick orders, return existing ones @@ -2686,7 +2686,7 @@ open class PickOrderService( println("userId filter: $userId") // First attempt auto-assignment for the user - println("🎯 Attempting auto-assignment for user $userId") + println(" Attempting auto-assignment for user $userId") val assignedPickOrderResponse = autoAssignAndReleasePickOrder(userId) // Get all pick order IDs assigned to the user (both RELEASED and PENDING with doId) @@ -4379,7 +4379,7 @@ println("DEBUG sol polIds in linesResults: " + linesResults.mapNotNull { it["sto // Get the incomplete date + next 2 days (total 3 days) val targetDates = (0..2).map { days -> startDate.plusDays(days.toLong()) } - println("🎯 Target dates to return: $targetDates") + println(" Target dates to return: $targetDates") // Only return dates that actually exist in the database ordersToReturn.addAll( @@ -4389,7 +4389,7 @@ println("DEBUG sol polIds in linesResults: " + linesResults.mapNotNull { it["sto }.map { it["rawData"] as Map } ) } else { - println("🎯 All orders are completed, returning empty list") + println(" All orders are completed, returning empty list") } // Transform results into the required structure diff --git a/src/main/resources/db/changelog/changes/20251125_01_enson/01_altertable_enson.sql b/src/main/resources/db/changelog/changes/20251125_01_enson/01_altertable_enson.sql new file mode 100644 index 0000000..2d51d27 --- /dev/null +++ b/src/main/resources/db/changelog/changes/20251125_01_enson/01_altertable_enson.sql @@ -0,0 +1,15 @@ +-- liquibase formatted sql +-- changeset enson:altertable_enson + +ALTER TABLE `fpsmsdb`.`productprocessline` +ADD COLUMN `defectDescription` VARCHAR(255) After `defectUom`, +ADD COLUMN `defectQty2` INT After `defectDescription`, +ADD COLUMN `defectRemark2` VARCHAR(255) After `defectQty2`, +ADD COLUMN `defectUom2` VARCHAR(255) After `defectRemark2`, +ADD COLUMN `defectQty3` INT After `defectUom2`, +ADD COLUMN `defectUom3` VARCHAR(255) After `defectQty3`, +ADD COLUMN `defectDescription3` VARCHAR(255) After `defectUom3`, +ADD COLUMN `equipmentDetailId` INT After `equipmentId`; + +ALTER TABLE `fpsmsdb`.`equipment_type` +RENAME TO `fpsmsdb`.`equipment_detail`; \ No newline at end of file diff --git a/src/main/resources/db/changelog/changes/20251125_01_enson/02_altertable_enson.sql b/src/main/resources/db/changelog/changes/20251125_01_enson/02_altertable_enson.sql new file mode 100644 index 0000000..9846925 --- /dev/null +++ b/src/main/resources/db/changelog/changes/20251125_01_enson/02_altertable_enson.sql @@ -0,0 +1,6 @@ +-- liquibase formatted sql +-- changeset enson:altertable_enson + +ALTER TABLE `fpsmsdb`.`bom` + ADD COLUMN `ScrapRate` INT AFTER `isDense`, + ADD COLUMN `AllergicSubstance` INT AFTER `ScrapRate`; \ No newline at end of file