Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
SmdBox
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit b838457c
由
sunke
编写于
2020-07-09 10:45:11 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
修改数量时更新库存
1 个父辈
68f42aea
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
38 行增加
和
14 行删除
myproject/src/main/java/com/myproject/webapp/controller/barcode/BarcodeUpdateController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/DataCache.java
myproject/src/main/java/com/myproject/webapp/controller/barcode/BarcodeUpdateController.java
查看文件 @
b838457
...
...
@@ -2,12 +2,14 @@ package com.myproject.webapp.controller.barcode;
import
com.google.common.base.Strings
;
import
com.myproject.bean.update.Barcode
;
import
com.myproject.bean.update.Storage
;
import
com.myproject.bean.update.StoragePos
;
import
com.myproject.exception.ValidateException
;
import
com.myproject.manager.IBarcodeManager
;
import
com.myproject.manager.IComponentManager
;
import
com.myproject.manager.IStoragePosManager
;
import
com.myproject.webapp.controller.storage.BaseUpdateController
;
import
com.myproject.webapp.controller.webService.DataCache
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
...
...
@@ -39,6 +41,9 @@ public class BarcodeUpdateController extends BaseUpdateController {
@Autowired
protected
IStoragePosManager
storagePosManager
;
@Autowired
protected
DataCache
dataCache
;
public
BarcodeUpdateController
()
{
setSuccessView
(
UPDATE_VIEW
);
}
...
...
@@ -90,10 +95,19 @@ public class BarcodeUpdateController extends BaseUpdateController {
StoragePos
pos
=
storagePosManager
.
getByBarcode
(
barcode
.
getBarcode
());
if
(
pos
!=
null
){
//已经在库中,更新数量备注等相关信息
Barcode
barcodeInPos
=
pos
.
getBarcode
();
log
.
info
(
"更新仓位【"
+
pos
.
getPosName
()+
"】物料"
+
barcodeInPos
.
getBarcode
()+
"的数量【"
+
barcodeInPos
.
getAmount
()+
"=>"
+
barcode
.
getAmount
()+
"】和备注信息["
+
barcodeInPos
.
getMemo
()+
"]=>"
+
barcode
.
getMemo
());
barcodeInPos
.
setAmount
(
barcode
.
getAmount
());
int
oldAmount
=
barcodeInPos
.
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
());
storagePosManager
.
save
(
pos
);
}
}
saveMessage
(
request
,
getText
(
"barcode.saveSuccess"
,
request
.
getLocale
()));
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/DataCache.java
查看文件 @
b838457
...
...
@@ -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
){
...
...
@@ -695,18 +716,7 @@ public class DataCache{
storage
.
useOnePos
(
pos
);
}
allStorage
.
put
(
cid
,
storage
);
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
;
return
updateInventoryAmount
(
cid
,
partNumber
,
amount
);
}
private
void
updateStorageInventory
(
String
cid
,
InventoryItem
inventoryItem
){
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论