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
75103c48
Commit
75103c48
authored
Mar 01, 2025
by
332784038@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
批量订单费用申请业务完善
parent
4d53ae56
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
443 additions
and
55 deletions
+443
-55
20250228.sql
sql/v2.2/20250228.sql
+8
-1
CodeUtils.java
...n/iocoder/yudao/framework/common/util/code/CodeUtils.java
+40
-5
WorkFlowEmus.java
.../java/cn/iocoder/yudao/module/bpm/enums/WorkFlowEmus.java
+1
-0
BpmOrdeBatchOrderFreeApplyResultListener.java
...er/listener/BpmOrdeBatchOrderFreeApplyResultListener.java
+32
-0
BatchOrderFeeApplyDO.java
...l/dataobject/batchOrderFeeApply/BatchOrderFeeApplyDO.java
+9
-1
OrderFeeApplicationDO.java
...dataobject/orderFeeApplication/OrderFeeApplicationDO.java
+4
-0
ErrorCodeConstants.java
.../iocoder/yudao/module/order/enums/ErrorCodeConstants.java
+1
-0
OrderApprovalTypeResultEnum.java
...yudao/module/order/enums/OrderApprovalTypeResultEnum.java
+6
-0
OrderNumberEnum.java
.../cn/iocoder/yudao/module/order/enums/OrderNumberEnum.java
+1
-0
BatchOrderFeeApplyService.java
...service/batchOrderFeeApply/BatchOrderFeeApplyService.java
+15
-12
BatchOrderFeeApplyServiceImpl.java
...ice/batchOrderFeeApply/BatchOrderFeeApplyServiceImpl.java
+223
-21
OrderFeeApplicationService.java
...odule/order/service/order/OrderFeeApplicationService.java
+12
-0
OrderFeeApplicationServiceImpl.java
...er/service/order/impl/OrderFeeApplicationServiceImpl.java
+50
-5
BatchOrderFeeApplyBackVO.java
...order/vo/batchOrderFeeApply/BatchOrderFeeApplyBackVO.java
+3
-0
BatchOrderFeeApplyBaseVO.java
...order/vo/batchOrderFeeApply/BatchOrderFeeApplyBaseVO.java
+3
-0
BatchOrderFeeApplyCreateReqVO.java
.../vo/batchOrderFeeApply/BatchOrderFeeApplyCreateReqVO.java
+0
-2
BatchOrderFeeDetailsVO.java
...e/order/vo/batchOrderFeeApply/BatchOrderFeeDetailsVO.java
+6
-2
OrderFeeApplicationBackVO.java
...der/vo/orderFeeApplication/OrderFeeApplicationBackVO.java
+4
-0
OrderFeeApplicationBaseVO.java
...der/vo/orderFeeApplication/OrderFeeApplicationBaseVO.java
+4
-0
BatchOrderFeeApplyController.java
...dmin/batchOrderFeeApply/BatchOrderFeeApplyController.java
+21
-6
No files found.
sql/v2.2/20250228.sql
View file @
75103c48
...
...
@@ -9,7 +9,14 @@ CREATE TABLE `ecw_batch_order_fee_apply` (
`create_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
`updater`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
NULL
DEFAULT
NULL
COMMENT
'更新者'
,
`update_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
`audit`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_general_ci
DEFAULT
NULL
COMMENT
'审核人'
,
`audit_time`
datetime
DEFAULT
NULL
COMMENT
'审核时间'
,
`deleted`
bit
(
1
)
NOT
NULL
DEFAULT
b
'0'
COMMENT
'是否删除'
,
PRIMARY
KEY
(
`id`
)
USING
BTREE
,
UNIQUE
KEY
`no_key`
(
`no`
)
USING
BTREE
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8mb4
COLLATE
=
utf8mb4_general_ci
ROW_FORMAT
=
Dynamic
COMMENT
=
'批量费用申请'
;
\ No newline at end of file
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8mb4
COLLATE
=
utf8mb4_general_ci
ROW_FORMAT
=
Dynamic
COMMENT
=
'批量费用申请'
;
-- 新增费用申请记录流程类型
alter
table
ecw_order_fee_application
add
COLUMN
`bpm_type`
tinyint
DEFAULT
1
COMMENT
'流程类型: 1 费用申请 2 批量订单费用申请'
after
`bpm_process_id`
;
\ No newline at end of file
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/code/CodeUtils.java
View file @
75103c48
...
...
@@ -15,9 +15,13 @@ public class CodeUtils {
/**
* 收款单类别头
*/
private
static
final
String
RECEIPT_CODE
=
"SKD"
;
/**
* 收款单类别头
*/
private
static
final
String
BATCH_ORDER_FEE_APPLY_NO
=
"BFA"
;
/**
* 付款单类别头
*/
...
...
@@ -279,6 +283,35 @@ public class CodeUtils {
}
/**
* 功能描述: 自动生成收款单单单号
*
* @param maxOddNumbers 数据库中的最新单号 BFA20250300001
* @return java.lang.String
*/
public
static
String
getOddBatchOrderFeeApplyNumbers
(
String
maxOddNumbers
)
{
// 格式: BPA+年份YYYY+月份MM+5位数
int
numberLength
=
14
;
//获取当前日期并将其进行格式化
String
formatYearMonth
=
getDateTime
(
"yyyyMM"
);
int
newEndIntNum
;
//判断数据中的最大单号是否存在,是否包含当前日期
if
(
StringUtils
.
isNotEmpty
(
maxOddNumbers
)
&&
maxOddNumbers
.
length
()
==
numberLength
&&
maxOddNumbers
.
substring
(
3
,
9
).
equals
(
formatYearMonth
))
{
//截取后五位数
String
endNum
=
maxOddNumbers
.
substring
(
maxOddNumbers
.
length
()
-
5
);
//把截取的最后五位数解析为int
int
endIntNum
=
Integer
.
parseInt
(
endNum
);
//在将其加1(自增1)
newEndIntNum
=
endIntNum
+
1
;
}
else
{
// 如果为空(第一次生成)或者当前最大订单号的日期与当前日期不一致说明需要重新计数生成单号
newEndIntNum
=
1
;
}
//生成单号,将单号返回
return
String
.
format
(
"%s%s%05d"
,
BATCH_ORDER_FEE_APPLY_NO
,
formatYearMonth
,
newEndIntNum
);
}
/**
* 功能描述: 自动生成付款单单单号
...
...
@@ -538,10 +571,12 @@ public class CodeUtils {
}
public
static
void
main
(
String
[]
args
)
{
String
destCountryCode
=
"ECW"
;
String
channelCode
=
"SF"
;
String
maxOddOrderNumbers
=
""
;
System
.
out
.
println
(
getOddOrderNumbers
(
"A2300006"
,
""
,
"GA"
,
"A"
,
""
,
false
,
false
));
System
.
out
.
println
(
getOddBatchOrderFeeApplyNumbers
(
"BFA20250300001"
));
// String destCountryCode = "ECW";
// String channelCode = "SF";
// String maxOddOrderNumbers = "";
// System.out.println(getOddOrderNumbers("A2300006", "", "GA", "A", "", false, false));
}
}
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/WorkFlowEmus.java
View file @
75103c48
...
...
@@ -9,6 +9,7 @@ public enum WorkFlowEmus {
ORDER_FREE_APPLY
(
"free_apply"
,
"订单审批-费用审核"
),
ORDER_BATCH_FREE_APPLY
(
"batch_free_apply"
,
"订单审批-批量费用审核"
),
BATCH_ORDER_FREE_APPLY
(
"batch_order_free_apply"
,
"订单审批-批量订单费用审核"
),
ORDER_SPECIAL_APPLY
(
"special_apply"
,
"订单审批-特价审核"
),
ORDER_SPECIAL_APPLY_BATCH
(
"special_apply_batch"
,
"订单审批-批量特价审核"
),
...
...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/service/order/listener/BpmOrdeBatchOrderFreeApplyResultListener.java
0 → 100644
View file @
75103c48
package
cn
.
iocoder
.
yudao
.
module
.
bpm
.
service
.
order
.
listener
;
import
cn.iocoder.yudao.module.bpm.enums.WorkFlowEmus
;
import
cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEvent
;
import
cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEventListener
;
import
cn.iocoder.yudao.module.order.service.batchOrderFeeApply.BatchOrderFeeApplyService
;
import
cn.iocoder.yudao.module.order.service.order.OrderFeeApplicationService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
@Component
@Slf4j
public
class
BpmOrdeBatchOrderFreeApplyResultListener
extends
BpmProcessInstanceResultEventListener
{
@Resource
BatchOrderFeeApplyService
batchOrderFeeApplyService
;
@Override
protected
String
getProcessDefinitionKey
()
{
return
WorkFlowEmus
.
BATCH_ORDER_FREE_APPLY
.
getKey
();
}
@Override
protected
void
onEvent
(
BpmProcessInstanceResultEvent
event
)
{
log
.
info
(
"------------------批量订单费用审核回调--------------------------{},{}"
,
event
.
getBusinessKey
(),
event
.
getResult
());
batchOrderFeeApplyService
.
batchOrderFeeApplyCallback
(
event
.
getBusinessKey
(),
event
.
getResult
());
}
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/dal/dataobject/batchOrderFeeApply/BatchOrderFeeApplyDO.java
View file @
75103c48
...
...
@@ -37,12 +37,20 @@ public class BatchOrderFeeApplyDO extends BaseDO {
*/
private
String
reason
;
/**
* 状态:
0 已取消 1 申请中 2 已通过 3 已驳回
* 状态:
1 申请中 2 已通过 3 已驳回 4 已取消
*/
private
Integer
state
;
/**
* 流程表单实例ID
*/
private
String
formId
;
/**
* 审核人
*/
private
String
audit
;
/**
* 审核时间
*/
private
Date
auditTime
;
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/dal/dataobject/orderFeeApplication/OrderFeeApplicationDO.java
View file @
75103c48
...
...
@@ -100,6 +100,10 @@ public class OrderFeeApplicationDO extends BaseDO {
* 流程ID
*/
private
String
bpmProcessId
;
/**
* 流程类型:1 费用申请 2 批量订单费用申请
*/
private
String
bpmType
;
/**
* 应收ID
*/
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/enums/ErrorCodeConstants.java
View file @
75103c48
...
...
@@ -436,6 +436,7 @@ public interface ErrorCodeConstants {
ErrorCode
ORDER_UPDATE_BOX_EXCEPTION
=
new
ErrorCode
(
1004001174
,
"warehouse.in.box.exception"
);
ErrorCode
BATCH_ORDER_FEE_APPLY_NOT_EXISTS
=
new
ErrorCode
(
1004001175
,
"批量费用申请不存在"
);
ErrorCode
BATCH_ORDER_FEE_APPLY_INFO_NOT_EXISTS
=
new
ErrorCode
(
1004001176
,
"批量费用申请详情数据不存在"
);
//订单不是已装柜/已出货,不可操作
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/enums/OrderApprovalTypeResultEnum.java
View file @
75103c48
...
...
@@ -159,6 +159,12 @@ public enum OrderApprovalTypeResultEnum implements IntArrayValuable {
expense_apply_batch_reject
(
41
,
3
,
"fee.application.reject"
),
expense_apply_batch_cancel
(
41
,
4
,
"fee.application.cancel"
),
//批量订单费用申请
expense_apply_batch_order_processing
(
42
,
1
,
"fee.application.processing"
),
expense_apply_batch_order_pass
(
42
,
2
,
"fee.application.pass"
),
expense_apply_batch_order_reject
(
42
,
3
,
"fee.application.reject"
),
expense_apply_batch_order_cancel
(
42
,
4
,
"fee.application.cancel"
),
//分拣
sorting_processing
(
50
,
1
,
"shipment.sorting.processing"
),
sorting_pass
(
50
,
2
,
"shipment.sorting.pass"
),
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/enums/OrderNumberEnum.java
View file @
75103c48
...
...
@@ -16,6 +16,7 @@ public enum OrderNumberEnum {
PAYMENT_NO
(
3
,
"付款单号"
),
COMMISSION_PAYMENT_NO
(
5
,
"佣金付款单号"
),
FOLLOWUP_NO
(
6
,
"跟进单号"
),
BFA_NO
(
7
,
"批量订单申请编号"
),
;
/**
* 类型
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/batchOrderFeeApply/BatchOrderFeeApplyService.java
View file @
75103c48
...
...
@@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.mybatis.core.service.IService;
import
cn.iocoder.yudao.module.order.vo.batchOrderFeeApply.*
;
import
cn.iocoder.yudao.module.order.dal.dataobject.batchOrderFeeApply.BatchOrderFeeApplyDO
;
import
cn.iocoder.yudao.framework.common.pojo.PageResult
;
import
cn.iocoder.yudao.module.order.vo.order.OrderBackVO
;
/**
* 批量费用申请 Service 接口
...
...
@@ -22,24 +23,13 @@ public interface BatchOrderFeeApplyService extends IService<BatchOrderFeeApplyDO
*/
Long
createBatchOrderFeeApply
(
@Valid
BatchOrderFeeApplyCreateReqVO
createReqVO
);
/**
* 更新批量费用申请
* @param updateReqVO 更新信息
*/
void
updateBatchOrderFeeApply
(
@Valid
BatchOrderFeeApplyUpdateReqVO
updateReqVO
);
/**
* 删除批量费用申请
* @param id 编号
*/
void
deleteBatchOrderFeeApply
(
Long
id
);
/**
* 获得批量费用申请
* @param id 编号
* @return 批量费用申请
*/
BatchOrderFeeApply
D
O
getBatchOrderFeeApply
(
Long
id
);
BatchOrderFeeApply
BackV
O
getBatchOrderFeeApply
(
Long
id
);
/**
* 获得批量费用申请列表
...
...
@@ -62,4 +52,17 @@ public interface BatchOrderFeeApplyService extends IService<BatchOrderFeeApplyDO
* @return 批量费用申请列表
*/
List
<
BatchOrderFeeApplyDO
>
getBatchOrderFeeApplyList
(
BatchOrderFeeApplyQueryVO
query
);
BatchOrderFeeApplyBackVO
getInfoByFormId
(
Long
formId
);
List
<
OrderBackVO
>
getOrderListByIds
(
List
<
Long
>
orderIds
);
/**
* 批量订单费用申请回调
*
* @param id 表单业务ID
* @param result 1 处理中 2 通过 3 不通过 4 已取消
*/
void
batchOrderFeeApplyCallback
(
String
id
,
Integer
result
);
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/batchOrderFeeApply/BatchOrderFeeApplyServiceImpl.java
View file @
75103c48
package
cn
.
iocoder
.
yudao
.
module
.
order
.
service
.
batchOrderFeeApply
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.lang.generator.SnowflakeGenerator
;
import
cn.iocoder.yudao.framework.apollo.core.event.Order.OrderApprovalTypeCheckEvent
;
import
cn.iocoder.yudao.framework.apollo.core.event.Order.OrderNumberLogEvent
;
import
cn.iocoder.yudao.framework.common.util.code.CodeUtils
;
import
cn.iocoder.yudao.framework.common.util.json.JsonUtils
;
import
cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO
;
import
cn.iocoder.yudao.framework.dict.core.util.DictFrameworkUtils
;
import
cn.iocoder.yudao.framework.http.util.StrUtils
;
import
cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils
;
import
cn.iocoder.yudao.module.bpm.api.BpmCreateServiceFactory
;
import
cn.iocoder.yudao.module.bpm.enums.WorkFlowEmus
;
import
cn.iocoder.yudao.module.ecw.dal.dataobject.currency.CurrencyDO
;
import
cn.iocoder.yudao.module.ecw.service.currency.CurrencyService
;
import
cn.iocoder.yudao.module.order.dal.dataobject.orderFeeApplication.OrderFeeApplicationDO
;
import
cn.iocoder.yudao.module.order.enums.OrderApprovalTypeResultEnum
;
import
cn.iocoder.yudao.module.order.service.order.OrderBusinessService
;
import
cn.iocoder.yudao.module.order.service.order.OrderFeeApplicationService
;
import
cn.iocoder.yudao.module.order.service.order.OrderQueryService
;
import
cn.iocoder.yudao.module.order.service.order.OrderService
;
import
cn.iocoder.yudao.module.order.vo.order.ApplyInfoVO
;
import
cn.iocoder.yudao.module.order.vo.order.OrderBackVO
;
import
cn.iocoder.yudao.module.order.vo.orderFeeApplication.OrderFeeApplicationCreateReqVO
;
import
cn.iocoder.yudao.module.system.enums.DictTypeConstants
;
import
cn.iocoder.yudao.module.wealth.dal.dataobject.receipt.ReceiptDO
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
org.springframework.validation.annotation.Validated
;
import
cn.iocoder.yudao.framework.mybatis.core.vo.PageVO
;
...
...
@@ -11,8 +41,11 @@ import cn.iocoder.yudao.module.order.dal.dataobject.batchOrderFeeApply.BatchOrde
import
cn.iocoder.yudao.framework.common.pojo.PageResult
;
import
cn.iocoder.yudao.module.order.convert.batchOrderFeeApply.BatchOrderFeeApplyConvert
;
import
cn.iocoder.yudao.module.order.dal.mysql.batchOrderFeeApply.BatchOrderFeeApplyMapper
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
common
.
exception
.
util
.
ServiceExceptionUtil
.
exception
;
import
static
cn
.
iocoder
.
yudao
.
module
.
order
.
enums
.
ErrorCodeConstants
.*;
import
static
cn
.
iocoder
.
yudao
.
module
.
order
.
enums
.
OrderApprovalTypeEnum
.
expense_apply
;
import
static
cn
.
iocoder
.
yudao
.
module
.
order
.
enums
.
OrderNumberEnum
.
BFA_NO
;
/**
* 批量费用申请 Service 实现类
...
...
@@ -25,42 +58,109 @@ public class BatchOrderFeeApplyServiceImpl extends AbstractService<BatchOrderFee
@Resource
private
BatchOrderFeeApplyMapper
batchOrderFeeApplyMapper
;
@Resource
private
OrderQueryService
orderQueryService
;
@Resource
private
SnowflakeGenerator
snowflakeGenerator
;
@Resource
private
OrderFeeApplicationService
orderFeeApplicationService
;
@Resource
private
ApplicationContext
applicationContext
;
@Resource
private
BpmCreateServiceFactory
bpmCreateServiceFactory
;
@Resource
private
CurrencyService
currencyService
;
@Resource
@Lazy
private
OrderBusinessService
orderBusinessService
;
@Resource
private
OrderService
orderService
;
@Override
public
Long
createBatchOrderFeeApply
(
BatchOrderFeeApplyCreateReqVO
createReqVO
)
{
if
(
Objects
.
isNull
(
createReqVO
.
getBatchApplyDetailsInfoVO
())
||
CollectionUtil
.
isEmpty
(
createReqVO
.
getBatchApplyDetailsInfoVO
().
getOrderFeeDetailsVOList
()))
{
throw
exception
(
BATCH_ORDER_FEE_APPLY_INFO_NOT_EXISTS
);
}
for
(
BatchOrderFeeDetailsVO
batchOrderFeeDetailsVO
:
createReqVO
.
getBatchApplyDetailsInfoVO
().
getOrderFeeDetailsVOList
())
{
OrderApprovalTypeCheckEvent
approvalTypeCheckEvent
=
new
OrderApprovalTypeCheckEvent
(
batchOrderFeeDetailsVO
.
getOrderId
(),
null
,
expense_apply
.
getValue
(),
null
,
false
);
applicationContext
.
publishEvent
(
approvalTypeCheckEvent
);
if
(
approvalTypeCheckEvent
.
getResult
())
{
throw
exception
(
ORDER_IS_APPROVAL_IN_PROCESS
);
}
}
// 插入
BatchOrderFeeApplyDO
batchOrderFeeApply
=
BatchOrderFeeApplyConvert
.
INSTANCE
.
convert
(
createReqVO
);
batchOrderFeeApply
.
setDetails
(
JsonUtils
.
toJsonString
(
createReqVO
.
getBatchApplyDetailsInfoVO
()));
// 批量费用申请编号BFA+年份+月份+五位数;BFA240100001
String
no
=
this
.
generateNo
();
batchOrderFeeApply
.
setNo
(
no
);
batchOrderFeeApplyMapper
.
insert
(
batchOrderFeeApply
);
// 发起流程
String
formId
=
bpmCreateServiceFactory
.
createBmp
(
SecurityFrameworkUtils
.
getLoginUserId
(),
batchOrderFeeApply
.
getId
(),
WorkFlowEmus
.
BATCH_ORDER_FREE_APPLY
.
getKey
(),
batchOrderFeeApply
.
getNo
(),
createReqVO
.
getCopyUserId
());
batchOrderFeeApply
.
setFormId
(
formId
);
batchOrderFeeApplyMapper
.
updateById
(
batchOrderFeeApply
);
for
(
BatchOrderFeeDetailsVO
batchOrderFeeDetailsVO
:
createReqVO
.
getBatchApplyDetailsInfoVO
().
getOrderFeeDetailsVOList
())
{
List
<
ApplyInfoVO
>
list
=
new
ArrayList
<>();
for
(
OrderFeeApplicationCreateReqVO
orderFeeApplicationCreateReqVO
:
batchOrderFeeDetailsVO
.
getOrderFeeApplicationBaseVOList
())
{
DictDataRespDTO
feeDictDataFromCache
=
DictFrameworkUtils
.
getDictDataFromCache
(
DictTypeConstants
.
RECEIVABLE_FEE_TYPE
,
String
.
valueOf
(
orderFeeApplicationCreateReqVO
.
getFeeType
()));
DictDataRespDTO
payDictDataFromCache
=
DictFrameworkUtils
.
getDictDataFromCache
(
DictTypeConstants
.
PAYMENT_TYPE
,
String
.
valueOf
(
orderFeeApplicationCreateReqVO
.
getPayType
()));
CurrencyDO
currency
=
currencyService
.
getCurrency
(
orderFeeApplicationCreateReqVO
.
getApplicationFeeCurrency
());
String
value
=
"%s: 金额[%s%s], 付款类型[%s], 付款人[%s]"
;
ApplyInfoVO
applyInfoVO
=
new
ApplyInfoVO
();
applyInfoVO
.
setName
(
String
.
format
(
"编号[%s]的批量订单费用申请"
,
no
));
applyInfoVO
.
setNewValue
(
String
.
format
(
value
,
feeDictDataFromCache
.
getLabel
().
concat
(
"/"
).
concat
(
feeDictDataFromCache
.
getLabelEn
()),
orderFeeApplicationCreateReqVO
.
getApplicationFee
().
toString
(),
currency
.
getTitleZh
().
concat
(
"/"
).
concat
(
currency
.
getTitleEn
()),
payDictDataFromCache
.
getLabel
().
concat
(
"/"
).
concat
(
payDictDataFromCache
.
getLabelEn
()),
orderFeeApplicationCreateReqVO
.
getPayer
()
==
1
?
"发货人"
:
"收货人"
));
list
.
add
(
applyInfoVO
);
}
orderBusinessService
.
addOrderOperateLog
(
batchOrderFeeDetailsVO
.
getOrderId
(),
""
,
"批量提交费用申请"
,
list
);
orderService
.
updateStatus
(
batchOrderFeeDetailsVO
.
getOrderId
(),
null
,
null
,
null
,
null
,
null
,
OrderApprovalTypeResultEnum
.
expense_apply_batch_order_processing
.
getType
(),
OrderApprovalTypeResultEnum
.
expense_apply_batch_order_processing
.
getDesc
());
}
// TODO 这里是多订单进行的批量审批,没有将审批加入到订单审批业务中,后续看业务是否需要将订单细分审批任务
// 返回
return
batchOrderFeeApply
.
getId
();
}
@Override
public
void
updateBatchOrderFeeApply
(
BatchOrderFeeApplyUpdateReqVO
updateReqVO
)
{
// 校验存在
this
.
validateBatchOrderFeeApplyExists
(
updateReqVO
.
getId
());
// 更新
BatchOrderFeeApplyDO
updateObj
=
BatchOrderFeeApplyConvert
.
INSTANCE
.
convert
(
updateReqVO
);
batchOrderFeeApplyMapper
.
updateById
(
updateObj
);
}
private
static
final
String
RECEIPT_NEW_NUMBER
=
"batch:order:fee:apply"
;
@Override
public
void
deleteBatchOrderFeeApply
(
Long
id
)
{
// 校验存在
this
.
validateBatchOrderFeeApplyExists
(
id
);
// 删除
batchOrderFeeApplyMapper
.
deleteById
(
id
);
/**
* 批量费用申请编号BFA+年份+月份+五位数;BFA240100001
*/
private
String
generateNo
()
{
OrderNumberLogEvent
event
=
new
OrderNumberLogEvent
();
event
.
setType
(
BFA_NO
.
getType
());
event
.
setNumberKey
(
RECEIPT_NEW_NUMBER
);
applicationContext
.
publishEvent
(
event
);
String
no
=
CodeUtils
.
getOddReceiptNumbers
(
event
.
getNumber
());
// 更新批量订单费用申请编号最新缓存
// 待将最新编号持久化
event
.
setNewNumber
(
no
);
applicationContext
.
publishEvent
(
event
);
return
no
;
}
private
void
validateBatchOrderFeeApplyExists
(
Long
id
)
{
if
(
batchOrderFeeApplyMapper
.
selectById
(
id
)
==
null
)
{
@Override
public
BatchOrderFeeApplyBackVO
getBatchOrderFeeApply
(
Long
id
)
{
BatchOrderFeeApplyDO
batchOrderFeeApply
=
batchOrderFeeApplyMapper
.
selectById
(
id
);
if
(
Objects
.
isNull
(
batchOrderFeeApply
))
{
throw
exception
(
BATCH_ORDER_FEE_APPLY_NOT_EXISTS
);
}
}
@Override
public
BatchOrderFeeApplyDO
getBatchOrderFeeApply
(
Long
id
)
{
return
batchOrderFeeApplyMapper
.
selectById
(
id
);
BatchOrderFeeApplyBackVO
backVO
=
BatchOrderFeeApplyConvert
.
INSTANCE
.
convert
(
batchOrderFeeApply
);
if
(
StrUtils
.
isNotBlank
(
backVO
.
getDetails
()))
{
BatchApplyDetailsInfoVO
batchApplyDetailsInfoVO
=
JsonUtils
.
parseObject
(
batchOrderFeeApply
.
getDetails
(),
BatchApplyDetailsInfoVO
.
class
);
if
(
batchApplyDetailsInfoVO
!=
null
&&
CollectionUtil
.
isNotEmpty
(
batchApplyDetailsInfoVO
.
getOrderFeeDetailsVOList
()))
{
for
(
BatchOrderFeeDetailsVO
batchOrderFeeDetailsVO
:
batchApplyDetailsInfoVO
.
getOrderFeeDetailsVOList
())
{
OrderBackVO
orderBackVO
=
orderQueryService
.
getOrder
(
batchOrderFeeDetailsVO
.
getOrderId
());
batchOrderFeeDetailsVO
.
setOrderBackVO
(
orderBackVO
);
}
}
backVO
.
setBatchApplyDetailsInfoVO
(
batchApplyDetailsInfoVO
);
}
return
backVO
;
}
@Override
...
...
@@ -77,4 +177,106 @@ public class BatchOrderFeeApplyServiceImpl extends AbstractService<BatchOrderFee
public
List
<
BatchOrderFeeApplyDO
>
getBatchOrderFeeApplyList
(
BatchOrderFeeApplyQueryVO
query
)
{
return
batchOrderFeeApplyMapper
.
selectList
(
query
);
}
@Override
public
BatchOrderFeeApplyBackVO
getInfoByFormId
(
Long
formId
)
{
BatchOrderFeeApplyDO
batchOrderFeeApply
=
batchOrderFeeApplyMapper
.
selectOne
(
new
LambdaQueryWrapper
<
BatchOrderFeeApplyDO
>()
.
eq
(
BatchOrderFeeApplyDO:
:
getFormId
,
formId
).
orderByDesc
(
BatchOrderFeeApplyDO:
:
getId
).
last
(
"limit 1"
));
if
(
Objects
.
isNull
(
batchOrderFeeApply
))
{
throw
exception
(
BATCH_ORDER_FEE_APPLY_NOT_EXISTS
);
}
BatchOrderFeeApplyBackVO
backVO
=
BatchOrderFeeApplyConvert
.
INSTANCE
.
convert
(
batchOrderFeeApply
);
if
(
StrUtils
.
isNotBlank
(
backVO
.
getDetails
()))
{
BatchApplyDetailsInfoVO
batchApplyDetailsInfoVO
=
JsonUtils
.
parseObject
(
batchOrderFeeApply
.
getDetails
(),
BatchApplyDetailsInfoVO
.
class
);
if
(
batchApplyDetailsInfoVO
!=
null
&&
CollectionUtil
.
isNotEmpty
(
batchApplyDetailsInfoVO
.
getOrderFeeDetailsVOList
()))
{
for
(
BatchOrderFeeDetailsVO
batchOrderFeeDetailsVO
:
batchApplyDetailsInfoVO
.
getOrderFeeDetailsVOList
())
{
OrderBackVO
orderBackVO
=
orderQueryService
.
getOrder
(
batchOrderFeeDetailsVO
.
getOrderId
());
batchOrderFeeDetailsVO
.
setOrderBackVO
(
orderBackVO
);
}
}
backVO
.
setBatchApplyDetailsInfoVO
(
batchApplyDetailsInfoVO
);
}
return
backVO
;
}
@Override
public
List
<
OrderBackVO
>
getOrderListByIds
(
List
<
Long
>
orderIds
)
{
return
orderIds
.
stream
().
map
(
orderId
->
orderQueryService
.
getOrder
(
orderId
)).
collect
(
Collectors
.
toList
());
}
@Override
public
void
batchOrderFeeApplyCallback
(
String
id
,
Integer
result
)
{
if
(
result
==
1
)
{
return
;
}
BatchOrderFeeApplyDO
batchOrderFeeApply
=
batchOrderFeeApplyMapper
.
selectById
(
id
);
if
(
Objects
.
isNull
(
batchOrderFeeApply
))
{
throw
exception
(
BATCH_ORDER_FEE_APPLY_NOT_EXISTS
);
}
String
audit
=
String
.
valueOf
(
SecurityFrameworkUtils
.
getLoginUserId
());
Date
now
=
new
Date
();
batchOrderFeeApply
.
setAudit
(
audit
);
batchOrderFeeApply
.
setAuditTime
(
now
);
batchOrderFeeApply
.
setUpdater
(
audit
);
batchOrderFeeApply
.
setUpdateTime
(
now
);
if
(
result
==
3
||
result
==
4
)
{
batchOrderFeeApply
.
setState
(
result
);
batchOrderFeeApplyMapper
.
updateById
(
batchOrderFeeApply
);
BatchApplyDetailsInfoVO
batchApplyDetailsInfoVO
=
JsonUtils
.
parseObject
(
batchOrderFeeApply
.
getDetails
(),
BatchApplyDetailsInfoVO
.
class
);
if
(
batchApplyDetailsInfoVO
!=
null
&&
CollectionUtil
.
isNotEmpty
(
batchApplyDetailsInfoVO
.
getOrderFeeDetailsVOList
()))
{
for
(
BatchOrderFeeDetailsVO
batchOrderFeeDetailsVO
:
batchApplyDetailsInfoVO
.
getOrderFeeDetailsVOList
())
{
List
<
ApplyInfoVO
>
list
=
new
ArrayList
<>();
for
(
OrderFeeApplicationCreateReqVO
orderFeeApplicationCreateReqVO
:
batchOrderFeeDetailsVO
.
getOrderFeeApplicationBaseVOList
())
{
DictDataRespDTO
feeDictDataFromCache
=
DictFrameworkUtils
.
getDictDataFromCache
(
DictTypeConstants
.
RECEIVABLE_FEE_TYPE
,
String
.
valueOf
(
orderFeeApplicationCreateReqVO
.
getFeeType
()));
DictDataRespDTO
payDictDataFromCache
=
DictFrameworkUtils
.
getDictDataFromCache
(
DictTypeConstants
.
PAYMENT_TYPE
,
String
.
valueOf
(
orderFeeApplicationCreateReqVO
.
getPayType
()));
CurrencyDO
currency
=
currencyService
.
getCurrency
(
orderFeeApplicationCreateReqVO
.
getApplicationFeeCurrency
());
String
value
=
"%s: 金额[%s%s], 付款类型[%s], 付款人[%s]"
;
ApplyInfoVO
applyInfoVO
=
new
ApplyInfoVO
();
String
name
=
String
.
format
(
result
==
3
?
"编号[%s]的批量订单费用申请拒绝"
:
"编号[%s]的批量订单费用申请取消"
,
batchOrderFeeApply
.
getNo
());
applyInfoVO
.
setName
(
name
);
applyInfoVO
.
setNewValue
(
String
.
format
(
value
,
feeDictDataFromCache
.
getLabel
().
concat
(
"/"
).
concat
(
feeDictDataFromCache
.
getLabelEn
()),
orderFeeApplicationCreateReqVO
.
getApplicationFee
().
toString
(),
currency
.
getTitleZh
().
concat
(
"/"
).
concat
(
currency
.
getTitleEn
()),
payDictDataFromCache
.
getLabel
().
concat
(
"/"
).
concat
(
payDictDataFromCache
.
getLabelEn
()),
orderFeeApplicationCreateReqVO
.
getPayer
()
==
1
?
"发货人"
:
"收货人"
));
list
.
add
(
applyInfoVO
);
}
orderBusinessService
.
addOrderOperateLog
(
batchOrderFeeDetailsVO
.
getOrderId
(),
""
,
"批量提交费用申请"
,
list
);
orderService
.
updateStatus
(
batchOrderFeeDetailsVO
.
getOrderId
(),
null
,
null
,
null
,
null
,
null
,
OrderApprovalTypeResultEnum
.
expense_apply_batch_order_processing
.
getType
(),
OrderApprovalTypeResultEnum
.
expense_apply_batch_order_processing
.
getDesc
());
}
}
return
;
}
if
(
StrUtils
.
isNotBlank
(
batchOrderFeeApply
.
getDetails
()))
{
BatchApplyDetailsInfoVO
batchApplyDetailsInfoVO
=
JsonUtils
.
parseObject
(
batchOrderFeeApply
.
getDetails
(),
BatchApplyDetailsInfoVO
.
class
);
if
(
Objects
.
isNull
(
batchApplyDetailsInfoVO
)
||
CollectionUtil
.
isEmpty
(
batchApplyDetailsInfoVO
.
getOrderFeeDetailsVOList
()))
{
throw
exception
(
BATCH_ORDER_FEE_APPLY_INFO_NOT_EXISTS
);
}
for
(
BatchOrderFeeDetailsVO
batchOrderFeeDetailsVO
:
batchApplyDetailsInfoVO
.
getOrderFeeDetailsVOList
())
{
// TODO 保存订单费用申请信息
orderFeeApplicationService
.
saveFeeBatchApplication
(
batchOrderFeeDetailsVO
.
getOrderId
(),
batchOrderFeeDetailsVO
.
getOrderFeeApplicationBaseVOList
(),
batchOrderFeeApply
.
getCreator
(),
audit
,
now
,
batchOrderFeeApply
.
getFormId
()
);
List
<
ApplyInfoVO
>
list
=
new
ArrayList
<>();
for
(
OrderFeeApplicationCreateReqVO
orderFeeApplicationCreateReqVO
:
batchOrderFeeDetailsVO
.
getOrderFeeApplicationBaseVOList
())
{
DictDataRespDTO
feeDictDataFromCache
=
DictFrameworkUtils
.
getDictDataFromCache
(
DictTypeConstants
.
RECEIVABLE_FEE_TYPE
,
String
.
valueOf
(
orderFeeApplicationCreateReqVO
.
getFeeType
()));
DictDataRespDTO
payDictDataFromCache
=
DictFrameworkUtils
.
getDictDataFromCache
(
DictTypeConstants
.
PAYMENT_TYPE
,
String
.
valueOf
(
orderFeeApplicationCreateReqVO
.
getPayType
()));
CurrencyDO
currency
=
currencyService
.
getCurrency
(
orderFeeApplicationCreateReqVO
.
getApplicationFeeCurrency
());
String
value
=
"%s: 金额[%s%s], 付款类型[%s], 付款人[%s]"
;
ApplyInfoVO
applyInfoVO
=
new
ApplyInfoVO
();
applyInfoVO
.
setName
(
String
.
format
(
"编号[%s]的批量订单费用申请通过"
,
batchOrderFeeApply
.
getNo
()));
applyInfoVO
.
setNewValue
(
String
.
format
(
value
,
feeDictDataFromCache
.
getLabel
().
concat
(
"/"
).
concat
(
feeDictDataFromCache
.
getLabelEn
()),
orderFeeApplicationCreateReqVO
.
getApplicationFee
().
toString
(),
currency
.
getTitleZh
().
concat
(
"/"
).
concat
(
currency
.
getTitleEn
()),
payDictDataFromCache
.
getLabel
().
concat
(
"/"
).
concat
(
payDictDataFromCache
.
getLabelEn
()),
orderFeeApplicationCreateReqVO
.
getPayer
()
==
1
?
"发货人"
:
"收货人"
));
list
.
add
(
applyInfoVO
);
}
orderBusinessService
.
addOrderOperateLog
(
batchOrderFeeDetailsVO
.
getOrderId
(),
""
,
"批量提交费用申请"
,
list
);
orderService
.
updateStatus
(
batchOrderFeeDetailsVO
.
getOrderId
(),
null
,
null
,
null
,
null
,
null
,
OrderApprovalTypeResultEnum
.
expense_apply_batch_order_processing
.
getType
(),
OrderApprovalTypeResultEnum
.
expense_apply_batch_order_processing
.
getDesc
());
}
}
}
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/order/OrderFeeApplicationService.java
View file @
75103c48
...
...
@@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.order.vo.orderFeeApplication.*;
import
javax.validation.Valid
;
import
java.util.Collection
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -100,4 +101,15 @@ public interface OrderFeeApplicationService extends IService<OrderFeeApplication
void
cancelFeeApplication
(
OrderFeeApplicationUpdateReqVO
orderFeeApplicationUpdateReqVO
);
OrderFeeApplicationBackVO
getApprovalFeeApplication
(
Long
id
);
/**
* @param orderId 订单ID
* @param orderFeeApplicationBaseVOList 订单费用申请详情列表
* @param audit 审批人
* @param now 审批时间
* @param formId 流程实例id
*/
void
saveFeeBatchApplication
(
Long
orderId
,
List
<
OrderFeeApplicationCreateReqVO
>
orderFeeApplicationBaseVOList
,
String
creator
,
String
audit
,
Date
now
,
String
formId
);
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/order/impl/OrderFeeApplicationServiceImpl.java
View file @
75103c48
...
...
@@ -51,10 +51,7 @@ import org.springframework.validation.annotation.Validated;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
common
.
exception
.
util
.
ServiceExceptionUtil
.
exception
;
...
...
@@ -94,7 +91,6 @@ public class OrderFeeApplicationServiceImpl extends AbstractService<OrderFeeAppl
@Resource
private
AdminUserService
adminUserService
;
@Resource
private
CurrencyService
currencyService
;
@Resource
...
...
@@ -716,4 +712,53 @@ public class OrderFeeApplicationServiceImpl extends AbstractService<OrderFeeAppl
}
return
convert
;
}
@Override
public
void
saveFeeBatchApplication
(
Long
orderId
,
List
<
OrderFeeApplicationCreateReqVO
>
orderFeeApplicationBaseVOList
,
String
creator
,
String
audit
,
Date
now
,
String
formId
)
{
OrderApprovalTypeCheckEvent
approvalTypeCheckEvent
=
new
OrderApprovalTypeCheckEvent
(
orderId
,
null
,
expense_apply
.
getValue
(),
null
,
false
);
applicationContext
.
publishEvent
(
approvalTypeCheckEvent
);
if
(
approvalTypeCheckEvent
.
getResult
())
{
throw
exception
(
ORDER_IS_APPROVAL_IN_PROCESS
);
}
//查询订单信息
OrderDO
orderDO
=
orderService
.
getById
(
orderId
);
List
<
FeeDto
>
feeDtos
=
new
ArrayList
<>();
for
(
OrderFeeApplicationCreateReqVO
orderFeeApplicationBaseVO
:
orderFeeApplicationBaseVOList
)
{
OrderFeeApplicationDO
feeApplicationDO
=
OrderFeeApplicationConvert
.
INSTANCE
.
convert
(
orderFeeApplicationBaseVO
);
feeApplicationDO
.
setCreateTime
(
now
);
feeApplicationDO
.
setCreator
(
creator
);
feeApplicationDO
.
setUpdater
(
audit
);
feeApplicationDO
.
setUpdateTime
(
now
);
feeApplicationDO
.
setBpmProcessId
(
formId
);
//生成应收
DictDataRespDTO
dictDto
=
DictFrameworkUtils
.
getDictDataFromCache
(
"receivable_fee_type"
,
String
.
valueOf
(
feeApplicationDO
.
getFeeType
()));
ReceivableCreateReqVO
receivableCreateReqVO
=
new
ReceivableCreateReqVO
();
receivableCreateReqVO
.
setTitleZh
(
dictDto
.
getLabel
());
receivableCreateReqVO
.
setTitleEn
(
dictDto
.
getLabelEn
());
receivableCreateReqVO
.
setOrderId
(
feeApplicationDO
.
getOrderId
());
receivableCreateReqVO
.
setOrderNo
(
orderDO
.
getOrderNo
());
receivableCreateReqVO
.
setTotalAmount
(
feeApplicationDO
.
getApplicationFee
());
receivableCreateReqVO
.
setUnitPrice
(
feeApplicationDO
.
getApplicationFee
());
receivableCreateReqVO
.
setCollectionType
(
feeApplicationDO
.
getPayType
());
receivableCreateReqVO
.
setCurrencyId
(
Long
.
valueOf
(
feeApplicationDO
.
getApplicationFeeCurrency
()));
receivableCreateReqVO
.
setFeeType
(
feeApplicationDO
.
getFeeType
());
receivableCreateReqVO
.
setIsPayAdvance
(
feeApplicationDO
.
getPayType
()
==
4
?
0
:
1
);
receivableCreateReqVO
.
setState
(
feeApplicationDO
.
getReceiveFlag
());
receivableCreateReqVO
.
setPaymentUser
(
String
.
valueOf
(
Objects
.
nonNull
(
feeApplicationDO
.
getPayer
())
?
feeApplicationDO
.
getPayer
():
(
getPayer
(
order
,
feeApplicationDO
))));
//6待修改
receivableCreateReqVO
.
setFeeSource
(
2
);
receivableCreateReqVO
.
setAuthor
(
feeApplicationDO
.
getApplicationAuthor
());
receivableCreateReqVO
.
setRemark
(
feeApplicationDO
.
getRemarks
());
Long
receivableId
=
receivableService
.
createReceivable
(
receivableCreateReqVO
);
feeApplicationDO
.
setReceivableId
(
receivableId
.
intValue
());
feeApplicationDO
.
setStatus
(
2
);
feeApplicationMapper
.
insert
(
feeApplicationDO
);
FeeDto
feeDto
=
new
FeeDto
();
feeDto
.
setFeeType
(
feeApplicationDO
.
getFeeType
());
feeDto
.
setAmount
(
feeApplicationDO
.
getApplicationFee
());
feeDto
.
setCurrencyId
(
feeApplicationDO
.
getApplicationFeeCurrency
());
feeDtos
.
add
(
feeDto
);
}
orderService
.
addOrderOtherFee
(
orderId
,
feeDtos
);
}
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/vo/batchOrderFeeApply/BatchOrderFeeApplyBackVO.java
View file @
75103c48
...
...
@@ -44,5 +44,8 @@ public class BatchOrderFeeApplyBackVO {
@DateTimeFormat
(
pattern
=
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
)
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
true
)
private
Date
createTime
;
@ApiModelProperty
(
"批量申请详情信息"
)
private
BatchApplyDetailsInfoVO
batchApplyDetailsInfoVO
;
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/vo/batchOrderFeeApply/BatchOrderFeeApplyBaseVO.java
View file @
75103c48
...
...
@@ -25,4 +25,7 @@ public class BatchOrderFeeApplyBaseVO {
@ApiModelProperty
(
value
=
"状态:0 已取消 1 申请中 2 已通过 3 已驳回"
)
private
Integer
state
;
@ApiModelProperty
(
"批量申请详情信息"
)
private
BatchApplyDetailsInfoVO
batchApplyDetailsInfoVO
;
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/vo/batchOrderFeeApply/BatchOrderFeeApplyCreateReqVO.java
View file @
75103c48
...
...
@@ -9,8 +9,6 @@ import io.swagger.annotations.*;
@ApiModel
(
"管理后台 - 批量费用申请创建 Request VO"
)
public
class
BatchOrderFeeApplyCreateReqVO
extends
BatchOrderFeeApplyBaseVO
{
@ApiModelProperty
(
"批量申请详情信息"
)
private
BatchApplyDetailsInfoVO
batchApplyDetailsInfoVO
;
@ApiModelProperty
(
value
=
"抄送人userId"
)
String
[]
copyUserId
;
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/vo/batchOrderFeeApply/BatchOrderFeeDetailsVO.java
View file @
75103c48
package
cn
.
iocoder
.
yudao
.
module
.
order
.
vo
.
batchOrderFeeApply
;
import
cn.iocoder.yudao.module.order.vo.orderFeeApplication.OrderFeeApplicationBaseVO
;
import
cn.iocoder.yudao.module.order.vo.order.OrderBackVO
;
import
cn.iocoder.yudao.module.order.vo.orderFeeApplication.OrderFeeApplicationCreateReqVO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -14,6 +15,9 @@ public class BatchOrderFeeDetailsVO {
@ApiModelProperty
(
"订单ID"
)
private
Long
orderId
;
@ApiModelProperty
(
"订单详情"
)
private
OrderBackVO
orderBackVO
;
@ApiModelProperty
(
"订单费用申请详情(数据格式同步参考订单费用申请功能页面)"
)
private
List
<
OrderFeeApplication
Base
VO
>
orderFeeApplicationBaseVOList
;
private
List
<
OrderFeeApplication
CreateReq
VO
>
orderFeeApplicationBaseVOList
;
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/vo/orderFeeApplication/OrderFeeApplicationBackVO.java
View file @
75103c48
...
...
@@ -96,6 +96,10 @@ public class OrderFeeApplicationBackVO {
@ApiModelProperty
(
value
=
"审批流程编号"
)
private
String
bpmProcessId
;
@ExcelProperty
(
"流程类型:1 费用申请 2 批量订单费用申请"
)
@ApiModelProperty
(
value
=
"流程类型:1 费用申请 2 批量订单费用申请"
)
private
String
bpmType
;
@ExcelProperty
(
"批量费用审核时业务主键ID"
)
@ApiModelProperty
(
value
=
"批量费用审核时业务主键ID"
)
private
String
batchBpmBusinessId
;
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/vo/orderFeeApplication/OrderFeeApplicationBaseVO.java
View file @
75103c48
package
cn
.
iocoder
.
yudao
.
module
.
order
.
vo
.
orderFeeApplication
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.*
;
import
java.math.BigDecimal
;
...
...
@@ -73,4 +74,7 @@ public class OrderFeeApplicationBaseVO {
*/
@ApiModelProperty
(
value
=
"流程ID"
)
private
String
bpmProcessId
;
@ApiModelProperty
(
value
=
"流程类型:1 费用申请 2 批量订单费用申请"
)
private
String
bpmType
;
}
yudao-module-order/yudao-module-order-rest/src/main/java/cn/iocoder/yudao/module/order/controller/admin/batchOrderFeeApply/BatchOrderFeeApplyController.java
View file @
75103c48
package
cn
.
iocoder
.
yudao
.
module
.
order
.
controller
.
admin
.
batchOrderFeeApply
;
import
cn.iocoder.yudao.framework.mybatis.core.vo.PageVO
;
import
cn.iocoder.yudao.module.order.vo.order.OrderBackVO
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
org.springframework.validation.annotation.Validated
;
...
...
@@ -38,16 +39,30 @@ public class BatchOrderFeeApplyController {
}
@
GetMapping
(
"/get
"
)
@ApiOperation
(
"
获得批量费用申请
"
)
@ApiImplicitParam
(
name
=
"
id"
,
value
=
"编号"
,
required
=
true
,
example
=
"1024"
,
dataTypeClass
=
Long
.
class
)
@
PostMapping
(
"/getOrderListByIds
"
)
@ApiOperation
(
"
批量获取需要申请费用的订单详情
"
)
@ApiImplicitParam
(
name
=
"
orderIds"
,
value
=
"订单ids"
,
required
=
true
,
example
=
"1024,2048,3072,4096"
,
dataTypeClass
=
List
.
class
)
@PreAuthorize
(
"@ss.hasPermission('ecw:batch-order-fee-apply:query')"
)
public
CommonResult
<
BatchOrderFeeApplyBackVO
>
getBatchOrderFeeApply
(
@RequestParam
(
"id"
)
Long
id
)
{
BatchOrderFeeApplyDO
batchOrderFeeApply
=
batchOrderFeeApplyService
.
getBatchOrderFeeApply
(
id
);
return
success
(
BatchOrderFeeApplyConvert
.
INSTANCE
.
convert
(
batchOrderFeeApply
));
public
CommonResult
<
List
<
OrderBackVO
>>
getOrderListByIds
(
List
<
Long
>
orderIds
)
{
return
success
(
batchOrderFeeApplyService
.
getOrderListByIds
(
orderIds
));
}
@GetMapping
(
"/info"
)
@ApiOperation
(
"获得批量费用申请详情"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"编号"
,
required
=
true
,
example
=
"1024"
,
dataTypeClass
=
Long
.
class
)
@PreAuthorize
(
"@ss.hasPermission('ecw:batch-order-fee-apply:query')"
)
public
CommonResult
<
BatchOrderFeeApplyBackVO
>
info
(
@RequestParam
(
"id"
)
Long
id
)
{
return
success
(
batchOrderFeeApplyService
.
getBatchOrderFeeApply
(
id
));
}
@GetMapping
(
"/getInfoByFormId"
)
@ApiOperation
(
"根据流程实例id获得批量费用申请详情"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"编号"
,
required
=
true
,
example
=
"1024"
,
dataTypeClass
=
Long
.
class
)
@PreAuthorize
(
"@ss.hasPermission('ecw:batch-order-fee-apply:query')"
)
public
CommonResult
<
BatchOrderFeeApplyBackVO
>
getInfoByFormId
(
@RequestParam
(
"formId"
)
Long
formId
)
{
return
success
(
batchOrderFeeApplyService
.
getInfoByFormId
(
formId
));
}
@GetMapping
(
"/page"
)
@ApiOperation
(
"获得批量费用申请分页"
)
...
...
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