CANCERYS\kw093 1 день тому
джерело
коміт
c3c1e2e894
5 змінених файлів з 45 додано та 0 видалено
  1. +3
    -0
      src/main/java/com/ffii/fpsms/modules/stock/entity/StockTakeRecord.kt
  2. +18
    -0
      src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt
  3. +2
    -0
      src/main/java/com/ffii/fpsms/modules/stock/web/model/StockTakeRecordReponse.kt
  4. +8
    -0
      src/main/resources/db/changelog/changes/20260325_01_Enson/02_alter_stocktakerecord.sql
  5. +14
    -0
      src/main/resources/db/changelog/changes/20260325_01_Enson/03_fill_stocktakerecord_lastSelect.sql

+ 3
- 0
src/main/java/com/ffii/fpsms/modules/stock/entity/StockTakeRecord.kt Переглянути файл

@@ -78,6 +78,9 @@ open class StockTakeRecord : BaseEntity<Long>() {
@Column(name = "stockTakeEndTime")
open var stockTakeEndTime: LocalDateTime? = null

@Column(name = "lastSelect")
open var lastSelect: Int? = null

@Column(name = "approverTime")
open var approverTime: LocalDateTime? = null
@Column(name = "date", nullable = false)


+ 18
- 0
src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt Переглянути файл

@@ -368,6 +368,7 @@ class StockTakeRecordService(
stockTakerName = stockTakeRecord?.stockTakerName,
stockTakeEndTime = stockTakeRecord?.stockTakeEndTime,
approverTime = stockTakeRecord?.approverTime,
lastSelect = stockTakeRecord?.lastSelect,
)
}
@@ -1105,6 +1106,19 @@ return RecordsRes(paginatedResult, filteredResults.size)
this.varianceQty = varianceQty
this.status = "completed"
this.approverTime = java.time.LocalDateTime.now()
this.lastSelect = request.lastSelect ?: run {
// 兼容:旧客户端未传 lastSelect 时,尝试根据请求类型推断
if (request.approverQty != null && request.approverBadQty != null) {
3
} else if (
this.pickerSecondStockTakeQty != null &&
this.pickerSecondStockTakeQty!!.compareTo(request.qty) == 0
) {
2
} else {
1
}
}
// stockTakeEndTime 目前只在 saveStockTakeRecord「第二次盤點」時寫入;只做第一次盤點時會一直是 null。
// 審核通過時若仍為空,補上時間,讓列表「審核/完成時間」有值(不覆寫已有第二次盤點結束時間)。
if (this.stockTakeEndTime == null) {
@@ -1217,6 +1231,10 @@ open fun batchSaveApproverStockTakeRecords(
this.approverStockTakeQty = qty
this.approverBadQty = badQty
this.varianceQty = varianceQty
this.lastSelect = if (
record.pickerSecondStockTakeQty != null &&
record.pickerSecondStockTakeQty!! > BigDecimal.ZERO
) 2 else 1
this.status = "completed"
this.approverTime = java.time.LocalDateTime.now()
if (this.stockTakeEndTime == null) {


+ 2
- 0
src/main/java/com/ffii/fpsms/modules/stock/web/model/StockTakeRecordReponse.kt Переглянути файл

@@ -68,6 +68,7 @@ data class InventoryLotDetailResponse(
val stockTakeEndTime: LocalDateTime? = null,
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
val approverTime: LocalDateTime? = null,
val lastSelect: Int? = null,
)
data class InventoryLotLineListRequest(
val warehouseCode: String
@@ -87,6 +88,7 @@ data class SaveApproverStockTakeRecordRequest(
val approverId: Long? = null,
val approverQty: BigDecimal? = null,
val approverBadQty: BigDecimal? = null,
val lastSelect: Int? = null,
//val remark: String? = null
)
data class BatchSaveStockTakeRecordRequest(


+ 8
- 0
src/main/resources/db/changelog/changes/20260325_01_Enson/02_alter_stocktakerecord.sql Переглянути файл

@@ -0,0 +1,8 @@
-- liquibase formatted sql
-- changeset Enson:alter_stocktakerecord_lastSelect

ALTER TABLE `fpsmsdb`.`stocktakerecord`
ADD COLUMN `lastSelect` INT NULL AFTER `stockTakeEndTime`;




+ 14
- 0
src/main/resources/db/changelog/changes/20260325_01_Enson/03_fill_stocktakerecord_lastSelect.sql Переглянути файл

@@ -0,0 +1,14 @@
-- liquibase formatted sql
-- changeset Enson:fill_stocktakerecord_lastSelect

UPDATE `fpsmsdb`.`stocktakerecord`
SET lastSelect = CASE
WHEN approverStockTakeQty = pickerSecondStockTakeQty
AND COALESCE(approverBadQty, 0) = COALESCE(pickerSecondBadQty, 0) THEN 2
WHEN approverStockTakeQty = pickerFirstStockTakeQty
AND COALESCE(approverBadQty, 0) = COALESCE(pickerFirstBadQty, 0) THEN 1
WHEN approverStockTakeQty IS NOT NULL THEN 3
ELSE lastSelect
END
WHERE lastSelect IS NULL;


Завантаження…
Відмінити
Зберегти