## 奖金结算添加明细表补偿处理;
This commit is contained in:
		
							parent
							
								
									248236442c
								
							
						
					
					
						commit
						8d160c34db
					
				|  | @ -10,9 +10,9 @@ public interface IBonusSettleService { | ||||||
|     /** |     /** | ||||||
|      * 计算会员奖金 |      * 计算会员奖金 | ||||||
|      * |      * | ||||||
|      * @param date           结算日期 |      * @param date 结算日期 | ||||||
|      */ |      */ | ||||||
|     void calculateCuMemberBonus(String date); |     void calculateCuMemberBonus(String date, Integer period, String yesterday, Integer yesterdayPeriod); | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 根据订单计算新零售奖金 |      * 根据订单计算新零售奖金 | ||||||
|  | @ -21,6 +21,7 @@ public interface IBonusSettleService { | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 计算秒结表数据 |      * 计算秒结表数据 | ||||||
|  |      * | ||||||
|      * @param orderExt |      * @param orderExt | ||||||
|      */ |      */ | ||||||
|     void calculateCuMemberRetailRangeBySaOrder(SaOrderExt orderExt); |     void calculateCuMemberRetailRangeBySaOrder(SaOrderExt orderExt); | ||||||
|  |  | ||||||
|  | @ -80,16 +80,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService { | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     @Transactional(rollbackFor = Exception.class) |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public void calculateCuMemberBonus(String settleDate) { |     public void calculateCuMemberBonus(String settleDate, Integer period, String yesterday, Integer yesterdayPeriod) { | ||||||
|         Integer period = null; |  | ||||||
|         Integer yesterdayPeriod = null; |  | ||||||
|         try { |         try { | ||||||
|             // 结算期间 |  | ||||||
|             period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId(); |  | ||||||
|             String yesterday = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, settleDate); |  | ||||||
|             // 结算期间前一天期间 |  | ||||||
|             yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId(); |  | ||||||
| 
 |  | ||||||
|             // 获取所有国家的奖金项 key = 国家 + 奖金项的值 |             // 获取所有国家的奖金项 key = 国家 + 奖金项的值 | ||||||
|             BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData(); |             BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData(); | ||||||
|             // 会员奖金map(key:会员ID, |             // 会员奖金map(key:会员ID, | ||||||
|  | @ -106,9 +98,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService { | ||||||
|             // 保存当日计算的奖金 |             // 保存当日计算的奖金 | ||||||
|             insertCuMemberBonus(settleDate, period, cuMemberBonusMap, recordDetailVO); |             insertCuMemberBonus(settleDate, period, cuMemberBonusMap, recordDetailVO); | ||||||
|         } catch (Exception e) { |         } catch (Exception e) { | ||||||
|             // 因为日结明细用的是直接清表,所以如果执行失败,先拿昨天的去填充,防止前台没数据 |  | ||||||
|             bonusSettleRangeHandle.compensationRetailDetail(period, yesterdayPeriod, settleDate); |  | ||||||
| 
 |  | ||||||
|             log.error("奖金结算异常", e); |             log.error("奖金结算异常", e); | ||||||
|             throw new RuntimeException(e); |             throw new RuntimeException(e); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -54,6 +54,8 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C | ||||||
| 
 | 
 | ||||||
|     @Autowired |     @Autowired | ||||||
|     private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; |     private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; | ||||||
|  |     @Autowired | ||||||
|  |     private BonusSettleRangeHandle bonusSettleRangeHandle; | ||||||
| 
 | 
 | ||||||
|     @Resource |     @Resource | ||||||
|     private CuMemberBonusDetailMapper cuMemberBonusDetailMapper; |     private CuMemberBonusDetailMapper cuMemberBonusDetailMapper; | ||||||
|  | @ -535,8 +537,22 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C | ||||||
|         // 自动初始化表 |         // 自动初始化表 | ||||||
|         cuMemberTreeService.createCuMemberTree(settleDate); |         cuMemberTreeService.createCuMemberTree(settleDate); | ||||||
|         log.info("初始化表完成"); |         log.info("初始化表完成"); | ||||||
|         // 奖金结算 | 
 | ||||||
|         bonusSettleService.calculateCuMemberBonus(settleDate); |         // 结算期间 | ||||||
|  |         Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId(); | ||||||
|  |         // 前一天 | ||||||
|  |         String yesterday = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, settleDate); | ||||||
|  |         // 前一天结算期间 | ||||||
|  |         Integer yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId(); | ||||||
|  | 
 | ||||||
|  |         try { | ||||||
|  |             // 奖金结算 | ||||||
|  |             bonusSettleService.calculateCuMemberBonus(settleDate, period, yesterday, yesterdayPeriod); | ||||||
|  |         } catch (Exception e) { | ||||||
|  |             // 因为日结明细用的是直接清表,所以如果执行失败,拿昨天的去填充,防止前台没数据 | ||||||
|  |             bonusSettleRangeHandle.compensationRetailDetail(period, yesterdayPeriod, settleDate); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         return Boolean.TRUE; |         return Boolean.TRUE; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue