Quellcode durchsuchen

诺晶 bug 配件账单金额修改

纪新园 vor 2 Jahren
Ursprung
Commit
a70f505055

+ 18 - 6
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -34,10 +34,7 @@ import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import lombok.Data;
-import org.springblade.client.entity.BasicCorpsProfitChange;
-import org.springblade.client.entity.CorpsDesc;
-import org.springblade.client.entity.Message;
-import org.springblade.client.entity.StorageDesc;
+import org.springblade.client.entity.*;
 import org.springblade.client.feign.*;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.common.dto.token2DTO;
@@ -144,7 +141,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	private final IMessageClient messageClient;//消息
 	private final ISysClient sysClient;//消息
 
-	//private final GoodsDescServiceImpl goodsDescService;
+	//费用
+	private final IFeesDescClient feesDescClient;
 
 	@Override
 	public IPage<DeliveryVO> selectDeliveryPage(IPage<DeliveryVO> page, DeliveryVO delivery) {
@@ -1023,7 +1021,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 				Order temp = new Order();
 				temp.setId(select.getSrcId());//销售主表id
-				if (ObjectUtil.isNotEmpty(orderStatus.getReceivingStatus()) && "已收货".equals(orderStatus.getReceivingStatus())) {
+				if (ObjectUtils.isNotNull(orderStatus.getReceivingStatus()) && "已收货".equals(orderStatus.getReceivingStatus())) {
 					temp.setOrderStatus("已完成");
 				}
 				temp.setPurchaseStatus("已发货");
@@ -1514,7 +1512,21 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			BigDecimal pricetotal1 = deliveryItems.stream().map(DeliveryItems::getPurchaseTotalAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 			//明细总采购价
 			purchaseTotalAmount = purchaseTotalAmount.add(CollectionUtils.isEmpty(deliveryItems) ? new BigDecimal("0.00") : pricetotal1);
+			purchaseTotalAmount = purchaseTotalAmount.subtract(delivery.getThisUsedProfit());
+			R<FeesDesc> r = feesDescClient.getFeesByName("包装费");
+			if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
+				LambdaQueryWrapper<DeliveryFees> deliveryFeesLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				deliveryFeesLambdaQueryWrapper
+					.eq(DeliveryFees::getPid, delivery.getId())
+					.eq(DeliveryFees::getIsDeleted, 0);
+				List<DeliveryFees> deliveryFeesList = deliveryFeesService.list(deliveryFeesLambdaQueryWrapper);
+				BigDecimal amount = deliveryFeesList.stream().filter(e -> e.getItemId().equals(r.getData().getId()) && ObjectUtils.isNotNull(e.getAmount())).map(DeliveryFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				purchaseTotalAmount = purchaseTotalAmount.add(amount);
+				BigDecimal amount1 = deliveryFeesList.stream().filter(e -> !e.getItemId().equals(r.getData().getId()) && ObjectUtils.isNotNull(e.getAmount())).map(DeliveryFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+				purchaseTotalAmount = purchaseTotalAmount.subtract(amount1);
+			}
 		}
+		deliveryAmount = purchaseTotalAmount;
 
 		//=============生成凭证所需信息==============
 		String accountName = "暂无";

+ 2 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java

@@ -362,4 +362,6 @@ public interface OrderMapper extends BaseMapper<Order> {
 	int corpAnalysis(@Param("order")Order order);
 
 	List<Order> turnoverAnalysisList(String tenantId, String type, String statusDate, String endDate, String billType);
+
+    void updateAmount(Order order);
 }

+ 3 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -3557,4 +3557,7 @@ ORDER BY
     <update id="updateStockGoods" parameterType="org.springblade.stock.entity.StockGoods">
         UPDATE business_stock_goods SET surplus_route_quantity = #{surplusRouteQuantity},locking_quantity = #{lockingQuantity} WHERE tenant_id = #{tenantId} AND id = #{id} AND is_deleted = 0
     </update>
+    <update id="updateAmount" parameterType="org.springblade.purchase.sales.entity.Order">
+        UPDATE business_order set this_used_profit = #{thisUsedProfit},debit_amount = #{debitAmount} where id = #{id}
+    </update>
 </mapper>

+ 57 - 36
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/BidingItemsServiceImpl.java

@@ -26,10 +26,7 @@ import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -97,48 +94,72 @@ public class BidingItemsServiceImpl extends ServiceImpl<BidingItemsMapper, Bidin
 		if (ObjectUtils.isNull(list) || list.size() == 0) {
 			return list;
 		}
-		List<BidingItems> sortedList = list.stream()
-			.sorted(Comparator.comparing(BidingItems::getSeaFreight))
-			.collect(Collectors.toList());
-		int sort = 1;
-		List<BidingItems> list1 = new ArrayList<>();
-		for (int i = 0; i < sortedList.size(); i++) {
-			if (i > 0) {
-				if (sortedList.get(i).getSeaFreight().equals(sortedList.get(i - 1).getSeaFreight())) {
-					sortedList.get(i).setRanking(sort);
-				} else {
+		if (1 == distinguish) {
+			List<BidingItems> sortedList = list.stream().filter(e -> ObjectUtils.isNotNull(e.getSeaFreight()))
+				.sorted(Comparator.comparing(BidingItems::getSeaFreight))
+				.collect(Collectors.toList());
+			int sort = 1;
+			List<BidingItems> list1 = new ArrayList<>();
+			for (int i = 0; i < sortedList.size(); i++) {
+				if (i > 0) {
+					if (sortedList.get(i).getSeaFreight().equals(sortedList.get(i - 1).getSeaFreight())) {
+						sortedList.get(i).setRanking(sort);
+					} else {
+						sortedList.get(i).setRanking(sort + 1);
+					}
 					sort++;
+				} else {
 					sortedList.get(i).setRanking(sort);
+					sort++;
 				}
-			} else {
-				sortedList.get(i).setRanking(sort);
-				sort++;
-			}
-			//id为空 新增
-			if (sortedList.get(i).getId() == null) {
-				sortedList.get(i).setTenantId(SecureUtil.getTenantId());
-				sortedList.get(i).setCreateUser(SecureUtil.getUserId());
-				sortedList.get(i).setCreateTime(new Date());
-				sortedList.get(i).setDistinguish(distinguish);
-				if (distinguish == 1) {
+				//id为空 新增
+				if (sortedList.get(i).getId() == null) {
+					sortedList.get(i).setTenantId(SecureUtil.getTenantId());
+					sortedList.get(i).setCreateUser(SecureUtil.getUserId());
+					sortedList.get(i).setCreateTime(new Date());
+					sortedList.get(i).setDistinguish(distinguish);
 					sortedList.get(i).setStatus(5);
 					if (ObjectUtil.isNotEmpty(corpsAttn)) {
 						sortedList.get(i).setCorpsAttnId(corpsAttn.getPid());
 					}
+					sortedList.get(i).setPid(pid);
+				} else {
+					//不为空 修改
+					sortedList.get(i).setTenantId(SecureUtil.getTenantId());
+					sortedList.get(i).setUpdateUser(SecureUtil.getUserId());
+					sortedList.get(i).setUpdateTime(new Date());
+					sortedList.get(i).setDistinguish(distinguish);
+					sortedList.get(i).setPid(pid);
+				}
+				list1.add(sortedList.get(i));
+			}
+			this.saveOrUpdateBatch(list1);
+			return list1;
+		} else {
+			for (int i = 0; i < list.size(); i++) {
+				//id为空 新增
+				if (list.get(i).getId() == null) {
+					list.get(i).setTenantId(SecureUtil.getTenantId());
+					list.get(i).setCreateUser(SecureUtil.getUserId());
+					list.get(i).setCreateTime(new Date());
+					list.get(i).setDistinguish(distinguish);
+					list.get(i).setStatus(5);
+					if (ObjectUtil.isNotEmpty(corpsAttn)) {
+						list.get(i).setCorpsAttnId(corpsAttn.getPid());
+					}
+					list.get(i).setPid(pid);
+				} else {
+					//不为空 修改
+					list.get(i).setTenantId(SecureUtil.getTenantId());
+					list.get(i).setUpdateUser(SecureUtil.getUserId());
+					list.get(i).setUpdateTime(new Date());
+					list.get(i).setDistinguish(distinguish);
+					list.get(i).setPid(pid);
 				}
-				sortedList.get(i).setPid(pid);
-			} else {
-				//不为空 修改
-				sortedList.get(i).setTenantId(SecureUtil.getTenantId());
-				sortedList.get(i).setUpdateUser(SecureUtil.getUserId());
-				sortedList.get(i).setUpdateTime(new Date());
-				sortedList.get(i).setDistinguish(distinguish);
-				sortedList.get(i).setPid(pid);
 			}
-			list1.add(sortedList.get(i));
+			this.saveOrUpdateBatch(list);
+			return list;
 		}
-		this.saveOrUpdateBatch(list1);
-		return list1;
 	}
 
 	/**

+ 3 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -2782,8 +2782,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	public R revoke(Order order) {
 		Order selectOrder = baseMapper.selectById(order.getId());
 		if (ObjectUtils.isNotNull(selectOrder)) {
-			List<Settlement> settlementList = financeClient.selectListBySrcId(selectOrder.getId(), null);
-			if (ObjectUtils.isNotNull(settlementList) && settlementList.size() > 0) {
+			Acc acc = financeClient.selectBySrcId(selectOrder.getId());
+			if (ObjectUtils.isNotNull(acc) && ObjectUtils.isNotNull(acc.getSettlementAmount()) && !acc.getSettlementAmount().equals(new BigDecimal("0.00"))) {
 				throw new RuntimeException("该账单已结算,无法撤回");
 			}
 			//根据角色设置权限
@@ -2961,6 +2961,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					this.paymentApply(order, order.getBillType(), order.getTradeType());
 				}
 			}
+			baseMapper.updateAmount(order);
 		}
 		return R.data(order);
 	}