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
c7fbb7d1
Commit
c7fbb7d1
authored
Nov 06, 2024
by
332784038@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
重构费用申请审批和费用批量申请审批的业务逻辑结构
parent
e94db012
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
115 additions
and
94 deletions
+115
-94
OrderApprovalTypeEnum.java
...coder/yudao/module/order/enums/OrderApprovalTypeEnum.java
+1
-0
OrderApprovalTypeResultEnum.java
...yudao/module/order/enums/OrderApprovalTypeResultEnum.java
+5
-0
OrderFeeApplicationServiceImpl.java
...er/service/order/impl/OrderFeeApplicationServiceImpl.java
+109
-94
No files found.
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/enums/OrderApprovalTypeEnum.java
View file @
c7fbb7d1
...
...
@@ -40,6 +40,7 @@ public enum OrderApprovalTypeEnum {
DISCOUNT_APPLY_BATCH
(
31
,
"批量优惠申请"
,
Arrays
.
asList
(
1
,
2
,
6
,
11
,
14
,
23
,
28
,
32
)),
// 拆单申请/合单申请/订单修改/退仓/撤销拆单审批/优惠申请(当前商品有在途申请)/批量管理折扣申请(当前商品有在途申请)/管理优惠(当前商品有在途申请)
ADMIN_DISCOUNT_BATCH
(
32
,
"批量管理折扣申请"
,
Arrays
.
asList
(
1
,
2
,
6
,
11
,
14
,
23
,
28
,
31
)),
// 拆单申请/合单申请/订单修改/退仓/撤销拆单审批/优惠申请(当前商品有在途申请)/批量优惠申请(当前商品有在途申请)/管理优惠(当前商品有在途申请)
expense_apply_BATCH
(
41
,
"批量费用申请"
,
Arrays
.
asList
(
6
,
11
,
28
)),
// 拆单申请/合单申请/撤销拆单审批
//分拣
sorting
(
50
,
"分拣审批"
,
Arrays
.
asList
(
6
,
11
,
13
,
14
,
22
,
23
,
28
)),
// 自编号全部申请互斥,跟原本一致,不修改, 自编号下订单除拆单申请/合单申请/调仓申请/订单修改/入仓申请/退仓申请外,其他申请不受限制,允许封柜反审批
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/enums/OrderApprovalTypeResultEnum.java
View file @
c7fbb7d1
...
...
@@ -153,6 +153,11 @@ public enum OrderApprovalTypeResultEnum implements IntArrayValuable {
admin_discount_batch_reject
(
32
,
3
,
"admin.discount.batch.reject"
),
admin_discount_batch_cancel
(
32
,
4
,
"admin.discount.batch.cancel"
),
//批量费用申请
expense_apply_batch_processing
(
41
,
1
,
"fee.application.processing"
),
expense_apply_batch_pass
(
41
,
2
,
"fee.application.pass"
),
expense_apply_batch_reject
(
41
,
3
,
"fee.application.reject"
),
expense_apply_batch_cancel
(
41
,
4
,
"fee.application.cancel"
),
//分拣
sorting_processing
(
50
,
1
,
"shipment.sorting.processing"
),
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/order/impl/OrderFeeApplicationServiceImpl.java
View file @
c7fbb7d1
...
...
@@ -38,8 +38,11 @@ import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import
cn.iocoder.yudao.module.wealth.dal.dataobject.receivable.ReceivableDO
;
import
cn.iocoder.yudao.module.wealth.service.receivable.ReceivableService
;
import
cn.iocoder.yudao.module.wealth.vo.receivable.ReceivableCreateReqVO
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
...
...
@@ -55,8 +58,7 @@ import java.util.Objects;
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
.
ORDER_UPDATE
;
import
static
cn
.
iocoder
.
yudao
.
module
.
order
.
enums
.
OrderApprovalTypeEnum
.
expense_apply
;
import
static
cn
.
iocoder
.
yudao
.
module
.
order
.
enums
.
OrderApprovalTypeEnum
.*;
/**
* 订单费用申请 Service 实现类
...
...
@@ -182,19 +184,18 @@ public class OrderFeeApplicationServiceImpl extends AbstractService<OrderFeeAppl
orderApprovalDO
.
setFollowUpSalesmanId
(
String
.
valueOf
(
SecurityFrameworkUtils
.
getLoginUserId
()));
orderApprovalDO
.
setOrderId
(
createReqVO
.
getOrderId
());
//批量费用申请
orderApprovalDO
.
setType
(
expense_apply
.
getValue
());
orderApprovalDO
.
setType
(
expense_apply
_BATCH
.
getValue
());
orderApprovalDO
.
setStatus
(
ApprovalResultStatusEnum
.
processing
.
getValue
());
Long
bpmProcessId
=
orderApprovalService
.
applyAndCreate
(
orderApprovalDO
,
WorkFlowEmus
.
ORDER_BATCH_FREE_APPLY
,
createReqVO
.
getCopyUserId
());
//创建审批流
OrderDO
orderDO
=
orderService
.
selectOne
(
OrderDO:
:
getOrderId
,
createReqVO
.
getOrderId
());
orderService
.
updateStatus
(
orderDO
.
getOrderId
(),
null
,
null
,
null
,
null
,
null
,
OrderApprovalTypeResultEnum
.
expense_apply_
processing
.
getType
(),
OrderApprovalTypeResultEnum
.
expense_apply
_processing
.
getDesc
());
orderService
.
updateStatus
(
orderDO
.
getOrderId
(),
null
,
null
,
null
,
null
,
null
,
OrderApprovalTypeResultEnum
.
expense_apply_
batch_processing
.
getType
(),
OrderApprovalTypeResultEnum
.
expense_apply_batch
_processing
.
getDesc
());
//更新费用列表对应的流程申请ID
for
(
OrderFeeApplicationDO
feeApplication
:
batchFeeList
)
{
feeApplication
.
setBatchBpmBusinessId
(
String
.
valueOf
(
bpmProcessId
));
feeApplication
.
setBpmProcessId
(
String
.
valueOf
(
bpmProcessId
));
feeApplication
.
setStatus
(
ApprovalResultStatusEnum
.
processing
.
getValue
());
feeApplicationMapper
.
updateById
(
feeApplication
);
}
...
...
@@ -216,19 +217,19 @@ public class OrderFeeApplicationServiceImpl extends AbstractService<OrderFeeAppl
}
// 更新
OrderFeeApplicationDO
updateObj
=
OrderFeeApplicationConvert
.
INSTANCE
.
convert
(
updateReqVO
);
Long
userId
=
SecurityFrameworkUtils
.
getLoginUserId
();
//创建审批单,发起流程
OrderApprovalDO
orderApprovalDO
=
new
OrderApprovalDO
();
orderApprovalDO
.
setFollowUpSalesmanId
(
String
.
valueOf
(
SecurityFrameworkUtils
.
getLoginUserId
()));
orderApprovalDO
.
setOrderId
(
updateReqVO
.
getOrderId
());
//
批量
费用申请
//费用申请
orderApprovalDO
.
setType
(
expense_apply
.
getValue
());
orderApprovalDO
.
setStatus
(
ApprovalResultStatusEnum
.
processing
.
getValue
());
Long
bpmProcessId
=
orderApprovalService
.
applyAndCreate
(
orderApprovalDO
,
WorkFlowEmus
.
ORDER_BATCH_FREE_APPLY
,
updateReqVO
.
getCopyUserId
());
orderApprovalDO
.
setDetails
(
JSONObject
.
toJSONString
(
updateObj
));
Long
bpmProcessId
=
orderApprovalService
.
applyAndCreate
(
orderApprovalDO
,
WorkFlowEmus
.
ORDER_FREE_APPLY
,
updateReqVO
.
getCopyUserId
());
Integer
auditType
=
OrderApprovalTypeResultEnum
.
expense_apply_processing
.
getType
();
orderService
.
updateStatus
(
orderDO
.
getOrderId
(),
null
,
null
,
null
,
null
,
null
,
auditType
,
OrderApprovalTypeResultEnum
.
expense_apply_processing
.
getDesc
());
updateObj
.
setBpmProcessId
(
String
.
valueOf
(
bpmProcessId
));
feeApplicationMapper
.
updateById
(
updateObj
);
orderFeeApplicationDOOld
.
setBpmProcessId
(
String
.
valueOf
(
bpmProcessId
));
feeApplicationMapper
.
updateById
(
orderFeeApplicationDOOld
);
DictDataRespDTO
dictDataFromCacheOld
=
DictFrameworkUtils
.
getDictDataFromCache
(
DictTypeConstants
.
RECEIVABLE_FEE_TYPE
,
String
.
valueOf
(
orderFeeApplicationDOOld
.
getFeeType
()));
DictDataRespDTO
dictDataFromCache
=
DictFrameworkUtils
.
getDictDataFromCache
(
DictTypeConstants
.
RECEIVABLE_FEE_TYPE
,
String
.
valueOf
(
updateReqVO
.
getFeeType
()));
CurrencyDO
currency
=
currencyService
.
getCurrency
(
updateReqVO
.
getApplicationFeeCurrency
());
...
...
@@ -261,7 +262,7 @@ public class OrderFeeApplicationServiceImpl extends AbstractService<OrderFeeAppl
}
// 当费用金额为0时,可以不经审批直接删除
// 判断金额是否为0
if
(
orderFeeApplicationDO
.
getApplicationFee
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
){
if
(
orderFeeApplicationDO
.
getApplicationFee
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
throw
exception
(
FEE_APPLICATION_NOT_IS_ZERO
);
}
// 删除可能的应收单
...
...
@@ -269,7 +270,7 @@ public class OrderFeeApplicationServiceImpl extends AbstractService<OrderFeeAppl
orderFeeApplicationDO
.
getReceivableId
()
>
0
)
{
long
idTemp
=
(
long
)
orderFeeApplicationDO
.
getReceivableId
();
ReceivableDO
rDo
=
receivableService
.
getReceivable
(
idTemp
);
if
(
Objects
.
nonNull
(
rDo
))
{
if
(
Objects
.
nonNull
(
rDo
))
{
receivableService
.
removeById
(
rDo
.
getId
());
}
}
...
...
@@ -323,8 +324,14 @@ public class OrderFeeApplicationServiceImpl extends AbstractService<OrderFeeAppl
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateFeeApproveResult
(
String
id
,
int
result
)
{
OrderFeeApplicationDO
orderFeeApplicationDO
=
feeApplicationMapper
.
selectById
(
id
);
OrderApprovalDO
orderApprovalDO
=
orderApprovalService
.
getApproval
(
Long
.
parseLong
(
id
));
if
(
Objects
.
isNull
(
orderApprovalDO
)){
throw
exception
(
ORDER_APPROVAL_INFO_NOT_FIND
);
}
orderApprovalDO
.
setStatus
(
result
);
orderApprovalService
.
updateById
(
orderApprovalDO
);
// 这里已经将修改后的内容更新到原数据中去了
OrderFeeApplicationDO
orderFeeApplicationDO
=
JSONObject
.
parseObject
(
orderApprovalDO
.
getDetails
(),
OrderFeeApplicationDO
.
class
);
if
(
orderFeeApplicationDO
!=
null
)
{
orderFeeApplicationDO
.
setStatus
(
result
);
feeApplicationMapper
.
updateById
(
orderFeeApplicationDO
);
...
...
@@ -423,7 +430,9 @@ public class OrderFeeApplicationServiceImpl extends AbstractService<OrderFeeAppl
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateFeeApproveBatchResult
(
String
id
,
int
result
)
{
OrderApprovalDO
orderApprovalDO
=
orderApprovalService
.
getApproval
(
Long
.
parseLong
(
id
));
if
(
orderApprovalDO
!=
null
)
{
if
(
Objects
.
isNull
(
orderApprovalDO
)){
throw
exception
(
ORDER_APPROVAL_INFO_NOT_FIND
);
}
orderApprovalDO
.
setStatus
(
result
);
orderApprovalService
.
updateById
(
orderApprovalDO
);
if
(
result
==
ApprovalResultStatusEnum
.
pass
.
getValue
())
{
...
...
@@ -509,7 +518,6 @@ public class OrderFeeApplicationServiceImpl extends AbstractService<OrderFeeAppl
orderService
.
updateStatus
(
orderApprovalDO
.
getOrderId
(),
null
,
null
,
null
,
null
,
null
,
0
,
OrderApprovalTypeResultEnum
.
expense_apply_cancel
.
getDesc
());
}
}
}
@Override
public
List
<
OrderFeeApplicationDO
>
getFeeApplicationListByOrderId
(
Long
orderId
)
{
...
...
@@ -526,6 +534,13 @@ public class OrderFeeApplicationServiceImpl extends AbstractService<OrderFeeAppl
}
else
{
item
.
setReceiveFlag
(
0
);
}
if
(
item
.
getStatus
()
==
1
&&
StringUtils
.
isNotBlank
(
item
.
getBpmProcessId
())){
OrderApprovalDO
approvalDO
=
orderApprovalService
.
getApproval
(
Long
.
valueOf
(
item
.
getBpmProcessId
()));
if
(
Objects
.
nonNull
(
approvalDO
)
&&
Objects
.
nonNull
(
approvalDO
.
getDetails
())){
OrderFeeApplicationDO
feeApplicationDO
=
JSONObject
.
parseObject
(
approvalDO
.
getDetails
(),
OrderFeeApplicationDO
.
class
);
BeanUtils
.
copyProperties
(
feeApplicationDO
,
item
);
}
}
});
return
feeApplicationList
;
}
...
...
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