Browse Source

2022年8月29日 12:52

wangzhuo 3 years ago
parent
commit
6755836434
20 changed files with 373 additions and 14 deletions
  1. 6 0
      blade-service-api/blade-desk-api/pom.xml
  2. 8 1
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/entity/Notice.java
  3. 5 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderEnum.java
  4. 11 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/MonthSales.java
  5. 31 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderIncomeVo.java
  6. 2 2
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/SalesTrend.java
  7. 27 0
      blade-service/blade-desk/src/main/java/org/springblade/desk/controller/NoticeController.java
  8. 18 0
      blade-service/blade-desk/src/main/java/org/springblade/desk/service/INoticeService.java
  9. 32 0
      blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/NoticeServiceImpl.java
  10. 2 2
      blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderFeeController.java
  11. 2 1
      blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderFeeService.java
  12. 2 2
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderFeeServiceImpl.java
  13. 11 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java
  14. 9 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java
  15. 1 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.java
  16. 43 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java
  17. 108 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  18. 1 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java
  19. 7 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java
  20. 47 4
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

+ 6 - 0
blade-service-api/blade-desk-api/pom.xml

@@ -19,6 +19,12 @@
             <version>2.8.2.RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-client-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
     <packaging>jar</packaging>
 

+ 8 - 1
blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/entity/Notice.java

@@ -16,13 +16,16 @@
  */
 package org.springblade.desk.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.springblade.client.entity.CommonFile;
 import org.springblade.core.tenant.mp.TenantEntity;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 实体类
@@ -41,7 +44,6 @@ public class Notice extends TenantEntity {
 	 */
 	@ApiModelProperty(value = "标题")
 	private String title;
-
 	/**
 	 * 通知类型
 	 */
@@ -66,4 +68,9 @@ public class Notice extends TenantEntity {
 	@ApiModelProperty(value = "发送范围")
 	private String sendRange;
 
+	/**
+	 * 附件
+	 */
+	@TableField(exist = false)
+	private List<CommonFile> fileList;
 }

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

@@ -17,6 +17,11 @@ public enum  OrderEnum {
 	 */
 	SUBMIT("已提交"),
 
+	/**
+	 * 审批通过
+	 */
+	APPROVED("审批通过"),
+
 	;
 
 

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

@@ -32,4 +32,15 @@ public class MonthSales implements Serializable {
 	 */
 	@ApiModelProperty(value = "达成率")
 	private BigDecimal yieldRate;
+
+	/**
+	 * 已销售数量
+	 */
+	@ApiModelProperty(value = "已销售数量")
+	private BigDecimal soldQuantity;
+	/**
+	 * 未销售数量
+	 */
+	@ApiModelProperty(value = "未销售数量")
+	private BigDecimal unsoldQuantity;
 }

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

@@ -0,0 +1,31 @@
+package org.springblade.purchase.sales.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * app首页营业收入,采购支出
+ */
+@Data
+public class OrderIncomeVo implements Serializable {
+
+	private static final Long serialVersionUID = 1L;
+
+	/**
+	 * 营业收入
+	 */
+	private BigDecimal businessIncome;
+
+	/**
+	 * 采购支出
+	 */
+	private BigDecimal ProcurementExpenditure;
+
+	/**
+	 * 租户名称
+	 */
+	private String tenantName;
+
+}

+ 2 - 2
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/SalesTrend.java

@@ -19,8 +19,8 @@ public class SalesTrend implements Serializable {
 	@ApiModelProperty(value = "月份")
 	private String moon;
 	/**
-	 * 销售金额
+	 * 销售轮胎数量
 	 */
-	@ApiModelProperty(value = "销售金额")
+	@ApiModelProperty(value = "销售轮胎数量")
 	private BigDecimal money;
 }

+ 27 - 0
blade-service/blade-desk/src/main/java/org/springblade/desk/controller/NoticeController.java

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsDesc;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.BladePage;
 import org.springblade.core.mp.support.Condition;
@@ -27,6 +28,7 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.tenant.annotation.TenantDS;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.desk.entity.Notice;
 import org.springblade.desk.feign.INoticeClient;
 import org.springblade.desk.service.INoticeService;
@@ -76,6 +78,11 @@ public class NoticeController extends BladeController {
 	@ApiOperation(value = "分页", notes = "传入notice")
 	public R<IPage<NoticeVO>> list(@ApiIgnore @RequestParam Map<String, Object> notice, Query query) {
 		IPage<Notice> pages = noticeService.page(Condition.getPage(query), Condition.getQueryWrapper(notice, Notice.class));
+		if (ObjectUtil.isNotEmpty(pages)){
+			pages.getRecords().stream().forEach(item -> {
+				item.setFileList(noticeService.fileList(item.getId()));
+			});
+		}
 		return R.data(NoticeWrapper.build().pageVO(pages));
 	}
 
@@ -146,4 +153,24 @@ public class NoticeController extends BladeController {
 		return R.data(page);
 	}
 
+	/**
+	 * 附件上传
+	 */
+	@PostMapping("/file")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "附件上传", notes = "传入fileList")
+	public R file(@RequestBody Notice notice) {
+		return R.status(noticeService.file(notice));
+	}
+
+	/**
+	 * 附件列表
+	 */
+	@GetMapping("/file-list")
+	@ApiOperationSupport(order = 16)
+	@ApiOperation(value = "附件列表", notes = "传入id")
+	public R fileList(Long id) {
+		return R.data(noticeService.fileList(id));
+	}
+
 }

+ 18 - 0
blade-service/blade-desk/src/main/java/org/springblade/desk/service/INoticeService.java

@@ -17,10 +17,13 @@
 package org.springblade.desk.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.client.entity.CommonFile;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.desk.entity.Notice;
 import org.springblade.desk.vo.NoticeVO;
 
+import java.util.List;
+
 /**
  * 服务类
  *
@@ -36,4 +39,19 @@ public interface INoticeService extends BaseService<Notice> {
 	 */
 	IPage<NoticeVO> selectNoticePage(IPage<NoticeVO> page, NoticeVO notice);
 
+	/**
+	 * 附件上传
+	 *
+	 * @param notice
+	 * @return
+	 */
+	boolean file(Notice notice);
+
+	/**
+	 * 附件列表
+	 *
+	 * @param id
+	 * @return
+	 */
+	List<CommonFile> fileList(Long id);
 }

+ 32 - 0
blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/NoticeServiceImpl.java

@@ -17,22 +17,33 @@
 package org.springblade.desk.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CommonFile;
+import org.springblade.client.feign.ICommonFileClient;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.desk.entity.Notice;
 import org.springblade.desk.mapper.NoticeMapper;
 import org.springblade.desk.service.INoticeService;
 import org.springblade.desk.vo.NoticeVO;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
+import java.util.List;
+
 /**
  * 服务实现类
  *
  * @author Chill
  */
 @Service
+@AllArgsConstructor
 public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> implements INoticeService {
 
+	private final ICommonFileClient commonFileClient;
+
 	@Override
 	public IPage<NoticeVO> selectNoticePage(IPage<NoticeVO> page, NoticeVO notice) {
 		// 若不使用mybatis-plus自带的分页方法,则不会自动带入tenantId,所以我们需要自行注入
@@ -40,4 +51,25 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 		return page.setRecords(baseMapper.selectNoticePage(page, notice));
 	}
 
+	@Override
+	public boolean file(Notice notice) {
+		List<CommonFile> fileList = notice.getFileList();
+		fileList.forEach(file -> {
+			if (ObjectUtil.isEmpty(file.getId())) {
+				file.setPid(notice.getId());
+				file.setSource("LAND_NOTICE_FEE");
+			}
+		});
+		commonFileClient.saveList(fileList);
+		return true;
+	}
+
+	@Override
+	public List<CommonFile> fileList(Long id) {
+		R<List<CommonFile>> fileList = commonFileClient.getList(id, "LAND_NOTICE_FEE");
+		if (fileList.isSuccess() && fileList.getData() != null) {
+			return fileList.getData();
+		}
+		return Collections.emptyList();
+	}
 }

+ 2 - 2
blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderFeeController.java

@@ -160,8 +160,8 @@ public class OrderFeeController extends BladeController {
 	 * 确认
 	 */
 	@PostMapping("/confirm")
-	public R confirm(@RequestParam Long itemId) {
-		return R.status(orderFeeService.confirm(itemId));
+	public R confirm(@RequestParam Long orderId, @RequestParam Long itemId) {
+		return R.status(orderFeeService.confirm(orderId,itemId));
 	}
 
 	/**

+ 2 - 1
blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderFeeService.java

@@ -86,9 +86,10 @@ public interface IOrderFeeService extends IService<OrderFee> {
 	 * 确认
 	 *
 	 * @param itemId
+	 * @param orderId
 	 * @return
 	 */
-	boolean confirm(Long itemId);
+	boolean confirm(Long orderId, Long itemId);
 
 	/**
 	 * 取消确认

+ 2 - 2
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderFeeServiceImpl.java

@@ -164,11 +164,11 @@ public class OrderFeeServiceImpl extends ServiceImpl<OrderFeeMapper, OrderFee> i
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean confirm(Long itemId) {
+	public boolean confirm(Long orderId, Long itemId) {
 		OrderFee orderFee = new OrderFee();
 		orderFee.setConfirmStatus(1);
 		baseMapper.update(orderFee, new LambdaUpdateWrapper<OrderFee>()
-			.eq(OrderFee::getItemId, itemId)
+			.eq(OrderFee::getOrderId, orderId)
 		);
 
 		OrderItem temp = new OrderItem();

+ 11 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -735,4 +735,15 @@ public class OrderController extends BladeController {
 		return R.data(pages);
 	}
 
+	/**
+	 * 获得app首页营业收入和采购支出
+	 * @param order
+	 * @return
+	 */
+	@GetMapping("/orderIncome")
+	@ApiOperation(value = "营业收入和采购支出", notes = "传入order")
+	public R orderIncome(OrderVO order){
+		return R.data(orderService.orderIncome(order));
+	}
+
 }

+ 9 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java

@@ -16,15 +16,19 @@
  */
 package org.springblade.purchase.sales.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.FeesDesc;
 import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.boot.ctrl.BladeController;
@@ -35,9 +39,11 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.deliver.goods.entity.Delivery;
 import org.springblade.deliver.goods.feign.IDeliveryClient;
 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.excel.*;
 import org.springblade.purchase.sales.service.IOrderItemsService;
@@ -52,6 +58,9 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.List;
 

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

@@ -197,4 +197,5 @@ public interface OrderItemsMapper extends BaseMapper<OrderItems> {
 	 * @param id 订单主表id
 	 */
 	Integer submitPay(@Param("id") Long id);
+
 }

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

@@ -140,7 +140,49 @@ public interface OrderMapper extends BaseMapper<Order> {
 	BigDecimal monthSales(@Param("tenantId") String tenantId,
 						  @Param("tradeType") String tradeType,
 						  @Param("billType") String billType,
-						  @Param("orderStatus") String orderStatus);
+						  @Param("orderStatus") String orderStatus,
+						  @Param("orderStartDate") String orderStartDate,
+						  @Param("orderEndDate") String orderEndDate);
+
+	/**
+	 * APP首页获取营业收入
+	 * @param tenantId 			租户id
+	 * @param tradeType 		贸易类型
+	 * @param orderStartDate 	当月开始时间
+	 * @param orderEndDate		当月结束时间
+	 * @return
+	 */
+	BigDecimal orderIncome(@Param("tenantId") String tenantId,
+						   @Param("tradeType") String tradeType,
+						   @Param("orderStartDate") String orderStartDate,
+						   @Param("orderEndDate") String orderEndDate);
+
+	/**
+	 * APP首页获取采购支出
+	 * @param tenantId 			租户id
+	 * @param orderStartDate 	当月开始时间
+	 * @param orderEndDate		当月结束时间
+	 * @return
+	 */
+	BigDecimal purchaseExpenditure(@Param("tenantId") String tenantId,
+								   @Param("tradeType") String tradeType,
+								   @Param("orderStartDate") String orderStartDate,
+								   @Param("orderEndDate") String orderEndDate);
+
+	/**
+	 * 首页获取当月销售数量
+	 * @param tenantId 租户id
+	 * @param tradeType 贸易类型
+	 * @param billType 订单类型
+	 * @param orderStatus 订单状态
+	 * @return
+	 */
+	BigDecimal QuantitySales(@Param("tenantId") String tenantId,
+						  @Param("tradeType") String tradeType,
+						  @Param("billType") String billType,
+						  @Param("orderStatus") String orderStatus,
+						  @Param("orderStartDate") String orderStartDate,
+						  @Param("orderEndDate") String orderEndDate);
 
 	/**
 	 * 更新订单信息

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

@@ -502,7 +502,7 @@ FROM
 	LEFT JOIN (
 	SELECT
 		DATE_FORMAT( bo.busines_date, '%m' ) AS moon,
-		ROUND( IFNULL( SUM( bi.amount * bi.exchange_rate ), 0 ), 2 ) AS money
+		ROUND( IFNULL( SUM( bi.order_quantity ), 0 ), 2 ) AS money
 	FROM
         business_order bo
         LEFT JOIN business_order_items bi ON bo.id = bi.pid
@@ -723,9 +723,47 @@ ORDER BY
         <if test="tenantId!=null and tenantId != ''">
             AND bo.tenant_id = #{tenantId}
         </if>
+        <if test="orderStatus!=null and orderStatus != '' and orderStatus == '审批通过'">
+            AND bo.order_status = #{orderStatus}
+        </if>
+        <if test="orderStatus!=null and orderStatus != '' and orderStatus == '录入'">
+            AND bo.order_status NOT IN ('审批通过')
+        </if>
+        <if test="orderStartDate !=null and orderStartDate != ''">
+            and bo.busines_date &gt;= #{orderStartDate}
+        </if>
+        <if test="orderEndDate !=null and orderEndDate != ''">
+            and bo.busines_date &lt;= #{orderEndDate}
+        </if>
+    </select>
+    <select id="QuantitySales"  resultType="BigDecimal">
+        SELECT
+        ROUND( IFNULL( SUM( bi.order_quantity ), 0 ), 2 ) AS a
+        FROM
+        `business_order` bo
+        LEFT JOIN business_order_items bi ON bo.id = bi.pid
+        WHERE
+        bo.is_deleted = 0
+        AND bi.is_deleted = 0
+        <if test="tradeType!=null and tradeType != ''">
+            AND bo.trade_type = #{tradeType}
+        </if>
+        <if test="billType!=null and billType != ''">
+            AND bo.bill_type = #{billType}
+        </if>
+        <if test="tenantId!=null and tenantId != ''">
+            AND bo.tenant_id = #{tenantId}
+        </if>
         <if test="orderStatus!=null and orderStatus != ''">
             AND bo.order_status = #{orderStatus}
         </if>
+
+        <if test="orderStartDate !=null and orderStartDate != ''">
+            and bo.busines_date &gt;= #{orderStartDate}
+        </if>
+        <if test="orderEndDate !=null and orderEndDate != ''">
+            and bo.busines_date &lt;= #{orderEndDate}
+        </if>
     </select>
     <select id="selPackingFee" resultType="org.springblade.purchase.sales.vo.SalesDetailsVo">
         SELECT
@@ -1266,4 +1304,73 @@ ORDER BY
         </trim>
         where id = #{id}
     </update>
+    <select id="orderIncome" resultType="BigDecimal">
+        SELECT
+            SUM(IFNULL( BOIT.amount, 0 ) + IFNULL( BOFT.amount, 0 )) businessIncome
+        FROM
+        business_order BO
+        LEFT JOIN (
+            SELECT
+                BO.id,
+                ROUND( IFNULL( SUM( BOI.amount ), 0 ), 2 ) AS amount
+            FROM business_order BO
+            LEFT JOIN business_order_items BOI ON BOI.pid = BO.id
+            WHERE BOI.is_deleted = 0
+            GROUP BY BO.id
+        ) BOIT ON BOIT.id = BO.id
+        LEFT JOIN (
+            SELECT
+                BO.id,
+                BOF.item_id,
+                ROUND( IFNULL( SUM( BOF.amount ), 0 ), 2 ) AS amount
+            FROM business_order BO
+            LEFT JOIN business_order_fees BOF ON BOF.pid = BO.id
+            WHERE BOF.is_deleted = 0
+            AND BOF.fees_type = 1
+            GROUP BY BO.id,BOF.item_id
+        ) BOFT ON BOFT.id = BO.id
+        <where>
+            BO.is_deleted = 0
+            AND BO.bill_type = 'XS'
+            AND BO.tenant_id = #{tenantId}
+            <if test="tradeType != null and tradeType != ''">
+                AND BO.trade_type = #{tradeType}
+            </if>
+            <if test="tenantId != null and tenantId != '' and tenantId == '681169'">
+                AND BOFT.item_id != '1478203344012222466'
+            </if>
+            <if test="orderStartDate != null and orderStartDate != ''">
+                AND BO.create_time &gt;= #{orderStartDate}
+            </if>
+            <if test="orderEndDate != null and orderEndDate != ''">
+                AND BO.create_time &lt;= #{orderEndDate}
+            </if>
+        </where>
+    </select>
+    <select id="purchaseExpenditure" resultType="BigDecimal">
+        SELECT
+            (CASE WHEN
+                BO.tenant_id = '681169'
+            THEN
+                (SUM(BOI.amount) + SUM(BO.predict_ocean_freight) + SUM(BO.create_profit))
+            ELSE
+                SUM(BOI.amount)
+            END) as ProcurementExpenditure
+        FROM business_order BO
+        LEFT JOIN business_order_items BOI ON BOI.pid = BO.id
+        <where>
+            BO.is_deleted = 0
+            AND BO.bill_type = 'CG'
+            AND BO.tenant_id = #{tenantId}
+            <if test="tradeType != null and tradeType != ''">
+                AND BO.trade_type = #{tradeType}
+            </if>
+            <if test="orderStartDate != null and orderStartDate != ''">
+                AND BO.create_time &gt;= #{orderStartDate}
+            </if>
+            <if test="orderEndDate != null and orderEndDate != ''">
+                AND BO.create_time &lt;= #{orderEndDate}
+            </if>
+        </where>
+    </select>
 </mapper>

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

@@ -223,4 +223,5 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 * @return
 	 */
 	R salesOrderEntry(SalesOrderEntryDto salesOrderEntryDto);
+
 }

+ 7 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java

@@ -150,6 +150,13 @@ public interface IOrderService extends IService<Order> {
 	MonthSales monthSales(OrderVO Order);
 
 	/**
+	 * APP首页获取营业收入和采购支出
+	 * @param Order
+	 * @return
+	 */
+	OrderIncomeVo orderIncome(OrderVO Order);
+
+	/**
 	 * 平台订单审核通过
 	 * @param id
 	 */

+ 47 - 4
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -44,6 +44,7 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.finance.dto.ApplyDTO;
 import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.finance.vojo.Items;
@@ -59,7 +60,9 @@ import org.springblade.purchase.sales.vo.*;
 import org.springblade.stock.entity.StockGoods;
 import org.springblade.stock.feign.IStockGoodsClient;
 import org.springblade.stock.vo.StockGoodsVO;
+import org.springblade.system.entity.Tenant;
 import org.springblade.system.feign.ISysClient;
+import org.springblade.system.feign.ITenantClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
@@ -125,6 +128,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 	private final OrderPartsMapper orderPartsMapper;
 
+	//租户
+	private final ITenantClient iTenantClient;
+
 	@Override
 	public IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, OrderVO order) {
 		List<OrderVO> orderVOList = baseMapper.selectOrderPage(page, order);
@@ -1475,14 +1481,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		if (StringUtils.isBlank(order.getTenantId())) {
 			order.setTenantId(SecureUtil.getTenantId());
 		}
+		order.setBillType("XS");
+		order.setOrderStartDate("2022-08-01");
+		order.setOrderEndDate("2022-08-31");
+		//获取已销售数量(审批通过的单据轮胎数量)
+		monthSales.setSoldQuantity(baseMapper.QuantitySales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.APPROVED.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
+		//获取未销售数量(保存没提交审核的轮胎数)
+		monthSales.setUnsoldQuantity(baseMapper.QuantitySales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.PAUSE.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
 		// 获取总金额
-		monthSales.setGrossAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), null));
+		monthSales.setGrossAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), null, order.getOrderStartDate(), order.getOrderEndDate()));
 		// 获取达成金额
-		monthSales.setReachAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.SUBMIT.getStatus()));
+		monthSales.setReachAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.APPROVED.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
 		// 获取未达成金额
-		monthSales.setNotReachAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.PAUSE.getStatus()));
+		monthSales.setNotReachAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.PAUSE.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
 		// 获取达成率
-		if (monthSales.getGrossAmount().compareTo(BigDecimal.ZERO) > 0) {
+		if (monthSales.getGrossAmount().compareTo(BigDecimal.ZERO) > 0) {//达成金额%总金额*100(保留两位并四舍五入)
 			monthSales.setYieldRate(monthSales.getReachAmount().divide(monthSales.getGrossAmount(), 5, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP));
 		} else {
 			monthSales.setYieldRate(BigDecimal.ZERO);
@@ -1491,6 +1504,36 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	public OrderIncomeVo orderIncome(OrderVO order){
+		OrderIncomeVo incomeVo = new OrderIncomeVo();
+		if (StringUtils.isBlank(order.getTenantId())) {
+			order.setTenantId(SecureUtil.getTenantId());
+		}
+
+		//获得当前租户信息
+		Tenant tenant = iTenantClient.tenantMessage(order.getTenantId());
+		//判断贸易类型
+		if (ObjectUtil.isNotEmpty(tenant)){
+			//根据公司类型判断贸易类型
+			if ("2".equals(tenant.getBillType())){
+				order.setTradeType("GN");
+			}else if ("3".equals(tenant.getBillType())){
+				order.setTradeType("JK");
+			}else if ("4".equals(tenant.getBillType())){
+				order.setTradeType("CK");
+			}
+			//获得租户名称
+			incomeVo.setTenantName(tenant.getTenantName());
+		}
+
+		//获得营业收入
+		incomeVo.setBusinessIncome(baseMapper.orderIncome(order.getTenantId(),order.getTradeType(), order.getOrderStartDate(), order.getOrderEndDate()));
+		//获得采购支出
+		incomeVo.setProcurementExpenditure(baseMapper.purchaseExpenditure(order.getTenantId(),order.getTradeType(), order.getOrderStartDate(), order.getOrderEndDate()));
+		return incomeVo;
+	}
+
+	@Override
 	public void approve(Long id) {
 		LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		orderLambdaQueryWrapper