Browse Source

贸易主页-福达出口贸易功能对接

lazhaoqian 3 years ago
parent
commit
0024bb5b7d
14 changed files with 481 additions and 32 deletions
  1. 24 0
      blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/DeliveryData.java
  2. 29 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/CheckDate.java
  3. 35 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/MonthSales.java
  4. 5 1
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderVO.java
  5. 26 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/SalesTrend.java
  6. 21 20
      blade-service/blade-client/src/main/java/org/springblade/client/school/service/impl/SchoolTeacherServiceImpl.java
  7. 62 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ExportDeliveryController.java
  8. 17 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java
  9. 92 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java
  10. 28 3
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java
  11. 84 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  12. 14 3
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java
  13. 30 3
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  14. 14 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

+ 24 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/DeliveryData.java

@@ -0,0 +1,24 @@
+package org.springblade.deliver.goods.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 首页 统计收发货
+ */
+@Data
+public class DeliveryData implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 发货审核数据量
+	 */
+	@ApiModelProperty(value = "发货审核数据量")
+	private int sellNumber;
+	/**
+	 * 收货审核数据量
+	 */
+	@ApiModelProperty(value = "收货审核数据量")
+	private int purchaseNumber;
+}

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

@@ -0,0 +1,29 @@
+package org.springblade.purchase.sales.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 贸易审核数据
+ */
+@Data
+public class CheckDate implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 销售审核数据量
+	 */
+	@ApiModelProperty(value = "销售审核数据量")
+	private int sellNumber;
+	/**
+	 * 采购审核数据量
+	 */
+	@ApiModelProperty(value = "采购审核数据量")
+	private int purchaseNumber;
+	/**
+	 * 报价审核数据量
+	 */
+	@ApiModelProperty(value = "报价审核数据量")
+	private int offerNumber;
+}

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

@@ -0,0 +1,35 @@
+package org.springblade.purchase.sales.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 贸易当月销售
+ */
+@Data
+public class MonthSales implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 总金额
+	 */
+	@ApiModelProperty(value = "总金额")
+	private BigDecimal grossAmount;
+	/**
+	 * 达成金额
+	 */
+	@ApiModelProperty(value = "达成金额")
+	private BigDecimal reachAmount;
+	/**
+	 * 未达成金额
+	 */
+	@ApiModelProperty(value = "未达成金额")
+	private BigDecimal notReachAmount;
+	/**
+	 * 达成率
+	 */
+	@ApiModelProperty(value = "达成率")
+	private BigDecimal yieldRate;
+}

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

@@ -122,5 +122,9 @@ public class OrderVO extends Order {
 	 */
 	@ApiModelProperty(value = "计划交货日期结束")
 	private String plannedDeliveryEnd;
-
+	/**
+	 * 查询年
+	 */
+	@ApiModelProperty(value = "查询年")
+	private String annual;
 }

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

@@ -0,0 +1,26 @@
+package org.springblade.purchase.sales.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 首页销售趋势
+ */
+@Data
+public class SalesTrend implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 月份
+	 */
+	@ApiModelProperty(value = "月份")
+	private String moon;
+	/**
+	 * 销售金额
+	 */
+	@ApiModelProperty(value = "销售金额")
+	private BigDecimal money;
+}

+ 21 - 20
blade-service/blade-client/src/main/java/org/springblade/client/school/service/impl/SchoolTeacherServiceImpl.java

@@ -541,18 +541,18 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
 			SchoolConfigItem performanceAward = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), schoolTeacher.getSalaryWithdrawalStandardName(), "履约奖标准", schoolTeacher.getSchoolAge().toString(), null, null);
 			if (performanceAward == null) {
 				SchoolConfigItem performanceAwardName = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), schoolTeacher.getSalaryWithdrawalStandardName(), "履约奖标准", null, null, null);
-			if (performanceAwardName != null) {
-				schoolTeacher.setPerformanceAward(performanceAwardName.getSalary());
-				schoolTeacher.setPerformanceAwardName(schoolTeacher.getSchoolAge());
-			} else {
-				schoolTeacher.setPerformanceAward(BigDecimal.ZERO);
-				schoolTeacher.setPerformanceAwardName(schoolTeacher.getSchoolAge());
-			}
+				if (performanceAwardName != null) {
+					schoolTeacher.setPerformanceAward(performanceAwardName.getSalary());
+					schoolTeacher.setPerformanceAwardName(schoolTeacher.getSchoolAge());
+				} else {
+					schoolTeacher.setPerformanceAward(BigDecimal.ZERO);
+					schoolTeacher.setPerformanceAwardName(schoolTeacher.getSchoolAge());
+				}
 			} else {
 				schoolTeacher.setPerformanceAward(performanceAward.getSalary());
 				schoolTeacher.setPerformanceAwardName(schoolTeacher.getSchoolAge());
 			}
-		}else {
+		} else {
 			schoolTeacher.setPerformanceAward(BigDecimal.ZERO);
 			schoolTeacher.setPerformanceAwardName(BigDecimal.ZERO);
 		}
@@ -590,6 +590,7 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
 		}
 		return schoolTeacher;
 	}
+
 	//获取工资标准配置信息
 	public SchoolTeacher copyConfigMessage(SchoolTeacher schoolTeacher) {
 		//获取工资拨付标准 公办用职称查询 其他用校龄查询
@@ -758,22 +759,22 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
 			schoolTeacher.setCapitalIncrease(capitalIncreaseName.getSalary());
 		}
 		//履约奖标准
-		/*if (StringUtils.isBlank(schoolTeacher.getEnjoyOfficeTreatment()) || !schoolTeacher.getEnjoyOfficeTreatment().equals("是")) {*/
-		SchoolConfigItem performanceAward = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), schoolTeacher.getSalaryWithdrawalStandardName(), "履约奖标准", schoolTeacher.getSchoolAge().toString(), null, null);
-		if (performanceAward == null) {
-			SchoolConfigItem performanceAwardName = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), schoolTeacher.getSalaryWithdrawalStandardName(), "履约奖标准", null, null, null);
-			if (performanceAwardName != null) {
-				schoolTeacher.setPerformanceAward(performanceAwardName.getSalary());
-				schoolTeacher.setPerformanceAwardName(schoolTeacher.getSchoolAge());
+		if (StringUtils.isBlank(schoolTeacher.getEnjoyOfficeTreatment()) || !schoolTeacher.getEnjoyOfficeTreatment().equals("是")) {
+			SchoolConfigItem performanceAward = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), schoolTeacher.getSalaryWithdrawalStandardName(), "履约奖标准", schoolTeacher.getSchoolAge().toString(), null, null);
+			if (performanceAward == null) {
+				SchoolConfigItem performanceAwardName = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), schoolTeacher.getSalaryWithdrawalStandardName(), "履约奖标准", null, null, null);
+				if (performanceAwardName != null) {
+					schoolTeacher.setPerformanceAward(performanceAwardName.getSalary());
+					schoolTeacher.setPerformanceAwardName(schoolTeacher.getSchoolAge());
+				} else {
+					schoolTeacher.setPerformanceAward(BigDecimal.ZERO);
+					schoolTeacher.setPerformanceAwardName(schoolTeacher.getSchoolAge());
+				}
 			} else {
-				schoolTeacher.setPerformanceAward(BigDecimal.ZERO);
+				schoolTeacher.setPerformanceAward(performanceAward.getSalary());
 				schoolTeacher.setPerformanceAwardName(schoolTeacher.getSchoolAge());
 			}
-		} else {
-			schoolTeacher.setPerformanceAward(performanceAward.getSalary());
-			schoolTeacher.setPerformanceAwardName(schoolTeacher.getSchoolAge());
 		}
-		/*}*/
 		return schoolTeacher;
 	}
 }

+ 62 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ExportDeliveryController.java

@@ -37,10 +37,14 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.deliver.goods.entity.Delivery;
+import org.springblade.deliver.goods.entity.DeliveryData;
 import org.springblade.deliver.goods.enums.DeliveryEnum;
 import org.springblade.deliver.goods.enums.DeliveryStatusEnum;
 import org.springblade.deliver.goods.service.IDeliveryService;
 import org.springblade.deliver.goods.vo.DeliveryVO;
+import org.springblade.purchase.sales.entity.Order;
+import org.springblade.purchase.sales.vo.CheckDate;
+import org.springblade.purchase.sales.vo.OrderVO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
@@ -226,5 +230,63 @@ public class ExportDeliveryController extends BladeController {
 		deliveryService.cancel(delivery);
 		return R.data(delivery);
 	}
+	/**
+	 * 查询 出口贸易 收发货审核数据
+	 */
+	@GetMapping("/checkDate")
+	@ApiOperationSupport(order = 14)
+	@ApiOperation(value = "出口贸易首页 收发货审核数据", notes = "出口贸易首页 收发货审核数据")
+	public R checkDate(Delivery delivery){
+		if (StringUtils.isBlank(delivery.getTradeType())){
+			throw new SecurityException("缺少贸易类型");
+		}
+		DeliveryData deliveryData = new DeliveryData();
+		//获取发货未审核数据
+		LambdaQueryWrapper<Delivery> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Delivery::getIsDeleted,0);
+		lambdaQueryWrapper.eq(Delivery::getTenantId,SecureUtil.getTenantId());
+		lambdaQueryWrapper.eq(Delivery::getTradeType,delivery.getTradeType());
+		lambdaQueryWrapper.eq(Delivery::getBillType,OrderTypeEnum.SHIP.getType());//发货
+		lambdaQueryWrapper.gt(Delivery::getStatus,0);
+		lambdaQueryWrapper.lt(Delivery::getStatus,3);
+		deliveryData.setSellNumber(deliveryService.count(lambdaQueryWrapper));
+		//获取收货未审核数据
+		LambdaQueryWrapper<Delivery> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(Delivery::getIsDeleted,0);
+		queryWrapper.eq(Delivery::getTenantId,SecureUtil.getTenantId());
+		queryWrapper.eq(Delivery::getTradeType,delivery.getTradeType());
+		queryWrapper.eq(Delivery::getBillType,OrderTypeEnum.RECEIPT.getType());//收货
+		queryWrapper.gt(Delivery::getStatus,0);
+		queryWrapper.lt(Delivery::getStatus,3);
+		deliveryData.setPurchaseNumber(deliveryService.count(queryWrapper));
+		return R.data(deliveryData);
+	}
+	/**
+	 * 查询 出口贸易 收发货实时数据
+	 */
+	@GetMapping("/realTimeData")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "出口贸易首页 收发货实时数据", notes = "出口贸易首页 收发货实时数据")
+	public R realTimeData(Delivery delivery){
+		if (StringUtils.isBlank(delivery.getTradeType())){
+			throw new SecurityException("缺少贸易类型");
+		}
+		DeliveryData deliveryData = new DeliveryData();
+		//获取发货未审核数据
+		LambdaQueryWrapper<Delivery> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Delivery::getIsDeleted,0);
+		lambdaQueryWrapper.eq(Delivery::getTenantId,SecureUtil.getTenantId());
+		lambdaQueryWrapper.eq(Delivery::getTradeType,delivery.getTradeType());
+		lambdaQueryWrapper.eq(Delivery::getBillType,OrderTypeEnum.SHIP.getType());//发货
+		deliveryData.setSellNumber(deliveryService.count(lambdaQueryWrapper));
+		//获取收货未审核数据
+		LambdaQueryWrapper<Delivery> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(Delivery::getIsDeleted,0);
+		queryWrapper.eq(Delivery::getTenantId,SecureUtil.getTenantId());
+		queryWrapper.eq(Delivery::getTradeType,delivery.getTradeType());
+		queryWrapper.eq(Delivery::getBillType,OrderTypeEnum.RECEIPT.getType());//收货
+		deliveryData.setPurchaseNumber(deliveryService.count(queryWrapper));
+		return R.data(deliveryData);
+	}
 
 }

+ 17 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java

@@ -5,6 +5,7 @@ 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.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.swagger.annotations.Api;
@@ -308,7 +309,7 @@ public class ExportEnquiryController extends BladeController {
 				List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0));
 				if (CollectionUtils.isNotEmpty(list)){
 					item.setOrderQuantity(list.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//数量合计
-					item.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
+					item.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add).multiply(item.getExchangeRate()));//销售金额
 					item.setPurchaseAmount(list.stream().filter(e -> e.getPurchaseAmount() != null).reduce(BigDecimal.ZERO,(x,y) ->{
 						return x.add((y.getPurchaseAmount().add(y.getPartsPrice())).multiply(y.getOrderQuantity()));
 					},BigDecimal::add));//采购金额
@@ -320,4 +321,19 @@ public class ExportEnquiryController extends BladeController {
 		}
 		ExcelUtil.export(response, "报价单", "报价单", enquiryExcels, EnquiryExcel.class);
 	}
+	/**
+	 * 查询 出口贸易 当月销售
+	 */
+	@GetMapping("/monthSales")
+	@ApiOperationSupport(order = 14)
+	@ApiOperation(value = "出口贸易首页 当月销售", notes = "出口贸易首页 当月销售")
+	public R monthSales(OrderVO order){
+		if (StringUtils.isBlank(order.getTradeType())){
+			throw new SecurityException("缺少贸易类型");
+		}
+		if (StringUtils.isBlank(order.getBillType())){
+			throw new SecurityException("缺少订单类型");
+		}
+		return R.data(orderService.monthSales(order));
+	}
 }

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

@@ -31,6 +31,7 @@ import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.excel.ExportOrderExcel;
 import org.springblade.purchase.sales.excel.ProfitItemExcel;
 import org.springblade.purchase.sales.service.*;
+import org.springblade.purchase.sales.vo.CheckDate;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
 import org.springblade.purchase.sales.vo.OrderVO;
 import org.springblade.system.user.entity.User;
@@ -552,4 +553,95 @@ public class ExportOrderController extends BladeController {
 		}
 		ExcelUtil.export(response, "销售订单", "销售订单", exportOrderExcels, ExportOrderExcel.class);
 	}
+	/**
+	 * 查询 出口贸易 订单审核数据
+	 */
+	@GetMapping("/checkDate")
+	@ApiOperationSupport(order = 14)
+	@ApiOperation(value = "出口贸易首页 订单审核数据", notes = "出口贸易首页 订单审核数据")
+	public R checkDate(OrderVO order){
+		if (StringUtils.isBlank(order.getTradeType())){
+			throw new SecurityException("缺少贸易类型");
+		}
+		CheckDate checkDate = new CheckDate();
+		//获取销售未审核数据
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);
+		lambdaQueryWrapper.eq(Order::getTenantId,SecureUtil.getTenantId());
+		lambdaQueryWrapper.eq(Order::getTradeType,order.getTradeType());
+		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.SALES.getType());//销售
+		lambdaQueryWrapper.gt(Order::getStatus,0);
+		lambdaQueryWrapper.lt(Order::getStatus,3);
+		checkDate.setSellNumber(orderService.count(lambdaQueryWrapper));
+		//获取采购未审核数据
+		LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(Order::getIsDeleted,0);
+		queryWrapper.eq(Order::getTenantId,SecureUtil.getTenantId());
+		queryWrapper.eq(Order::getTradeType,order.getTradeType());
+		queryWrapper.eq(Order::getBillType,OrderTypeEnum.PURCHASE.getType());//采购
+		queryWrapper.gt(Order::getStatus,0);
+		queryWrapper.lt(Order::getStatus,3);
+		checkDate.setPurchaseNumber(orderService.count(queryWrapper));
+		//获取报价未审核数据
+		LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
+		wrapper.eq(Order::getIsDeleted,0);
+		wrapper.eq(Order::getTenantId,SecureUtil.getTenantId());
+		wrapper.eq(Order::getTradeType,order.getTradeType());
+		wrapper.eq(Order::getBillType,OrderTypeEnum.ENQUIRY.getType());//采购
+		wrapper.gt(Order::getStatus,0);
+		wrapper.lt(Order::getStatus,3);
+		checkDate.setOfferNumber(orderService.count(wrapper));
+		return R.data(checkDate);
+	}
+	/**
+	 * 查询 出口贸易 订单实时数据
+	 */
+	@GetMapping("/realTimeData")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "出口贸易首页 订单实时数据", notes = "出口贸易首页 订单实时数据")
+	public R realTimeData(OrderVO order){
+		if (StringUtils.isBlank(order.getTradeType())){
+			throw new SecurityException("缺少贸易类型");
+		}
+		CheckDate checkDate = new CheckDate();
+		//获取销售未审核数据
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);
+		lambdaQueryWrapper.eq(Order::getTenantId,SecureUtil.getTenantId());
+		lambdaQueryWrapper.eq(Order::getTradeType,order.getTradeType());
+		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.SALES.getType());//销售
+		checkDate.setSellNumber(orderService.count(lambdaQueryWrapper));
+		//获取采购未审核数据
+		LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(Order::getIsDeleted,0);
+		queryWrapper.eq(Order::getTenantId,SecureUtil.getTenantId());
+		queryWrapper.eq(Order::getTradeType,order.getTradeType());
+		queryWrapper.eq(Order::getBillType,OrderTypeEnum.PURCHASE.getType());//采购
+		checkDate.setPurchaseNumber(orderService.count(queryWrapper));
+		//获取报价未审核数据
+		LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
+		wrapper.eq(Order::getIsDeleted,0);
+		wrapper.eq(Order::getTenantId,SecureUtil.getTenantId());
+		wrapper.eq(Order::getTradeType,order.getTradeType());
+		wrapper.eq(Order::getBillType,OrderTypeEnum.ENQUIRY.getType());//采购
+		wrapper.gt(Order::getStatus,0);
+		wrapper.lt(Order::getStatus,3);
+		checkDate.setOfferNumber(orderService.count(wrapper));
+		return R.data(checkDate);
+	}
+	/**
+	 * 查询 出口贸易 销售趋势
+	 */
+	@GetMapping("/salesTrend")
+	@ApiOperationSupport(order = 16)
+	@ApiOperation(value = "出口贸易首页 销售趋势  tradeType 贸易类型 billType 订单类型 annual 查询年 默认当年", notes = "出口贸易首页 销售趋势")
+	public R salesTrend(OrderVO order){
+		if (StringUtils.isBlank(order.getTradeType())){
+			throw new SecurityException("缺少贸易类型");
+		}
+		if (StringUtils.isBlank(order.getBillType())){
+			throw new SecurityException("缺少订单类型");
+		}
+		return R.data(orderService.salesTrend(order));
+	}
 }

+ 28 - 3
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java

@@ -21,11 +21,11 @@ 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.vo.OrderItemBillNoVO;
-import org.springblade.purchase.sales.vo.OrderStatisticAnalysisVO;
-import org.springblade.purchase.sales.vo.OrderVO;
+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;
 import java.util.Map;
 
@@ -64,4 +64,29 @@ public interface OrderMapper extends BaseMapper<Order> {
 											@Param("billType") String billType,
 											@Param("itemId") Long itemId,
 											@Param("corpId") Long corpId);
+
+	/**
+	 * 首页获取销售趋势
+	 * @param tenantId 租户id
+	 * @param tradeType 贸易类型
+	 * @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 tenantId 租户id
+	 * @param tradeType 贸易类型
+	 * @param billType 订单类型
+	 * @param orderStatus 订单状态
+	 * @return
+	 */
+	BigDecimal monthSales(@Param("tenantId") String tenantId,
+						  @Param("tradeType") String tradeType,
+						  @Param("billType") String billType,
+						  @Param("orderStatus") String orderStatus);
 }

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

@@ -467,5 +467,88 @@ WHERE
 	AND item.item_id = #{itemId}
 	AND item.corp_id = #{corpId}
     </select>
-
+    <select id="salesTrend"  resultType="org.springblade.purchase.sales.vo.SalesTrend">
+        SELECT
+	    m.id moon,
+	    IFNULL( n.money, 0 ) money
+FROM
+	(
+	SELECT
+		1 AS id UNION
+	SELECT
+		2 UNION
+	SELECT
+		3 UNION
+	SELECT
+		4 UNION
+	SELECT
+		5 UNION
+	SELECT
+		6 UNION
+	SELECT
+		7 UNION
+	SELECT
+		8 UNION
+	SELECT
+		9 UNION
+	SELECT
+		10 UNION
+	SELECT
+		11 UNION
+	SELECT
+		12
+	) m
+	LEFT JOIN (
+	SELECT
+		DATE_FORMAT( bo.busines_date, '%m' ) AS moon,
+		ROUND( IFNULL( SUM( bi.amount * bi.exchange_rate ), 0 ), 2 ) AS money
+	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="annual==null or annual == ''">
+            AND YEAR ( bo.busines_date ) = YEAR (NoW())
+        </if>
+        <if test="annual!=null and annual != ''">
+            AND YEAR ( bo.busines_date ) = #{annual}
+        </if>
+	GROUP BY
+		DATE_FORMAT( bo.busines_date, '%m' )
+	) n ON m.id = n.moon
+ORDER BY
+	m.id
+    </select>
+    <select id="monthSales"  resultType="BigDecimal">
+        SELECT
+        ROUND( IFNULL( SUM( bi.amount * bo.exchange_rate ), 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>
+    </select>
 </mapper>

+ 14 - 3
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java

@@ -22,9 +22,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.Order;
-import org.springblade.purchase.sales.vo.OrderItemBillNoVO;
-import org.springblade.purchase.sales.vo.OrderStatisticAnalysisVO;
-import org.springblade.purchase.sales.vo.OrderVO;
+import org.springblade.purchase.sales.vo.*;
 
 import java.util.List;
 
@@ -130,4 +128,17 @@ public interface IOrderService extends IService<Order> {
 	 * @return
 	 */
 	R dealerSubmit(Order order);
+
+	/**
+	 * 首页获取销售趋势
+	 * @param Order
+	 * @return
+	 */
+	List<SalesTrend>  salesTrend(OrderVO Order);
+	/**
+	 * 首页获取当月销售
+	 * @param Order
+	 * @return
+	 */
+	MonthSales monthSales(OrderVO Order);
 }

+ 30 - 3
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -46,9 +46,7 @@ import org.springblade.purchase.sales.entity.*;
 import org.springblade.purchase.sales.mapper.OrderItemsMapper;
 import org.springblade.purchase.sales.mapper.OrderMapper;
 import org.springblade.purchase.sales.service.IOrderService;
-import org.springblade.purchase.sales.vo.OrderItemBillNoVO;
-import org.springblade.purchase.sales.vo.OrderStatisticAnalysisVO;
-import org.springblade.purchase.sales.vo.OrderVO;
+import org.springblade.purchase.sales.vo.*;
 import org.springblade.stock.entity.StockGoods;
 import org.springblade.stock.feign.IStockGoodsClient;
 import org.springblade.stock.vo.StockGoodsVO;
@@ -1169,6 +1167,35 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return R.success("操作成功");
 	}
 
+	@Override
+	public List<SalesTrend>  salesTrend(OrderVO Order) {
+		if (StringUtils.isBlank(Order.getTenantId())){
+			Order.setTenantId(SecureUtil.getTenantId());
+		}
+		return baseMapper.salesTrend(Order.getTenantId(),Order.getTradeType(),Order.getBillType(),Order.getAnnual());
+	}
+
+	@Override
+	public MonthSales monthSales(OrderVO Order) {
+		MonthSales monthSales = new MonthSales();
+		if (StringUtils.isBlank(Order.getTenantId())){
+			Order.setTenantId(SecureUtil.getTenantId());
+		}
+		//获取总金额
+		monthSales.setGrossAmount(baseMapper.monthSales(Order.getTenantId(),Order.getTradeType(),Order.getBillType(),null));
+		//获取达成金额
+		monthSales.setReachAmount(baseMapper.monthSales(Order.getTenantId(),Order.getTradeType(),Order.getBillType(),OrderEnum.SUBMIT.getStatus()));
+		//获取未达成金额
+		monthSales.setNotReachAmount(baseMapper.monthSales(Order.getTenantId(),Order.getTradeType(),Order.getBillType(),OrderEnum.PAUSE.getStatus()));
+		//获取达成率
+		if (monthSales.getGrossAmount().compareTo(BigDecimal.ZERO) > 0){
+			monthSales.setYieldRate(monthSales.getReachAmount().divide(monthSales.getGrossAmount(), 5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
+		}else {
+			monthSales.setYieldRate(BigDecimal.ZERO);
+		}
+		return monthSales;
+	}
+
 	/**
 	 * 转换金额为英文大写
 	 * @param order

+ 14 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

@@ -439,6 +439,20 @@ public class SettlementController extends BladeController {
 		List<JdyTool.Employee> employeeList = settlementService.getEmployeeList(accountName, search);
 		return R.data(employeeList);
 	}
+	/**
+	 * 分页 结算表
+	 */
+	@GetMapping("/financeCheck")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "财务付费待审数据", notes = "传入settlement")
+	public R financeCheck(Settlement settlement) {
+		LambdaQueryWrapper<Settlement> settlementLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		settlementLambdaQueryWrapper.eq(Settlement::getBillType, "申请");
+		settlementLambdaQueryWrapper.eq(Settlement::getTenantId, AuthUtil.getTenantId());
+		settlementLambdaQueryWrapper.eq(Settlement::getIsDeleted, 0);
+		settlementLambdaQueryWrapper.ne(Settlement::getCheckStatus, "请核成功");
+		return R.data(settlementService.count(settlementLambdaQueryWrapper));
+	}
 
 
 }