Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit d84c9b5b
由
zshaohui
编写于
2025-11-13 16:39:58 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.pk出库 替代料功能开发
1 个父辈
4dde1565
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
51 行增加
和
11 行删除
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrderItem.java
src/main/java/com/neotel/smfcore/custom/luxsan/api/bean/result/GetPickingItemsResult.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/bean/dto/GetPickingItemsDto.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/PkCheckOutController.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
d84c9b5
...
@@ -1063,7 +1063,7 @@ public class LiteOrderCache {
...
@@ -1063,7 +1063,7 @@ public class LiteOrderCache {
String
brand
=
orderItem
.
getBrand
();
//供应商
String
brand
=
orderItem
.
getBrand
();
//供应商
String
pn
=
orderItem
.
getPn
();
//料号
String
pn
=
orderItem
.
getPn
();
//料号
StoragePos
pos
=
getStoragePosByPartNumberAndBrand
(
allStoragePosList
,
pn
,
excludeIdList
);
StoragePos
pos
=
getStoragePosByPartNumberAndBrand
(
allStoragePosList
,
pn
,
excludeIdList
);
if
(
pos
==
null
)
{
/*
if (pos == null) {
log.info(orderItem.getOrderId() + "厂商:" + warehouseCode + ",供应商:" + brand + ",料号:" + pn + "开始找替代料");
log.info(orderItem.getOrderId() + "厂商:" + warehouseCode + ",供应商:" + brand + ",料号:" + pn + "开始找替代料");
List<StorageLevelWarning> warningList = storageLevelWarningManager.findByQuery(new Query(Criteria.where("req").is(orderItem.getReplaceNum())));
List<StorageLevelWarning> warningList = storageLevelWarningManager.findByQuery(new Query(Criteria.where("req").is(orderItem.getReplaceNum())));
if (warningList != null && !warningList.isEmpty()){
if (warningList != null && !warningList.isEmpty()){
...
@@ -1076,7 +1076,23 @@ public class LiteOrderCache {
...
@@ -1076,7 +1076,23 @@ public class LiteOrderCache {
}
}
}
}
}
}
}*/
LiteOrderItem
mgItem
=
orderItem
;
if
(
pos
==
null
){
log
.
info
(
"库位为空,找对应的替代料"
);
List
<
LiteOrderItem
>
mgItemList
=
getMgItem
(
orderItem
.
getMg
(),
liteOrder
,
orderItem
.
getItemId
());
if
(
mgItemList
==
null
||
mgItemList
.
isEmpty
()){
break
;
}
for
(
LiteOrderItem
item
:
mgItemList
)
{
pos
=
getStoragePosByPartNumberAndBrand
(
allStoragePosList
,
item
.
getPn
(),
excludeIdList
);
if
(
pos
!=
null
){
mgItem
=
item
;
break
;
}
}
}
}
if
(
pos
==
null
){
if
(
pos
==
null
){
log
.
info
(
orderItem
.
getOrderId
()
+
"厂商:"
+
warehouseCode
+
",供应商:"
+
brand
+
",料号:"
+
pn
+
"未找到存在库位,跳过"
);
log
.
info
(
orderItem
.
getOrderId
()
+
"厂商:"
+
warehouseCode
+
",供应商:"
+
brand
+
",料号:"
+
pn
+
"未找到存在库位,跳过"
);
break
;
break
;
...
@@ -1148,25 +1164,25 @@ public class LiteOrderCache {
...
@@ -1148,25 +1164,25 @@ public class LiteOrderCache {
continue
;
continue
;
}
}
//判断厂别
//判断厂别
if
(
StringUtils
.
isNotBlank
(
warehouseCode
))
{
if
(
StringUtils
.
isNotBlank
(
mgItem
.
getWarehouseCode
()
))
{
if
(!
warehouseCode
.
equals
(
subCode
.
getWarehouseCode
()))
{
if
(!
mgItem
.
getWarehouseCode
()
.
equals
(
subCode
.
getWarehouseCode
()))
{
continue
;
continue
;
}
}
}
}
//判断供应商
//判断供应商
if
(
StringUtils
.
isNotBlank
(
brand
))
{
if
(
StringUtils
.
isNotBlank
(
mgItem
.
getBrand
()
))
{
if
(!
brand
.
equals
(
subCode
.
getProvider
()))
{
if
(!
mgItem
.
getBrand
()
.
equals
(
subCode
.
getProvider
()))
{
continue
;
continue
;
}
}
}
}
//判断料号
//判断料号
if
(
StringUtils
.
isNotBlank
(
pn
))
{
if
(
StringUtils
.
isNotBlank
(
mgItem
.
getPn
()
))
{
if
(!
pn
.
equals
(
subCode
.
getPartNumber
()))
{
if
(!
mgItem
.
getPn
()
.
equals
(
subCode
.
getPartNumber
()))
{
continue
;
continue
;
}
}
}
}
subCode
.
setOut
(
true
);
subCode
.
setOut
(
true
);
subCode
.
setOrderItemId
(
order
Item
.
getId
());
subCode
.
setOrderItemId
(
mg
Item
.
getId
());
barcode
.
UpdateSubCode
(
subCode
);
barcode
.
UpdateSubCode
(
subCode
);
subCodeIds
.
add
(
subCode
.
getId
());
subCodeIds
.
add
(
subCode
.
getId
());
...
@@ -1189,7 +1205,7 @@ public class LiteOrderCache {
...
@@ -1189,7 +1205,7 @@ public class LiteOrderCache {
}
}
if
(
subCodeIds
!=
null
&&
!
subCodeIds
.
isEmpty
())
{
if
(
subCodeIds
!=
null
&&
!
subCodeIds
.
isEmpty
())
{
Query
query
=
new
Query
(
Criteria
.
where
(
"id"
).
in
(
subCodeIds
));
Query
query
=
new
Query
(
Criteria
.
where
(
"id"
).
in
(
subCodeIds
));
Update
update
=
new
Update
().
set
(
"isOut"
,
true
).
set
(
"orderItemId"
,
order
Item
.
getId
());
Update
update
=
new
Update
().
set
(
"isOut"
,
true
).
set
(
"orderItemId"
,
mg
Item
.
getId
());
barcodeManager
.
updateBarcode
(
query
,
update
);
barcodeManager
.
updateBarcode
(
query
,
update
);
}
}
barcodeManager
.
save
(
barcode
);
barcodeManager
.
save
(
barcode
);
...
@@ -1261,6 +1277,21 @@ public class LiteOrderCache {
...
@@ -1261,6 +1277,21 @@ public class LiteOrderCache {
}
}
private
List
<
LiteOrderItem
>
getMgItem
(
String
mg
,
LiteOrder
liteOrder
,
String
itemId
)
{
List
<
LiteOrderItem
>
resultList
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotEmpty
(
mg
))
{
for
(
LiteOrderItem
orderItem
:
liteOrder
.
getOrderItems
())
{
if
(
mg
.
equals
(
orderItem
.
getMg
())){
if
(!
itemId
.
equals
(
orderItem
.
getItemId
())){
resultList
.
add
(
orderItem
);
}
}
}
}
return
resultList
;
}
public
StoragePos
getStoragePosByPartNumberAndBrand
(
List
<
StoragePos
>
allStoragePosList
,
String
partNumber
,
Collection
<
String
>
excludeIdList
)
{
public
StoragePos
getStoragePosByPartNumberAndBrand
(
List
<
StoragePos
>
allStoragePosList
,
String
partNumber
,
Collection
<
String
>
excludeIdList
)
{
StoragePos
storagePos
=
null
;
StoragePos
storagePos
=
null
;
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrderItem.java
查看文件 @
d84c9b5
...
@@ -405,6 +405,8 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
...
@@ -405,6 +405,8 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
private
String
model
;
private
String
model
;
private
String
mg
;
public
void
setOutReelList
(
String
reel
)
{
public
void
setOutReelList
(
String
reel
)
{
if
(
outReelList
==
null
){
if
(
outReelList
==
null
){
outReelList
=
new
ArrayList
<>();
outReelList
=
new
ArrayList
<>();
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/api/bean/result/GetPickingItemsResult.java
查看文件 @
d84c9b5
...
@@ -98,4 +98,6 @@ public class GetPickingItemsResult {
...
@@ -98,4 +98,6 @@ public class GetPickingItemsResult {
private
String
BIN_CODE
;
private
String
BIN_CODE
;
private
String
MODEL
;
private
String
MODEL
;
private
String
mg
;
}
}
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/bean/dto/GetPickingItemsDto.java
查看文件 @
d84c9b5
...
@@ -99,6 +99,8 @@ public class GetPickingItemsDto {
...
@@ -99,6 +99,8 @@ public class GetPickingItemsDto {
private
String
model
;
private
String
model
;
private
String
mg
;
public
static
GetPickingItemsDto
convertGetPickingItemsResultDto
(
GetPickingItemsResult
result
){
public
static
GetPickingItemsDto
convertGetPickingItemsResultDto
(
GetPickingItemsResult
result
){
GetPickingItemsDto
getPickingItemsResultDto
=
new
GetPickingItemsDto
();
GetPickingItemsDto
getPickingItemsResultDto
=
new
GetPickingItemsDto
();
...
@@ -122,6 +124,7 @@ public class GetPickingItemsDto {
...
@@ -122,6 +124,7 @@ public class GetPickingItemsDto {
getPickingItemsResultDto
.
setMo
(
result
.
getMO
());
getPickingItemsResultDto
.
setMo
(
result
.
getMO
());
getPickingItemsResultDto
.
setBinCode
(
result
.
getBIN_CODE
());
getPickingItemsResultDto
.
setBinCode
(
result
.
getBIN_CODE
());
getPickingItemsResultDto
.
setModel
(
result
.
getMODEL
());
getPickingItemsResultDto
.
setModel
(
result
.
getMODEL
());
getPickingItemsResultDto
.
setMg
(
result
.
getMg
());
return
getPickingItemsResultDto
;
return
getPickingItemsResultDto
;
}
}
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/PkCheckOutController.java
查看文件 @
d84c9b5
...
@@ -134,7 +134,8 @@ public class PkCheckOutController {
...
@@ -134,7 +134,8 @@ public class PkCheckOutController {
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"pickingId"
});
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"pickingId"
});
}
}
List
<
GetPickingItemsResult
>
pickingItems
=
LuxsanApi
.
getPickingItems
(
new
GetPickingItemsRequest
(
CommonUtil
.
plantCode
,
pickingId
));
List
<
GetPickingItemsResult
>
pickingItems
=
LuxsanApi
.
getPickingItems
(
new
GetPickingItemsRequest
(
CommonUtil
.
plantCode
,
pickingId
));
pickingItems
=
pickingItems
.
stream
().
sorted
(
Comparator
.
comparing
(
GetPickingItemsResult
::
getISSUED_QTY
)).
collect
(
Collectors
.
toList
());
pickingItems
=
pickingItems
.
stream
().
sorted
(
Comparator
.
comparing
(
GetPickingItemsResult
::
getMg
)
.
thenComparing
(
GetPickingItemsResult
::
getISSUED_QTY
)).
collect
(
Collectors
.
toList
());
return
ResultBean
.
newOkResult
(
GetPickingItemsDto
.
convertGetPickingItemsResultDto
(
pickingItems
));
return
ResultBean
.
newOkResult
(
GetPickingItemsDto
.
convertGetPickingItemsResultDto
(
pickingItems
));
}
}
...
@@ -210,6 +211,7 @@ public class PkCheckOutController {
...
@@ -210,6 +211,7 @@ public class PkCheckOutController {
int
needReelCount
=
pkItem
.
getREQ_REEL
()
-
pkItem
.
getISSUED_REEL
()
-
pkItem
.
getCP_REEL
()
+
(
pkItem
.
getRET_QTY
()
>
0
?
1
:
0
);
int
needReelCount
=
pkItem
.
getREQ_REEL
()
-
pkItem
.
getISSUED_REEL
()
-
pkItem
.
getCP_REEL
()
+
(
pkItem
.
getRET_QTY
()
>
0
?
1
:
0
);
item
.
setNeedReelCount
(
needReelCount
);
item
.
setNeedReelCount
(
needReelCount
);
item
.
setModel
(
pkItem
.
getMODEL
());
item
.
setModel
(
pkItem
.
getMODEL
());
item
.
setMg
(
pkItem
.
getMg
());
break
;
break
;
}
}
}
}
...
@@ -262,7 +264,7 @@ public class PkCheckOutController {
...
@@ -262,7 +264,7 @@ public class PkCheckOutController {
item
.
setNeedReelCount
(
needReelCount
);
item
.
setNeedReelCount
(
needReelCount
);
item
.
setModel
(
pkItem
.
getMODEL
());
item
.
setModel
(
pkItem
.
getMODEL
());
item
.
setMg
(
pkItem
.
getMg
());
itemList
.
add
(
item
);
itemList
.
add
(
item
);
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论