Commit b838457c sunke

修改数量时更新库存

1 个父辈 68f42aea
...@@ -2,12 +2,14 @@ package com.myproject.webapp.controller.barcode; ...@@ -2,12 +2,14 @@ package com.myproject.webapp.controller.barcode;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.myproject.bean.update.Barcode; import com.myproject.bean.update.Barcode;
import com.myproject.bean.update.Storage;
import com.myproject.bean.update.StoragePos; import com.myproject.bean.update.StoragePos;
import com.myproject.exception.ValidateException; import com.myproject.exception.ValidateException;
import com.myproject.manager.IBarcodeManager; import com.myproject.manager.IBarcodeManager;
import com.myproject.manager.IComponentManager; import com.myproject.manager.IComponentManager;
import com.myproject.manager.IStoragePosManager; import com.myproject.manager.IStoragePosManager;
import com.myproject.webapp.controller.storage.BaseUpdateController; import com.myproject.webapp.controller.storage.BaseUpdateController;
import com.myproject.webapp.controller.webService.DataCache;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
...@@ -39,6 +41,9 @@ public class BarcodeUpdateController extends BaseUpdateController { ...@@ -39,6 +41,9 @@ public class BarcodeUpdateController extends BaseUpdateController {
@Autowired @Autowired
protected IStoragePosManager storagePosManager; protected IStoragePosManager storagePosManager;
@Autowired
protected DataCache dataCache;
public BarcodeUpdateController() { public BarcodeUpdateController() {
setSuccessView(UPDATE_VIEW); setSuccessView(UPDATE_VIEW);
} }
...@@ -90,10 +95,19 @@ public class BarcodeUpdateController extends BaseUpdateController { ...@@ -90,10 +95,19 @@ public class BarcodeUpdateController extends BaseUpdateController {
StoragePos pos = storagePosManager.getByBarcode(barcode.getBarcode()); StoragePos pos = storagePosManager.getByBarcode(barcode.getBarcode());
if(pos != null){//已经在库中,更新数量备注等相关信息 if(pos != null){//已经在库中,更新数量备注等相关信息
Barcode barcodeInPos = pos.getBarcode(); Barcode barcodeInPos = pos.getBarcode();
log.info("更新仓位【"+pos.getPosName()+"】物料"+barcodeInPos.getBarcode()+"的数量【"+barcodeInPos.getAmount()+"=>"+barcode.getAmount()+"】和备注信息["+barcodeInPos.getMemo()+"]=>" +barcode.getMemo()); int oldAmount = barcodeInPos.getAmount();
barcodeInPos.setAmount(barcode.getAmount()); int newAmount = barcode.getAmount();
int diffAount = newAmount - oldAmount;
if(diffAount != 0){
//更新库存
Storage storage = dataCache.getStorageById(pos.getStorageId());
dataCache.updateInventoryAmount(storage.getCid(), barcodeInPos.getPartNumber(), diffAount);
}
log.info("更新仓位【"+pos.getPosName()+"】物料"+barcodeInPos.getBarcode()+"的数量【"+oldAmount+"=>"+newAmount+"】和备注信息["+barcodeInPos.getMemo()+"]=>" +barcode.getMemo());
barcodeInPos.setAmount(oldAmount);
barcodeInPos.setMemo(barcode.getMemo()); barcodeInPos.setMemo(barcode.getMemo());
storagePosManager.save(pos); storagePosManager.save(pos);
} }
} }
saveMessage(request, getText("barcode.saveSuccess", request.getLocale())); saveMessage(request, getText("barcode.saveSuccess", request.getLocale()));
......
...@@ -676,6 +676,27 @@ public class DataCache{ ...@@ -676,6 +676,27 @@ public class DataCache{
} }
/** /**
* 手动修改数量的时候更新库存
* @param cid
* @param partNumber
* @param amount
* @return
*/
public int updateInventoryAmount(String cid,String partNumber,int amount){
if(amount != 0){
InventoryItem inventoryItem = getStorageInventoryByPartNumber(cid,partNumber);
if(inventoryItem == null){
inventoryItem = new InventoryItem();
inventoryItem.setPartNumber(partNumber);
}
inventoryItem.updateInventory(amount);
updateStorageInventory(cid, inventoryItem);
return inventoryItem.getStockReel();
}
return -1;
}
/**
* 修改库存,出库为负,入库为正 * 修改库存,出库为负,入库为正
*/ */
public int updateInventory(StoragePos pos, Barcode barcode){ public int updateInventory(StoragePos pos, Barcode barcode){
...@@ -695,18 +716,7 @@ public class DataCache{ ...@@ -695,18 +716,7 @@ public class DataCache{
storage.useOnePos(pos); storage.useOnePos(pos);
} }
allStorage.put(cid, storage); allStorage.put(cid, storage);
return updateInventoryAmount(cid,partNumber,amount);
if(amount != 0){
InventoryItem inventoryItem = getStorageInventoryByPartNumber(cid,partNumber);
if(inventoryItem == null){
inventoryItem = new InventoryItem();
inventoryItem.setPartNumber(partNumber);
}
inventoryItem.updateInventory(amount);
updateStorageInventory(cid, inventoryItem);
return inventoryItem.getStockReel();
}
return -1;
} }
private void updateStorageInventory(String cid, InventoryItem inventoryItem){ private void updateStorageInventory(String cid, InventoryItem inventoryItem){
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!