Browse Source

BIR添加销售区域和行政区域

contract
15989082884@163.com 2 years ago
parent
commit
e42fe28916
  1. 8
      src/main/java/com/qs/serve/modules/bir/entity/BirActivityCenterGoods.java
  2. 65
      src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java

8
src/main/java/com/qs/serve/modules/bir/entity/BirActivityCenterGoods.java

@ -268,5 +268,13 @@ public class BirActivityCenterGoods implements Serializable {
@Length(max = 200,message = "客户名称长度不能超过200字")
private String supplierName;
private String supplierSaleRegionName;
private String supplierSaleRegionId;
private String supplierBizRegionName;
private String supplierBizRegionId;
}

65
src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java

@ -11,9 +11,11 @@ import com.qs.serve.modules.bir.entity.dto.BirCenterGoodSplitDTO;
import com.qs.serve.modules.bms.entity.BmsCostCenter;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.mapper.BmsCostCenterMapper;
import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsActivityCenter;
import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods;
@ -62,6 +64,8 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
private final TbsActivityCenterGoodsMapper tbsActivityCenterGoodsMapper;
private final BmsSupplierMapper bmsSupplierMapper;
@Override
public void buildReport(int year, int month) {
LocalDate startDate = LocalDate.of(year,month,1);
@ -87,13 +91,29 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
Map<Long,List<TbsActivityCenterGoods>> collectMap = activityCenterGoodsAllList.stream()
.collect(Collectors.groupingBy(TbsActivityCenterGoods::getActivityId));
LambdaQueryWrapper<BmsSupplier> supplierLqw = new LambdaQueryWrapper<>();
supplierLqw.in(BmsSupplier::getId,activityCenterGoodsAllList.stream().map(a->a.getSupplierId()).distinct().collect(Collectors.toList()));
List<BmsSupplier> bmsSupplierList = bmsSupplierMapper.selectList(supplierLqw);
Map<String,BmsSupplier> supplierMap = bmsSupplierList.stream().collect(Collectors.toMap(BmsSupplier::getId,a->a));
LambdaQueryWrapper<BmsRegion> regionLqw = new LambdaQueryWrapper<>();
regionLqw.in(BmsRegion::getId,bmsSupplierList.stream().map(a->a.getRegionLast()).collect(Collectors.toList()));
List<BmsRegion> saleRegionList = regionMapper.selectList(regionLqw);
Map<String,BmsRegion> saleRegionMap = saleRegionList.stream().collect(Collectors.toMap(BmsRegion::getId,a->a));
LambdaQueryWrapper<BmsRegion2> region2Lqw = new LambdaQueryWrapper<>();
region2Lqw.in(BmsRegion2::getId,bmsSupplierList.stream().map(a->a.getRegion2Last()).collect(Collectors.toList()));
List<BmsRegion2> bizRegionList = region2Mapper.selectList(region2Lqw);
Map<String,BmsRegion2> bizRegionMap = bizRegionList.stream().collect(Collectors.toMap(BmsRegion2::getId,a->a));
// TODO查询费用释放
VtbFundFlow flow = new VtbFundFlow();
flow.setFundType(VtbFundFlowType.Release);
flow.setSelectActivityIds(new ArrayList<>(collectMap.keySet()));
List<VtbFundFlowSumAmtDTO> actReleaseList = fundFlowMapper.listSumAmount(flow);
final Map<Long,BigDecimal> actReleaseMap = new HashMap<>();
actReleaseList.forEach(actRelease -> actReleaseMap.put(actRelease.getActivityId(),actRelease.getTotalAmt()));
// VtbFundFlow flow = new VtbFundFlow();
// flow.setFundType(VtbFundFlowType.Release);
// flow.setSelectActivityIds(new ArrayList<>(collectMap.keySet()));
// List<VtbFundFlowSumAmtDTO> actReleaseList = fundFlowMapper.listSumAmount(flow);
// final Map<Long,BigDecimal> actReleaseMap = new HashMap<>();
// actReleaseList.forEach(actRelease -> actReleaseMap.put(actRelease.getActivityId(),actRelease.getTotalAmt()));
for (Long activityId : collectMap.keySet()) {
//用于保存的对象列表
@ -109,20 +129,20 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
for (DateSplitDTO currDateSplit : dateSplitList) {
//获取该项分割金额对象
BirCenterGoodSplitDTO goodSplitDTO = this.buildSplitAmount(activityCenterGoods,
dateSplitList, currDateSplit,currentActDays,actReleaseMap);
dateSplitList, currDateSplit,currentActDays);
//创建底表对象
BirActivityCenterGoods entity = createBirActivityCenterGoodsEntity(costCenterList,
activityCenterGoods, currentActDays, currDateSplit, goodSplitDTO,actReleaseMap);
activityCenterGoods, currentActDays, currDateSplit, goodSplitDTO,supplierMap,saleRegionMap,bizRegionMap);
bacgList.add(entity);
}
}else if (dateSplitList.size()==1){
DateSplitDTO currDateSplit = dateSplitList.get(0);
//获取该项分割金额对象
BirCenterGoodSplitDTO goodSplitDTO = this.buildSplitAmount(activityCenterGoods,
dateSplitList, currDateSplit,currentActDays,actReleaseMap);
dateSplitList, currDateSplit,currentActDays);
//创建底表对象
BirActivityCenterGoods entity = createBirActivityCenterGoodsEntity(costCenterList,
activityCenterGoods, currentActDays, currDateSplit, goodSplitDTO,actReleaseMap);
activityCenterGoods, currentActDays, currDateSplit, goodSplitDTO,supplierMap,saleRegionMap,bizRegionMap);
bacgList.add(entity);
}
}
@ -149,7 +169,7 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
Integer currentActDays,
DateSplitDTO currDateSplit,
BirCenterGoodSplitDTO goodSplitDTO,
Map<Long,BigDecimal> actReleaseMap) {
Map<String, BmsSupplier> supplierMap, Map<String, BmsRegion> saleRegionMap, Map<String, BmsRegion2> bizRegionMap) {
BirActivityCenterGoods entity = new BirActivityCenterGoods();
entity.setActivityCenterGoodsId(activityCenterGoods.getId());
entity.setKeyNum(currDateSplit.getYearMonth());
@ -166,7 +186,11 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
entity.setActivityCode(activityCenterGoods.getActivityCode());
entity.setActivityTotalAmount(activityCenterGoods.getActivityAmt());
entity.setActivityTotalCheckAmount(activityCenterGoods.getActivityCheckAmt());
entity.setActivityTotalReleaseAmount(actReleaseMap.get(activityCenterGoods.getActivityId()));
BigDecimal releaseAmount = BigDecimal.ZERO;
if(1 == activityCenterGoods.getActivityFinishedFlag()){
releaseAmount = entity.getActivityTotalAmount().subtract(entity.getActivityTotalCheckAmount());
}
entity.setActivityTotalReleaseAmount(releaseAmount);
entity.setActivityFinishedFlag(activityCenterGoods.getActivityFinishedFlag());
entity.setSubjectId(activityCenterGoods.getSubjectId());
entity.setSubjectCode(activityCenterGoods.getSubjectCode());
@ -196,6 +220,20 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
entity.setSupplierId(activityCenterGoods.getSupplierId());
entity.setSupplierCode(activityCenterGoods.getSupplierCode());
entity.setSupplierName(activityCenterGoods.getSupplierName());
BmsSupplier supplier = supplierMap.get(entity.getSupplierId().toString());
if(supplier!=null){
BmsRegion saleRegion = saleRegionMap.get(supplier.getRegionLast());
if(saleRegion!=null) {
entity.setSupplierSaleRegionId(saleRegion.getId());
entity.setSupplierSaleRegionName(saleRegion.getName());
}
BmsRegion2 bizRegion = bizRegionMap.get(supplier.getRegion2Last());
if(bizRegion!=null) {
entity.setSupplierBizRegionId(bizRegion.getId());
entity.setSupplierBizRegionName(bizRegion.getName());
}
}
return entity;
}
@ -296,8 +334,7 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
private BirCenterGoodSplitDTO buildSplitAmount(TbsActivityCenterGoods activityCenterGoods,
List<DateSplitDTO> dateSplitList ,
DateSplitDTO currDateSplit,
Integer currentActDays,
Map<Long,BigDecimal> actReleaseMap){
Integer currentActDays){
BigDecimal currentCenterGoodsAmount = activityCenterGoods.getCenterGoodsAmount();
BigDecimal splitCenterGoodsAmount = activityCenterGoods.getCenterGoodsAmount();

Loading…
Cancel
Save