diff --git a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index 685065b4..f641fbaa 100644 --- a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java @@ -596,6 +596,9 @@ public class PortalOfCostApplication { .map(ProcessGoodsItem::getInventoryCode).distinct().collect(Collectors.toList()); } List skuList = this.initSkuListOfProcess(invCodeList); + if(skuList.size()!=invCodeList.size()){ + Assert.throwEx("品类缺失"); + } //常用参数 final String GOODS_TYPE = "sku"; final BigDecimal OneHundred = new BigDecimal("100"); @@ -678,6 +681,7 @@ public class PortalOfCostApplication { //活动-商品 List activityGoodsList = new ArrayList<>(); + for (GoodsSku sku : skuList) { GoodsSpu goodsSpu = goodsSpuService.getById(sku.getSpuId()); GoodsCategory category1 = goodsCategoryService.getById(goodsSpu.getCategoryFirst()); @@ -727,15 +731,16 @@ public class PortalOfCostApplication { centerGoods.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds()); centerGoods.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames()); // 分配金额 + BigDecimal totalSkuAmt = BigDecimal.ZERO; for (ProcessGoodsItem goodsItem : processGoodsItems) { if(goodsItem.getInventoryCode().equals(activityGoods.getTargetCode())){ - BigDecimal rate = goodsItem.getAmount().divide(totalAmount, RoundingMode.UP); - centerGoods.setCenterGoodsAmount(goodsItem.getAmount()); - centerGoods.setCenterGoodsRate(rate); - centerGoods.setUsedAmount(goodsItem.getAmount()); - break; + totalSkuAmt = totalSkuAmt.add(goodsItem.getAmount()); } } + BigDecimal rate = totalSkuAmt.divide(totalAmount, RoundingMode.UP); + centerGoods.setCenterGoodsAmount(totalSkuAmt); + centerGoods.setCenterGoodsRate(rate); + centerGoods.setUsedAmount(totalSkuAmt); activityCenterGoodsList.add(centerGoods); } diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java index 91e7a605..65c11eaf 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java @@ -136,6 +136,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ if(goodType.equals(TbsGoodsType.sku.name())){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.in(GoodsSku::getId,targetIds); + lqw.select(GoodsSku::getSkuCode); lqw.eq(GoodsSku::getEnable,1); List goodsSkus = goodsSkuService.list(lqw); List skuCodes = goodsSkus.stream().map(GoodsSku::getSkuCode).filter(Objects::nonNull).collect(Collectors.toList()); @@ -143,7 +144,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ }else if(goodType.equals(TbsGoodsType.spu.name())){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.in(GoodsSku::getSpuId,targetIds); - lqw.select(GoodsSku::getId); + lqw.select(GoodsSku::getSkuCode); lqw.eq(GoodsSku::getEnable,1); List goodsSkus = goodsSkuService.list(lqw); List skuCodes = goodsSkus.stream().map(GoodsSku::getSkuCode).filter(Objects::nonNull).collect(Collectors.toList()); @@ -156,6 +157,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ } } if(invCodes.size()<1){ + log.warn("[{}]政策同步失败,存货编码为空",policyItem.getPolicyItemCode()); return; } policyItemDto.setInvCodeList(invCodes); diff --git a/src/main/java/com/qs/serve/task/TzcPolicyTask.java b/src/main/java/com/qs/serve/task/TzcPolicyTask.java index a7ea3317..f8d8f090 100644 --- a/src/main/java/com/qs/serve/task/TzcPolicyTask.java +++ b/src/main/java/com/qs/serve/task/TzcPolicyTask.java @@ -14,6 +14,7 @@ import com.qs.serve.modules.tzc.service.TzcPolicyItemService; import com.qs.serve.modules.tzc.service.TzcPolicyService; import lombok.AllArgsConstructor; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.List; import java.util.stream.Collectors; @@ -37,6 +38,7 @@ public class TzcPolicyTask { /** * 根据销路通支付数据,和本系统政策匹对,并生成本系统核销及支付信息 */ + @Scheduled(cron="0 0 3 * * ?") public void syncFromXltPolicyPayment(){ AuthContextUtils.setTenant("001"); xiaoLuTonService.listPolicyPayments(); @@ -53,6 +55,7 @@ public class TzcPolicyTask { /** * 同步政策到销路通 */ + @Scheduled(cron="0 0 3 * * ?") public void syncPolicyToXlt(){ AuthContextUtils.setTenant("001"); LambdaQueryWrapper itemLqw = new LambdaQueryWrapper<>();