Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

buzhanyi 2 rokov pred
rodič
commit
d05f6008e8

+ 2 - 2
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseExpertController.java

@@ -67,7 +67,7 @@ public class BaseExpertController extends BaseController {
         baseExpertVo.setCreateTime(new Date());
         baseExpertVo.setUpdated(baseExpertVo.getCreated());
         baseExpertVo.setUpdateTime(baseExpertVo.getCreateTime());
-        if (!ObjectUtils.isEmpty(baseExpertVo.getMajorType())) {
+        if (ObjectUtils.isEmpty(baseExpertVo.getMajorType())) {
             return error("专业类型为空");
         }
         LambdaQueryWrapper<BaseProfessional> lw = new LambdaQueryWrapper();
@@ -101,7 +101,7 @@ public class BaseExpertController extends BaseController {
 
         baseExpert.setUpdated(getUserId().toString());
         baseExpert.setUpdateTime(new Date());
-        if (!ObjectUtils.isEmpty(baseExpert.getMajorType())) {
+        if (ObjectUtils.isEmpty(baseExpert.getMajorType())) {
             return error("专业类型为空");
         }
         LambdaQueryWrapper<BaseProfessional> lw = new LambdaQueryWrapper();

+ 8 - 0
purchase-system/src/main/java/com/ozs/pm/mapper/PmDemandMapper.java

@@ -298,4 +298,12 @@ public interface PmDemandMapper extends BaseMapper<PmDemand> {
      * @return
      */
     List<Map<String, String>> purchaseProjectNumberAnalysisOldYearQuarter(PmDemandReqVo pmDemandReqVo);
+
+    /**
+     * 项目数量分析--月份  去年数据
+     *
+     * @param pmDemandReqVo
+     * @return
+     */
+    List<Map<String, String>> purchaseProjectNumberAnalysisOldYearMonth(PmDemandReqVo pmDemandReqVo);
 }

+ 462 - 4
purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java

@@ -2258,6 +2258,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                     Map<String, String> map1 = new HashMap<>();
                     map1.put("yy", i + "");
                     map1.put("countNum", 0 + "");
+                    map1.put("evaluationSum", 0 + "");
                     mapReturn.add(map1);
                 }
             }
@@ -2462,7 +2463,8 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             // 当前年份月份统计
             // 获取统计数据
             List<Map<String, String>> listMap = pmDemandMapper.purchaseProjectNumberAnalysisMonth(pmDemandReqVo);
-            mapReturn.addAll(listMap);
+            List<Map<String, String>> mapList = new ArrayList<>();
+            mapList.addAll(listMap);
             for (int i = 1; i <= 12; i++) {
                 boolean isYear = false;
                 for (Map<String, String> map : listMap) {
@@ -2474,9 +2476,466 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                     Map<String, String> map1 = new HashMap<>();
                     map1.put("yy", i + "");
                     map1.put("countNum", 0 + "");
-                    mapReturn.add(map1);
+                    map1.put("evaluationSum", 0 + "");
+                    mapList.add(map1);
                 }
             }
+            Map<String, String> map1 = new HashMap<>();
+            Map<String, String> map2 = new HashMap<>();
+            Map<String, String> map3 = new HashMap<>();
+            Map<String, String> map4 = new HashMap<>();
+            Map<String, String> map5 = new HashMap<>();
+            Map<String, String> map6 = new HashMap<>();
+            Map<String, String> map7 = new HashMap<>();
+            Map<String, String> map8 = new HashMap<>();
+            Map<String, String> map9 = new HashMap<>();
+            Map<String, String> map10 = new HashMap<>();
+            Map<String, String> map11 = new HashMap<>();
+            Map<String, String> map12 = new HashMap<>();
+            for (Map<String, String> map : mapList) {
+                String yy = String.valueOf(map.get("yy"));
+                if ("1".equals(yy)) {
+                    map1.putAll(map);
+                } else if ("2".equals(yy)) {
+                    map2.putAll(map);
+                } else if ("3".equals(yy)) {
+                    map3.putAll(map);
+                } else if ("4".equals(yy)) {
+                    map4.putAll(map);
+                } else if ("5".equals(yy)) {
+                    map5.putAll(map);
+                } else if ("6".equals(yy)) {
+                    map6.putAll(map);
+                } else if ("7".equals(yy)) {
+                    map7.putAll(map);
+                } else if ("8".equals(yy)) {
+                    map8.putAll(map);
+                } else if ("9".equals(yy)) {
+                    map9.putAll(map);
+                } else if ("10".equals(yy)) {
+                    map10.putAll(map);
+                } else if ("11".equals(yy)) {
+                    map11.putAll(map);
+                } else if ("12".equals(yy)) {
+                    map12.putAll(map);
+                }
+            }
+            String countNum1 = String.valueOf(map1.get("countNum"));
+            String countNum2 = String.valueOf(map2.get("countNum"));
+            String countNum3 = String.valueOf(map3.get("countNum"));
+            String countNum4 = String.valueOf(map4.get("countNum"));
+            String countNum5 = String.valueOf(map5.get("countNum"));
+            String countNum6 = String.valueOf(map6.get("countNum"));
+            String countNum7 = String.valueOf(map7.get("countNum"));
+            String countNum8 = String.valueOf(map8.get("countNum"));
+            String countNum9 = String.valueOf(map9.get("countNum"));
+            String countNum10 = String.valueOf(map10.get("countNum"));
+            String countNum11 = String.valueOf(map11.get("countNum"));
+            String countNum12 = String.valueOf(map12.get("countNum"));
+
+            String evaluationSum1 = String.valueOf(map1.get("evaluationSum"));
+            String evaluationSum2 = String.valueOf(map2.get("evaluationSum"));
+            String evaluationSum3 = String.valueOf(map3.get("evaluationSum"));
+            String evaluationSum4 = String.valueOf(map4.get("evaluationSum"));
+            String evaluationSum5 = String.valueOf(map5.get("evaluationSum"));
+            String evaluationSum6 = String.valueOf(map6.get("evaluationSum"));
+            String evaluationSum7 = String.valueOf(map7.get("evaluationSum"));
+            String evaluationSum8 = String.valueOf(map8.get("evaluationSum"));
+            String evaluationSum9 = String.valueOf(map9.get("evaluationSum"));
+            String evaluationSum10 = String.valueOf(map10.get("evaluationSum"));
+            String evaluationSum11 = String.valueOf(map11.get("evaluationSum"));
+            String evaluationSum12 = String.valueOf(map12.get("evaluationSum"));
+            // 查询上一年月份数据
+            List<Map<String, String>> listMapOldMonth = pmDemandMapper.purchaseProjectNumberAnalysisOldYearMonth(pmDemandReqVo);
+            List<Map<String, String>> mapListOld = new ArrayList<>();
+            mapListOld.addAll(listMapOldMonth);
+            for (int i = 1; i <= 12; i++) {
+                boolean isYear = false;
+                for (Map<String, String> map : listMapOldMonth) {
+                    if (i == Integer.parseInt(String.valueOf(map.get("yy")))) {
+                        isYear = true;
+                    }
+                }
+                if (!isYear) {
+                    Map<String, String> map111 = new HashMap<>();
+                    map111.put("yy", i + "");
+                    map111.put("countNum", 0 + "");
+                    map111.put("evaluationSum", 0 + "");
+                    mapListOld.add(map111);
+                }
+            }
+            Map<String, String> mapOld1 = new HashMap<>();
+            Map<String, String> mapOld2 = new HashMap<>();
+            Map<String, String> mapOld3 = new HashMap<>();
+            Map<String, String> mapOld4 = new HashMap<>();
+            Map<String, String> mapOld5 = new HashMap<>();
+            Map<String, String> mapOld6 = new HashMap<>();
+            Map<String, String> mapOld7 = new HashMap<>();
+            Map<String, String> mapOld8 = new HashMap<>();
+            Map<String, String> mapOld9 = new HashMap<>();
+            Map<String, String> mapOld10 = new HashMap<>();
+            Map<String, String> mapOld11 = new HashMap<>();
+            Map<String, String> mapOld12 = new HashMap<>();
+            for (Map<String, String> mapOld : mapListOld) {
+                String yy = String.valueOf(mapOld.get("yy"));
+                if ("1".equals(yy)) {
+                    mapOld1.putAll(mapOld);
+                } else if ("2".equals(yy)) {
+                    mapOld2.putAll(mapOld);
+                } else if ("3".equals(yy)) {
+                    mapOld3.putAll(mapOld);
+                } else if ("4".equals(yy)) {
+                    mapOld4.putAll(mapOld);
+                } else if ("5".equals(yy)) {
+                    mapOld5.putAll(mapOld);
+                } else if ("6".equals(yy)) {
+                    mapOld6.putAll(mapOld);
+                } else if ("7".equals(yy)) {
+                    mapOld7.putAll(mapOld);
+                } else if ("8".equals(yy)) {
+                    mapOld8.putAll(mapOld);
+                } else if ("9".equals(yy)) {
+                    mapOld9.putAll(mapOld);
+                } else if ("10".equals(yy)) {
+                    mapOld10.putAll(mapOld);
+                } else if ("11".equals(yy)) {
+                    mapOld11.putAll(mapOld);
+                } else if ("12".equals(yy)) {
+                    mapOld12.putAll(mapOld);
+                }
+            }
+            String countNumOld1 = String.valueOf(mapOld1.get("countNum"));
+            String countNumOld2 = String.valueOf(mapOld2.get("countNum"));
+            String countNumOld3 = String.valueOf(mapOld3.get("countNum"));
+            String countNumOld4 = String.valueOf(mapOld4.get("countNum"));
+            String countNumOld5 = String.valueOf(mapOld5.get("countNum"));
+            String countNumOld6 = String.valueOf(mapOld6.get("countNum"));
+            String countNumOld7 = String.valueOf(mapOld7.get("countNum"));
+            String countNumOld8 = String.valueOf(mapOld8.get("countNum"));
+            String countNumOld9 = String.valueOf(mapOld9.get("countNum"));
+            String countNumOld10 = String.valueOf(mapOld10.get("countNum"));
+            String countNumOld11 = String.valueOf(mapOld11.get("countNum"));
+            String countNumOld12 = String.valueOf(mapOld12.get("countNum"));
+            String evaluationSumOld1 = String.valueOf(mapOld1.get("evaluationSum"));
+            String evaluationSumOld2 = String.valueOf(mapOld2.get("evaluationSum"));
+            String evaluationSumOld3 = String.valueOf(mapOld3.get("evaluationSum"));
+            String evaluationSumOld4 = String.valueOf(mapOld4.get("evaluationSum"));
+            String evaluationSumOld5 = String.valueOf(mapOld5.get("evaluationSum"));
+            String evaluationSumOld6 = String.valueOf(mapOld6.get("evaluationSum"));
+            String evaluationSumOld7 = String.valueOf(mapOld7.get("evaluationSum"));
+            String evaluationSumOld8 = String.valueOf(mapOld8.get("evaluationSum"));
+            String evaluationSumOld9 = String.valueOf(mapOld9.get("evaluationSum"));
+            String evaluationSumOld10 = String.valueOf(mapOld10.get("evaluationSum"));
+            String evaluationSumOld11 = String.valueOf(mapOld11.get("evaluationSum"));
+            String evaluationSumOld12 = String.valueOf(mapOld12.get("evaluationSum"));
+
+            BigDecimal countNum111 = new BigDecimal(countNum1);
+            BigDecimal countNum22 = new BigDecimal(countNum2);
+            BigDecimal countNum33 = new BigDecimal(countNum3);
+            BigDecimal countNum44 = new BigDecimal(countNum4);
+            BigDecimal countNum55 = new BigDecimal(countNum5);
+            BigDecimal countNum66 = new BigDecimal(countNum6);
+            BigDecimal countNum77 = new BigDecimal(countNum7);
+            BigDecimal countNum88 = new BigDecimal(countNum8);
+            BigDecimal countNum99 = new BigDecimal(countNum9);
+            BigDecimal countNum1010 = new BigDecimal(countNum10);
+            BigDecimal countNum1111 = new BigDecimal(countNum11);
+            BigDecimal countNum1212 = new BigDecimal(countNum12);
+            BigDecimal countNumOld111 = new BigDecimal(countNumOld1);
+            BigDecimal countNumOld22 = new BigDecimal(countNumOld2);
+            BigDecimal countNumOld33 = new BigDecimal(countNumOld3);
+            BigDecimal countNumOld44 = new BigDecimal(countNumOld4);
+            BigDecimal countNumOld55 = new BigDecimal(countNumOld5);
+            BigDecimal countNumOld66 = new BigDecimal(countNumOld6);
+            BigDecimal countNumOld77 = new BigDecimal(countNumOld7);
+            BigDecimal countNumOld88 = new BigDecimal(countNumOld8);
+            BigDecimal countNumOld99 = new BigDecimal(countNumOld9);
+            BigDecimal countNumOld1010 = new BigDecimal(countNumOld10);
+            BigDecimal countNumOld1111 = new BigDecimal(countNumOld11);
+            BigDecimal countNumOld1212 = new BigDecimal(countNumOld12);
+
+            BigDecimal evaluationSum111 = new BigDecimal(evaluationSum1);
+            BigDecimal evaluationSum22 = new BigDecimal(evaluationSum2);
+            BigDecimal evaluationSum33 = new BigDecimal(evaluationSum3);
+            BigDecimal evaluationSum44 = new BigDecimal(evaluationSum4);
+            BigDecimal evaluationSum55 = new BigDecimal(evaluationSum5);
+            BigDecimal evaluationSum66 = new BigDecimal(evaluationSum6);
+            BigDecimal evaluationSum77 = new BigDecimal(evaluationSum7);
+            BigDecimal evaluationSum88 = new BigDecimal(evaluationSum8);
+            BigDecimal evaluationSum99 = new BigDecimal(evaluationSum9);
+            BigDecimal evaluationSum1010 = new BigDecimal(evaluationSum10);
+            BigDecimal evaluationSum1111 = new BigDecimal(evaluationSum11);
+            BigDecimal evaluationSum1212 = new BigDecimal(evaluationSum12);
+            BigDecimal evaluationSumOld111 = new BigDecimal(evaluationSumOld1);
+            BigDecimal evaluationSumOld22 = new BigDecimal(evaluationSumOld2);
+            BigDecimal evaluationSumOld33 = new BigDecimal(evaluationSumOld3);
+            BigDecimal evaluationSumOld44 = new BigDecimal(evaluationSumOld4);
+            BigDecimal evaluationSumOld55 = new BigDecimal(evaluationSumOld5);
+            BigDecimal evaluationSumOld66 = new BigDecimal(evaluationSumOld6);
+            BigDecimal evaluationSumOld77 = new BigDecimal(evaluationSumOld7);
+            BigDecimal evaluationSumOld88 = new BigDecimal(evaluationSumOld8);
+            BigDecimal evaluationSumOld99 = new BigDecimal(evaluationSumOld9);
+            BigDecimal evaluationSumOld1010 = new BigDecimal(evaluationSumOld10);
+            BigDecimal evaluationSumOld1111 = new BigDecimal(evaluationSumOld11);
+            BigDecimal evaluationSumOld1212 = new BigDecimal(evaluationSumOld12);
+
+            // 项目数量环比 对比
+            BigDecimal monthonmonthNum1 = new BigDecimal(0.00);
+            BigDecimal monthonmonthNum2 = new BigDecimal(0.00);
+            BigDecimal monthonmonthNum3 = new BigDecimal(0.00);
+            BigDecimal monthonmonthNum4 = new BigDecimal(0.00);
+            BigDecimal monthonmonthNum5 = new BigDecimal(0.00);
+            BigDecimal monthonmonthNum6 = new BigDecimal(0.00);
+            BigDecimal monthonmonthNum7 = new BigDecimal(0.00);
+            BigDecimal monthonmonthNum8 = new BigDecimal(0.00);
+            BigDecimal monthonmonthNum9 = new BigDecimal(0.00);
+            BigDecimal monthonmonthNum10 = new BigDecimal(0.00);
+            BigDecimal monthonmonthNum11 = new BigDecimal(0.00);
+            BigDecimal monthonmonthNum12 = new BigDecimal(0.00);
+            if (!"0".equals(countNumOld12)) {
+                monthonmonthNum1 = (countNum111.subtract(countNumOld1212)).divide(countNumOld1212).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNum1)) {
+                monthonmonthNum2 = (countNum22.subtract(countNum111)).divide(countNum111).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNum2)) {
+                monthonmonthNum3 = (countNum33.subtract(countNum22)).divide(countNum22).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNum3)) {
+                monthonmonthNum4 = (countNum44.subtract(countNum33)).divide(countNum33).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNum4)) {
+                monthonmonthNum5 = (countNum55.subtract(countNum44)).divide(countNum44).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNum5)) {
+                monthonmonthNum6 = (countNum66.subtract(countNum55)).divide(countNum55).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNum6)) {
+                monthonmonthNum7 = (countNum77.subtract(countNum66)).divide(countNum66).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNum7)) {
+                monthonmonthNum8 = (countNum88.subtract(countNum77)).divide(countNum77).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNum8)) {
+                monthonmonthNum9 = (countNum99.subtract(countNum88)).divide(countNum88).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNum9)) {
+                monthonmonthNum10 = (countNum1010.subtract(countNum99)).divide(countNum99).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNum10)) {
+                monthonmonthNum11 = (countNum1111.subtract(countNum1010)).divide(countNum1010).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNum11)) {
+                monthonmonthNum12 = (countNum1212.subtract(countNum1111)).divide(countNum1111).multiply(new BigDecimal("100"));
+            }
+            map1.put("monthonmonthNum", monthonmonthNum1.toString());
+            map2.put("monthonmonthNum", monthonmonthNum2.toString());
+            map3.put("monthonmonthNum", monthonmonthNum3.toString());
+            map4.put("monthonmonthNum", monthonmonthNum4.toString());
+            map5.put("monthonmonthNum", monthonmonthNum5.toString());
+            map6.put("monthonmonthNum", monthonmonthNum6.toString());
+            map7.put("monthonmonthNum", monthonmonthNum7.toString());
+            map8.put("monthonmonthNum", monthonmonthNum8.toString());
+            map9.put("monthonmonthNum", monthonmonthNum9.toString());
+            map10.put("monthonmonthNum", monthonmonthNum10.toString());
+            map11.put("monthonmonthNum", monthonmonthNum11.toString());
+            map12.put("monthonmonthNum", monthonmonthNum12.toString());
+            // 项目数量同比 对比
+            BigDecimal yearonyearNum1 = new BigDecimal(0.00);
+            BigDecimal yearonyearNum2 = new BigDecimal(0.00);
+            BigDecimal yearonyearNum3 = new BigDecimal(0.00);
+            BigDecimal yearonyearNum4 = new BigDecimal(0.00);
+            BigDecimal yearonyearNum5 = new BigDecimal(0.00);
+            BigDecimal yearonyearNum6 = new BigDecimal(0.00);
+            BigDecimal yearonyearNum7 = new BigDecimal(0.00);
+            BigDecimal yearonyearNum8 = new BigDecimal(0.00);
+            BigDecimal yearonyearNum9 = new BigDecimal(0.00);
+            BigDecimal yearonyearNum10 = new BigDecimal(0.00);
+            BigDecimal yearonyearNum11 = new BigDecimal(0.00);
+            BigDecimal yearonyearNum12 = new BigDecimal(0.00);
+            if (!"0".equals(countNumOld1)) {
+                yearonyearNum1 = (countNum111.subtract(countNumOld111)).divide(countNumOld111).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNumOld2)) {
+                yearonyearNum2 = (countNum22.subtract(countNumOld22)).divide(countNumOld22).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNumOld3)) {
+                yearonyearNum3 = (countNum33.subtract(countNumOld33)).divide(countNumOld33).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNumOld4)) {
+                yearonyearNum4 = (countNum44.subtract(countNumOld44)).divide(countNumOld44).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNumOld5)) {
+                yearonyearNum5 = (countNum55.subtract(countNumOld55)).divide(countNumOld55).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNumOld6)) {
+                yearonyearNum6 = (countNum66.subtract(countNumOld66)).divide(countNumOld66).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNumOld7)) {
+                yearonyearNum7 = (countNum77.subtract(countNumOld77)).divide(countNumOld77).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNumOld8)) {
+                yearonyearNum8 = (countNum88.subtract(countNumOld88)).divide(countNumOld88).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNumOld9)) {
+                yearonyearNum9 = (countNum99.subtract(countNumOld99)).divide(countNumOld99).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNumOld10)) {
+                yearonyearNum10 = (countNum1010.subtract(countNumOld1010)).divide(countNumOld1010).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNumOld11)) {
+                yearonyearNum11 = (countNum1111.subtract(countNumOld1111)).divide(countNumOld1111).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(countNumOld12)) {
+                yearonyearNum12 = (countNum1212.subtract(countNumOld1212)).divide(countNumOld1212).multiply(new BigDecimal("100"));
+            }
+            map1.put("yearonyearNum", yearonyearNum1.toString());
+            map2.put("yearonyearNum", yearonyearNum2.toString());
+            map3.put("yearonyearNum", yearonyearNum3.toString());
+            map4.put("yearonyearNum", yearonyearNum4.toString());
+            map5.put("yearonyearNum", yearonyearNum5.toString());
+            map6.put("yearonyearNum", yearonyearNum6.toString());
+            map7.put("yearonyearNum", yearonyearNum7.toString());
+            map8.put("yearonyearNum", yearonyearNum8.toString());
+            map9.put("yearonyearNum", yearonyearNum9.toString());
+            map10.put("yearonyearNum", yearonyearNum10.toString());
+            map11.put("yearonyearNum", yearonyearNum11.toString());
+            map12.put("yearonyearNum", yearonyearNum12.toString());
+            // 预算金额环比 对比
+            BigDecimal monthonmonthAmount1 = new BigDecimal(0.00);
+            BigDecimal monthonmonthAmount2 = new BigDecimal(0.00);
+            BigDecimal monthonmonthAmount3 = new BigDecimal(0.00);
+            BigDecimal monthonmonthAmount4 = new BigDecimal(0.00);
+            BigDecimal monthonmonthAmount5 = new BigDecimal(0.00);
+            BigDecimal monthonmonthAmount6 = new BigDecimal(0.00);
+            BigDecimal monthonmonthAmount7 = new BigDecimal(0.00);
+            BigDecimal monthonmonthAmount8 = new BigDecimal(0.00);
+            BigDecimal monthonmonthAmount9 = new BigDecimal(0.00);
+            BigDecimal monthonmonthAmount10 = new BigDecimal(0.00);
+            BigDecimal monthonmonthAmount11 = new BigDecimal(0.00);
+            BigDecimal monthonmonthAmount12 = new BigDecimal(0.00);
+            if (!"0".equals(evaluationSumOld12)) {
+                monthonmonthAmount1 = (evaluationSum111.subtract(evaluationSumOld1212)).divide(evaluationSumOld1212).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSum1)) {
+                monthonmonthAmount2 = (evaluationSum22.subtract(evaluationSum111)).divide(evaluationSum111).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSum2)) {
+                monthonmonthAmount3 = (evaluationSum33.subtract(evaluationSum22)).divide(evaluationSum22).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSum3)) {
+                monthonmonthAmount4 = (evaluationSum44.subtract(evaluationSum33)).divide(evaluationSum33).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSum4)) {
+                monthonmonthAmount5 = (evaluationSum55.subtract(evaluationSum44)).divide(evaluationSum44).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSum5)) {
+                monthonmonthAmount6 = (evaluationSum66.subtract(evaluationSum55)).divide(evaluationSum55).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSum6)) {
+                monthonmonthAmount7 = (evaluationSum77.subtract(evaluationSum66)).divide(evaluationSum66).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSum7)) {
+                monthonmonthAmount8 = (evaluationSum88.subtract(evaluationSum77)).divide(evaluationSum77).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSum8)) {
+                monthonmonthAmount9 = (evaluationSum99.subtract(evaluationSum88)).divide(evaluationSum88).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSum9)) {
+                monthonmonthAmount10 = (evaluationSum1010.subtract(evaluationSum99)).divide(evaluationSum99).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSum10)) {
+                monthonmonthAmount11 = (evaluationSum1111.subtract(evaluationSum1010)).divide(evaluationSum1010).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSum11)) {
+                monthonmonthAmount12 = (evaluationSum1212.subtract(evaluationSum1111)).divide(evaluationSum1111).multiply(new BigDecimal("100"));
+            }
+            map1.put("monthonmonthAmount", monthonmonthAmount1.toString());
+            map2.put("monthonmonthAmount", monthonmonthAmount2.toString());
+            map3.put("monthonmonthAmount", monthonmonthAmount3.toString());
+            map4.put("monthonmonthAmount", monthonmonthAmount4.toString());
+            map5.put("monthonmonthAmount", monthonmonthAmount5.toString());
+            map6.put("monthonmonthAmount", monthonmonthAmount6.toString());
+            map7.put("monthonmonthAmount", monthonmonthAmount7.toString());
+            map8.put("monthonmonthAmount", monthonmonthAmount8.toString());
+            map9.put("monthonmonthAmount", monthonmonthAmount9.toString());
+            map10.put("monthonmonthAmount", monthonmonthAmount10.toString());
+            map11.put("monthonmonthAmount", monthonmonthAmount11.toString());
+            map12.put("monthonmonthAmount", monthonmonthAmount12.toString());
+            // 预算金额同比比 对比
+            BigDecimal yearonyearAmount1 = new BigDecimal(0.00);
+            BigDecimal yearonyearAmount2 = new BigDecimal(0.00);
+            BigDecimal yearonyearAmount3 = new BigDecimal(0.00);
+            BigDecimal yearonyearAmount4 = new BigDecimal(0.00);
+            BigDecimal yearonyearAmount5 = new BigDecimal(0.00);
+            BigDecimal yearonyearAmount6 = new BigDecimal(0.00);
+            BigDecimal yearonyearAmount7 = new BigDecimal(0.00);
+            BigDecimal yearonyearAmount8 = new BigDecimal(0.00);
+            BigDecimal yearonyearAmount9 = new BigDecimal(0.00);
+            BigDecimal yearonyearAmount10 = new BigDecimal(0.00);
+            BigDecimal yearonyearAmount11 = new BigDecimal(0.00);
+            BigDecimal yearonyearAmount12 = new BigDecimal(0.00);
+            if (!"0".equals(evaluationSumOld1)) {
+                yearonyearAmount1 = (evaluationSum111.subtract(evaluationSumOld111)).divide(evaluationSumOld1111).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSumOld2)) {
+                yearonyearAmount2 = (evaluationSum22.subtract(evaluationSumOld22)).divide(evaluationSumOld22).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSumOld3)) {
+                yearonyearAmount3 = (evaluationSum33.subtract(evaluationSumOld33)).divide(evaluationSumOld33).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSumOld4)) {
+                yearonyearAmount4 = (evaluationSum44.subtract(evaluationSumOld44)).divide(evaluationSumOld44).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSumOld5)) {
+                yearonyearAmount5 = (evaluationSum55.subtract(evaluationSumOld55)).divide(evaluationSumOld44).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSumOld6)) {
+                yearonyearAmount6 = (evaluationSum66.subtract(evaluationSumOld66)).divide(evaluationSumOld44).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSumOld7)) {
+                yearonyearAmount7 = (evaluationSum77.subtract(evaluationSumOld77)).divide(evaluationSumOld44).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSumOld8)) {
+                yearonyearAmount8 = (evaluationSum88.subtract(evaluationSumOld88)).divide(evaluationSumOld44).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSumOld9)) {
+                yearonyearAmount9 = (evaluationSum99.subtract(evaluationSumOld99)).divide(evaluationSumOld44).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSumOld10)) {
+                yearonyearAmount10 = (evaluationSum1010.subtract(evaluationSumOld1010)).divide(evaluationSumOld44).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSumOld11)) {
+                yearonyearAmount11 = (evaluationSum1111.subtract(evaluationSumOld1111)).divide(evaluationSumOld44).multiply(new BigDecimal("100"));
+            }
+            if (!"0".equals(evaluationSumOld12)) {
+                yearonyearAmount12 = (evaluationSum1212.subtract(evaluationSumOld1212)).divide(evaluationSumOld44).multiply(new BigDecimal("100"));
+            }
+            map1.put("yearonyearAmount", yearonyearAmount1.toString());
+            map2.put("yearonyearAmount", yearonyearAmount2.toString());
+            map3.put("yearonyearAmount", yearonyearAmount3.toString());
+            map4.put("yearonyearAmount", yearonyearAmount4.toString());
+            map5.put("yearonyearAmount", yearonyearAmount5.toString());
+            map6.put("yearonyearAmount", yearonyearAmount6.toString());
+            map7.put("yearonyearAmount", yearonyearAmount7.toString());
+            map8.put("yearonyearAmount", yearonyearAmount8.toString());
+            map9.put("yearonyearAmount", yearonyearAmount9.toString());
+            map10.put("yearonyearAmount", yearonyearAmount10.toString());
+            map11.put("yearonyearAmount", yearonyearAmount11.toString());
+            map12.put("yearonyearAmount", yearonyearAmount12.toString());
+            // 存入集合
+            mapReturn.add(map1);
+            mapReturn.add(map2);
+            mapReturn.add(map3);
+            mapReturn.add(map4);
+            mapReturn.add(map5);
+            mapReturn.add(map6);
+            mapReturn.add(map7);
+            mapReturn.add(map8);
+            mapReturn.add(map9);
+            mapReturn.add(map10);
+            mapReturn.add(map11);
+            mapReturn.add(map12);
         }
         return mapReturn;
     }
@@ -2487,8 +2946,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         BigDecimal monthonmonthNum111 = (aa.subtract(bb)).divide(bb).multiply(new BigDecimal(100));
         // BigDecimal monthonmonthNum1 = (aa.subtract(bb)).divide(bb).multiply(new BigDecimal(100));
         // monthonmonthNum1 = (countNum11.subtract(countNumOld44)).divide(countNumOld44).multiply(new BigDecimal("100"));
-
-        BigDecimal mm = monthonmonthNum111;
+        System.out.println("计算结果:" + monthonmonthNum111);
     }
 
     //查询不同状态下的项目数据

+ 14 - 8
purchase-system/src/main/resources/mapper/pm/PmDemandMapper.xml

@@ -205,12 +205,10 @@
     </select>
 
     <select id="countMajorProjectLastYear" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT YEAR (NOW()) - 1 columnName, COUNT (demand_id) num, SUM (evaluation) evaluationTotal
+        SELECT YEAR(NOW()) - 1 columnName, COUNT(demand_id) num, SUM(evaluation) evaluationTotal
         FROM `pm_demand`
-        WHERE find_in_set('1'
-            , project_attr)
-          and DATE_FORMAT(create_time
-            , '%Y') = YEAR (NOW()) - 1
+        WHERE find_in_set('1', project_attr)
+          and DATE_FORMAT(create_time, '%Y') = YEAR(NOW()) - 1
     </select>
 
     <select id="countProjectMajorByYear" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
@@ -383,7 +381,7 @@
 
     <select id="purchaseProjectNumberAnalysisYear" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="java.util.Map">
-        select count(demand_id) countNum, year (plan_demand_sub_time) yy
+        select count(demand_id) countNum, ifnull(sum(evaluation), 0) evaluationSum, year (plan_demand_sub_time) yy
         from pm_demand
         group by year (plan_demand_sub_time)
     </select>
@@ -400,15 +398,23 @@
             resultType="java.util.Map">
         select count(demand_id) countNum, ifnull(sum(evaluation), 0) evaluationSum, quarter(plan_demand_sub_time) yy
         from pm_demand
-        where year (plan_demand_sub_time) = year (NOW() -1)
+        where year (plan_demand_sub_time) = year (NOW() - 1)
         group by concat(Year (plan_demand_sub_time), quarter(plan_demand_sub_time))
     </select>
 
     <select id="purchaseProjectNumberAnalysisMonth" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="java.util.Map">
-        select count(demand_id) countNum, date_format(plan_demand_sub_time, '%m') yy
+        select count(demand_id) countNum, ifnull(sum(evaluation), 0) evaluationSum, date_format(plan_demand_sub_time, '%m') yy
         from pm_demand
         where year (plan_demand_sub_time) = year (NOW())
         group by date_format(plan_demand_sub_time, '%y%m')
     </select>
+
+    <select id="purchaseProjectNumberAnalysisOldYearMonth" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
+            resultType="java.util.Map">
+        select count(demand_id) countNum, ifnull(sum(evaluation), 0) evaluationSum, date_format(plan_demand_sub_time, '%m') yy
+        from pm_demand
+        where year (plan_demand_sub_time) = year (NOW() - 1)
+        group by date_format(plan_demand_sub_time, '%y%m')
+    </select>
 </mapper>