Browse Source

修复bir不同步

v1.0
Yen 1 year ago
parent
commit
45d7a98272
  1. 16
      src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java
  2. 25
      src/main/java/com/qs/serve/modules/bir/entity/dto/UnMatchBirRecord.java
  3. 4
      src/main/java/com/qs/serve/modules/bir/mapper/BirActivityCenterGoodsMapper.java
  4. 46
      src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java
  5. 7
      src/main/java/com/qs/serve/modules/bir/service/BirBaseActivityService.java
  6. 2
      src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java
  7. 28
      src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java
  8. 23
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java
  9. 9
      src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml
  10. 1
      src/main/resources/mapper/bir/BirBaseActivityMapper.xml

16
src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java

@ -59,6 +59,7 @@ public class BirRoiRateController {
private TbsCostApplyService costApplyService; private TbsCostApplyService costApplyService;
private BirBaseActivityMapper birBaseActivityMapper; private BirBaseActivityMapper birBaseActivityMapper;
private TbsActivityMapper tbsActivityMapper; private TbsActivityMapper tbsActivityMapper;
private BirBaseActivityService birBaseActivityService;
// /** // /**
@ -94,22 +95,11 @@ public class BirRoiRateController {
*/ */
@GetMapping("/test22") @GetMapping("/test22")
public R<?> test22(){ public R<?> test22(){
//移除当年所有 //修复activity和centerGoods不匹配
// int year = 2023; birBaseActivityService.compareAmtToUpdateActivityAmt();
// for (int i = 0; i < 12; i++) {
// activityService.buildReport(year,i+1);
// }
// activityService.buildReport(2024,1);
List<Long> ids = birBaseActivityMapper.selectErrorAmtActivityCode();
activityService.removeErrorData(ids);
List<TbsActivity> activityList = tbsActivityMapper.selectBatchIds(ids);
List<Long> costIds = activityList.stream().map(TbsActivity::getCostApplyId).distinct().collect(Collectors.toList());
birActivityCenterGoodsService.rebuildBir(costIds);
return R.ok(); return R.ok();
} }
/** /**
* 台账 * 台账
* @return * @return

25
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;
}

4
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.bir.entity.vo.BirActivityCenterGoodsMonthVo;
import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods; import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
@ -39,5 +40,8 @@ public interface BirActivityCenterGoodsMapper extends BaseMapper<BirActivityCent
List<BirActivityCenterGoodsMonthVo> listMonthCusCenterVo(@Param("query") BirMonthCusCenterSo param); List<BirActivityCenterGoodsMonthVo> listMonthCusCenterVo(@Param("query") BirMonthCusCenterSo param);
} }

46
src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java

@ -1,7 +1,9 @@
package com.qs.serve.modules.bir.mapper; package com.qs.serve.modules.bir.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bir.entity.BirBaseActivity; 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 com.qs.serve.modules.tbs.entity.TbsActivity;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
@ -26,5 +28,49 @@ public interface BirBaseActivityMapper extends BaseMapper<BirBaseActivity> {
*/ */
void deleteErrorBir(); 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<UnMatchBirRecord> selectUnMatchBir();
} }

7
src/main/java/com/qs/serve/modules/bir/service/BirBaseActivityService.java

@ -23,5 +23,12 @@ public interface BirBaseActivityService extends IService<BirBaseActivity> {
* 修复和bir_center_good金额异常的活动 * 修复和bir_center_good金额异常的活动
*/ */
void removeErrorData(List<Long> actIds); void removeErrorData(List<Long> actIds);
/**
* 更新bir活动的金额
*/
void compareAmtToUpdateActivityAmt();
} }

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

@ -99,6 +99,8 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
//异常状态的费用申请,导致的Bir //异常状态的费用申请,导致的Bir
birBaseActivityMapper.deleteErrorBir(); birBaseActivityMapper.deleteErrorBir();
birBaseActivityMapper.removeActivityBirError();
List<BirActivityCenterGoods> removeErrorBirList = this.baseMapper.selectErrorBir(); List<BirActivityCenterGoods> removeErrorBirList = this.baseMapper.selectErrorBir();
List<Long> errorActIds = removeErrorBirList.stream().map(BirActivityCenterGoods::getActivityId).distinct().collect(Collectors.toList()); List<Long> errorActIds = removeErrorBirList.stream().map(BirActivityCenterGoods::getActivityId).distinct().collect(Collectors.toList());
this.buildRemoveRecode(errorActIds); this.buildRemoveRecode(errorActIds);

28
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.Assert;
import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.DateSplitUtil; 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.sys.mapper.SysUserMapper;
import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostApply;
@ -24,6 +25,7 @@ import java.time.LocalDate;
import java.time.Period; import java.time.Period;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -202,5 +204,31 @@ public class BirBaseActivityServiceImpl extends ServiceImpl<BirBaseActivityMappe
List<TbsActivity> activityList = tbsActivityMapper.selectBatchIds(actIds); List<TbsActivity> activityList = tbsActivityMapper.selectBatchIds(actIds);
this.buildByActivityList(activityList); this.buildByActivityList(activityList);
} }
@Override
public void compareAmtToUpdateActivityAmt() {
List<UnMatchBirRecord> matchBirRecords = baseMapper.selectUnMatchBir();
Map<String,List<UnMatchBirRecord>> listMap = matchBirRecords.stream().collect(Collectors.groupingBy(UnMatchBirRecord::getActivityId));
for (String activityId : listMap.keySet()) {
List<UnMatchBirRecord> 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<BirBaseActivity> updList = new ArrayList<>();
for (UnMatchBirRecord record : list) {
BirBaseActivity baseActivity = new BirBaseActivity();
baseActivity.setId(record.getBirActId());
baseActivity.setActivityAmt(record.getBirCenterGoodAmt());
updList.add(baseActivity);
}
updateBatchById(updList);
}
}
}
} }

23
src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java

@ -36,29 +36,6 @@ public interface TbsActivityCenterGoodsMapper extends BaseMapper<TbsActivityCent
@InterceptorIgnore(tenantLine = "1") @InterceptorIgnore(tenantLine = "1")
List<TbsActNotMatchAmtCenterGoods> listNotMatchAmtCenterGoods(@Param("costApplyIds") List<Long> costIds); List<TbsActNotMatchAmtCenterGoods> listNotMatchAmtCenterGoods(@Param("costApplyIds") List<Long> 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<Long> 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<Long> listActivityBirErrorCostId();
} }

9
src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml

@ -177,9 +177,12 @@
</select> </select>
<select id="selectErrorBir" resultType="com.qs.serve.modules.bir.entity.BirActivityCenterGoods"> <select id="selectErrorBir" resultType="com.qs.serve.modules.bir.entity.BirActivityCenterGoods">
select bir_activity_center_goods.* from bir_activity_center_goods left join tbs_cost_apply select bir.* from bir_activity_center_goods bir
on tbs_cost_apply.id = bir_activity_center_goods.cost_apply_id left join tbs_activity act
where charge_state not in (1,2,3,4) 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 or cost.charge_state not in (1,2,3,4)
</select> </select>
<select id="totalAmt" resultType="java.math.BigDecimal"> <select id="totalAmt" resultType="java.math.BigDecimal">

1
src/main/resources/mapper/bir/BirBaseActivityMapper.xml

@ -116,6 +116,7 @@
set bir_base_activity.del_flag = '1' set bir_base_activity.del_flag = '1'
where charge_state not in (2,3) where charge_state not in (2,3)
</select> </select>
<select id="selectErrorAmtActivityCode" resultType="java.lang.Long"> <select id="selectErrorAmtActivityCode" resultType="java.lang.Long">
select select
t1.activity_id t1.activity_id

Loading…
Cancel
Save