Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 12c1121a
由
hjh
编写于
2024-08-06 14:51:08 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
UID出库增加线体和PN出库回显
1 个父辈
fa9b0cbe
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
57 行增加
和
14 行删除
src/main/java/com/neotel/smfcore/core/barcode/service/po/Barcode.java
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
src/main/java/com/neotel/smfcore/core/storage/bean/InventoryItem.java
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
src/main/java/com/neotel/smfcore/core/storage/rest/dto/CheckOutDto.java
src/main/java/com/neotel/smfcore/core/storage/rest/dto/InventoryItemDto.java
src/main/java/com/neotel/smfcore/core/storage/rest/dto/TacticsOutDto.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/IStoragePosManager.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
src/main/java/com/neotel/smfcore/core/barcode/service/po/Barcode.java
查看文件 @
12c1121
...
...
@@ -83,6 +83,9 @@ public class Barcode extends BasePo implements Serializable {
* 盘高
*/
private
int
height
=
0
;
/**
* 供应商
*/
private
String
provider
;
/**
* 批次
...
...
@@ -561,4 +564,7 @@ public class Barcode extends BasePo implements Serializable {
}
}
}
public
String
getPartNumberAndProvider
(){
return
this
.
partNumber
+
"_"
+
this
.
provider
;
}
}
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
查看文件 @
12c1121
...
...
@@ -468,10 +468,12 @@ public class DataCache {
for
(
InventoryItem
item
:
map
.
values
())
{
if
(
ObjectUtil
.
isNotEmpty
(
blurry
))
{
if
(
item
.
getPartNumber
().
contains
(
blurry
))
{
resultMap
.
put
(
item
.
getPartNumber
(),
item
);
resultMap
.
put
(
item
.
getPartNumberAndProvider
(),
item
);
// resultMap.put(item.getPartNumber(), item);
}
}
else
{
resultMap
.
put
(
item
.
getPartNumber
(),
item
);
resultMap
.
put
(
item
.
getPartNumberAndProvider
(),
item
);
// resultMap.put(item.getPartNumber(), item);
}
}
return
resultMap
;
...
...
@@ -488,7 +490,9 @@ public class DataCache {
for
(
InventoryItem
storageInventoryItem
:
storageInventory
.
values
()){
storageInventoryItem
.
setStorageName
(
storage
.
getName
());
String
partNumber
=
storageInventoryItem
.
getPartNumber
();
InventoryItem
pnInventoryItem
=
resultMap
.
get
(
storageInventoryItem
.
getPartNumber
());
String
provider
=
storageInventoryItem
.
getProvider
();
InventoryItem
pnInventoryItem
=
resultMap
.
get
(
storageInventoryItem
.
getPartNumberAndProvider
());
// InventoryItem pnInventoryItem = resultMap.get(storageInventoryItem.getPartNumber());
if
(
pnInventoryItem
==
null
){
pnInventoryItem
=
new
InventoryItem
();
pnInventoryItem
.
setStorageName
(
storageInventoryItem
.
getStorageName
());
...
...
@@ -498,12 +502,13 @@ public class DataCache {
pnInventoryItem
.
setStorageId
(
null
);
}
pnInventoryItem
.
setPartNumber
(
partNumber
);
pnInventoryItem
.
setProvider
(
provider
);
pnInventoryItem
.
setStockCount
(
pnInventoryItem
.
getStockCount
()
+
storageInventoryItem
.
getStockCount
());
pnInventoryItem
.
setLockCount
(
pnInventoryItem
.
getLockCount
()
+
storageInventoryItem
.
getLockCount
());
pnInventoryItem
.
setStockReel
(
pnInventoryItem
.
getStockReel
()
+
storageInventoryItem
.
getStockReel
());
pnInventoryItem
.
setLockReel
(
pnInventoryItem
.
getLockReel
()
+
storageInventoryItem
.
getLockReel
());
resultMap
.
put
(
partNumber
,
pnInventoryItem
);
resultMap
.
put
(
storageInventoryItem
.
getPartNumberAndProvider
(),
pnInventoryItem
);
//
resultMap.put(partNumber,pnInventoryItem);
}
}
return
resultMap
;
...
...
@@ -523,10 +528,13 @@ public class DataCache {
public
InventoryItem
getStorageInventoryByPartNumber
(
String
cid
,
String
partNumber
){
Map
<
String
,
InventoryItem
>
storageInventory
=
getStorageInventory
(
cid
);
// 修改
InventoryItem
partNumberInventoryItem
=
storageInventory
.
get
(
partNumber
);
if
(
partNumberInventoryItem
==
null
){
partNumberInventoryItem
=
new
InventoryItem
();
partNumberInventoryItem
.
setPartNumber
(
partNumber
);
// 添加供货商
partNumberInventoryItem
.
setProvider
(
""
);
}
return
partNumberInventoryItem
;
}
...
...
src/main/java/com/neotel/smfcore/core/storage/bean/InventoryItem.java
查看文件 @
12c1121
...
...
@@ -18,6 +18,13 @@ public class InventoryItem {
*/
private
String
partNumber
;
//加个字段(供应商)
/**
* 供货商编号
*/
private
String
provider
;
/**
* 库存数量
*/
...
...
@@ -154,4 +161,8 @@ public class InventoryItem {
public
void
setLockCount
(
int
lockCount
)
{
this
.
lockCount
=
lockCount
;
}
public
String
getPartNumberAndProvider
(){
return
this
.
partNumber
+
"_"
+
this
.
provider
;
}
}
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
查看文件 @
12c1121
...
...
@@ -704,6 +704,10 @@ public class StoragePosController {
if
(
checkOutDto
.
getSingleOut
()
==
null
)
{
checkOutDto
.
setSingleOut
(
true
+
""
);
}
// 判断线体是否为空
if
(
StringUtils
.
isNotEmpty
(
checkOutDto
.
getLine
()))
{
throw
new
ValidateException
(
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"线体"
});
}
String
isSingleOutStr
=
checkOutDto
.
getSingleOut
();
boolean
isSingleOut
=
Boolean
.
valueOf
(
isSingleOutStr
);
...
...
@@ -724,9 +728,8 @@ public class StoragePosController {
// if(!result) {
// throw new ValidateException("smfcore.error.getMaterialLot.out", "条码[{0}]验证失败,无法出库", new String[]{pos.getBarcode().getBarcode()});
// }
log
.
info
(
"出库料仓【"
+
storage
.
getName
()
+
"_"
+
storage
.
getCid
()
+
"】位置仓位【"
+
pos
.
getPosName
()
+
"】"
);
String
outResult
=
taskService
.
checkout
(
storage
,
pos
,
isSingleOut
,
SecurityUtils
.
getCurrentUsername
(),
null
,
ExtendType
.
MANUAL_CHECKOUT
);
String
outResult
=
taskService
.
checkout
(
storage
,
pos
,
isSingleOut
,
SecurityUtils
.
getCurrentUsername
(),
null
,
ExtendType
.
MANUAL_CHECKOUT
,
checkOutDto
.
getLine
()
);
if
(!
Strings
.
isNullOrEmpty
(
outResult
))
{
throw
new
ValidateException
(
"smfcore.error"
,
outResult
);
}
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/dto/CheckOutDto.java
查看文件 @
12c1121
...
...
@@ -5,8 +5,11 @@ import lombok.Data;
@Data
public
class
CheckOutDto
{
@ApiModelProperty
(
"库位ID号 "
)
private
String
[]
pids
;
@ApiModelProperty
(
"是否是单盘出库"
)
private
String
singleOut
;
@ApiModelProperty
(
"线体"
)
private
String
line
;
}
src/main/java/com/neotel/smfcore/core/storage/rest/dto/InventoryItemDto.java
查看文件 @
12c1121
...
...
@@ -12,6 +12,9 @@ public class InventoryItemDto implements Serializable {
@ApiModelProperty
(
"物编"
)
private
String
partNumber
;
@ApiModelProperty
(
"供应商"
)
private
String
provider
;
@ApiModelProperty
(
"库存数量"
)
private
int
stockCount
=
0
;
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/dto/TacticsOutDto.java
查看文件 @
12c1121
...
...
@@ -12,6 +12,9 @@ public class TacticsOutDto implements Serializable {
@ApiModelProperty
(
"物编"
)
private
String
partNumber
;
@ApiModelProperty
(
"供应商"
)
private
String
provider
;
@ApiModelProperty
(
"出库盘数"
)
private
Integer
plateNumber
;
...
...
src/main/java/com/neotel/smfcore/core/storage/service/manager/IStoragePosManager.java
查看文件 @
12c1121
...
...
@@ -33,6 +33,10 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
StoragePos
findPartNumberInStorages
(
List
<
String
>
storageIdList
,
String
pn
,
Collection
<
String
>
excludePosIds
,
CHECKOUT_TYPE
checkOutType
);
StoragePos
findPartNumberAndProviderInStorages
(
List
<
String
>
storageIdList
,
String
pn
,
String
provider
,
Collection
<
String
>
excludePosIds
,
CHECKOUT_TYPE
checkOutType
);
StoragePos
findPartNumberAndProviderNumberInStorages
(
List
<
String
>
storageIdList
,
String
labelId
,
String
pn
,
String
provider
,
Collection
<
String
>
excludePosIds
,
CHECKOUT_TYPE
checkOutType
);
StoragePos
findPartNumberInStorages
(
List
<
String
>
storageIdList
,
String
labelId
,
String
pn
,
Collection
<
String
>
excludePosIds
,
CHECKOUT_TYPE
checkOutType
);
StoragePos
findPartNumberInStorages
(
List
<
String
>
storageIdList
,
String
pn
,
Collection
<
String
>
excludePosIds
,
CHECKOUT_TYPE
checkOutType
,
String
brand
);
...
...
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
查看文件 @
12c1121
此文件的差异被折叠,
点击展开。
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
12c1121
...
...
@@ -141,7 +141,7 @@ public class TaskService {
public
synchronized
String
checkout
(
Storage
storage
,
StoragePos
pos
,
boolean
isSingleOut
,
String
opUserName
,
String
stationName
)
throws
ValidateException
{
return
checkout
(
storage
,
pos
,
isSingleOut
,
opUserName
,
stationName
,
-
1
);
return
checkout
(
storage
,
pos
,
isSingleOut
,
opUserName
,
stationName
,
-
1
,
""
);
}
/**
...
...
@@ -153,13 +153,11 @@ public class TaskService {
* @return
* @throws ValidateException
*/
public
synchronized
String
checkout
(
Storage
storage
,
StoragePos
pos
,
boolean
isSingleOut
,
String
opUserName
,
String
stationName
,
int
extendType
)
throws
ValidateException
{
public
synchronized
String
checkout
(
Storage
storage
,
StoragePos
pos
,
boolean
isSingleOut
,
String
opUserName
,
String
stationName
,
int
extendType
,
String
line
)
throws
ValidateException
{
if
(
pos
.
getBarcode
()
==
null
)
{
String
msg
=
"库位["
+
pos
.
getPosName
()
+
"]中已无物料,忽略"
;
log
.
info
(
msg
);
throw
new
ValidateException
(
"smfcore.allBoxView.noReel"
,
"库位{0}中无物料"
,
new
String
[]{
pos
.
getPosName
()});
// Barcode barcode=new Barcode();
// SimpleDateFormat formatter= new SimpleDateFormat("HHmmss");
// Date date = new Date(System.currentTimeMillis());
...
...
@@ -207,6 +205,9 @@ public class TaskService {
if
(
extendType
!=
-
1
)
{
task
.
setExtendType
(
extendType
);
}
if
(
StringUtils
.
isNotEmpty
(
line
)){
task
.
setLine
(
line
);
}
addTaskToExecute
(
task
);
//}
return
""
;
...
...
@@ -1211,17 +1212,18 @@ public class TaskService {
//其他出库模式一次性全部生成任务
for
(
TacticsOutDto
item
:
tacticsOutDtos
)
{
log
.
info
(
"开始执行策略出库["
+
item
.
getPartNumber
()
+
"] ["
+
item
.
getStorageId
()
+
"] 盘数="
+
item
.
getPlateNumber
());
log
.
info
(
"开始执行策略出库["
+
item
.
getPartNumber
()
+
"]
["
+
item
.
getProvider
()
+
"]
["
+
item
.
getStorageId
()
+
"] 盘数="
+
item
.
getPlateNumber
());
String
partNumber
=
item
.
getPartNumber
();
String
provider
=
item
.
getProvider
();
for
(
int
i
=
1
;
i
<=
item
.
getPlateNumber
();
i
++)
{
Collection
<
String
>
excludePosIds
=
excludePosIds
();
StoragePos
pos
=
null
;
if
(
item
.
getStorageId
()
!=
null
)
{
String
[]
storageIds
=
new
String
[]{
item
.
getStorageId
()};
pos
=
storagePosManager
.
findPartNumber
InStorages
(
Lists
.
newArrayList
(
storageIds
),
partNumb
er
,
excludePosIds
,
checkoutType
);
pos
=
storagePosManager
.
findPartNumber
AndProviderInStorages
(
Lists
.
newArrayList
(
storageIds
),
partNumber
,
provid
er
,
excludePosIds
,
checkoutType
);
}
else
{
pos
=
storagePosManager
.
findPartNumber
InStorages
(
availableStorageIds
,
partNumb
er
,
excludePosIds
,
checkoutType
);
pos
=
storagePosManager
.
findPartNumber
AndProviderInStorages
(
availableStorageIds
,
partNumber
,
provid
er
,
excludePosIds
,
checkoutType
);
}
if
(
pos
==
null
)
{
log
.
error
(
"策略出库["
+
item
.
getPartNumber
()
+
"] 未找到可以出库的物料["
+
partNumber
+
"]"
);
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论