Ver código fonte

多多配资总览接口

liyuan 1 mês atrás
pai
commit
6b012cf91f

+ 40 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/vo/CapitalSummaryDataVo.java

@@ -0,0 +1,40 @@
+package org.springblade.salesPart.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Rain
+ */
+@Data
+public class CapitalSummaryDataVo {
+
+	/**
+	 * 公司名称
+	 */
+	private String company;
+
+	/**
+	 * 门店数量
+	 */
+	private Long storeCount;
+
+	/**
+	 * 销售数量
+	 */
+	private Long sales;
+
+	/**
+	 * 库存数量
+	 */
+	private Long inventory;
+
+	/**
+	 * 销售金额
+	 */
+	private  BigDecimal amount;
+
+
+
+}

+ 33 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/vo/CapitalSummaryVo.java

@@ -0,0 +1,33 @@
+package org.springblade.salesPart.vo;
+
+import lombok.Data;
+
+/**
+ * @author Rain
+ */
+@Data
+public class CapitalSummaryVo {
+
+
+	/**
+	 * 年月
+	 */
+	private String yearMonth;
+
+	/**
+	 * 区域
+	 */
+	private String area;
+
+	/**
+	 * 公司ID
+	 */
+	private String tenantId;
+
+	/**
+	 * 销售公司ID
+	 */
+	private Long salesCompanyId;
+
+
+}

+ 5 - 0
blade-service-api/blade-system-api/src/main/java/org/springblade/system/duoduo/DuoDuoTenantVo.java

@@ -20,5 +20,10 @@ public class DuoDuoTenantVo {
 	 */
 	private String  customerName;
 
+	/**
+	 * 销售公司ID
+	 */
+	private Long salesCompanyId;
+
 
 }

+ 8 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/controller/StatisticsController.java

@@ -9,14 +9,14 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.salesPart.dto.*;
-import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.statistics.service.IStatisticsService;
+import org.springblade.salesPart.vo.CapitalSummaryDataVo;
+import org.springblade.salesPart.vo.CapitalSummaryVo;
 import org.springblade.salesPart.vo.DuoDuoColumnarRzVo;
 import org.springblade.salesPart.vo.DuoDuoRealTimeOverviewVo;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
-import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -288,4 +288,10 @@ public class StatisticsController {
 		return R.data(statisticsService.duoDuoColumnarRz(tenantId, year));
 	}
 
+
+	@PostMapping("/capitalSummary")
+	public R<List<CapitalSummaryDataVo>> capitalSummary(@RequestBody CapitalSummaryVo capitalSummaryVo) {
+		return R.data(statisticsService.capitalSummary(capitalSummaryVo));
+	}
+
 }

+ 50 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/mapper/StatisticsMapper.java

@@ -0,0 +1,50 @@
+package org.springblade.salesPart.statistics.mapper;
+
+
+import org.apache.ibatis.annotations.Param;
+import org.springblade.salesPart.vo.CapitalSummaryDataVo;
+import org.springblade.salesPart.vo.CapitalSummaryVo;
+import org.springblade.system.duoduo.DuoDuoTenantVo;
+
+import java.util.List;
+
+/**
+ * @author Rain
+ */
+public interface StatisticsMapper {
+
+	/**
+	 * 获取客户列表
+	 *
+	 * @return 结果
+	 */
+	List<DuoDuoTenantVo> getCustomerList();
+
+	/**
+	 * 获取库存数量
+	 *
+	 * @param customerCode   租户id
+	 * @param salesCompanyId 公司id
+	 * @return 结果
+	 */
+	Long getInventoryNumByTenantId(@Param("customerCode") String customerCode, @Param("salesCompanyId") Long salesCompanyId);
+
+
+	/**
+	 * 获取门店数量
+	 *
+	 * @param customerCode   租户id
+	 * @param salesCompanyId 公司id
+	 * @return 结果
+	 */
+	Long getStoreCountByTenantId(@Param("customerCode") String customerCode, @Param("salesCompanyId") Long salesCompanyId);
+
+
+	/**
+	 * 获取资金统计数据
+	 *
+	 * @param capitalSummaryVo 查询参数
+	 * @return 结果
+	 */
+	CapitalSummaryDataVo getCapitalSummarySalesData(CapitalSummaryVo capitalSummaryVo);
+}

+ 52 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/mapper/StatisticsMapper.xml

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--suppress ALL -->
+<mapper namespace="org.springblade.salesPart.statistics.mapper.StatisticsMapper">
+
+
+    <select id="getCustomerList" resultType="org.springblade.system.duoduo.DuoDuoTenantVo">
+        SELECT
+            bt.tenant_id as customerCode,
+            bt.tenant_name as customerName,
+            bps.sales_company_id as salesCompanyId
+        FROM
+            blade_param_service bps
+                INNER JOIN blade_tenant bt ON bps.tenant_id = bt.tenant_id
+        WHERE bps.param_key = 'whether.financing' and bps.param_value = 1
+    </select>
+
+    <select id="getInventoryNumByTenantId" resultType="java.lang.Long">
+        SELECT IFNULL(SUM(balance_quantity), 0)
+        FROM pjpf_stock_desc
+        WHERE tenant_id = #{customerCode}
+          and is_deleted = 0
+          and balance_quantity > 0
+          and sales_company_id = #{salesCompanyId}
+    </select>
+
+    <select id="getStoreCountByTenantId" resultType="java.lang.Long">
+        SELECT COUNT(id)
+        FROM pjpf_corps_desc
+        WHERE tenant_id = #{customerCode}
+          and sales_company_id = #{salesCompanyId}
+          AND is_deleted = 0
+          AND enable_or_not = 1
+          and check_status != '驳回' and corp_type = 'KH'
+    </select>
+    <select id="getCapitalSummarySalesData" resultType="org.springblade.salesPart.vo.CapitalSummaryDataVo"
+            parameterType="org.springblade.salesPart.vo.CapitalSummaryVo">
+        SELECT IFNULL(SUM(poi.goods_num), 0)                          AS sales,
+               SUM(poi.goods_num * poi.price + IFNULL(po.freight, 0)) AS amount
+        FROM `pjpf_order_items` poi
+                 INNER JOIN pjpf_order po ON poi.pid = po.id
+            AND po.tenant_id = poi.tenant_id
+        WHERE poi.is_deleted = 0
+          AND po.is_deleted = 0
+          AND poi.tenant_id = #{tenantId}
+          AND po.bs_type = 'XS'
+          AND po.`status` IN ('已发货', '退款请核', '已收货')
+          AND po.sales_company_id = #{salesCompanyId}
+          and DATE_FORMAT(po.busines_date, '%Y-%m') = #{yearMonth}
+
+    </select>
+</mapper>

+ 10 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/IStatisticsService.java

@@ -21,7 +21,8 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.salesPart.dto.*;
 import org.springblade.salesPart.entity.PjOrder;
-import org.springblade.salesPart.entity.PjOrderItems;
+import org.springblade.salesPart.vo.CapitalSummaryDataVo;
+import org.springblade.salesPart.vo.CapitalSummaryVo;
 import org.springblade.salesPart.vo.DuoDuoColumnarRzVo;
 import org.springblade.salesPart.vo.DuoDuoRealTimeOverviewVo;
 
@@ -148,4 +149,12 @@ public interface IStatisticsService {
 	 * @return 结果
 	 */
 	DuoDuoColumnarRzVo duoDuoColumnarRz(String tenantId, String year);
+
+	/**
+	 * 多多配资总览
+	 *
+	 * @param capitalSummaryVo 查询数据
+	 * @return 结果
+	 */
+	List<CapitalSummaryDataVo> capitalSummary(CapitalSummaryVo capitalSummaryVo);
 }

+ 28 - 6
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java

@@ -48,17 +48,14 @@ import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.order.service.IOrderService;
 import org.springblade.salesPart.ship.service.IShipItemsService;
 import org.springblade.salesPart.ship.service.IShipService;
+import org.springblade.salesPart.statistics.mapper.StatisticsMapper;
 import org.springblade.salesPart.statistics.service.IStatisticsService;
-import org.springblade.salesPart.tireMallStatistics.service.ITireMallStatisticsService;
-import org.springblade.salesPart.vo.AppStatisticsVo;
-import org.springblade.salesPart.vo.DuoDuoColumnarRzVo;
-import org.springblade.salesPart.vo.DuoDuoRealTimeOverviewVo;
-import org.springblade.salesPart.vo.StatisticsVo;
+import org.springblade.salesPart.vo.*;
+import org.springblade.system.duoduo.DuoDuoTenantVo;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
-import java.math.MathContext;
 import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.YearMonth;
@@ -92,6 +89,9 @@ public class StatisticsServiceImpl implements IStatisticsService {
 
 	private final OrderMapper orderMapper;
 
+	private final StatisticsMapper statisticsMapper;
+
+
 	@Override
 	public R<Map<String, Object>> amountStatistics() {
 		Map<String, Object> map = new HashMap<>();
@@ -2138,4 +2138,26 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		duoDuoColumnarRzVo.setPrimaryFundingAmount(primaryFundingAmount);
 		return duoDuoColumnarRzVo;
 	}
+
+    @Override
+	@TenantIgnore
+    public List<CapitalSummaryDataVo> capitalSummary(CapitalSummaryVo capitalSummaryVo) {
+		List<DuoDuoTenantVo> duoDuoTenantVoList = statisticsMapper.getCustomerList();
+		if (CollectionUtils.isEmpty(duoDuoTenantVoList)) {
+			return Collections.emptyList();
+		}
+		List<CapitalSummaryDataVo> capitalSummaryDataVoList = new ArrayList<>();
+		for (DuoDuoTenantVo duoDuoTenantVo : duoDuoTenantVoList) {
+			capitalSummaryVo.setTenantId(duoDuoTenantVo.getCustomerCode());
+			capitalSummaryVo.setSalesCompanyId(duoDuoTenantVo.getSalesCompanyId());
+			CapitalSummaryDataVo summaryDataVo = statisticsMapper.getCapitalSummarySalesData(capitalSummaryVo);
+			capitalSummaryDataVoList.add(summaryDataVo);
+			Long inventoryNum = statisticsMapper.getInventoryNumByTenantId(duoDuoTenantVo.getCustomerCode(), duoDuoTenantVo.getSalesCompanyId());
+			Long storeCount = statisticsMapper.getStoreCountByTenantId(duoDuoTenantVo.getCustomerCode(), duoDuoTenantVo.getSalesCompanyId());
+			summaryDataVo.setInventory(inventoryNum);
+			summaryDataVo.setStoreCount(storeCount);
+			summaryDataVo.setCompany(duoDuoTenantVo.getCustomerName());
+		}
+        return capitalSummaryDataVoList.stream().sorted(Comparator.comparing(CapitalSummaryDataVo::getSales).reversed()).collect(Collectors.toList());
+    }
 }