Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
foodNexus-admin
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
副食品筹措管理平台
foodNexus-admin
Commits
179a4240
Commit
179a4240
authored
Oct 15, 2025
by
杨浩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
配送员端接口
parent
c37edf85
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
203 additions
and
51 deletions
+203
-51
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/sale/vo/order/DeliveryMyCountRespVO.java
+23
-0
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/sale/vo/order/DeliveryOrderPageReqVO.java
+34
-0
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/sale/vo/order/DeliveryStatusCountRespVO.java
+21
-0
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/sale/vo/order/ErpSaleOrderPageReqVO.java
+4
-0
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/dal/mysql/sale/ErpSaleOrderMapper.java
+27
-1
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/service/sale/ErpSaleOrderService.java
+14
-2
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/service/sale/ErpSaleOrderServiceImpl.java
+28
-17
foodnexus-module-mall/foodnexus-module-operations/src/main/java/cn/iocoder/foodnexus/module/operations/controller/app/delivery/AppDeliveryStaffController.java
+0
-3
foodnexus-module-mall/foodnexus-module-operations/src/main/java/cn/iocoder/foodnexus/module/operations/service/deliverystaff/DeliveryStaffServiceImpl.java
+3
-0
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/controller/admin/customerorder/vo/CustomerOrderSaveReqVO.java
+5
-0
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/controller/app/delivery/DeliverySaleOrderController.java
+39
-28
foodnexus-module-system/src/main/java/cn/iocoder/foodnexus/module/system/dal/redis/RedisKeyConstants.java
+5
-0
No files found.
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/sale/vo/order/DeliveryMyCountRespVO.java
0 → 100644
View file @
179a4240
package
cn
.
iocoder
.
foodnexus
.
module
.
erp
.
controller
.
admin
.
sale
.
vo
.
order
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
* @author : yanghao
* create at: 2025/10/15 16:27
* @description: 配送订单数
*/
@Data
public
class
DeliveryMyCountRespVO
{
@Schema
(
description
=
"配送总订单数"
)
private
Long
allCount
;
@Schema
(
description
=
"今日订单数"
)
private
Long
todayCount
;
@Schema
(
description
=
"本月订单数"
)
private
Long
monthCount
;
}
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/sale/vo/order/DeliveryOrderPageReqVO.java
0 → 100644
View file @
179a4240
package
cn
.
iocoder
.
foodnexus
.
module
.
erp
.
controller
.
admin
.
sale
.
vo
.
order
;
import
cn.iocoder.foodnexus.framework.common.pojo.PageParam
;
import
cn.iocoder.foodnexus.module.erp.enums.SaleOrderPickUpStatus
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.time.LocalDateTime
;
import
static
cn
.
iocoder
.
foodnexus
.
framework
.
common
.
util
.
date
.
DateUtils
.
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
;
/**
* @author : yanghao
* create at: 2025/10/15 17:07
* @description:
*/
@Data
public
class
DeliveryOrderPageReqVO
extends
PageParam
{
@Schema
(
description
=
"接单时间段"
)
@DateTimeFormat
(
pattern
=
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
)
private
LocalDateTime
[]
acceptTime
;
@Schema
(
description
=
"拣货状态"
)
private
SaleOrderPickUpStatus
pickUpStatus
;
@Schema
(
description
=
"订单类型(1-配送单 2-退货单)"
)
private
Integer
type
;
@Schema
(
description
=
"配送员id"
,
hidden
=
true
)
private
Long
deliveryStaffId
;
}
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/sale/vo/order/DeliveryStatusCountRespVO.java
0 → 100644
View file @
179a4240
package
cn
.
iocoder
.
foodnexus
.
module
.
erp
.
controller
.
admin
.
sale
.
vo
.
order
;
import
cn.iocoder.foodnexus.module.erp.enums.SaleOrderPickUpStatus
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
* @author : yanghao
* create at: 2025/10/15 16:29
* @description:
*/
@Data
public
class
DeliveryStatusCountRespVO
{
@Schema
(
description
=
"拣货状态"
)
private
SaleOrderPickUpStatus
pickUpStatus
;
@Schema
(
description
=
"对应订单数"
)
private
Long
count
;
}
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/sale/vo/order/ErpSaleOrderPageReqVO.java
View file @
179a4240
...
...
@@ -91,4 +91,7 @@ public class ErpSaleOrderPageReqVO extends PageParam {
@Schema
(
description
=
"拣货状态"
)
private
SaleOrderPickUpStatus
pickUpStatus
;
@Schema
(
description
=
"接单时间段"
)
private
LocalDateTime
[]
acceptTime
;
}
\ No newline at end of file
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/dal/mysql/sale/ErpSaleOrderMapper.java
View file @
179a4240
...
...
@@ -4,14 +4,18 @@ package cn.iocoder.foodnexus.module.erp.dal.mysql.sale;
import
cn.iocoder.foodnexus.framework.common.pojo.PageResult
;
import
cn.iocoder.foodnexus.framework.mybatis.core.mapper.BaseMapperX
;
import
cn.iocoder.foodnexus.framework.mybatis.core.query.MPJLambdaWrapperX
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.DeliveryMyCountRespVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderItemDO
;
import
cn.iocoder.foodnexus.module.erp.api.enums.ErpAuditStatus
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.github.yulichang.query.MPJQueryWrapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.Objects
;
import
java.util.Set
;
/**
* ERP 销售订单 Mapper
...
...
@@ -30,7 +34,8 @@ public interface ErpSaleOrderMapper extends BaseMapperX<ErpSaleOrderDO> {
.
likeIfPresent
(
ErpSaleOrderDO:
:
getRemark
,
reqVO
.
getRemark
())
.
eqIfPresent
(
ErpSaleOrderDO:
:
getCreator
,
reqVO
.
getCreator
())
.
eqIfPresent
(
ErpSaleOrderDO:
:
getDeliveryStaffId
,
reqVO
.
getDeliveryStaffId
())
.
eqIfPresent
(
ErpSaleOrderDO:
:
getPickUpStatus
,
reqVO
.
getPickUpStatus
())
.
betweenIfPresent
(
ErpSaleOrderDO:
:
getAcceptTime
,
reqVO
.
getAcceptTime
())
.
eqIfPresent
(
ErpSaleOrderDO:
:
getPickUpStatus
,
reqVO
.
getPickUpStatus
().
getType
())
.
eqIfPresent
(
ErpSaleOrderDO:
:
getCustomerDeptId
,
reqVO
.
getCustomerDeptId
())
.
inIfPresent
(
ErpSaleOrderDO:
:
getCustomerDeptId
,
reqVO
.
getCustomerDeptIds
())
.
orderByDesc
(
ErpSaleOrderDO:
:
getId
);
...
...
@@ -77,4 +82,24 @@ public interface ErpSaleOrderMapper extends BaseMapperX<ErpSaleOrderDO> {
return
selectOne
(
ErpSaleOrderDO:
:
getNo
,
no
);
}
default
DeliveryMyCountRespVO
queryMyCount
(
Long
userId
)
{
MPJQueryWrapper
<
ErpSaleOrderDO
>
wrapper
=
new
MPJQueryWrapper
<>();
wrapper
.
select
(
"COUNT(*) AS allCount"
);
wrapper
.
select
(
"SUM(CASE WHEN YEAR (accept_time)=YEAR (CURDATE()) AND MONTH (accept_time)=MONTH (CURDATE()) THEN 1 ELSE 0 END) AS monthCount"
);
wrapper
.
select
(
"SUM(CASE WHEN DATE (accept_time)=CURDATE() THEN 1 ELSE 0 END) AS todayCount"
);
wrapper
.
eq
(
"delivery_staff_id"
,
userId
);
return
this
.
selectJoinOne
(
DeliveryMyCountRespVO
.
class
,
wrapper
);
}
default
Long
statusCount
(
String
type
,
Long
userId
)
{
return
this
.
selectCount
(
Wrappers
.<
ErpSaleOrderDO
>
lambdaQuery
()
.
eq
(
ErpSaleOrderDO:
:
getDeliveryStaffId
,
userId
)
.
eq
(
ErpSaleOrderDO:
:
getPickUpStatus
,
type
));
}
default
Long
statusCount
(
String
type
,
Set
<
Long
>
deptIds
)
{
return
this
.
selectCount
(
Wrappers
.<
ErpSaleOrderDO
>
lambdaQuery
()
.
in
(
ErpSaleOrderDO:
:
getCustomerDeptId
,
deptIds
)
.
eq
(
ErpSaleOrderDO:
:
getPickUpStatus
,
type
));
}
}
\ No newline at end of file
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/service/sale/ErpSaleOrderService.java
View file @
179a4240
package
cn
.
iocoder
.
foodnexus
.
module
.
erp
.
service
.
sale
;
import
cn.iocoder.foodnexus.framework.common.pojo.PageResult
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderSaveReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.*
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderItemDO
;
import
cn.iocoder.foodnexus.module.order.dto.DeliveryOrderUpdateReqVO
;
...
...
@@ -12,6 +11,7 @@ import java.math.BigDecimal;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
/**
* ERP 销售订单 Service 接口
...
...
@@ -152,4 +152,15 @@ public interface ErpSaleOrderService {
ErpSaleOrderItemDO
queryItemByCustomerOrderItemId
(
Long
customerOrderItemId
);
void
receiptByCustomerOrderId
(
Long
id
,
List
<
Long
>
customerOrderItemId
);
/**
* "个人中心 - 配送订单数"
*/
DeliveryMyCountRespVO
queryMyCount
(
Long
userId
);
/**
* "接单大厅 - 配送状态订单数统计"
*/
List
<
DeliveryStatusCountRespVO
>
statusCount
(
Long
userId
,
Set
<
Long
>
deptIds
);
}
\ No newline at end of file
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/service/sale/ErpSaleOrderServiceImpl.java
View file @
179a4240
package
cn
.
iocoder
.
foodnexus
.
module
.
erp
.
service
.
sale
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.iocoder.foodnexus.framework.common.pojo.PageResult
;
import
cn.iocoder.foodnexus.framework.common.util.CommonUtil
;
import
cn.iocoder.foodnexus.framework.common.util.number.MoneyUtils
;
import
cn.iocoder.foodnexus.framework.common.util.object.BeanUtils
;
import
cn.iocoder.foodnexus.framework.redis.utils.RedisUtils
;
import
cn.iocoder.foodnexus.module.erp.api.vo.warehouse.WarehouseInfo
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.in.ErpPurchaseInSaveReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderSaveReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.*
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.out.ErpSaleOutSaveReqVO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.product.ErpProductDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpPurchaseOrderDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderItemDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOutDO
;
...
...
@@ -26,15 +20,11 @@ import cn.iocoder.foodnexus.module.erp.dal.redis.no.ErpNoRedisDAO;
import
cn.iocoder.foodnexus.module.erp.api.enums.ErpAuditStatus
;
import
cn.iocoder.foodnexus.module.erp.enums.SaleOrderPickUpStatus
;
import
cn.iocoder.foodnexus.module.erp.service.finance.ErpAccountService
;
import
cn.iocoder.foodnexus.module.erp.service.product.ErpProductService
;
import
cn.iocoder.foodnexus.module.erp.service.purchase.ErpPurchaseInService
;
import
cn.iocoder.foodnexus.module.erp.service.purchase.ErpPurchaseOrderService
;
import
cn.iocoder.foodnexus.module.order.api.CustomerOrderApi
;
import
cn.iocoder.foodnexus.module.order.api.CustomerOrderRecordApi
;
import
cn.iocoder.foodnexus.module.order.api.DeliveryStaffApi
;
import
cn.iocoder.foodnexus.module.order.dto.*
;
import
cn.iocoder.foodnexus.module.order.enums.CustomerOrderStatus
;
import
cn.iocoder.foodnexus.module.product.dal.dataobject.spu.ProductSpuDO
;
import
cn.iocoder.foodnexus.module.product.service.spu.ProductSpuService
;
import
cn.iocoder.foodnexus.module.system.api.user.AdminUserApi
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
...
...
@@ -83,18 +73,12 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService {
private
AdminUserApi
adminUserApi
;
@Autowired
private
ErpPurchaseInService
purchaseInService
;
@Autowired
private
CustomerOrderRecordApi
orderRecordApi
;
@Autowired
private
CustomerOrderApi
customerOrderApi
;
@Autowired
private
ErpPurchaseOrderService
purchaseOrderService
;
@Autowired
private
DeliveryStaffApi
deliveryStaffApi
;
@Autowired
...
...
@@ -653,4 +637,31 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService {
}
}
/**
* "个人中心 - 配送订单数"
*/
@Override
public
DeliveryMyCountRespVO
queryMyCount
(
Long
userId
)
{
return
saleOrderMapper
.
queryMyCount
(
userId
);
}
/**
* "接单大厅 - 配送状态订单数统计"
*/
@Override
public
List
<
DeliveryStatusCountRespVO
>
statusCount
(
Long
userId
,
Set
<
Long
>
deptIds
)
{
List
<
DeliveryStatusCountRespVO
>
result
=
new
ArrayList
<>();
for
(
SaleOrderPickUpStatus
status
:
SaleOrderPickUpStatus
.
values
())
{
DeliveryStatusCountRespVO
count
=
new
DeliveryStatusCountRespVO
();
count
.
setPickUpStatus
(
status
);
if
(
status
.
equals
(
SaleOrderPickUpStatus
.
PICK_UP
)
&&
CommonUtil
.
isNotEmpty
(
deptIds
))
{
count
.
setCount
(
saleOrderMapper
.
statusCount
(
status
.
getType
(),
deptIds
));
}
else
{
count
.
setCount
(
saleOrderMapper
.
statusCount
(
status
.
getType
(),
userId
));
}
result
.
add
(
count
);
}
return
result
;
}
}
foodnexus-module-mall/foodnexus-module-operations/src/main/java/cn/iocoder/foodnexus/module/operations/controller/app/delivery/AppDeliveryStaffController.java
View file @
179a4240
...
...
@@ -38,9 +38,6 @@ public class AppDeliveryStaffController {
private
DeliveryStaffService
deliveryStaffService
;
@Resource
private
DeliveryStaffCustomerService
deliveryStaffCustomerService
;
@Resource
private
VehicleInfoService
vehicleInfoService
;
...
...
foodnexus-module-mall/foodnexus-module-operations/src/main/java/cn/iocoder/foodnexus/module/operations/service/deliverystaff/DeliveryStaffServiceImpl.java
View file @
179a4240
...
...
@@ -10,9 +10,11 @@ import cn.iocoder.foodnexus.module.order.api.DeliveryStaffApi;
import
cn.iocoder.foodnexus.module.order.dto.DeliveryStaffSimpleInfo
;
import
cn.iocoder.foodnexus.module.system.controller.admin.user.vo.user.UserSaveReqVO
;
import
cn.iocoder.foodnexus.module.system.dal.dataobject.user.AdminUserDO
;
import
cn.iocoder.foodnexus.module.system.dal.redis.RedisKeyConstants
;
import
cn.iocoder.foodnexus.module.system.service.user.AdminUserService
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.stereotype.Service
;
import
jakarta.annotation.Resource
;
import
org.springframework.validation.annotation.Validated
;
...
...
@@ -200,6 +202,7 @@ public class DeliveryStaffServiceImpl implements DeliveryStaffService, DeliveryS
}
@Override
@Cacheable
(
cacheNames
=
RedisKeyConstants
.
USER_ID_TO_DELIVERY_STAFF_ID
,
key
=
"#loginUserId"
)
public
Long
queryStaffIdByUserId
(
Long
loginUserId
)
{
return
Optional
.
ofNullable
(
deliveryStaffMapper
.
selectOne
(
DeliveryStaffDO:
:
getUserId
,
loginUserId
))
.
map
(
DeliveryStaffDO:
:
getId
).
orElse
(
null
);
...
...
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/controller/admin/customerorder/vo/CustomerOrderSaveReqVO.java
View file @
179a4240
...
...
@@ -7,9 +7,12 @@ import cn.iocoder.foodnexus.module.order.enums.DeliveryMode;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.*
;
import
jakarta.validation.constraints.*
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.time.LocalDateTime
;
import
static
cn
.
iocoder
.
foodnexus
.
framework
.
common
.
util
.
date
.
DateUtils
.
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
;
@Schema
(
description
=
"管理后台 - 客户总订单新增/修改 Request VO"
)
@Data
public
class
CustomerOrderSaveReqVO
{
...
...
@@ -61,9 +64,11 @@ public class CustomerOrderSaveReqVO {
private
Integer
supplierCount
;
@Schema
(
description
=
"预计配送开始时间"
)
@DateTimeFormat
(
pattern
=
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
)
private
LocalDateTime
planDeliveryStartTime
;
@Schema
(
description
=
"预计配送结束时间"
)
@DateTimeFormat
(
pattern
=
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
)
private
LocalDateTime
planDeliveryEndTime
;
@Schema
(
description
=
"订单总金额(分)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
...
...
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/controller/app/delivery/DeliverySaleOrderController.java
View file @
179a4240
package
cn
.
iocoder
.
foodnexus
.
module
.
order
.
controller
.
app
.
delivery
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.iocoder.foodnexus.framework.common.enums.UserSystemEnum
;
import
cn.iocoder.foodnexus.framework.common.pojo.CommonResult
;
import
cn.iocoder.foodnexus.framework.common.pojo.PageParam
;
import
cn.iocoder.foodnexus.framework.common.pojo.PageResult
;
import
cn.iocoder.foodnexus.framework.common.util.CommonUtil
;
import
cn.iocoder.foodnexus.framework.common.util.collection.MapUtils
;
import
cn.iocoder.foodnexus.framework.common.util.object.BeanUtils
;
import
cn.iocoder.foodnexus.framework.common.validation.InEnum
;
import
cn.iocoder.foodnexus.framework.security.core.util.SecurityFrameworkUtils
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.DeliveryMyCountRespVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.DeliveryOrderPageReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderRespVO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpCustomerDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderItemDO
;
import
cn.iocoder.foodnexus.module.erp.enums.SaleOrderPickUpStatus
;
import
cn.iocoder.foodnexus.module.erp.service.sale.ErpCustomerService
;
import
cn.iocoder.foodnexus.module.erp.service.sale.ErpSaleOrderService
;
import
cn.iocoder.foodnexus.module.erp.service.sale.ErpSaleOutService
;
import
cn.iocoder.foodnexus.module.erp.service.stock.ErpStockService
;
import
cn.iocoder.foodnexus.module.operations.dal.dataobject.deliverystaff.DeliveryStaffDO
;
import
cn.iocoder.foodnexus.module.operations.service.deliverystaff.DeliveryStaffService
;
import
cn.iocoder.foodnexus.module.operations.service.deliverystaffcustomer.DeliveryStaffCustomerService
;
import
cn.iocoder.foodnexus.module.order.api.DeliveryStaffApi
;
import
cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderRespVO
;
import
cn.iocoder.foodnexus.module.order.controller.admin.customerorderitem.vo.CustomerOrderItemRespVO
;
import
cn.iocoder.foodnexus.module.order.controller.app.delivery.vo.DeliveryOrderDetails
;
import
cn.iocoder.foodnexus.module.order.controller.app.delivery.vo.DeliverySaleOrderRespVO
;
import
cn.iocoder.foodnexus.module.
order.dal.dataobject.customerorder.CustomerOrderD
O
;
import
cn.iocoder.foodnexus.module.
erp.controller.admin.sale.vo.order.DeliveryStatusCountRespV
O
;
import
cn.iocoder.foodnexus.module.order.dto.DeliveryOrderUpdateReqVO
;
import
cn.iocoder.foodnexus.module.order.service.customerorder.CustomerOrderService
;
import
cn.iocoder.foodnexus.module.order.service.customerorderitem.CustomerOrderItemService
;
import
cn.iocoder.foodnexus.module.product.dal.dataobject.spu.ProductSpuDO
;
import
cn.iocoder.foodnexus.module.product.service.spu.ProductSpuService
;
import
cn.iocoder.foodnexus.module.system.annotations.AppSystemAuth
;
import
cn.iocoder.foodnexus.module.system.api.user.AdminUserApi
;
import
cn.iocoder.foodnexus.module.system.api.user.dto.AdminUserRespDTO
;
import
cn.iocoder.foodnexus.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.Parameter
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
jakarta.annotation.Resource
;
import
jakarta.validation.Valid
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.
Map
;
import
java.util.
Set
;
import
static
cn
.
iocoder
.
foodnexus
.
framework
.
common
.
pojo
.
CommonResult
.
success
;
import
static
cn
.
iocoder
.
foodnexus
.
framework
.
common
.
util
.
collection
.
CollectionUtils
.
convertMultiMap
;
import
static
cn
.
iocoder
.
foodnexus
.
framework
.
common
.
util
.
collection
.
CollectionUtils
.
convertSet
;
import
static
cn
.
iocoder
.
foodnexus
.
framework
.
security
.
core
.
util
.
SecurityFrameworkUtils
.
getLoginUserId
;
/**
* @author : yanghao
* create at: 2025/10/14 17:56
* @description: 配送员 - 订单
- 接单
* @description: 配送员 - 订单
*/
@Tag
(
name
=
"配送员 - 订单
- 接单
"
)
@Tag
(
name
=
"配送员 - 订单"
)
@RestController
@RequestMapping
(
"/delivery/sale-order"
)
@Validated
...
...
@@ -83,8 +69,33 @@ public class DeliverySaleOrderController {
@Autowired
private
CustomerOrderItemService
customerOrderItemService
;
@GetMapping
(
"/my-count"
)
@Operation
(
summary
=
"个人中心 - 配送订单数"
)
public
CommonResult
<
DeliveryMyCountRespVO
>
queryMyCount
()
{
return
success
(
saleOrderService
.
queryMyCount
(
getLoginUserId
()));
}
@GetMapping
(
"/status-count"
)
@Operation
(
summary
=
"接单大厅 - 配送状态订单数统计"
)
public
CommonResult
<
List
<
DeliveryStatusCountRespVO
>>
statusCount
()
{
List
<
DeptSimpleRespVO
>
deptSimpleRespVOS
=
deliveryStaffCustomerService
.
queryDeptListByStaffId
(
deliveryStaffApi
.
queryStaffIdByUserId
(
getLoginUserId
()));
Set
<
Long
>
deptIds
=
CommonUtil
.
listConvertSet
(
deptSimpleRespVOS
,
DeptSimpleRespVO:
:
getId
);
return
success
(
saleOrderService
.
statusCount
(
getLoginUserId
(),
deptIds
));
}
@GetMapping
(
"/my-page"
)
@Operation
(
summary
=
"个人中心 - 订单"
)
public
CommonResult
<
PageResult
<
DeliverySaleOrderRespVO
>>
queryMyPage
(
@Valid
DeliveryOrderPageReqVO
reqVO
)
{
if
(
reqVO
.
getType
()
==
1
)
{
reqVO
.
setDeliveryStaffId
(
deliveryStaffApi
.
queryStaffIdByUserId
(
getLoginUserId
()));
ErpSaleOrderPageReqVO
pageReqVO
=
BeanUtils
.
toBean
(
reqVO
,
ErpSaleOrderPageReqVO
.
class
);
return
success
(
BeanUtils
.
toBean
(
saleOrderService
.
getSaleOrderPage
(
pageReqVO
),
DeliverySaleOrderRespVO
.
class
));
}
return
success
(
new
PageResult
<>());
}
@GetMapping
(
"/page"
)
@Operation
(
summary
=
"查询配送单"
)
@Operation
(
summary
=
"
接单大厅 -
查询配送单"
)
@Parameter
(
name
=
"pickUpStatus"
,
description
=
"拣货状态(字典类型:sale_order_pick_up_status)"
,
required
=
true
,
example
=
"1024"
)
public
CommonResult
<
PageResult
<
DeliverySaleOrderRespVO
>>
getSaleOrderPage
(
@Valid
PageParam
pageReq
,
@InEnum
(
value
=
SaleOrderPickUpStatus
.
class
)
...
...
@@ -94,17 +105,17 @@ public class DeliverySaleOrderController {
pageReqVO
.
setPageNo
(
pageReq
.
getPageNo
());
pageReqVO
.
setPageSize
(
pageReq
.
getPageSize
());
if
(
SaleOrderPickUpStatus
.
PICK_UP
.
getType
().
equals
(
pickUpStatus
)
||
SaleOrderPickUpStatus
.
TO_BE
.
getType
().
equals
(
pickUpStatus
)
)
{
List
<
DeptSimpleRespVO
>
deptSimpleRespVOS
=
deliveryStaffCustomerService
.
queryDeptListByStaffId
(
deliveryStaffApi
.
queryStaffIdByUserId
(
SecurityFrameworkUtils
.
getLoginUserId
()));
List
<
DeptSimpleRespVO
>
deptSimpleRespVOS
=
deliveryStaffCustomerService
.
queryDeptListByStaffId
(
deliveryStaffApi
.
queryStaffIdByUserId
(
getLoginUserId
()));
pageReqVO
.
setCustomerDeptIds
(
CommonUtil
.
listConvert
(
deptSimpleRespVOS
,
DeptSimpleRespVO:
:
getId
));
}
else
{
pageReqVO
.
setDeliveryStaffId
(
deliveryStaffApi
.
queryStaffIdByUserId
(
SecurityFrameworkUtils
.
getLoginUserId
()));
pageReqVO
.
setDeliveryStaffId
(
deliveryStaffApi
.
queryStaffIdByUserId
(
getLoginUserId
()));
}
pageReqVO
.
setPickUpStatus
(
SaleOrderPickUpStatus
.
getByType
(
pickUpStatus
));
return
success
(
BeanUtils
.
toBean
(
saleOrderService
.
getSaleOrderPage
(
pageReqVO
),
DeliverySaleOrderRespVO
.
class
));
}
@GetMapping
(
"/get"
)
@Operation
(
summary
=
"
获得销售订单
"
)
@Operation
(
summary
=
"
配送单详情
"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
,
example
=
"1024"
)
public
CommonResult
<
DeliveryOrderDetails
<
DeliverySaleOrderRespVO
>>
getSaleOrder
(
@RequestParam
(
"id"
)
Long
id
)
{
ErpSaleOrderDO
saleOrder
=
saleOrderService
.
getSaleOrder
(
id
);
...
...
@@ -123,7 +134,7 @@ public class DeliverySaleOrderController {
@Operation
(
summary
=
"确认接单"
)
@Parameter
(
name
=
"id"
,
description
=
"配送单id(deliveryInfo.id)"
,
required
=
true
)
public
CommonResult
<
Boolean
>
accept
(
@RequestParam
(
"id"
)
Long
id
)
{
saleOrderService
.
accept
(
id
,
deliveryStaffApi
.
queryStaffIdByUserId
(
SecurityFrameworkUtils
.
getLoginUserId
()));
saleOrderService
.
accept
(
id
,
deliveryStaffApi
.
queryStaffIdByUserId
(
getLoginUserId
()));
return
success
(
Boolean
.
TRUE
);
}
...
...
@@ -132,7 +143,7 @@ public class DeliverySaleOrderController {
@Operation
(
summary
=
"确认取货"
)
@Parameter
(
name
=
"id"
,
description
=
"配送单id(deliveryInfo.id)"
,
required
=
true
)
public
CommonResult
<
Boolean
>
delivery
(
@RequestParam
(
"id"
)
Long
id
)
{
saleOrderService
.
delivery
(
id
,
deliveryStaffApi
.
queryStaffIdByUserId
(
SecurityFrameworkUtils
.
getLoginUserId
()));
saleOrderService
.
delivery
(
id
,
deliveryStaffApi
.
queryStaffIdByUserId
(
getLoginUserId
()));
return
success
(
Boolean
.
TRUE
);
}
...
...
@@ -140,7 +151,7 @@ public class DeliverySaleOrderController {
@PostMapping
(
"/arrival"
)
@Operation
(
summary
=
"订单到货"
)
public
CommonResult
<
Boolean
>
arrival
(
@RequestBody
@Valid
DeliveryOrderUpdateReqVO
reqVO
)
{
saleOrderService
.
arrival
(
reqVO
,
deliveryStaffApi
.
queryStaffIdByUserId
(
SecurityFrameworkUtils
.
getLoginUserId
()));
saleOrderService
.
arrival
(
reqVO
,
deliveryStaffApi
.
queryStaffIdByUserId
(
getLoginUserId
()));
return
success
(
Boolean
.
TRUE
);
}
...
...
foodnexus-module-system/src/main/java/cn/iocoder/foodnexus/module/system/dal/redis/RedisKeyConstants.java
View file @
179a4240
...
...
@@ -114,4 +114,9 @@ public interface RedisKeyConstants {
*/
String
CUSTOMER_VISIBLE_PRODUCT
=
"customer_visible_products"
;
/**
* 用户绑定的配送员id
*/
String
USER_ID_TO_DELIVERY_STAFF_ID
=
"user_id_to_delivery_staff_id"
;
}
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