Browse Source

fix: 合并核销状态调整

checkBack
Yen 1 year ago
parent
commit
d6c247f532
  1. 2
      src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java
  2. 68
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java
  3. 3
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java
  4. 55
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

2
src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java

@ -36,10 +36,12 @@ public interface TbsSeeYonConst {
public static String Code(){
return DevEnvironmentConfig.isDev()?"CheckCost_Test":"CheckCost";
}
//public static String Id(){return DevEnvironmentConfig.isDev()?"8370474123848467567":"5117622466085866816";}
}
/** 核销 */
class BatchCostCheckConf{
//public static String Id(){return DevEnvironmentConfig.isDev()?"6989459208782694349":"7718060534670183779";}
public static String Code(){
return DevEnvironmentConfig.isDev()?"BatchCheckCost_Test":"BatchCheckCost";
}

68
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java

@ -11,9 +11,12 @@ import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam;
import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
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.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.*;
import com.qs.serve.modules.vtb.entity.vo.VtbVerificationActReleaseVo;
@ -25,10 +28,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -50,6 +50,7 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
private final VtbVerificationYardItemService yardItemService;
private final VtbVerificationYardCenterItemService yardCenterItemService;
private final VtbVerificationSubjectService vtbVerificationSubjectService;
private final TbsActivityMapper tbsActivityMapper;
@Override
public String getTemplateCode() {
@ -74,6 +75,14 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
verification.setVerificationState(VtbVerificationState.Rollback.getCode());
vtbVerificationService.updateById(verification);
}
Set<Long> actIdList = verificationList.stream().map(VtbVerification::getActivityId).collect(Collectors.toSet());
List<TbsActivity> activityList = tbsActivityMapper.selectList(new LambdaQueryWrapper<TbsActivity>().eq(TbsActivity::getId,actIdList));
for (TbsActivity activity : activityList) {
TbsActivity activity1 = new TbsActivity();
activity1.setId(activity.getId());
activity1.setActivityState(TbsActivityState.STATE_0_Todo);
tbsActivityMapper.updateById(activity1);
}
return null;
}
@ -87,6 +96,12 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
for (VtbVerification verification : verificationList) {
//循环调用每个核销
vtbVerificationService.successCommit(verification.getId());
//更新核销状态
VtbVerification updateVerification = new VtbVerification();
updateVerification.setId(verification.getId());
updateVerification.setFinishedTime(LocalDateTime.now());
updateVerification.setVerificationState(VtbVerificationState.Finished.getCode());
vtbVerificationService.updateById(updateVerification);
}
BigDecimal totalAmt = vtbVerificationMapper.totalVtbAmtByBatchId(batch.getId());
batch.setResultCheckAmount(totalAmt);
@ -257,14 +272,15 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
boolean isStop = "backed".equals(flag)||"refuse".equals(flag);
//释放费用
boolean isRelease = itemCommit.getReleaseFlag()!=null&&itemCommit.getReleaseFlag().equals(1);
if (isStop){
log.warn("单据[{}]状态:{},中止审批",verification.getVerificationCode(),flag);
verificationApplication.backCommitAndStop(verification, "backed".equals(flag));
if(isRelease){
log.warn("单据[{}]状态:{},中止审批并释放费用",verification.getVerificationCode(),flag);
vtbVerificationService.release(verification.getActivityId(),sysUser.getCode(),false);
}
}else if (!isFinish && !isNext){
// if (isStop){
// log.warn("单据[{}]状态:{},中止审批",verification.getVerificationCode(),flag);
// verificationApplication.backCommitAndStop(verification, "backed".equals(flag));
// if(isRelease){
// log.warn("单据[{}]状态:{},中止审批并释放费用",verification.getVerificationCode(),flag);
// vtbVerificationService.release(verification.getActivityId(),sysUser.getCode(),false);
// }
// }else
if (!isFinish && !isNext){
log.error("远程调用返回,非指定状态:{}",JsonUtil.objectToJson(commitParam));
continue;
}
@ -405,20 +421,20 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
if(subjectCenterUpdateList.size()>0){
vtbVerificationSubjectCenterService.updateBatchById(subjectCenterUpdateList);
}
//重新计算合计
if(isFinish){
verificationApplication.finishCallBack(verification, totalAmount);
if(isRelease){
log.warn("核销"+verification.getVerificationCode()+"释放金额");
vtbVerificationService.release(verification.getActivityId(),sysUser.getCode(),false);
}
}else {
//更新金额
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
vtbVer.setAmount(totalAmount);
vtbVerificationService.updateById(vtbVer);
}
// //重新计算合计
// if(isFinish){
// verificationApplication.finishCallBack(verification, totalAmount);
// if(isRelease){
// log.warn("核销"+verification.getVerificationCode()+"释放金额");
// vtbVerificationService.release(verification.getActivityId(),sysUser.getCode(),false);
// }
// }else {
// //更新金额
// VtbVerification vtbVer = new VtbVerification();
// vtbVer.setId(verification.getId());
// vtbVer.setAmount(totalAmount);
// vtbVerificationService.updateById(vtbVer);
// }
}
}
}

3
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java

@ -306,6 +306,9 @@ public class VtbVerificationBatchServiceImpl extends ServiceImpl<VtbVerification
data.put("cmsLink",baseJumpUrl);
data.put("rowDate",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
data.put("rowState","00");
data.put("templateId", costApply.getTemplateId());
data.put("templateName", costApply.getTemplateTitle());
//添加客户标签
List<String> tags = tagInfoMapper.lisTagsBySupplierCode(supplier.getCode());
data.put("tags",tags);

55
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -479,9 +479,8 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
}
@Override
@Transactional(rollbackFor = Exception.class)
public void release(Long activityId,String userCode,Boolean throwEx) {
public void release(Long activityId,String userCode,Boolean throwEx,boolean checkState) {
String url = "unknown";
try {
HttpServletRequest request = ServletUtils.getRequest();
@ -502,12 +501,15 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
}
TbsActivity activity = activityService.getById(activityId);
BirActivityCenterGoodsUtil.buildBir(activity.getCostApplyId());
if(ReleaseConst.UseFilter){
if(!activity.getActivityState().equals(TbsActivityState.STATE_0_Todo)){
if(!throwEx){
return;
//一般 checkState=true 普通核销 false是合并核销或者修复数据时使用
if(checkState){
if(ReleaseConst.UseFilter){
if(!activity.getActivityState().equals(TbsActivityState.STATE_0_Todo)){
if(!throwEx){
return;
}
Assert.throwEx("活动状态非待核销状态,操作失败");
}
Assert.throwEx("活动状态非待核销状态,操作失败");
}
}
if(activity.getCancelFlag().equals(1)){
@ -519,13 +521,18 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
Assert.throwEx("状态不支持释放活动费用");
}
}
BigDecimal releaseAmount = null;
BigDecimal releaseAmount = BigDecimal.ZERO;
String errorMsg = null;
try {
releaseAmount = this.validActivity(costApply.getContractFlag()!=null
&&costApply.getContractFlag().equals(1),activity,false,false);
} catch (Exception e) {
errorMsg = e.getMessage();
//一般 checkState=true 普通核销 false是合并核销或者修复数据时使用
if(checkState){
try {
releaseAmount = this.validActivity(costApply.getContractFlag()!=null
&&costApply.getContractFlag().equals(1),activity,false,false);
} catch (Exception e) {
errorMsg = e.getMessage();
}
}else {
releaseAmount = this.getActivityReleaseAmt(activity);
}
if(StringUtils.hasText(errorMsg)){
if(throwEx){
@ -547,7 +554,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
//移除历史记录
fundFlowService.remove(
new LambdaQueryWrapper<VtbFundFlow>()
.eq(VtbFundFlow::getFundType,VtbFundFlowType.Release)
.eq(VtbFundFlow::getFundType,VtbFundFlowType.Release)
.eq(VtbFundFlow::getCostApplyId,activity.getCostApplyId())
.eq(VtbFundFlow::getActivityId,activity.getId())
);
@ -613,6 +620,12 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
BirActivityCenterGoodsUtil.buildBir(costApply.getId());
}
@Override
public void release(Long activityId,String userCode,Boolean throwEx) {
this.release(activityId,userCode,throwEx,true);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelRelease(Long activityId) {
@ -1122,6 +1135,10 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
data.put("jinE", verification.getAmount().toString());
data.put("money", verification.getAmount().toString());
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId());
data.put("templateId", costApply.getTemplateId());
data.put("templateName", costApply.getTemplateTitle());
//核销拓展时间信息
//activityQuarter 活动期间所属季度
//activityMonth 活动期间所属月份
@ -1241,6 +1258,11 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
}
}
}
return getActivityReleaseAmt(activity);
}
@NotNull
private BigDecimal getActivityReleaseAmt(TbsActivity activity) {
List<VtbFundFlow> fundFlowList = fundFlowService.listByActivity(activity.getId(),VtbFundFlowType.Verification);
BigDecimal totalFunFlow = BigDecimal.ZERO;
for (VtbFundFlow fundFlow : fundFlowList) {
@ -1248,7 +1270,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
}
BigDecimal allowAmount = activity.getTotalAmount().subtract(totalFunFlow);
if(allowAmount.compareTo(BigDecimal.ZERO)<0){
log.error("无可用费用 activity id:{} code:{}",activity.getId(),activity.getActivityCode());
log.error("无可用费用 activity id:{} code:{}", activity.getId(), activity.getActivityCode());
Assert.throwEx("无可用费用");
}
return allowAmount;
@ -1462,7 +1484,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
&&verification.getRegReleaseFlag().equals(1)){
//更新活动状态
SysUser sysUser = sysUserService.getById(verification.getRegReleaseUserId());
this.release(verification.getActivityId(),sysUser.getCode(),false);
this.release(verification.getActivityId(),sysUser.getCode(),true,false);
}
BigDecimal totalCostApplyUsed = costApplyService.totalCostUsed(activity.getCostApplyId());
@ -1511,6 +1533,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
@Transactional(rollbackFor = Exception.class)
public void successCommit(Long verificationId) {
this.successCommit(verificationId,true);
}
/**

Loading…
Cancel
Save