Commit c7fbb7d1 authored by 332784038@qq.com's avatar 332784038@qq.com

重构费用申请审批和费用批量申请审批的业务逻辑结构

parent e94db012
......@@ -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)), // 自编号全部申请互斥,跟原本一致,不修改, 自编号下订单除拆单申请/合单申请/调仓申请/订单修改/入仓申请/退仓申请外,其他申请不受限制,允许封柜反审批
......
......@@ -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"),
......
......@@ -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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment