Prechádzať zdrojové kódy

轮胎商城:共享加本地退货入库退货数量不对修改

纪新园 7 mesiacov pred
rodič
commit
2d4ddb3f5d

+ 39 - 39
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -1895,22 +1895,18 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				if ("1".equals(goodsDesc.getWhether()) && ObjectUtils.isNull(item.getDot())) {
 					throw new RuntimeException("商品:" + goodsDesc.getCname() + ",请选择批次号");
 				}
-				PjOrderItems orderItems = pjOrderItems.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
-				if (orderItems != null) {
-					if (ship.getBillno().contains("TK")) {
-						if (orderItems.getSendNum().subtract(item.getSendNum()).compareTo(new BigDecimal("0.00")) < 0) {
-							throw new RuntimeException("商品:" + goodsDesc.getCname() + "退货数量为负数");
-						}
-					} else {
+				if (!"TKSHGD".contains(ship.getBizTypeName())) {
+					PjOrderItems orderItems = pjOrderItems.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
+					if (orderItems != null) {
 						if (orderItems.getGoodsNum().compareTo(orderItems.getSendNum().add(item.getSendNum())) < 0) {
 							throw new RuntimeException("商品:" + goodsDesc.getCname() + "已入库数量超过订单数量");
 						}
+						orderItems.setSendNum(orderItems.getSendNum().add(item.getSendNum()));
+						orderItems.setGoodsTotalShipAmount(orderItems.getSendNum().multiply(orderItems.getPrice()));
+						pjOrderItemsList.add(orderItems);
+					} else {
+						throw new RuntimeException("数据异常请联系管理员");
 					}
-					orderItems.setSendNum(orderItems.getSendNum().add(item.getSendNum()));
-					orderItems.setGoodsTotalShipAmount(orderItems.getSendNum().multiply(orderItems.getPrice()));
-					pjOrderItemsList.add(orderItems);
-				} else {
-					throw new RuntimeException("数据异常请联系管理员");
 				}
 				//生成库存账
 				PjStockDesc stockDesc = new PjStockDesc();
@@ -2010,7 +2006,9 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			if (!pjStockDescArrayListUpdate.isEmpty()) {
 				iStockDescService.updateBatchById(pjStockDescArrayListUpdate);
 			}
-			orderItemsService.updateBatchById(pjOrderItemsList);
+			if (!"TKSHGD".contains(ship.getBizTypeName())) {
+				orderItemsService.updateBatchById(pjOrderItemsList);
+			}
 			//查询所有上架商品
 			LambdaQueryWrapper<PjProductLaunch> productLaunchQueryWrapper = new LambdaQueryWrapper<>();
 			productLaunchQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
@@ -2073,32 +2071,34 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			rwShip.setUpdateTime(new Date());
 			baseMapper.updateById(rwShip);
 		}
-		PjOrder order = orderMapper.selectById(ship.getOrdId());
-		List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
-			.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
-			.eq(PjOrderItems::getIsDeleted, 0)
-			.eq(PjOrderItems::getPid, order.getId()));
-		if (!orderItemsList.isEmpty()) {
-			//数量和
-			BigDecimal goodsNum = orderItemsList.stream().map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
-				.reduce(BigDecimal.ZERO, BigDecimal::add);
-			//发货数量和
-			BigDecimal sendNum = orderItemsList.stream().map(PjOrderItems::getSendNum).filter(Objects::nonNull)
-				.reduce(BigDecimal.ZERO, BigDecimal::add);
-			//发货金额和
-			BigDecimal goodsTotalShipAmount = orderItemsList.stream().map(PjOrderItems::getGoodsTotalShipAmount).filter(Objects::nonNull)
-				.reduce(BigDecimal.ZERO, BigDecimal::add);
-			if (ObjectUtil.isNotEmpty(order)) {
-				order.setGoodsTotalShipNum(sendNum);
-				order.setGoodsTotalShipAmount(goodsTotalShipAmount);
-				if (goodsNum.compareTo(sendNum) == 0) {//数量等于发货数量修改销售订单状态
-					order.setStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
-					order.setXcxStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
-					order.setDeliveryBusinesDate(new Date());
-					orderMapper.updateById(order);
-				} else {
-					order.setStorageId(ship.getStorageId());
-					orderMapper.updateById(order);
+		if (!"TKSHGD".contains(ship.getBizTypeName())) {
+			PjOrder order = orderMapper.selectById(ship.getOrdId());
+			List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+				.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+				.eq(PjOrderItems::getIsDeleted, 0)
+				.eq(PjOrderItems::getPid, order.getId()));
+			if (!orderItemsList.isEmpty()) {
+				//数量和
+				BigDecimal goodsNum = orderItemsList.stream().map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
+					.reduce(BigDecimal.ZERO, BigDecimal::add);
+				//发货数量和
+				BigDecimal sendNum = orderItemsList.stream().map(PjOrderItems::getSendNum).filter(Objects::nonNull)
+					.reduce(BigDecimal.ZERO, BigDecimal::add);
+				//发货金额和
+				BigDecimal goodsTotalShipAmount = orderItemsList.stream().map(PjOrderItems::getGoodsTotalShipAmount).filter(Objects::nonNull)
+					.reduce(BigDecimal.ZERO, BigDecimal::add);
+				if (ObjectUtil.isNotEmpty(order)) {
+					order.setGoodsTotalShipNum(sendNum);
+					order.setGoodsTotalShipAmount(goodsTotalShipAmount);
+					if (goodsNum.compareTo(sendNum) == 0) {//数量等于发货数量修改销售订单状态
+						order.setStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
+						order.setXcxStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
+						order.setDeliveryBusinesDate(new Date());
+						orderMapper.updateById(order);
+					} else {
+						order.setStorageId(ship.getStorageId());
+						orderMapper.updateById(order);
+					}
 				}
 			}
 		}