Browse Source

2022年11月4日19:09:01

纪新园 3 years ago
parent
commit
f3d46f8052
15 changed files with 369 additions and 131 deletions
  1. 5 1
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  2. 6 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderItems.java
  3. 1 1
      blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/entity/StockGoods.java
  4. 13 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java
  5. 24 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderItems.java
  6. 27 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescPartsController.java
  7. 26 1
      blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsDescController.java
  8. 23 29
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java
  9. 69 60
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java
  10. 34 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  11. 23 14
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java
  12. 2 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java
  13. 9 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java
  14. 94 24
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  15. 13 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

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

@@ -1067,7 +1067,11 @@ public class Order implements Serializable {
 	 */
 	@TableField(exist = false)
 	private String tel;
-
+	/**
+	 * 成本金额
+	 */
+	@ApiModelProperty(value = "成本金额")
+	private BigDecimal costAmount;
 
 
 }

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

@@ -349,6 +349,12 @@ public class OrderItems implements Serializable {
 	 */
 	@ApiModelProperty(value = "供应商")
 	private Long corpId;
+
+	/**
+	 * 供应商地址
+	 */
+	@TableField(exist = false)
+	private String corpAddress;
 	/**
 	 * 是否重点推荐 0 否 1 是
 	 */

+ 1 - 1
blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/entity/StockGoods.java

@@ -352,7 +352,7 @@ public class StockGoods implements Serializable {
 	/**
 	 * 送货数量
 	 */
-	@ApiModelProperty(value = "库存下限")
+	@ApiModelProperty(value = "送货数量")
 	private Integer actualQuantity;
 
 

+ 13 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java

@@ -82,6 +82,12 @@ public class Order extends OrderBase {
 	 */
 	@ApiModelProperty(value = "订单日期",required = true)
 	private Date businesDate;
+
+	/**
+	 * 货物类型
+	 */
+	@ApiModelProperty(value = "货物类型")
+	private String cargoType;
 	/**
 	 * 客户或供应商id(全称)
 	 */
@@ -872,4 +878,11 @@ public class Order extends OrderBase {
 	@ApiModelProperty(value = "出库明细件数")
 	private Integer IssueNumber;
 
+
+	/**
+	 * 客户名称
+	 */
+	@TableField(exist = false)
+	private String corpCName;
+
 }

+ 24 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderItems.java

@@ -338,6 +338,12 @@ public class OrderItems extends OrderBase {
 	 */
 	@ApiModelProperty(value = "供应商")
 	private Long corpId;
+
+	/**
+	 * 供应商地址
+	 */
+	@TableField(exist = false)
+	private String corpAddress;
 	/**
 	 * 是否重点推荐 0 否 1 是
 	 */
@@ -635,4 +641,22 @@ public class OrderItems extends OrderBase {
 	@ApiModelProperty(value = "打印日期")
 	private Date printedDate;
 
+	/**
+	 * 出厂价格
+	 */
+	@ApiModelProperty(value = "出厂价格")
+	private BigDecimal outFactoryPrice;
+
+	/**
+	 * 分摊金额(国内)
+	 */
+	@ApiModelProperty(value = "分摊金额(国内)")
+	private BigDecimal shareAmount;
+
+	/**
+	 * 分摊金额(国际)
+	 */
+	@ApiModelProperty(value = "分摊金额(国际)")
+	private BigDecimal internationalAmount;
+
 }

+ 27 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescPartsController.java

@@ -188,4 +188,31 @@ public class CorpsDescPartsController extends BladeController {
 		return R.data(corpsDescDto);
 	}
 
+	/**
+	 * app客户分析
+	 *
+	 * @return
+	 */
+	@GetMapping("/corpAnalysis")
+	@ApiOperation(value = "app客户分析", notes = "传入参数")
+	public R<Map<String, Object>> corpAnalysis() {
+		Map<String, Object> map = new HashMap<>();
+		//核心客户
+		BigDecimal coreCorp = new BigDecimal("0");
+		//流失率
+		BigDecimal lossRate = new BigDecimal("0.00");
+		//平均客单产值
+		BigDecimal averageAmount = new BigDecimal("0.00");
+		LambdaQueryWrapper<CorpsDesc> corpsDescQueryWrapper = new LambdaQueryWrapper<>();
+		corpsDescQueryWrapper.eq(CorpsDesc::getIsDeleted, 0).eq(CorpsDesc::getTenantId, AuthUtil.getTenantId()).eq(CorpsDesc::getCorpType, "KH");
+		//客户总数量
+		int sumNumber = corpsDescService.count(corpsDescQueryWrapper);
+
+		map.put("sumNumber", sumNumber);
+		map.put("coreCorp", coreCorp);
+		map.put("lossRate", lossRate);
+		map.put("averageAmount", averageAmount);
+		return R.data(map);
+	}
+
 }

+ 26 - 1
blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsDescController.java

@@ -542,12 +542,37 @@ public class GoodsDescController extends BladeController {
 							 @RequestParam(name = "typeno", required = false) String typeno,
 							 @RequestParam(name = "brandItem", required = false) String brandItem,
 							 @RequestParam(name = "brand", required = false) String brand,
+							 @RequestParam(name = "belongToCorpId", required = false) String belongToCorpId,
 							 @RequestParam(name = "storageId", required = false) Long storageId
 	) {
 		LambdaQueryWrapper<GoodsDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		//指定分类为一级分类,查询此分类所有二级分类的商品
+		if (StringUtils.isNotBlank(goodsTypeId)) {
+			Long goodsId = Long.parseLong(goodsTypeId);
+			List<Long> goodsIdList = new ArrayList<>();
+			selectChildById(goodsId, goodsIdList);
+			goodsIdList.add(goodsId);
+
+			lambdaQueryWrapper.in(GoodsDesc::getGoodsTypeId, goodsIdList);
+		}
+
+		if (StringUtils.isNotBlank(belongToCorpId)) {
+			LambdaQueryWrapper<CorpsDesc> gysIdListQueryWrapper = new LambdaQueryWrapper<>();
+			gysIdListQueryWrapper.select(CorpsDesc::getId)
+				.eq(CorpsDesc::getBelongtocompany, belongToCorpId)
+				.eq(CorpsDesc::getCorpType, "GYS")
+				.eq(CorpsDesc::getIsDeleted, 0)
+				.eq(CorpsDesc::getTenantId, AuthUtil.getTenantId());
+
+			List<Long> gysIdList = corpsDescService.list(gysIdListQueryWrapper).stream().map(CorpsDesc::getId).collect(Collectors.toList());
+			if (CollectionUtils.isNotEmpty(gysIdList)) {
+				lambdaQueryWrapper.in(GoodsDesc::getCorpId, gysIdList);
+			} else {
+				lambdaQueryWrapper.in(GoodsDesc::getCorpId, "''");
+			}
+		}
 		lambdaQueryWrapper.eq(GoodsDesc::getTenantId, AuthUtil.getTenantId());
 		lambdaQueryWrapper.eq(GoodsDesc::getIsDeleted, 0);
-		lambdaQueryWrapper.eq(StringUtil.isNotBlank(goodsTypeId), GoodsDesc::getGoodsTypeId, goodsTypeId);
 		lambdaQueryWrapper.like(StringUtil.isNotBlank(cname), GoodsDesc::getCname, cname);
 		lambdaQueryWrapper.like(StringUtil.isNotBlank(typeno), GoodsDesc::getTypeno, typeno);
 		lambdaQueryWrapper.like(StringUtil.isNotBlank(brandItem), GoodsDesc::getBrandItem, brandItem);

+ 23 - 29
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java

@@ -51,6 +51,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.math.MathContext;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -701,21 +702,22 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 			}
 			if (!CollectionUtils.isEmpty(stockGoodsList)) {
 				stockGoodsList.forEach(k -> {
-
-
 					k.setSurplusRouteQuantity(k.getBalanceQuantity());
-					k.setTenantId(AuthUtil.getTenantId());
-					k.setGoodsId(goodsDesc.getId());
-					k.setCreateTime(new Date());
-					k.setCreateUser(SecureUtil.getUserId());
-					R<StockGoodsVO> r = stockGoodsClient.selectStockParts(null, k.getStorageId(), goodsDesc.getId(), null, null, null, null, null, null);
-					if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
-						stockGoodsClient.updateStock(k);
-					}else{
-						k.setInQuantity(new BigDecimal(0));
-						k.setInAmount(new BigDecimal("0.00"));
-						k.setInDate(new Date());
+					k.setPurchasePrice(goodsDesc.getPurchasePrice());
+					k.setStockPrice(goodsDesc.getPurchasePrice());
+					k.setBalanceAmount(k.getBalanceQuantity().multiply(goodsDesc.getPurchasePrice()));
+					if (k.getId() == null){
+						k.setTenantId(AuthUtil.getTenantId());
+						k.setGoodsId(goodsDesc.getId());
+						R<StockGoodsVO> r = stockGoodsClient.selectStockParts(null, k.getStorageId(), goodsDesc.getId(), null, null, null, null, null, null);
+						if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
+							throw new RuntimeException("库存存在重复,请修改原库存");
+						}
 						stockGoodsClient.saveStock(k);
+					}else{
+						k.setUpdateTime(new Date());
+						k.setUpdateUser(SecureUtil.getUserId());
+						stockGoodsClient.updateStock(k);
 					}
 				});
 			}
@@ -744,27 +746,19 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 			}
 			if (!CollectionUtils.isEmpty(stockGoodsList)) {
 				stockGoodsList.forEach(k -> {
-					// 新增
-					if (k.getId() == null) {
-						k.setSurplusRouteQuantity(k.getBalanceQuantity());
-
+					k.setSurplusRouteQuantity(k.getBalanceQuantity());
+					k.setPurchasePrice(goodsDesc.getPurchasePrice());
+					k.setStockPrice(goodsDesc.getPurchasePrice());
+					k.setBalanceAmount(k.getBalanceQuantity().multiply(goodsDesc.getPurchasePrice()));
+					if (k.getId() == null){
 						k.setTenantId(AuthUtil.getTenantId());
 						k.setGoodsId(goodsDesc.getId());
-						k.setCreateTime(new Date());
-						k.setCreateUser(SecureUtil.getUserId());
 						R<StockGoodsVO> r = stockGoodsClient.selectStockParts(null, k.getStorageId(), goodsDesc.getId(), null, null, null, null, null, null);
 						if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
-							stockGoodsClient.updateStock(k);
-						}else{
-							k.setInQuantity(new BigDecimal(0));
-							k.setInAmount(new BigDecimal("0.00"));
-							k.setInDate(new Date());
-							stockGoodsClient.saveStock(k);
+							throw new RuntimeException("库存存在重复,请修改原库存");
 						}
-					}
-					// 修改
-					else {
-						k.setSurplusRouteQuantity(k.getBalanceQuantity());
+						stockGoodsClient.saveStock(k);
+					}else{
 						k.setUpdateTime(new Date());
 						k.setUpdateUser(SecureUtil.getUserId());
 						stockGoodsClient.updateStock(k);

+ 69 - 60
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java

@@ -17,15 +17,13 @@
 package org.springblade.purchase.sales.mapper;
 
 import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.sun.javafx.collections.MappingChange;
-import com.trade.purchase.order.vo.OrderDTO;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.excel.*;
 import org.springblade.purchase.sales.vo.*;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.stock.entity.StockGoods;
 
 import java.math.BigDecimal;
@@ -49,41 +47,44 @@ public interface OrderMapper extends BaseMapper<Order> {
 	 */
 	List<OrderVO> selectOrderPage(IPage page, @Param("Order") OrderVO order);
 
-	List<OrderItemBillNoVO> findContractNoByBillNo(@Param("billNo")String billNo, @Param("billType")String billType);
+	List<OrderItemBillNoVO> findContractNoByBillNo(@Param("billNo") String billNo, @Param("billType") String billType);
 
-	IPage<OrderStatisticAnalysisVO> listOrderStatisticAnalysis(Page<OrderStatisticAnalysisVO> page, @Param("tenantId")String tenantId, @Param("orderNo")String orderNo,@Param("startTime")String startTime,@Param("endTime")String endTime);
+	IPage<OrderStatisticAnalysisVO> listOrderStatisticAnalysis(Page<OrderStatisticAnalysisVO> page, @Param("tenantId") String tenantId, @Param("orderNo") String orderNo, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
 	/**
 	 * 查询锁定库存订单
-	 * @param tenantId 租户
+	 *
+	 * @param tenantId  租户
 	 * @param tradeType 贸易类型
-	 * @param billType 订单类型
-	 * @param itemId 商品id
-	 * @param corpId 供应商
+	 * @param billType  订单类型
+	 * @param itemId    商品id
+	 * @param corpId    供应商
 	 * @return
 	 */
-	List<OrderVO> orderInventory(IPage page,@Param("tenantId") String tenantId,
-											@Param("tradeType") String tradeType,
-											@Param("billType") String billType,
-											@Param("itemId") Long itemId,
-											@Param("corpId") Long corpId);
+	List<OrderVO> orderInventory(IPage page, @Param("tenantId") String tenantId,
+								 @Param("tradeType") String tradeType,
+								 @Param("billType") String billType,
+								 @Param("itemId") Long itemId,
+								 @Param("corpId") Long corpId);
 
 	/**
 	 * 首页获取销售趋势
-	 * @param tenantId 租户id
+	 *
+	 * @param tenantId  租户id
 	 * @param tradeType 贸易类型
-	 * @param billType 订单类型
-	 * @param annual 查询年
+	 * @param billType  订单类型
+	 * @param annual    查询年
 	 * @return
 	 */
 	List<SalesTrend> salesTrend(@Param("tenantId") String tenantId,
-						  @Param("tradeType") String tradeType,
-						  @Param("billType") String billType,
-						  @Param("annual") String annual);
+								@Param("tradeType") String tradeType,
+								@Param("billType") String billType,
+								@Param("annual") String annual);
+
 	/**
 	 * 查询 统计分析 销售明细
 	 */
-	List<SalesDetailsVo> selBusinessOrder(IPage<SalesDetailsVo> page,@Param("detailsVo") SalesDetailsVo detailsVo);
+	List<SalesDetailsVo> selBusinessOrder(IPage<SalesDetailsVo> page, @Param("detailsVo") SalesDetailsVo detailsVo);
 
 	/**
 	 * 统计分析 销售明细导出
@@ -98,7 +99,7 @@ public interface OrderMapper extends BaseMapper<Order> {
 	/**
 	 * 统计分析 销售人员提成列表和检索条件查询
 	 */
-	List<SalesDetailsVo> salesCommission(IPage<SalesDetailsVo> page,@Param("detailsVo") SalesDetailsVo detailsVo);
+	List<SalesDetailsVo> salesCommission(IPage<SalesDetailsVo> page, @Param("detailsVo") SalesDetailsVo detailsVo);
 
 	/**
 	 * 统计分析 销售人员提成列表导出
@@ -108,7 +109,7 @@ public interface OrderMapper extends BaseMapper<Order> {
 	/**
 	 * 统计分析 包装费对账列表和检索条件查询
 	 */
-	List<SalesDetailsVo> selPackingFee(IPage<SalesDetailsVo> page,@Param("detailsVo") SalesDetailsVo detailsVo);
+	List<SalesDetailsVo> selPackingFee(IPage<SalesDetailsVo> page, @Param("detailsVo") SalesDetailsVo detailsVo);
 
 	/**
 	 * 统计分析 包装费对账列表导出
@@ -118,7 +119,7 @@ public interface OrderMapper extends BaseMapper<Order> {
 	/**
 	 * 统计分析 品牌采购对账列表和检索条件查询
 	 */
-	List<SalesDetailsVo> purchaseReconciliation(IPage<SalesDetailsVo> page,@Param("detailsVo") SalesDetailsVo detailsVo);
+	List<SalesDetailsVo> purchaseReconciliation(IPage<SalesDetailsVo> page, @Param("detailsVo") SalesDetailsVo detailsVo);
 
 	/**
 	 * 统计分析 品牌采购对账列表导出
@@ -128,7 +129,7 @@ public interface OrderMapper extends BaseMapper<Order> {
 	/**
 	 * 统计分析 销售利润列表和检索条件查询
 	 */
-	List<SalesDetailsVo> selSalesProfit(IPage<SalesDetailsVo> page,@Param("detailsVo") SalesDetailsVo detailsVo);
+	List<SalesDetailsVo> selSalesProfit(IPage<SalesDetailsVo> page, @Param("detailsVo") SalesDetailsVo detailsVo);
 
 	/**
 	 * 统计分析 品牌采购对账列表导出
@@ -137,9 +138,10 @@ public interface OrderMapper extends BaseMapper<Order> {
 
 	/**
 	 * 首页获取销售趋势
-	 * @param tenantId 租户id
-	 * @param tradeType 贸易类型
-	 * @param billType 订单类型
+	 *
+	 * @param tenantId    租户id
+	 * @param tradeType   贸易类型
+	 * @param billType    订单类型
 	 * @param orderStatus 订单状态
 	 * @return
 	 */
@@ -152,10 +154,11 @@ public interface OrderMapper extends BaseMapper<Order> {
 
 	/**
 	 * APP首页获取营业收入
-	 * @param tenantId 			租户id
-	 * @param tradeType 		贸易类型
-	 * @param orderStartDate 	当月开始时间
-	 * @param orderEndDate		当月结束时间
+	 *
+	 * @param tenantId       租户id
+	 * @param tradeType      贸易类型
+	 * @param orderStartDate 当月开始时间
+	 * @param orderEndDate   当月结束时间
 	 * @return
 	 */
 	BigDecimal orderIncome(@Param("tenantId") String tenantId,
@@ -165,9 +168,10 @@ public interface OrderMapper extends BaseMapper<Order> {
 
 	/**
 	 * APP首页获取采购支出
-	 * @param tenantId 			租户id
-	 * @param orderStartDate 	当月开始时间
-	 * @param orderEndDate		当月结束时间
+	 *
+	 * @param tenantId       租户id
+	 * @param orderStartDate 当月开始时间
+	 * @param orderEndDate   当月结束时间
 	 * @return
 	 */
 	BigDecimal purchaseExpenditure(@Param("tenantId") String tenantId,
@@ -177,40 +181,43 @@ public interface OrderMapper extends BaseMapper<Order> {
 
 	/**
 	 * APP获得当前待审批数
-	 * @param tenantId 		租户id
-	 * @param userId		登录人
+	 *
+	 * @param tenantId 租户id
+	 * @param userId   登录人
 	 * @return
 	 */
 	Integer proecessCount(@Param("tenantId") String tenantId,
-									@Param("userId") Long userId);
+						  @Param("userId") Long userId);
 
 	/**
 	 * 首页获取当月销售数量
-	 * @param tenantId 租户id
-	 * @param tradeType 贸易类型
-	 * @param billType 订单类型
+	 *
+	 * @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);
+							 @Param("tradeType") String tradeType,
+							 @Param("billType") String billType,
+							 @Param("orderStatus") String orderStatus,
+							 @Param("orderStartDate") String orderStartDate,
+							 @Param("orderEndDate") String orderEndDate);
 
 	/**
 	 * 更新订单信息
+	 *
 	 * @param order
 	 * @return
 	 */
-	@SqlParser(filter=true)
+	@SqlParser(filter = true)
 	int updateOrderMessage(Order order);
 
 	/**
 	 * 统计分析 销售对账列表和检索条件查询
 	 */
-	List<OrderReconciliationVo> orderReconciliation(IPage<OrderReconciliationVo> page,@Param("order")  OrderReconciliationVo order);
+	List<OrderReconciliationVo> orderReconciliation(IPage<OrderReconciliationVo> page, @Param("order") OrderReconciliationVo order);
 
 	/**
 	 * 统计分析 销售对账列表导出
@@ -220,7 +227,7 @@ public interface OrderMapper extends BaseMapper<Order> {
 	/**
 	 * 统计分析 销售明细对账列表和检索条件查询
 	 */
-	List<OrderReconciliationVo> reconciliationDetailed(IPage<OrderReconciliationVo> page,@Param("order") OrderReconciliationVo order);
+	List<OrderReconciliationVo> reconciliationDetailed(IPage<OrderReconciliationVo> page, @Param("order") OrderReconciliationVo order);
 
 	/**
 	 * 销售明细对账导出
@@ -230,7 +237,7 @@ 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);
 
 	/**
 	 * 发货客户统计导出
@@ -240,7 +247,7 @@ 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> salesmanStatistics(IPage<OrderStatisticsVo> page, @Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand, @Param("chargeMember") String chargeMember);
 
 	/**
 	 * 发货业务员统计导出
@@ -250,7 +257,7 @@ public interface OrderMapper extends BaseMapper<Order> {
 	/**
 	 * 业务员利润统计
 	 */
-	List<OrderStatisticsVo> salesmanProfit(IPage<OrderStatisticsVo> page,@Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand, @Param("chargeMember") String chargeMember);
+	List<OrderStatisticsVo> salesmanProfit(IPage<OrderStatisticsVo> page, @Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand, @Param("chargeMember") String chargeMember);
 
 	/**
 	 * 业务员利润导出
@@ -260,7 +267,7 @@ public interface OrderMapper extends BaseMapper<Order> {
 	/**
 	 * 客户利润统计
 	 */
-	List<OrderStatisticsVo> customerProfit(IPage<OrderStatisticsVo> page,@Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand);
+	List<OrderStatisticsVo> customerProfit(IPage<OrderStatisticsVo> page, @Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand);
 
 	/**
 	 * 客户利润导出
@@ -270,7 +277,7 @@ public interface OrderMapper extends BaseMapper<Order> {
 	/**
 	 * 分品牌利润对比统计
 	 */
-	List<OrderStatisticsVo> brandProfit(IPage<OrderStatisticsVo> page,@Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand);
+	List<OrderStatisticsVo> brandProfit(IPage<OrderStatisticsVo> page, @Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand);
 
 	/**
 	 * 分品牌利润对比统计导出
@@ -280,17 +287,17 @@ 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> specificationsProfit(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);
+	List<SpecificationsProfitExcel> specificationsProfitExport(@Param("statisticsVo") OrderStatisticsVo statisticsVo, @Param("brand") String brand, @Param("chargeMember") String chargeMember);
 
 	/**
 	 * 数量金额汇总对比统计
 	 */
-	List<TotalSummaryVo> totalSummary(IPage<TotalSummaryVo> page,@Param("totalSummaryVo") TotalSummaryVo totalSummaryVo, @Param("brand") String brand);
+	List<TotalSummaryVo> totalSummary(IPage<TotalSummaryVo> page, @Param("totalSummaryVo") TotalSummaryVo totalSummaryVo, @Param("brand") String brand);
 
 	/**
 	 * 数量金额汇总对比统计导出
@@ -302,7 +309,9 @@ public interface OrderMapper extends BaseMapper<Order> {
 	BigDecimal arrears(@Param("tenantId") String tenantId,
 					   @Param("tradeType") String tradeType);
 
-    BigDecimal selectStorageAmount(@Param("order") OrderVO order);
+	BigDecimal selectStorageAmount(@Param("order") OrderVO order);
+
+	List<Order> selectPageByCorp(IPage<Order> page, @Param("order") Order order);
 
-    List<Order> selectPageByCorp(IPage<Order> page, @Param("order") Order order);
+	Map<String, BigDecimal> turnoverAnalysis(@Param("tenantId") String tenantId,@Param("type") String type, @Param("statusDate") String statusDate, @Param("endDate") String endDate,@Param("billType")String billType);
 }

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

@@ -2608,10 +2608,43 @@ ORDER BY
             and DATE_FORMAT(busines_date,'%Y-%m-%d') &lt;= DATE_FORMAT(#{order.orderEndDate},'%Y-%m-%d')
         </if>
         <if test="order.modular != null and order.modular != '' and order.modular == 1">
-            AND debit_amount &gt; settlment_amount
+            AND balance_amount &gt; 0
         </if>
         group by corp_id
     </select>
+    <select id="turnoverAnalysis" resultType="java.util.Map">
+        SELECT
+            ifnull( sum( balance_amount ), 0 ) as income,
+            ifnull( sum( balance_amount ), 0 ) as expenditure,
+            ifnull( sum( gross_profit ), 0 ) as profit,
+            ifnull( sum( cost_amount ), 0 ) as cost
+        FROM
+            business_order
+        WHERE
+            is_deleted = 0
+          AND trade_type = 'YPJ'
+        <if test="billType != null and billType != ''">
+            AND bill_type = #{billType}
+        </if>
+        <if test="tenantId != null and tenantId != ''">
+            AND tenant_id = #{tenantId}
+        </if>
+        <if test="type != null and type != '' and type == 1">
+            AND TO_DAYS(busines_date)=TO_DAYS(NOW())
+        </if>
+        <if test="type != null and type != '' and type == 2">
+            AND YEARWEEK(DATE_FORMAT(busines_date,'%Y-%m-%d'))=YEARWEEK(NOW())
+        </if>
+        <if test="type != null and type != '' and type == 3">
+            AND DATE_FORMAT(busines_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m')
+        </if>
+        <if test="statusDate != null and statusDate != ''">
+            and DATE_FORMAT(busines_date,'%Y-%m-%d') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m-%d')
+        </if>
+        <if test="endDate != null and endDate != ''">
+            and DATE_FORMAT(busines_date,'%Y-%m-%d') &lt;= DATE_FORMAT(#{endDate},'%Y-%m-%d')
+        </if>
+    </select>
     <update id="updateStockGoods" parameterType="org.springblade.stock.entity.StockGoods">
         UPDATE business_stock_goods SET surplus_route_quantity = #{surplusRouteQuantity},locking_quantity = #{lockingQuantity} WHERE tenant_id = #{tenantId} AND id = #{id} AND is_deleted = 0
     </update>

+ 23 - 14
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java

@@ -125,7 +125,7 @@ public class AppPartsController extends BladeController {
 		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getBillType()), Order::getBillType, order.getBillType());
 		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getTradeType()), Order::getTradeType, order.getTradeType());
 		if ("1".equals(order.getModular())) {
-			lambdaQueryWrapper.apply("debit_amount > settlment_amount");
+			lambdaQueryWrapper.apply("balance_amount > 0");
 		}
 		if ("0".equals(order.getSort())) {
 			if ("1".equals(order.getTypeSort())) {
@@ -209,7 +209,7 @@ public class AppPartsController extends BladeController {
 					}
 				}
 				Acc acc = financeClient.selectBySrcId(item.getId());
-				if (ObjectUtils.isNotNull(acc)){
+				if (ObjectUtils.isNotNull(acc)) {
 					item.setSrcAccId(acc.getId());
 				}
 				//获取订单明细
@@ -308,7 +308,7 @@ public class AppPartsController extends BladeController {
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
 		lambdaQueryWrapper.eq(Order::getBillType, OrderTypeEnum.SALES.getType());
 		lambdaQueryWrapper.eq(Order::getTradeType, OrderTypeEnum.PARTS.getType());
-		lambdaQueryWrapper.eq(Order::getConfirmStatus,1);
+		lambdaQueryWrapper.eq(Order::getConfirmStatus, 1);
 		List<Order> orderList = orderService.list(lambdaQueryWrapper);
 
 		BigDecimal total = new BigDecimal("0.00");
@@ -322,9 +322,9 @@ public class AppPartsController extends BladeController {
 		order.setTime("2");
 		lastMonth = orderService.selectStorageAmount(order);
 		flowAmount = month.subtract(lastMonth);
-		if (lastMonth.equals(new BigDecimal("0.00"))){
+		if (lastMonth.equals(new BigDecimal("0.00"))) {
 			flowAmount = new BigDecimal("100.00");
-		}else{
+		} else {
 			flowAmount = flowAmount.divide(lastMonth, MathContext.DECIMAL32);
 			if (month.compareTo(lastMonth) < 0) {
 				flowAmount = flowAmount.setScale(2, RoundingMode.HALF_UP);
@@ -407,19 +407,28 @@ public class AppPartsController extends BladeController {
 	 */
 	@GetMapping("/turnoverAnalysis")
 	@ApiOperation(value = "app营业分析", notes = "传入参数")
-	public R<Map<String,Object>> turnoverAnalysis(@RequestParam("type") String type,
-							  @RequestParam("statusDate") String statusDate,
-							  @RequestParam("endDate") String endDate) {
-		Map<String,Object> map = new HashMap<>();
+	public R<Map<String, Object>> turnoverAnalysis(@RequestParam("type") String type,
+												   @RequestParam(value = "statusDate",required = false) String statusDate,
+												   @RequestParam(value = "endDate",required = false) String endDate) {
+		Map<String, Object> map = new HashMap<>();
+		//销售
 		BigDecimal income = new BigDecimal("0.00");
+		//支出
 		BigDecimal expenditure = new BigDecimal("0.00");
+		//利润
 		BigDecimal profit = new BigDecimal("0.00");
+		//成本
 		BigDecimal cost = new BigDecimal("0.00");
-		map.put("income",income);
-		map.put("expenditure",expenditure);
-		map.put("profit",profit);
-		map.put("cost",cost);
+		Map<String, BigDecimal> mapXS = orderService.turnoverAnalysis("XS", type, statusDate, endDate);
+		Map<String, BigDecimal> mapCG = orderService.turnoverAnalysis("CG", type, statusDate, endDate);
+		income = income.add(mapXS.get("income"));
+		expenditure = expenditure.add(mapCG.get("expenditure"));
+		profit = profit.add(mapXS.get("profit").subtract(mapCG.get("profit")));
+		cost = cost.add(mapXS.get("cost").subtract(mapCG.get("cost")));
+		map.put("income", income);
+		map.put("expenditure", expenditure);
+		map.put("profit", profit);
+		map.put("cost", cost);
 		return R.data(map);
 	}
-
 }

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

@@ -377,4 +377,6 @@ public interface IOrderService extends IService<Order> {
 	IPage<Order> selectPageByCorp(IPage<Order> page, Order order);
 
 	R quickBilling(Order order);
+
+	Map<String, BigDecimal> turnoverAnalysis(String billType,String type, String statusDate, String endDate);
 }

+ 9 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -19,6 +19,7 @@ package org.springblade.purchase.sales.service.impl;
 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.trade.purchase.order.enums.OrderTypeEnum;
@@ -230,6 +231,14 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 	 */
 	public List<OrderItems> saveOrderItemsMessage(List<OrderItems> list, Date date, Long pid) {
 		list.forEach(item -> {
+
+			if (ObjectUtils.isNotNull(item.getCorpId())){
+				CorpsDesc corpsDesc = corpsDescClient.getCorpId(item.getCorpId());
+				if (ObjectUtils.isNotNull(corpsDesc)){
+					item.setCorpAddress(corpsDesc.getBelongtoarea());
+				}
+			}
+
 			if (item.getId() == null) {
 				item.setTenantId(SecureUtil.getTenantId());
 				item.setCreateUser(SecureUtil.getUserId());

+ 94 - 24
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -1827,13 +1827,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			//获取费用明细
 			LambdaQueryWrapper<OrderCostItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
 			itemLambdaQueryWrapper.eq(OrderCostItem::getPId, orderCost.getId());
-			//获取明细第一条供应商所在地
-			if (ObjectUtils.isNotNull(orderItemsList)) {
-				Long corpId = orderItemsList.get(0).getCorpId();
-				//供应商
-				CorpsDesc corpsDesc = corpsDescList.stream().filter(corps -> corps.getId().equals(corpId)).findFirst().orElse(null);
-				if (ObjectUtils.isNotNull(corpsDesc) && ObjectUtils.isNotNull(corpsDesc.getBelongtoarea())) {
-					itemLambdaQueryWrapper.apply("find_in_set(departure,'" + corpsDesc.getBelongtoarea() + "')");//明细供应商所在地址
+			if (order.getDomesticAbroad().equals("1")) {//判断是否计算国际费用
+				//获取明细第一条供应商所在地
+				if (ObjectUtils.isNotNull(orderItemsList)) {
+					Long corpId = orderItemsList.get(0).getCorpId();
+					//供应商
+					CorpsDesc corpsDesc = corpsDescList.stream().filter(corps -> corps.getId().equals(corpId)).findFirst().orElse(null);
+					if (ObjectUtils.isNotNull(corpsDesc) && ObjectUtils.isNotNull(corpsDesc.getBelongtoarea())) {
+						itemLambdaQueryWrapper.apply("find_in_set(departure,'" + corpsDesc.getBelongtoarea() + "')");//明细供应商所在地址
+					}
 				}
 			}
 			itemLambdaQueryWrapper.eq(OrderCostItem::getStatus, 0)
@@ -1954,23 +1956,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			}
 		}
-		//分摊费用额 = 总费用/总货值
-		if (!amount.equals(new BigDecimal(0))) {
-			if (order.getDomesticAbroad().equals("1") && order.getCurrency().equals("CNY")) {
-				amount = amount;
-			} else if (order.getDomesticAbroad().equals("1") && order.getCurrency().equals("USD")) {
-				amount = amount.divide(order.getExchangeRate(), MathContext.DECIMAL32);
-			} else if (order.getDomesticAbroad().equals("2") && order.getCurrency().equals("CNY")) {
-				amount = amount.multiply(order.getExchangeRate(), MathContext.DECIMAL32);
-			} else if (order.getDomesticAbroad().equals("2") && order.getCurrency().equals("USD")) {
-				amount = amount;
-			}
-			amountF = amount.divide(order.getTotalValue(), MathContext.DECIMAL32);
-			amountF = amountF.setScale(8, BigDecimal.ROUND_HALF_UP);
-			amount = amount.setScale(8, BigDecimal.ROUND_HALF_UP);
-		}
-		map.put("amount", amount.toString());
-		map.put("amountF", amountF.toString());
+//		//分摊费用额 = 总费用/总货值
+//		if (!amount.equals(new BigDecimal(0))) {
+//			if (order.getDomesticAbroad().equals("1") && order.getCurrency().equals("CNY")) {
+//				amount = amount;
+//			} else if (order.getDomesticAbroad().equals("1") && order.getCurrency().equals("USD")) {
+//				amount = amount.divide(order.getExchangeRate(), MathContext.DECIMAL32);
+//			} else if (order.getDomesticAbroad().equals("2") && order.getCurrency().equals("CNY")) {
+//				amount = amount.multiply(order.getExchangeRate(), MathContext.DECIMAL32);
+//			} else if (order.getDomesticAbroad().equals("2") && order.getCurrency().equals("USD")) {
+//				amount = amount;
+//			}
+//			if(ObjectUtils.isNotNull(order.getTotalValue()) || !order.getTotalValue().equals(new BigDecimal("0.00"))){
+//				amountF = amount.divide(order.getTotalValue(), MathContext.DECIMAL32);
+//				amountF = amountF.setScale(8, BigDecimal.ROUND_HALF_UP);
+//				amount = amount.setScale(8, BigDecimal.ROUND_HALF_UP);
+//			}else{
+//				throw new RuntimeException("总货值为0");
+//			}
+//		}
+//		map.put("amount", amount.toString());
+//		map.put("amountF", amountF.toString());
 		map.put("fees", mapList);
 		return map;
 	}
@@ -2067,6 +2073,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	@Override
 	public R saveOrderconfirm(Order order) {
 		Order selectOrder = baseMapper.selectById(order.getId());
+		BigDecimal costAmount = new BigDecimal("0.00");
+		BigDecimal grossProfit = new BigDecimal("0.00");
 		if (ObjectUtils.isNotNull(selectOrder)) {
 			LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
 			orderItemsLambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0)
@@ -2101,9 +2109,36 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					r.getData().setBalanceAmount(balanceAmount);
 					r.getData().setStockPrice(stockPrice);
 					stockGoodsClient.updateStock(r.getData());
+
+					costAmount = costAmount.add(r.getData().getStockPrice().multiply(orderItems.getStorageInQuantity()));
+					grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice()));
+
+				}else{
+					StockGoods stockGoods = new StockGoods();
+					if ("CG".equals(order.getBillType())){
+						stockGoods.setGoodsId(orderItems.getItemId());
+						stockGoods.setStorageId(orderItems.getStorageId());
+						stockGoods.setPurchasePrice(orderItems.getPrice());
+						stockGoods.setStockPrice(orderItems.getPrice());
+						stockGoods.setBalanceQuantity(orderItems.getStorageInQuantity());
+						stockGoods.setBalanceAmount(stockGoods.getBalanceQuantity().multiply(orderItems.getPrice()));
+						stockGoods.setSurplusRouteQuantity(orderItems.getStorageInQuantity());
+						stockGoodsClient.saveStock(stockGoods);
+					}else{
+						stockGoods.setGoodsId(orderItems.getItemId());
+						stockGoods.setStorageId(orderItems.getStorageId());
+						stockGoods.setPurchasePrice(orderItems.getPrice());
+						stockGoods.setStockPrice(orderItems.getPrice());
+						stockGoods.setBalanceQuantity(new BigDecimal("0.00").subtract(orderItems.getStorageInQuantity()));
+						stockGoods.setBalanceAmount(new BigDecimal("0.00").subtract(stockGoods.getBalanceQuantity().multiply(orderItems.getPrice())));
+						stockGoods.setSurplusRouteQuantity(new BigDecimal("0.00").subtract(orderItems.getStorageInQuantity()));
+						stockGoodsClient.saveStock(stockGoods);
+					}
 				}
 			}
 		}
+		selectOrder.setCostAmount(costAmount);
+		selectOrder.setGrossProfit(grossProfit);
 		selectOrder.setConfirmStatus(1);
 		baseMapper.updateById(selectOrder);
 	/*	if (ObjectUtils.isNotNull(selectOrder.getCurrentAmount()) && !selectOrder.getCurrentAmount().equals(new BigDecimal(0))) {
@@ -2372,6 +2407,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			}
 		}
+
+		BigDecimal costAmount = new BigDecimal("0.00");
+		BigDecimal grossProfit = new BigDecimal("0.00");
 		// 保存订单明细
 		if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
 			for (OrderItems orderItems : order.getOrderItemsList()) {
@@ -2403,6 +2441,31 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					r.getData().setBalanceAmount(balanceAmount);
 					r.getData().setStockPrice(stockPrice);
 					stockGoodsClient.updateStock(r.getData());
+
+					costAmount = costAmount.add(r.getData().getStockPrice().multiply(orderItems.getStorageInQuantity()));
+					grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice()));
+
+				}else{
+					StockGoods stockGoods = new StockGoods();
+					if ("CG".equals(order.getBillType())){
+						stockGoods.setGoodsId(orderItems.getItemId());
+						stockGoods.setStorageId(orderItems.getStorageId());
+						stockGoods.setPurchasePrice(orderItems.getPrice());
+						stockGoods.setStockPrice(orderItems.getPrice());
+						stockGoods.setBalanceQuantity(orderItems.getStorageInQuantity());
+						stockGoods.setBalanceAmount(stockGoods.getBalanceQuantity().multiply(orderItems.getPrice()));
+						stockGoods.setSurplusRouteQuantity(orderItems.getStorageInQuantity());
+						stockGoodsClient.saveStock(stockGoods);
+					}else{
+						stockGoods.setGoodsId(orderItems.getItemId());
+						stockGoods.setStorageId(orderItems.getStorageId());
+						stockGoods.setPurchasePrice(orderItems.getPrice());
+						stockGoods.setStockPrice(orderItems.getPrice());
+						stockGoods.setBalanceQuantity(new BigDecimal("0.00").subtract(orderItems.getStorageInQuantity()));
+						stockGoods.setBalanceAmount(new BigDecimal("0.00").subtract(stockGoods.getBalanceQuantity().multiply(orderItems.getPrice())));
+						stockGoods.setSurplusRouteQuantity(new BigDecimal("0.00").subtract(orderItems.getStorageInQuantity()));
+						stockGoodsClient.saveStock(stockGoods);
+					}
 				}
 			}
 			List<OrderItems> orderItemsList = orderItemsService.saveOrderItemsMessage(order.getOrderItemsList(), date, order.getId());
@@ -2420,6 +2483,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		if (ObjectUtils.isNull(order.getOrderAmount())){
 			order.setOrderAmount(order.getStorageAmount().subtract(order.getThisUsedProfit()));
 		}
+		order.setCostAmount(costAmount);
+		order.setGrossProfit(grossProfit);
 		order.setConfirmStatus(1);
 		this.paymentApply(order, order.getBillType(), order.getTradeType());
 		order.setDebitAmount(order.getOrderAmount());
@@ -2432,6 +2497,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	public Map<String, BigDecimal> turnoverAnalysis(String billType,String type, String statusDate, String endDate) {
+		return baseMapper.turnoverAnalysis(AuthUtil.getTenantId(),type,statusDate,endDate,billType);
+	}
+
+	@Override
 	public MonthSales monthSales(OrderVO order) {
 		MonthSales monthSales = new MonthSales();
 		if (AuthUtil.getTenantId().equals("673511")) {

+ 13 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -433,6 +433,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			throw new OrderException("未找到订单信息");
 		}
 		OrderVO vo = OrderMapstructMapper.INSTANCE.toVo(orderMessage);
+		vo.setCargoType(orderMessage.getCargoType());
 		//获取创建人中文名
 		R<User> createUser = userClient.userInfoById(vo.getCreateUser());
 
@@ -446,10 +447,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				vo.setCorpsName(corpMessage.getData());
 			}
 		}
+		if (ObjectUtils.isNotNull(orderMessage.getCorpId())){
+			CorpsDesc corpsDesc = corpsDescClient.getCorpId(orderMessage.getCorpId());
+			if (ObjectUtils.isNotNull(corpsDesc)) {
+				vo.setCorpCName(corpsDesc.getCname());
+			}
+		}
 		//获取订单明细信息
 		List<OrderItems> orderItemsList = this.getOrderItems(vo.getId(), SecureUtil.getUserId());
 		if (CollectionUtils.isNotEmpty(orderItemsList)) {
 			vo.setItemsVOList(orderItemsList.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
+			for (OrderItemsVO orderItemsVO : vo.getItemsVOList()) {
+				CorpsDesc corpsDesc = corpsDescClient.getCorpId(orderItemsVO.getCorpId());
+				if (ObjectUtils.isNotNull(corpsDesc)) {
+					orderItemsVO.setCorpAddress(corpsDesc.getBelongtoarea());
+				}
+			}
 		}
 		//获取订单费用信息
 		List<OrderFees> orderFeesList = this.getOrderFees(vo.getId());