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