|
|
@@ -1791,7 +1791,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
List<StockGoods> stockGoodsList = castToList(redisTemplate.opsForValue().get("stockGoods"), StockGoods.class);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(orderItems)) {
|
|
|
+ List<StockGoodsLog> stockGoodsLogList = new ArrayList<>();
|
|
|
+ Date date = new Date();
|
|
|
orderItems.forEach(e -> {
|
|
|
+ StockGoodsLog stockGoodsLog = new StockGoodsLog();
|
|
|
+ stockGoodsLog.setTime(date);
|
|
|
+ stockGoodsLog.setSrcOrderId(orderMessage.getId());
|
|
|
+ stockGoodsLog.setUserName(AuthUtil.getUserName());
|
|
|
+ stockGoodsLog.setType("申请退单释放库存");
|
|
|
+ stockGoodsLog.setTenantId(AuthUtil.getTenantId());
|
|
|
+ stockGoodsLog.setCreateUser(AuthUtil.getUserId());
|
|
|
+ stockGoodsLog.setCreateTime(date);
|
|
|
// 开始锁定库存,减少可用
|
|
|
// 开始锁定库存,减少可用
|
|
|
StockGoods oneStock = stockGoodsList.stream().filter(s ->
|
|
|
@@ -1810,6 +1820,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
// 锁定库存
|
|
|
BigDecimal lockingQuantity = oneStock.getLockingQuantity();
|
|
|
|
|
|
+ stockGoodsLog.setStockId(oneStock.getId());
|
|
|
+ stockGoodsLog.setBalanceQuantityOld(oneStock.getBalanceQuantity());
|
|
|
+ stockGoodsLog.setSurplusRouteQuantityOld(surplusRouteQuantity);
|
|
|
+ stockGoodsLog.setLockingQuantityOld(lockingQuantity);
|
|
|
+ stockGoodsLog.setOrderQuantity(orderQuantity);
|
|
|
+
|
|
|
+
|
|
|
// 判断比较大小
|
|
|
if (orderQuantity.compareTo(lockingQuantity) > 0) {
|
|
|
throw new SecurityException("撤销失败:原单据的" + oneStock.getCode() + "订货数量大于锁定库存,无法释放 库存");
|
|
|
@@ -1824,8 +1841,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
// throw new SecurityException("撤销失败: " + oneStock.getCode() + "更新库存失败");
|
|
|
throw new SecurityException(res.getMsg());
|
|
|
}
|
|
|
+ stockGoodsLog.setBalanceQuantity(oneStock.getBalanceQuantity());
|
|
|
+ stockGoodsLog.setSurplusRouteQuantity(oneStock.getSurplusRouteQuantity());
|
|
|
+ stockGoodsLog.setLockingQuantity(oneStock.getLockingQuantity());
|
|
|
+ stockGoodsLogList.add(stockGoodsLog);
|
|
|
|
|
|
});
|
|
|
+ stockGoodsClient.saveOrUpdateBatchListLog(stockGoodsLogList);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -3092,6 +3114,37 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
public R collectPayment(Order order) {
|
|
|
+ CorpsDesc corpsDesc = new CorpsDesc();
|
|
|
+ if (ObjectUtils.isNotNull(order.getCorpId())) {
|
|
|
+ corpsDesc = corpsDescClient.getCorpId(order.getCorpId());
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc)) {
|
|
|
+ if (corpsDesc.getBalanceAmount().compareTo(order.getMemberBalance()) < 0) {
|
|
|
+ throw new RuntimeException("会员余额不足,支付失败");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc.getCorpsAddrList()) && corpsDesc.getCorpsAddrList().size() > 0) {
|
|
|
+ order.setArrivalAddress(corpsDesc.getCorpsAddrList().get(0).getDetailedAddress());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (AuthUtil.getUserRole().equals("客户")) {
|
|
|
+ CorpsAttn corpsAttn = corpsAttnClient.getUser(AuthUtil.getUserId());
|
|
|
+ if (ObjectUtils.isNull(corpsAttn)) {
|
|
|
+ throw new RuntimeException("未查到用户信息");
|
|
|
+ } else {
|
|
|
+ corpsDesc = corpsDescClient.getCorpId(corpsAttn.getPid());
|
|
|
+ if (ObjectUtils.isNull(corpsDesc)) {
|
|
|
+ throw new RuntimeException("未查到用户信息");
|
|
|
+ } else {
|
|
|
+ if (corpsDesc.getBalanceAmount().compareTo(order.getMemberBalance()) < 0) {
|
|
|
+ throw new RuntimeException("会员余额不足,支付失败");
|
|
|
+ }
|
|
|
+ order.setCorpId(corpsDesc.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ corpsDesc.setBalanceAmount(corpsDesc.getBalanceAmount().subtract(order.getMemberBalance()));
|
|
|
+ corpsDescClient.updateCorps(corpsDesc);
|
|
|
if ("线上".equals(order.getOrderSource())) {
|
|
|
Order selectOrder = baseMapper.selectById(order.getId());
|
|
|
selectOrder.setStatus(3);
|
|
|
@@ -3142,7 +3195,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
settlement.setSettlementDate(new Date());
|
|
|
settlement.setAccount(order.getAccount());
|
|
|
- settlement.setAmount(order.getCurrentAmount());
|
|
|
+ settlement.setAmount(order.getCurrentAmount().add(order.getMemberBalance()));
|
|
|
settlement.setOverPayment(order.getOverPayment());
|
|
|
settlementList.add(settlement);
|
|
|
order.setSettlementList(settlementList);
|
|
|
@@ -3199,6 +3252,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
Date date = new Date();
|
|
|
+ if (ObjectUtils.isNull(order.getMemberBalance())){
|
|
|
+ order.setMemberBalance(new BigDecimal("0.00"));
|
|
|
+ }
|
|
|
if (!"线上".equals(order.getOrderSource())) {
|
|
|
if ("234557".equals(AuthUtil.getTenantId())) {
|
|
|
if ("XSJH".equals(order.getBillType())) {
|
|
|
@@ -3639,6 +3695,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (ObjectUtils.isNotNull(corpsDesc.getCorpsAddrList()) && corpsDesc.getCorpsAddrList().size() > 0) {
|
|
|
order.setArrivalAddress(corpsDesc.getCorpsAddrList().get(0).getDetailedAddress());
|
|
|
}
|
|
|
+ if (corpsDesc.getBalanceAmount().compareTo(order.getMemberBalance()) < 0) {
|
|
|
+ throw new RuntimeException("会员余额不足,支付失败");
|
|
|
+ }
|
|
|
+ corpsDesc.setBalanceAmount(corpsDesc.getBalanceAmount().subtract(order.getMemberBalance()));
|
|
|
+ corpsDescClient.updateCorps(corpsDesc);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -3745,11 +3806,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setGrossProfit(grossProfit);
|
|
|
order.setConfirmStatus(1);
|
|
|
this.paymentApply(order, order.getBillType(), order.getTradeType());
|
|
|
- order.setDebitAmount(order.getOrderAmount());
|
|
|
- order.setBalanceAmount(order.getOrderAmount());
|
|
|
// order.setPurchaseAmount(order.getOrderAmount());
|
|
|
-
|
|
|
- order.setSettlmentAmount(order.getOrderAmount().subtract(order.getOrderAmount()));
|
|
|
+ order.setDebitAmount(order.getOrderAmount());
|
|
|
+ order.setBalanceAmount(order.getOrderAmount().subtract(order.getMemberBalance()));
|
|
|
+ order.setPurchaseAmount(order.getOrderAmount());
|
|
|
+ order.setSettlmentAmount(order.getOrderAmount().subtract(order.getBalanceAmount()));
|
|
|
baseMapper.updateById(order);
|
|
|
// 保存订单文件信息
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderFilesList())) {
|
|
|
@@ -4255,6 +4316,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
throw new RuntimeException("未查到用户信息");
|
|
|
} else {
|
|
|
order.setCorpId(corpsDesc.getId());
|
|
|
+ if (corpsDesc.getBalanceAmount().compareTo(order.getMemberBalance()) < 0) {
|
|
|
+ throw new RuntimeException("会员余额不足,支付失败");
|
|
|
+ }
|
|
|
+ corpsDesc.setBalanceAmount(corpsDesc.getBalanceAmount().subtract(order.getMemberBalance()));
|
|
|
+ corpsDescClient.updateCorps(corpsDesc);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -4511,6 +4577,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (ObjectUtils.isNotNull(corpsDesc.getCorpsAddrList()) && corpsDesc.getCorpsAddrList().size() > 0) {
|
|
|
order.setArrivalAddress(corpsDesc.getCorpsAddrList().get(0).getDetailedAddress());
|
|
|
}
|
|
|
+ if (corpsDesc.getBalanceAmount().compareTo(order.getMemberBalance()) < 0) {
|
|
|
+ throw new RuntimeException("会员余额不足,支付失败");
|
|
|
+ }
|
|
|
+ corpsDesc.setBalanceAmount(corpsDesc.getBalanceAmount().subtract(order.getMemberBalance()));
|
|
|
+ corpsDescClient.updateCorps(corpsDesc);
|
|
|
}
|
|
|
}
|
|
|
order.setClient(AuthUtil.getUser().getRoleName());
|
|
|
@@ -4850,6 +4921,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (ObjectUtils.isNotNull(corpsDesc)) {
|
|
|
map.put("ID", corpsDesc.getTel());
|
|
|
map.put("corpName", corpsDesc.getCname() == null ? "无" : corpsDesc.getCname());
|
|
|
+ map.put("pointsBalance", corpsDesc.getPointsBalance() == null ? "0.00" : corpsDesc.getPointsBalance());
|
|
|
+ map.put("balanceAmount", corpsDesc.getBalanceAmount() == null ? "0.00" : corpsDesc.getBalanceAmount());
|
|
|
if (corpsDesc.getCorpsAddrList().size() > 0) {
|
|
|
map.put("address", corpsDesc.getCorpsAddrList().get(0).getDetailedAddress() == null ? "无" : corpsDesc.getCorpsAddrList().get(0).getDetailedAddress());
|
|
|
} else {
|
|
|
@@ -5009,6 +5082,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (ObjectUtils.isNotNull(corpsDesc.getCorpsAddrList()) && corpsDesc.getCorpsAddrList().size() > 0) {
|
|
|
orderNew.setArrivalAddress(corpsDesc.getCorpsAddrList().get(0).getDetailedAddress());
|
|
|
}
|
|
|
+ if (corpsDesc.getBalanceAmount().compareTo(order.getMemberBalance()) < 0) {
|
|
|
+ throw new RuntimeException("会员余额不足,支付失败");
|
|
|
+ }
|
|
|
+ corpsDesc.setBalanceAmount(corpsDesc.getBalanceAmount().subtract(order.getMemberBalance()));
|
|
|
+ corpsDescClient.updateCorps(corpsDesc);
|
|
|
}
|
|
|
}
|
|
|
orderNew.setOrderNo((String) clientBillNo.getData());
|
|
|
@@ -5849,7 +5927,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//更新对应配件明细采购数量
|
|
|
BigDecimal quantity = ObjectUtils.isNotNull(srcItems.getPurchasesNumber()) ? srcItems.getPurchasesNumber() : new BigDecimal("0.00");
|
|
|
srcItems.setPurchasesNumber(quantity.add(orderItems.getActualQuantity()));
|
|
|
-// orderPartsService.updateById(srcItems);
|
|
|
srcItemsList.add(srcItems);
|
|
|
}
|
|
|
} else {
|
|
|
@@ -5859,7 +5936,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
BigDecimal quantity = ObjectUtils.isNotNull(srcItems.getPurchaseQuantity()) ? srcItems.getPurchaseQuantity() : new BigDecimal("0.00");
|
|
|
srcItems.setPurchaseQuantity(quantity.add(orderItems.getActualQuantity()));
|
|
|
srcItems.setFudaPurchaseStatus("排产中");
|
|
|
-// orderItemsMapper.updateById(srcItems);
|
|
|
srcOrderItemsList.add(srcItems);
|
|
|
}
|
|
|
}
|
|
|
@@ -5870,7 +5946,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
BigDecimal quantity = ObjectUtils.isNotNull(srcItems.getPurchaseQuantity()) ? srcItems.getPurchaseQuantity() : new BigDecimal("0.00");
|
|
|
srcItems.setPurchaseQuantity(quantity.add(orderItems.getActualQuantity()));
|
|
|
srcItems.setFudaPurchaseStatus("排产中");
|
|
|
-// orderItemsMapper.updateById(srcItems);
|
|
|
srcOrderItemsList.add(srcItems);
|
|
|
}
|
|
|
}
|
|
|
@@ -5907,12 +5982,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order1.setProductionSchedulingDate(order.getEstimateGoodGoodsDate());
|
|
|
deliveryClient.saveDeliveryData(order1.getId(), order1.getOrderNo(), "预计货好");
|
|
|
} else if (3 == order.getPurchaseStatusType()) {
|
|
|
- order1.setProductionScheduling("货备齐");
|
|
|
- order1.setOrderStatus("货备齐");
|
|
|
- order1.setProductionSchedulingDate(new Date());
|
|
|
- deliveryClient.saveDeliveryData(order1.getId(), order1.getOrderNo(), "货备齐");
|
|
|
+ List<Order> orderList1 = baseMapper.selectList(new LambdaQueryWrapper<Order>()
|
|
|
+ .eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Order::getIsDeleted, 0)
|
|
|
+ .eq(Order::getSrcOrderNo, order1.getSrcOrderNo())
|
|
|
+ .eq(Order::getBillType, "CG"));
|
|
|
+ long count = orderList1.stream().filter(e -> "货备齐".equals(e.getFudaPurchaseStatus())).count();
|
|
|
+ if ((orderList1.size() - count) == 1) {
|
|
|
+ order1.setProductionScheduling("货备齐");
|
|
|
+ order1.setOrderStatus("货备齐");
|
|
|
+ order1.setProductionSchedulingDate(new Date());
|
|
|
+ deliveryClient.saveDeliveryData(order1.getId(), order1.getOrderNo(), "货备齐");
|
|
|
+ }
|
|
|
}
|
|
|
-// baseMapper.updateById(order1);
|
|
|
orderList.add(order1);
|
|
|
}
|
|
|
}
|
|
|
@@ -5925,10 +6007,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
for (String arr : arrs) {
|
|
|
Order selectOrder = baseMapper.selectById(Long.parseLong(arr));
|
|
|
if (ObjectUtils.isNotNull(selectOrder)) {
|
|
|
- /*selectOrder.setUpdateTime(new Date());
|
|
|
- selectOrder.setUpdateUser(AuthUtil.getUserId());
|
|
|
- selectOrder.setUpdateUserName(AuthUtil.getUserName());*/
|
|
|
-
|
|
|
//循环发送消息
|
|
|
Message sendMessage = new Message();
|
|
|
sendMessage.setParameter(String.valueOf(selectOrder.getId()));
|
|
|
@@ -5946,19 +6024,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
sendMessage.setToUserName(selectOrder.getCreateUserName());
|
|
|
if (1 == order.getPurchaseStatusType()) {
|
|
|
sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "正在排产中,请查看");
|
|
|
- /*selectOrder.setProductionScheduling("排产中");
|
|
|
- selectOrder.setOrderStatus("排产中");
|
|
|
- selectOrder.setProductionSchedulingDate(order.getProductionSchedulingDate());*/
|
|
|
} else if (2 == order.getPurchaseStatusType()) {
|
|
|
sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "已预计货好,请查看");
|
|
|
- /*selectOrder.setProductionScheduling("预计货好");
|
|
|
- selectOrder.setOrderStatus("预计货好");
|
|
|
- selectOrder.setProductionSchedulingDate(order.getEstimateGoodGoodsDate());*/
|
|
|
} else if (3 == order.getPurchaseStatusType()) {
|
|
|
sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "已采购完成,请查看");
|
|
|
- /* selectOrder.setProductionScheduling("货备齐");
|
|
|
- selectOrder.setOrderStatus("货备齐");
|
|
|
- selectOrder.setProductionSchedulingDate(new Date());*/
|
|
|
deliveryClient.updateBySrcId(selectOrder.getId(), "FH", selectOrder.getTradeType());
|
|
|
}
|
|
|
R save = messageClient.save(sendMessage);
|
|
|
@@ -5982,7 +6051,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
throw new SecurityException("发送消息失败");
|
|
|
}
|
|
|
}
|
|
|
-// baseMapper.updateById(selectOrder);
|
|
|
}
|
|
|
}
|
|
|
return R.data(detail);
|
|
|
@@ -6023,7 +6091,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (ObjectUtils.isNotEmpty(orderItems.getDetailType())) {
|
|
|
if (OrderTypeEnum.PARTSTYPE.getType().equals(orderItems.getDetailType())) {//更新对应配件明细采购数量
|
|
|
OrderParts srcItems = orderPartsService.getById(orderItems.getSrcItemId());
|
|
|
- if (ObjectUtils.isNotNull(srcItems)){
|
|
|
+ if (ObjectUtils.isNotNull(srcItems)) {
|
|
|
srcItems.setPurchasesNumber(srcItems.getPurchasesNumber().subtract(orderItems.getActualQuantity()));
|
|
|
srcItemsList.add(srcItems);
|
|
|
}
|
|
|
@@ -6238,9 +6306,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
Date date = new Date();
|
|
|
+ CorpsDesc corpsDesc = new CorpsDesc();
|
|
|
if (ObjectUtils.isNotNull(order.getCorpId())) {
|
|
|
- CorpsDesc corpsDesc = corpsDescClient.getCorpId(order.getCorpId());
|
|
|
+ corpsDesc = corpsDescClient.getCorpId(order.getCorpId());
|
|
|
if (ObjectUtils.isNotNull(corpsDesc)) {
|
|
|
+ if (corpsDesc.getBalanceAmount().compareTo(order.getMemberBalance()) < 0) {
|
|
|
+ throw new RuntimeException("会员余额不足,支付失败");
|
|
|
+ }
|
|
|
if (ObjectUtils.isNotNull(corpsDesc.getCorpsAddrList()) && corpsDesc.getCorpsAddrList().size() > 0) {
|
|
|
order.setArrivalAddress(corpsDesc.getCorpsAddrList().get(0).getDetailedAddress());
|
|
|
}
|
|
|
@@ -6251,15 +6323,20 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (ObjectUtils.isNull(corpsAttn)) {
|
|
|
throw new RuntimeException("未查到用户信息");
|
|
|
} else {
|
|
|
- CorpsDesc corpsDesc = corpsDescClient.getCorpId(corpsAttn.getPid());
|
|
|
+ corpsDesc = corpsDescClient.getCorpId(corpsAttn.getPid());
|
|
|
if (ObjectUtils.isNull(corpsDesc)) {
|
|
|
throw new RuntimeException("未查到用户信息");
|
|
|
} else {
|
|
|
+ if (corpsDesc.getBalanceAmount().compareTo(order.getMemberBalance()) < 0) {
|
|
|
+ throw new RuntimeException("会员余额不足,支付失败");
|
|
|
+ }
|
|
|
order.setCorpId(corpsDesc.getId());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ corpsDesc.setBalanceAmount(corpsDesc.getBalanceAmount().subtract(order.getMemberBalance()));
|
|
|
+ corpsDescClient.updateCorps(corpsDesc);
|
|
|
// 订单时间
|
|
|
order.setStatus(0);
|
|
|
order.setActualPaymentStatus(1);
|
|
|
@@ -6366,11 +6443,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setCostAmount(costAmount);
|
|
|
order.setGrossProfit(grossProfit);
|
|
|
order.setConfirmStatus(1);
|
|
|
+ if (ObjectUtils.isNull(order.getMemberBalance())){
|
|
|
+ order.setMemberBalance(new BigDecimal("0.00"));
|
|
|
+ }
|
|
|
this.paymentApply(order, order.getBillType(), order.getTradeType());
|
|
|
order.setDebitAmount(order.getOrderAmount());
|
|
|
- order.setBalanceAmount(order.getOrderAmount());
|
|
|
+ order.setBalanceAmount(order.getOrderAmount().subtract(order.getMemberBalance()));
|
|
|
order.setPurchaseAmount(order.getOrderAmount());
|
|
|
- order.setSettlmentAmount(order.getOrderAmount().subtract(order.getOrderAmount()));
|
|
|
+ order.setSettlmentAmount(order.getOrderAmount().subtract(order.getBalanceAmount()));
|
|
|
baseMapper.updateById(order);
|
|
|
|
|
|
// 保存订单文件信息
|
|
|
@@ -6378,10 +6458,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
List<OrderFiles> orderFilesList = orderFilesService.saveOrderFileMessage(order.getOrderFilesList(), date, order.getId());
|
|
|
order.setOrderFilesList(orderFilesList);
|
|
|
}
|
|
|
- CorpsDesc corpsDesc = corpsDescClient.getCorpId(order.getCorpId());
|
|
|
+ /*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) {
|
|
|
@@ -6415,6 +6495,151 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public R quickBillingWXIntegral(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() + "已存在,禁止重复添加");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 校验单号重复-编辑
|
|
|
+ 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() + "已存在,禁止重复添加");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Date date = new Date();
|
|
|
+ CorpsDesc corpsDesc = new CorpsDesc();
|
|
|
+ if (ObjectUtils.isNotNull(order.getCorpId())) {
|
|
|
+ corpsDesc = corpsDescClient.getCorpId(order.getCorpId());
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc)) {
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc.getCorpsAddrList()) && corpsDesc.getCorpsAddrList().size() > 0) {
|
|
|
+ order.setArrivalAddress(corpsDesc.getCorpsAddrList().get(0).getDetailedAddress());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (AuthUtil.getUserRole().equals("客户")) {
|
|
|
+ CorpsAttn corpsAttn = corpsAttnClient.getUser(AuthUtil.getUserId());
|
|
|
+ if (ObjectUtils.isNull(corpsAttn)) {
|
|
|
+ throw new RuntimeException("未查到用户信息");
|
|
|
+ } else {
|
|
|
+ corpsDesc = corpsDescClient.getCorpId(corpsAttn.getPid());
|
|
|
+ if (ObjectUtils.isNull(corpsDesc)) {
|
|
|
+ throw new RuntimeException("未查到用户信息");
|
|
|
+ } else {
|
|
|
+ order.setCorpId(corpsDesc.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 订单时间
|
|
|
+ order.setBusinesDate(new Date());
|
|
|
+ order.setSalesName(AuthUtil.getUserId() + "");
|
|
|
+ order.setStatus(3);
|
|
|
+ order.setConfirmStatus(2);
|
|
|
+ order.setActualPaymentStatus(2);
|
|
|
+ // 保存订单主表信息
|
|
|
+ // 获取系统编号
|
|
|
+ R billNo = serialClient.getBillNo(order.getBillType(), order.getTradeType(), order.getBillType());
|
|
|
+ if (billNo.getCode() != 200) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ 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());
|
|
|
+ // 进口的orgOrderNo 存的是采购订单号 出口国内存的是本身的订单号码
|
|
|
+ if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())) {
|
|
|
+ order.setOrgOrderNo((String) clientBillNo.getData());
|
|
|
+ }
|
|
|
+
|
|
|
+ order.setTenantId(SecureUtil.getTenantId());
|
|
|
+ order.setCreateTime(date);
|
|
|
+ order.setCreateUser(SecureUtil.getUserId());
|
|
|
+ if (order.getBusinesDate() == null) {
|
|
|
+ order.setBusinesDate(date);
|
|
|
+ }
|
|
|
+ order.setClient(AuthUtil.getUser().getRoleName());
|
|
|
+ R<User> userR = userClient.userInfoById(AuthUtil.getUserId());
|
|
|
+ if (userR.isSuccess() && ObjectUtils.isNotNull(userR.getData())) {
|
|
|
+ order.setClientAttn(userR.getData().getPhone());
|
|
|
+ }
|
|
|
+ baseMapper.insert(order);
|
|
|
+ List<GoodsDesc> goodsDescList = goodsDescClient.selectGoodsDescAll();
|
|
|
+ // 保存订单明细
|
|
|
+ if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
+ List<StockGoodsVO> list = new ArrayList<>();
|
|
|
+ BigDecimal orderAmount = new BigDecimal("0.00");
|
|
|
+ for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
+ //获取本商品库存
|
|
|
+ BigDecimal surplusRouteQuantity = new BigDecimal("0.00");
|
|
|
+ BigDecimal balanceQuantity = new BigDecimal("0.00");
|
|
|
+ GoodsDesc goodsDesc = goodsDescList.stream().filter(e -> e.getId().equals(orderItems.getItemId())).findFirst().orElse(new GoodsDesc());
|
|
|
+ if (ObjectUtils.isNotNull(goodsDesc)) {
|
|
|
+ orderAmount = orderAmount.add(goodsDesc.getIntegral().multiply(orderItems.getStorageInQuantity()));
|
|
|
+ }
|
|
|
+
|
|
|
+ R<StockGoodsVO> r = stockGoodsClient.selectStockParts(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
|
|
|
+ if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
+ if (r.getData().getSurplusRouteQuantity().compareTo(orderItems.getStorageInQuantity()) < 0) {
|
|
|
+ throw new RuntimeException("库存不足,兑换失败");
|
|
|
+ }
|
|
|
+ surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
+ balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
+ r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
+ r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
+ r.getData().setTenantId(order.getTenantId());
|
|
|
+ list.add(r.getData());
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("未找到库存信息");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (list.size() > 0) {
|
|
|
+ R ress = stockGoodsClient.updateStockListYCP(BeanUtil.copy(list, StockGoods.class));
|
|
|
+ if (!ress.isSuccess()) {
|
|
|
+ throw new RuntimeException(ress.getMsg());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<OrderItems> orderItemsList = orderItemsService.saveOrderItemsMessage(order.getOrderItemsList(), date, order.getId());
|
|
|
+ order.setOrderItemsList(orderItemsList);
|
|
|
+ order.setOrderAmount(orderAmount);
|
|
|
+ //入库出库数量
|
|
|
+ order.setStorageQuantity(order.getOrderItemsList().stream().map(OrderItems::getStorageInQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ }
|
|
|
+ if (corpsDesc.getPointsBalance().compareTo(order.getOrderAmount()) < 0) {
|
|
|
+ throw new RuntimeException("积分余额不足,兑换失败");
|
|
|
+ }
|
|
|
+ corpsDesc.setPointsBalance(corpsDesc.getPointsBalance().subtract(order.getOrderAmount()));
|
|
|
+ corpsDescClient.updateCorps(corpsDesc);
|
|
|
+ order.setDebitAmount(order.getOrderAmount());
|
|
|
+ order.setBalanceAmount(order.getDebitAmount());
|
|
|
+ order.setPurchaseAmount(order.getDebitAmount());
|
|
|
+ baseMapper.updateById(order);
|
|
|
+ return R.data(order);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public R salesList(Order order) {
|
|
|
List<Order> orderList = baseMapper.selectList(new LambdaQueryWrapper<Order>()
|
|
|
.eq(Order::getIsDeleted, 0)
|
|
|
@@ -6929,11 +7154,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setActualPaymentStatus(1);
|
|
|
order.setStatus(0);
|
|
|
this.paymentApply(order, order.getBillType(), order.getTradeType());
|
|
|
- order.setDebitAmount(order.getOrderAmount());
|
|
|
+ if(ObjectUtils.isNotNull(order.getMemberBalance())){
|
|
|
+ order.setDebitAmount(order.getOrderAmount().subtract(order.getMemberBalance()));
|
|
|
+ }else{
|
|
|
+ order.setDebitAmount(order.getOrderAmount());
|
|
|
+ }
|
|
|
order.setBalanceAmount(order.getOrderAmount());
|
|
|
// order.setPurchaseAmount(order.getOrderAmount());
|
|
|
|
|
|
- order.setSettlmentAmount(order.getOrderAmount().subtract(order.getOrderAmount()));
|
|
|
+ order.setSettlmentAmount(order.getOrderAmount().subtract(order.getDebitAmount()));
|
|
|
baseMapper.updateById(order);
|
|
|
// 保存订单文件信息
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderFilesList())) {
|
|
|
@@ -7208,6 +7437,263 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
return baseMapper.stockDataDetails(pjStockDetails);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public R quickBillingWXv2(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() + "已存在,禁止重复添加");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 校验单号重复-编辑
|
|
|
+ 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() + "已存在,禁止重复添加");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Date date = new Date();
|
|
|
+ CorpsDesc corpsDesc = new CorpsDesc();
|
|
|
+ if (ObjectUtils.isNotNull(order.getCorpId())) {
|
|
|
+ corpsDesc = corpsDescClient.getCorpId(order.getCorpId());
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc)) {
|
|
|
+ if (corpsDesc.getBalanceAmount().compareTo(order.getMemberBalance()) < 0) {
|
|
|
+ throw new RuntimeException("会员余额不足,支付失败");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc.getCorpsAddrList()) && corpsDesc.getCorpsAddrList().size() > 0) {
|
|
|
+ order.setArrivalAddress(corpsDesc.getCorpsAddrList().get(0).getDetailedAddress());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (AuthUtil.getUserRole().equals("客户")) {
|
|
|
+ CorpsAttn corpsAttn = corpsAttnClient.getUser(AuthUtil.getUserId());
|
|
|
+ if (ObjectUtils.isNull(corpsAttn)) {
|
|
|
+ throw new RuntimeException("未查到用户信息");
|
|
|
+ } else {
|
|
|
+ corpsDesc = corpsDescClient.getCorpId(corpsAttn.getPid());
|
|
|
+ if (ObjectUtils.isNull(corpsDesc)) {
|
|
|
+ throw new RuntimeException("未查到用户信息");
|
|
|
+ } else {
|
|
|
+ if (corpsDesc.getBalanceAmount().compareTo(order.getMemberBalance()) < 0) {
|
|
|
+ throw new RuntimeException("会员余额不足,支付失败");
|
|
|
+ }
|
|
|
+ order.setCorpId(corpsDesc.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ corpsDesc.setBalanceAmount(corpsDesc.getBalanceAmount().subtract(order.getMemberBalance()));
|
|
|
+ corpsDescClient.updateCorps(corpsDesc);
|
|
|
+ // 订单时间
|
|
|
+ order.setBusinesDate(new Date());
|
|
|
+ order.setSalesName(AuthUtil.getUserId() + "");
|
|
|
+ order.setStatus(3);
|
|
|
+ order.setConfirmStatus(2);
|
|
|
+ order.setActualPaymentStatus(2);
|
|
|
+ // 保存订单主表信息
|
|
|
+ // 获取系统编号
|
|
|
+ R billNo = serialClient.getBillNo(order.getBillType(), order.getTradeType(), order.getBillType());
|
|
|
+ if (billNo.getCode() != 200) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ 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());
|
|
|
+ // 进口的orgOrderNo 存的是采购订单号 出口国内存的是本身的订单号码
|
|
|
+ if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())) {
|
|
|
+ order.setOrgOrderNo((String) clientBillNo.getData());
|
|
|
+ }
|
|
|
+
|
|
|
+ order.setTenantId(SecureUtil.getTenantId());
|
|
|
+ order.setCreateTime(date);
|
|
|
+ order.setCreateUser(SecureUtil.getUserId());
|
|
|
+ if (order.getBusinesDate() == null) {
|
|
|
+ order.setBusinesDate(date);
|
|
|
+ }
|
|
|
+ order.setClient(AuthUtil.getUser().getRoleName());
|
|
|
+ R<User> userR = userClient.userInfoById(AuthUtil.getUserId());
|
|
|
+ if (userR.isSuccess() && ObjectUtils.isNotNull(userR.getData())) {
|
|
|
+ order.setClientAttn(userR.getData().getPhone());
|
|
|
+ }
|
|
|
+ baseMapper.insert(order);
|
|
|
+ BigDecimal costAmount = new BigDecimal("0.00");
|
|
|
+ BigDecimal grossProfit = new BigDecimal("0.00");
|
|
|
+ // 保存订单明细
|
|
|
+ if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
+ List<StockGoodsVO> list = new ArrayList<>();
|
|
|
+ List<StockGoods> stockGoodsList = new ArrayList<>();
|
|
|
+ for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
+ if ("XS".equals(order.getBillType())) {
|
|
|
+ orderItems.setAmount(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
+ } else {
|
|
|
+ orderItems.setAmount(orderItems.getStorageInQuantity().multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32));
|
|
|
+ }
|
|
|
+ orderItems.setPurchaseCost(orderItems.getPurchasePrice());
|
|
|
+ //获取本商品库存
|
|
|
+ R<StockGoodsVO> r = stockGoodsClient.selectStockParts(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
|
|
|
+ if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
+ BigDecimal stockPrice = new BigDecimal("0.00");
|
|
|
+ BigDecimal surplusRouteQuantity = new BigDecimal("0.00");
|
|
|
+ BigDecimal balanceQuantity = new BigDecimal("0.00");
|
|
|
+ BigDecimal balanceAmount = new BigDecimal("0.00");
|
|
|
+ if ("XS".equals(order.getBillType())) {
|
|
|
+ if (new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())) {
|
|
|
+ costAmount = costAmount.add(orderItems.getPurchasePrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
+ } else {
|
|
|
+ costAmount = costAmount.add(r.getData().getStockPrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
+ }
|
|
|
+ BigDecimal grossProfits = orderItems.getPrice().subtract(orderItems.getPurchasePrice());
|
|
|
+ grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(grossProfits));
|
|
|
+
|
|
|
+ surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
+ balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
+ if (new BigDecimal("0.00").compareTo(balanceQuantity) <= 0) {
|
|
|
+ balanceAmount = balanceAmount.add(orderItems.getStorageInQuantity().multiply(orderItems.getPurchaseCost(), MathContext.DECIMAL32));
|
|
|
+ } else {
|
|
|
+ balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchaseCost(), MathContext.DECIMAL32));
|
|
|
+ }
|
|
|
+ r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
+ r.getData().setOutAmount(r.getData().getOutAmount().add(orderItems.getPrice().multiply(orderItems.getStorageInQuantity())));
|
|
|
+ } else {
|
|
|
+ costAmount = costAmount.add(orderItems.getPurchasePrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
+ grossProfit = grossProfit.add(new BigDecimal("0.00"));
|
|
|
+ surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
+ balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
+ balanceAmount = balanceAmount.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32)).add(r.getData().getBalanceAmount());
|
|
|
+ stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+
|
|
|
+ r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
+ r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
|
|
|
+ r.getData().setStockPrice(stockPrice);
|
|
|
+
|
|
|
+ }
|
|
|
+ r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
+ r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
+ r.getData().setBalanceAmount(balanceAmount);
|
|
|
+ r.getData().setTenantId(order.getTenantId());
|
|
|
+ list.add(r.getData());
|
|
|
+ } else {
|
|
|
+ StockGoods stockGoods = new StockGoods();
|
|
|
+ if ("CG".equals(order.getBillType())) {
|
|
|
+ stockGoods.setGoodsId(orderItems.getItemId());
|
|
|
+ stockGoods.setStorageId(orderItems.getStorageId());
|
|
|
+ stockGoods.setPurchasePrice(orderItems.getPrice());
|
|
|
+ stockGoods.setStockPrice(orderItems.getPrice());
|
|
|
+ stockGoods.setBalanceQuantity(orderItems.getStorageInQuantity());
|
|
|
+ stockGoods.setBalanceAmount(stockGoods.getBalanceQuantity().multiply(orderItems.getPrice()));
|
|
|
+ stockGoods.setSurplusRouteQuantity(orderItems.getStorageInQuantity());
|
|
|
+ stockGoodsClient.saveStock(stockGoods);
|
|
|
+ } else {
|
|
|
+ stockGoods.setGoodsId(orderItems.getItemId());
|
|
|
+ stockGoods.setStorageId(orderItems.getStorageId());
|
|
|
+ stockGoods.setPurchasePrice(orderItems.getPrice());
|
|
|
+ stockGoods.setStockPrice(orderItems.getPrice());
|
|
|
+ stockGoods.setBalanceQuantity(new BigDecimal("0.00").subtract(orderItems.getStorageInQuantity()));
|
|
|
+ stockGoods.setBalanceAmount(new BigDecimal("0.00").subtract(stockGoods.getBalanceQuantity().multiply(orderItems.getPrice())));
|
|
|
+ stockGoods.setSurplusRouteQuantity(new BigDecimal("0.00").subtract(orderItems.getStorageInQuantity()));
|
|
|
+ stockGoodsClient.saveStock(stockGoods);
|
|
|
+ }
|
|
|
+ stockGoodsList.add(stockGoods);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (list.size() > 0) {
|
|
|
+ R ress = stockGoodsClient.updateStockListYCP(BeanUtil.copy(list, StockGoods.class));
|
|
|
+ if (!ress.isSuccess()) {
|
|
|
+ throw new RuntimeException(ress.getMsg());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (stockGoodsList.size() > 0) {
|
|
|
+ stockGoodsClient.saveStockListYCP(stockGoodsList);
|
|
|
+ }
|
|
|
+ List<OrderItems> orderItemsList = orderItemsService.saveOrderItemsMessage(order.getOrderItemsList(), date, order.getId());
|
|
|
+ order.setOrderItemsList(orderItemsList);
|
|
|
+ // todo 新
|
|
|
+ order.setPaymentGoods(order.getOrderAmount());
|
|
|
+ //应收账款
|
|
|
+ order.setDebitAmount(order.getOrderAmount());
|
|
|
+ //入库出库金额
|
|
|
+ order.setStorageAmount(order.getOrderItemsList().stream().map(OrderItems::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ //入库出库数量
|
|
|
+ order.setStorageQuantity(order.getOrderItemsList().stream().map(OrderItems::getStorageInQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNull(order.getThisUsedProfit())) {
|
|
|
+ order.setThisUsedProfit(new BigDecimal("0"));
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNull(order.getOrderAmount())) {
|
|
|
+ order.setOrderAmount((order.getStorageAmount() == null ? new BigDecimal("0.00") : order.getStorageAmount()).subtract((order.getThisUsedProfit() == null ? new BigDecimal("0.00") : order.getThisUsedProfit())));
|
|
|
+ }
|
|
|
+ order.setCostAmount(costAmount);
|
|
|
+ order.setGrossProfit(grossProfit);
|
|
|
+ order.setConfirmStatus(1);
|
|
|
+ this.paymentApply(order, order.getBillType(), order.getTradeType());
|
|
|
+ order.setDebitAmount(order.getOrderAmount());
|
|
|
+ order.setBalanceAmount(order.getOrderAmount().subtract(order.getMemberBalance()));
|
|
|
+ order.setPurchaseAmount(order.getOrderAmount());
|
|
|
+ order.setSettlmentAmount(order.getOrderAmount().subtract(order.getBalanceAmount()));
|
|
|
+ baseMapper.updateById(order);
|
|
|
+
|
|
|
+ // 保存订单文件信息
|
|
|
+ if (CollectionUtils.isNotEmpty(order.getOrderFilesList())) {
|
|
|
+ List<OrderFiles> orderFilesList = orderFilesService.saveOrderFileMessage(order.getOrderFilesList(), date, order.getId());
|
|
|
+ order.setOrderFilesList(orderFilesList);
|
|
|
+ }
|
|
|
+ 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("发送消息失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.data(order);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IPage<Map<String, Object>> integralRecord(IPage<Map<String, Object>> page, Order order) {
|
|
|
+ return page.setRecords(baseMapper.integralRecord(page, order));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<OrderItemsExport> export(OrderVO order) {
|
|
|
+ return baseMapper.export(order);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 状态统计
|
|
|
* <p>
|
|
|
@@ -7728,6 +8214,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
applyDTO.setSrcSysno(order.getSysNo());
|
|
|
applyDTO.setItemType(itemType);
|
|
|
applyDTO.setCorpId(order.getCorpId());
|
|
|
+ applyDTO.setStorageId(order.getStorageId());
|
|
|
applyDTO.setSrcId(order.getId());
|
|
|
applyDTO.setSrcFeesId(order.getId());
|
|
|
applyDTO.setCurrency("CNY");
|
|
|
@@ -7738,6 +8225,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
applyDTO.setChargeMember(order.getChargeMember());
|
|
|
applyDTO.setUnit("条");
|
|
|
applyDTO.setRemarks(order.getOrderRemark());
|
|
|
+ applyDTO.setSettlementAmount(order.getSettlmentAmount());
|
|
|
+ applyDTO.setMemberBalance(order.getMemberBalance());
|
|
|
//获取费用id
|
|
|
R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
|
|
|
if (fees.isSuccess() && fees.getData() != null) {
|
|
|
@@ -7758,7 +8247,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
applyDTO.setQuantity(quantity);
|
|
|
applyDTO.setReceivedAmount(order.getCurrentAmount());
|
|
|
if (ObjectUtils.isNotNull(order.getCurrentAmount())) {
|
|
|
- applyDTO.setSettlementAmount(order.getSettlmentAmount().add(order.getCurrentAmount()));
|
|
|
+ applyDTO.setSettlementAmount(order.getSettlmentAmount().add(order.getCurrentAmount()).add(order.getMemberBalance()));
|
|
|
}
|
|
|
//生成账单
|
|
|
R paymentApply = financeClient.paymentApplyParts(applyDTO);
|