Browse Source

Merge remote-tracking branch 'origin/dev' into dev

lazhaoqian 3 years ago
parent
commit
39856f78e2

+ 3 - 3
blade-ops/blade-resource/src/main/resources/application.yml

@@ -7,7 +7,7 @@ oss:
   enabled: true
   name: minio
   tenant-mode: true
-  endpoint: http://121.37.83.47:33625
-  access-key: D99KGE6ZTQXSATTJWU24
-  secret-key: QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ
+  endpoint: http://121.37.83.47:9000
+  access-key: admin
+  secret-key: admin8866
   bucket-name: bladex

+ 6 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsDesc.java

@@ -355,4 +355,10 @@ public class CorpsDesc implements Serializable {
 	@ApiModelProperty(value = "大屏获取地址数据")
 	private String addressLatLng;
 
+	/**
+	 * 信用等级
+	 */
+	@ApiModelProperty(value = "信用等级")
+	private String creditRating;
+
 }

+ 5 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/LandDriver.java

@@ -79,6 +79,11 @@ public class LandDriver implements Serializable {
 	@ApiModelProperty(value = "性别")
 	private Integer sex;
 	/**
+	 * 信用等级
+	 */
+	@ApiModelProperty(value = "信用等级")
+	private String creditRating;
+	/**
 	 * 驾驶证有效期
 	 */
 	@ApiModelProperty(value = "驾驶证有效期")

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

@@ -0,0 +1,48 @@
+package org.springblade.purchase.sales.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 数据明细返回类
+ *
+ * @author s
+ */
+@Data
+public class DatasetVO {
+
+	private String orderNo;
+
+	private String corpName;
+
+	private String gysName;
+
+	private String belongCompany;
+
+	private String goodsName;
+
+	private String typeNo;
+
+	private String brandItem;
+
+	private BigDecimal orderQuantity;
+
+	private BigDecimal amount;
+
+	private BigDecimal purchaseAmount;
+
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date createTime;
+
+	private String packageRemarks;
+
+	private String tenantId;
+
+	private String beginCreateTime;
+
+	private String endCreateTime;
+
+}

+ 2 - 2
blade-service/blade-client/src/main/resources/application-dev.yml

@@ -15,8 +15,8 @@ oss:
   name: minio
   tenant-mode: true
   endpoint: http://121.37.83.47:9000
-  access-key: minioadmin
-  secret-key: minioadmin
+  access-key: admin
+  secret-key: admin8866
   bucket-name: bladex
 #swagger文档
 swagger:

+ 81 - 56
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java

@@ -16,42 +16,39 @@
  */
 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.toolkit.StringUtils;
-import com.trade.purchase.order.enums.OrderTypeEnum;
-import org.springblade.client.feign.IGoodsDescClient;
-import org.springblade.client.vo.GoodsDescVO;
-import org.springblade.core.excel.util.ExcelUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
+import org.springblade.client.feign.IGoodsDescClient;
+import org.springblade.client.vo.GoodsDescVO;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 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.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.purchase.sales.entity.Order;
-import org.springblade.purchase.sales.entity.OrderParts;
+import org.springblade.purchase.sales.entity.OrderItems;
+import org.springblade.purchase.sales.excel.DatasetExcel;
 import org.springblade.purchase.sales.excel.DealerOrderItem;
 import org.springblade.purchase.sales.excel.OrderItemsExcel;
+import org.springblade.purchase.sales.service.IOrderItemsService;
+import org.springblade.purchase.sales.vo.DatasetVO;
+import org.springblade.purchase.sales.vo.OrderItemsVO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springblade.purchase.sales.entity.OrderItems;
-import org.springblade.purchase.sales.vo.OrderItemsVO;
-import org.springblade.purchase.sales.service.IOrderItemsService;
-import org.springblade.core.boot.ctrl.BladeController;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -68,8 +65,14 @@ import java.util.List;
 public class OrderItemsController extends BladeController {
 
 	private final IOrderItemsService orderItemsService;
-	private IUserClient iUserClient;//获取用户信息
-	private IGoodsDescClient goodsDescClient;//获取商品信息
+	/**
+	 * 获取用户信息
+	 */
+	private IUserClient iUserClient;
+	/**
+	 * 获取商品信息
+	 */
+	private IGoodsDescClient goodsDescClient;
 
 	/**
 	 * 详情
@@ -92,36 +95,33 @@ public class OrderItemsController extends BladeController {
 		orderItems.setIsDeleted(0);
 		orderItems.setTenantId(SecureUtil.getTenantId());
 		IPage<OrderItems> pages = orderItemsService.page(Condition.getPage(query), Condition.getQueryWrapper(orderItems));
-		if (CollectionUtils.isNotEmpty(pages.getRecords())){
+		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 			pages.getRecords().forEach(item -> {
+				R<User> user1 = iUserClient.userInfoById(item.getUpdateUser());
+				if (user1.isSuccess() && user1.getData() != null) {
+					item.setUpdateUserName(user1.getData().getName());
+				}
+				R<User> user = iUserClient.userInfoById(item.getCreateUser());
+				if (user.isSuccess() && user.getData() != null) {
+					item.setCreateUserName(user.getData().getName());
+				}
 
-					R<User> user1 = iUserClient.userInfoById(item.getUpdateUser());
-					if (user1.isSuccess() && user1.getData() != null) {
-						item.setUpdateUserName(user1.getData().getName());
-					}
-					R<User> user = iUserClient.userInfoById(item.getCreateUser());
-					if (user.isSuccess() && user.getData() != null) {
-						item.setCreateUserName(user.getData().getName());
-					}
-
-
-					if (item.getItemId() != null) {
-						//获取商品编码,名称,规格编码,规格型号
-						R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getItemId());
-						if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
-							item.setCode(goodsMessage.getData().getCode());
-							item.setCname(goodsMessage.getData().getCname());
-							item.setTypeno(goodsMessage.getData().getTypeno());
-							item.setSpecificationAndModel(goodsMessage.getData().getSpecificationAndModel());
-							item.setEname(goodsMessage.getData().getEname());
-							item.setBrandItem(goodsMessage.getData().getBrandItem());
-							item.setSize(goodsMessage.getData().getSize());
-							item.setSpecsOne(goodsMessage.getData().getSpecsOne());
-							item.setSpecsTwo(goodsMessage.getData().getSpecsTwo());
-
-						}
+				if (item.getItemId() != null) {
+					// 获取商品编码,名称,规格编码,规格型号
+					R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getItemId());
+					if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
+						item.setCode(goodsMessage.getData().getCode());
+						item.setCname(goodsMessage.getData().getCname());
+						item.setTypeno(goodsMessage.getData().getTypeno());
+						item.setSpecificationAndModel(goodsMessage.getData().getSpecificationAndModel());
+						item.setEname(goodsMessage.getData().getEname());
+						item.setBrandItem(goodsMessage.getData().getBrandItem());
+						item.setSize(goodsMessage.getData().getSize());
+						item.setSpecsOne(goodsMessage.getData().getSpecsOne());
+						item.setSpecsTwo(goodsMessage.getData().getSpecsTwo());
 					}
-				});
+				}
+			});
 		}
 		return R.data(pages);
 	}
@@ -154,8 +154,8 @@ public class OrderItemsController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入orderItems")
 	public R update(@Valid @RequestBody OrderItems orderItems) {
-		if (orderItems.getId() == null){
-			return R.fail(500,"请选择要删除的数据");
+		if (orderItems.getId() == null) {
+			return R.fail(500, "请选择要删除的数据");
 		}
 		orderItems.setIsDeleted(1);
 		return R.status(orderItemsService.updateById(orderItems));
@@ -181,6 +181,7 @@ public class OrderItemsController extends BladeController {
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		return R.status(orderItemsService.removeByIds(Func.toLongList(ids)));
 	}
+
 	/**
 	 * 导入订单明细模板
 	 */
@@ -191,6 +192,7 @@ public class OrderItemsController extends BladeController {
 		List<OrderItemsExcel> list = new ArrayList<>();
 		ExcelUtil.export(response, "导入模板-销售订单明细", "订单明细数据表", list, OrderItemsExcel.class);
 	}
+
 	/**
 	 * 导入订单明细
 	 */
@@ -199,11 +201,12 @@ public class OrderItemsController extends BladeController {
 	@ApiOperation(value = "导入订单明细", notes = "传入excel")
 	public R importUser(MultipartFile file) {
 		List<OrderItemsExcel> excelList = ExcelUtil.read(file, OrderItemsExcel.class);
-		if (CollectionUtils.isEmpty(excelList)){
+		if (CollectionUtils.isEmpty(excelList)) {
 			throw new SecurityException("数据不能为空");
 		}
-		return orderItemsService.importUser(excelList,false);
+		return orderItemsService.importUser(excelList, false);
 	}
+
 	/**
 	 * 下拉获取订单明细
 	 */
@@ -211,11 +214,12 @@ public class OrderItemsController extends BladeController {
 	@ApiOperationSupport(order = 13)
 	@ApiOperation(value = "下拉获取订单明细", notes = "传入order的id,tradeType GN,CK,JK")
 	public R<List<OrderItems>> orderItemsList(Order order) {
-		if (StringUtils.isBlank(order.getTradeType())){
+		if (StringUtils.isBlank(order.getTradeType())) {
 			throw new SecurityException("缺少必要的参数");
 		}
 		return R.data(orderItemsService.getOrderItems(order));
 	}
+
 	/**
 	 * 导入订单明细模板
 	 */
@@ -226,21 +230,42 @@ public class OrderItemsController extends BladeController {
 		List<DealerOrderItem> list = new ArrayList<>();
 		ExcelUtil.export(response, "导入模板-订单明细", "订单明细数据表", list, DealerOrderItem.class);
 	}
+
 	/**
 	 * 导入订单明细
 	 */
 	@PostMapping("/importDealerOrder")
 	@ApiOperationSupport(order = 15)
 	@ApiOperation(value = "导入订单明细", notes = "传入excel")
-	public R importDealerOrder(@RequestParam("file") MultipartFile file,@RequestParam(value = "storageId",required = false) Long storageId) {
+	public R importDealerOrder(@RequestParam("file") MultipartFile file, @RequestParam(value = "storageId", required = false) Long storageId) {
 		List<DealerOrderItem> excelList = ExcelUtil.read(file, DealerOrderItem.class);
-		if (CollectionUtils.isEmpty(excelList)){
+		if (CollectionUtils.isEmpty(excelList)) {
 			throw new SecurityException("数据不能为空");
 		}
-		return orderItemsService.importDealerOrder(excelList,false,storageId);
+		return orderItemsService.importDealerOrder(excelList, false, storageId);
 	}
 
+	/**
+	 * 自定义分页 数据明细
+	 */
+	@GetMapping("/dateset")
+	@ApiOperationSupport(order = 16)
+	@ApiOperation(value = "分页 数据明细", notes = "传入datasetVO")
+	public R<IPage<DatasetVO>> dateset(DatasetVO datasetVO, Query query) {
+		IPage<DatasetVO> pages = orderItemsService.dataset(Condition.getPage(query), datasetVO);
+		return R.data(pages);
+	}
 
-
+	@GetMapping("/dateset-export")
+	@ApiOperationSupport(order = 16)
+	@ApiOperation(value = "数据明细导出", notes = "传入datasetVO")
+	public void datesetExport(DatasetVO datasetVO, HttpServletResponse response) {
+		List<DatasetVO> dataset = orderItemsService.dataset(datasetVO);
+		List<DatasetExcel> list = new ArrayList<>();
+		if (CollectionUtils.isNotEmpty(dataset)){
+			list = BeanUtil.copy(dataset, DatasetExcel.class);
+		}
+		ExcelUtil.export(response, "数据明细(N)", "数据明细(N)", list, DatasetExcel.class);
+	}
 
 }

+ 61 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/excel/DatasetExcel.java

@@ -0,0 +1,61 @@
+package org.springblade.purchase.sales.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 数据明细导出类
+ *
+ * @author s
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class DatasetExcel {
+
+	@ExcelProperty(value = "销售订单号")
+	private String orderNo;
+
+	@ExcelProperty(value = "客户名称")
+	private String corpName;
+
+	@ExcelProperty(value = "供应商名称")
+	private String gysName;
+
+	@ExcelProperty(value = "所属公司")
+	private String belongCompany;
+
+	@ExcelProperty(value = "商品名称")
+	private String goodsName;
+
+	@ExcelProperty(value = "规格")
+	private String typeNo;
+
+	@ExcelProperty(value = "花纹")
+	private String brandItem;
+
+	@ExcelProperty(value = "数量")
+	private BigDecimal orderQuantity;
+
+	@ExcelProperty(value = "金额")
+	private BigDecimal amount;
+
+	@ExcelProperty(value = "采购价")
+	private BigDecimal purchaseAmount;
+
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@ExcelProperty(value = "制单日期")
+	private Date createTime;
+
+	@ExcelProperty(value = "包装")
+	private String packageRemarks;
+
+}

+ 71 - 44
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.java

@@ -16,13 +16,12 @@
  */
 package org.springblade.purchase.sales.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
-import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.excel.orderItemStat;
 import org.springblade.purchase.sales.vo.*;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -47,14 +46,15 @@ public interface OrderItemsMapper extends BaseMapper<OrderItems> {
 
 	/**
 	 * 发货单获取订单明细
-	 * @param page  分页参数
-	 * @param orderNo 订单号或合同号
-	 * @param corpId 客户id
+	 *
+	 * @param page           分页参数
+	 * @param orderNo        订单号或合同号
+	 * @param corpId         客户id
 	 * @param orderStartDate 时间开始时间
-	 * @param orderEndDate 时间结束时间
-	 * @param tradeType 贸易类型
-	 * @param billType 订单类型
-	 * @param tenantId 租户id
+	 * @param orderEndDate   时间结束时间
+	 * @param tradeType      贸易类型
+	 * @param billType       订单类型
+	 * @param tenantId       租户id
 	 * @return
 	 */
 	List<OrderItemsVO> orderItemsList(IPage page,
@@ -65,104 +65,131 @@ public interface OrderItemsMapper extends BaseMapper<OrderItems> {
 									  @Param("tradeType") String tradeType,
 									  @Param("billType") String billType,
 									  @Param("tenantId") String tenantId);
+
 	/**
 	 * 更新状态
+	 *
 	 * @param id
 	 */
-	void updateByPid (@Param("id") Long id);
+	void updateByPid(@Param("id") Long id);
 
 	/**
 	 * 获取销售利润明细
+	 *
 	 * @param pid
 	 * @return
 	 */
-	List<OrderItems> 	getProfitItem(@Param("pid") Long pid);
+	List<OrderItems> getProfitItem(@Param("pid") Long pid);
+
 	/**
 	 * 根据商品id 和仓库id 贸易类型 获取批次号
+	 *
 	 * @param itemId
 	 * @param storageId
 	 * @param tradeType
 	 * @return
 	 */
-	List<Map<String, Object>> lotNo(@Param("itemId")Long itemId,
-									@Param("storageId")Long storageId,
-									@Param("tradeType")String tradeType,
-									@Param("tenantId")String tenantId);
+	List<Map<String, Object>> lotNo(@Param("itemId") Long itemId,
+									@Param("storageId") Long storageId,
+									@Param("tradeType") String tradeType,
+									@Param("tenantId") String tenantId);
+
 	/**
 	 * 经销商获取历史采购或者销售价格
-	 * @param itemId 商品id
-	 * @param typeId 是否获取最新价格 为空是 不为空为否
-	 * @param billType 采购价格或者销售价格
+	 *
+	 * @param itemId    商品id
+	 * @param typeId    是否获取最新价格 为空是 不为空为否
+	 * @param billType  采购价格或者销售价格
 	 * @param tradeType 贸易类型 国内 进口 出口 经销商
 	 * @return
 	 */
-	List<Map<String, Object>> historyPrice(@Param("itemId")Long itemId,
-										   @Param("typeId")Long typeId,
-										   @Param("billType")String billType,
-										   @Param("tradeType")String tradeType,
-										   @Param("tenantId")String tenantId);
+	List<Map<String, Object>> historyPrice(@Param("itemId") Long itemId,
+										   @Param("typeId") Long typeId,
+										   @Param("billType") String billType,
+										   @Param("tradeType") String tradeType,
+										   @Param("tenantId") String tenantId);
 
 	/**
 	 * 达沃特数字大屏获取品牌销售量
+	 *
 	 * @param tradeType 贸易类型
 	 * @param billType  订单类型
 	 * @param tenantId  租户id
 	 * @return
 	 */
-	List<OrderDateVo> orderData(@Param("tradeType")String tradeType,
-								@Param("billType")String billType,
-								@Param("tenantId")String tenantId);
+	List<OrderDateVo> orderData(@Param("tradeType") String tradeType,
+								@Param("billType") String billType,
+								@Param("tenantId") String tenantId);
 
 	/**
 	 * 获取当月销售数量
-	 * @param tradeType  贸易类型
-	 * @param billType   订单类型
-	 * @param tenantId   租户id
+	 *
+	 * @param tradeType 贸易类型
+	 * @param billType  订单类型
+	 * @param tenantId  租户id
 	 * @return
 	 */
-	BigDecimal orderMonthNUmber(@Param("tradeType")String tradeType,
-								@Param("billType")String billType,
-								@Param("tenantId")String tenantId);
+	BigDecimal orderMonthNUmber(@Param("tradeType") String tradeType,
+								@Param("billType") String billType,
+								@Param("tenantId") String tenantId);
+
 	/**
 	 * 达沃特数字大屏获取代理商销量前十
+	 *
 	 * @param tradeType 贸易类型
 	 * @param billType  订单类型
 	 * @param tenantId  租户id
 	 * @return
 	 */
-	List<TopCorpVo> topCorp(@Param("tradeType")String tradeType,
-							@Param("billType")String billType,
-							@Param("tenantId")String tenantId);
+	List<TopCorpVo> topCorp(@Param("tradeType") String tradeType,
+							@Param("billType") String billType,
+							@Param("tenantId") String tenantId);
 
 	/**
 	 * 达沃特数字大屏获取业务员销量前十
+	 *
 	 * @param tradeType 贸易类型
 	 * @param billType  订单类型
 	 * @param tenantId  租户id
 	 * @return
 	 */
-	List<ChargeMemberVo> chargeMember(@Param("tradeType")String tradeType,
-									  @Param("billType")String billType,
-									  @Param("tenantId")String tenantId);
+	List<ChargeMemberVo> chargeMember(@Param("tradeType") String tradeType,
+									  @Param("billType") String billType,
+									  @Param("tenantId") String tenantId);
 
 	/**
 	 * 达沃特数字大屏获取尺寸占比
+	 *
 	 * @param tradeType 贸易类型
 	 * @param billType  订单类型
 	 * @param tenantId  租户id
 	 * @return
 	 */
-	List<OrderSizeVo> orderSize(@Param("tradeType")String tradeType,
-								@Param("billType")String billType,
-								@Param("tenantId")String tenantId);
+	List<OrderSizeVo> orderSize(@Param("tradeType") String tradeType,
+								@Param("billType") String billType,
+								@Param("tenantId") String tenantId);
+
 	/**
 	 * 经销商销售统计
+	 *
 	 * @return
 	 */
-	List<orderItemStat> orderItemStat(@Param("order")OrderVO order,IPage page);
+	List<orderItemStat> orderItemStat(@Param("order") OrderVO order, IPage page);
+
 	/**
 	 * 经销商销售统计
+	 *
+	 * @return
+	 */
+	List<orderItemStat> orderItemStatExport(@Param("order") OrderVO order);
+
+	/**
+	 * 自定义分页 数据明细
+	 *
+	 * @param page
+	 * @param datasetVO
 	 * @return
 	 */
-	List<orderItemStat> orderItemStatExport(@Param("order")OrderVO order);
+	List<DatasetVO> dataset(IPage<DatasetVO> page, @Param("dataset") DatasetVO datasetVO);
+
 }

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

@@ -456,4 +456,48 @@ WHERE
         ) temp,
         ( SELECT @rank := 0 ) b
     </select>
+
+    <select id="dataset" resultType="org.springblade.purchase.sales.vo.DatasetVO">
+        select t1.order_no        as orderNo,
+               t3.cname           as corpName,
+               t2.corp_name       as gysName,
+               t1.belong_company  as belongCompany,
+               t4.cname           as goodsName,
+               t4.Typeno          as typeNo,
+               t4.brand_item      as brandItem,
+               t2.order_quantity  as orderQuantity,
+               t2.amount,
+               t2.purchase_amount as purchaseAmount,
+               t2.create_time     as createTime,
+               t1.package_remarks as packageRemarks,
+               t1.tenant_id       as tenantId
+        from business_order t1
+                 left join business_order_items t2 on t1.id = t2.pid
+                 left join basic_corps_desc t3 on t1.corp_id = t3.id
+                 left join basic_goods_desc t4 on t2.item_id = t4.id
+        <where>
+            t1.is_deleted = 0
+            and t1.trade_type = 'GN'
+            and t1.bill_type = 'XS'
+            and t1.tenant_id = #{dataset.tenantId}
+            <if test="dataset.orderNo != null and dataset.orderNo != ''">
+                and t1.order_no like concat('%', #{dataset.orderNo}, '%')
+            </if>
+            <if test="dataset.corpName != null and dataset.corpName != ''">
+                and t3.cname like concat('%', #{dataset.corpName}, '%')
+            </if>
+            <if test="dataset.belongCompany != null and dataset.belongCompany != ''">
+                and t1.belong_company like concat('%', #{dataset.belongCompany}, '%')
+            </if>
+            <if test="dataset.packageRemarks != null and dataset.packageRemarks != ''">
+                and t1.package_remarks like concat('%', #{dataset.packageRemarks}, '%')
+            </if>
+            <if test="dataset.beginCreateTime !=null and dataset.beginCreateTime != ''">
+                and t2.create_time &gt;= #{dataset.beginCreateTime}
+            </if>
+            <if test="dataset.endCreateTime !=null and dataset.endCreateTime != ''">
+                and t2.create_time &lt;= #{dataset.endCreateTime}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 60 - 18
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java

@@ -16,6 +16,8 @@
  */
 package org.springblade.purchase.sales.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
@@ -23,8 +25,6 @@ import org.springblade.purchase.sales.excel.DealerOrderItem;
 import org.springblade.purchase.sales.excel.OrderItemsExcel;
 import org.springblade.purchase.sales.excel.orderItemStat;
 import org.springblade.purchase.sales.vo.*;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -47,20 +47,23 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 * @return
 	 */
 	IPage<OrderItemsVO> selectOrderItemsPage(IPage<OrderItemsVO> page, OrderItemsVO orderItems);
+
 	/**
 	 * 发货单获取订单明细
-	 * @param page  分页参数
-	 * @param orderNo 订单号或合同号
-	 * @param corpId 客户id
+	 *
+	 * @param page           分页参数
+	 * @param orderNo        订单号或合同号
+	 * @param corpId         客户id
 	 * @param orderStartDate 时间开始时间
-	 * @param orderEndDate 时间结束时间
-	 * @param tradeType 贸易类型
-	 * @param billType 订单类型
-	 * @param tenantId 租户id
+	 * @param orderEndDate   时间结束时间
+	 * @param tradeType      贸易类型
+	 * @param billType       订单类型
+	 * @param tenantId       租户id
 	 * @return
 	 */
-	IPage<OrderItemsVO> orderItemsList(IPage<OrderItemsVO> page,String orderNo,Long corpId, String orderStartDate,String orderEndDate,
-									  String tradeType, String billType,String tenantId);
+	IPage<OrderItemsVO> orderItemsList(IPage<OrderItemsVO> page, String orderNo, Long corpId, String orderStartDate, String orderEndDate,
+									   String tradeType, String billType, String tenantId);
+
 	/**
 	 * 导入订单明细数据
 	 *
@@ -72,25 +75,31 @@ public interface IOrderItemsService extends IService<OrderItems> {
 
 	/**
 	 * 经销商导入订单明细
+	 *
 	 * @param data
 	 * @param isCovered
 	 * @return
 	 */
-	R<List<OrderItems>> importDealerOrder(List<DealerOrderItem> data, Boolean isCovered,Long storageId);
+	R<List<OrderItems>> importDealerOrder(List<DealerOrderItem> data, Boolean isCovered, Long storageId);
 
 	/**
 	 * 获取订单明细
+	 *
 	 * @param order
 	 * @return
 	 */
 	List<OrderItems> getOrderItems(Order order);
+
 	/**
 	 * 更新状态
+	 *
 	 * @param id
 	 */
 	public void updateByPid(Long id);
+
 	/**
 	 * 出口贸易获取销售利润明细
+	 *
 	 * @param id
 	 * @return
 	 */
@@ -98,31 +107,36 @@ public interface IOrderItemsService extends IService<OrderItems> {
 
 	/**
 	 * 根据商品id 和仓库id 贸易类型 获取批次号
+	 *
 	 * @param itemId
 	 * @param storageId
 	 * @param tradeType
 	 * @return
 	 */
-	List<Map<String,Object>> lotNo(Long itemId,Long storageId,String tradeType);
+	List<Map<String, Object>> lotNo(Long itemId, Long storageId, String tradeType);
 
 	/**
 	 * 经销商获取历史采购或者销售价格
-	 * @param itemId 商品id
-	 * @param typeId 是否获取最新价格 为空是 不为空为否
-	 * @param billType 采购价格或者销售价格
+	 *
+	 * @param itemId    商品id
+	 * @param typeId    是否获取最新价格 为空是 不为空为否
+	 * @param billType  采购价格或者销售价格
 	 * @param tradeType 贸易类型 国内 进口 出口 经销商
 	 * @return
 	 */
-	List<Map<String,Object>> historyPrice(Long itemId,Long typeId,String billType,String tradeType);
+	List<Map<String, Object>> historyPrice(Long itemId, Long typeId, String billType, String tradeType);
 
 	/**
 	 * 达沃特数字大屏在售品牌
+	 *
 	 * @param order
 	 * @return
 	 */
 	List<OrderDateVo> orderData(Order order);
+
 	/**
 	 * 达沃特数字大屏 品牌销量占比
+	 *
 	 * @param order
 	 * @return
 	 */
@@ -130,34 +144,62 @@ public interface IOrderItemsService extends IService<OrderItems> {
 
 	/**
 	 * 达沃特数字大屏 当月销量
+	 *
 	 * @param order
 	 * @return
 	 */
 	BigDecimal orderMonthNUmber(Order order);
+
 	/**
 	 * 达沃特数字大屏获取代理商销量前十
+	 *
 	 * @return
 	 */
 	List<TopCorpVo> topCorp(Order order);
+
 	/**
 	 * 达沃特数字大屏获取业务员销量前十
+	 *
 	 * @return
 	 */
 	List<ChargeMemberVo> chargeMember(Order order);
+
 	/**
 	 * 达沃特数字大屏获取尺寸占比
+	 *
 	 * @return
 	 */
 	List<OrderSizeVo> orderSize(Order order);
+
 	/**
 	 * 经销商销售统计
+	 *
 	 * @return
 	 */
-	IPage<orderItemStat> orderItemStat(OrderVO order,IPage<orderItemStat> page);
+	IPage<orderItemStat> orderItemStat(OrderVO order, IPage<orderItemStat> page);
+
 	/**
 	 * 经销商销售统计
+	 *
 	 * @return
 	 */
 	List<orderItemStat> orderItemStatExport(OrderVO order);
 
+	/**
+	 * 数据明细
+	 *
+	 * @param datasetVO
+	 * @return
+	 */
+	List<DatasetVO> dataset(DatasetVO datasetVO);
+
+	/**
+	 * 自定义分页 数据明细
+	 *
+	 * @param page
+	 * @param datasetVO
+	 * @return
+	 */
+	IPage<DatasetVO> dataset(IPage<DatasetVO> page, DatasetVO datasetVO);
+
 }

+ 78 - 64
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.trade.purchase.order.enums.OrderTypeEnum;
-import jdk.nashorn.internal.ir.annotations.Ignore;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.entity.GoodsDesc;
@@ -32,10 +31,10 @@ import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.client.feign.IStorageClient;
 import org.springblade.client.vo.GoodsDescVO;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.mocha.feign.IPriceItemClient;
-import org.springblade.mocha.feign.ISalesPolicyClient;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.entity.OrderParts;
@@ -52,9 +51,9 @@ import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -89,13 +88,16 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 	 */
 	private final IUserClient iUserClient;
 
-	private final ISalesPolicyClient salesPolicyClient;
-	//获取客户信息
+	/**
+	 * 获取客户信息
+	 */
 	private final ICorpsDescClient corpsDescClient;
-	private IStorageClient iStorageClient;//库区信息
+	/**
+	 * 库区信息
+	 */
+	private final IStorageClient iStorageClient;
 
-	@Resource
-	private OrderPartsMapper orderPartsMapper;
+	private final OrderPartsMapper orderPartsMapper;
 
 	@Override
 	public IPage<OrderItemsVO> selectOrderItemsPage(IPage<OrderItemsVO> page, OrderItemsVO orderItems) {
@@ -144,21 +146,21 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 	}
 
 	@Override
-	public R<List<OrderItems>> importDealerOrder(List<DealerOrderItem> data, Boolean isCovered,Long storageId) {
+	public R<List<OrderItems>> importDealerOrder(List<DealerOrderItem> data, Boolean isCovered, Long storageId) {
 		List<OrderItems> list = new ArrayList<>();
 		data.forEach(item -> {
 			R<GoodsDesc> goods = goodsDescClient.GoodsByCode(item.getCode());
 			if (goods.isSuccess() && goods.getData() != null) {
 				OrderItems orderItems = new OrderItems();
 				orderItems.setCode(item.getCode());
-				if (item.getOrderQuantity() == null){
+				if (item.getOrderQuantity() == null) {
 					orderItems.setOrderQuantity(BigDecimal.ZERO);
-				}else {
+				} else {
 					orderItems.setOrderQuantity(item.getOrderQuantity());
 				}
-				if (item.getPrice() == null){
+				if (item.getPrice() == null) {
 					orderItems.setPrice(BigDecimal.ZERO);
-				}else {
+				} else {
 					orderItems.setPrice(item.getPrice());
 				}
 				orderItems.setAmount(orderItems.getOrderQuantity().multiply(item.getPrice()));
@@ -176,20 +178,20 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 				orderItems.setSize(goods.getData().getSize());
 				GoodsType goodsType = goodsDescClient.goodTypeId(goods.getData().getId());
 				orderItems.setPriceCategory(goodsType.getCname());//商品类别名称
-				if (storageId != null){
-				StockGoods stockGoods = new StockGoods();
-				stockGoods.setGoodsId(goods.getData().getId());
-				stockGoods.setTradeType(OrderTypeEnum.DEALER.getType());
-				stockGoods.setStorageId(storageId);
-				StockGoods stock = stockGoodsClient.getOneStock(stockGoods);
+				if (storageId != null) {
+					StockGoods stockGoods = new StockGoods();
+					stockGoods.setGoodsId(goods.getData().getId());
+					stockGoods.setTradeType(OrderTypeEnum.DEALER.getType());
+					stockGoods.setStorageId(storageId);
+					StockGoods stock = stockGoodsClient.getOneStock(stockGoods);
 					if (stock != null) {
 						orderItems.setStorageQuantity(stock.getBalanceQuantity());
-						orderItems.setPurchaseAmount(stock.getBalanceAmount().divide(stock.getBalanceQuantity(),2,BigDecimal.ROUND_HALF_UP));
+						orderItems.setPurchaseAmount(stock.getBalanceAmount().divide(stock.getBalanceQuantity(), 2, RoundingMode.HALF_UP));
 					} else {
 						orderItems.setStorageQuantity(BigDecimal.ZERO);
 						orderItems.setPurchaseAmount(BigDecimal.ZERO);
 					}
-				}else {
+				} else {
 					orderItems.setStorageQuantity(BigDecimal.ZERO);
 					orderItems.setPurchaseAmount(BigDecimal.ZERO);
 				}
@@ -362,17 +364,17 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 
 	@Override
 	public List<Map<String, Object>> lotNo(Long itemId, Long storageId, String tradeType) {
-		return baseMapper.lotNo(itemId,storageId,tradeType,SecureUtil.getTenantId());
+		return baseMapper.lotNo(itemId, storageId, tradeType, SecureUtil.getTenantId());
 	}
 
 	@Override
-	public List<Map<String, Object>> historyPrice(Long itemId, Long typeId, String billType,String tradeType) {
-		return baseMapper.historyPrice(itemId,typeId,billType,tradeType,SecureUtil.getTenantId());
+	public List<Map<String, Object>> historyPrice(Long itemId, Long typeId, String billType, String tradeType) {
+		return baseMapper.historyPrice(itemId, typeId, billType, tradeType, SecureUtil.getTenantId());
 	}
 
 	@Override
 	public List<OrderDateVo> orderData(Order order) {
-		if (StringUtils.isBlank(order.getTenantId())){
+		if (StringUtils.isBlank(order.getTenantId())) {
 			order.setTenantId(SecureUtil.getTenantId());
 		}
 		List<OrderDateVo> list = new ArrayList<>();
@@ -380,14 +382,14 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 		List<OrderDateVo> orderDateVoList = baseMapper.orderData(order.getTradeType(), order.getBillType(), order.getTenantId());
 		//获取所属公司
 		List<CorpsDesc> corpsType = corpsDescClient.getCorpsType("GS");
-		if (CollectionUtils.isNotEmpty(corpsType) && CollectionUtils.isNotEmpty(orderDateVoList)){
+		if (CollectionUtils.isNotEmpty(corpsType) && CollectionUtils.isNotEmpty(orderDateVoList)) {
 			for (CorpsDesc corpsDesc : corpsType) {
 				OrderDateVo orderDateVo = new OrderDateVo();
 				orderDateVo.setBelongToCorpName(corpsDesc.getGoodtypes());
-				orderDateVo.setOrderNumber(orderDateVoList.stream().filter(e -> e.getBelongToCorpId().longValue()==corpsDesc.getId().longValue()).map(OrderDateVo::getOrderNumber).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0,BigDecimal.ROUND_HALF_UP));
+				orderDateVo.setOrderNumber(orderDateVoList.stream().filter(e -> e.getBelongToCorpId().longValue() == corpsDesc.getId().longValue()).map(OrderDateVo::getOrderNumber).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, BigDecimal.ROUND_HALF_UP));
 				list.add(orderDateVo);
 			}
-		}else if (CollectionUtils.isNotEmpty(corpsType) && CollectionUtils.isEmpty(orderDateVoList)){
+		} else if (CollectionUtils.isNotEmpty(corpsType) && CollectionUtils.isEmpty(orderDateVoList)) {
 			for (CorpsDesc corpsDesc : corpsType) {
 				OrderDateVo orderDateVo = new OrderDateVo();
 				orderDateVo.setBelongToCorpName(corpsDesc.getGoodtypes());
@@ -400,7 +402,7 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 
 	@Override
 	public List<BrandSalesVo> brandSales(Order order) {
-		if (StringUtils.isBlank(order.getTenantId())){
+		if (StringUtils.isBlank(order.getTenantId())) {
 			order.setTenantId(SecureUtil.getTenantId());
 		}
 		List<BrandSalesVo> list = new ArrayList<>();
@@ -408,21 +410,21 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 		List<OrderDateVo> orderDateVoList = baseMapper.orderData(order.getTradeType(), order.getBillType(), order.getTenantId());
 		//获取所属公司
 		List<CorpsDesc> corpsType = corpsDescClient.getCorpsType("GS");
-		if (CollectionUtils.isNotEmpty(corpsType) && CollectionUtils.isNotEmpty(orderDateVoList)){
+		if (CollectionUtils.isNotEmpty(corpsType) && CollectionUtils.isNotEmpty(orderDateVoList)) {
 			//获取总销量
 			BigDecimal decimal = orderDateVoList.stream().map(OrderDateVo::getOrderNumber).reduce(BigDecimal.ZERO, BigDecimal::add);
 			for (CorpsDesc corpsDesc : corpsType) {
 				BrandSalesVo brandSalesVo = new BrandSalesVo();
 				brandSalesVo.setBelongToCorpName(corpsDesc.getGoodtypes());
-				if (decimal.compareTo(BigDecimal.ZERO) >0 ){
-					brandSalesVo.setOrderNumber(orderDateVoList.stream().filter(e -> e.getBelongToCorpId().longValue()==corpsDesc.getId().longValue())
-						.map(OrderDateVo::getOrderNumber).reduce(BigDecimal.ZERO, BigDecimal::add).divide(decimal, 5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0,BigDecimal.ROUND_HALF_UP));
-				}else {
+				if (decimal.compareTo(BigDecimal.ZERO) > 0) {
+					brandSalesVo.setOrderNumber(orderDateVoList.stream().filter(e -> e.getBelongToCorpId().longValue() == corpsDesc.getId().longValue())
+						.map(OrderDateVo::getOrderNumber).reduce(BigDecimal.ZERO, BigDecimal::add).divide(decimal, 5, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP));
+				} else {
 					brandSalesVo.setOrderNumber(BigDecimal.ZERO);
 				}
 				list.add(brandSalesVo);
 			}
-		}else if (CollectionUtils.isNotEmpty(corpsType) && CollectionUtils.isEmpty(orderDateVoList)){
+		} else if (CollectionUtils.isNotEmpty(corpsType) && CollectionUtils.isEmpty(orderDateVoList)) {
 			for (CorpsDesc corpsDesc : corpsType) {
 				BrandSalesVo brandSalesVo = new BrandSalesVo();
 				brandSalesVo.setBelongToCorpName(corpsDesc.getGoodtypes());
@@ -435,7 +437,7 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 
 	@Override
 	public BigDecimal orderMonthNUmber(Order order) {
-		if (StringUtils.isBlank(order.getTenantId())){
+		if (StringUtils.isBlank(order.getTenantId())) {
 			order.setTenantId(SecureUtil.getTenantId());
 		}
 		return baseMapper.orderMonthNUmber(order.getTradeType(), order.getBillType(), order.getTenantId());
@@ -443,15 +445,15 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 
 	@Override
 	public List<TopCorpVo> topCorp(Order order) {
-		if (StringUtils.isBlank(order.getTenantId())){
+		if (StringUtils.isBlank(order.getTenantId())) {
 			order.setTenantId(SecureUtil.getTenantId());
 		}
 		List<TopCorpVo> corpVoList = baseMapper.topCorp(order.getTradeType(), order.getBillType(), order.getTenantId());
-		if (CollectionUtils.isNotEmpty(corpVoList)){
+		if (CollectionUtils.isNotEmpty(corpVoList)) {
 			for (TopCorpVo topCorpVo : corpVoList) {
-				if (topCorpVo.getCorpId() !=null){
+				if (topCorpVo.getCorpId() != null) {
 					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(topCorpVo.getCorpId());
-					if (corpMessage.isSuccess() && corpMessage.getData() !=null){
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
 						topCorpVo.setCorpName(corpMessage.getData().getCname());
 					}
 				}
@@ -462,7 +464,7 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 
 	@Override
 	public List<ChargeMemberVo> chargeMember(Order order) {
-		if (StringUtils.isBlank(order.getTenantId())){
+		if (StringUtils.isBlank(order.getTenantId())) {
 			order.setTenantId(SecureUtil.getTenantId());
 		}
 		return baseMapper.chargeMember(order.getTradeType(), order.getBillType(), order.getTenantId());
@@ -470,32 +472,32 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 
 	@Override
 	public List<OrderSizeVo> orderSize(Order order) {
-		if (StringUtils.isBlank(order.getTenantId())){
+		if (StringUtils.isBlank(order.getTenantId())) {
 			order.setTenantId(SecureUtil.getTenantId());
 		}
 		List<OrderSizeVo> orderSizeVoList = baseMapper.orderSize(order.getTradeType(), order.getBillType(), order.getTenantId());
-		if (CollectionUtils.isNotEmpty(orderSizeVoList)){
+		if (CollectionUtils.isNotEmpty(orderSizeVoList)) {
 			//获取总销量
 			BigDecimal decimal = orderSizeVoList.stream().map(OrderSizeVo::getOrderNumber).reduce(BigDecimal.ZERO, BigDecimal::add);
 			for (OrderSizeVo orderSizeVo : orderSizeVoList) {
-				orderSizeVo.setOrderNumber(orderSizeVo.getOrderNumber().divide(decimal, 5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
+				orderSizeVo.setOrderNumber(orderSizeVo.getOrderNumber().divide(decimal, 5, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP));
 			}
 		}
 		return orderSizeVoList;
 	}
 
 	@Override
-	public IPage<orderItemStat> orderItemStat(OrderVO order,IPage<orderItemStat> page) {
-		if (StringUtils.isBlank(order.getTenantId())){
+	public IPage<orderItemStat> orderItemStat(OrderVO order, IPage<orderItemStat> page) {
+		if (StringUtils.isBlank(order.getTenantId())) {
 			order.setTenantId(SecureUtil.getTenantId());
 		}
-		List<orderItemStat> orderItemStatList = baseMapper.orderItemStat(order,page);
-		if (CollectionUtils.isNotEmpty(orderItemStatList)){
-			orderItemStatList.stream().forEach(e ->{
+		List<orderItemStat> orderItemStatList = baseMapper.orderItemStat(order, page);
+		if (CollectionUtils.isNotEmpty(orderItemStatList)) {
+			orderItemStatList.forEach(e -> {
 				//获取商品信息
-				if (e.getItemId() != null){
+				if (e.getItemId() != null) {
 					R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(e.getItemId());
-					if (goodsMessage.isSuccess() && goodsMessage.getData() != null){
+					if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
 						e.setGoodName(goodsMessage.getData().getCname());//品名
 						e.setTypeno(goodsMessage.getData().getTypeno());//规格
 						e.setLevel(goodsMessage.getData().getLevel());//级别
@@ -503,16 +505,16 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 					}
 				}
 				//获取仓库信息
-				if (e.getStorageId() != null){
+				if (e.getStorageId() != null) {
 					StorageDesc storageDesc = iStorageClient.findById(e.getStorageId());
-					if (storageDesc != null){
+					if (storageDesc != null) {
 						e.setStorageName(storageDesc.getCname());
 					}
 				}
 				//获取客户信息
-				if (e.getCorpId() != null){
+				if (e.getCorpId() != null) {
 					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
-					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
 						e.setCorpName(corpMessage.getData().getCname());
 					}
 				}
@@ -523,16 +525,16 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 
 	@Override
 	public List<orderItemStat> orderItemStatExport(OrderVO order) {
-		if (StringUtils.isBlank(order.getTenantId())){
+		if (StringUtils.isBlank(order.getTenantId())) {
 			order.setTenantId(SecureUtil.getTenantId());
 		}
 		List<orderItemStat> orderItemStatList = baseMapper.orderItemStatExport(order);
-		if (CollectionUtils.isNotEmpty(orderItemStatList)){
-			orderItemStatList.stream().forEach(e ->{
+		if (CollectionUtils.isNotEmpty(orderItemStatList)) {
+			orderItemStatList.forEach(e -> {
 				//获取商品信息
-				if (e.getItemId() != null){
+				if (e.getItemId() != null) {
 					R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(e.getItemId());
-					if (goodsMessage.isSuccess() && goodsMessage.getData() != null){
+					if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
 						e.setGoodName(goodsMessage.getData().getCname());//品名
 						e.setTypeno(goodsMessage.getData().getTypeno());//规格
 						e.setLevel(goodsMessage.getData().getLevel());//级别
@@ -540,16 +542,16 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 					}
 				}
 				//获取仓库信息
-				if (e.getStorageId() != null){
+				if (e.getStorageId() != null) {
 					StorageDesc storageDesc = iStorageClient.findById(e.getStorageId());
-					if (storageDesc != null){
+					if (storageDesc != null) {
 						e.setStorageName(storageDesc.getCname());
 					}
 				}
 				//获取客户信息
-				if (e.getCorpId() != null){
+				if (e.getCorpId() != null) {
 					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
-					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
 						e.setCorpName(corpMessage.getData().getCname());
 					}
 				}
@@ -558,4 +560,16 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 		return orderItemStatList;
 	}
 
+	@Override
+	public List<DatasetVO> dataset(DatasetVO datasetVO) {
+		datasetVO.setTenantId(AuthUtil.getTenantId());
+		return baseMapper.dataset(null, datasetVO);
+	}
+
+	@Override
+	public IPage<DatasetVO> dataset(IPage<DatasetVO> page, DatasetVO datasetVO) {
+		datasetVO.setTenantId(AuthUtil.getTenantId());
+		return page.setRecords(baseMapper.dataset(page, datasetVO));
+	}
+
 }