|
@ -1,5 +1,6 @@ |
|
|
package com.qs.serve.modules.vtb.service; |
|
|
package com.qs.serve.modules.vtb.service; |
|
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.util.CollectionUtil; |
|
|
import com.qs.serve.common.util.CollectionUtil; |
|
|
import com.qs.serve.common.util.CopierUtil; |
|
|
import com.qs.serve.common.util.CopierUtil; |
|
@ -11,10 +12,12 @@ import com.qs.serve.modules.sys.service.SysUserService; |
|
|
import com.qs.serve.modules.tbs.common.TbsActivityState; |
|
|
import com.qs.serve.modules.tbs.common.TbsActivityState; |
|
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
|
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
|
|
import com.qs.serve.modules.tbs.entity.TbsActivity; |
|
|
import com.qs.serve.modules.tbs.entity.TbsActivity; |
|
|
|
|
|
import com.qs.serve.modules.tbs.entity.TbsActivitySubject; |
|
|
import com.qs.serve.modules.tbs.entity.TbsCostApply; |
|
|
import com.qs.serve.modules.tbs.entity.TbsCostApply; |
|
|
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; |
|
|
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; |
|
|
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; |
|
|
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; |
|
|
import com.qs.serve.modules.tbs.service.TbsActivityService; |
|
|
import com.qs.serve.modules.tbs.service.TbsActivityService; |
|
|
|
|
|
import com.qs.serve.modules.tbs.service.TbsActivitySubjectService; |
|
|
import com.qs.serve.modules.tbs.service.TbsCostApplyService; |
|
|
import com.qs.serve.modules.tbs.service.TbsCostApplyService; |
|
|
import com.qs.serve.modules.vtb.common.VtbVerificationState; |
|
|
import com.qs.serve.modules.vtb.common.VtbVerificationState; |
|
|
import com.qs.serve.modules.vtb.entity.VtbVerification; |
|
|
import com.qs.serve.modules.vtb.entity.VtbVerification; |
|
@ -57,7 +60,36 @@ public class VtbVerificationApplication { |
|
|
if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){ |
|
|
if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){ |
|
|
return R.error("费用申请处于未非审批状态!"); |
|
|
return R.error("费用申请处于未非审批状态!"); |
|
|
} |
|
|
} |
|
|
|
|
|
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){ |
|
|
|
|
|
List<VtbVerificationSubject> verificationSubjects = vtbVerificationSubjectService.listByVerificationId(verification.getId()); |
|
|
|
|
|
for (VtbVerificationSubject verificationSubject : verificationSubjects) { |
|
|
|
|
|
for (TbsAffairCommitBo.AffairSubjectLine subjectLine : affairCommit.getAffairSubjectLines()) { |
|
|
|
|
|
if(subjectLine.getSubjectId()==null||subjectLine.getAmount()==null){ |
|
|
|
|
|
return R.error("AffairSubjectLines参数错误"); |
|
|
|
|
|
} |
|
|
|
|
|
if(subjectLine.getSubjectId().equals(verificationSubject.getSubjectId())){ |
|
|
|
|
|
if(subjectLine.getAmount().compareTo(verificationSubject.getUsedAmountRecord())>0){ |
|
|
|
|
|
return R.error("科目["+verificationSubject.getSubjectName()+"]额度不足"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
// List<TbsActivitySubject> activitySubjects = activitySubjectService.listByActivityId(verification.getActivityId());
|
|
|
|
|
|
// for (TbsActivitySubject activitySubject : activitySubjects) {
|
|
|
|
|
|
// for (TbsAffairCommitBo.AffairSubjectLine subjectLine : affairCommit.getAffairSubjectLines()) {
|
|
|
|
|
|
// if(subjectLine.getSubjectId()==null||subjectLine.getAmount()==null){
|
|
|
|
|
|
// return R.error("AffairSubjectLines参数错误");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// if(subjectLine.getSubjectId().equals(activitySubject.getSubjectId())){
|
|
|
|
|
|
// BigDecimal used = activitySubject.getUsedAmount()==null?BigDecimal.ZERO:activitySubject.getUsedAmount();
|
|
|
|
|
|
// BigDecimal diff = activitySubject.getAmount().subtract(used);
|
|
|
|
|
|
// if(subjectLine.getAmount().compareTo(diff)>=0){
|
|
|
|
|
|
// return R.error("科目["+activitySubject.getSubjectName()+"]余额为:"+ diff);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
boolean isBackCommit = affairCommit.getState()==2; |
|
|
boolean isBackCommit = affairCommit.getState()==2; |
|
|
R<String> result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.VERIFICATION_CODE); |
|
|
R<String> result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.VERIFICATION_CODE); |
|
@ -99,10 +131,14 @@ public class VtbVerificationApplication { |
|
|
BigDecimal totalAmount = BigDecimal.ZERO; |
|
|
BigDecimal totalAmount = BigDecimal.ZERO; |
|
|
for (VtbVerificationSubject currVs : verificationSubjects) { |
|
|
for (VtbVerificationSubject currVs : verificationSubjects) { |
|
|
BigDecimal changeAmount = null; |
|
|
BigDecimal changeAmount = null; |
|
|
|
|
|
Integer countSession = null; |
|
|
|
|
|
Integer countPerson = null; |
|
|
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){ |
|
|
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){ |
|
|
for (TbsAffairCommitBo.AffairSubjectLine affairSubjectLine : affairCommit.getAffairSubjectLines()) { |
|
|
for (TbsAffairCommitBo.AffairSubjectLine affairSubjectLine : affairCommit.getAffairSubjectLines()) { |
|
|
if(currVs.getId().equals(affairSubjectLine.getVerificationSubjectId())){ |
|
|
if(currVs.getSubjectId().equals(affairSubjectLine.getSubjectId())){ |
|
|
changeAmount = affairSubjectLine.getAmount(); |
|
|
changeAmount = affairSubjectLine.getAmount(); |
|
|
|
|
|
countSession = affairSubjectLine.getCountSession(); |
|
|
|
|
|
countPerson = affairSubjectLine.getCountPerson(); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -113,14 +149,54 @@ public class VtbVerificationApplication { |
|
|
yardItem.initSetNull(); |
|
|
yardItem.initSetNull(); |
|
|
BigDecimal lastAmount = currVs.getUsedAmount(); |
|
|
BigDecimal lastAmount = currVs.getUsedAmount(); |
|
|
yardItem.setLastAmount(lastAmount); |
|
|
yardItem.setLastAmount(lastAmount); |
|
|
|
|
|
|
|
|
|
|
|
yardItem.setLastSession(currVs.getCountSession()); |
|
|
|
|
|
yardItem.setCurrSession(currVs.getCountSession()); |
|
|
|
|
|
if(countSession != null){ |
|
|
|
|
|
if(!countSession.equals(currVs.getCountSession())){ |
|
|
|
|
|
yardItem.setLastSession(currVs.getCountSession()); |
|
|
|
|
|
yardItem.setCurrSession(countSession); |
|
|
|
|
|
VtbVerificationSubject verSub4Upd = new VtbVerificationSubject(); |
|
|
|
|
|
verSub4Upd.setId(currVs.getId()); |
|
|
|
|
|
verSub4Upd.setCountPerson(countSession); |
|
|
|
|
|
verSubject4Update.add(verSub4Upd); |
|
|
|
|
|
if(currVs.getCountSession()!=null){ |
|
|
|
|
|
if(currVs.getCountSession()>countSession){ |
|
|
|
|
|
yardItem.setRemark2("减少场次:"+ (currVs.getCountSession() - countSession)); |
|
|
|
|
|
}else { |
|
|
|
|
|
yardItem.setRemark2("增加场次:"+ (countSession - currVs.getCountSession())); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
yardItem.setLastSession(currVs.getCountSession()); |
|
|
|
|
|
yardItem.setCurrSession(currVs.getCountSession()); |
|
|
|
|
|
if( countPerson != null ){ |
|
|
|
|
|
if(!countPerson.equals(currVs.getCountPerson())){ |
|
|
|
|
|
yardItem.setLastPerson(currVs.getCountPerson()); |
|
|
|
|
|
yardItem.setCurrPerson(countPerson); |
|
|
|
|
|
VtbVerificationSubject verSub4Upd = new VtbVerificationSubject(); |
|
|
|
|
|
verSub4Upd.setId(currVs.getId()); |
|
|
|
|
|
verSub4Upd.setCountPerson(countPerson); |
|
|
|
|
|
verSubject4Update.add(verSub4Upd); |
|
|
|
|
|
if(currVs.getCountPerson()!=null){ |
|
|
|
|
|
if(currVs.getCountPerson()>countPerson){ |
|
|
|
|
|
yardItem.setRemark3("减少人数:"+ (currVs.getCountPerson() - countPerson)); |
|
|
|
|
|
}else { |
|
|
|
|
|
yardItem.setRemark3("增加人数:"+ (countPerson - currVs.getCountPerson())); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
//金额有更变
|
|
|
//金额有更变
|
|
|
if(changeAmount!=null&&changeAmount.compareTo(lastAmount)!=0){ |
|
|
if(changeAmount!=null&&changeAmount.compareTo(lastAmount)!=0){ |
|
|
yardItem.setCurrAmount(changeAmount); |
|
|
yardItem.setCurrAmount(changeAmount); |
|
|
BigDecimal diff = changeAmount.subtract(lastAmount); |
|
|
BigDecimal diff = changeAmount.subtract(lastAmount); |
|
|
if(diff.compareTo(BigDecimal.ZERO)>0){ |
|
|
if(diff.compareTo(BigDecimal.ZERO)>0){ |
|
|
yardItem.setRemark(currVs.getSubjectName()+"["+currVs.getSubjectCode()+"]增加费用:"+diff); |
|
|
yardItem.setRemark("增加费用:"+diff); |
|
|
}else { |
|
|
}else { |
|
|
yardItem.setRemark(currVs.getSubjectName()+"["+currVs.getSubjectCode()+"]减少费用:"+diff.negate()); |
|
|
yardItem.setRemark("减少费用:"+diff.negate()); |
|
|
} |
|
|
} |
|
|
VtbVerificationSubject verSub4Upd = new VtbVerificationSubject(); |
|
|
VtbVerificationSubject verSub4Upd = new VtbVerificationSubject(); |
|
|
verSub4Upd.setId(currVs.getId()); |
|
|
verSub4Upd.setId(currVs.getId()); |
|
@ -181,8 +257,12 @@ public class VtbVerificationApplication { |
|
|
tbsActivityService.updateById(activity); |
|
|
tbsActivityService.updateById(activity); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public List<CtpAffairVo> buildCtpAffairVoList(List<CtpAffair> ctpAffairs){ |
|
|
|
|
|
return this.buildCtpAffairVoList(ctpAffairs,false); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@NotNull |
|
|
@NotNull |
|
|
public List<CtpAffairVo> buildCtpAffairVoList(List<CtpAffair> ctpAffairs) { |
|
|
public List<CtpAffairVo> buildCtpAffairVoList(List<CtpAffair> ctpAffairs,boolean loadCommit) { |
|
|
if(CollectionUtil.isEmpty(ctpAffairs)){ |
|
|
if(CollectionUtil.isEmpty(ctpAffairs)){ |
|
|
return new ArrayList<>(); |
|
|
return new ArrayList<>(); |
|
|
} |
|
|
} |
|
|