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
cb9dc16b
Commit
cb9dc16b
authored
Mar 10, 2025
by
Smile
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
需求134后台-集运-包裹列表-转运
parent
06cf8ede
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
131 additions
and
4 deletions
+131
-4
ConsService.java
.../iocoder/yudao/module/order/service/cons/ConsService.java
+7
-0
ConsServiceImpl.java
...oder/yudao/module/order/service/cons/ConsServiceImpl.java
+116
-4
ConsController.java
...ao/module/order/controller/admin/cons/ConsController.java
+8
-0
No files found.
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/cons/ConsService.java
View file @
cb9dc16b
...
@@ -2,11 +2,14 @@ package cn.iocoder.yudao.module.order.service.cons;
...
@@ -2,11 +2,14 @@ package cn.iocoder.yudao.module.order.service.cons;
import
java.util.*
;
import
java.util.*
;
import
javax.validation.*
;
import
javax.validation.*
;
import
cn.iocoder.boot.module.order.api.dto.OrderRespDTO
;
import
cn.iocoder.yudao.framework.mybatis.core.vo.PageVO
;
import
cn.iocoder.yudao.framework.mybatis.core.vo.PageVO
;
import
cn.iocoder.yudao.framework.mybatis.core.service.IService
;
import
cn.iocoder.yudao.framework.mybatis.core.service.IService
;
import
cn.iocoder.yudao.framework.common.pojo.PageResult
;
import
cn.iocoder.yudao.framework.common.pojo.PageResult
;
import
cn.iocoder.yudao.module.order.dal.dataobject.cons.ConsDO
;
import
cn.iocoder.yudao.module.order.dal.dataobject.cons.ConsDO
;
import
cn.iocoder.yudao.module.order.vo.cons.*
;
import
cn.iocoder.yudao.module.order.vo.cons.*
;
import
cn.iocoder.yudao.module.order.vo.order.OrderBackVO
;
/**
/**
* 集运包裹主 Service 接口
* 集运包裹主 Service 接口
...
@@ -71,6 +74,10 @@ public interface ConsService extends IService<ConsDO> {
...
@@ -71,6 +74,10 @@ public interface ConsService extends IService<ConsDO> {
* @return 集运包裹主列表
* @return 集运包裹主列表
*/
*/
List
<
ConsDO
>
getConsList
(
ConsQueryVO
query
);
List
<
ConsDO
>
getConsList
(
ConsQueryVO
query
);
/**
* 获取转运临时order对象
*/
OrderBackVO
getTempOrderByConsIds
(
Collection
<
Long
>
ids
);
/**
/**
* PAD 创建集运包裹主
* PAD 创建集运包裹主
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/cons/ConsServiceImpl.java
View file @
cb9dc16b
...
@@ -7,6 +7,9 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
...
@@ -7,6 +7,9 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import
cn.iocoder.yudao.framework.mybatis.core.service.AbstractService
;
import
cn.iocoder.yudao.framework.mybatis.core.service.AbstractService
;
import
cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils
;
import
cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils
;
import
cn.iocoder.yudao.framework.mybatis.core.vo.PageVO
;
import
cn.iocoder.yudao.framework.mybatis.core.vo.PageVO
;
import
cn.iocoder.yudao.module.customer.dal.dataobject.customerContacts.CustomerContactsDO
;
import
cn.iocoder.yudao.module.customer.service.customerContacts.CustomerContactsService
;
import
cn.iocoder.yudao.module.depository.dto.LogisticsInfoDto
;
import
cn.iocoder.yudao.module.order.convert.cons.ConsConvert
;
import
cn.iocoder.yudao.module.order.convert.cons.ConsConvert
;
import
cn.iocoder.yudao.module.order.dal.dataobject.cons.ConsDO
;
import
cn.iocoder.yudao.module.order.dal.dataobject.cons.ConsDO
;
import
cn.iocoder.yudao.module.order.dal.dataobject.consItem.ConsItemDO
;
import
cn.iocoder.yudao.module.order.dal.dataobject.consItem.ConsItemDO
;
...
@@ -21,6 +24,12 @@ import cn.iocoder.yudao.module.order.vo.consItem.ConsItemCreateReqVO;
...
@@ -21,6 +24,12 @@ import cn.iocoder.yudao.module.order.vo.consItem.ConsItemCreateReqVO;
import
cn.iocoder.yudao.module.order.vo.consItem.ConsItemQueryVO
;
import
cn.iocoder.yudao.module.order.vo.consItem.ConsItemQueryVO
;
import
cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaCreateReqVO
;
import
cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaCreateReqVO
;
import
cn.iocoder.yudao.module.order.vo.consTrackingRecord.ConsTrackingRecordCreateReqVO
;
import
cn.iocoder.yudao.module.order.vo.consTrackingRecord.ConsTrackingRecordCreateReqVO
;
import
cn.iocoder.yudao.module.order.vo.order.OrderBackVO
;
import
cn.iocoder.yudao.module.order.vo.orderConsignee.OrderConsigneeBackVO
;
import
cn.iocoder.yudao.module.order.vo.orderConsignor.OrderConsignorBackVO
;
import
cn.iocoder.yudao.module.order.vo.orderItem.OrderItemBackVO
;
import
cn.iocoder.yudao.module.product.dal.dataobject.product.ProductDO
;
import
cn.iocoder.yudao.module.product.dal.mysql.product.ProductMapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
org.redisson.api.RAtomicLong
;
import
org.redisson.api.RAtomicLong
;
...
@@ -33,11 +42,9 @@ import org.springframework.validation.annotation.Validated;
...
@@ -33,11 +42,9 @@ import org.springframework.validation.annotation.Validated;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.util.Collection
;
import
java.util.*
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
common
.
exception
.
util
.
ServiceExceptionUtil
.
exception
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
common
.
exception
.
util
.
ServiceExceptionUtil
.
exception
;
...
@@ -65,6 +72,11 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
...
@@ -65,6 +72,11 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
@Resource
@Resource
private
RedissonClient
redissonClient
;
private
RedissonClient
redissonClient
;
@Resource
private
ProductMapper
productMapper
;
@Resource
private
CustomerContactsService
customerContactsService
;
@Override
@Override
@Transactional
@Transactional
public
Long
createCons
(
ConsCreateReqVO
createReqVO
)
{
public
Long
createCons
(
ConsCreateReqVO
createReqVO
)
{
...
@@ -310,7 +322,107 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
...
@@ -310,7 +322,107 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
}
}
}
}
}
}
@Override
public
OrderBackVO
getTempOrderByConsIds
(
Collection
<
Long
>
ids
)
{
List
<
ConsDO
>
consList
=
consMapper
.
selectList
(
new
LambdaQueryWrapperX
<
ConsDO
>().
in
(
ConsDO:
:
getId
,
ids
));
if
(
consList
==
null
||
consList
.
isEmpty
()){
throw
exception
(
30004
,
"包裹不存在"
);
}
OrderBackVO
orderBackVO
=
new
OrderBackVO
();
orderBackVO
.
setDeliveryDate
(
new
Date
());
orderBackVO
.
setIsCargoControl
(
false
);
orderBackVO
.
setCustomsType
(
1
);
orderBackVO
.
setWarehouseType
(
1
);
LogisticsInfoDto
logisticsInfo
=
new
LogisticsInfoDto
();
List
<
ConsItemDO
>
consItemDOS
=
consItemService
.
selectList
(
new
LambdaQueryWrapperX
<
ConsItemDO
>().
in
(
ConsItemDO:
:
getConsId
,
ids
));
List
<
OrderItemBackVO
>
orderItemVOList
=
new
ArrayList
<>();
//收集consItemDOS的productId
Set
<
Long
>
productIds
=
consItemDOS
.
stream
().
map
(
ConsItemDO:
:
getProdId
).
collect
(
Collectors
.
toSet
());
//根据productIds查询
List
<
ProductDO
>
productDOS
=
productMapper
.
selectList
(
new
LambdaQueryWrapperX
<
ProductDO
>().
in
(
ProductDO:
:
getId
,
productIds
));
Map
<
Long
,
List
<
ProductDO
>>
productMap
=
productDOS
.
stream
().
collect
(
Collectors
.
groupingBy
(
ProductDO:
:
getId
));
//转成Map
Map
<
Long
,
List
<
ConsItemDO
>>
consItemsMap
=
consItemDOS
.
stream
().
collect
(
Collectors
.
groupingBy
(
ConsItemDO:
:
getConsId
));
for
(
int
j
=
0
;
j
<
consList
.
size
();
j
++)
{
ConsDO
consDO
=
consList
.
get
(
j
);
if
(
j
==
0
){
List
<
CustomerContactsDO
>
customerContacts
=
customerContactsService
.
getCustomerContactsListByCustomerId
(
consDO
.
getCustomerId
());
Optional
<
CustomerContactsDO
>
firstDefault
=
customerContacts
.
stream
()
.
filter
(
customerContactsDO
->
customerContactsDO
.
getIsDefault
()
==
1
)
.
findFirst
();
if
(
firstDefault
.
isPresent
())
{
CustomerContactsDO
contact
=
firstDefault
.
get
();
orderBackVO
.
setCustomerId
(
contact
.
getCustomerId
());
orderBackVO
.
setMarks
(
contact
.
getName
());
OrderConsigneeBackVO
orderConsigneeBackVO
=
new
OrderConsigneeBackVO
();
OrderConsignorBackVO
orderConsignorBackVO
=
new
OrderConsignorBackVO
();
orderConsigneeBackVO
.
setCustomerContactsId
(
contact
.
getId
());
orderConsignorBackVO
.
setCustomerContactsId
(
contact
.
getId
());
orderConsigneeBackVO
.
setCustomerId
(
consDO
.
getCustomerId
());
orderConsignorBackVO
.
setCustomerId
(
consDO
.
getCustomerId
());
orderConsigneeBackVO
.
setRelationId
(
consDO
.
getCustomerId
());
orderConsignorBackVO
.
setRelationId
(
consDO
.
getCustomerId
());
orderConsigneeBackVO
.
setName
(
contact
.
getName
());
orderConsigneeBackVO
.
setNameEn
(
contact
.
getNameEn
());
orderConsignorBackVO
.
setName
(
contact
.
getName
());
orderConsignorBackVO
.
setNameEn
(
contact
.
getNameEn
());
orderConsigneeBackVO
.
setPhone
(
contact
.
getPhoneNew
());
orderConsignorBackVO
.
setPhone
(
contact
.
getPhoneNew
());
orderConsigneeBackVO
.
setCountryCode
(
contact
.
getAreaCode
());
orderConsignorBackVO
.
setCountryCode
(
contact
.
getAreaCode
());
orderBackVO
.
setConsigneeVO
(
orderConsigneeBackVO
);
orderBackVO
.
setConsignorVO
(
orderConsignorBackVO
);
}
else
{
throw
exception
(
30004
,
"包裹联系人为空"
);
}
}
if
(
consDO
.
getCustomerId
()!=
null
&&
orderBackVO
.
getCustomerId
()==
null
){
orderBackVO
.
setCustomerId
(
consDO
.
getCustomerId
());
orderBackVO
.
setMarks
(
consDO
.
getCustomerNumber
());
}
if
(
consDO
.
getTransportId
()!=
null
&&
orderBackVO
.
getTransportId
()==
null
){
orderBackVO
.
setTransportId
(
consDO
.
getTransportId
());
}
if
(
consDO
.
getWarehouseLineId
()!=
null
&&
logisticsInfo
.
getLineId
()==
null
){
logisticsInfo
.
setLineId
(
consDO
.
getWarehouseLineId
());
logisticsInfo
.
setDestCityId
(
consDO
.
getConsigneeCityId
());
logisticsInfo
.
setDestCountryId
(
consDO
.
getConsigneeCountryId
());
orderBackVO
.
setLogisticsInfoDto
(
logisticsInfo
);
orderBackVO
.
setLineId
(
consDO
.
getWarehouseLineId
());
orderBackVO
.
setObjectiveId
(
consDO
.
getConsigneeCityId
());
}
//包裹内商品处理
List
<
ConsItemDO
>
consItemDOList
=
consItemsMap
.
get
(
consDO
.
getId
());
for
(
int
i
=
0
;
i
<
consItemDOList
.
size
();
i
++)
{
ConsItemDO
consItemDO
=
consItemDOList
.
get
(
i
);
OrderItemBackVO
orderItemBackVO
=
new
OrderItemBackVO
();
if
(
i
==
0
){
orderItemBackVO
.
setWorth
(
consDO
.
getWorth
());
}
orderItemBackVO
.
setProdId
(
consItemDO
.
getProdId
());
orderItemBackVO
.
setProdTitleZh
(
productMap
.
get
(
consItemDO
.
getProdId
()).
get
(
0
).
getTitleZh
());
orderItemBackVO
.
setProdTitleEn
(
productMap
.
get
(
consItemDO
.
getProdId
()).
get
(
0
).
getTitleEn
());
orderItemBackVO
.
setProdTitleFr
(
productMap
.
get
(
consItemDO
.
getProdId
()).
get
(
0
).
getTitleFr
());
orderItemBackVO
.
setBrandType
(
0
);
orderItemBackVO
.
setNum
(
1
);
orderItemBackVO
.
setExpressNo
(
consDO
.
getExpressNo
());
if
(
consDO
.
getNeedInspect
()
!=
null
&&
consDO
.
getNeedInspect
()
==
1
)
{
orderItemBackVO
.
setVolume
(
consItemDO
.
getInspectionVolume
());
orderItemBackVO
.
setWeight
(
consItemDO
.
getInspectionWeight
());
orderItemBackVO
.
setBoxGauge
(
consItemDO
.
getInspectionBoxGauge
());
orderItemBackVO
.
setUnit
(
consItemDO
.
getInspectionUnit
());
orderItemBackVO
.
setWorth
(
consItemDO
.
getInspectionWorth
());
orderItemBackVO
.
setQuantity
(
Integer
.
parseInt
(
String
.
valueOf
(
consItemDO
.
getInspectionQuantity
())));
orderItemBackVO
.
setNum
(
consItemDO
.
getInspectionNum
());
}
orderItemVOList
.
add
(
orderItemBackVO
);
}
orderBackVO
.
setOrderItemVOList
(
orderItemVOList
);
};
orderBackVO
.
setIsCargoControl
(
false
);
return
orderBackVO
;
}
//生成包裹号
//生成包裹号
public
String
generateConsNumber
(
String
warehouseCode
)
{
public
String
generateConsNumber
(
String
warehouseCode
)
{
...
...
yudao-module-order/yudao-module-order-rest/src/main/java/cn/iocoder/yudao/module/order/controller/admin/cons/ConsController.java
View file @
cb9dc16b
...
@@ -23,6 +23,7 @@ import cn.iocoder.yudao.module.order.service.consTrackingRecord.ConsTrackingReco
...
@@ -23,6 +23,7 @@ import cn.iocoder.yudao.module.order.service.consTrackingRecord.ConsTrackingReco
import
cn.iocoder.yudao.module.order.vo.cons.*
;
import
cn.iocoder.yudao.module.order.vo.cons.*
;
import
cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO
;
import
cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO
;
import
cn.iocoder.yudao.module.order.vo.consItem.ConsItemQueryVO
;
import
cn.iocoder.yudao.module.order.vo.consItem.ConsItemQueryVO
;
import
cn.iocoder.yudao.module.order.vo.order.OrderBackVO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -189,4 +190,11 @@ public class ConsController {
...
@@ -189,4 +190,11 @@ public class ConsController {
consService
.
createPad
(
createReqVO
);
consService
.
createPad
(
createReqVO
);
return
success
(
true
);
return
success
(
true
);
}
}
@GetMapping
(
"/getTempOrderByConsIds"
)
@ApiOperation
(
"创建转运临时order对象"
)
public
CommonResult
<
OrderBackVO
>
getTempOrderByConsIds
(
@RequestParam
(
"ids"
)
Collection
<
Long
>
ids
){
OrderBackVO
tempOrderByConsIds
=
consService
.
getTempOrderByConsIds
(
ids
);
return
CommonResult
.
success
(
tempOrderByConsIds
);
}
}
}
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