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字") @Length(max = 200,message = "客户名称长度不能超过200字")
private String supplierName; 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.BmsCostCenter;
import com.qs.serve.modules.bms.entity.BmsRegion; import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2; 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.BmsCostCenterMapper;
import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper; import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper; 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.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsActivityCenter; import com.qs.serve.modules.tbs.entity.TbsActivityCenter;
import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods; import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods;
@ -62,6 +64,8 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
private final TbsActivityCenterGoodsMapper tbsActivityCenterGoodsMapper; private final TbsActivityCenterGoodsMapper tbsActivityCenterGoodsMapper;
private final BmsSupplierMapper bmsSupplierMapper;
@Override @Override
public void buildReport(int year, int month) { public void buildReport(int year, int month) {
LocalDate startDate = LocalDate.of(year,month,1); LocalDate startDate = LocalDate.of(year,month,1);
@ -87,13 +91,29 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
Map<Long,List<TbsActivityCenterGoods>> collectMap = activityCenterGoodsAllList.stream() Map<Long,List<TbsActivityCenterGoods>> collectMap = activityCenterGoodsAllList.stream()
.collect(Collectors.groupingBy(TbsActivityCenterGoods::getActivityId)); .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查询费用释放 // TODO查询费用释放
VtbFundFlow flow = new VtbFundFlow(); // VtbFundFlow flow = new VtbFundFlow();
flow.setFundType(VtbFundFlowType.Release); // flow.setFundType(VtbFundFlowType.Release);
flow.setSelectActivityIds(new ArrayList<>(collectMap.keySet())); // flow.setSelectActivityIds(new ArrayList<>(collectMap.keySet()));
List<VtbFundFlowSumAmtDTO> actReleaseList = fundFlowMapper.listSumAmount(flow); // List<VtbFundFlowSumAmtDTO> actReleaseList = fundFlowMapper.listSumAmount(flow);
final Map<Long,BigDecimal> actReleaseMap = new HashMap<>(); // final Map<Long,BigDecimal> actReleaseMap = new HashMap<>();
actReleaseList.forEach(actRelease -> actReleaseMap.put(actRelease.getActivityId(),actRelease.getTotalAmt())); // actReleaseList.forEach(actRelease -> actReleaseMap.put(actRelease.getActivityId(),actRelease.getTotalAmt()));
for (Long activityId : collectMap.keySet()) { for (Long activityId : collectMap.keySet()) {
//用于保存的对象列表 //用于保存的对象列表
@ -109,20 +129,20 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
for (DateSplitDTO currDateSplit : dateSplitList) { for (DateSplitDTO currDateSplit : dateSplitList) {
//获取该项分割金额对象 //获取该项分割金额对象
BirCenterGoodSplitDTO goodSplitDTO = this.buildSplitAmount(activityCenterGoods, BirCenterGoodSplitDTO goodSplitDTO = this.buildSplitAmount(activityCenterGoods,
dateSplitList, currDateSplit,currentActDays,actReleaseMap); dateSplitList, currDateSplit,currentActDays);
//创建底表对象 //创建底表对象
BirActivityCenterGoods entity = createBirActivityCenterGoodsEntity(costCenterList, BirActivityCenterGoods entity = createBirActivityCenterGoodsEntity(costCenterList,
activityCenterGoods, currentActDays, currDateSplit, goodSplitDTO,actReleaseMap); activityCenterGoods, currentActDays, currDateSplit, goodSplitDTO,supplierMap,saleRegionMap,bizRegionMap);
bacgList.add(entity); bacgList.add(entity);
} }
}else if (dateSplitList.size()==1){ }else if (dateSplitList.size()==1){
DateSplitDTO currDateSplit = dateSplitList.get(0); DateSplitDTO currDateSplit = dateSplitList.get(0);
//获取该项分割金额对象 //获取该项分割金额对象
BirCenterGoodSplitDTO goodSplitDTO = this.buildSplitAmount(activityCenterGoods, BirCenterGoodSplitDTO goodSplitDTO = this.buildSplitAmount(activityCenterGoods,
dateSplitList, currDateSplit,currentActDays,actReleaseMap); dateSplitList, currDateSplit,currentActDays);
//创建底表对象 //创建底表对象
BirActivityCenterGoods entity = createBirActivityCenterGoodsEntity(costCenterList, BirActivityCenterGoods entity = createBirActivityCenterGoodsEntity(costCenterList,
activityCenterGoods, currentActDays, currDateSplit, goodSplitDTO,actReleaseMap); activityCenterGoods, currentActDays, currDateSplit, goodSplitDTO,supplierMap,saleRegionMap,bizRegionMap);
bacgList.add(entity); bacgList.add(entity);
} }
} }
@ -149,7 +169,7 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
Integer currentActDays, Integer currentActDays,
DateSplitDTO currDateSplit, DateSplitDTO currDateSplit,
BirCenterGoodSplitDTO goodSplitDTO, BirCenterGoodSplitDTO goodSplitDTO,
Map<Long,BigDecimal> actReleaseMap) { Map<String, BmsSupplier> supplierMap, Map<String, BmsRegion> saleRegionMap, Map<String, BmsRegion2> bizRegionMap) {
BirActivityCenterGoods entity = new BirActivityCenterGoods(); BirActivityCenterGoods entity = new BirActivityCenterGoods();
entity.setActivityCenterGoodsId(activityCenterGoods.getId()); entity.setActivityCenterGoodsId(activityCenterGoods.getId());
entity.setKeyNum(currDateSplit.getYearMonth()); entity.setKeyNum(currDateSplit.getYearMonth());
@ -166,7 +186,11 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
entity.setActivityCode(activityCenterGoods.getActivityCode()); entity.setActivityCode(activityCenterGoods.getActivityCode());
entity.setActivityTotalAmount(activityCenterGoods.getActivityAmt()); entity.setActivityTotalAmount(activityCenterGoods.getActivityAmt());
entity.setActivityTotalCheckAmount(activityCenterGoods.getActivityCheckAmt()); 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.setActivityFinishedFlag(activityCenterGoods.getActivityFinishedFlag());
entity.setSubjectId(activityCenterGoods.getSubjectId()); entity.setSubjectId(activityCenterGoods.getSubjectId());
entity.setSubjectCode(activityCenterGoods.getSubjectCode()); entity.setSubjectCode(activityCenterGoods.getSubjectCode());
@ -196,6 +220,20 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
entity.setSupplierId(activityCenterGoods.getSupplierId()); entity.setSupplierId(activityCenterGoods.getSupplierId());
entity.setSupplierCode(activityCenterGoods.getSupplierCode()); entity.setSupplierCode(activityCenterGoods.getSupplierCode());
entity.setSupplierName(activityCenterGoods.getSupplierName()); 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; return entity;
} }
@ -296,8 +334,7 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
private BirCenterGoodSplitDTO buildSplitAmount(TbsActivityCenterGoods activityCenterGoods, private BirCenterGoodSplitDTO buildSplitAmount(TbsActivityCenterGoods activityCenterGoods,
List<DateSplitDTO> dateSplitList , List<DateSplitDTO> dateSplitList ,
DateSplitDTO currDateSplit, DateSplitDTO currDateSplit,
Integer currentActDays, Integer currentActDays){
Map<Long,BigDecimal> actReleaseMap){
BigDecimal currentCenterGoodsAmount = activityCenterGoods.getCenterGoodsAmount(); BigDecimal currentCenterGoodsAmount = activityCenterGoods.getCenterGoodsAmount();
BigDecimal splitCenterGoodsAmount = activityCenterGoods.getCenterGoodsAmount(); BigDecimal splitCenterGoodsAmount = activityCenterGoods.getCenterGoodsAmount();

Loading…
Cancel
Save