|
|
@@ -1,5 +1,6 @@
|
|
|
package org.springblade.box.tube.annualBudget.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
@@ -7,8 +8,17 @@ import org.springblade.box.tube.annualBudget.mapper.AnnualBudgetItemMapper;
|
|
|
import org.springblade.box.tube.annualBudget.service.IAnnualBudgetItemService;
|
|
|
import org.springblade.box.tube.entity.AnnualBudgetItem;
|
|
|
import org.springblade.box.tube.vo.AnnualBudgetItemVO;
|
|
|
+import org.springblade.core.mp.support.Condition;
|
|
|
+import org.springblade.core.mp.support.Query;
|
|
|
+import org.springblade.core.secure.utils.AuthUtil;
|
|
|
+import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
+import org.springblade.purchase.sales.feign.IOrderDescClient;
|
|
|
+import org.springblade.purchase.sales.vo.OrderStatisticsVo;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
* 年度预算明细表 服务实现类
|
|
|
*
|
|
|
@@ -19,6 +29,8 @@ import org.springframework.stereotype.Service;
|
|
|
@AllArgsConstructor
|
|
|
public class AnnualBudgetItemServiceImpl extends ServiceImpl<AnnualBudgetItemMapper, AnnualBudgetItem> implements IAnnualBudgetItemService {
|
|
|
|
|
|
+ private final IOrderDescClient orderDescClient;//销售订单
|
|
|
+
|
|
|
/**
|
|
|
* 自定义分页
|
|
|
*/
|
|
|
@@ -26,4 +38,57 @@ public class AnnualBudgetItemServiceImpl extends ServiceImpl<AnnualBudgetItemMap
|
|
|
public IPage<AnnualBudgetItemVO> selectAnnualBudgetItemPage(IPage<AnnualBudgetItemVO> page, AnnualBudgetItemVO itemVO) {
|
|
|
return page.setRecords(baseMapper.selectAnnualBudgetItemPage(page, itemVO));
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 年度预算报表
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public IPage<AnnualBudgetItem> annualBudgetProfit(AnnualBudgetItem annualBudgetItem, Query query) {
|
|
|
+ //根据检索条件查询出符合条件的年度预算明细
|
|
|
+ LambdaQueryWrapper<AnnualBudgetItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(AnnualBudgetItem::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AnnualBudgetItem::getIsDeleted, 0)
|
|
|
+ .eq(ObjectUtil.isNotEmpty(annualBudgetItem.getCorpId()), AnnualBudgetItem::getCorpId, annualBudgetItem.getCorpId())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(annualBudgetItem.getYear()), AnnualBudgetItem::getYear, annualBudgetItem.getYear())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(annualBudgetItem.getMonth()), AnnualBudgetItem::getMonth, annualBudgetItem.getMonth());
|
|
|
+
|
|
|
+ IPage<AnnualBudgetItem> iPage = baseMapper.selectPage(Condition.getPage(query), lambdaQueryWrapper);
|
|
|
+
|
|
|
+ if (ObjectUtil.isNotEmpty(iPage.getRecords())){
|
|
|
+ //根据年月和客户查询订单数量和发货数量
|
|
|
+ iPage.getRecords().forEach(e -> {
|
|
|
+ List<OrderStatisticsVo> list = orderDescClient.getByOrderQuantity(e.getYear(), e.getMonth(), e.getCorpId());
|
|
|
+ if (ObjectUtil.isNotEmpty(list)){
|
|
|
+ list.forEach(o -> {
|
|
|
+ if ("KETER".equals(o.getBrand())){//欧记
|
|
|
+ e.setKeterOrdQuantity(o.getOrderQuantity());
|
|
|
+ e.setKeterDeliverQuantity(o.getActualQuantity());
|
|
|
+ }
|
|
|
+ if ("XCENTWAY".equals(o.getBrand())){//艾特路
|
|
|
+ e.setXcentwayOrdQuantity(o.getOrderQuantity());
|
|
|
+ e.setXcentwayDeliverQuantity(o.getActualQuantity());
|
|
|
+ }
|
|
|
+ if ("LUXXAN".equals(o.getBrand())){//路迈
|
|
|
+ e.setLuxxanOrdQuantity(o.getOrderQuantity());
|
|
|
+ e.setLuxxanDeliverQuantity(o.getActualQuantity());
|
|
|
+ }
|
|
|
+ if ("DRIVEMASTER".equals(o.getBrand())){//登马
|
|
|
+ e.setDrivemasterOrdQuantity(o.getOrderQuantity());
|
|
|
+ e.setDrivemasterDeliverQuantity(o.getActualQuantity());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }else {
|
|
|
+ e.setKeterOrdQuantity(BigDecimal.ZERO);
|
|
|
+ e.setKeterDeliverQuantity(BigDecimal.ZERO);
|
|
|
+ e.setXcentwayOrdQuantity(BigDecimal.ZERO);
|
|
|
+ e.setXcentwayDeliverQuantity(BigDecimal.ZERO);
|
|
|
+ e.setLuxxanOrdQuantity(BigDecimal.ZERO);
|
|
|
+ e.setLuxxanDeliverQuantity(BigDecimal.ZERO);
|
|
|
+ e.setDrivemasterOrdQuantity(BigDecimal.ZERO);
|
|
|
+ e.setDrivemasterDeliverQuantity(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return iPage;
|
|
|
+ }
|
|
|
}
|