Browse Source

异动触发费用复制

v1.0
Yen 2 years ago
parent
commit
ea21ced20c
  1. 3
      src/main/java/com/qs/serve/common/util/CodeGenUtil.java
  2. 6
      src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java
  3. 6
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityPayConditionController.java
  4. 18
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  5. 2
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityPayCondition.java
  6. 7
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java
  7. 19
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCostApplyChangeBo.java
  8. 21
      src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsContractCostSubItem.java
  9. 19
      src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyPart1Service.java
  10. 1
      src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java
  11. 189
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java
  12. 37
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  13. 2
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java
  14. 8
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

3
src/main/java/com/qs/serve/common/util/CodeGenUtil.java

@ -33,7 +33,8 @@ public class CodeGenUtil {
public enum SourceDataKey{
SaleRegion("S","SaleRegion"),
Budget("","Budget"),
BizRegion("B","BizRegion");
BizRegion("B","BizRegion"),
ActivityPayCondition("K","ActivityPayCondition");
private String prefix;
private String code;
}

6
src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java

@ -15,14 +15,16 @@ import java.util.List;
@AllArgsConstructor
public enum TbsCostApplyState {
//状态:0=未发布;1=审批中;2=待执行;3=完成;4-被驳回;5-中止;6-作废
//状态:0=未发布;1=审批中;2=待执行;3=完成;4-被驳回;5-中止;6-作废;7-异动
State_0_unPublish(0),
State_1_apply(1),
State_2_actioning(2),
State_3_finished(3),
State_4_refused(4),
State_5_stop(5),
State_6_remove(6);
State_6_remove(6),
State_7_changed(6)
;
private Integer code;

6
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityPayConditionController.java

@ -6,10 +6,7 @@ import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
@ -127,6 +124,7 @@ public class TbsActivityPayConditionController {
Long actId = activityList.get(0).getId();
entity.setActivityId(actId);
entity.setPreNotifyStatus(param.getPreNotifyTime()==null?0:1);
entity.setCode(CodeGenUtil.getDataCode(CodeGenUtil.SourceDataKey.ActivityPayCondition));
boolean result = tbsActivityPayConditionService.save(entity);
return R.isTrue(result);
}

18
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java

@ -25,10 +25,7 @@ import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.dto.CompensateDTO;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityBo;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.bo.TbsCostApplyActivityBo;
import com.qs.serve.modules.tbs.entity.bo.TbsCostApplyBo;
import com.qs.serve.modules.tbs.entity.bo.*;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo;
@ -57,6 +54,7 @@ import java.util.stream.Collectors;
@RequestMapping("tbs/costApply")
public class TbsCostApplyController {
private TbsCostApplyPart1Service costApplyPart1Service;
private TbsCostContractService costContractService;
private TbsCostApplyService tbsCostApplyService;
private TbsActivityService tbsActivityService;
@ -262,6 +260,18 @@ public class TbsCostApplyController {
return R.ok(entity);
}
/**
* 异动申请
* @param id
* @return
*/
@PostMapping("/settingWithChange/{id}")
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.INSERT)
@Transactional(rollbackFor = Exception.class)
public R<?> save(@PathVariable("id") Long id){
return R.ok(costApplyPart1Service.toSetChanged(id));
}
/**
* 根据模板新增费用及活动
* @param param

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

@ -31,6 +31,8 @@ public class TbsActivityPayCondition implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
private String code;
/** 标题 */
@TableField(condition = SqlCondition.LIKE)
private String title;

7
src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java

@ -55,7 +55,7 @@ public class TbsCostApply implements Serializable {
@TableField(condition = SqlCondition.LIKE)
private String supplierName;
/** 状态:0=未发布;1=审批中;2=待执行;3=完成;4-被驳回 */
/** 状态:0=未发布;1=审批中;2=待执行;3=完成;4-被驳回;5-中止;6-作废;7-异动 @{link TbsCostApplyState} */
@NotNull(message = "状态不能为空")
private Integer chargeState;
@ -150,6 +150,11 @@ public class TbsCostApply implements Serializable {
private Integer costThemeEditFlag;
private Integer cancelFlag;
private Long changeSourceId;
@TableField(exist = false)
private String affairId;

19
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCostApplyChangeBo.java

@ -0,0 +1,19 @@
package com.qs.serve.modules.tbs.entity.bo;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author YenHex
* @since 2022/12/19
*/
@Data
public class TbsCostApplyChangeBo {
@NotNull
TbsCostApplyBo costApplyBo;
}

21
src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsContractCostSubItem.java

@ -22,11 +22,11 @@ public class TbsContractCostSubItem {
private String writeOffDate;
private String productType;
private String product;
private String accountCode;
private String accountName;
private String costCenterNo;
private String costCenterName;
private BigDecimal applyMoney;
private String activityAccountCode;
private String activityAccountName;
private String activityCostCenterNo;
private String activityCostCenterName;
private BigDecimal money;
}
@ -34,11 +34,17 @@ public class TbsContractCostSubItem {
public static class Payment{
private String payItem;
private String payCondition;
private BigDecimal money;
private BigDecimal applyMoney;
private String payDate;
private String actualPayDate;
private Integer payCompleteState;
private String payCompleteState;
private String payRemark;
private String payCode;// 唯一
private String accountCode;// 拼科目编号
private String accountName;// 拼科目名称
private String costCenterNo;// 拼成本中心编号
private String costCenterName;// 拼成本中心名称
}
@Data
@ -47,6 +53,7 @@ public class TbsContractCostSubItem {
private String deliveryStandard;
private String deliveryDate;
private String agreeRemark;
private String agreeCompleteState;
}

19
src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyPart1Service.java

@ -0,0 +1,19 @@
package com.qs.serve.modules.tbs.service;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
/**
* @author YenHex
* @since 2023/7/27
*/
public interface TbsCostApplyPart1Service {
/**
* 执行异动
* @param costId
* @return 返回新的活动申请ID
*/
TbsCostApply toSetChanged(Long costId);
}

1
src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java

@ -16,6 +16,7 @@ import java.util.List;
*/
public interface TbsCostApplyService extends IService<TbsCostApply> {
/**
* 作废
* @param id

189
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java

@ -0,0 +1,189 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qs.serve.common.config.properties.ProjectProperties;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.bir.service.BirCenterRateService;
import com.qs.serve.modules.bir.service.BirRoiRateService;
import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper;
import com.qs.serve.modules.bms.service.BmsSubjectService;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.sys.service.SysAttachService;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.mapper.*;
import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @author YenHex
* @since 2023/7/27
*/
@Slf4j
@Service
@AllArgsConstructor
public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
private TbsCostApplyService tbsCostApplyService;
private TbsActivityCenterService tbsActivityCenterService;
private TbsActivitySubjectService tbsActivitySubjectService;
private TbsActivityGoodsService tbsActivityGoodsService;
private TbsActivitySlottingFeeService tbsActivitySlottingFeeService;
private TbsActivityPayConditionService activitySlottingConditionService;
private TbsActivityMapper tbsActivityMapper;
private TbsActivityCenterGoodsService tbsActivityCenterGoodsService;
private TbsActivityChannelService tbsActivityChannelService;
private TbsActivityChannelPointService tbsActivityChannelPointService;
private TbsCostContractMapper costContractMapper;
private VtbVerificationMapper verificationMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public TbsCostApply toSetChanged(Long costId) {
String userId = AuthContextUtils.getSysUserId();
TbsCostApply orgCost = tbsCostApplyService.getById(costId);
if(!userId.equals(orgCost.getUserId())){
Assert.throwEx("拒绝访问");
}
if(!orgCost.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
Assert.throwEx("费用申请的状态不支持");
}
//判断是否有核销记录
LambdaQueryWrapper<VtbVerification> vtbLqwCount = new LambdaQueryWrapper<>();
vtbLqwCount.eq(VtbVerification::getCostApplyId,costId);
vtbLqwCount.and(qw->{
qw.eq(VtbVerification::getVerificationState, VtbVerificationState.Commiting.getCode())
.or().eq(VtbVerification::getVerificationState,VtbVerificationState.Finished.getCode());
});
Long count = verificationMapper.selectCount(vtbLqwCount);
if(count>0){
Assert.throwEx("含有核销记录不支持异动");
}
//复制新记录
TbsCostApply costApply = CopierUtil.copy(orgCost,new TbsCostApply());
costApply.setId(null);
costApply.setChargeState(TbsCostApplyState.State_0_unPublish.getCode());
tbsCostApplyService.save(costApply);
final Long newCostApplyId = costApply.getId();
//费用相关复制
QueryWrapper qw_cost_apply = new QueryWrapper();
qw_cost_apply.eq("cost_apply_id",costId);
List<TbsCostContract> contracts = costContractMapper.selectList(qw_cost_apply);
contracts.forEach(con->{
con.setId(null);
con.setCostApplyId(newCostApplyId);
});
//活动相关复制
List<TbsActivity> activityList = tbsActivityMapper.selectList(qw_cost_apply);
this.copyAboutActivityData(newCostApplyId, activityList);
//更变旧记录
orgCost.setChargeState(TbsCostApplyState.State_7_changed.getCode());
orgCost.setCancelFlag(1);
tbsCostApplyService.updateById(orgCost);
return costApply;
}
/**
* 活动相关复制
* @param newCostApplyId
* @param activityList
*/
private void copyAboutActivityData(Long newCostApplyId, List<TbsActivity> activityList) {
for (TbsActivity orgActivity : activityList) {
//原ActivityID
Long orgActivityId = orgActivity.getId();
//重新保存
orgActivity.setId(null);
tbsActivityMapper.insert(orgActivity);
final Long newActivityId = orgActivity.getId();
QueryWrapper qw_activity = new QueryWrapper();
qw_activity.eq("activity_id",orgActivityId);
List<TbsActivityGoods> goodsList = tbsActivityGoodsService.list(qw_activity);
goodsList.forEach(obj->{
obj.setId(null);
obj.setCostApplyId(newCostApplyId);
obj.setActivityId(newActivityId);
});
tbsActivityGoodsService.saveBatch(goodsList);
List<TbsActivityCenter> centerList = tbsActivityCenterService.list(qw_activity);
centerList.forEach(obj->{
obj.setId(null);
obj.setCostApplyId(newCostApplyId);
obj.setActivityId(newActivityId);
});
tbsActivityCenterService.saveBatch(centerList);
List<TbsActivitySubject> subjectList = tbsActivitySubjectService.list(qw_activity);
subjectList.forEach(obj->{
obj.setId(null);
obj.setCostApplyId(newCostApplyId);
obj.setActivityId(newActivityId);
});
tbsActivitySubjectService.saveBatch(subjectList);
List<TbsActivityCenterGoods> centerGoodsList = tbsActivityCenterGoodsService.list(qw_activity);
centerGoodsList.forEach(obj->{
obj.setId(null);
obj.setCostApplyId(newCostApplyId);
obj.setActivityId(newActivityId);
});
tbsActivityCenterGoodsService.saveBatch(centerGoodsList);
List<TbsActivityChannel> channelList = tbsActivityChannelService.list(qw_activity);
channelList.forEach(obj->{
obj.setId(null);
obj.setCostApplyId(newCostApplyId);
obj.setActivityId(newActivityId);
});
tbsActivityChannelService.saveBatch(channelList);
List<TbsActivityChannelPoint> channelPointList = tbsActivityChannelPointService.list(qw_activity);
channelPointList.forEach(obj->{
obj.setId(null);
obj.setCostApplyId(newCostApplyId);
obj.setActivityId(newActivityId);
});
tbsActivityChannelPointService.saveBatch(channelPointList);
List<TbsActivityPayCondition> payConditionList = activitySlottingConditionService.list(qw_activity);
payConditionList.forEach(obj->{
obj.setId(null);
obj.setCostApplyId(newCostApplyId);
obj.setActivityId(newActivityId);
});
activitySlottingConditionService.saveBatch(payConditionList);
List<TbsActivitySlottingFee> slottingFeeList = tbsActivitySlottingFeeService.list(qw_activity);
slottingFeeList.forEach(obj->{
obj.setId(null);
obj.setCostApplyId(newCostApplyId);
obj.setActivityId(newActivityId);
});
tbsActivitySlottingFeeService.saveBatch(slottingFeeList);
}
}
}

37
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -1,6 +1,7 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.config.properties.ProjectProperties;
@ -93,6 +94,8 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
private TbsActivityPayConditionMapper tbsActivityPayConditionMapper;
private TbsActivityMapper tbsActivityMapper;
private TbsActivityCenterGoodsMapper tbsActivityCenterGoodsMapper;
private TbsActivityChannelMapper activityChannelMapper;
private TbsActivityChannelPointMapper activityChannelPointMapper;
private ProjectProperties projectProperties;
private BirRoiRateService birRoiRateService;
private TbsCostPercentMapper tbsCostPercentMapper;
@ -104,6 +107,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
private BirCenterRateService centerRateService;
@Override
public void removeCostById(Long id) {
TbsCostApply costApply = this.getById(id);
@ -293,8 +297,8 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
data.put("applySubject",tbsCostApply.getChargeTheme());
data.put("supplierCode",tbsCostApply.getSupplierCode());
data.put("supplierName",tbsCostApply.getSupplierName());
data.put("totalSalesMoney",tbsCostApply.getTotalActivityAmount());
data.put("totalExpenseRate",tbsCostApply.getTotalActivityPreNotAmount());
data.put("totalSalesMoney",tbsCostApply.getTotalActivityPreAmount());
data.put("totalExpenseRate",tbsCostApply.getTotalActivityAmount().divide(tbsCostApply.getTotalActivityPreAmount(),2,RoundingMode.DOWN));
data.put("remark",tbsCostApply.getRemark());
LambdaQueryWrapper<TbsCostContract> lqw = new LambdaQueryWrapper<>();
@ -350,14 +354,20 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
dataActivity.setWriteOffDate(currActivity.getPreCheckDate()==null?null:currActivity.getPreCheckDate().toString());
dataActivity.setProductType(centerGoods.getTargetType());
dataActivity.setProduct(centerGoods.getTargetName());
dataActivity.setAccountCode(centerGoods.getSubjectCode());
dataActivity.setAccountName(centerGoods.getSubjectName());
dataActivity.setCostCenterNo(centerGoods.getCenterType());
dataActivity.setCostCenterName(centerGoods.getCenterName());
dataActivity.setApplyMoney(centerGoods.getCenterGoodsAmount());
dataActivity.setActivityAccountCode(centerGoods.getSubjectCode());
dataActivity.setActivityAccountName(centerGoods.getSubjectName());
dataActivity.setActivityCostCenterNo(centerGoods.getCenterCode());
dataActivity.setActivityCostCenterName(centerGoods.getCenterName()+"("+centerGoods.getCenterType()+")");
dataActivity.setMoney(centerGoods.getCenterGoodsAmount());
subList.add(dataActivity);
}
//活动的科目和成本中心
List<TbsActivityCenter> tbsActivityCenters = tbsActivityCenterService.listByCostApplyId(Long.parseLong(id));
String concatCenterCodes = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterCode).collect(Collectors.joining(","));
String concatCenterNames = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterName).collect(Collectors.joining(","));
List<TbsActivitySubject> tbsActivitySubjects = tbsActivitySubjectService.listByCostApplyId(Long.parseLong(id));
String concatSubjectCodes = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectCode).collect(Collectors.joining(","));
String concatSubjectNames = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectName).collect(Collectors.joining(","));
// 付款条件
for (TbsActivityPayCondition payCondition : payConditions) {
TbsActivity currActivity = null;
@ -370,11 +380,17 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
TbsContractCostSubItem.Payment subPayment = new TbsContractCostSubItem.Payment();
subPayment.setPayItem(payCondition.getTitle());
subPayment.setPayCondition(payCondition.getConditionMsg());
subPayment.setMoney(currActivity.getTotalAmount());
subPayment.setApplyMoney(currActivity.getTotalAmount());
subPayment.setPayDate(payCondition.getPaymentDate()!=null?payCondition.getPaymentDate().toString():null);
subPayment.setActualPayDate(null);
subPayment.setPayCompleteState(payCondition.getPreNotifyStatus());
String stateMsg = payCondition.getFinishedFlag().equals(1)?"已完成":"未处理";
subPayment.setPayCompleteState(stateMsg);
subPayment.setPayRemark(payCondition.getRemark());
subPayment.setPayCode(payCondition.getCode());
subPayment.setAccountCode(concatSubjectCodes);
subPayment.setAccountName(concatSubjectNames);
subPayment.setCostCenterNo(concatCenterCodes);
subPayment.setCostCenterName(concatCenterNames);
subList.add(subPayment);
}
@ -388,6 +404,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
toDoItem.setDeliveryStandard(costTodo.getPayMsg());
toDoItem.setDeliveryDate(costTodo.getPrePayDate()==null?null : costTodo.getPrePayDate().toString());
toDoItem.setAgreeRemark(costTodo.getRemark());
toDoItem.setAgreeCompleteState(costTodo.getFinishedFlag().equals(1)?"已完成":"未完成");
subList.add(toDoItem);
}
//关联

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

@ -148,6 +148,7 @@ public class VtbVerification implements Serializable {
@TableField(condition = SqlCondition.LIKE)
private String userName;
@TableField(exist = false)
private List<?> attachList;
@ -172,5 +173,6 @@ public class VtbVerification implements Serializable {
@TableField(exist = false)
private Object costApplyInfo;
}

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

@ -111,6 +111,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
@Transactional(rollbackFor = Exception.class)
public void removeCheck(Long id) {
VtbVerification verification = this.getById(id);
if(verification.getVerificationState().equals(VtbVerificationState.Cancel.getCode())){
Assert.throwEx("已作废,请勿重复提交");
}
if (!verification.getVerificationState().equals(VtbVerificationState.Finished.getCode())){
Assert.throwEx("当前核销不可作废");
}
@ -119,10 +122,13 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
Assert.throwEx("当前活动已释放不可作废");
}
boolean canCancel = activity.getActivityState().equals(TbsActivityState.STATE_0_Todo)||
activity.getActivityState().equals(TbsActivityState.STATE_1_Finished);
activity.getActivityState().equals(TbsActivityState.STATE_1_Finished)||
activity.getActivityState().equals(TbsActivityState.STATE_1_Baning);
if(!canCancel){
Assert.throwEx("当前活动状态不可作废");
}
verification.setVerificationState(VtbVerificationState.Cancel.getCode());
this.updateById(verification);
//判断费用申请类型
TbsCostApply costApply = costApplyService.getById(verification.getCostApplyId());
if(costApply.getContractFlag().equals(1)){

Loading…
Cancel
Save