| | |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.wm.transaction.MesWmTransactionMapper; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockStateEnum; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmTransactionTypeEnum; |
| | | import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService; |
| | | import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService; |
| | |
| | | // 2.3 更新库存数量 |
| | | boolean checkFlag = ObjUtil.defaultIfNull(reqDTO.getCheckFlag(), true); |
| | | materialStockService.updateMaterialStockQuantity(materialStock.getId(), reqDTO.getQuantity(), checkFlag); |
| | | MesWmMaterialStockDO updatedStock = materialStockService.getMaterialStock(materialStock.getId()); |
| | | BigDecimal newQuantity = updatedStock.getQuantity(); |
| | | // 库存状态:显式指定优先(如扫码入暂存库),否则按数量自动判定(≤0 已出库,>0 合格库) |
| | | Integer stockState = reqDTO.getStockState(); |
| | | if (stockState == null) { |
| | | stockState = newQuantity.signum() <= 0 |
| | | ? MesWmStockStateEnum.OUT.getState() : MesWmStockStateEnum.QUALIFIED.getState(); |
| | | } |
| | | materialStockService.updateMaterialStockState(updatedStock.getId(), stockState); |
| | | |
| | | // 3. 插入事务流水 |
| | | MesWmTransactionDO transaction = MesWmTransactionDO.builder() |