Browse Source

fix(check): 修复重置接口,以核销为基础去更新活动数据

master
Yen 1 week ago
parent
commit
4f9ecfc839
  1. 11
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java
  2. 14
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySubjectMapper.java
  3. 52
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityDebugApplicationService.java
  4. 14
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  5. 14
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

11
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java

@ -8,6 +8,7 @@ import com.qs.serve.framework.base.model.PageVo;
import com.qs.serve.framework.base.model.R;
import com.qs.serve.common.enums.BizType;
import com.qs.serve.common.enums.SystemModule;
import com.qs.serve.modules.bir.consts.BirActivityCenterGoodsUtil;
import com.qs.serve.modules.sys.common.AuthContextUtils;
import com.qs.serve.common.utils.CopierUtil;
import com.qs.serve.common.utils.PageUtil;
@ -88,18 +89,10 @@ public class TbsActivityController {
public R<?> reset(@PathVariable("id") Long id){
String msg = tbsActivityDebugApplicationService.reset(id);
TbsActivity activity = tbsActivityService.getById(id);
BirActivityCenterGoodsUtil.buildBir(activity.getCostApplyId());
return R.ok(msg);
}
@GetMapping("/resetList")
public R<?> reset(){
Long[] ids = new Long[]{
};
for (Long id : ids) {
System.out.println(tbsActivityDebugApplicationService.reset(id));
}
return R.ok();
}
/**
* 列表

14
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySubjectMapper.java

@ -22,13 +22,13 @@ public interface TbsActivitySubjectMapper extends BaseMapper<TbsActivitySubject>
"\tgroup by activity_id\n" +
") act_info on act_info.activity_id = tbs_activity.id\n" +
"where tbs_activity.del_flag = 0 \n" +
"and tbs_cost_apply.del_flag = 0\n" +
"and tbs_cost_apply.charge_state in (1,2,3,7)\n" +
"and tbs_cost_apply.cancel_flag = 0\n" +
"and tbs_activity.cancel_flag = 0\n" +
"and tbs_activity.release_flag = 1\n" +
"and tbs_activity.id = #{activityId} " +
"and act_info.tal_used != tbs_activity.used_amount ")
" and tbs_cost_apply.del_flag = 0\n" +
" and tbs_cost_apply.charge_state in (1,2,3,7)\n" +
" and tbs_cost_apply.cancel_flag = 0\n" +
" and tbs_activity.cancel_flag = 0\n" +
//"and tbs_activity.release_flag = 1\n" +
" and tbs_activity.id = #{activityId} " +
" and act_info.tal_used != tbs_activity.used_amount ")
Long checkActAndSubjectAmt(@Param("activityId") Long activityId);
}

52
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityDebugApplicationService.java

@ -56,34 +56,51 @@ public class TbsActivityDebugApplicationService {
// return "方法仅支持普通订单";
// }
BirActivityCenterGoodsUtil.buildBir(activity.getCostApplyId());
BigDecimal checkeAmt = activity.getUsedAmount();
if(activity.getReleaseFlag().equals(1)){
checkeAmt = checkeAmt.add(activity.getReleaseAmount());
}
if(checkeAmt.compareTo(activity.getTotalAmount())>0){
log.warn("活动自身金额异常");
return "活动自身金额异常";
}
Long unMatchNum = activitySubjectMapper.checkActAndSubjectAmt(activityId);
if(unMatchNum!=null&&unMatchNum>0){
log.warn("活动科目金额异常");
return "活动科目金额异常";
}
//校验核销金额,错误则不执行
BigDecimal totalVerificationAmt = verificationMapper.getActivityVerificationAmt(activityId);
if(totalVerificationAmt==null){
totalVerificationAmt = BigDecimal.ZERO;
}
boolean updateActivity = false;
//确保已用金额和核销金额一致
TbsActivity activity4Upd = new TbsActivity();
activity4Upd.setId(activity.getId());
if(activity.getUsedAmount().compareTo(BigDecimal.ZERO)!=0
&&activity.getUsedAmount().compareTo(totalVerificationAmt)!=0){
return "核销金额异常";
activity.setUsedAmount(totalVerificationAmt);
updateActivity = true;
activity4Upd.setUsedAmount(totalVerificationAmt);
}
// subject是和activity的 申请金额和核销金额一致,不进行更新
BigDecimal releaseAmount = activity.getTotalAmount().subtract(activity.getUsedAmount());
if(activity.getReleaseFlag().equals(1)){
if (activity.getReleaseAmount()==null||activity.getReleaseAmount().compareTo(releaseAmount)!=0){
updateActivity = true;
activity.setReleaseAmount(releaseAmount);
}
}
if (updateActivity){
activityMapper.updateById(activity4Upd);
}
Long unMatchNum = activitySubjectMapper.checkActAndSubjectAmt(activityId);
boolean restSubjectUsed = unMatchNum!=null&&unMatchNum>0;
List<TbsActivitySubject> activitySubjectList = activitySubjectService.list(wrapper);
if(restSubjectUsed){
BigDecimal totalSubjectUsed = totalVerificationAmt;
for (TbsActivitySubject subject : activitySubjectList) {
if(subject.getAmount().compareTo(totalSubjectUsed)>=0){
subject.setUsedAmount(totalSubjectUsed);
}else {
totalSubjectUsed = totalSubjectUsed.subtract(subject.getAmount());
subject.setUsedAmount(subject.getAmount());
}
activitySubjectMapper.updateById(subject);
}
}
// subject是和activity的 申请金额和核销金额一致,不进行更新
List<TbsActivityCenter> activityCenterList = activityCenterService.list(wrapper);
List<TbsActivityCenterGoods> activityCenterGoodsList = activityCenterGoodsService.list(wrapper);
@ -293,7 +310,6 @@ public class TbsActivityDebugApplicationService {
}
}
}
}
//二次校验

14
cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java

@ -343,23 +343,9 @@ public class VtbVerificationController {
public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){
seeYonService.testConnection();
R r = verificationApplication.commitAffair(affairCommit);
if(affairCommit.getState().equals(2)){
runCompensate(affairCommit);
}
return r;
}
@Async
public void runCompensate(TbsAffairCommitBo affairCommit) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
AuthContextUtils.setTenant("001");
vtbVerificationOperationService.runCompensate(affairCommit.getCostApplyId()+"");
}
/**
* 加签
* @param param

14
cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -367,12 +367,13 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(verification.getVerificationState().equals(VtbVerificationState.Cancel.getCode())){
Assert.throwEx("已作废,请勿重复提交");
}
if (!verification.getVerificationState().equals(VtbVerificationState.Finished.getCode())){
Assert.throwEx("当前核销不可作废");
}
TbsActivity activity = activityService.getById(verification.getActivityId());
if(activity.getReleaseFlag()!=null&&activity.getReleaseFlag().equals(1)){
Assert.throwEx("当前活动已释放不可作废");
Assert.throwEx("作废核销前,请取消释放活动的费用");
}
TbsCostApply costApply = costApplyService.getById(verification.getCostApplyId());
if(costApply.getCode().contains("SHX")){
Assert.throwEx("试吃品流程不可作废核销");
}
boolean canCancel = activity.getActivityState().equals(TbsActivityState.STATE_0_Todo)||
activity.getActivityState().equals(TbsActivityState.STATE_1_Finished)||
@ -383,8 +384,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(!verification.getVerificationCode().contains("TEST")){
String host = "http://59.37.164.96:2506/action/cms/cost/deletion";
//TODO 请求伟成接口,删除 XLT_BIFyDbf
//请求伟成接口,删除 XLT_BIFyDbf
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
XltDelVerificationDto delVerificationDto = new XltDelVerificationDto(
sysUser.getAccount(),
@ -412,12 +412,10 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
}
}
verification.setVerificationState(VtbVerificationState.Cancel.getCode());
vtbFundFlowService.removeByVerificationId(verification.getId());
this.updateById(verification);
//判断费用申请类型
TbsCostApply costApply = costApplyService.getById(verification.getCostApplyId());
if(costApply.getContractFlag().equals(1)){
LambdaQueryWrapper<TbsActivityPayCondition> contractLambdaQueryWrapper = new LambdaQueryWrapper<>();
contractLambdaQueryWrapper.eq(TbsActivityPayCondition::getActivityId,verification.getActivityId());

Loading…
Cancel
Save