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