|
@@ -105,13 +105,13 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
|
|
|
if (income.getIncomeType() == null){
|
|
|
throw new ServiceException("请选择收入类别");
|
|
|
}
|
|
|
- if (income.getPredictSignDate() == null){
|
|
|
- throw new ServiceException("请选择预计签单时间");
|
|
|
+ if (income.getIncomeType() == 2 && income.getPredictSignDate() == null){
|
|
|
+ throw new ServiceException("增量项目请选择预计签单时间");
|
|
|
}
|
|
|
- if (income.getPredictContractMoney() == null){
|
|
|
+ if (income.getIncomeType() == 2 && income.getPredictContractMoney() == null){
|
|
|
throw new ServiceException("请输入预计新签合同额");
|
|
|
}
|
|
|
- if (income.getPredictAnnualReturned() == null){
|
|
|
+ if (income.getIncomeType() == 2 && income.getPredictAnnualReturned() == null){
|
|
|
throw new ServiceException("请输入预计本年度回款额");
|
|
|
}
|
|
|
}
|
|
@@ -205,8 +205,13 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
|
|
|
List<AnnualBudgetVO2.IncomeDetail> incomeDetails = new ArrayList<>();
|
|
|
List<AnnualBudgetVO2.disburseDetail> disburseDetails = new ArrayList<>();
|
|
|
List<BigDecimal> bigDecimals = new ArrayList<>();
|
|
|
- //获取预算收入集合
|
|
|
+ //获取当前年度预算
|
|
|
+ AnnualBudget annualBudget = this.getById(id);
|
|
|
+ int y = Integer.parseInt(annualBudget.getName().substring(0,4));
|
|
|
+ //获取增量预算收入集合
|
|
|
List<AnnualBudgetIncomeVO> incomeList = baseMapper.getReturnedByAnnualBudgetId(id);
|
|
|
+ //获取存量预算集合,根据存量预算的项目id,获取当年所有项目的回款
|
|
|
+ List<ContractReturnedInfoVO2> returnedInfos = baseMapper.getAllShouldReturnedMoney(id, y);
|
|
|
//获取预算支出集合
|
|
|
List<AnnualBudgetDisburseVO> disburseList = baseMapper.getDisburseByAnnualBudgetId(id);
|
|
|
//分别计算12个月
|
|
@@ -215,6 +220,7 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
|
|
|
AnnualBudgetVO2.IncomeDetail incomeDetail = new AnnualBudgetVO2.IncomeDetail();
|
|
|
BigDecimal incomeTotal = new BigDecimal("0");
|
|
|
List<AnnualBudgetIncomeVO> list1 = new ArrayList<>();
|
|
|
+ //增量项目收入
|
|
|
if (incomeList != null && incomeList.size() >0){
|
|
|
for (AnnualBudgetIncomeVO vo : incomeList) {
|
|
|
if (vo.getReturnTime().getMonthValue() == i) {
|
|
@@ -226,7 +232,27 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //移除集中和已经通过的月
|
|
|
+ //存量项目收入
|
|
|
+ if (returnedInfos != null && returnedInfos.size() > 0){
|
|
|
+ for (ContractReturnedInfoVO2 info : returnedInfos) {
|
|
|
+ if (info.getShouldReturnedTime().getMonthValue() == i){
|
|
|
+ if (info.getShouldReturnedMoney() == null){
|
|
|
+ info.setShouldReturnedMoney(new BigDecimal(0));
|
|
|
+ }
|
|
|
+ incomeTotal = incomeTotal.add(info.getShouldReturnedMoney());
|
|
|
+ AnnualBudgetIncomeVO vo = new AnnualBudgetIncomeVO();
|
|
|
+ //设置详情预览
|
|
|
+ vo.setProjectName(info.getProjectName());
|
|
|
+ vo.setIncomeTypeValue(info.getIncomeTypeValue());
|
|
|
+ vo.setProjectTypeValue(info.getProjectTypeValue());
|
|
|
+ vo.setContractTypeValue(info.getContractTypeValue());
|
|
|
+ vo.setReturnTime(info.getShouldReturnedTime());
|
|
|
+ vo.setReturnMoney(info.getShouldReturnedMoney());
|
|
|
+ list1.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
incomeDetail.setIncome(incomeTotal);
|
|
|
incomeDetail.setIncomeList(list1);
|
|
|
incomeDetails.add(incomeDetail);
|
|
@@ -1817,7 +1843,8 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
|
|
|
/**
|
|
|
* 统计收入,1合同收入2计划回款
|
|
|
*/
|
|
|
- public static Map<String,BigDecimal> statisticIncome(AnnualBudgetDTO dto){
|
|
|
+ public Map<String,BigDecimal> statisticIncome(AnnualBudgetDTO dto){
|
|
|
+ int y = Integer.parseInt(dto.getName().substring(0, 4));
|
|
|
List<AnnualBudgetIncome> incomeList = dto.getIncomeList();
|
|
|
BigDecimal contractTotal = new BigDecimal("0");
|
|
|
BigDecimal planReturnedTotal = new BigDecimal("0");
|
|
@@ -1828,10 +1855,21 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
|
|
|
if (income.getPredictContractMoney() != null) {
|
|
|
contractTotal = contractTotal.add(income.getPredictContractMoney());
|
|
|
}
|
|
|
- //计划回款总和
|
|
|
- if (income.getPredictAnnualReturned() != null){
|
|
|
- planReturnedTotal = planReturnedTotal.add(income.getPredictAnnualReturned());
|
|
|
+ //年度合同指标,
|
|
|
+ if (income.getIncomeType() == 1){
|
|
|
+ //存量项目去查找当年合同应回款
|
|
|
+ BigDecimal decimal = returnedInfoService.getProjectShouldReturnedByYear(income.getProjectId(), y);
|
|
|
+ planReturnedTotal = planReturnedTotal.add(decimal);
|
|
|
+ }else if (income.getIncomeType() == 2){
|
|
|
+ //增量项目直接统计
|
|
|
+ //计划回款总和
|
|
|
+ if (income.getPredictAnnualReturned() != null){
|
|
|
+ planReturnedTotal = planReturnedTotal.add(income.getPredictAnnualReturned());
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ throw new ServiceException("收入类别错误");
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
Map<String,BigDecimal> map = new HashMap<>();
|