|
|
@ -15,14 +15,13 @@ import com.qs.serve.modules.bms.service.BmsSubjectService; |
|
|
|
import com.qs.serve.modules.bms.service.BmsSupplierService; |
|
|
|
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo; |
|
|
|
import com.qs.serve.modules.seeyon.service.SeeYonService; |
|
|
|
import com.qs.serve.modules.seeyon.service.XiaoLuTonService; |
|
|
|
import com.qs.serve.modules.sys.entity.SysUser; |
|
|
|
import com.qs.serve.modules.sys.service.SysUserService; |
|
|
|
import com.qs.serve.modules.tbs.common.TbsActivityState; |
|
|
|
import com.qs.serve.modules.tbs.common.TbsCostApplyState; |
|
|
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
|
|
|
import com.qs.serve.modules.tbs.entity.*; |
|
|
|
import com.qs.serve.modules.tbs.entity.bo.TbsActivityChannelBo; |
|
|
|
import com.qs.serve.modules.tbs.entity.bo.TbsActivityChannelPointBo; |
|
|
|
import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo; |
|
|
|
import com.qs.serve.modules.tbs.service.*; |
|
|
|
import com.qs.serve.modules.vtb.common.VtbFundFlowType; |
|
|
@ -32,6 +31,7 @@ import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo; |
|
|
|
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationChannelBo; |
|
|
|
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationChannelPointBo; |
|
|
|
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationSubjectBo; |
|
|
|
import com.qs.serve.modules.seeyon.entity.XltApticlaim; |
|
|
|
import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper; |
|
|
|
import com.qs.serve.modules.vtb.service.*; |
|
|
|
import lombok.AllArgsConstructor; |
|
|
@ -73,6 +73,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe |
|
|
|
private final VtbFundFlowService fundFlowService; |
|
|
|
|
|
|
|
private final SeeYonService seeYonService; |
|
|
|
private final XiaoLuTonService xiaoLuTonService; |
|
|
|
|
|
|
|
private final SysUserService sysUserService; |
|
|
|
|
|
|
@ -161,6 +162,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe |
|
|
|
validActivity(activity,true,isCurrentCommit); |
|
|
|
VtbVerification verification = new VtbVerification(); |
|
|
|
verification.setId(verificationBo.getId()); |
|
|
|
verification.setVerificationCode("HX"+IdUtil.timeStampId()); |
|
|
|
verification.setVerificationState(VtbVerificationState.Commiting.getCode()); |
|
|
|
verification.setActivityId(verificationBo.getActivityId()); |
|
|
|
verification.setAttachIds(verificationBo.getAttachIds()); |
|
|
@ -201,7 +203,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe |
|
|
|
verificationChannelPointList.add(channelPoint1); |
|
|
|
} |
|
|
|
} |
|
|
|
List<VtbVerificationSubject> verificationSubjects = validCreateVeriSubject(verificationBo, activity, costApply, supplier); |
|
|
|
List<VtbVerificationSubject> verificationSubjects = validCreateVeriSubject(verification.getVerificationCode(),verificationBo, activity, costApply, supplier); |
|
|
|
//设置总金额
|
|
|
|
BigDecimal totalAmount = BigDecimal.ZERO; |
|
|
|
for (VtbVerificationSubject verificationSubject : verificationSubjects) { |
|
|
@ -317,13 +319,14 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe |
|
|
|
* @param costApply |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private List<VtbVerificationSubject> validCreateVeriSubject(VtbVerificationBo verificationBo, TbsActivity activity, TbsCostApply costApply,BmsSupplier supplier) { |
|
|
|
private List<VtbVerificationSubject> validCreateVeriSubject(String verificationCode,VtbVerificationBo verificationBo, TbsActivity activity, TbsCostApply costApply,BmsSupplier supplier) { |
|
|
|
List<VtbVerificationSubject> verificationSubjects = new ArrayList<>(); |
|
|
|
List<TbsActivitySubject> activitySubjects = activitySubjectService.listByActivityId(activity.getId()); |
|
|
|
List<VtbFundFlow> existFundFlowList = fundFlowService.listByActivity(activity.getId(), VtbFundFlowType.Verification); |
|
|
|
//校验余额
|
|
|
|
Map<Long,List<VtbFundFlow>> funFlowListMap = existFundFlowList.stream().collect(Collectors.groupingBy(VtbFundFlow::getSubjectId)); |
|
|
|
List<VtbVerificationSubjectBo> subjectBoList = verificationBo.getSubjectList(); |
|
|
|
int countCode = 1; |
|
|
|
for (VtbVerificationSubjectBo subjectBo : subjectBoList) { |
|
|
|
//忽略金额为0的数据
|
|
|
|
if (subjectBo.getAmount() == null || subjectBo.getAmount().compareTo(BigDecimal.ZERO) < 1) { |
|
|
@ -351,6 +354,8 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe |
|
|
|
} |
|
|
|
//保存费用结果
|
|
|
|
VtbVerificationSubject verificationSubject = new VtbVerificationSubject(); |
|
|
|
verificationSubject.setVerificationSubCode(verificationCode+"_"+countCode); |
|
|
|
countCode++; |
|
|
|
verificationSubject.setCostApplyId(costApply.getId()); |
|
|
|
verificationSubject.setActivityId(activity.getId()); |
|
|
|
verificationSubject.setSubjectId(subject.getId()); |
|
|
@ -373,6 +378,8 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe |
|
|
|
public void successCommit(Long verificationId) { |
|
|
|
log.info("活动核销提交成功。verificationId:{}",verificationId); |
|
|
|
VtbVerification verification = this.getById(verificationId); |
|
|
|
TbsActivity activity = activityService.getById(verification.getActivityId()); |
|
|
|
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId()); |
|
|
|
//移除历史数据
|
|
|
|
LambdaQueryWrapper<VtbFundFlow> lqw = new LambdaQueryWrapper<>(); |
|
|
|
lqw.eq(VtbFundFlow::getVerificationId,verificationId); |
|
|
@ -386,6 +393,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe |
|
|
|
Map<Long,List<TbsActivityCenter>> centerMapBySubject = activityCenterList.stream() |
|
|
|
.collect(Collectors.groupingBy(TbsActivityCenter::getSubjectId)); |
|
|
|
List<VtbFundFlow> addFundFlowList = new ArrayList<>(); |
|
|
|
LocalDateTime now = LocalDateTime.now(); |
|
|
|
for (VtbVerificationSubject verificationSubject : verificationSubjects) { |
|
|
|
Long subjectId = verificationSubject.getSubjectId(); |
|
|
|
BigDecimal usedAmount = verificationSubject.getUsedAmount(); |
|
|
@ -412,6 +420,24 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe |
|
|
|
} |
|
|
|
buildFundFlows(verificationId, addFundFlowList, activityGoodsListOfSubjectCenter,currentCenterAmount); |
|
|
|
} |
|
|
|
//发送请求到中间服务
|
|
|
|
XltApticlaim apticlaim = new XltApticlaim(); |
|
|
|
apticlaim.setVerificationCode(verificationSubject.getVerificationSubCode()); |
|
|
|
apticlaim.setCostCode(costApply.getCode()); |
|
|
|
apticlaim.setCostCode2(activity.getActivityCode()); |
|
|
|
apticlaim.setCusCode(verificationSubject.getSupplierCode()); |
|
|
|
apticlaim.setAmount(verificationSubject.getUsedAmount()); |
|
|
|
apticlaim.setSubjectCode(verificationSubject.getSubjectCode()); |
|
|
|
apticlaim.setSubjectName(verificationSubject.getSubjectName()); |
|
|
|
apticlaim.setExpType("TI"); |
|
|
|
apticlaim.setApplyType("01"); |
|
|
|
apticlaim.setEffDate(now); |
|
|
|
apticlaim.setInvoiced("2"); |
|
|
|
apticlaim.setCreateTime(now); |
|
|
|
apticlaim.setStatus("00"); |
|
|
|
apticlaim.setDealTime(now); |
|
|
|
apticlaim.setTopic(costApply.getChargeTheme()); |
|
|
|
xiaoLuTonService.saveApticlaim(apticlaim); |
|
|
|
} |
|
|
|
fundFlowService.saveBatch(addFundFlowList); |
|
|
|
//更新已用费用记录,并更新活动状态是否完成
|
|
|
|