diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java index c4703734..9008eff6 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java +++ b/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java @@ -59,6 +59,7 @@ public class BirRoiRateController { private TbsCostApplyService costApplyService; private BirBaseActivityMapper birBaseActivityMapper; private TbsActivityMapper tbsActivityMapper; + private BirBaseActivityService birBaseActivityService; // /** @@ -94,22 +95,11 @@ public class BirRoiRateController { */ @GetMapping("/test22") public R test22(){ - //移除当年所有 -// int year = 2023; -// for (int i = 0; i < 12; i++) { -// activityService.buildReport(year,i+1); -// } -// activityService.buildReport(2024,1); - List ids = birBaseActivityMapper.selectErrorAmtActivityCode(); - activityService.removeErrorData(ids); - List activityList = tbsActivityMapper.selectBatchIds(ids); - List costIds = activityList.stream().map(TbsActivity::getCostApplyId).distinct().collect(Collectors.toList()); - birActivityCenterGoodsService.rebuildBir(costIds); + //修复activity和centerGoods不匹配 + birBaseActivityService.compareAmtToUpdateActivityAmt(); return R.ok(); } - - /** * 台账 * @return diff --git a/src/main/java/com/qs/serve/modules/bir/entity/dto/UnMatchBirRecord.java b/src/main/java/com/qs/serve/modules/bir/entity/dto/UnMatchBirRecord.java new file mode 100644 index 00000000..fa136dc6 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/entity/dto/UnMatchBirRecord.java @@ -0,0 +1,25 @@ +package com.qs.serve.modules.bir.entity.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * activity和centerGoods不匹配记录 DTO + * @author YenHex + * @since 2024/2/18 + */ +@Data +public class UnMatchBirRecord { + + private String activityId; + + private String keyNum; + + private BigDecimal birCenterGoodAmt; + + private BigDecimal activityAmt; + + private Long birActId; + +} diff --git a/src/main/java/com/qs/serve/modules/bir/mapper/BirActivityCenterGoodsMapper.java b/src/main/java/com/qs/serve/modules/bir/mapper/BirActivityCenterGoodsMapper.java index 4a44ae56..a590ba0f 100644 --- a/src/main/java/com/qs/serve/modules/bir/mapper/BirActivityCenterGoodsMapper.java +++ b/src/main/java/com/qs/serve/modules/bir/mapper/BirActivityCenterGoodsMapper.java @@ -7,6 +7,7 @@ import com.qs.serve.modules.bir.entity.so.BirMonthCusCenterSo; import com.qs.serve.modules.bir.entity.vo.BirActivityCenterGoodsMonthVo; import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.math.BigDecimal; import java.time.LocalDate; @@ -39,5 +40,8 @@ public interface BirActivityCenterGoodsMapper extends BaseMapper listMonthCusCenterVo(@Param("query") BirMonthCusCenterSo param); + + + } diff --git a/src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java b/src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java index 22998c7b..ffaf53f9 100644 --- a/src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java +++ b/src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java @@ -1,7 +1,9 @@ package com.qs.serve.modules.bir.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.bir.entity.BirBaseActivity; +import com.qs.serve.modules.bir.entity.dto.UnMatchBirRecord; import com.qs.serve.modules.tbs.entity.TbsActivity; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -26,5 +28,49 @@ public interface BirBaseActivityMapper extends BaseMapper { */ void deleteErrorBir(); + /** + * 查询错误的ActivityBir记录 + * @return + */ + @Select("update bir_base_activity bir " + + " left join tbs_activity act " + + " on bir.activity_id = act.id " + + " left join tbs_cost_apply cost " + + " on bir.cost_apply_id = cost.id " + + " set bir.del_flag = 1 " + + " where act.cancel_flag = 1 or act.del_flag = 1 or cost.del_flag = 1 or cost.cancel_flag = 1 and bir.del_flag=0 ") + int removeActivityBirError(); + + + @InterceptorIgnore(tenantLine = "true") + @Select("select " + + "tmp.activity_id as activityId, " + + "tmp.key_num as keyNum, " + + "tmp.cost_amt as activityAmt, " + + "tmp2.cost_amt2 as birCenterGoodAmt, " + + "tmp.id as birActId " + + "from " + + "( " + + " SELECT " + + " bir_base_activity.id," + + " bir_base_activity.activity_id, " + + " bir_base_activity.key_num, " + + " sum( bir_base_activity.activity_amt ) AS cost_amt " + + " FROM " + + " `bir_base_activity` " + + " WHERE " + + " bir_base_activity.del_flag = '0' " + + " and bir_base_activity.activity_start_date>'2023-01-01' " + + " group by bir_base_activity.key_num,bir_base_activity.activity_id " + + ") tmp left join " + + "( " + + " select bir.id,activity_id,key_num as key_num2,SUM(split_amount) as cost_amt2 " + + " from bir_activity_center_goods bir " + + " where bir.star_date>'2023-01-01' " + + " group by key_num,activity_id " + + ") tmp2 on tmp.activity_id = tmp2.activity_id and tmp.key_num = tmp2.key_num2 " + + "where tmp.cost_amt != tmp2.cost_amt2 ") + List selectUnMatchBir(); + } diff --git a/src/main/java/com/qs/serve/modules/bir/service/BirBaseActivityService.java b/src/main/java/com/qs/serve/modules/bir/service/BirBaseActivityService.java index b2d90958..7a61424b 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/BirBaseActivityService.java +++ b/src/main/java/com/qs/serve/modules/bir/service/BirBaseActivityService.java @@ -23,5 +23,12 @@ public interface BirBaseActivityService extends IService { * 修复和bir_center_good金额异常的活动 */ void removeErrorData(List actIds); + + + /** + * 更新bir活动的金额 + */ + void compareAmtToUpdateActivityAmt(); + } diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java index 68d58680..7fb84324 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java @@ -99,6 +99,8 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl removeErrorBirList = this.baseMapper.selectErrorBir(); List errorActIds = removeErrorBirList.stream().map(BirActivityCenterGoods::getActivityId).distinct().collect(Collectors.toList()); this.buildRemoveRecode(errorActIds); diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java index 2fdb2bc2..bfdc6741 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java @@ -6,6 +6,7 @@ import com.qs.serve.common.model.dto.DateSplitDTO; import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.DateSplitUtil; +import com.qs.serve.modules.bir.entity.dto.UnMatchBirRecord; import com.qs.serve.modules.sys.mapper.SysUserMapper; import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsCostApply; @@ -24,6 +25,7 @@ import java.time.LocalDate; import java.time.Period; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -202,5 +204,31 @@ public class BirBaseActivityServiceImpl extends ServiceImpl activityList = tbsActivityMapper.selectBatchIds(actIds); this.buildByActivityList(activityList); } + + @Override + public void compareAmtToUpdateActivityAmt() { + List matchBirRecords = baseMapper.selectUnMatchBir(); + Map> listMap = matchBirRecords.stream().collect(Collectors.groupingBy(UnMatchBirRecord::getActivityId)); + for (String activityId : listMap.keySet()) { + List list = listMap.get(activityId); + BigDecimal totalAmt1 = BigDecimal.ZERO; + BigDecimal totalAmt2 = BigDecimal.ZERO; + for (UnMatchBirRecord record : list) { + totalAmt1 = totalAmt1.add(record.getActivityAmt()); + totalAmt2 = totalAmt2.add(record.getBirCenterGoodAmt()); + } + if(totalAmt1.compareTo(totalAmt2)==0){ + List updList = new ArrayList<>(); + for (UnMatchBirRecord record : list) { + BirBaseActivity baseActivity = new BirBaseActivity(); + baseActivity.setId(record.getBirActId()); + baseActivity.setActivityAmt(record.getBirCenterGoodAmt()); + updList.add(baseActivity); + } + updateBatchById(updList); + } + } + + } } diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java index b1402c57..7fadd6b9 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java @@ -36,29 +36,6 @@ public interface TbsActivityCenterGoodsMapper extends BaseMapper listNotMatchAmtCenterGoods(@Param("costApplyIds") List costIds); - /** - * 查询错误的CenterGoodsBir记录 - * @return - */ - @Select("select bir.cost_apply_id from bir_activity_center_goods bir " + - " left join tbs_activity act " + - " on bir.activity_id = act.id " + - " left join tbs_cost_apply cost " + - " on bir.cost_apply_id = cost.id " + - " where act.cancel_flag = 1 or act.del_flag = 1 or cost.del_flag = 1 or cost.cancel_flag = 1") - List listCenterGoodsBirErrorCostId(); - - /** - * 查询错误的ActivityBir记录 - * @return - */ - @Select("select bir.cost_apply_id from bir_base_activity bir " + - " left join tbs_activity act " + - " on bir.activity_id = act.id " + - " left join tbs_cost_apply cost " + - " on bir.cost_apply_id = cost.id " + - " where act.cancel_flag = 1 or act.del_flag = 1 or cost.del_flag = 1 or cost.cancel_flag = 1 and bir.del_flag=0 ") - List listActivityBirErrorCostId(); } diff --git a/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml b/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml index d6e773eb..c4740025 100644 --- a/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml +++ b/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml @@ -177,9 +177,12 @@ +