|
@@ -1069,8 +1069,426 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public List<BudgetAndPracticalByDeptVO> budgetAndPracticalByDept(String year) {
|
|
public List<BudgetAndPracticalByDeptVO> budgetAndPracticalByDept(String year) {
|
|
- //
|
|
|
|
- return null;
|
|
|
|
|
|
+ int y = Integer.parseInt(year.substring(0, 4));
|
|
|
|
+ //结果集
|
|
|
|
+ List<BudgetAndPracticalByDeptVO> list = new ArrayList<>();
|
|
|
|
+ List<String> months = Arrays.asList("一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月");
|
|
|
|
+ //获取当年所有已经选择时间的固定计划
|
|
|
|
+ List<ProjectCostBudget> allPlan = budgetService.getAllPlanByYear(y);
|
|
|
|
+ //如果当年没有计划,则把所有设置为0
|
|
|
|
+ if (allPlan != null && allPlan.size() > 0){
|
|
|
|
+ //根据costType分组
|
|
|
|
+ Map<Integer, List<ProjectCostBudget>> allPlanMap = allPlan.parallelStream()
|
|
|
|
+ .collect(Collectors.groupingBy(ProjectCostBudget::getCostType));
|
|
|
|
+ //获取当年所有已经完成的固定计划
|
|
|
|
+ //根据costType分组
|
|
|
|
+ List<ProjectCostBudget> allFinishedPlan = budgetService.getAllFinishedPlanByYear(y);
|
|
|
|
+ Boolean isFinished = true;
|
|
|
|
+ Map<Integer, List<ProjectCostBudget>> finishedMap = new HashMap<>();
|
|
|
|
+ if (allFinishedPlan != null && allFinishedPlan.size() > 0){
|
|
|
|
+ finishedMap = allFinishedPlan.parallelStream()
|
|
|
|
+ .collect(Collectors.groupingBy(ProjectCostBudget::getCostType));
|
|
|
|
+ }else {
|
|
|
|
+ isFinished = false;
|
|
|
|
+ }
|
|
|
|
+ //维护支出
|
|
|
|
+
|
|
|
|
+ //报销支出
|
|
|
|
+
|
|
|
|
+ BigDecimal c1 = new BigDecimal(0);
|
|
|
|
+ BigDecimal c2 = new BigDecimal(0);
|
|
|
|
+ BigDecimal c3 = new BigDecimal(0);
|
|
|
|
+ BigDecimal c4 = new BigDecimal(0);
|
|
|
|
+ BigDecimal c5 = new BigDecimal(0);
|
|
|
|
+ BigDecimal c6 = new BigDecimal(0);
|
|
|
|
+ BigDecimal c7 = new BigDecimal(0);
|
|
|
|
+ BigDecimal c8 = new BigDecimal(0);
|
|
|
|
+ BigDecimal c9 = new BigDecimal(0);
|
|
|
|
+ BigDecimal c10 = new BigDecimal(0);
|
|
|
|
+ //循环12个月,为每个月设置值
|
|
|
|
+ for (int i = 0; i < 12; i++) {
|
|
|
|
+ BudgetAndPracticalByDeptVO vo = new BudgetAndPracticalByDeptVO();
|
|
|
|
+ //设置月份
|
|
|
|
+ vo.setTime(months.get(i));
|
|
|
|
+ //设置市场部
|
|
|
|
+ List<ProjectCostBudget> b1 = allPlanMap.get(1);
|
|
|
|
+ if (b1 != null && b1.size() > 0){
|
|
|
|
+ BigDecimal big = new BigDecimal(0);
|
|
|
|
+ //循环市场部每一个预算
|
|
|
|
+ for (ProjectCostBudget budget : b1) {
|
|
|
|
+ //如果开始时间或结束时间是当月,则添加预算
|
|
|
|
+ if ((budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPlanEndTime().getMonthValue() == (i+1) && budget.getPlanEndTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getPlanIsTwoMonth() == 0){
|
|
|
|
+ big = big.add(budget.getPlanStaffCost());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y){
|
|
|
|
+ big = big.add(budget.getPlanStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big = big.add(budget.getPlanEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setBudget1(big);
|
|
|
|
+ c1 = c1.add(big);
|
|
|
|
+ }else {
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ }
|
|
|
|
+ if (isFinished){
|
|
|
|
+ List<ProjectCostBudget> d1 = finishedMap.get(1);
|
|
|
|
+ if (d1 != null && d1.size() > 0){
|
|
|
|
+ BigDecimal big = new BigDecimal(0);
|
|
|
|
+ //循环市场部每一个支出
|
|
|
|
+ for (ProjectCostBudget budget : d1) {
|
|
|
|
+ //如果实际开始时间或实际结束时间是当月,则添加支出
|
|
|
|
+ if ((budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPracticalFinishTime().getMonthValue() == (i+1) && budget.getPracticalFinishTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getIsTwoMonth() == 0){
|
|
|
|
+ big = big.add(budget.getActualTotalMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y){
|
|
|
|
+ big = big.add(budget.getPracticalStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big = big.add(budget.getPracticalEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setPractical1(big);
|
|
|
|
+ c2 = c2.add(big);
|
|
|
|
+ }else {
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //设置研发部
|
|
|
|
+ List<ProjectCostBudget> b2 = allPlanMap.get(2);
|
|
|
|
+ if (b2 != null && b2.size() > 0){
|
|
|
|
+ BigDecimal big = new BigDecimal(0);
|
|
|
|
+ //循环研发部每一个预算
|
|
|
|
+ for (ProjectCostBudget budget : b2) {
|
|
|
|
+ //如果开始时间或结束时间是当月,则添加预算
|
|
|
|
+ if ((budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPlanEndTime().getMonthValue() == (i+1) && budget.getPlanEndTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getPlanIsTwoMonth() == 0){
|
|
|
|
+ big = big.add(budget.getPlanStaffCost());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y){
|
|
|
|
+ big = big.add(budget.getPlanStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big = big.add(budget.getPlanEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setBudget2(big);
|
|
|
|
+ c3 = c3.add(big);
|
|
|
|
+ }else {
|
|
|
|
+ vo.setBudget2(new BigDecimal(0));
|
|
|
|
+ }
|
|
|
|
+ if (isFinished){
|
|
|
|
+ List<ProjectCostBudget> d2 = finishedMap.get(2);
|
|
|
|
+ if (d2 != null && d2.size() > 0){
|
|
|
|
+ BigDecimal big = new BigDecimal(0);
|
|
|
|
+ //循环市场部每一个支出
|
|
|
|
+ for (ProjectCostBudget budget : d2) {
|
|
|
|
+ //如果实际开始时间或实际结束时间是当月,则添加支出
|
|
|
|
+ if ((budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPracticalFinishTime().getMonthValue() == (i+1) && budget.getPracticalFinishTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getIsTwoMonth() == 0){
|
|
|
|
+ big = big.add(budget.getActualTotalMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y){
|
|
|
|
+ big = big.add(budget.getPracticalStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big = big.add(budget.getPracticalEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setPractical2(big);
|
|
|
|
+ c4 = c4.add(big);
|
|
|
|
+ }else {
|
|
|
|
+ vo.setPractical2(new BigDecimal(0));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //设置实施部
|
|
|
|
+ List<ProjectCostBudget> b3 = allPlanMap.get(3);
|
|
|
|
+ if (b3 != null && b3.size() > 0){
|
|
|
|
+ BigDecimal big = new BigDecimal(0);
|
|
|
|
+ //循环研发部每一个预算
|
|
|
|
+ for (ProjectCostBudget budget : b3) {
|
|
|
|
+ //如果开始时间或结束时间是当月,则添加预算
|
|
|
|
+ if ((budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPlanEndTime().getMonthValue() == (i+1) && budget.getPlanEndTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getPlanIsTwoMonth() == 0){
|
|
|
|
+ big = big.add(budget.getPlanStaffCost());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y){
|
|
|
|
+ big = big.add(budget.getPlanStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big = big.add(budget.getPlanEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setBudget3(big);
|
|
|
|
+ c5 = c5.add(big);
|
|
|
|
+ }else {
|
|
|
|
+ vo.setBudget3(new BigDecimal(0));
|
|
|
|
+ }
|
|
|
|
+ if (isFinished){
|
|
|
|
+ List<ProjectCostBudget> d3 = finishedMap.get(3);
|
|
|
|
+ if (d3 != null && d3.size() > 0){
|
|
|
|
+ BigDecimal big = new BigDecimal(0);
|
|
|
|
+ //循环市场部每一个支出
|
|
|
|
+ for (ProjectCostBudget budget : d3) {
|
|
|
|
+ //如果实际开始时间或实际结束时间是当月,则添加支出
|
|
|
|
+ if ((budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPracticalFinishTime().getMonthValue() == (i+1) && budget.getPracticalFinishTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getIsTwoMonth() == 0){
|
|
|
|
+ big = big.add(budget.getActualTotalMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y){
|
|
|
|
+ big = big.add(budget.getPracticalStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big = big.add(budget.getPracticalEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setPractical3(big);
|
|
|
|
+ c6 = c6.add(big);
|
|
|
|
+ }else {
|
|
|
|
+ vo.setPractical3(new BigDecimal(0));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //设置维护部
|
|
|
|
+ List<ProjectCostBudget> b4 = allPlanMap.get(4);
|
|
|
|
+ if (b4 != null && b4.size() > 0){
|
|
|
|
+ BigDecimal big = new BigDecimal(0);
|
|
|
|
+ //循环研发部每一个预算
|
|
|
|
+ for (ProjectCostBudget budget : b4) {
|
|
|
|
+ //如果开始时间或结束时间是当月,则添加预算
|
|
|
|
+ if ((budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPlanEndTime().getMonthValue() == (i+1) && budget.getPlanEndTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getPlanIsTwoMonth() == 0){
|
|
|
|
+ big = big.add(budget.getPlanStaffCost());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y){
|
|
|
|
+ big = big.add(budget.getPlanStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big = big.add(budget.getPlanEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setBudget4(big);
|
|
|
|
+ c7 = c7.add(big);
|
|
|
|
+ }else {
|
|
|
|
+ vo.setBudget4(new BigDecimal(0));
|
|
|
|
+ }
|
|
|
|
+ if (isFinished){
|
|
|
|
+ List<ProjectCostBudget> d4 = finishedMap.get(4);
|
|
|
|
+ if (d4 != null && d4.size() > 0){
|
|
|
|
+ BigDecimal big = new BigDecimal(0);
|
|
|
|
+ //循环市场部每一个支出
|
|
|
|
+ for (ProjectCostBudget budget : d4) {
|
|
|
|
+ //如果实际开始时间或实际结束时间是当月,则添加支出
|
|
|
|
+ if ((budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPracticalFinishTime().getMonthValue() == (i+1) && budget.getPracticalFinishTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getIsTwoMonth() == 0){
|
|
|
|
+ big = big.add(budget.getActualTotalMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y){
|
|
|
|
+ big = big.add(budget.getPracticalStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big = big.add(budget.getPracticalEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setPractical4(big);
|
|
|
|
+ c8 = c8.add(big);
|
|
|
|
+ }else {
|
|
|
|
+ vo.setPractical4(new BigDecimal(0));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //设置管理中心 = 管理支出+外包劳务
|
|
|
|
+ BigDecimal big1 = new BigDecimal(0);
|
|
|
|
+ BigDecimal big2 = new BigDecimal(0);
|
|
|
|
+ List<ProjectCostBudget> b5 = allPlanMap.get(5);
|
|
|
|
+ if (b5 != null && b5.size() > 0){
|
|
|
|
+ //循环研发部每一个预算
|
|
|
|
+ for (ProjectCostBudget budget : b5) {
|
|
|
|
+ //如果开始时间或结束时间是当月,则添加预算
|
|
|
|
+ if ((budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPlanEndTime().getMonthValue() == (i+1) && budget.getPlanEndTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getPlanIsTwoMonth() == 0){
|
|
|
|
+ big1 = big1.add(budget.getPlanStaffCost());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y){
|
|
|
|
+ big1 = big1.add(budget.getPlanStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big1 = big1.add(budget.getPlanEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (isFinished){
|
|
|
|
+ List<ProjectCostBudget> d5 = finishedMap.get(5);
|
|
|
|
+ if (d5 != null && d5.size() > 0){
|
|
|
|
+ //循环市场部每一个支出
|
|
|
|
+ for (ProjectCostBudget budget : d5) {
|
|
|
|
+ //如果实际开始时间或实际结束时间是当月,则添加支出
|
|
|
|
+ if ((budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPracticalFinishTime().getMonthValue() == (i+1) && budget.getPracticalFinishTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getIsTwoMonth() == 0){
|
|
|
|
+ big2 = big2.add(budget.getActualTotalMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y){
|
|
|
|
+ big2 = big2.add(budget.getPracticalStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big2 = big2.add(budget.getPracticalEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ List<ProjectCostBudget> b6 = allPlanMap.get(6);
|
|
|
|
+ if (b6 != null && b6.size() > 0){
|
|
|
|
+ //循环研发部每一个预算
|
|
|
|
+ for (ProjectCostBudget budget : b6) {
|
|
|
|
+ //如果开始时间或结束时间是当月,则添加预算
|
|
|
|
+ if ((budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPlanEndTime().getMonthValue() == (i+1) && budget.getPlanEndTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getPlanIsTwoMonth() == 0){
|
|
|
|
+ big1 = big1.add(budget.getPlanStaffCost());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y){
|
|
|
|
+ big1 = big1.add(budget.getPlanStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big1 = big1.add(budget.getPlanEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (isFinished){
|
|
|
|
+ List<ProjectCostBudget> d6 = finishedMap.get(6);
|
|
|
|
+ if (d6 != null && d6.size() > 0){
|
|
|
|
+ //循环市场部每一个支出
|
|
|
|
+ for (ProjectCostBudget budget : d6) {
|
|
|
|
+ //如果实际开始时间或实际结束时间是当月,则添加支出
|
|
|
|
+ if ((budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y)
|
|
|
|
+ || (budget.getPracticalFinishTime().getMonthValue() == (i+1) && budget.getPracticalFinishTime().getYear() == y)){
|
|
|
|
+ //如果开始时间和结束时间的月相同,则直接用总预算
|
|
|
|
+ if (budget.getIsTwoMonth() == 0){
|
|
|
|
+ big2 = big2.add(budget.getActualTotalMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //如果开始月是当前月,则直接使用开始金额
|
|
|
|
+ if (budget.getRealPlanStartTime().getMonthValue() == (i+1) && budget.getRealPlanStartTime().getYear() == y){
|
|
|
|
+ big2 = big2.add(budget.getPracticalStartMoney());
|
|
|
|
+ }else {
|
|
|
|
+ //结束月是当前月,使用结束金额
|
|
|
|
+ big2 = big2.add(budget.getPracticalEndMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setBudget5(big1);
|
|
|
|
+ c9 = c9.add(big1);
|
|
|
|
+ vo.setPractical5(big2);
|
|
|
|
+ c10 = c10.add(big2);
|
|
|
|
+ list.add(vo);
|
|
|
|
+ }
|
|
|
|
+ //计算总计
|
|
|
|
+ BudgetAndPracticalByDeptVO vo2 = new BudgetAndPracticalByDeptVO();
|
|
|
|
+ vo2.setTime("总计");
|
|
|
|
+ vo2.setBudget1(c1);
|
|
|
|
+ vo2.setPractical1(c2);
|
|
|
|
+ vo2.setBudget2(c3);
|
|
|
|
+ vo2.setPractical2(c4);
|
|
|
|
+ vo2.setBudget3(c5);
|
|
|
|
+ vo2.setPractical3(c6);
|
|
|
|
+ vo2.setBudget4(c7);
|
|
|
|
+ vo2.setPractical4(c8);
|
|
|
|
+ vo2.setBudget5(c9);
|
|
|
|
+ vo2.setPractical5(c10);
|
|
|
|
+ list.add(vo2);
|
|
|
|
+ return list;
|
|
|
|
+ }else {
|
|
|
|
+ for (int i = 0; i < 12; i++) {
|
|
|
|
+ BudgetAndPracticalByDeptVO vo = new BudgetAndPracticalByDeptVO();
|
|
|
|
+ vo.setTime(months.get(i));
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ vo.setPractical1(new BigDecimal(0));
|
|
|
|
+ vo.setPractical1(new BigDecimal(0));
|
|
|
|
+ vo.setPractical1(new BigDecimal(0));
|
|
|
|
+ vo.setPractical1(new BigDecimal(0));
|
|
|
|
+ vo.setPractical1(new BigDecimal(0));
|
|
|
|
+ list.add(vo);
|
|
|
|
+ }
|
|
|
|
+ BudgetAndPracticalByDeptVO vo = new BudgetAndPracticalByDeptVO();
|
|
|
|
+ vo.setTime("总计");
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ vo.setBudget1(new BigDecimal(0));
|
|
|
|
+ vo.setPractical1(new BigDecimal(0));
|
|
|
|
+ vo.setPractical1(new BigDecimal(0));
|
|
|
|
+ vo.setPractical1(new BigDecimal(0));
|
|
|
|
+ vo.setPractical1(new BigDecimal(0));
|
|
|
|
+ vo.setPractical1(new BigDecimal(0));
|
|
|
|
+ list.add(vo);
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|