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
aa361efc
Commit
aa361efc
authored
May 13, 2024
by
liuzeheng
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into dev
parents
8dcfef09
4a10d8c0
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
188 additions
and
20 deletions
+188
-20
BoxOrderCheckInfoService.java
...t/service/boxOrderCheckInfo/BoxOrderCheckInfoService.java
+3
-0
BoxOrderCheckInfoServiceImpl.java
...rvice/boxOrderCheckInfo/BoxOrderCheckInfoServiceImpl.java
+2
-2
BoxPkgOrderServiceImpl.java
.../shipment/service/boxPkgOrder/BoxPkgOrderServiceImpl.java
+177
-18
BoxPkgOrderScanCodeVO.java
...module/shipment/vo/boxPkgOrder/BoxPkgOrderScanCodeVO.java
+6
-0
No files found.
yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/service/boxOrderCheckInfo/BoxOrderCheckInfoService.java
View file @
aa361efc
...
...
@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import
cn.iocoder.yudao.framework.common.pojo.PageResult
;
import
cn.iocoder.yudao.framework.mybatis.core.service.IService
;
import
cn.iocoder.yudao.framework.mybatis.core.vo.PageVO
;
import
cn.iocoder.yudao.module.order.dal.dataobject.order.OrderDO
;
import
cn.iocoder.yudao.module.shipment.dal.dataobject.boxOrderCheckInfo.BoxOrderCheckInfoDO
;
import
cn.iocoder.yudao.module.shipment.dto.OrderCheckInfoDto
;
import
cn.iocoder.yudao.module.shipment.vo.box.BoxOrderSearchVO
;
...
...
@@ -83,4 +84,6 @@ public interface BoxOrderCheckInfoService extends IService<BoxOrderCheckInfoDO>
void
batchRemove
(
BoxOrderCheckInfoRemoveReqVO
removeReqVO
);
void
orderTally
(
Collection
<
Long
>
orderIdList
,
Long
shipmentId
);
List
<
String
>
getOrderTagList
(
OrderDO
orderDO
)
;
}
yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/service/boxOrderCheckInfo/BoxOrderCheckInfoServiceImpl.java
View file @
aa361efc
...
...
@@ -182,7 +182,7 @@ public class BoxOrderCheckInfoServiceImpl extends AbstractService<BoxOrderCheckI
List
<
BoxPkgOrderDO
>
boxPkgOrderDOS
=
boxPkgOrderService
.
selectList
(
BoxPkgOrderDO:
:
getPkgId
,
createReqVO
.
getPkgId
());
orderIdList
=
boxPkgOrderDOS
.
stream
().
map
(
BoxPkgOrderDO:
:
getOrderId
).
collect
(
Collectors
.
toSet
());
if
(
orderIdList
.
isEmpty
()
||
CollectionUtil
.
isEmpty
(
orderIdList
)){
throw
exception
(
ErrorCodeConstants
.
ORDER_IS_NOT_PRE_INSTALLED
);
throw
exception
(
ORDER_CASE_NUM_NOT_EXIST
);
}
orderDOList
=
orderQueryService
.
getOrderList
(
orderIdList
);
boolean
isParentOrder
=
false
;
...
...
@@ -686,7 +686,7 @@ public class BoxOrderCheckInfoServiceImpl extends AbstractService<BoxOrderCheckI
return
orderList
.
get
(
0
);
}
p
rivate
List
<
String
>
getOrderTagList
(
OrderDO
orderDO
)
{
p
ublic
List
<
String
>
getOrderTagList
(
OrderDO
orderDO
)
{
//从OrderLabel里面查找订单的箱号
Long
orderId
=
orderDO
.
getOrderId
();
OrderLabelQueryVO
queryVO
=
new
OrderLabelQueryVO
();
...
...
yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/service/boxPkgOrder/BoxPkgOrderServiceImpl.java
View file @
aa361efc
...
...
@@ -15,14 +15,19 @@ import cn.iocoder.yudao.module.shipment.convert.BoxPkgOrderConvert;
import
cn.iocoder.yudao.module.shipment.dal.dataobject.BoxDO
;
import
cn.iocoder.yudao.module.shipment.dal.dataobject.BoxMergePkgDO
;
import
cn.iocoder.yudao.module.shipment.dal.dataobject.BoxPkgOrderDO
;
import
cn.iocoder.yudao.module.shipment.dal.dataobject.BoxPreloadGoodsDO
;
import
cn.iocoder.yudao.module.shipment.dal.dataobject.boxOrderCheckInfo.BoxOrderCheckInfoDO
;
import
cn.iocoder.yudao.module.shipment.dal.mysql.BoxPkgOrderMapper
;
import
cn.iocoder.yudao.module.shipment.dal.mysql.BoxPreloadGoodsMapper
;
import
cn.iocoder.yudao.module.shipment.dal.mysql.boxOrderCheckInfo.BoxOrderCheckInfoMapper
;
import
cn.iocoder.yudao.module.shipment.enums.AirShipmentStatusEnum
;
import
cn.iocoder.yudao.module.shipment.enums.MergePkgStatusEnum
;
import
cn.iocoder.yudao.module.shipment.enums.OrderShipmentLog
;
import
cn.iocoder.yudao.module.shipment.service.box.BoxService
;
import
cn.iocoder.yudao.module.shipment.service.boxMergePkg.BoxMergePkgService
;
import
cn.iocoder.yudao.module.shipment.service.boxOrderCheckInfo.BoxOrderCheckInfoService
;
import
cn.iocoder.yudao.module.shipment.service.boxPreloadGoods.BoxPreloadGoodsService
;
import
cn.iocoder.yudao.module.shipment.vo.boxOrderCheckInfo.BoxOrderCheckInfoCreateReqVO
;
import
cn.iocoder.yudao.module.shipment.vo.boxPkgOrder.BoxPkgOrderCreateReqVO
;
import
cn.iocoder.yudao.module.shipment.vo.boxPkgOrder.BoxPkgOrderQueryVO
;
import
cn.iocoder.yudao.module.shipment.vo.boxPkgOrder.BoxPkgOrderScanCodeVO
;
...
...
@@ -40,8 +45,7 @@ import java.util.stream.Collectors;
import
static
cn
.
iocoder
.
yudao
.
framework
.
common
.
exception
.
util
.
ServiceExceptionUtil
.
exception
;
import
static
cn
.
iocoder
.
yudao
.
module
.
order
.
enums
.
ErrorCodeConstants
.
ORDER_IS_PRE_INSTALLED
;
import
static
cn
.
iocoder
.
yudao
.
module
.
shipment
.
enums
.
ErrorCodeConstants
.
BOX_PKG_ORDER_NOT_EXISTS
;
import
static
cn
.
iocoder
.
yudao
.
module
.
shipment
.
enums
.
ErrorCodeConstants
.
MERGE_PKG_IS_FINISH
;
import
static
cn
.
iocoder
.
yudao
.
module
.
shipment
.
enums
.
ErrorCodeConstants
.*;
/**
* 合包订单 Service 实现类
...
...
@@ -73,6 +77,12 @@ public class BoxPkgOrderServiceImpl extends AbstractService<BoxPkgOrderMapper, B
private
OrderService
orderService
;
@Resource
private
BoxPreloadGoodsMapper
boxPreloadGoodsMapper
;
@Resource
private
BoxOrderCheckInfoMapper
boxOrderCheckInfoMapper
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
String
createBoxPkgOrder
(
BoxPkgOrderCreateReqVO
createReqVO
)
{
...
...
@@ -88,35 +98,184 @@ public class BoxPkgOrderServiceImpl extends AbstractService<BoxPkgOrderMapper, B
String
orderNumCode
=
createReqVO
.
getOrderNo
();
int
position
=
orderNumCode
.
lastIndexOf
(
"-"
);
if
(
position
>=
0
)
{
String
orderNumber
=
orderNumCode
.
substring
(
0
,
position
);
Long
orderId
=
orderService
.
getOrderIdByOrderNo
(
orderNumber
);
vo
.
setOrderId
(
orderId
);
BoxMergePkgDO
boxMergePkgDO
=
boxMergePkgService
.
selectOne
(
new
LambdaQueryWrapperX
<
BoxMergePkgDO
>().
eq
(
BoxMergePkgDO:
:
getPkgNum
,
createReqVO
.
getPkgNum
()));
vo
.
setPkgId
(
boxMergePkgDO
.
getId
())
;
BoxPkgOrderDO
pkgOrderDO
=
boxPkgOrderMapper
.
selectOne
(
new
LambdaQueryWrapperX
<
BoxPkgOrderDO
>().
eq
(
BoxPkgOrderDO:
:
getOrderId
,
orderId
).
eq
(
BoxPkgOrderDO:
:
getPkgId
,
boxMergePkgDO
.
getId
()));
if
(
pkgOrderDO
!=
null
){
throw
exception
(
ORDER_IS_PRE_INSTALLED
);
if
(
orderNumCode
.
contains
(
"A"
)
&&
orderNumCode
.
startsWith
(
"A"
)){
return
this
.
scanCodeByOrderNo
(
orderNumCode
,
vo
,
createReqVO
);
}
if
(
vo
.
getOrderId
()!=
null
&&
vo
.
getPkgId
()!=
null
){
//订单和包裹id 不为空,调用装箱方法
this
.
create
(
vo
);
BoxMergePkgDO
boxMergePkgDO
=
boxMergePkgService
.
selectOne
(
new
LambdaQueryWrapper
<
BoxMergePkgDO
>()
.
eq
(
BoxMergePkgDO:
:
getShipmentId
,
createReqVO
.
getShipmentId
())
.
eq
(
BoxMergePkgDO:
:
getPkgNum
,
orderNumber
));
if
(
boxMergePkgDO
!=
null
){
List
<
BoxPreloadGoodsDO
>
goodsDOS
=
boxPreloadGoodsMapper
.
selectList
(
new
LambdaQueryWrapperX
<
BoxPreloadGoodsDO
>().
eq
(
BoxPreloadGoodsDO:
:
getShipmentId
,
createReqVO
.
getShipmentId
()).
eq
(
BoxPreloadGoodsDO:
:
getDeleted
,
0
));
if
(
CollectionUtil
.
isNotEmpty
(
goodsDOS
))
{
List
<
Long
>
orderIds
=
goodsDOS
.
stream
().
map
(
BoxPreloadGoodsDO:
:
getOrderId
).
collect
(
Collectors
.
toList
());
List
<
OrderDO
>
orderDOS
=
orderService
.
selectList
(
OrderDO:
:
getOrderId
,
orderIds
);
if
(
CollectionUtil
.
isNotEmpty
(
orderDOS
)){
orderDOS
.
forEach
(
order
->{
BoxPkgOrderCreateReqVO
boxPkgOrderCreateReqVO
=
new
BoxPkgOrderCreateReqVO
();
boxPkgOrderCreateReqVO
.
setOrderId
(
order
.
getOrderId
());
boxPkgOrderCreateReqVO
.
setPkgId
(
boxMergePkgDO
.
getId
());
this
.
create
(
boxPkgOrderCreateReqVO
);
Long
orderId
=
order
.
getOrderId
();
//删除以装柜的编号
// boxOrderCheckInfoMapper.delete(new LambdaQueryWrapper<BoxOrderCheckInfoDO>()
// .eq(BoxOrderCheckInfoDO::getOrderId, orderId)
// .eq(boxMergePkgDO.getId() != null && boxMergePkgDO.getId().longValue() > 0L,BoxOrderCheckInfoDO::getPkgId,boxMergePkgDO.getId())
// .eq(BoxOrderCheckInfoDO::getShipmentId, createReqVO.getShipmentId())
// .eq(BoxOrderCheckInfoDO::getType,1)
// );
//找到这个订单所有需要装柜的编号
List
<
String
>
tagList
=
boxOrderCheckInfoService
.
getOrderTagList
(
order
);
List
<
BoxOrderCheckInfoDO
>
boxOrderCheckInfoDOS
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
tagList
.
size
();
i
++)
{
String
tag
=
tagList
.
get
(
i
);
BoxOrderCheckInfoDO
boxOrderCheckInfoDO
=
new
BoxOrderCheckInfoDO
();
boxOrderCheckInfoDO
.
setOrderId
(
orderId
);
boxOrderCheckInfoDO
.
setPkgId
(
boxMergePkgDO
.
getId
());
boxOrderCheckInfoDO
.
setOrderNumCode
(
tag
);
boxOrderCheckInfoDO
.
setShipmentId
(
createReqVO
.
getShipmentId
());
boxOrderCheckInfoDO
.
setType
(
1
);
boxOrderCheckInfoDO
.
setDeleted
(
false
);
boxOrderCheckInfoDOS
.
add
(
boxOrderCheckInfoDO
);
}
boxOrderCheckInfoService
.
saveBatch
(
boxOrderCheckInfoDOS
);
});
}
}
}
else
{
throw
exception
(
ORDER_CASE_NUM_NOT_EXIST
);
}
// Long orderId = orderService.getOrderIdByOrderNo(orderNumber);
// vo.setOrderId(orderId);
// BoxMergePkgDO boxMergePkgDO = boxMergePkgService.selectOne(new LambdaQueryWrapperX<BoxMergePkgDO>().eq(BoxMergePkgDO::getPkgNum,createReqVO.getPkgNum()));
// vo.setPkgId(boxMergePkgDO.getId()) ;
// BoxPkgOrderDO pkgOrderDO = boxPkgOrderMapper.selectOne(new LambdaQueryWrapperX<BoxPkgOrderDO>().eq(BoxPkgOrderDO::getOrderId,orderId).eq(BoxPkgOrderDO::getPkgId,boxMergePkgDO.getId()));
// if(pkgOrderDO!=null){
// throw exception(ORDER_IS_PRE_INSTALLED);
// }
// if(vo.getOrderId()!=null && vo.getPkgId()!=null){//订单和包裹id 不为空,调用装箱方法
// this.create(vo);
// }
}
else
if
(!
createReqVO
.
getOrderNo
().
contains
(
"-"
)){
Long
orderId
=
orderService
.
getOrderIdByOrderNo
(
createReqVO
.
getOrderNo
());
BoxMergePkgDO
boxMergePkgDO
=
boxMergePkgService
.
selectOne
(
new
LambdaQueryWrapper
<
BoxMergePkgDO
>()
.
eq
(
BoxMergePkgDO:
:
getShipmentId
,
createReqVO
.
getShipmentId
())
.
eq
(
BoxMergePkgDO:
:
getPkgNum
,
orderNumCode
));
if
(
boxMergePkgDO
!=
null
){
List
<
BoxPreloadGoodsDO
>
goodsDOS
=
boxPreloadGoodsMapper
.
selectList
(
new
LambdaQueryWrapperX
<
BoxPreloadGoodsDO
>().
eq
(
BoxPreloadGoodsDO:
:
getShipmentId
,
createReqVO
.
getShipmentId
()).
eq
(
BoxPreloadGoodsDO:
:
getDeleted
,
0
));
if
(
CollectionUtil
.
isNotEmpty
(
goodsDOS
))
{
List
<
Long
>
orderIds
=
goodsDOS
.
stream
().
map
(
BoxPreloadGoodsDO:
:
getOrderId
).
collect
(
Collectors
.
toList
());
List
<
OrderDO
>
orderDOS
=
orderService
.
selectList
(
OrderDO:
:
getOrderId
,
orderIds
);
if
(
CollectionUtil
.
isNotEmpty
(
orderDOS
)){
orderDOS
.
forEach
(
order
->{
BoxPkgOrderCreateReqVO
boxPkgOrderCreateReqVO
=
new
BoxPkgOrderCreateReqVO
();
boxPkgOrderCreateReqVO
.
setOrderId
(
order
.
getOrderId
());
boxPkgOrderCreateReqVO
.
setPkgId
(
boxMergePkgDO
.
getId
());
this
.
create
(
boxPkgOrderCreateReqVO
);
Long
orderId
=
order
.
getOrderId
();
//删除以装柜的编号
// boxOrderCheckInfoMapper.delete(new LambdaQueryWrapper<BoxOrderCheckInfoDO>()
// .eq(BoxOrderCheckInfoDO::getOrderId, orderId)
// .eq(boxMergePkgDO.getId() != null && boxMergePkgDO.getId().longValue() > 0L,BoxOrderCheckInfoDO::getPkgId,boxMergePkgDO.getId())
// .eq(BoxOrderCheckInfoDO::getShipmentId, createReqVO.getShipmentId())
// .eq(BoxOrderCheckInfoDO::getType,1)
// );
//找到这个订单所有需要装柜的编号
List
<
String
>
tagList
=
boxOrderCheckInfoService
.
getOrderTagList
(
order
);
List
<
BoxOrderCheckInfoDO
>
boxOrderCheckInfoDOS
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
tagList
.
size
();
i
++)
{
String
tag
=
tagList
.
get
(
i
);
BoxOrderCheckInfoDO
boxOrderCheckInfoDO
=
new
BoxOrderCheckInfoDO
();
boxOrderCheckInfoDO
.
setOrderId
(
orderId
);
boxOrderCheckInfoDO
.
setPkgId
(
boxMergePkgDO
.
getId
());
boxOrderCheckInfoDO
.
setOrderNumCode
(
tag
);
boxOrderCheckInfoDO
.
setShipmentId
(
createReqVO
.
getShipmentId
());
boxOrderCheckInfoDO
.
setType
(
1
);
boxOrderCheckInfoDO
.
setDeleted
(
false
);
boxOrderCheckInfoDOS
.
add
(
boxOrderCheckInfoDO
);
}
boxOrderCheckInfoService
.
saveBatch
(
boxOrderCheckInfoDOS
);
});
}
}
}
else
{
throw
exception
(
ORDER_CASE_NUM_NOT_EXIST
);
}
}
// 返回
return
"success"
;
}
private
String
scanCodeByOrderNo
(
String
orderNumCode
,
BoxPkgOrderCreateReqVO
vo
,
BoxPkgOrderScanCodeVO
createReqVO
){
int
position
=
orderNumCode
.
lastIndexOf
(
"-"
);
String
orderNumber
=
orderNumCode
.
substring
(
0
,
position
);
Long
orderId
=
orderService
.
getOrderIdByOrderNo
(
orderNumber
);
if
(
Objects
.
isNull
(
orderId
)){
throw
exception
(
ORDER_NOT_IN_BOX
);
}
OrderDO
order
=
orderService
.
getById
(
orderId
);
vo
.
setOrderId
(
orderId
);
BoxMergePkgDO
boxMergePkgDO
=
boxMergePkgService
.
selectOne
(
new
LambdaQueryWrapperX
<
BoxMergePkgDO
>().
eq
(
BoxMergePkgDO:
:
getPkgNum
,
createReqVO
.
getPkgNum
()));
vo
.
setPkgId
(
boxMergePkgDO
.
getId
())
;
BoxPkgOrderDO
pkgOrderDO
=
boxPkgOrderMapper
.
selectOne
(
new
LambdaQueryWrapperX
<
BoxPkgOrderDO
>().
eq
(
BoxPkgOrderDO:
:
getOrderId
,
orderId
).
eq
(
BoxPkgOrderDO:
:
getPkgId
,
boxMergePkgDO
.
getId
()));
if
(
pkgOrderDO
!=
null
){
List
<
BoxPkgOrderDO
>
pkgOrderDO
=
boxPkgOrderMapper
.
selectList
(
new
LambdaQueryWrapperX
<
BoxPkgOrderDO
>().
eq
(
BoxPkgOrderDO:
:
getOrderId
,
orderId
).
eq
(
BoxPkgOrderDO:
:
getPkgId
,
boxMergePkgDO
.
getId
()));
if
(
CollectionUtil
.
isNotEmpty
(
pkgOrderDO
)
){
throw
exception
(
ORDER_IS_PRE_INSTALLED
);
}
if
(
vo
.
getOrderId
()!=
null
&&
vo
.
getPkgId
()!=
null
){
//订单和包裹id 不为空,调用装箱方法
this
.
create
(
vo
);
}
}
// 返回
return
"success"
;
//删除以装柜的编号
// boxOrderCheckInfoMapper.delete(new LambdaQueryWrapper<BoxOrderCheckInfoDO>()
// .eq(BoxOrderCheckInfoDO::getOrderId, orderId)
// .eq(boxMergePkgDO.getId() != null && boxMergePkgDO.getId().longValue() > 0L,BoxOrderCheckInfoDO::getPkgId,boxMergePkgDO.getId())
// .eq(BoxOrderCheckInfoDO::getShipmentId, createReqVO.getShipmentId())
// .eq(BoxOrderCheckInfoDO::getType,1)
// );
//找到这个订单所有需要装柜的编号
List
<
String
>
tagList
=
boxOrderCheckInfoService
.
getOrderTagList
(
order
);
List
<
BoxOrderCheckInfoDO
>
boxOrderCheckInfoDOS
=
new
ArrayList
<>();
if
(
tagList
.
contains
(
orderNumCode
)
){
String
tag
=
orderNumCode
;
BoxOrderCheckInfoDO
boxOrderCheckInfoDO
=
new
BoxOrderCheckInfoDO
();
boxOrderCheckInfoDO
.
setOrderId
(
orderId
);
boxOrderCheckInfoDO
.
setPkgId
(
boxMergePkgDO
.
getId
());
boxOrderCheckInfoDO
.
setOrderNumCode
(
tag
);
boxOrderCheckInfoDO
.
setShipmentId
(
createReqVO
.
getShipmentId
());
boxOrderCheckInfoDO
.
setType
(
1
);
boxOrderCheckInfoDO
.
setDeleted
(
false
);
boxOrderCheckInfoDOS
.
add
(
boxOrderCheckInfoDO
);
}
// for (int i = 0; i < tagList.size(); i++) {
// String tag = tagList.get(i);
// BoxOrderCheckInfoDO boxOrderCheckInfoDO = new BoxOrderCheckInfoDO();
// boxOrderCheckInfoDO.setOrderId(orderId);
// boxOrderCheckInfoDO.setPkgId(boxMergePkgDO.getId());
// boxOrderCheckInfoDO.setOrderNumCode(tag);
// boxOrderCheckInfoDO.setShipmentId(createReqVO.getShipmentId());
// boxOrderCheckInfoDO.setType(1);
// boxOrderCheckInfoDO.setDeleted(false);
// boxOrderCheckInfoDOS.add(boxOrderCheckInfoDO);
// }
boxOrderCheckInfoService
.
saveBatch
(
boxOrderCheckInfoDOS
);
}
return
"success"
;
}
...
...
yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/vo/boxPkgOrder/BoxPkgOrderScanCodeVO.java
View file @
aa361efc
...
...
@@ -19,4 +19,10 @@ public class BoxPkgOrderScanCodeVO {
@ApiModelProperty
(
"合宝箱编号"
)
private
String
pkgNum
;
/**
* 出货id
*/
@ApiModelProperty
(
"出货id"
)
private
Long
shipmentId
;
}
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