Browse Source

2023年2月1 8:30

wangzhuo 2 years ago
parent
commit
469e51258b

+ 22 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderStatisticsVo.java

@@ -4,6 +4,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * 统计分析 发货客户,业务员统计
@@ -126,4 +127,25 @@ public class OrderStatisticsVo implements Serializable {
 	 * 结束时间
 	 */
 	private String endTime;
+
+	/**
+	 * 明细日期
+	 */
+	private Date createTime;
+
+	/**
+	 * 销售单号
+	 */
+	private String orderNo;
+
+	/**
+	 * 到货数量
+	 */
+	private BigDecimal actualQuantity;
+
+	/**
+	 * 到货金额
+	 */
+	private BigDecimal arrivalAmount;
+
 }

+ 33 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -999,6 +999,17 @@ public class ExportOrderController extends BladeController {
 	}
 
 	/**
+	 * 发货客户明细统计
+	 */
+	@GetMapping("/corpStatisticsItem")
+	@ApiOperation(value = "发货客户明细统计" , notes = "发货客户明细统计")
+	public R corpStatisticsItem(OrderStatisticsVo statisticsVo, Query query){
+		statisticsVo.setTenantId(AuthUtil.getTenantId());
+		IPage<OrderStatisticsVo> pages = orderService.corpStatisticsItem(Condition.getPage(query), statisticsVo);
+		return R.data(pages);
+	}
+
+	/**
 	 * 统计分析 发货客户统计导出
 	 */
 	@GetMapping("/corpStatisticsExport")
@@ -1021,6 +1032,17 @@ public class ExportOrderController extends BladeController {
 	}
 
 	/**
+	 * 发货业务员明细统计
+	 */
+	@GetMapping("/salesmanStatisticsItem")
+	@ApiOperation(value = "发货业务员明细统计", notes = "发货业务员明细统计")
+	public R salesmanStatisticsItem(OrderStatisticsVo statisticsVo, Query query){
+		statisticsVo.setTenantId(AuthUtil.getTenantId());
+		IPage<OrderStatisticsVo> pages = orderService.salesmanStatisticsItem(Condition.getPage(query), statisticsVo);
+		return R.data(pages);
+	}
+
+	/**
 	 * 统计分析 发货业务员统计导出
 	 */
 	@GetMapping("/salesmanStatisticsExport")
@@ -1109,6 +1131,17 @@ public class ExportOrderController extends BladeController {
 	}
 
 	/**
+	 * 发货规格明细统计
+	 */
+	@GetMapping("/specificationsProfitItem")
+	@ApiOperation(value = "发货规格明细统计", notes = "发货规格明细统计")
+	public R specificationsProfitItem(OrderStatisticsVo statisticsVo, Query query){
+		statisticsVo.setTenantId(AuthUtil.getTenantId());
+		IPage<OrderStatisticsVo> pages = orderService.specificationsProfitItem(Condition.getPage(query), statisticsVo);
+		return R.data(pages);
+	}
+
+	/**
 	 * 统计分析 发货规格统计导出
 	 */
 	@GetMapping("/specificationsProfitExport")

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

@@ -31,5 +31,6 @@
     <select id="selectPcList" resultMap="bidingItemsResultMap">
         select * from business_biding_items where is_deleted = 0 and pid = #{biding.id}
         and distinguish = #{biding.distinguish}
+        order by corps_attn_id desc
     </select>
 </mapper>

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

@@ -67,5 +67,6 @@
                 and BB.release_time  &lt;= #{biding.releaseEndTime}
             </if>
         </where>
+        ORDER BY BB.release_time desc
     </select>
 </mapper>

+ 20 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java

@@ -237,7 +237,16 @@ public interface OrderMapper extends BaseMapper<Order> {
 	/**
 	 * 发货客户统计
 	 */
-	List<OrderStatisticsVo> corpStatistics(IPage<OrderStatisticsVo> page, @Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand, @Param("chargeMember") String chargeMember);
+	List<OrderStatisticsVo> corpStatistics(IPage<OrderStatisticsVo> page,
+										   @Param("statisticsVo") OrderStatisticsVo statisticsVo,
+										   @Param("brand") String brand, @Param("chargeMember") String chargeMember);
+
+	/**
+	 * 发货客户明细统计
+	 */
+	List<OrderStatisticsVo> corpStatisticsItem(IPage<OrderStatisticsVo> page,
+										   @Param("statisticsVo") OrderStatisticsVo statisticsVo,
+										   @Param("brand") String brand, @Param("chargeMember") String chargeMember);
 
 	/**
 	 * 发货客户统计导出
@@ -250,6 +259,11 @@ public interface OrderMapper extends BaseMapper<Order> {
 	List<OrderStatisticsVo> salesmanStatistics(IPage<OrderStatisticsVo> page, @Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand, @Param("chargeMember") String chargeMember);
 
 	/**
+	 * 发货业务员明细统计
+	 */
+	List<OrderStatisticsVo> salesmanStatisticsItem(IPage<OrderStatisticsVo> page, @Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand, @Param("chargeMember") String chargeMember);
+
+	/**
 	 * 发货业务员统计导出
 	 */
 	List<SalesmanStatisticsExcel> salesmanStatisticsExport(@Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand, @Param("chargeMember") String chargeMember);
@@ -290,6 +304,11 @@ public interface OrderMapper extends BaseMapper<Order> {
 	List<OrderStatisticsVo> specificationsProfit(IPage<OrderStatisticsVo> page, @Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand, @Param("chargeMember") String chargeMember);
 
 	/**
+	 * 发货规格明细统计
+	 */
+	List<OrderStatisticsVo> specificationsProfitItem(IPage<OrderStatisticsVo> page, @Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand, @Param("chargeMember") String chargeMember);
+
+	/**
 	 * 发货规格统计导出
 	 */
 	List<SpecificationsProfitExcel> specificationsProfitExport(@Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand, @Param("chargeMember") String chargeMember);

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

@@ -1400,7 +1400,7 @@ ORDER BY
                 AND BCD.belongtoarea like concat('%', #{statisticsVo.belongtoarea}, '%')
             </if>
             <if test="statisticsVo.corpName != null and statisticsVo.corpName != ''">
-                AND BCD.cname like concat('%', #{statisticsVo.corpName}, '%')
+                AND BCD.cname = #{statisticsVo.corpName}
             </if>
             <if test="statisticsVo.beginTime !=null and statisticsVo.beginTime != ''">
                 and BO.receipt_time &gt;= #{statisticsVo.beginTime}
@@ -1412,6 +1412,65 @@ ORDER BY
         GROUP BY BCD.cname
         order by quantity desc
     </select>
+
+    <select id="corpStatisticsItem" resultType="org.springblade.purchase.sales.vo.OrderStatisticsVo">
+        SELECT
+            BO.create_time as createTime,
+            BO.order_no as orderNo,
+            BOI.quantity AS quantity,
+            BO.debit_amount AS amount,
+            BOI.actualQuantity AS actualQuantity,
+            BOI.arrivalAmount AS arrivalAmount
+        FROM
+            business_order BO
+        LEFT JOIN (
+            SELECT
+                pid,
+                item_id,
+                IFNULL( sum( order_quantity ), 0 ) AS quantity,
+                IFNULL( sum( actual_quantity ), 0 ) AS actualQuantity,
+                IFNULL( SUM( actual_quantity * price ), 0 ) AS arrivalAmount
+            FROM
+                business_order_items
+            WHERE
+                is_deleted = 0
+            GROUP BY
+            pid
+        ) BOI ON BOI.pid = BO.id
+        LEFT JOIN basic_corps_desc BCD ON BCD.id = BO.corp_id
+        LEFT JOIN basic_goods_desc BGD ON BGD.id = BOI.item_id
+        <where>
+            BO.tenant_id = #{statisticsVo.tenantId}
+            and BO.is_deleted = 0
+            and BO.bill_type = 'XS'
+            AND BO.receipt_time IS NOT NULL
+            <if test="statisticsVo.brand != null and statisticsVo.brand != ''">
+                and BGD.brand in
+                <foreach item="item" index="index" collection="brand.split(',')" open="(" separator="," close=")">
+                    '${item}'
+                </foreach>
+            </if>
+            <if test="statisticsVo.chargeMember != null and statisticsVo.chargeMember != ''">
+                and BO.charge_member in
+                <foreach item="member" index="index" collection="chargeMember.split(',')" open="(" separator="," close=")">
+                    '${member}'
+                </foreach>
+            </if>
+            <if test="statisticsVo.belongtoarea != null and statisticsVo.belongtoarea != ''">
+                AND BCD.belongtoarea like concat('%', #{statisticsVo.belongtoarea}, '%')
+            </if>
+            <if test="statisticsVo.corpName != null and statisticsVo.corpName != ''">
+                AND BCD.cname = #{statisticsVo.corpName}
+            </if>
+            <if test="statisticsVo.beginTime !=null and statisticsVo.beginTime != ''">
+                and BO.receipt_time &gt;= #{statisticsVo.beginTime}
+            </if>
+            <if test="statisticsVo.endTime !=null and statisticsVo.endTime != ''">
+                and BO.receipt_time &lt;= #{statisticsVo.endTime}
+            </if>
+        </where>
+    </select>
+
     <select id="corpStatisticsExport" resultType="org.springblade.purchase.sales.excel.CorpStatisticsExcel">
         SELECT
         BCD.cname as corpName,
@@ -1468,6 +1527,7 @@ ORDER BY
         GROUP BY BCD.cname
         order by quantity desc
     </select>
+
     <select id="salesmanStatistics" resultType="org.springblade.purchase.sales.vo.OrderStatisticsVo">
         SELECT
             BO.charge_member as chargeMember,
@@ -1516,6 +1576,60 @@ ORDER BY
         GROUP BY BO.charge_member
         order by quantity desc
     </select>
+
+    <select id="salesmanStatisticsItem" resultType="org.springblade.purchase.sales.vo.OrderStatisticsVo">
+        SELECT
+            BO.create_time as createTime,
+            BO.order_no as orderNo,
+            BOI.quantity AS quantity,
+            BO.debit_amount AS amount,
+            BOI.actualQuantity AS actualQuantity,
+            BOI.arrivalAmount AS arrivalAmount,
+            BO.debit_amount - BOI.purchaseAmount AS grossProfit
+        FROM
+        business_order BO
+        LEFT JOIN (
+            SELECT
+                pid,
+                item_id,
+                IFNULL( sum( order_quantity ), 0 ) AS quantity,
+                IFNULL( sum( actual_quantity * purchase_amount ), 0 ) AS purchaseAmount,
+                IFNULL( sum( actual_quantity ), 0 ) AS actualQuantity,
+                IFNULL( SUM( actual_quantity * price ), 0 ) AS arrivalAmount
+            FROM
+                business_order_items
+            WHERE
+                is_deleted = 0
+            GROUP BY
+                pid
+        ) BOI ON BOI.pid = BO.id
+        LEFT JOIN basic_goods_desc BGD ON BGD.id = BOI.item_id
+        <where>
+            BO.tenant_id = #{statisticsVo.tenantId}
+            and BO.is_deleted = 0
+            and BO.bill_type = 'XS'
+            AND BO.receipt_time IS NOT NULL
+            <if test="statisticsVo.brand != null and statisticsVo.brand != ''">
+                and BGD.brand in
+                <foreach item="item" index="index" collection="brand.split(',')" open="(" separator="," close=")">
+                    '${item}'
+                </foreach>
+            </if>
+            <if test="statisticsVo.chargeMember != null and statisticsVo.chargeMember != ''">
+                and BO.charge_member in
+                <foreach item="member" index="index" collection="chargeMember.split(',')" open="(" separator="," close=")">
+                    '${member}'
+                </foreach>
+            </if>
+            <if test="statisticsVo.beginTime !=null and statisticsVo.beginTime != ''">
+                and BO.receipt_time &gt;= #{statisticsVo.beginTime}
+            </if>
+            <if test="statisticsVo.endTime !=null and statisticsVo.endTime != ''">
+                and BO.receipt_time &lt;= #{statisticsVo.endTime}
+            </if>
+        </where>
+    </select>
+
     <select id="salesmanStatisticsExport" resultType="org.springblade.purchase.sales.excel.SalesmanStatisticsExcel">
         SELECT
         BO.charge_member as chargeMember,
@@ -1874,6 +1988,7 @@ ORDER BY
         ORDER BY
         quantity DESC
     </select>
+
     <select id="specificationsProfit" resultType="org.springblade.purchase.sales.vo.OrderStatisticsVo">
         SELECT
             @rank := @rank + 1 AS rankNo,
@@ -1945,6 +2060,70 @@ ORDER BY
             ) temp,
         ( SELECT @rank := 0 ) b
     </select>
+
+    <select id="specificationsProfitItem" resultType="org.springblade.purchase.sales.vo.OrderStatisticsVo">
+        SELECT
+            BO.create_time as createTime,
+            BO.order_no as orderNo,
+            BOI.quantity AS quantity,
+            BOI.amount AS amount,
+            BOI.actualQuantity AS actualQuantity,
+            BOI.arrivalAmount AS arrivalAmount
+        FROM
+        business_order BO
+        LEFT JOIN (
+            SELECT
+                id,
+                pid,
+                item_id,
+                IFNULL( sum( order_quantity ), 0 ) AS quantity,
+                IFNULL( SUM( order_quantity * price ), 0 ) AS amount,
+                IFNULL( sum( actual_quantity ), 0 ) AS actualQuantity,
+                IFNULL( SUM( actual_quantity * price ), 0 ) AS arrivalAmount
+            FROM
+                business_order_items
+            WHERE
+                is_deleted = 0
+            GROUP BY
+                id
+        ) BOI ON BOI.pid = BO.id
+        LEFT JOIN basic_corps_desc BCD ON BCD.id = BO.corp_id
+        LEFT JOIN basic_goods_desc BGD ON BGD.id = BOI.item_id
+        <where>
+            BO.tenant_id = #{statisticsVo.tenantId}
+            and BO.is_deleted = 0
+            and BO.bill_type = 'XS'
+            AND BO.receipt_time IS NOT NULL
+            <if test="statisticsVo.brand != null and statisticsVo.brand != ''">
+                and BGD.brand in
+                <foreach item="item" index="index" collection="brand.split(',')" open="(" separator="," close=")">
+                    '${item}'
+                </foreach>
+            </if>
+            <if test="statisticsVo.chargeMember != null and statisticsVo.chargeMember != ''">
+                and BO.charge_member in
+                <foreach item="member" index="index" collection="chargeMember.split(',')" open="(" separator="," close=")">
+                    '${member}'
+                </foreach>
+            </if>
+            <if test="statisticsVo.corpId != null and statisticsVo.corpId != ''">
+                and BO.corp_id = #{statisticsVo.corpId}
+            </if>
+            <if test="statisticsVo.code != null and statisticsVo.code != ''">
+                AND BGD.CODE like concat('%', #{statisticsVo.code}, '%')
+            </if>
+            <if test="statisticsVo.typeNo != null and statisticsVo.typeNo != ''">
+                AND BGD.Typeno like concat('%', #{statisticsVo.typeNo}, '%')
+            </if>
+            <if test="statisticsVo.beginTime !=null and statisticsVo.beginTime != ''">
+                and BO.receipt_time &gt;= #{statisticsVo.beginTime}
+            </if>
+            <if test="statisticsVo.endTime !=null and statisticsVo.endTime != ''">
+                and BO.receipt_time &lt;= #{statisticsVo.endTime}
+            </if>
+        </where>
+    </select>
+
     <select id="specificationsProfitExport" resultType="org.springblade.purchase.sales.excel.SpecificationsProfitExcel">
         SELECT
             @rank := @rank + 1 AS rankNo,

+ 16 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java

@@ -271,6 +271,11 @@ public interface IOrderService extends IService<Order> {
 	IPage<OrderStatisticsVo> corpStatistics(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo);
 
 	/**
+	 * 发货客户明细统计
+	 */
+	IPage<OrderStatisticsVo> corpStatisticsItem(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo);
+
+	/**
 	 * 发货客户统计导出
 	 */
 	List<CorpStatisticsExcel> corpStatisticsExport(OrderStatisticsVo statisticsVo);
@@ -281,6 +286,11 @@ public interface IOrderService extends IService<Order> {
 	IPage<OrderStatisticsVo> salesmanStatistics(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo);
 
 	/**
+	 * 发货业务员明细统计
+	 */
+	IPage<OrderStatisticsVo> salesmanStatisticsItem(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo);
+
+	/**
 	 * 发货业务员统计导出
 	 */
 	List<SalesmanStatisticsExcel> salesmanStatisticsExport(OrderStatisticsVo statisticsVo);
@@ -316,11 +326,16 @@ public interface IOrderService extends IService<Order> {
 	List<BrandProfitExcel> brandProfitExport(OrderStatisticsVo statisticsVo);
 
 	/**
-	 * 发货规格统计统计
+	 * 发货规格统计
 	 */
 	IPage<OrderStatisticsVo> specificationsProfit(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo);
 
 	/**
+	 * 发货规格明细统计
+	 */
+	IPage<OrderStatisticsVo> specificationsProfitItem(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo);
+
+	/**
 	 * 发货规格统计导出
 	 */
 	List<SpecificationsProfitExcel> specificationsProfitExport(OrderStatisticsVo statisticsVo);

+ 1 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/BidingItemsServiceImpl.java

@@ -254,6 +254,7 @@ public class BidingItemsServiceImpl extends ServiceImpl<BidingItemsMapper, Bidin
 
 			//更新代理明细信息
 			bidingAgent.setStatus(6);
+			bidingAgent.setNonEditable(1);
 			bidingAgentMapper.updateById(bidingAgent);
 		}
 

+ 25 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -1716,6 +1716,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	/**
+	 * 发货客户明细统计
+	 */
+	@Override
+	public IPage<OrderStatisticsVo> corpStatisticsItem(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
+		return page.setRecords(baseMapper.corpStatisticsItem(page, statisticsVo, statisticsVo.getBrand(), statisticsVo.getChargeMember()));
+	}
+
+	/**
 	 * 发货客户统计导出
 	 */
 	@Override
@@ -1732,6 +1740,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	/**
+	 * 发货业务员明细统计
+	 */
+	@Override
+	public IPage<OrderStatisticsVo> salesmanStatisticsItem(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
+		return page.setRecords(baseMapper.salesmanStatisticsItem(page, statisticsVo, statisticsVo.getBrand(), statisticsVo.getChargeMember()));
+	}
+
+	/**
 	 * 发货业务员统计导出
 	 */
 	@Override
@@ -1788,7 +1804,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	/**
-	 * 发货规格统计统计
+	 * 发货规格统计
 	 */
 	@Override
 	public IPage<OrderStatisticsVo> specificationsProfit(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
@@ -1796,6 +1812,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	/**
+	 * 发货规格明细统计
+	 */
+	@Override
+	public IPage<OrderStatisticsVo> specificationsProfitItem(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
+		return page.setRecords(baseMapper.specificationsProfitItem(page, statisticsVo, statisticsVo.getBrand(), statisticsVo.getChargeMember()));
+	}
+
+	/**
 	 * 发货规格统计导出
 	 */
 	@Override