Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-api-boot-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lanbaoming
jiedao-api-boot-master
Commits
72976dc8
Commit
72976dc8
authored
Jun 06, 2024
by
lanbaoming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2024-06-06提交
parent
5680fecb
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
368 additions
and
148 deletions
+368
-148
BpmOrderRevokeSplitOrderResultListener.java
...rder/listener/BpmOrderRevokeSplitOrderResultListener.java
+3
-1
OrderMutualServiceImpl.java
...dule/order/service/order/impl/OrderMutualServiceImpl.java
+3
-1
OrderServiceImpl.java
...dao/module/order/service/order/impl/OrderServiceImpl.java
+1
-0
OrderSplitServiceImpl.java
...odule/order/service/orderSplit/OrderSplitServiceImpl.java
+1
-1
LoadDto.java
...in/java/cn/iocoder/yudao/module/shipment/dto/LoadDto.java
+72
-3
ShipmentLoadExcelExportListener.java
...le/shipment/listener/ShipmentLoadExcelExportListener.java
+288
-142
load.xlsx
yudao-server/src/main/resources/templates/load.xlsx
+0
-0
No files found.
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/service/order/listener/BpmOrderRevokeSplitOrderResultListener.java
View file @
72976dc8
...
...
@@ -24,7 +24,9 @@ public class BpmOrderRevokeSplitOrderResultListener extends BpmProcessInstanceRe
@Override
protected
void
onEvent
(
BpmProcessInstanceResultEvent
event
)
{
log
.
info
(
"-------------------撤销拆单审核回调-------------------------{},{}"
,
event
.
getBusinessKey
(),
event
.
getResult
());
log
.
info
(
"-------------------撤销拆单审核回调-------------------------{},{}"
,
event
.
getBusinessKey
(),
event
.
getResult
());
orderSplitService
.
revokeSplitApplyCallback
(
event
.
getBusinessKey
(),
event
.
getResult
());
}
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/order/impl/OrderMutualServiceImpl.java
View file @
72976dc8
...
...
@@ -40,7 +40,9 @@ import static cn.iocoder.yudao.module.order.enums.ErrorCodeConstants.*;
*/
@Service
@Validated
public
class
OrderMutualServiceImpl
extends
AbstractService
<
OrderMutualMapper
,
OrderMutualDO
>
implements
OrderMutualService
{
public
class
OrderMutualServiceImpl
extends
AbstractService
<
OrderMutualMapper
,
OrderMutualDO
>
implements
OrderMutualService
{
@Resource
private
OrderMutualMapper
mutualMapper
;
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/order/impl/OrderServiceImpl.java
View file @
72976dc8
...
...
@@ -6104,6 +6104,7 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
// 删除子拆单的放货记录
orderCargoControlPickMapper
.
delete
(
new
LambdaQueryWrapper
<
OrderCargoControlPickDO
>().
eq
(
OrderCargoControlPickDO:
:
getOrderId
,
splitOrderId
));
}
// 处理关联关系
orderGuanlianService
.
dealGuanlianByOrderId
(
parentOrderId
,
orderIds
,
2
);
// 处理互斥关系
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/orderSplit/OrderSplitServiceImpl.java
View file @
72976dc8
...
...
@@ -1562,7 +1562,7 @@ public class OrderSplitServiceImpl extends AbstractService<OrderSplitMapper, Ord
// 根据母订单id删除相关拆单信息
splitItemMapper
.
deleteByOrderId
(
parentOrder
.
getOrderId
());
splitMapper
.
deleteByOrderId
(
parentOrder
.
getOrderId
());
// 删除已撤销的拆单
// 删除已撤销的拆单
lanbm 2024-06-05 处理审批流BUG
orderService
.
deleteOrderByParentOrderId
(
parentOrder
.
getOrderId
(),
childrenOrderList
);
...
...
yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/dto/LoadDto.java
View file @
72976dc8
package
cn
.
iocoder
.
yudao
.
module
.
shipment
.
dto
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
...
...
@@ -9,55 +10,123 @@ import java.util.Date;
@Data
public
class
LoadDto
{
/*
序号 0
*/
@ExcelProperty
(
"id"
)
private
String
id
;
/*
订单号 1
*/
@ExcelProperty
(
"orderNo"
)
private
String
orderNo
;
/*
唛头 2
*/
@ExcelProperty
(
"marks"
)
private
String
marks
;
/*
获取描述 3
*/
@ExcelProperty
(
"prodTitleZh"
)
private
String
prodTitleZh
;
/*
数量 4
*/
@ExcelProperty
(
"quantity"
)
private
Integer
quantity
;
/*
品牌 5
*/
@ExcelProperty
(
"brand"
)
private
String
brand
;
/*
备案 6
*/
@ExcelProperty
(
"productRecord"
)
private
String
productRecord
;
/*
特性 7
*/
@ExcelProperty
(
"prodAttrIds"
)
private
String
prodAttrIds
;
/*
总件数 8
*/
@ExcelProperty
(
"sumNum"
)
private
Integer
sumNum
;
/*
单位 9
*/
@ExcelProperty
(
"unit"
)
private
String
unit
;
/*
总体积 10
*/
@ExcelProperty
(
"sumVolume"
)
private
BigDecimal
sumVolume
;
/*
总重量 11
*/
@ExcelProperty
(
"sumWeight"
)
private
BigDecimal
sumWeight
;
/*
包装类型 12
*/
@ExcelProperty
(
"packageType"
)
private
String
packageType
;
/*
材质 13
*/
@ExcelProperty
(
"material"
)
private
String
material
;
/*
用途 14
*/
@ExcelProperty
(
"usageIds"
)
private
String
usageIds
;
/*
合单 15
*/
@ExcelProperty
(
"merge"
)
private
String
merge
;
/*
关联订单 16
*/
@ExcelProperty
(
"relateOrder"
)
private
String
relateOrder
;
/*
报关方式 17
*/
@ExcelProperty
(
"customsType"
)
private
String
customsType
;
/*
货值 18
*/
@ExcelProperty
(
"worth"
)
private
BigDecimal
worth
;
@ExcelProperty
(
"quantity"
)
private
Integer
quantity
;
}
yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/listener/ShipmentLoadExcelExportListener.java
View file @
72976dc8
...
...
@@ -22,7 +22,9 @@ import cn.iocoder.yudao.module.order.service.order.*;
import
cn.iocoder.yudao.module.order.service.orderWarehouseIn.OrderWarehouseInService
;
import
cn.iocoder.yudao.module.order.vo.orderWarehouseIn.OrderWarehouseInBackItemDo
;
import
cn.iocoder.yudao.module.order.vo.orderWarehouseIn.OrderWarehouseInBackVO
;
import
cn.iocoder.yudao.module.product.dal.dataobject.product.ProductAttrDO
;
import
cn.iocoder.yudao.module.product.dal.dataobject.productbrank.ProductBrankDO
;
import
cn.iocoder.yudao.module.product.service.product.ProductAttrService
;
import
cn.iocoder.yudao.module.product.service.productbrank.ProductBrankService
;
import
cn.iocoder.yudao.module.shipment.dal.dataobject.BoxApprovalDO
;
import
cn.iocoder.yudao.module.shipment.dal.dataobject.BoxDO
;
...
...
@@ -64,6 +66,7 @@ import static cn.iocoder.yudao.module.shipment.enums.ErrorCodeConstants.HAVE_NOT
/**
* 自编号订单excel导出监听
* lanbm 2024-06-05 修改模板样式和添加列字段
*
* @author zhengYi
*/
...
...
@@ -103,8 +106,8 @@ public class ShipmentLoadExcelExportListener {
@Resource
private
OrderService
orderService
;
// @Value("${ue.templates-url}")
// private String path
;
@Resource
private
ProductAttrService
productAttrService
;
/**
* 订单导出监听
...
...
@@ -112,63 +115,129 @@ public class ShipmentLoadExcelExportListener {
* @param event 编号记录
*/
@EventListener
(
ShipmentLoadExcelExportPushEvent
.
class
)
public
void
shipmentLoadExcelExportPushEvent
(
ShipmentLoadExcelExportPushEvent
event
)
{
public
void
shipmentLoadExcelExportPushEvent
(
ShipmentLoadExcelExportPushEvent
event
)
{
if
(
StringUtils
.
isNotBlank
(
event
.
getRequestParams
()))
{
try
{
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
DATA_FORMAT
);
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
DATA_FORMAT
);
String
nowTime
=
formatter
.
format
(
LocalDateTime
.
now
());
String
dir
=
ueProperties
.
getTempDir
().
concat
(
"/load/excel/"
);
String
fileName
=
event
.
getUserId
().
toString
().
concat
(
StrUtil
.
DASHED
).
concat
(
event
.
getUserType
().
toString
()).
concat
(
StrUtil
.
DASHED
).
concat
(
nowTime
).
concat
(
"shipment_load.xlsx"
);
String
fileName
=
event
.
getUserId
().
toString
().
concat
(
StrUtil
.
DASHED
).
concat
(
event
.
getUserType
().
toString
()).
concat
(
StrUtil
.
DASHED
).
concat
(
nowTime
).
concat
(
"shipment_load.xlsx"
);
InputStream
inputStream
=
null
;
inputStream
=
getClass
().
getClassLoader
().
getResourceAsStream
(
ueProperties
.
getTemplatesUrl
()
+
"/load.xlsx"
);
//获取模板 2024-06-05 添加注释
inputStream
=
getClass
().
getClassLoader
().
getResourceAsStream
(
ueProperties
.
getTemplatesUrl
()
+
"/load.xlsx"
);
Map
headMap
=
new
HashMap
();
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
event
.
getRequestParams
());
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
event
.
getRequestParams
());
Long
shipmentId
=
jsonObject
.
getLong
(
"shipmentId"
);
List
<
BoxPreloadGoodsBackVO
>
goodsItemList
=
boxPreloadGoodsService
.
getShipGoodItemList
(
shipmentId
);
List
<
BoxPreloadGoodsBackVO
>
goodsItemList
=
boxPreloadGoodsService
.
getShipGoodItemList
(
shipmentId
);
if
(
CollectionUtil
.
isEmpty
(
goodsItemList
))
{
event
.
setResult
(
HAVE_NOT_PRELOAD_GOODS
.
getMsg
());
}
BoxDO
box
=
boxService
.
getBox
(
shipmentId
);
CabinetDO
cabinet
=
cabinetService
.
getCabinet
(
box
.
getCabinetId
());
BoxApprovalDO
boxApprovalDO
=
boxApprovalService
.
getOne
(
new
LambdaQueryWrapperX
<
BoxApprovalDO
>().
eq
(
BoxApprovalDO:
:
getShipmentId
,
shipmentId
).
eq
(
BoxApprovalDO:
:
getApprovalType
,
2
).
last
(
"limit 1"
));
BoxApprovalDO
boxApprovalDO
=
boxApprovalService
.
getOne
(
new
LambdaQueryWrapperX
<
BoxApprovalDO
>().
eq
(
BoxApprovalDO:
:
getShipmentId
,
shipmentId
).
eq
(
BoxApprovalDO:
:
getApprovalType
,
2
).
last
(
"limit 1"
));
headMap
.
put
(
"selfNo"
,
box
.
getSelfNo
());
headMap
.
put
(
"ctnNo"
,
box
.
getCubNo
());
if
(
cabinet
!=
null
)
{
headMap
.
put
(
"ctnNo"
,
box
.
getCubNo
());
if
(
cabinet
!=
null
)
{
headMap
.
put
(
"cabinetName"
,
cabinet
.
getName
());
}
headMap
.
put
(
"exportDate"
,
DateUtils
.
formatDate
(
new
Date
()));
if
(
boxApprovalDO
!=
null
)
{
headMap
.
put
(
"date"
,
DateUtils
.
formatDate
(
boxApprovalDO
.
getCreateTime
()));
headMap
.
put
(
"date"
,
DateUtils
.
formatDate
(
boxApprovalDO
.
getCreateTime
()));
}
File
fileDir
=
new
File
(
dir
);
if
(!
fileDir
.
exists
()){
if
(!
fileDir
.
exists
())
{
// 不存在则创建一个目录
fileDir
.
mkdirs
();
}
ExcelWriter
excelWriter
=
EasyExcel
.
write
(
dir
+
fileName
).
withTemplate
(
inputStream
).
build
();
//write 写入的文件路径
//withTemplate 使用的模板
ExcelWriter
excelWriter
=
EasyExcel
.
write
(
dir
+
fileName
).
withTemplate
(
inputStream
).
build
();
WriteSheet
sheet
=
EasyExcel
.
writerSheet
(
0
).
build
();
excelWriter
.
fill
(
headMap
,
sheet
);
if
(
box
.
getLdStatus
()
!=
null
&&
box
.
getLdStatus
()>=
43
)
{
//43、已装柜、待封柜
//商品属性获取 lanbm 2024-06-05 add
List
<
ProductAttrDO
>
ProductAttrList
=
productAttrService
.
getProductAttrList
();
Map
<
Long
,
String
>
ProductAttrMap
=
null
;
if
(
CollectionUtil
.
isEmpty
(
ProductAttrList
)
==
false
)
{
ProductAttrMap
=
ProductAttrList
.
stream
().
collect
(
Collectors
.
toMap
(
ProductAttrDO:
:
getId
,
ProductAttrDO:
:
getAttrName
));
}
//end 商品属性获取 lanbm 2024-06-05 add
if
(
box
.
getLdStatus
()
!=
null
&&
box
.
getLdStatus
()
>=
43
)
{
//43、已装柜、待封柜
//以secId排序
goodsItemList
.
sort
(
Comparator
.
comparing
(
BoxPreloadGoodsBackVO:
:
getSecId
).
thenComparing
(
BoxPreloadGoodsBackVO:
:
getTidanNum
).
thenComparing
(
BoxPreloadGoodsBackVO:
:
getId
));
goodsItemList
.
sort
(
Comparator
.
comparing
(
BoxPreloadGoodsBackVO:
:
getSecId
).
thenComparing
(
BoxPreloadGoodsBackVO:
:
getTidanNum
).
thenComparing
(
BoxPreloadGoodsBackVO:
:
getId
));
int
allTotalNum
=
0
;
BigDecimal
allTotalVolume
=
new
BigDecimal
(
0
);
BigDecimal
allTotalWeight
=
new
BigDecimal
(
0
);
List
<
Long
>
secCount
=
goodsItemList
.
stream
().
map
(
BoxPreloadGoodsBackVO:
:
getSecId
).
distinct
().
sorted
().
collect
(
Collectors
.
toList
());
List
<
Long
>
secCount
=
goodsItemList
.
stream
().
map
(
BoxPreloadGoodsBackVO:
:
getSecId
).
distinct
().
sorted
().
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
secCount
))
{
for
(
int
i
=
0
;
i
<
secCount
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
secCount
.
size
();
i
++)
{
List
<
String
>
list1
=
new
ArrayList
();
List
<
List
<
String
>>
headList
=
new
ArrayList
<>();
String
head
=
""
;
if
(
i
==
0
)
{
head
=
"第"
+
NumberUtils
.
int2chineseNum
(
i
+
1
)
+
"部分(Be loaded inside of the container)"
;
head
=
"第"
+
NumberUtils
.
int2chineseNum
(
i
+
1
)
+
"部分(Be loaded inside of the container)"
;
}
else
{
head
=
"第"
+
NumberUtils
.
int2chineseNum
(
i
+
1
)+
"部分(after "
+
NumberUtils
.
format
(
i
+
1
)+
" parts)"
;
head
=
"第"
+
NumberUtils
.
int2chineseNum
(
i
+
1
)
+
"部分(after "
+
NumberUtils
.
format
(
i
+
1
)
+
" parts)"
;
}
list1
.
add
(
head
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
headList
.
add
(
list1
);
List
<
LoadDto
>
list
=
new
ArrayList
<>();
...
...
@@ -176,71 +245,112 @@ public class ShipmentLoadExcelExportListener {
BigDecimal
totalVolume
=
new
BigDecimal
(
0
);
BigDecimal
totalWeight
=
new
BigDecimal
(
0
);
Map
<
String
,
Integer
>
numMap
=
new
HashMap
();
Map
<
String
,
Integer
>
numMap
=
new
HashMap
();
Long
part
=
secCount
.
get
(
i
);
//以订单ID分组
Map
<
Long
,
List
<
BoxPreloadGoodsBackVO
>>
orderMap
=
goodsItemList
.
stream
().
filter
(
item
->
item
.
getSecId
().
longValue
()==
part
.
longValue
()
&&
StringUtils
.
isNotBlank
(
item
.
getWarehouseInInfo
()))
.
collect
(
Collectors
.
groupingBy
(
BoxPreloadGoodsBackVO:
:
getOrderId
,
LinkedHashMap:
:
new
,
Collectors
.
toList
()));
Map
<
Long
,
List
<
BoxPreloadGoodsBackVO
>>
orderMap
=
goodsItemList
.
stream
().
filter
(
item
->
item
.
getSecId
().
longValue
()
==
part
.
longValue
()
&&
StringUtils
.
isNotBlank
(
item
.
getWarehouseInInfo
()))
.
collect
(
Collectors
.
groupingBy
(
BoxPreloadGoodsBackVO:
:
getOrderId
,
LinkedHashMap:
:
new
,
Collectors
.
toList
()));
//registerWriteHandler(new XXXStrategy(需要的参数))
//自定义单元格合并策略
WriteTable
writeTable
=
EasyExcel
.
writerTable
(
i
)
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
0
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
1
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
2
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
7
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
10
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
12
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
13
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
14
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
0
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
1
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
2
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
7
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
10
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
12
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
13
,
true
))
.
registerWriteHandler
(
new
CustomMergeStrategy
(
orderMap
,
null
,
null
,
14
,
true
))
.
automaticMergeHead
(
true
).
head
(
headList
).
needHead
(
true
).
build
();
for
(
Map
.
Entry
<
Long
,
List
<
BoxPreloadGoodsBackVO
>>
entry
:
orderMap
.
entrySet
())
{
Long
orderId
=
entry
.
getKey
();
OrderBackInfoDto
orderInfo
=
orderQueryService
.
info
(
orderId
);
List
<
BoxPreloadGoodsBackVO
>
boxPreload
=
entry
.
getValue
();
List
<
OrderItemDO
>
orderItems
=
boxPreload
.
stream
().
map
(
item
->
orderItemService
.
getOrderItem
(
item
.
getOrderItemId
())).
collect
(
Collectors
.
toList
());
for
(
OrderItemDO
item
:
orderItems
)
{
List
<
OrderWarehouseInDO
>
orderWarehouseInDOS
=
orderWarehouseInService
.
selectList
(
OrderWarehouseInDO:
:
getOrderItemId
,
item
.
getOrderItemId
());
List
<
OrderItemDO
>
orderItems
=
boxPreload
.
stream
().
map
(
item
->
orderItemService
.
getOrderItem
(
item
.
getOrderItemId
())).
collect
(
Collectors
.
toList
());
for
(
OrderItemDO
item
:
orderItems
)
{
List
<
OrderWarehouseInDO
>
orderWarehouseInDOS
=
orderWarehouseInService
.
selectList
(
OrderWarehouseInDO:
:
getOrderItemId
,
item
.
getOrderItemId
());
LoadDto
preloadDto
=
new
LoadDto
();
preloadDto
.
setOrderNo
(
orderInfo
.
getOrderNo
());
if
(
numMap
.
get
(
orderInfo
.
getOrderNo
())
!=
null
)
{
preloadDto
.
setId
(
String
.
valueOf
(
numMap
.
get
(
orderInfo
.
getOrderNo
())));
}
else
{
preloadDto
.
setId
(
String
.
valueOf
(
numMap
.
size
()+
1
));
numMap
.
put
(
orderInfo
.
getOrderNo
(),
numMap
.
size
()+
1
);
preloadDto
.
setId
(
String
.
valueOf
(
numMap
.
size
()
+
1
));
numMap
.
put
(
orderInfo
.
getOrderNo
(),
numMap
.
size
()
+
1
);
}
preloadDto
.
setMarks
(
orderInfo
.
getMarks
());
List
<
OrderGuanlianDO
>
guanlianList
=
orderGuanlianService
.
getGuanlianListByOrderId
(
orderInfo
.
getOrderId
());
List
<
OrderGuanlianDO
>
guanlianList
=
orderGuanlianService
.
getGuanlianListByOrderId
(
orderInfo
.
getOrderId
());
//rIdList为此订单的所有关联订单
List
<
Long
>
rIdList
=
new
ArrayList
<>();
for
(
OrderGuanlianDO
orderGuanlianDO
:
guanlianList
)
{
Long
oId
=
orderGuanlianDO
.
getOrderId
();
Long
rId
=
orderGuanlianDO
.
getRelateOrderId
();
if
(
oId
.
equals
(
orderId
))
{
if
(
oId
.
equals
(
orderId
))
{
rIdList
.
add
((
rId
));
}
else
if
(
rId
.
equals
(
orderId
))
{
}
else
if
(
rId
.
equals
(
orderId
))
{
rIdList
.
add
(
oId
);
}
}
if
(
CollectionUtil
.
isNotEmpty
(
rIdList
))
{
List
<
OrderDO
>
orderDOS
=
orderService
.
selectList
(
OrderDO:
:
getOrderId
,
rIdList
);
List
<
OrderDO
>
orderDOS
=
orderService
.
selectList
(
OrderDO:
:
getOrderId
,
rIdList
);
if
(
CollectionUtil
.
isNotEmpty
(
orderDOS
))
{
preloadDto
.
setRelateOrder
(
orderDOS
.
stream
().
map
(
OrderDO:
:
getOrderNo
).
collect
(
Collectors
.
joining
(
","
)));
preloadDto
.
setRelateOrder
(
orderDOS
.
stream
().
map
(
OrderDO:
:
getOrderNo
).
collect
(
Collectors
.
joining
(
","
)));
}
}
preloadDto
.
setProdTitleZh
(
item
.
getProdTitleZh
()+
" "
+
item
.
getProdTitleEn
());
preloadDto
.
setProdTitleZh
(
item
.
getProdTitleZh
()
+
" "
+
item
.
getProdTitleEn
());
preloadDto
.
setMerge
(
orderInfo
.
getOldNumbers
());
ProductBrankDO
productBrank
=
productBrankService
.
getProductBrank
(
item
.
getBrand
());
if
(
productBrank
!=
null
&&
StringUtils
.
isNotBlank
(
productBrank
.
getTitleZh
())){
ProductBrankDO
productBrank
=
productBrankService
.
getProductBrank
(
item
.
getBrand
());
if
(
productBrank
!=
null
&&
StringUtils
.
isNotBlank
(
productBrank
.
getTitleZh
()))
{
preloadDto
.
setBrand
(
productBrank
.
getTitleZh
());
}
if
(
StringUtils
.
isNotBlank
(
item
.
getMaterial
())){
preloadDto
.
setMaterial
(
DictFrameworkUtils
.
getDictDataFromCache
(
"product_material"
,
item
.
getMaterial
()+
""
).
getLabel
());
//材质
if
(
StringUtils
.
isNotBlank
(
item
.
getMaterial
()))
{
preloadDto
.
setMaterial
(
DictFrameworkUtils
.
getDictDataFromCache
(
"product_material"
,
item
.
getMaterial
()
+
""
).
getLabel
());
}
if
(
productBrank
!=
null
&&
productBrank
.
getFiling
()!=
null
){
preloadDto
.
setProductRecord
(
productBrank
.
getFiling
().
equals
(
"0"
)?
"N"
:
"Y"
);
//品牌
if
(
productBrank
!=
null
&&
productBrank
.
getFiling
()
!=
null
)
{
preloadDto
.
setProductRecord
(
productBrank
.
getFiling
().
equals
(
"0"
)
?
"N"
:
"Y"
);
}
//用途
if
(
item
.
getUsageIds
()
==
null
||
item
.
getUsageIds
().
length
()
==
0
)
{
preloadDto
.
setUsageIds
(
""
);
}
else
{
//在缓存数据字典中获取用途信息
String
sUserdName
=
DictFrameworkUtils
.
getDictDataFromCache
(
"order_item_usage"
,
item
.
getUsageIds
()
+
""
).
getLabel
();
preloadDto
.
setUsageIds
(
sUserdName
);
}
//商品特性赋值 lanbm 2024-06-05 add
String
sR
=
getAttrName
(
item
,
ProductAttrMap
);
preloadDto
.
setProdAttrIds
(
sR
);
preloadDto
.
setSumNum
(
item
.
getWarehouseInInfoVO
().
getCartonsNum
());
if
(
CollectionUtil
.
isNotEmpty
(
orderWarehouseInDOS
)){
if
(
CollectionUtil
.
isNotEmpty
(
orderWarehouseInDOS
))
{
String
warehousingSpecificationType
=
orderWarehouseInDOS
.
stream
().
map
(
j
->
{
return
DictFrameworkUtils
.
getDictDataFromCache
(
"warehousing_specification_type"
,
j
.
getSpecificationType
()
+
""
).
getLabel
();
}).
distinct
().
collect
(
Collectors
.
joining
(
"/"
));
...
...
@@ -252,8 +362,10 @@ public class ShipmentLoadExcelExportListener {
}
preloadDto
.
setSumVolume
(
item
.
getWarehouseInInfoVO
().
getVolume
());
preloadDto
.
setSumWeight
(
item
.
getWarehouseInInfoVO
().
getWeight
());
if
(
orderInfo
.
getCustomsType
()!=
null
){
preloadDto
.
setCustomsType
(
DictFrameworkUtils
.
getDictDataFromCache
(
"customs_type"
,
orderInfo
.
getCustomsType
()+
""
).
getLabel
());
if
(
orderInfo
.
getCustomsType
()
!=
null
)
{
preloadDto
.
setCustomsType
(
DictFrameworkUtils
.
getDictDataFromCache
(
"customs_type"
,
orderInfo
.
getCustomsType
()
+
""
).
getLabel
());
}
preloadDto
.
setWorth
(
item
.
getWorth
());
preloadDto
.
setQuantity
(
item
.
getWarehouseInInfoVO
().
getQuantityAll
());
...
...
@@ -272,7 +384,7 @@ public class ShipmentLoadExcelExportListener {
allTotalNum
=
allTotalNum
+
totalNum
;
allTotalVolume
=
allTotalVolume
.
add
(
totalVolume
);
allTotalWeight
=
allTotalWeight
.
add
(
totalWeight
);
if
(
i
==
secCount
.
size
()-
1
)
{
if
(
i
==
secCount
.
size
()
-
1
)
{
LoadDto
preloadDto1
=
new
LoadDto
();
preloadDto1
.
setId
(
"IN TOTAL"
);
preloadDto1
.
setSumNum
(
allTotalNum
);
...
...
@@ -280,11 +392,12 @@ public class ShipmentLoadExcelExportListener {
preloadDto1
.
setSumWeight
(
allTotalWeight
);
list
.
add
(
preloadDto1
);
}
excelWriter
.
write
(
list
,
sheet
,
writeTable
);
excelWriter
.
write
(
list
,
sheet
,
writeTable
);
}
}
}
excelWriter
.
finish
();
inputStream
.
close
();
// 获取到临时文件
...
...
@@ -302,14 +415,47 @@ public class ShipmentLoadExcelExportListener {
event
.
setFileName
(
fileDO
.
getPath
());
event
.
setUrl
(
fileDO
.
getUrl
());
event
.
setFileId
(
fileDO
.
getId
());
}
catch
(
Exception
e
)
{
// TODO 测试阶段打印堆栈错误信息,便于分析原因
}
catch
(
Exception
e
){
e
.
printStackTrace
();
event
.
setResult
(
e
.
getMessage
());
}
}
else
{
}
else
{
event
.
setResult
(
"param fail"
);
}
}
/*
lanbm 2024-06-05 添加商品属性转换函数
*/
private
String
getAttrName
(
OrderItemDO
item
,
Map
<
Long
,
String
>
ProductAttrMap
)
{
String
sReult
=
""
;
//lanbm 2024-06-05添加商品特性
if
(
item
.
getProdAttrIds
()
==
null
||
item
.
getProdAttrIds
().
length
()
==
0
)
{
return
sReult
;
}
else
{
if
(
ProductAttrMap
==
null
)
{
return
sReult
;
}
else
{
String
sAttrName
=
""
;
List
<
String
>
resultList
=
Arrays
.
asList
(
item
.
getProdAttrIds
().
split
(
","
));
for
(
String
sId
:
resultList
)
{
Long
l
=
Long
.
parseLong
(
sId
);
if
(
sAttrName
.
length
()
!=
0
)
{
sAttrName
+=
","
+
ProductAttrMap
.
get
(
l
);
}
else
{
sAttrName
+=
ProductAttrMap
.
get
(
l
);
}
}
sReult
=
sAttrName
;
}
}
//end lanbm 2024-06-05添加商品特性
return
sReult
;
}
}
yudao-server/src/main/resources/templates/load.xlsx
View file @
72976dc8
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment