| @@ -22,7 +22,9 @@ class JoPickOrder { | |||||
| @Enumerated(EnumType.STRING) | @Enumerated(EnumType.STRING) | ||||
| @Column(name = "match_status") | @Column(name = "match_status") | ||||
| var matchStatus: JoPickOrderStatus? = null | var matchStatus: JoPickOrderStatus? = null | ||||
| @Column(name = "matchingBy") | |||||
| var matchingBy: Long? = null | |||||
| @Column(name = "match_by") | @Column(name = "match_by") | ||||
| var matchBy: Long? = null | var matchBy: Long? = null | ||||
| @@ -2091,8 +2091,8 @@ open fun updateHandledByForItem(pickOrderId: Long, itemId: Long, userId: Long): | |||||
| } | } | ||||
| val joPickOrder = joPickOrderOpt.get() | val joPickOrder = joPickOrderOpt.get() | ||||
| if (userId != null && joPickOrder.handledBy != null) { | |||||
| val existingOperatorId = joPickOrder.handledBy | |||||
| if (userId != null && joPickOrder.matchingBy != null) { | |||||
| val existingOperatorId = joPickOrder.matchingBy | |||||
| val newOperatorId = userId | val newOperatorId = userId | ||||
| // 如果不是同一个用户,拒绝更新 | // 如果不是同一个用户,拒绝更新 | ||||
| @@ -2107,7 +2107,7 @@ open fun updateHandledByForItem(pickOrderId: Long, itemId: Long, userId: Long): | |||||
| ) | ) | ||||
| } | } | ||||
| } | } | ||||
| joPickOrder.handledBy = userId | |||||
| joPickOrder.matchingBy = userId | |||||
| joPickOrderRepository.save(joPickOrder) | joPickOrderRepository.save(joPickOrder) | ||||
| // Don't update other fields - only handledBy | // Don't update other fields - only handledBy | ||||
| @@ -390,12 +390,12 @@ return result | |||||
| ON ill.warehouseId = wh.id | ON ill.warehouseId = wh.id | ||||
| AND wh.deleted = 0 | AND wh.deleted = 0 | ||||
| LEFT JOIN user picker_user | LEFT JOIN user picker_user | ||||
| ON sol.pickerId = picker_user.id | |||||
| ON sol.handled_by = picker_user.id | |||||
| AND picker_user.deleted = 0 | AND picker_user.deleted = 0 | ||||
| LEFT JOIN user modified_user | LEFT JOIN user modified_user | ||||
| ON sol.modifiedBy = modified_user.staffNo | ON sol.modifiedBy = modified_user.staffNo | ||||
| AND modified_user.deleted = 0 | AND modified_user.deleted = 0 | ||||
| AND sol.pickerId IS NULL | |||||
| AND sol.handled_by IS NULL | |||||
| WHERE | WHERE | ||||
| dpolr.deleted = 0 | dpolr.deleted = 0 | ||||
| $stockCategorySql | $stockCategorySql | ||||
| @@ -559,7 +559,7 @@ fun searchMaterialStockOutTraceabilityReport( | |||||
| ON ill.warehouseId = wh.id | ON ill.warehouseId = wh.id | ||||
| AND wh.deleted = 0 | AND wh.deleted = 0 | ||||
| LEFT JOIN user picker_user | LEFT JOIN user picker_user | ||||
| ON sol.pickerId = picker_user.id | |||||
| ON sol.handled_by = picker_user.id | |||||
| AND picker_user.deleted = 0 | AND picker_user.deleted = 0 | ||||
| LEFT JOIN jo_pick_order jpo | LEFT JOIN jo_pick_order jpo | ||||
| ON po.id = jpo.pick_order_id | ON po.id = jpo.pick_order_id | ||||
| @@ -574,7 +574,7 @@ fun searchMaterialStockOutTraceabilityReport( | |||||
| LEFT JOIN user modified_user | LEFT JOIN user modified_user | ||||
| ON sol.modifiedBy = modified_user.staffNo | ON sol.modifiedBy = modified_user.staffNo | ||||
| AND modified_user.deleted = 0 | AND modified_user.deleted = 0 | ||||
| AND sol.pickerId IS NULL | |||||
| AND sol.handled_by IS NULL | |||||
| WHERE | WHERE | ||||
| sol.deleted = 0 | sol.deleted = 0 | ||||
| AND (sol.inventoryLotLineId IS NULL OR ill.id IS NOT NULL) | AND (sol.inventoryLotLineId IS NULL OR ill.id IS NOT NULL) | ||||
| @@ -43,6 +43,10 @@ open class StockInLine : BaseEntity<Long>() { | |||||
| @JoinColumn(name = "jobOrderId") | @JoinColumn(name = "jobOrderId") | ||||
| open var jobOrder: JobOrder? = null | open var jobOrder: JobOrder? = null | ||||
| @Column(name = "handled_by") | |||||
| open var handledBy: Long? = null | |||||
| @ManyToOne | @ManyToOne | ||||
| @JoinColumn(name = "stockTakeLineId") | @JoinColumn(name = "stockTakeLineId") | ||||
| open var stockTakeLine: StockTakeLine? = null | open var stockTakeLine: StockTakeLine? = null | ||||
| @@ -38,8 +38,8 @@ open class StockOutLine: BaseEntity<Long>() { | |||||
| @Column(name = "pickTime") | @Column(name = "pickTime") | ||||
| open var pickTime: LocalDateTime? = null | open var pickTime: LocalDateTime? = null | ||||
| @Column(name = "pickerId") | |||||
| open var pickerId: Long? = null | |||||
| @Column(name = "handled_by") | |||||
| open var handledBy: Long? = null | |||||
| @JsonBackReference | @JsonBackReference | ||||
| @ManyToOne | @ManyToOne | ||||
| @@ -1392,7 +1392,7 @@ private fun createStockLedgerForStockOut(stockOutLine: StockOutLine) { | |||||
| this.inventoryLotLine = updatedInventoryLotLine | this.inventoryLotLine = updatedInventoryLotLine | ||||
| this.status = StockOutLineStatus.COMPLETE.status | this.status = StockOutLineStatus.COMPLETE.status | ||||
| this.pickTime = LocalDateTime.now() | this.pickTime = LocalDateTime.now() | ||||
| this.pickerId = currentUser.id | |||||
| this.handledBy = currentUser.id | |||||
| this.type = request.type | this.type = request.type | ||||
| } | } | ||||
| val savedStockOutLine = saveAndFlush(stockOutLine) | val savedStockOutLine = saveAndFlush(stockOutLine) | ||||
| @@ -0,0 +1,18 @@ | |||||
| -- liquibase formatted sql | |||||
| -- changeset Enson:add_baseScore_to_bom | |||||
| -- preconditions onFail:MARK_RAN | |||||
| -- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = 'fpsmsdb' AND table_name = 'stock_in_line' AND column_name = 'handled_by' | |||||
| ALTER TABLE `fpsmsdb`.`stock_in_line` | |||||
| ADD COLUMN `handled_by` INT NULL DEFAULT NULL AFTER `stockInId`; | |||||
| ALTER TABLE `fpsmsdb`.`stock_out_line` | |||||
| CHANGE COLUMN`pickerId` `handled_by` INT NULL DEFAULT NULL; | |||||
| ALTER TABLE `fpsmsdb`.`jo_pick_order` | |||||
| Add COLUMN `matchingBy` INT NULL DEFAULT NULL; | |||||
| ALTER TABLE `fpsmsdb`.`equipment_detail` | |||||
| Add COLUMN `status` varchar(255) NULL DEFAULT NULL; | |||||