|
|
@ -29,6 +29,7 @@ import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.List; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
@ -54,12 +55,16 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service { |
|
|
|
private TbsActivityChannelPointService tbsActivityChannelPointService; |
|
|
|
private TbsCostContractMapper costContractMapper; |
|
|
|
private VtbVerificationMapper verificationMapper; |
|
|
|
private TbsBudgetLogMapper tbsBudgetLogMapper; |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public TbsCostApply toSetChanged(Long costId) { |
|
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
|
|
TbsCostApply orgCost = tbsCostApplyService.getById(costId); |
|
|
|
if(orgCost.getCancelFlag().equals(1)){ |
|
|
|
Assert.throwEx("该记录的费用已异动"); |
|
|
|
} |
|
|
|
// if(orgCost.getChangeSourceId()!=null){
|
|
|
|
// Assert.throwEx("异动单据不可再异动,请取消源单据异动后进行");
|
|
|
|
// }
|
|
|
@ -114,13 +119,49 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service { |
|
|
|
orgCost.setChargeState(TbsCostApplyState.State_7_changed.getCode()); |
|
|
|
orgCost.setCancelFlag(1); |
|
|
|
orgCost.setChangeExtendId(costApply.getId()); |
|
|
|
orgCost.setChangeStateRecord(costApply.getChargeState()); |
|
|
|
orgCost.setChangeActionTime(LocalDateTime.now()); |
|
|
|
tbsCostApplyService.updateById(orgCost); |
|
|
|
return costApply; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void cancelSetChanged(Long costId) { |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void cancelSetChanged(Long costId,boolean checkThrow) { |
|
|
|
//判断是否有核销记录
|
|
|
|
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 extCost = tbsCostApplyService.getById(costId); |
|
|
|
if(checkThrow){ |
|
|
|
if(extCost.getCancelFlag().equals(1)){ |
|
|
|
Assert.throwEx("请选择最新的异动记录"); |
|
|
|
} |
|
|
|
if(extCost.getChangeSourceId()==null){ |
|
|
|
Assert.throwEx("无异动记录"); |
|
|
|
} |
|
|
|
} |
|
|
|
extCost.setCancelFlag(1); |
|
|
|
extCost.setChargeState(TbsCostApplyState.State_8_changed_fail.getCode()); |
|
|
|
extCost.setChangeStateRecord(extCost.getChargeState()); |
|
|
|
tbsCostApplyService.updateById(extCost); |
|
|
|
//恢复原来费用申请的状态
|
|
|
|
TbsCostApply costApply = tbsCostApplyService.getById(extCost.getChangeSourceId()); |
|
|
|
costApply.setChargeState(costApply.getChangeStateRecord()); |
|
|
|
costApply.setChangeActionTime(LocalDateTime.now()); |
|
|
|
costApply.setCancelFlag(0); |
|
|
|
tbsCostApplyService.updateById(costApply); |
|
|
|
//恢复原来的费用占用
|
|
|
|
tbsBudgetLogMapper.updateLogDelFlagByCostApply(extCost.getChangeSourceId(),0); |
|
|
|
//删除当前的异动记录
|
|
|
|
tbsBudgetLogMapper.updateLogDelFlagByCostApply(extCost.getId(),1); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|