Ver código fonte

出口贸易福达修改

lazhaoqian 3 anos atrás
pai
commit
19a43f89fd

+ 10 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/feign/IDeliveryClient.java

@@ -23,6 +23,7 @@ public interface IDeliveryClient {
 	String LIST_BY_ITEM_ID = API_PREFIX + "listByItemId";
 	String GET_FEES_BY_ID = API_PREFIX + "getFeesById";
 	String SUBMIT_FEES = API_PREFIX + "submitFees";
+	String GET_ORDER_MESSAGE = API_PREFIX + "getOrderMessage";
 
 	/**
 	 * 生成发货单
@@ -41,4 +42,13 @@ public interface IDeliveryClient {
 	@PostMapping(SUBMIT_FEES)
 	R submitFees (@RequestBody DeliveryFees deliveryFees);
 
+	/**
+	 * 根据销售订单系统号获取是否生成发货单
+	 * @param srcOrderNo
+	 * @return
+	 */
+	@GetMapping(GET_ORDER_MESSAGE)
+	List<Delivery> getOrderMessage(@RequestParam("srcOrderNo") String srcOrderNo,
+								   @RequestParam("tradeType") String tradeType);
+
 }

+ 13 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java

@@ -737,4 +737,17 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "采购报价")
 	@TableField(exist = false)
 	private BigDecimal purchasePrice;
+	/**
+	 * 费用应收
+	 */
+	@ApiModelProperty(value = "费用应收")
+	@TableField(exist = false)
+	private BigDecimal fd;
+	/**
+	 * 费用应付
+	 */
+	@ApiModelProperty(value = "费用应付")
+	@TableField(exist = false)
+	private BigDecimal fc;
+
 }

+ 9 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/feign/IFinanceClient.java

@@ -39,4 +39,13 @@ public interface IFinanceClient
 
 	@PostMapping("settlement/submit")
 	R submit(@Valid @RequestBody Settlement settlement);
+
+	/**
+	 * 根据订单号获取账单信息
+	 * @param accSysNo
+	 * @param tradeType
+	 * @return
+	 */
+	@GetMapping("/settlement/getFinanceAccList")
+	List<Acc> getFinanceAccList(@RequestParam("accSysNo")String accSysNo,@RequestParam("tradeType")String tradeType);
 }

+ 8 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/feign/DeliveryClient.java

@@ -1,8 +1,10 @@
 package org.springblade.deliver.goods.feign;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
 import org.springblade.deliver.goods.entity.Delivery;
@@ -59,4 +61,10 @@ public class DeliveryClient implements IDeliveryClient{
 		feesService.updateById(deliveryFees);
 		return R.success("操作成功");
 	}
+
+	@Override
+	@GetMapping(GET_ORDER_MESSAGE)
+	public List<Delivery> getOrderMessage(String srcOrderNo,String tradeType) {
+		return deliveryService.list(new QueryWrapper<Delivery>().eq("src_order_no",srcOrderNo).eq("is_deleted",0).eq("tenant_id", SecureUtil.getTenantId()).eq("trade_type",tradeType));
+	}
 }

+ 9 - 8
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -43,6 +43,8 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.deliver.goods.entity.Delivery;
+import org.springblade.deliver.goods.feign.IDeliveryClient;
 import org.springblade.finance.vojo.Acc;
 import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.finance.vojo.Settlement;
@@ -87,6 +89,7 @@ public class OrderController extends BladeController {
 	private final IUserClient userClient;//获取用户信息
 	private final IFeesDescClient feesDescClient;
 	private final IFinanceClient iFinanceClient;
+	private final IDeliveryClient deliveryClient;
 
 
 	/**
@@ -228,17 +231,15 @@ public class OrderController extends BladeController {
 			throw  new SecurityException("销售单已生成采购单不能删除");
 		}
 		//是否生成发货单
-		LambdaQueryWrapper<Order> lambdaQuery = new LambdaQueryWrapper<>();
-		lambdaQuery.eq(Order::getSrcOrderNo,orderMessage.getSysNo());
-		lambdaQuery.eq(Order::getTradeType,OrderTypeEnum.DOMESTIC.getType());
-		lambdaQuery.eq(Order::getBillType,OrderTypeEnum.SHIP.getType());
-		lambdaQuery.eq(Order::getIsDeleted,0);
-		List<Order> list = orderService.list(lambdaQuery);
+		List<Delivery> list = deliveryClient.getOrderMessage(orderMessage.getSysNo(),OrderTypeEnum.DOMESTIC.getType());
 		if (CollectionUtils.isNotEmpty(list)){
 			throw  new SecurityException("销售单已生成发货单不能删除");
 		}
-		//是否生成账单
-		LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
+		//是否生成账单单
+		List<Acc> financeAcc = iFinanceClient.getFinanceAccList(orderMessage.getOrderNo(), OrderTypeEnum.DOMESTIC.getType());
+		if (CollectionUtils.isNotEmpty(financeAcc)){
+			throw  new SecurityException("销售单已生成账单不能删除");
+		}
 		order.setIsDeleted(1);
 		orderService.updateById(order);
 		orderItemsService.updateByPid(order.getId());

+ 11 - 7
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/entrance/EntranceOrderController.java

@@ -21,6 +21,10 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.deliver.goods.entity.Delivery;
+import org.springblade.deliver.goods.feign.IDeliveryClient;
+import org.springblade.finance.feign.IFinanceClient;
+import org.springblade.finance.vojo.Acc;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.service.*;
@@ -58,6 +62,8 @@ public class EntranceOrderController extends BladeController {
 	private final IOrderFreightService orderFreightService;
 	private final IOrderModifyService orderModifyService;
 	private final IOrderPartsService orderPartsService;
+	private final IFinanceClient financeClient;
+	private final IDeliveryClient deliveryClient;
 
 	/**
 	 * 详情
@@ -193,17 +199,15 @@ public class EntranceOrderController extends BladeController {
 			throw  new SecurityException("销售单已生成采购单不能删除");
 		}
 		//是否生成发货单
-		LambdaQueryWrapper<Order> lambdaQuery = new LambdaQueryWrapper<>();
-		lambdaQuery.eq(Order::getSrcOrderNo,orderMessage.getSysNo());
-		lambdaQuery.eq(Order::getTradeType,OrderTypeEnum.DOMESTIC.getType());
-		lambdaQuery.eq(Order::getBillType,OrderTypeEnum.SHIP.getType());
-		lambdaQuery.eq(Order::getIsDeleted,0);
-		List<Order> list = orderService.list(lambdaQuery);
+		List<Delivery> list = deliveryClient.getOrderMessage(orderMessage.getSysNo(),OrderTypeEnum.IMPORT.getType());
 		if (CollectionUtils.isNotEmpty(list)){
 			throw  new SecurityException("销售单已生成发货单不能删除");
 		}
 		//是否生成账单
-		LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
+		List<Acc> financeAcc = financeClient.getFinanceAccList(orderMessage.getOrderNo(), OrderTypeEnum.IMPORT.getType());
+		if (CollectionUtils.isNotEmpty(financeAcc)){
+			throw  new SecurityException("销售单已生成账单不能删除");
+		}
 		order.setIsDeleted(1);
 		orderService.updateById(order);
 		orderItemsService.updateByPid(order.getId());

+ 1 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java

@@ -169,7 +169,7 @@ public class ExportEnquiryController extends BladeController {
 		Order orderMessage = orderService.getById(order.getId());
 		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(Order::getSrcOrderNo,orderMessage.getSysNo());
-		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.IMPORT.getType());
+		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.EXPORT.getType());
 		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.SALES.getType());
 		lambdaQueryWrapper.eq(Order::getIsDeleted,0);
 		List<Order> orderList = orderService.list(lambdaQueryWrapper);

+ 30 - 9
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -18,7 +18,12 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.deliver.goods.entity.Delivery;
+import org.springblade.deliver.goods.feign.IDeliveryClient;
+import org.springblade.finance.feign.IFinanceClient;
+import org.springblade.finance.vojo.Acc;
 import org.springblade.purchase.sales.entity.Order;
+import org.springblade.purchase.sales.entity.OrderFees;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.service.*;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
@@ -49,6 +54,8 @@ public class ExportOrderController extends BladeController {
 	private final IOrderFreightService orderFreightService;
 	private final IOrderModifyService orderModifyService;
 	private final IOrderPartsService orderPartsService;
+	private final IFinanceClient financeClient;
+	private final IDeliveryClient deliveryClient;
 	/**
 	 * 详情
 	 */
@@ -179,17 +186,15 @@ public class ExportOrderController extends BladeController {
 			throw  new SecurityException("销售单已生成采购单不能删除");
 		}
 		//是否生成发货单
-		LambdaQueryWrapper<Order> lambdaQuery = new LambdaQueryWrapper<>();
-		lambdaQuery.eq(Order::getSrcOrderNo,orderMessage.getSysNo());
-		lambdaQuery.eq(Order::getTradeType,OrderTypeEnum.DOMESTIC.getType());
-		lambdaQuery.eq(Order::getBillType,OrderTypeEnum.SHIP.getType());
-		lambdaQuery.eq(Order::getIsDeleted,0);
-		List<Order> list = orderService.list(lambdaQuery);
+		List<Delivery> list = deliveryClient.getOrderMessage(orderMessage.getSysNo(),OrderTypeEnum.EXPORT.getType());
 		if (CollectionUtils.isNotEmpty(list)){
 			throw  new SecurityException("销售单已生成发货单不能删除");
 		}
 		//是否生成账单
-		LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
+		List<Acc> financeAcc = financeClient.getFinanceAccList(orderMessage.getOrderNo(), OrderTypeEnum.EXPORT.getType());
+		if (CollectionUtils.isNotEmpty(financeAcc)){
+			throw  new SecurityException("销售单已生成账单不能删除");
+		}
 		order.setIsDeleted(1);
 		orderService.updateById(order);
 		orderItemsService.updateByPid(order.getId());
@@ -280,7 +285,7 @@ public class ExportOrderController extends BladeController {
 		return R.data(orderService.createMarket(order));
 	}
 	/**
-	 * 自定义分页 销售或采购订单表
+	 * 销售利润
 	 */
 	@GetMapping("/profit")
 	@ApiOperationSupport(order = 3)
@@ -309,7 +314,7 @@ public class ExportOrderController extends BladeController {
 					}
 				}
 				//获取订单明细
-				List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0));
+				List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0).eq("tenant_id",item.getTenantId()));
 				if (CollectionUtils.isNotEmpty(list)){
 					item.setAmount(list.stream().filter(e -> e.getAmount() != null).map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
 					item.setProcurementCost(list.stream().reduce(BigDecimal.ZERO,(x,y) ->{
@@ -319,6 +324,22 @@ public class ExportOrderController extends BladeController {
 						return x.add(y.getPurchaseAmount().multiply(y.getOrderQuantity()));
 					},BigDecimal::add));//采购报价金额和
 				}
+				//获取应收费用
+				List<OrderFees> orderFees = orderFeesService.list(new QueryWrapper<OrderFees>().eq("pid", item.getId()).eq("is_deleted", 0).eq("tenant_id", item.getTenantId()).eq("fees_type", 1));
+				//获取应付费用
+				List<OrderFees> orderFeesList = orderFeesService.list(new QueryWrapper<OrderFees>().eq("pid", item.getId()).eq("is_deleted", 0).eq("tenant_id", item.getTenantId()).eq("fees_type", 2));
+				if (CollectionUtils.isNotEmpty(orderFees)){
+					item.setFd(orderFees.stream().filter(e -> e.getAmount() != null).map(OrderFees::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));
+				}else {
+					item.setFd(BigDecimal.ZERO);
+				}
+				if (CollectionUtils.isNotEmpty(orderFeesList)){
+					item.setFc(orderFeesList.stream().filter(e -> e.getAmount() != null).map(OrderFees::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));
+				}else {
+					item.setFc(BigDecimal.ZERO);
+				}
+				//计算单票利润=单票利润+费用应收-费用应付
+				item.setSingleTicketMargin(item.getSingleTicketMargin().add(item.getFd()).subtract(item.getFc()));
 			});
 		}
 		return R.data(page);

+ 13 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

@@ -378,6 +378,19 @@ public class SettlementController extends BladeController {
 	{
 		return R.data(settlementService.getProjectList(search, accountName));
 	}
+	//根据订单号获取账单
+	@GetMapping("/getFinanceAccList")
+	public List<Acc> getFinanceAccList(@RequestParam(value = "accSysNo",required = true)String accSysNo,@RequestParam(value = "tradeType",required = true)String tradeType)
+	{
+		LambdaQueryWrapper<Acc> accLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		accLambdaQueryWrapper
+			.eq(Acc::getAccSysNo,accSysNo)
+			.eq(Acc::getBillType,"收费")
+			.eq(Acc::getTradeType,tradeType)
+			.eq(Acc::getTenantId,AuthUtil.getTenantId())
+			.eq(Acc::getIsDeleted,0);
+		return accService.list(accLambdaQueryWrapper);
+	}
 
 
 

+ 1 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/PurchaseEnquiry.java

@@ -100,6 +100,7 @@ public class PurchaseEnquiry  extends BladeController {
 		lambdaQueryWrapper.eq(Order::getBillType, OrderTypeEnum.PURCHASE_ENQUIRY.getType());//订单类型
 		lambdaQueryWrapper.eq(Order::getTradeType, OrderTypeEnum.EXPORT.getType());//贸易类型
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()), Order::getOrderNo, order.getOrderNo());//订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getIfEnquiry()), Order::getIfEnquiry, order.getIfEnquiry());//询价状态
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
 		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()), Order::getBusinesDate, order.getContractStartDate());//合同日期开始
 		lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractEndDate()), Order::getBusinesDate, order.getContractEndDate());//合同日期结束

+ 1 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -581,6 +581,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			submitDto.setSysNo((String) billNo.getData());
 			submitDto.setCreateUser(SecureUtil.getUserId());
 			submitDto.setCreateTime(new Date());
+			submitDto.setIfEnquiry("待询价");
 			baseMapper.insert(submitDto);
 		}else {
 			submitDto.setUpdateUser(SecureUtil.getUserId());