Browse Source

核销添加回退功能

mssql
Yen 3 years ago
parent
commit
458bea94d6
  1. 2
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java
  2. 28
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  3. 2
      src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java
  4. 20
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

2
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java

@ -17,7 +17,7 @@ public class TbsAffairCommitBo {
@NotNull
private Long costApplyId;
/** 状态:0-否定,1-同意 */
/** 状态:0-否定,1-同意,2-退回 */
@NotNull
private Integer state;

28
src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java

@ -242,6 +242,7 @@ public class VtbVerificationController {
if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){
return R.error("费用申请处于未非审批状态!");
}
boolean isBackCommit = affairCommit.getState()==2;
R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.VERIFICATION_FORM);
if(result.getStatus()==200){
// 判断是否含有下个节点
@ -255,15 +256,24 @@ public class VtbVerificationController {
vtbVerificationService.successCommit(verification.getId());
return R.ok();
}else if ("stop".equals(flag)){
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
vtbVer.setVerificationState(VtbVerificationState.Stop.getCode());
vtbVerificationService.updateById(vtbVer);
//还原活动为待核销状态
TbsActivity activity = new TbsActivity();
activity.setId(verification.getActivityId());
activity.setActivityState(TbsActivityState.STATE_0_Todo);
tbsActivityService.updateById(activity);
if(isBackCommit){
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
vtbVer.setVerificationState(VtbVerificationState.Rollback.getCode());
vtbVer.setSyFormId("");
vtbVer.setSyFlowId("");
vtbVerificationService.updateById(vtbVer);
}else {
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
vtbVer.setVerificationState(VtbVerificationState.Stop.getCode());
vtbVerificationService.updateById(vtbVer);
//还原活动为待核销状态
TbsActivity activity = new TbsActivity();
activity.setId(verification.getActivityId());
activity.setActivityState(TbsActivityState.STATE_0_Todo);
tbsActivityService.updateById(activity);
}
return R.ok();
}else if ("next".equals(flag)){
return R.ok();

2
src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java

@ -27,7 +27,7 @@ public class VtbVerificationBo implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
/** id(退回的核销要传) */
private Long id;
/** 活动id */

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

@ -88,7 +88,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
Assert.throwEx("状态不支持释放活动费用");
}
BigDecimal releaseAmount = validActivity(activity,false);
BigDecimal releaseAmount = validActivity(activity,false,false);
TbsActivity param = new TbsActivity();
param.setId(activityId);
param.setActivityState(TbsActivityState.STATE_4_Release);
@ -157,9 +157,12 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
Assert.throwEx("当前费用状态不支持");
}
validActivity(activity,true);
//退回的审批跳过校验
boolean isCurrentCommit = verificationBo.getId()!=null;
validActivity(activity,true,isCurrentCommit);
VtbVerification verification = new VtbVerification();
verification.setId(verificationBo.getId());
verification.setVerificationState(VtbVerificationState.Commiting.getCode());
verification.setActivityId(verificationBo.getActivityId());
verification.setAttachIds(verificationBo.getAttachIds());
verification.setRemark(verificationBo.getRemark());
@ -210,7 +213,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
this.saveOrUpdate(verification);
this.commitSy(sysUser,verification);
this.updateById(verification);
if(verification.getSyFormId()==null||verification.getSyFlowId()==null){
if(!StringUtils.hasText(verification.getSyFormId())||!StringUtils.hasText(verification.getSyFlowId())){
Assert.throwEx("远程调用失败");
}
//移除历史提交记录
@ -271,9 +274,10 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
* 校验活动
* @param activity
* @param filterActTime 拦截活动结束
* @param isCurrentCommit 是否当前活动占用提交
* @return
*/
private BigDecimal validActivity(TbsActivity activity,boolean filterActTime){
private BigDecimal validActivity(TbsActivity activity,boolean filterActTime,boolean isCurrentCommit){
LocalDate nowDate = LocalDate.now();
if(activity.getReopenFlag().equals(0)
&& filterActTime
@ -289,9 +293,11 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(activity.getFinishedFlag().equals(1)){
Assert.throwEx("活动已完成");
}
boolean isCommitting = this.checkCommitting(activity.getId());
if(isCommitting){
Assert.throwEx("该活动核销中,操作失败");
if(!isCurrentCommit){
boolean isCommitting = this.checkCommitting(activity.getId());
if(isCommitting){
Assert.throwEx("该活动核销中,操作失败");
}
}
List<VtbFundFlow> fundFlowList = fundFlowService.listByActivity(activity.getId(),VtbFundFlowType.Verification);
BigDecimal totalFunFlow = BigDecimal.ZERO;

Loading…
Cancel
Save