Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit c4315609
由
LN
编写于
2024-08-02 09:58:09 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.库存报表需要显示格口号,品名,库别。2.出库单不显示问题修改
1 个父辈
a396b924
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
76 行增加
和
31 行删除
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderManagerImpl.java
src/main/java/com/neotel/smfcore/core/report/ReportController.java
src/main/java/com/neotel/smfcore/core/storage/bean/InventoryItem.java
src/main/java/com/neotel/smfcore/core/storage/rest/dto/InventoryItemDto.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/api/LuxsanSpApi.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/util/SpareNoCache.java
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderManagerImpl.java
查看文件 @
c431560
...
...
@@ -76,8 +76,14 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
}
@Override
public
LiteOrder
createWithItems
(
LiteOrder
liteOrder
)
throws
ValidateException
{
liteOrder
.
setId
(
liteOrderDao
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"orderNo"
)
.
is
(
liteOrder
.
getOrderNo
()))).
getId
());
//查找工单是否已存在
LiteOrder
old
=
liteOrderDao
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"orderNo"
)
.
is
(
liteOrder
.
getOrderNo
())));
if
(
old
!=
null
){
liteOrder
.
setId
(
old
.
getId
());
}
// liteOrder.setId(liteOrderDao.findOne(Query.query(Criteria.where("orderNo")
// .is(liteOrder.getOrderNo()))).getId());
liteOrder
=
save
(
liteOrder
);
List
<
LiteOrderItem
>
items
=
Lists
.
newArrayList
();
for
(
LiteOrderItem
liteOrderItem
:
liteOrder
.
getOrderItems
())
{
...
...
src/main/java/com/neotel/smfcore/core/report/ReportController.java
查看文件 @
c431560
...
...
@@ -202,47 +202,52 @@ public class ReportController {
@Autowired
private
InventoryItemMapper
inventoryItemMapper
;
private
List
<
InventoryItemDto
>
getInventory
(
InventoryQueryCriteria
criteria
,
Pageable
pageable
){
Map
<
String
,
InventoryItem
>
inventoryItemMap
=
dataCache
.
getAllInventory
(
criteria
.
getStorageIdList
(),
criteria
.
getBlurry
());
private
List
<
InventoryItemDto
>
getInventory
(
InventoryQueryCriteria
criteria
,
Pageable
pageable
)
{
Map
<
String
,
InventoryItem
>
inventoryItemMap
=
dataCache
.
getAllInventory
(
criteria
.
getStorageIdList
(),
criteria
.
getBlurry
());
List
<
InventoryItem
>
list
=
Lists
.
newArrayList
(
inventoryItemMap
.
values
());
List
<
InventoryItemDto
>
dtoList
=
inventoryItemMapper
.
toDto
(
list
);
List
<
InventoryItemDto
>
resultList
=
new
ArrayList
<>();
//过滤掉没有库存的
for
(
InventoryItemDto
inventoryItemDto
:
dtoList
)
{
if
(
inventoryItemDto
.
getStockReel
()
>
0
)
{
if
(
inventoryItemDto
.
getStockReel
()
>
0
)
{
resultList
.
add
(
inventoryItemDto
);
}
}
Comparator
<
InventoryItemDto
>
comparator
=
Comparator
.
comparing
(
InventoryItemDto:
:
getPartNumber
);
Sort
.
Order
lockReelOrder
=
pageable
.
getSort
().
getOrderFor
(
"lockReel"
);
if
(
lockReelOrder
!=
null
){
comparator
=
Comparator
.
comparing
(
InventoryItemDto:
:
getStockReel
,
Comparator
.
nullsFirst
(
Integer:
:
compareTo
));
if
(
lockReelOrder
.
isDescending
()){
comparator
=
comparator
.
reversed
();
try
{
Comparator
<
InventoryItemDto
>
comparator
=
Comparator
.
comparing
(
InventoryItemDto:
:
getPartNumber
);
Sort
.
Order
lockReelOrder
=
pageable
.
getSort
().
getOrderFor
(
"lockReel"
);
if
(
lockReelOrder
!=
null
)
{
comparator
=
Comparator
.
comparing
(
InventoryItemDto:
:
getStockReel
,
Comparator
.
nullsFirst
(
Integer:
:
compareTo
));
if
(
lockReelOrder
.
isDescending
())
{
comparator
=
comparator
.
reversed
();
}
}
}
Sort
.
Order
stockCountOrder
=
pageable
.
getSort
().
getOrderFor
(
"stockCount"
);
if
(
stockCountOrder
!=
null
){
comparator
=
Comparator
.
comparing
(
InventoryItemDto:
:
getStockCount
,
Comparator
.
nullsFirst
(
Integer:
:
compareTo
));
if
(
stockCountOrder
.
isDescending
()){
comparator
=
comparator
.
reversed
();
Sort
.
Order
stockCountOrder
=
pageable
.
getSort
().
getOrderFor
(
"stockCount"
);
if
(
stockCountOrder
!=
null
)
{
comparator
=
Comparator
.
comparing
(
InventoryItemDto:
:
getStockCount
,
Comparator
.
nullsFirst
(
Integer:
:
compareTo
));
if
(
stockCountOrder
.
isDescending
())
{
comparator
=
comparator
.
reversed
();
}
}
}
Sort
.
Order
partNumberOrder
=
pageable
.
getSort
().
getOrderFor
(
"partNumber"
);
if
(
partNumberOrder
!=
null
){
comparator
=
Comparator
.
comparing
(
InventoryItemDto:
:
getPartNumber
,
Comparator
.
nullsFirst
(
String:
:
compareTo
));
if
(
partNumberOrder
.
isDescending
()){
comparator
=
comparator
.
reversed
();
Sort
.
Order
partNumberOrder
=
pageable
.
getSort
().
getOrderFor
(
"partNumber"
);
if
(
partNumberOrder
!=
null
)
{
comparator
=
Comparator
.
comparing
(
item
->
item
.
getPartNumber
()
!=
null
?
item
.
getPartNumber
()
:
""
,
Comparator
.
nullsFirst
(
String:
:
compareTo
));
if
(
partNumberOrder
.
isDescending
())
{
comparator
=
comparator
.
reversed
();
}
}
}
resultList
=
resultList
.
stream
().
sorted
(
comparator
).
collect
(
Collectors
.
toList
());
resultList
=
resultList
.
stream
().
sorted
(
comparator
).
collect
(
Collectors
.
toList
());
// System.out.println("================");
// for (InventoryItemDto dto : resultList) {
// System.out.println(dto.getPartNumber() + "---" + dto.getStockCount() + " --- " + dto.getStockReel());
// }
}
catch
(
Exception
ex
)
{
log
.
info
(
"pn库存排序出错:"
+
ex
.
toString
());
}
return
resultList
;
}
...
...
src/main/java/com/neotel/smfcore/core/storage/bean/InventoryItem.java
查看文件 @
c431560
...
...
@@ -54,6 +54,12 @@ public class InventoryItem {
*/
private
String
storageName
;
private
String
wareHouseCode
;
private
String
posName
;
private
String
gekouName
;
private
String
partname
;
/**
* 绑定数量
*/
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/dto/InventoryItemDto.java
查看文件 @
c431560
...
...
@@ -39,9 +39,12 @@ public class InventoryItemDto implements Serializable {
@ApiModelProperty
(
"库别"
)
private
String
wareHouseCode
;
private
String
wareHouseCode
=
""
;
@ApiModelProperty
(
"品名"
)
private
String
partname
;
private
String
partname
=
""
;
@ApiModelProperty
(
"格口号"
)
private
String
gekouName
=
""
;
}
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
查看文件 @
c431560
...
...
@@ -995,8 +995,20 @@ public class StoragePosManagerImpl implements IStoragePosManager {
Aggregation
agg
=
Aggregation
.
newAggregation
(
Aggregation
.
match
(
c
),
Aggregation
.
unwind
(
"barcode.subCodeList"
),
Aggregation
.
group
(
"barcode.subCodeList.partNumber"
).
sum
(
"barcode.subCodeList.amount"
).
as
(
"stockCount"
).
count
().
as
(
"stockReel"
),
Aggregation
.
project
(
"stockCount"
,
"stockReel"
).
and
(
"partNumber"
).
previousOperation
()
Aggregation
.
group
(
"barcode.subCodeList.partNumber"
)
.
first
(
"barcode.subCodeList.partNumber"
).
as
(
"partNumber"
)
.
first
(
"barcode.barcode"
).
as
(
"boxName"
)
.
first
(
"barcode.subCodeList.barcode"
).
as
(
"gekouName"
)
.
first
(
"barcode.subCodeList.pn"
).
as
(
"partname"
)
.
first
(
"wareHouseCode"
).
as
(
"wareHouseCode"
)
.
sum
(
"barcode.subCodeList.amount"
).
as
(
"stockCount"
).
count
().
as
(
"stockReel"
),
Aggregation
.
project
(
"stockCount"
,
"stockReel"
)
.
and
(
"partNumber"
).
as
(
"partNumber"
)
.
and
(
"boxName"
).
as
(
"boxName"
)
.
and
(
"partname"
).
as
(
"partname"
)
.
and
(
"gekouName"
).
as
(
"gekouName"
)
.
and
(
"wareHouseCode"
).
as
(
"wareHouseCode"
)
);
AggregationResults
<
InventoryItem
>
results
=
storagePosDao
.
getMongoTemplate
().
aggregate
(
agg
,
StoragePos
.
class
,
InventoryItem
.
class
);
return
results
.
getMappedResults
();
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/api/LuxsanSpApi.java
查看文件 @
c431560
...
...
@@ -27,6 +27,8 @@ import java.util.Map;
@Component
public
class
LuxsanSpApi
extends
DefaultSmfApiListener
{
public
static
boolean
Debug
=
false
;
public
static
String
GetSpareNoUrl
;
public
static
String
SpareInHourseUrl
;
private
static
String
GetUnclaimedUrl
;
...
...
@@ -86,6 +88,17 @@ public class LuxsanSpApi extends DefaultSmfApiListener {
}
public
static
List
<
GetUnclaimedResult
>
getUnclaimedDetails
(
GetUnclaimedRequest
request
)
{
if
(
Debug
)
{
String
msg
=
"{\"msg\":\"操作成功\",\"code\":200,\"data\":[{\"searchValue\":null,\"createBy\":null,\"createTime\":\"2024-08-02 08:40:43\",\"updateBy\":null,\"updateTime\":\"2024-08-02 08:41:26\",\"remark\":null,\"params\":{},\"id\":null,\"flag\":null,\"status\":\"1\",\"orderNo\":\"SA2024080200223\",\"applicantNo\":null,\"applicantName\":null,\"applicantTime\":null,\"project\":null,\"process\":null,\"functionDept\":\"MLB MFG\",\"section\":null,\"line\":null,\"floor\":null,\"delFlag\":null,\"whCode\":null,\"whCodes\":null,\"provideNo\":null,\"receiveNo\":null,\"estimatedTime\":null,\"deptId\":220,\"spareApplyDetail\":[{\"searchValue\":null,\"createBy\":null,\"createTime\":null,\"updateBy\":null,\"updateTime\":null,\"remark\":null,\"params\":{},\"id\":null,\"orderNo\":\"SA2024080200223\",\"deptId\":220,\"partNo\":\"1950130060061A\",\"partName\":\"DEK300mm阶梯刮刀片刀刃0.15刀身0.3|DEK\",\"groupCode\":null,\"applyQty\":5,\"giveOutQty\":null,\"expectQty\":5,\"delFlag\":null,\"spareApplyDetail\":null}]}]}\n"
;
LuxsanSpApiResult
lizhenApiResult
=
JSONObject
.
parseObject
(
msg
,
LuxsanSpApiResult
.
class
);
List
<
GetUnclaimedResult
>
testO
=
JSONObject
.
parseArray
(
lizhenApiResult
.
getData
(),
GetUnclaimedResult
.
class
);
if
(
testO
!=
null
&&
!
testO
.
isEmpty
())
{
return
testO
;
}
else
{
return
new
ArrayList
<>();
}
}
String
url
=
null
;
try
{
url
=
GetUnclaimedUrl
+
getQueryStr
(
request
);
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/util/SpareNoCache.java
查看文件 @
c431560
...
...
@@ -222,7 +222,7 @@ public class SpareNoCache {
String
pn
=
detail
.
getPartno
();
Barcode
newPn
=
new
Barcode
();
newPn
.
setPn
(
pn
);
newPn
.
setPn
(
detail
.
getPartname
()
);
newPn
.
setPartNumber
(
pn
);
newPn
.
setAmount
(
0
);
newPn
.
setInitialAmount
(
0
);
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论