|
|
@@ -253,6 +253,62 @@ 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) {
|
|
|
+ if (!order.getTradeType().equals(OrderTypeEnum.IMPORT.getType())) {
|
|
|
+ // 出口贸易的报价单号和销售单号的生成规则是 Q + 客户编码后三位
|
|
|
+ if (order.getTradeType().equals(OrderTypeEnum.EXPORT.getType())) {
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getCorpId());
|
|
|
+ if (corpMessage.isSuccess() && StringUtils.isNotBlank(corpMessage.getData().getCode())) {
|
|
|
+ String substring = "";
|
|
|
+ if (order.getBillType().equals(OrderTypeEnum.ENQUIRY.getType())) {
|
|
|
+ substring = substring + "Q";
|
|
|
+ }
|
|
|
+ if (corpMessage.getData().getCode().length() > 3) {
|
|
|
+ substring = substring + corpMessage.getData().getCode().substring(corpMessage.getData().getCode().length() - 3, corpMessage.getData().getCode().length());
|
|
|
+ } else {
|
|
|
+ substring = substring + corpMessage.getData().getCode();
|
|
|
+ }
|
|
|
+ R clientBillNo = serialClient.getBillNo(substring, 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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getCorpId());
|
|
|
+ if (corpMessage.isSuccess()) {
|
|
|
+ R clientBillNo = serialClient.getBillNo(corpMessage.getData().getCode(), 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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 主订单号为空已订单号一致国内贸易
|
|
|
+ if (order.getTradeType().equals(OrderTypeEnum.DOMESTIC.getType())) {
|
|
|
+ order.setMorderNo(order.getOrderNo());
|
|
|
+ }
|
|
|
+ }
|
|
|
order.setTenantId(SecureUtil.getTenantId());
|
|
|
order.setUpdateTime(date);
|
|
|
order.setUpdateUser(SecureUtil.getUserId());
|