15 changed files with 388 additions and 13 deletions
@ -0,0 +1,224 @@ |
|||||
|
package com.qs.serve.modules.tzc.controller; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.qs.serve.common.model.annotation.LimitSubmit; |
||||
|
import com.qs.serve.common.model.annotation.SysLog; |
||||
|
import com.qs.serve.common.model.consts.BudgetLogRollbackFlag; |
||||
|
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.BudgetLogOptFlag; |
||||
|
import com.qs.serve.common.model.enums.SystemModule; |
||||
|
import com.qs.serve.common.util.AuthContextUtils; |
||||
|
import com.qs.serve.common.util.PageUtil; |
||||
|
import com.qs.serve.common.util.StringUtils; |
||||
|
import com.qs.serve.modules.bms.entity.BmsRegion2; |
||||
|
import com.qs.serve.modules.bms.service.BmsRegion2Service; |
||||
|
import com.qs.serve.modules.seeyon.entity.CtpAffairQo; |
||||
|
import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam; |
||||
|
import com.qs.serve.modules.sys.entity.SysTableTemp; |
||||
|
import com.qs.serve.modules.sys.entity.SysUser; |
||||
|
import com.qs.serve.modules.sys.mapper.SysTableTempMapper; |
||||
|
import com.qs.serve.modules.sys.service.SysPostUserService; |
||||
|
import com.qs.serve.modules.sys.service.SysUserService; |
||||
|
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsBudget; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsBudgetCostItemPolicy; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsBudgetLog; |
||||
|
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; |
||||
|
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; |
||||
|
import com.qs.serve.modules.tbs.service.TbsBudgetCostItemPolicyService; |
||||
|
import com.qs.serve.modules.tbs.service.TbsBudgetLogService; |
||||
|
import com.qs.serve.modules.tzc.common.TzPolicyItemStatus; |
||||
|
import com.qs.serve.modules.tzc.common.TzcPolicyStatus; |
||||
|
import com.qs.serve.modules.tzc.entity.TzcPolicy; |
||||
|
import com.qs.serve.modules.tzc.entity.TzcPolicyItem; |
||||
|
import com.qs.serve.modules.tzc.entity.bo.TzcPolicyBo; |
||||
|
import com.qs.serve.modules.tzc.service.TzcPolicyApplicationService; |
||||
|
import com.qs.serve.modules.tzc.service.TzcPolicyItemService; |
||||
|
import com.qs.serve.modules.tzc.service.TzcPolicyService; |
||||
|
import com.qs.serve.modules.tzc.service.impl.TzcPolicyOperationServiceImpl; |
||||
|
import com.qs.serve.modules.vtb.entity.VtbVerification; |
||||
|
import com.qs.serve.modules.vtb.service.VtbVerificationService; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.security.access.prepost.PreAuthorize; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import javax.validation.Valid; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
/** |
||||
|
* 政策 政策 |
||||
|
* @author YenHex |
||||
|
* @since 2023-02-20 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@AllArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("tzc/policyTest") |
||||
|
public class TzcPolicyTestController { |
||||
|
|
||||
|
private TzcPolicyService tzcPolicyService; |
||||
|
private TzcPolicyItemService tzcPolicyItemService; |
||||
|
private TzcPolicyApplicationService policyApplicationService; |
||||
|
private TzcPolicyOperationServiceImpl tzcPolicyOperationService; |
||||
|
private SysPostUserService postUserService; |
||||
|
private VtbVerificationService verificationService; |
||||
|
private TbsBudgetLogService budgetLogService; |
||||
|
private BmsRegion2Service bmsRegion2Service; |
||||
|
private TbsBudgetCostItemPolicyService tbsBudgetCostItemPolicyService; |
||||
|
private SysUserService sysUserService; |
||||
|
private SysTableTempMapper sysTableTempMapper; |
||||
|
private TzcPolicyApplicationService tzcPolicyApplicationService; |
||||
|
|
||||
|
|
||||
|
@GetMapping("/testSyncPolicy") |
||||
|
public R<?> syncPolicy(Long policyId){ |
||||
|
tzcPolicyApplicationService.syncPolicy(policyId); |
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
@GetMapping("/rebulidAllPolicy") |
||||
|
public R<?> rebulidAllPolicy(){ |
||||
|
Long[] ids = new Long[]{ |
||||
|
685L, |
||||
|
771L, |
||||
|
995L |
||||
|
}; |
||||
|
for (Long id : ids) { |
||||
|
rebuildPolicy(id); |
||||
|
} |
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
public R<?> rebuildPolicy(Long policyId){ |
||||
|
|
||||
|
// TzcPolicy tzcPolicy = tzcPolicyService.getById(policyId);
|
||||
|
//Integer tzcPolicyStatus = tzcPolicy.getPolicyStatus();
|
||||
|
//SysUser sysUser = sysUserService.getById(tzcPolicy.getCreateBy());
|
||||
|
|
||||
|
SysTableTemp sysTableTemp = new SysTableTemp(); |
||||
|
sysTableTemp.setTableName("policyId"); |
||||
|
sysTableTemp.setTableId(""+policyId); |
||||
|
sysTableTemp.setOptionTitle("PreRebuildPolicy"); |
||||
|
TbsBudgetCostResult result = policyApplicationService.buildBudgetCostResult(policyId,false,false); |
||||
|
if(result.getBudgetUnMatchList()!=null&&result.getBudgetUnMatchList().size()>0){ |
||||
|
sysTableTemp.setResultMsg("政策匹配预算失败"); |
||||
|
sysTableTempMapper.insert(sysTableTemp); |
||||
|
return R.error("政策匹配预算失败"); |
||||
|
} |
||||
|
LambdaQueryWrapper<TbsBudgetCostItemPolicy> itemPolicyLqw = new LambdaQueryWrapper<>(); |
||||
|
itemPolicyLqw.eq(TbsBudgetCostItemPolicy::getPolicyId,policyId); |
||||
|
List<TbsBudgetCostItemPolicy> orgBudgetItem = tbsBudgetCostItemPolicyService.list(itemPolicyLqw); |
||||
|
|
||||
|
List<TbsBudgetCostItemPolicy> allBudgetItem = result.getPolicyBudgetMatchList(); |
||||
|
|
||||
|
boolean isMatchAll = true; |
||||
|
for (TbsBudgetCostItemPolicy item1 : allBudgetItem) { |
||||
|
boolean isMatch = false; |
||||
|
for (TbsBudgetCostItemPolicy item2 : orgBudgetItem) { |
||||
|
if(item1.getScheduleItemBudgetId().equals(item2.getScheduleItemBudgetId())&&item1.getPolicyItemId().equals(item2.getPolicyItemId())){ |
||||
|
isMatch = true; |
||||
|
} |
||||
|
} |
||||
|
if(!isMatch){ |
||||
|
isMatchAll = false; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if(isMatchAll){ |
||||
|
sysTableTemp.setResultMsg("正常"); |
||||
|
sysTableTempMapper.insert(sysTableTemp); |
||||
|
return R.ok("正常"); |
||||
|
}else { |
||||
|
sysTableTemp.setResultMsg("预算占用错误"); |
||||
|
sysTableTempMapper.insert(sysTableTemp); |
||||
|
return R.ok("预算占用错误"); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
// tbsBudgetCostItemPolicyService.saveBatch(allBudgetItem);
|
||||
|
// //保存预算使用日志
|
||||
|
// List<TbsBudgetLog> budgetLogList = saveBudgetLog(result, sysUser, tzcPolicy, result.getPolicyBudgetMatchList(),result.getPolicyItemList());
|
||||
|
// if(tzcPolicyStatus.equals(TzcPolicyStatus.Status_0_UnCommit)){
|
||||
|
// budgetLogService.saveBatch(budgetLogList);
|
||||
|
// }else {
|
||||
|
// //排除历史记录
|
||||
|
// LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>();
|
||||
|
// logLqw.eq(TbsBudgetLog::getPolicyId,policyId);
|
||||
|
// logLqw.eq(TbsBudgetLog::getRollbackFlag, BudgetLogRollbackFlag.State_1);
|
||||
|
// List<TbsBudgetLog> oldLogList = budgetLogService.list(logLqw);
|
||||
|
// List<TbsBudgetLog> oldLogList4Upd = oldLogList.stream().map(a->{
|
||||
|
// TbsBudgetLog budgetLog = new TbsBudgetLog();
|
||||
|
// budgetLog.setId(a.getId());
|
||||
|
// budgetLog.setRollbackFlag(BudgetLogRollbackFlag.State_2);
|
||||
|
// return budgetLog;
|
||||
|
// }).collect(Collectors.toList());
|
||||
|
// budgetLogService.updateBatchById(oldLogList4Upd);
|
||||
|
// for (TbsBudgetLog budgetLog : oldLogList) {
|
||||
|
// budgetLog.setCreateBy(null);
|
||||
|
// budgetLog.setCreateTime(null);
|
||||
|
// budgetLog.setUpdateBy(null);
|
||||
|
// budgetLog.setUpdateTime(null);
|
||||
|
// budgetLog.setId(null);
|
||||
|
// BudgetLogOptFlag optFlag = BudgetLogOptFlag.State_12;
|
||||
|
// budgetLog.setAmount(TbsBudgetLogBuildUtil.buildAmount(budgetLog.getAmount(),optFlag));
|
||||
|
// budgetLog.setOptType(optFlag.getCode());
|
||||
|
// }
|
||||
|
// budgetLogService.saveBatch(oldLogList);
|
||||
|
// BudgetLogOptFlag optFlag = BudgetLogOptFlag.State_13;
|
||||
|
// budgetLogList.forEach(a->{
|
||||
|
// a.setOptType(optFlag.getCode());
|
||||
|
// a.setAmount(TbsBudgetLogBuildUtil.buildAmount(a.getAmount(),optFlag));
|
||||
|
// });
|
||||
|
// budgetLogService.saveBatch(budgetLogList);
|
||||
|
// }
|
||||
|
//return R.ok();
|
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 保存预算使用日志 |
||||
|
* @param result |
||||
|
* @param sysUser |
||||
|
* @param tzcPolicy |
||||
|
* @param allBudgetItem |
||||
|
*/ |
||||
|
private List<TbsBudgetLog> saveBudgetLog(TbsBudgetCostResult result, SysUser sysUser, TzcPolicy tzcPolicy, List<TbsBudgetCostItemPolicy> allBudgetItem, List<TzcPolicyItem> policyItemList) { |
||||
|
List<TbsBudgetLog> budgetLogList = new ArrayList<>(); |
||||
|
List<TbsBudget> budgetList = result.getBudgetList(); |
||||
|
for (TbsBudgetCostItemPolicy item : allBudgetItem) { |
||||
|
//排除不匹配预算的项
|
||||
|
if(item.getBudgetId().equals(0L)){ |
||||
|
continue; |
||||
|
} |
||||
|
TbsBudget budget = null; |
||||
|
for (TbsBudget tbsBudget : budgetList) { |
||||
|
if(item.getBudgetId().equals(tbsBudget.getId())){ |
||||
|
budget = tbsBudget; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
if(budget==null){ |
||||
|
continue; |
||||
|
} |
||||
|
TzcPolicyItem currPolicyItem = null; |
||||
|
for (TzcPolicyItem policyItem : policyItemList) { |
||||
|
if(item.getPolicyItemId().equals(policyItem.getId())){ |
||||
|
currPolicyItem = policyItem; |
||||
|
} |
||||
|
} |
||||
|
TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_11,sysUser, tzcPolicy, item, budget,item.getPolicyItemAmount().negate(),currPolicyItem); |
||||
|
budgetLogList.add(budgetLog); |
||||
|
} |
||||
|
return budgetLogList; |
||||
|
} |
||||
|
} |
||||
|
|
Loading…
Reference in new issue