|
|
@@ -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);
|