|
|
@@ -27,6 +27,9 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.trade.purchase.order.enums.OrderTypeEnum;
|
|
|
+import io.seata.core.exception.TransactionException;
|
|
|
+import io.seata.core.model.GlobalStatus;
|
|
|
+import io.seata.core.model.TransactionManager;
|
|
|
import io.seata.spring.annotation.GlobalTransactional;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
@@ -5963,32 +5966,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
public R savePlaceOrderMall(Order order) {
|
|
|
// 校验单号重复-新增
|
|
|
- if (order.getId() == null && StringUtils.isNotBlank(order.getOrderNo())) {
|
|
|
+ if (order.getId() == null && StringUtils.isNotBlank(order.getSysNo())) {
|
|
|
LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
orderLambdaQueryWrapper
|
|
|
- .eq(Order::getOrderNo, order.getOrderNo())
|
|
|
+ .eq(Order::getSysNo, order.getSysNo())
|
|
|
.eq(Order::getTradeType, order.getTradeType())
|
|
|
.eq(Order::getBillType, order.getBillType())
|
|
|
.eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Order::getIsDeleted, 0);
|
|
|
Integer count = baseMapper.selectCount(orderLambdaQueryWrapper);
|
|
|
if (count != null && count > 0) {
|
|
|
- throw new SecurityException("合同号:" + order.getOrderNo() + "已存在,禁止重复添加");
|
|
|
- }
|
|
|
- }
|
|
|
- // 校验单号重复-编辑
|
|
|
- else {
|
|
|
- LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- orderLambdaQueryWrapper
|
|
|
- .ne(Order::getId, order.getId())
|
|
|
- .eq(Order::getOrderNo, order.getOrderNo())
|
|
|
- .eq(Order::getTradeType, order.getTradeType())
|
|
|
- .eq(Order::getBillType, order.getBillType())
|
|
|
- .eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Order::getIsDeleted, 0);
|
|
|
- Integer count = baseMapper.selectCount(orderLambdaQueryWrapper);
|
|
|
- if (count != null && count > 0) {
|
|
|
- throw new SecurityException("合同号:" + order.getOrderNo() + "已存在,禁止重复添加");
|
|
|
+ throw new SecurityException("合同号:" + order.getSysNo() + "已存在,禁止重复添加");
|
|
|
}
|
|
|
}
|
|
|
Date date = new Date();
|
|
|
@@ -6002,15 +5990,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
return R.fail(500, "生成系统编号失败");
|
|
|
}
|
|
|
order.setSysNo((String) billNo.getData());
|
|
|
- R clientBillNo = serialClient.getBillNo(order.getBillType(), order.getTradeType(), order.getBillType());
|
|
|
- if (!clientBillNo.isSuccess()) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return R.fail(500, "生成订单编号失败");
|
|
|
- }
|
|
|
- order.setOrderNo((String) clientBillNo.getData());
|
|
|
+ order.setOrderNo((String) billNo.getData());
|
|
|
// 进口的orgOrderNo 存的是采购订单号 出口国内存的是本身的订单号码
|
|
|
if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())) {
|
|
|
- order.setOrgOrderNo((String) clientBillNo.getData());
|
|
|
+ order.setOrgOrderNo((String) billNo.getData());
|
|
|
}
|
|
|
|
|
|
order.setTenantId(SecureUtil.getTenantId());
|
|
|
@@ -6026,27 +6009,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
baseMapper.insert(order);
|
|
|
} else {
|
|
|
- LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- orderLambdaQueryWrapper
|
|
|
- .eq(Order::getId, order.getId())
|
|
|
- .eq(Order::getCorpId, order.getCorpId())
|
|
|
- .eq(Order::getTradeType, order.getTradeType())
|
|
|
- .eq(Order::getBillType, order.getBillType())
|
|
|
- .eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Order::getIsDeleted, 0);
|
|
|
- Integer count = baseMapper.selectCount(orderLambdaQueryWrapper);
|
|
|
- if (count <= 0) {
|
|
|
- R clientBillNo = serialClient.getBillNo(order.getBillType(), order.getTradeType(), order.getBillType());
|
|
|
- if (!clientBillNo.isSuccess()) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return R.fail(500, "生成订单编号失败");
|
|
|
- }
|
|
|
- order.setOrderNo((String) clientBillNo.getData());
|
|
|
- // 进口的orgOrderNo 存的是采购订单号 出口国内存的是本身的订单号码
|
|
|
- if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())) {
|
|
|
- order.setOrgOrderNo((String) clientBillNo.getData());
|
|
|
- }
|
|
|
- }
|
|
|
order.setTenantId(SecureUtil.getTenantId());
|
|
|
order.setUpdateTime(date);
|
|
|
order.setUpdateUser(SecureUtil.getUserId());
|
|
|
@@ -6225,36 +6187,64 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- @GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
public R quickBillingMall(Order order) {
|
|
|
- // 校验单号重复-新增
|
|
|
- if (order.getId() == null && StringUtils.isNotBlank(order.getOrderNo())) {
|
|
|
- LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- orderLambdaQueryWrapper
|
|
|
- .eq(Order::getOrderNo, order.getOrderNo())
|
|
|
- .eq(Order::getTradeType, order.getTradeType())
|
|
|
- .eq(Order::getBillType, order.getBillType())
|
|
|
- .eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Order::getIsDeleted, 0);
|
|
|
- Integer count = baseMapper.selectCount(orderLambdaQueryWrapper);
|
|
|
- if (count != null && count > 0) {
|
|
|
- throw new SecurityException("合同号:" + order.getOrderNo() + "已存在,禁止重复添加");
|
|
|
+
|
|
|
+ Order details = vocationalWork(order);
|
|
|
+ if (ObjectUtils.isNull(details) || details.getId() == null){
|
|
|
+ throw new RuntimeException("下单失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ CorpsDesc corpsDesc = corpsDescClient.getCorpId(details.getCorpId());
|
|
|
+ if (ObjectUtils.isNull(corpsDesc)) {
|
|
|
+ throw new RuntimeException("未找到客户信息");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc.getAdminProfiles())) {
|
|
|
+ String[] arrs = corpsDesc.getAdminProfiles().split(",");
|
|
|
+ for (String arr : arrs) {
|
|
|
+ //信息
|
|
|
+ Message sendMessage = new Message();
|
|
|
+ sendMessage.setParameter(String.valueOf(details.getId()));
|
|
|
+ sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
+ sendMessage.setUserId(AuthUtil.getUserId());
|
|
|
+ sendMessage.setToUserId(Long.parseLong(arr));
|
|
|
+ sendMessage.setMessageType(1);
|
|
|
+ sendMessage.setTenantId(AuthUtil.getTenantId());
|
|
|
+ sendMessage.setCreateUser(AuthUtil.getUserId());
|
|
|
+ sendMessage.setCreateTime(new Date());
|
|
|
+ sendMessage.setUrl(details.getUrl());
|
|
|
+ sendMessage.setPageLabel(details.getPageLabel());
|
|
|
+ sendMessage.setPageStatus(details.getPageStatus());
|
|
|
+ sendMessage.setMessageBody("您的单号:" + details.getSysNo() + "下单成功!");
|
|
|
+ R save = messageClient.save(sendMessage);
|
|
|
+ if (!save.isSuccess()) {
|
|
|
+ throw new SecurityException("发送消息失败");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- // 校验单号重复-编辑
|
|
|
- else {
|
|
|
+ //通联支付下单处理
|
|
|
+ R r = this.payPrepay(order);
|
|
|
+ if (!r.isSuccess() || r.getCode() != 200) {
|
|
|
+ throw new RuntimeException("支付失败!原因:" + r.getData());
|
|
|
+ } else {
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
+ public Order vocationalWork(Order order){
|
|
|
+// 校验单号重复-新增
|
|
|
+ if (order.getId() == null && StringUtils.isNotBlank(order.getSysNo())) {
|
|
|
LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
orderLambdaQueryWrapper
|
|
|
- .ne(Order::getId, order.getId())
|
|
|
- .eq(Order::getOrderNo, order.getOrderNo())
|
|
|
+ .eq(Order::getSysNo, order.getSysNo())
|
|
|
.eq(Order::getTradeType, order.getTradeType())
|
|
|
.eq(Order::getBillType, order.getBillType())
|
|
|
.eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Order::getIsDeleted, 0);
|
|
|
Integer count = baseMapper.selectCount(orderLambdaQueryWrapper);
|
|
|
if (count != null && count > 0) {
|
|
|
- throw new SecurityException("合同号:" + order.getOrderNo() + "已存在,禁止重复添加");
|
|
|
+ throw new SecurityException("合同号:" + order.getSysNo() + "已存在,禁止重复添加");
|
|
|
}
|
|
|
}
|
|
|
order.setOrderSource("2");
|
|
|
@@ -6291,18 +6281,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
R billNo = serialClient.getBillNo(order.getBillType(), order.getTradeType(), order.getBillType());
|
|
|
if (billNo.getCode() != 200) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return R.fail(500, "生成系统编号失败");
|
|
|
+ throw new RuntimeException("生成系统编号失败");
|
|
|
}
|
|
|
order.setSysNo((String) billNo.getData());
|
|
|
- R clientBillNo = serialClient.getBillNo(order.getBillType(), order.getTradeType(), order.getBillType());
|
|
|
- if (!clientBillNo.isSuccess()) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return R.fail(500, "生成订单编号失败");
|
|
|
- }
|
|
|
- order.setOrderNo((String) clientBillNo.getData());
|
|
|
+ order.setOrderNo((String) billNo.getData());
|
|
|
// 进口的orgOrderNo 存的是采购订单号 出口国内存的是本身的订单号码
|
|
|
if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())) {
|
|
|
- order.setOrgOrderNo((String) clientBillNo.getData());
|
|
|
+ order.setOrgOrderNo((String) billNo.getData());
|
|
|
}
|
|
|
|
|
|
order.setTenantId(SecureUtil.getTenantId());
|
|
|
@@ -6392,48 +6377,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setDebitAmount(order.getOrderAmount());
|
|
|
order.setBalanceAmount(order.getOrderAmount());
|
|
|
order.setPurchaseAmount(order.getOrderAmount());
|
|
|
-// order.setSettlmentAmount(order.getOrderAmount().subtract(order.getOrderAmount()));
|
|
|
baseMapper.updateById(order);
|
|
|
-
|
|
|
- // 保存订单文件信息
|
|
|
- if (CollectionUtils.isNotEmpty(order.getOrderFilesList())) {
|
|
|
- List<OrderFiles> orderFilesList = orderFilesService.saveOrderFileMessage(order.getOrderFilesList(), date, order.getId());
|
|
|
- order.setOrderFilesList(orderFilesList);
|
|
|
- }
|
|
|
- CorpsDesc corpsDesc = corpsDescClient.getCorpId(order.getCorpId());
|
|
|
- if (ObjectUtils.isNull(corpsDesc)) {
|
|
|
- throw new RuntimeException("未找到客户信息");
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(corpsDesc.getAdminProfiles())) {
|
|
|
- String[] arrs = corpsDesc.getAdminProfiles().split(",");
|
|
|
- for (String arr : arrs) {
|
|
|
- //信息
|
|
|
- Message sendMessage = new Message();
|
|
|
- sendMessage.setParameter(String.valueOf(order.getId()));
|
|
|
- sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
- sendMessage.setUserId(AuthUtil.getUserId());
|
|
|
- sendMessage.setToUserId(Long.parseLong(arr));
|
|
|
- sendMessage.setMessageType(1);
|
|
|
- sendMessage.setTenantId(AuthUtil.getTenantId());
|
|
|
- sendMessage.setCreateUser(AuthUtil.getUserId());
|
|
|
- sendMessage.setCreateTime(new Date());
|
|
|
- sendMessage.setUrl(order.getUrl());
|
|
|
- sendMessage.setPageLabel(order.getPageLabel());
|
|
|
- sendMessage.setPageStatus(order.getPageStatus());
|
|
|
- sendMessage.setMessageBody("您的单号:" + order.getSysNo() + "下单成功!");
|
|
|
- R save = messageClient.save(sendMessage);
|
|
|
- if (!save.isSuccess()) {
|
|
|
- throw new SecurityException("发送消息失败");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //通联支付下单处理
|
|
|
- R r = this.payPrepay(order);
|
|
|
- if (!r.isSuccess() || r.getCode() != 200) {
|
|
|
- throw new RuntimeException("支付失败!原因:" + r.getData());
|
|
|
- } else {
|
|
|
- return r;
|
|
|
- }
|
|
|
+ return order;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -7004,24 +6949,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (ObjectUtils.isNotNull(order.getCurrentAmount())) {
|
|
|
applyDTO.setSettlementAmount(order.getSettlmentAmount().add(order.getCurrentAmount()));
|
|
|
}
|
|
|
- /*if (ObjectUtils.isNotNull(order.getSettlementList()) && order.getSettlementList().size() > 0) {
|
|
|
- applyDTO.setId(order.getSrcAccId());
|
|
|
- BigDecimal receivedAmount = order.getCurrentAmount();
|
|
|
- receivedAmount = receivedAmount.add(order.getSettlmentAmount());
|
|
|
- amount = amount.subtract(receivedAmount);
|
|
|
- Order order1 = new Order();
|
|
|
- order1.setId(order.getId());
|
|
|
- order1.setSettlmentAmount(receivedAmount);
|
|
|
- order1.setBalanceAmount(amount);
|
|
|
- if (new BigDecimal("0.00").equals(amount)) {
|
|
|
- order1.setStatus(3);
|
|
|
- order1.setActualPaymentStatus(2);
|
|
|
- } else {
|
|
|
- order1.setStatus(0);
|
|
|
- order1.setActualPaymentStatus(1);
|
|
|
- }
|
|
|
- baseMapper.updateById(order1);
|
|
|
- }*/
|
|
|
//生成账单
|
|
|
R paymentApply = financeClient.paymentApplyParts(applyDTO);
|
|
|
if (!paymentApply.isSuccess()) {
|