Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 5a4a168b
由
zshaohui
编写于
2024-07-08 15:18:44 +0800
浏览文件
选项
浏览文件
标签
下载
差异文件
Merge remote-tracking branch 'origin/smf-core-21088' into smf-core-21088
2 个父辈
8b95d783
e2292727
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
24 行增加
和
11 行删除
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
src/main/java/com/neotel/smfcore/custom/luxsan/api/bean/result/QueryGrStatusResult.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/bean/GrUdNum.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/bean/dto/QueryGrStatusDto.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/manual/ManualGrPutInController.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/util/GrUtil.java
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
查看文件 @
5a4a168
...
@@ -204,6 +204,8 @@ public class DataInitManager {
...
@@ -204,6 +204,8 @@ public class DataInitManager {
addNewFunctionMenu
(
2
,
manual
,
"manualGrStorage"
,
"手动GR入库"
,
"manualGrStorage"
,
"manualGrStorage/index"
,
"manualGrSto"
,
functionMenuMap
);
addNewFunctionMenu
(
2
,
manual
,
"manualGrStorage"
,
"手动GR入库"
,
"manualGrStorage"
,
"manualGrStorage/index"
,
"manualGrSto"
,
functionMenuMap
);
// 手动GR入库
// 手动GR入库
addNewFunctionMenu
(
3
,
manual
,
"manualGrStorageVirtual"
,
"虚拟仓手动GR入库"
,
"manualGrStorageVirtual"
,
"manualGrStorageVirtual/index"
,
"manualGrStoVirt"
,
functionMenuMap
);
addNewFunctionMenu
(
3
,
manual
,
"manualGrStorageVirtual"
,
"虚拟仓手动GR入库"
,
"manualGrStorageVirtual"
,
"manualGrStorageVirtual/index"
,
"manualGrStoVirt"
,
functionMenuMap
);
// 虚拟仓手动出库
addNewFunctionMenu
(
4
,
manual
,
"manualVirOut"
,
"虚拟仓手动出库"
,
"manualVirOut"
,
"manualVirOut/index"
,
"manualVirOut"
,
functionMenuMap
);
Menu
doc
=
Menu
.
CreatePMenu
(
"单据操作"
,
5
,
"doc"
,
1
,
"docOp"
,
raw
);
Menu
doc
=
Menu
.
CreatePMenu
(
"单据操作"
,
5
,
"doc"
,
1
,
"docOp"
,
raw
);
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/api/bean/result/QueryGrStatusResult.java
查看文件 @
5a4a168
...
@@ -74,6 +74,11 @@ public class QueryGrStatusResult {
...
@@ -74,6 +74,11 @@ public class QueryGrStatusResult {
private
String
UD_QTY
;
private
String
UD_QTY
;
/**
/**
* 过账数量 (用这个)
*/
private
String
PICKED_QTY
;
/**
* 单据数量
* 单据数量
*/
*/
private
String
LOT_QTY
;
private
String
LOT_QTY
;
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/bean/GrUdNum.java
查看文件 @
5a4a168
...
@@ -13,7 +13,7 @@ public class GrUdNum {
...
@@ -13,7 +13,7 @@ public class GrUdNum {
private
String
grItem
;
private
String
grItem
;
private
int
u
dQty
;
private
int
picke
dQty
;
private
int
lotQty
;
private
int
lotQty
;
}
}
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/bean/dto/QueryGrStatusDto.java
查看文件 @
5a4a168
...
@@ -75,6 +75,11 @@ public class QueryGrStatusDto {
...
@@ -75,6 +75,11 @@ public class QueryGrStatusDto {
private
String
udQty
;
private
String
udQty
;
/**
/**
* 过账数量 (用这个)
*/
private
String
pickedQty
;
/**
* 单据数量
* 单据数量
*/
*/
private
String
lotQty
;
private
String
lotQty
;
...
@@ -119,6 +124,7 @@ public class QueryGrStatusDto {
...
@@ -119,6 +124,7 @@ public class QueryGrStatusDto {
queryGrStatusResultDto
.
setWarehouseCode
(
result
.
getWAREHOUSE_CODE
());
queryGrStatusResultDto
.
setWarehouseCode
(
result
.
getWAREHOUSE_CODE
());
queryGrStatusResultDto
.
setUdCode
(
result
.
getUD_CODE
());
queryGrStatusResultDto
.
setUdCode
(
result
.
getUD_CODE
());
queryGrStatusResultDto
.
setUdQty
(
result
.
getUD_QTY
());
queryGrStatusResultDto
.
setUdQty
(
result
.
getUD_QTY
());
queryGrStatusResultDto
.
setPickedQty
(
result
.
getPICKED_QTY
());
queryGrStatusResultDto
.
setLotQty
(
result
.
getLOT_QTY
());
queryGrStatusResultDto
.
setLotQty
(
result
.
getLOT_QTY
());
queryGrStatusResultDto
.
setPostDate
(
result
.
getPOST_DATE
());
queryGrStatusResultDto
.
setPostDate
(
result
.
getPOST_DATE
());
queryGrStatusResultDto
.
setBatchCode
(
result
.
getBATCH_CODE
());
queryGrStatusResultDto
.
setBatchCode
(
result
.
getBATCH_CODE
());
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/manual/ManualGrPutInController.java
查看文件 @
5a4a168
...
@@ -105,7 +105,7 @@ public class ManualGrPutInController {
...
@@ -105,7 +105,7 @@ public class ManualGrPutInController {
@RequestMapping
(
"/bindGrUdQty"
)
@RequestMapping
(
"/bindGrUdQty"
)
@AnonymousAccess
@AnonymousAccess
public
ResultBean
bindGrUdQty
(
@RequestBody
GrUdNum
grUdNum
)
{
public
ResultBean
bindGrUdQty
(
@RequestBody
GrUdNum
grUdNum
)
{
GrUtil
.
updateGrUdQty
(
grUdNum
.
getCode
(),
grUdNum
.
getGrCode
(),
grUdNum
.
getGrItem
(),
grUdNum
.
get
U
dQty
(),
grUdNum
.
getLotQty
());
GrUtil
.
updateGrUdQty
(
grUdNum
.
getCode
(),
grUdNum
.
getGrCode
(),
grUdNum
.
getGrItem
(),
grUdNum
.
get
Picke
dQty
(),
grUdNum
.
getLotQty
());
return
ResultBean
.
newOkResult
(
GrUtil
.
getGrUdQty
(
grUdNum
.
getGrCode
(),
grUdNum
.
getGrItem
()));
return
ResultBean
.
newOkResult
(
GrUtil
.
getGrUdQty
(
grUdNum
.
getGrCode
(),
grUdNum
.
getGrItem
()));
}
}
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/util/GrUtil.java
查看文件 @
5a4a168
...
@@ -25,7 +25,7 @@ public class GrUtil {
...
@@ -25,7 +25,7 @@ public class GrUtil {
@Autowired
@Autowired
public
void
setCodeResolve
(
CodeResolve
codeResolve
)
{
public
void
setCodeResolve
(
CodeResolve
codeResolve
)
{
this
.
codeResolve
=
codeResolve
;
GrUtil
.
codeResolve
=
codeResolve
;
}
}
private
static
DataCache
dataCache
;
private
static
DataCache
dataCache
;
...
@@ -37,13 +37,13 @@ public class GrUtil {
...
@@ -37,13 +37,13 @@ public class GrUtil {
GrUtil
.
dataCache
=
cache
;
GrUtil
.
dataCache
=
cache
;
}
}
public
synchronized
static
void
updateGrUdQty
(
String
code
,
String
grCode
,
String
grItem
,
int
u
dQty
,
int
lotQty
)
{
public
synchronized
static
void
updateGrUdQty
(
String
code
,
String
grCode
,
String
grItem
,
int
picke
dQty
,
int
lotQty
)
{
Map
<
String
,
GrUdNum
>
cacheMap
=
dataCache
.
getCache
(
CACHE_GR_UDQTY
);
Map
<
String
,
GrUdNum
>
cacheMap
=
dataCache
.
getCache
(
CACHE_GR_UDQTY
);
if
(
cacheMap
==
null
)
{
if
(
cacheMap
==
null
)
{
cacheMap
=
Maps
.
newConcurrentMap
();
cacheMap
=
Maps
.
newConcurrentMap
();
}
}
String
key
=
grCode
+
"_"
+
grItem
;
String
key
=
grCode
+
"_"
+
grItem
;
cacheMap
.
put
(
key
,
new
GrUdNum
(
code
,
grCode
,
grItem
,
u
dQty
,
lotQty
));
cacheMap
.
put
(
key
,
new
GrUdNum
(
code
,
grCode
,
grItem
,
picke
dQty
,
lotQty
));
dataCache
.
updateCache
(
CACHE_GR_UDQTY
,
cacheMap
);
dataCache
.
updateCache
(
CACHE_GR_UDQTY
,
cacheMap
);
}
}
...
@@ -61,7 +61,7 @@ public class GrUtil {
...
@@ -61,7 +61,7 @@ public class GrUtil {
String
key
=
grCode
+
"_"
+
grItem
;
String
key
=
grCode
+
"_"
+
grItem
;
GrUdNum
grUdNum
=
cacheMap
.
get
(
key
);
GrUdNum
grUdNum
=
cacheMap
.
get
(
key
);
// 服务器端刷新条件
// 服务器端刷新条件
if
(
grUdNum
.
getLotQty
()
<=
grUdNum
.
get
U
dQty
())
{
if
(
grUdNum
.
getLotQty
()
<=
grUdNum
.
get
Picke
dQty
())
{
return
refreshGrNumFromAPI
(
grCode
,
grItem
);
return
refreshGrNumFromAPI
(
grCode
,
grItem
);
}
}
return
grUdNum
;
return
grUdNum
;
...
@@ -96,7 +96,7 @@ public class GrUtil {
...
@@ -96,7 +96,7 @@ public class GrUtil {
throw
new
ValidateException
(
"smfcore.error"
,
"更新GR过账信息缓存失败"
);
throw
new
ValidateException
(
"smfcore.error"
,
"更新GR过账信息缓存失败"
);
}
}
grUdNum
.
setLotQty
(
Double
.
valueOf
(
queryGrStatusDto
.
getLotQty
()).
intValue
());
grUdNum
.
setLotQty
(
Double
.
valueOf
(
queryGrStatusDto
.
getLotQty
()).
intValue
());
grUdNum
.
set
UdQty
(
Double
.
valueOf
(
queryGrStatusDto
.
getU
dQty
()).
intValue
());
grUdNum
.
set
PickedQty
(
Double
.
valueOf
(
queryGrStatusDto
.
getPicke
dQty
()).
intValue
());
cacheMap
.
put
(
key
,
grUdNum
);
cacheMap
.
put
(
key
,
grUdNum
);
dataCache
.
updateCache
(
CACHE_GR_UDQTY
,
cacheMap
);
dataCache
.
updateCache
(
CACHE_GR_UDQTY
,
cacheMap
);
}
}
...
@@ -111,11 +111,11 @@ public class GrUtil {
...
@@ -111,11 +111,11 @@ public class GrUtil {
String
key
=
grCode
+
"_"
+
grItem
;
String
key
=
grCode
+
"_"
+
grItem
;
GrUdNum
grUdNum
=
cacheMap
.
get
(
key
);
GrUdNum
grUdNum
=
cacheMap
.
get
(
key
);
synchronized
(
grUdNum
)
{
synchronized
(
grUdNum
)
{
if
(
canPutIn
(
grCode
,
grItem
,
count
))
{
if
(
!
canPutIn
(
grCode
,
grItem
,
count
))
{
throw
new
ValidateException
(
"smfcore.error"
,
"正在过账的物料数量大于当前GR所需过账数量"
);
throw
new
ValidateException
(
"smfcore.error"
,
"正在过账的物料数量大于当前GR所需过账数量"
);
}
}
grUdNum
.
setPickedQty
(
grUdNum
.
getPickedQty
()+
count
);
}
}
grUdNum
.
setUdQty
(
grUdNum
.
getUdQty
()+
count
);
}
}
public
static
boolean
canPutIn
(
String
grCode
,
String
grItem
,
int
addCount
)
{
public
static
boolean
canPutIn
(
String
grCode
,
String
grItem
,
int
addCount
)
{
...
@@ -126,11 +126,11 @@ public class GrUtil {
...
@@ -126,11 +126,11 @@ public class GrUtil {
String
key
=
grCode
+
"_"
+
grItem
;
String
key
=
grCode
+
"_"
+
grItem
;
GrUdNum
grUdNum
=
cacheMap
.
get
(
key
);
GrUdNum
grUdNum
=
cacheMap
.
get
(
key
);
synchronized
(
grUdNum
)
{
synchronized
(
grUdNum
)
{
boolean
canPutIn
=
grUdNum
.
get
U
dQty
()
+
addCount
<=
grUdNum
.
getLotQty
();
boolean
canPutIn
=
grUdNum
.
get
Picke
dQty
()
+
addCount
<=
grUdNum
.
getLotQty
();
if
(!
canPutIn
)
{
if
(!
canPutIn
)
{
refreshGrNumFromAPI
(
grCode
,
grItem
);
refreshGrNumFromAPI
(
grCode
,
grItem
);
}
}
return
grUdNum
.
get
U
dQty
()
+
addCount
<=
grUdNum
.
getLotQty
();
return
grUdNum
.
get
Picke
dQty
()
+
addCount
<=
grUdNum
.
getLotQty
();
}
}
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论