Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 9d89ae24
由
张少辉
编写于
2026-01-27 15:41:24 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.增加缺料报表信息
1 个父辈
a651f240
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
120 行增加
和
46 行删除
src/main/java/com/neotel/smfcore/core/order/service/manager/ILiteOrderItemManager.java
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderItemManagerImpl.java
src/main/java/com/neotel/smfcore/custom/lizhen/report/outer/OuterReportController.java
src/main/java/com/neotel/smfcore/core/order/service/manager/ILiteOrderItemManager.java
查看文件 @
9d89ae2
...
...
@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.order.service.manager;
import
com.neotel.smfcore.common.base.IBaseManager
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Query
;
import
java.util.Collection
;
...
...
@@ -17,4 +18,6 @@ public interface ILiteOrderItemManager extends IBaseManager<LiteOrderItem> {
LiteOrderItem
findOne
(
Query
query
);
Collection
<
LiteOrderItem
>
batchSave
(
List
<
LiteOrderItem
>
orderItemList
);
List
<
LiteOrderItem
>
findByQuery
(
Query
query
,
Pageable
pageable
);
}
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderItemManagerImpl.java
查看文件 @
9d89ae2
...
...
@@ -2,11 +2,8 @@ package com.neotel.smfcore.core.order.service.manager.impl;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.core.order.service.dao.ILiteOrderDao
;
import
com.neotel.smfcore.core.order.service.dao.ILiteOrderItemDao
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderManager
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
...
...
@@ -47,6 +44,11 @@ public class LiteOrderItemManagerImpl implements ILiteOrderItemManager {
return
liteOrderItemDao
.
insertAll
(
orderItemList
);
}
@Override
public
List
<
LiteOrderItem
>
findByQuery
(
Query
query
,
Pageable
pageable
)
{
return
liteOrderItemDao
.
findByQuery
(
query
,
pageable
);
}
@Override
public
LiteOrderItem
get
(
String
id
)
{
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/report/outer/OuterReportController.java
查看文件 @
9d89ae2
...
...
@@ -186,59 +186,128 @@ public class OuterReportController {
@RequestMapping
(
"/lackPicking"
)
@AnonymousAccess
public
PageData
lackPicking
(
ReportQueryCondition
queryCondition
,
Pageable
pageable
)
{
PageData
resultData
=
new
PageData
();
List
<
String
>
orderList
=
new
ArrayList
<>
();
Collection
<
LiteOrder
>
liteOrders
=
liteOrderCache
.
getAllLiteOrder
();
if
(
liteOrders
!=
null
&&
!
liteOrders
.
isEmpty
())
{
List
<
LiteOrderItem
>
lackItems
=
getLackItems
(
liteOrders
,
queryCondition
);
if
(
lackItems
!=
null
&&
!
lackItems
.
isEmpty
())
{
for
(
LiteOrderItem
lackItem
:
lackItems
)
{
lackItem
.
setPlantCode
(
plant
);
lackItem
.
setFactory
(
factory
);
}
for
(
LiteOrder
order
:
liteOrders
)
{
if
(
order
.
isTaskFinished
()
||
order
.
isOutTails
())
{
orderList
.
add
(
order
.
getOrderNo
());
}
resultData
.
setContent
(
orderItemMapper
.
toDto
(
lackItems
));
resultData
.
setTotalElements
(
lackItems
.
size
());
}
return
resultData
;
if
(
orderList
==
null
||
orderList
.
isEmpty
())
{
return
new
PageData
<>();
}
Query
query
=
new
Query
();
String
pn
=
queryCondition
.
getPn
();
String
orderNo
=
queryCondition
.
getOrderNo
();
String
warehouseCode
=
queryCondition
.
getWarehouseCode
();
Criteria
lackOrCriteria
=
new
Criteria
().
orOperator
(
Criteria
.
where
(
"lackNum"
).
gt
(
0
),
Criteria
.
where
(
"lackReel"
).
gt
(
0
)
);
Criteria
criteria
=
Criteria
.
where
(
"orderNo"
).
in
(
orderList
)
.
orOperator
(
lackOrCriteria
);
if
(
StringUtils
.
isNotEmpty
(
pn
))
{
criteria
.
andOperator
(
Criteria
.
where
(
"pn"
).
is
(
pn
));
}
if
(
StringUtils
.
isNotEmpty
(
orderNo
))
{
criteria
.
andOperator
(
Criteria
.
where
(
"orderNo"
).
is
(
orderNo
));
}
if
(
StringUtils
.
isNotEmpty
(
warehouseCode
))
{
criteria
.
andOperator
(
Criteria
.
where
(
"warehouse"
).
is
(
warehouseCode
));
}
query
.
addCriteria
(
criteria
);
return
liteOrderItemManager
.
findByPage
(
query
,
pageable
);
}
@ApiOperation
(
"缺料导出"
)
@RequestMapping
(
"/lackPicking/download"
)
@AnonymousAccess
public
void
lackPickingDownload
(
ReportQueryCondition
queryCondition
,
Pageable
pageable
,
HttpServletResponse
response
)
{
PageData
data
=
lackPicking
(
queryCondition
,
null
);
List
<
OrderItemDto
>
dtos
=
data
.
getContent
();
if
(
dtos
!=
null
&&
!
dtos
.
isEmpty
())
{
List
<
Map
<
String
,
Object
>>
results
=
new
ArrayList
<>();
for
(
OrderItemDto
dto
:
dtos
)
{
Map
<
String
,
Object
>
resultMap
=
new
LinkedHashMap
<>();
resultMap
.
put
(
"厂别"
,
getData
(
dto
.
getPlantCode
()));
resultMap
.
put
(
"厂区"
,
factory
);
resultMap
.
put
(
"库别"
,
getData
(
dto
.
getWarehouseCode
()));
resultMap
.
put
(
"楼层"
,
getData
(
dto
.
getLine
()));
resultMap
.
put
(
"Picking ID"
,
getData
(
dto
.
getOrderNo
()));
resultMap
.
put
(
"工单号"
,
getData
(
dto
.
getMo
()));
resultMap
.
put
(
"55料号"
,
getData
(
null
));
resultMap
.
put
(
"工单套数"
,
getData
(
null
));
resultMap
.
put
(
"料号"
,
getData
(
dto
.
getPn
()));
resultMap
.
put
(
"描述"
,
getData
(
null
));
resultMap
.
put
(
"需求站别"
,
getData
(
dto
.
getSide
()));
resultMap
.
put
(
"需求数量"
,
getData
(
dto
.
getNeedNum
()));
resultMap
.
put
(
"需求卷数"
,
getData
(
dto
.
getNeedReelCount
()));
resultMap
.
put
(
"发料数量"
,
getData
(
dto
.
getTotalOutNum
()));
resultMap
.
put
(
"发料卷数"
,
getData
(
dto
.
getTotalOutReelCount
()));
resultMap
.
put
(
"缺料数量"
,
getData
(
dto
.
getLackNum
()));
resultMap
.
put
(
"缺料卷数"
,
getData
(
dto
.
getLackReel
()));
resultMap
.
put
(
"是否超发"
,
dto
.
isExcess
()
?
"是"
:
"否"
);
results
.
add
(
resultMap
);
}
try
{
FileUtil
.
downloadExcel
(
results
,
response
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
log
.
info
(
"缺料清单导出失败--"
+
e
.
getMessage
());
public
void
lackPickingDownload
(
ReportQueryCondition
queryCondition
,
Pageable
pageable
,
HttpServletResponse
response
)
throws
IOException
{
List
<
String
>
orderList
=
new
ArrayList
<>();
Collection
<
LiteOrder
>
liteOrders
=
liteOrderCache
.
getAllLiteOrder
();
for
(
LiteOrder
order
:
liteOrders
)
{
if
(
order
.
isTaskFinished
()
||
order
.
isOutTails
())
{
orderList
.
add
(
order
.
getOrderNo
());
}
}
if
(
orderList
==
null
||
orderList
.
isEmpty
())
{
return
;
}
Query
query
=
new
Query
();
String
pn
=
queryCondition
.
getPn
();
String
orderNo
=
queryCondition
.
getOrderNo
();
String
warehouseCode
=
queryCondition
.
getWarehouseCode
();
Criteria
lackOrCriteria
=
new
Criteria
().
orOperator
(
Criteria
.
where
(
"lackNum"
).
gt
(
0
),
Criteria
.
where
(
"lackReel"
).
gt
(
0
)
);
Criteria
criteria
=
Criteria
.
where
(
"orderNo"
).
in
(
orderList
)
.
orOperator
(
lackOrCriteria
);
if
(
StringUtils
.
isNotEmpty
(
pn
))
{
criteria
.
andOperator
(
Criteria
.
where
(
"pn"
).
is
(
pn
));
}
if
(
StringUtils
.
isNotEmpty
(
orderNo
))
{
criteria
.
andOperator
(
Criteria
.
where
(
"orderNo"
).
is
(
orderNo
));
}
if
(
StringUtils
.
isNotEmpty
(
warehouseCode
))
{
criteria
.
andOperator
(
Criteria
.
where
(
"warehouse"
).
is
(
warehouseCode
));
}
query
.
addCriteria
(
criteria
);
FileUtil
.
downloadExcel
(
query
,
pageable
,
response
,
new
IExcelDownLoad
()
{
@Override
public
List
<
List
<
String
>>
getHeader
()
{
List
<
List
<
String
>>
headerList
=
new
ArrayList
<>();
headerList
.
add
(
Arrays
.
asList
(
"厂区"
));
headerList
.
add
(
Arrays
.
asList
(
"行号"
));
headerList
.
add
(
Arrays
.
asList
(
"替代料分组"
));
headerList
.
add
(
Arrays
.
asList
(
"优先级"
));
headerList
.
add
(
Arrays
.
asList
(
"挑料单号"
));
headerList
.
add
(
Arrays
.
asList
(
"料号"
));
headerList
.
add
(
Arrays
.
asList
(
"库别"
));
headerList
.
add
(
Arrays
.
asList
(
"机种"
));
headerList
.
add
(
Arrays
.
asList
(
"需求数量"
));
headerList
.
add
(
Arrays
.
asList
(
"需求卷数"
));
headerList
.
add
(
Arrays
.
asList
(
"面别"
));
headerList
.
add
(
Arrays
.
asList
(
"批次"
));
headerList
.
add
(
Arrays
.
asList
(
"制造商"
));
headerList
.
add
(
Arrays
.
asList
(
"缺料数量"
));
headerList
.
add
(
Arrays
.
asList
(
"缺料卷数"
));
headerList
.
add
(
Arrays
.
asList
(
"创建日期"
));
headerList
.
add
(
Arrays
.
asList
(
"更新日期"
));
return
headerList
;
}
@Override
public
List
<
List
<
Object
>>
getPageData
(
Query
query
,
Pageable
pageable
)
{
List
<
List
<
Object
>>
resultList
=
new
ArrayList
<>();
List
<
LiteOrderItem
>
dtos
=
liteOrderItemManager
.
findByQuery
(
query
,
pageable
);
if
(
dtos
!=
null
&&
!
dtos
.
isEmpty
())
{
for
(
LiteOrderItem
orderItem
:
dtos
)
{
List
<
Object
>
rowList
=
new
ArrayList
<>();
rowList
.
add
(
getData
(
orderItem
.
getPlantCode
()));
rowList
.
add
(
getData
(
orderItem
.
getItemId
()));
rowList
.
add
(
getData
(
orderItem
.
getMg
()));
rowList
.
add
(
getData
(
orderItem
.
getPriority
()));
rowList
.
add
(
getData
(
orderItem
.
getPickingId
()));
rowList
.
add
(
getData
(
orderItem
.
getPn
()));
rowList
.
add
(
getData
(
orderItem
.
getWarehouse
()));
rowList
.
add
(
getData
(
orderItem
.
getModel
()));
rowList
.
add
(
getData
(
orderItem
.
getReqQty
()));
rowList
.
add
(
getData
(
orderItem
.
getReqReel
()));
rowList
.
add
(
getData
(
orderItem
.
getFace
()));
rowList
.
add
(
getData
(
orderItem
.
getBatchCode
()));
rowList
.
add
(
getData
(
orderItem
.
getBrand
()));
rowList
.
add
(
getData
(
orderItem
.
getLackNum
()));
rowList
.
add
(
getData
(
orderItem
.
getLackReel
()));
rowList
.
add
(
getData
(
orderItem
.
getCreateAt
()));
rowList
.
add
(
getData
(
orderItem
.
getUpdateAt
()));
resultList
.
add
(
rowList
);
}
}
return
resultList
;
}
});
}
@ApiOperation
(
"备料清单"
)
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论