|
|
@ -53,6 +53,7 @@ import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; |
|
|
|
import com.qs.serve.modules.tzc.entity.TzcPolicyItem; |
|
|
|
import com.qs.serve.modules.tzc.entity.dto.PolicyItemDto; |
|
|
|
import com.qs.serve.modules.tzc.mapper.TzcPolicyItemMapper; |
|
|
|
import com.qs.serve.modules.tzc.mapper.TzcPolicyMapper; |
|
|
|
import com.qs.serve.modules.tzc.service.TzcPolicyApplicationService; |
|
|
|
import com.qs.serve.modules.tzc.service.TzcPolicyGoodsService; |
|
|
|
import com.qs.serve.modules.tzc.service.TzcPolicyItemService; |
|
|
@ -82,6 +83,7 @@ import java.util.stream.Collectors; |
|
|
|
@AllArgsConstructor |
|
|
|
public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationService { |
|
|
|
|
|
|
|
private TzcPolicyMapper tzcPolicyMapper; |
|
|
|
private TzcPolicyService tzcPolicyService; |
|
|
|
private TzcPolicyItemService tzcPolicyItemService; |
|
|
|
private TzcPolicyItemMapper tzcPolicyItemMapper; |
|
|
@ -107,6 +109,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ |
|
|
|
private ProjectApisProperties projectApisProperties; |
|
|
|
private final VtbFundFlowService vtbFundFlowService; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void syncPolicy(Long policyId) { |
|
|
|
LambdaQueryWrapper<TzcPolicyItem> wrapper = new LambdaQueryWrapper<>(); |
|
|
@ -119,9 +122,27 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void releasePolicyItem(Long policyItemId) { |
|
|
|
public void syncExpireRelease() { |
|
|
|
SysUser sysUser = new SysUser(); |
|
|
|
sysUser.setId("0"); |
|
|
|
sysUser.setName("系统执行"); |
|
|
|
sysUser.setCode(""); |
|
|
|
List<Long> ids = tzcPolicyMapper.listExpireItemIds(); |
|
|
|
for (Long id : ids) { |
|
|
|
try { |
|
|
|
releasePolicyItem(id,sysUser); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("释放过期费用失败,itemId:{} 原因:{}",id,e.getMessage()); |
|
|
|
} |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void releasePolicyItem(Long policyItemId, SysUser user) { |
|
|
|
TzcPolicyItem policyItem = tzcPolicyItemService.getById(policyItemId); |
|
|
|
if(!policyItem.getPolicyItemStatus().equals(TzPolicyItemStatus.Status_3_Finished)){ |
|
|
|
if(!policyItem.getPolicyItemStatus().equals(TzPolicyItemStatus.Status_2_SyncSuccess)){ |
|
|
|
Assert.throwEx("政策项的状态不支持"); |
|
|
|
} |
|
|
|
Long policyId = policyItem.getPolicyId(); |
|
|
@ -129,7 +150,11 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ |
|
|
|
if(!policy.getPolicyStatus().equals(TzcPolicyStatus.Status_2_PassSuccess)){ |
|
|
|
Assert.throwEx("政策的状态不支持"); |
|
|
|
} |
|
|
|
//查询已转移金额,金额为正数
|
|
|
|
BigDecimal usedAmt = tzcPolicyItemMapper.sumPolicyItemTranAmt(policyItem.getId()); |
|
|
|
if(policyItem.getUsedAmount().compareTo(usedAmt)!=0){ |
|
|
|
Assert.throwEx("政策的已用金额异常"); |
|
|
|
} |
|
|
|
BigDecimal surplusAmt = policyItem.getDiscountMax().subtract(usedAmt); |
|
|
|
if(surplusAmt.compareTo(BigDecimal.ZERO)>0){ |
|
|
|
LambdaQueryWrapper<TbsBudgetLog> tbsLogLqw = new LambdaQueryWrapper<>(); |
|
|
@ -165,7 +190,13 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ |
|
|
|
budgetLog.setOptType(optFlag.getCode()); |
|
|
|
budgetLogService.save(budgetLog); |
|
|
|
|
|
|
|
policyItem.setUsedAmount(policyItem.getDiscountMax()); |
|
|
|
//policyItem.setUsedAmount(policyItem.getDiscountMax());
|
|
|
|
policyItem.setReleaseAmount(surplusAmt); |
|
|
|
policyItem.setReleaseFlag(1); |
|
|
|
policyItem.setReleaseTime(LocalDateTime.now()); |
|
|
|
policyItem.setReleaseUserId(user.getId()); |
|
|
|
policyItem.setReleaseUserCode(user.getCode()); |
|
|
|
policyItem.setReleaseUserName(user.getName()); |
|
|
|
policyItem.setPolicyItemStatus(TzPolicyItemStatus.Status_3_Finished); |
|
|
|
|
|
|
|
tzcPolicyItemService.updateById(policyItem); |
|
|
@ -175,7 +206,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ |
|
|
|
boolean allFinished = true; |
|
|
|
for (TzcPolicyItem item : listByPolicyId) { |
|
|
|
if(!item.getPolicyItemStatus().equals(TzPolicyItemStatus.Status_3_Finished)){ |
|
|
|
if (item.getDiscountMax().compareTo(item.getUsedAmount())==0){ |
|
|
|
if (item.getDiscountMax().compareTo(item.getUsedAmount())==0||item.getReleaseFlag().equals(1)){ |
|
|
|
item.setPolicyItemStatus(TzPolicyItemStatus.Status_3_Finished); |
|
|
|
tzcPolicyItemService.updateById(item); |
|
|
|
continue; |
|
|
|